Sage Intacct and GoCardless integration
Sage Intacct tracks customer invoices, payments, and GL balances. GoCardless collects payments directly from customer bank accounts via recurring mandates. Connecting the two keeps your AR and your collections in sync. New invoices and credit notes in Intacct flow to GoCardless as billing requests, customer payment mandates are verified and stored, and payment events from GoCardless post back into Intacct's cash receipts GL account without manual reconciliation.
What moves between them
The main flow is bidirectional. Sage Intacct AR invoices and credit notes flow to GoCardless as billing requests tied to customer records, keyed on Intacct customer ID. Customer bank accounts and payment mandates are created and updated in GoCardless and then verified back in Intacct for compliance. Payment and refund events from GoCardless are collected via webhook and posted back into Intacct's cash receipts or refund GL accounts, maintaining a dual audit trail in both systems.
How ml-connector handles it
ml-connector caches the Intacct session ID for the full 50-minute lifetime and refreshes it automatically on the next call if expired, avoiding per-operation session overhead. Every Intacct XML operation is serialized through the single gateway endpoint with a uniqueid flag in the control block for server-side deduplication on retries. GoCardless webhook events are received asynchronously at a registered endpoint, verified against the HMAC-SHA256 signature using the webhook secret, and only processed on valid signature match; invalid signatures return 401 immediately to halt retries. Intacct invoices are mapped to GoCardless billing requests by company and customer ID; payout events are correlated with Intacct vendor payment records by reference ID. Amount conversions are handled at field serialization time since Intacct amounts are decimals while GoCardless expects integers in pence or cents. Forbidden XML characters (C0 controls except tab, newline, carriage return) are stripped before escaping. HTTP 429 backoff is implemented with exponential retry.
A real-world example
A B2B SaaS company invoices customers monthly from Sage Intacct and previously collected payments manually via email and checks. The finance team now uses GoCardless for recurring bank debits, but had to manually match payments back to Intacct invoices at month-end, causing reconciliation delays. With Sage Intacct and GoCardless connected, each invoice automatically sets up a billing request in GoCardless, customer bank accounts and mandates are verified in Intacct on activation, and payment events post directly into Intacct's cash receipts, eliminating manual matching and enabling straight-through reconciliation.
What you can do
- Push Sage Intacct AR invoices and credit notes to GoCardless as billing requests with automatic mandate collection.
- Sync customer bank accounts and payment mandates between Intacct and GoCardless, with mandate status tracked in both systems.
- Receive GoCardless payment and refund events via webhook and post them into Intacct's GL cash receipts and refund accounts.
- Bridge Intacct's XML session authentication and GoCardless's bearer token and HMAC-SHA256 webhook signature verification.
- Maintain a unified audit trail of invoices, mandates, payments, and refunds across both systems with deduplication and replay on error.
Questions
- Which direction does data move between Sage Intacct and GoCardless?
- Data flows bidirectionally. Sage Intacct AR invoices and credit notes flow to GoCardless as billing requests to trigger customer payment collection. Customer bank accounts and payment mandates are synchronized between the two systems. Payment and refund events from GoCardless post back into Intacct's GL cash receipts and refund accounts, maintaining a complete audit trail.
- How does the integration handle Sage Intacct's session-based authentication and 50-minute expiry?
- ml-connector caches the Intacct session ID for the full 50-minute lifetime and automatically refreshes it on the next call if it has expired. This eliminates per-operation session overhead and keeps the two systems in continuous sync without re-authentication delays.
- Does GoCardless webhook verification add complexity to the setup?
- No. ml-connector handles HMAC-SHA256 signature verification for every webhook event using the secret provided in GoCardless settings. Invalid signatures return 401 immediately to halt retries, and valid signatures are verified before the event is posted to Intacct, so setup is transparent and no special configuration is required on your end.
Related integrations
More Sage Intacct integrations
Other systems that connect to GoCardless
Connect Sage Intacct and GoCardless
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started