Acumatica and GoCardless integration
Acumatica runs finance and AR. GoCardless collects payments directly from customer bank accounts. Connecting the two turns open Acumatica AR invoices into bank debit collections without manual entry, and brings the resulting payments and payouts back into the ledger. ml-connector creates GoCardless payments from Acumatica invoices against each customer's active mandate, then records confirmed collections as Acumatica AR payments. It also reconciles each GoCardless payout against the invoices it settled so the bank deposit matches the ledger.
What moves between them
The outbound flow runs from Acumatica into GoCardless. ml-connector polls Acumatica for open AR sales invoices on customers that have an active GoCardless mandate and creates a matching GoCardless payment for each, using the invoice reference number to tie the two together. The inbound flow runs from GoCardless into Acumatica: payment confirmed, paid out, failed, and chargeback webhooks drive AR payment records and status updates in Acumatica, and each GoCardless payout is reconciled against its payout items so the deposited amount maps back to the settled invoices. Customer and mandate reference data is aligned so every payment points at a valid Acumatica customer and a valid GoCardless mandate.
How ml-connector handles it
ml-connector stores both credential sets encrypted, refreshes the Acumatica OAuth token when a call returns 401, and sends the GoCardless Bearer token and version header on every request. Because GoCardless requires an active mandate before any payment, the connector checks for one on the linked customer and skips invoices that have no mandate yet rather than failing the run. Acumatica invoice totals are decimal, so they are converted to the smallest currency unit before the GoCardless payment is created, and a per-invoice Idempotency-Key prevents a retried run from double-charging. Acumatica is polled on a filter over LastModifiedDateTime with a stored high-water mark, since its push notifications are not guaranteed, while GoCardless events arrive by webhook verified with HMAC-SHA256; a bad signature returns 401, never 200. Payments settle on a delay set by the bank scheme, so an invoice is not marked paid in Acumatica until the confirmed or paid_out event arrives, and each payout is split through its payout items so fees and refunds land on the right GL accounts. Both sides rate limit with HTTP 429, so the connector backs off with jitter and retries.
A real-world example
A subscription software vendor with about 80 staff bills several hundred UK and EU customers monthly from Acumatica Cloud ERP and collects by direct debit through GoCardless. Before the integration, an accounts clerk exported the open invoice list from Acumatica each cycle, keyed each collection into GoCardless by hand, then weeks later tried to match lumped bank payouts back to individual invoices in the ledger. With Acumatica and GoCardless connected, each open invoice becomes a GoCardless payment automatically against the customer's mandate, confirmed collections post back as AR payments, and every payout is broken down by payout item so the bank deposit reconciles to the invoices it covers. The manual keying and the month-end reconciliation guesswork are gone.
What you can do
- Create GoCardless bank debit payments from open Acumatica AR invoices against each customer's active mandate.
- Post confirmed and paid-out GoCardless collections back into Acumatica as AR payments via signed webhooks.
- Reconcile each GoCardless payout against its payout items so the bank deposit matches the settled invoices.
- Convert Acumatica decimal invoice totals into the smallest currency unit and dedupe with a per-invoice idempotency key.
- Bridge Acumatica OAuth and its version-locked tenant URL to the GoCardless Bearer token and pinned version header.
Questions
- Which direction does data move between Acumatica and GoCardless?
- Both directions. Open AR invoices flow from Acumatica into GoCardless as bank debit payments, and confirmed collections plus payout reconciliation flow back from GoCardless into Acumatica as AR payments. Customer and mandate references are aligned on both sides so each payment points at a valid Acumatica customer and an active GoCardless mandate.
- What happens if a customer has no GoCardless mandate yet?
- GoCardless cannot create a payment without a pre-existing active mandate, so ml-connector checks for one on the linked customer before billing. Invoices for customers without an active mandate are skipped and reported rather than failing the whole run. Once the mandate becomes active, those invoices are picked up on the next sync.
- How does the integration handle the delay between collection and payout?
- Bank debit payments are not instant, so an Acumatica invoice is not marked paid until the GoCardless confirmed or paid_out webhook arrives. GoCardless bundles many payments into one payout, so ml-connector reads the payout items to split each deposit back into individual payments, fees, and refunds. That lets each line post to the correct Acumatica GL account so the payout reconciles to the ledger.
Related integrations
More Acumatica integrations
Other systems that connect to GoCardless
Connect Acumatica and GoCardless
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started