ml-connector
TallyPrimeGoCardless

TallyPrime and GoCardless integration

TallyPrime runs your accounting and inventory. GoCardless collects payments directly from your customers' bank accounts. Connecting the two keeps your cash receipts and your general ledger in agreement. New customer payments collected through GoCardless flow into TallyPrime as receipt vouchers, allocated to the correct income groups and cost centers, with no manual re-entry. Subscription and one-off payment mandates are tracked end-to-end with a full audit trail.

How TallyPrime works

TallyPrime is a desktop-first accounting and ERP application widely used in India and Southeast Asia for accounting, inventory, payroll, and taxation. It exposes ledgers, groups, vouchers (Purchase, Sales, Payment, Receipt, Purchase Order), and stock items through XML or JSON over HTTP POST to http://<tally-host-ip>:9000. A local agent must be running on the same machine or LAN as TallyPrime to bridge the cloud connector to port 9000, and the application must be running with the target company loaded. TallyPrime has no native webhooks or event subscription, so records are read by polling with date range filters.

How GoCardless works

GoCardless is a global bank debit payment processor handling recurring and one-off bank debit mandates in 30+ countries. It exposes customers, customer bank accounts, mandates, payments, subscriptions, payouts, refunds, and events through REST JSON over HTTPS at https://api.gocardless.com (production). Every call requires a bearer token in the Authorization header. GoCardless pushes real-time events to a registered HTTPS endpoint with HMAC-SHA256 signature verification; webhooks are the primary sync mechanism, though polling via GET /events is also supported. Payouts are read-only and created automatically by GoCardless.

What moves between them

Payment data flows from GoCardless into TallyPrime. After each customer payment is collected through GoCardless, ml-connector reads the payment record and its subscription or mandate details, and posts a receipt voucher into TallyPrime's general ledger, allocated to the correct income group matching the subscription or mandate type. Customer master records and payment status updates are synced in both directions so TallyPrime headcount and receivables aging reflect GoCardless customer status, payment history, and mandate state. Refunds flow the same direction as payments. Mandate and subscription records are read-only in GoCardless, so ml-connector never writes payment mandates back.

How ml-connector handles it

ml-connector stores the TallyPrime host IP and company credentials encrypted and posts Import Data requests to port 9000 via the local agent. It handles GoCardless bearer token authentication and validates webhook signatures with HMAC-SHA256 on every inbound event. When a webhook arrives for a new payment, ml-connector immediately fetches the full payment and subscription details from GoCardless via REST, maps the subscription group to the correct TallyPrime income group, and posts a receipt voucher with the payment amount. Because TallyPrime has no webhooks and is desktop-only, ml-connector also polls for recent payments on a schedule you control, comparing payment IDs against last-seen state to avoid duplicate vouchers. The local agent must be running continuously on the same network as the TallyPrime instance. Every receipt voucher carries the original GoCardless payment ID, customer ID, and subscription ID in its narration for full audit trail and replay capability.

A real-world example

A small to mid-sized SaaS company in India uses TallyPrime for accounting and payroll, and GoCardless to collect subscription payments from customers across India and Europe. Before the integration, the finance team exported payment reports from GoCardless every few days and manually entered each receipt into TallyPrime, then spent hours reconciling customer aging reports between GoCardless and TallyPrime ledgers. With TallyPrime and GoCardless connected, each customer payment flows into TallyPrime as a receipt voucher on the same day it is collected, allocated to the subscription income group, and the customer master record stays in sync with payment status. Month-end reconciliation starts with cash receipts already in the ledger, and the manual re-entry step is gone.

What you can do

  • Post GoCardless customer payments into TallyPrime's general ledger as receipt vouchers, allocated to the correct income groups.
  • Keep TallyPrime customer masters and receivables aging aligned with GoCardless customer payment status, mandates, and subscription state.
  • Map GoCardless subscriptions and mandates to TallyPrime income groups and cost centers so collections land on the correct accounts.
  • Bridge GoCardless webhooks and bearer token authentication to TallyPrime's local XML/JSON API and port 9000 network transport.
  • Poll on a schedule you control with duplicate detection and a full audit trail on every receipt voucher.

Questions

Which direction does data move between TallyPrime and GoCardless?
The main flow is GoCardless into TallyPrime. Customer payments, refunds, subscriptions, and mandate status move from GoCardless into TallyPrime as receipt vouchers, while customer master records and payment history are aligned in both directions. GoCardless payouts and mandates are read-only, so ml-connector does not write payment mandates back into GoCardless.
How does ml-connector handle TallyPrime's local desktop architecture and lack of webhooks?
ml-connector requires a local agent running on the same machine or LAN as TallyPrime to bridge the cloud connector to port 9000. TallyPrime has no webhooks, so ml-connector polls for new payments on a schedule tied to your collection cadence, compares payment IDs against the last-seen state to avoid duplicate vouchers, and syncs in near-real time when GoCardless webhooks are enabled.
What credentials and network setup are required?
You provide the TallyPrime host IP, company name, and optional credentials (username and password if the company is protected). The local agent must be running continuously and must have network access to both the TallyPrime instance on port 9000 and the internet for GoCardless API calls. ml-connector stores all credentials encrypted and presents the GoCardless bearer token on every API call.

Related integrations

Connect TallyPrime and GoCardless

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started