Sage 300 and Wise integration
Sage 300 holds your vendor master and AP invoices; Wise handles multi-currency payouts and international transfers. Connecting the two lets you execute vendor payments from Sage 300 in the recipient currencies on Wise without leaving your ERP or re-keying bank details. Vendor records in Sage 300 map to Wise recipients, and approved AP payment batches flow directly into Wise transfers, denominated in the payment currency and routed to the correct Wise balance.
What moves between them
AP payment batches flow from Sage 300 into Wise as outbound transfers. ml-connector polls Sage 300 APPaymentAndAdjustmentBatches on a weekly or monthly cadence tied to your close calendar, matches each batch line to a Sage 300 vendor and GL account, maps the vendor to a Wise recipient, retrieves the target balance in the payment currency, and executes the transfer through the Wise 4-step sequence. Vendor master changes in Sage 300 (new vendors, address updates, bank details) sync to Wise recipients on the same cadence, though Wise recipients must be recreated on material changes rather than updated in place.
How ml-connector handles it
ml-connector translates Sage 300 HTTP Basic Authentication to OAuth2 bearer tokens for Wise, refreshing the Wise token on 401 responses. On the Sage 300 side, it polls APPaymentAndAdjustmentBatches and APVendors using OData date filters ($filter=DocumentDate gt '2026-01-01') and pagination to retrieve all records since the last run. Each vendor is mapped to a Wise recipient by external ID; if the vendor lacks banking details or the recipient does not exist in Wise, ml-connector skips or creates the recipient on demand. For each payment batch line, ml-connector retrieves a Wise quote (to lock the exchange rate), creates or reuses the recipient, initiates the transfer order, and funds the payment in a single atomic sequence, rolling back if any step fails. Quotes expire after a few minutes, so ml-connector retrieves a fresh quote each run rather than caching. Wise rate limits of 1000 req/min are respected via exponential backoff and jitter on 429 responses. All transfer state is tracked in the audit log with receipt IDs so failed transfers can be replayed after correcting the upstream batch in Sage 300.
A real-world example
A mid-market manufacturing business runs Sage 300 on-premise for AP and GL, and uses Wise for international payouts to suppliers across Europe and Asia. Before integration, the AP manager exported payment batches from Sage 300 as CSV, logged into Wise, manually recreated each recipient and transfer, and uploaded proof of payment back into Sage 300 for close-out. With Sage 300 and Wise connected, each monthly AP payment batch processes automatically: vendors sync to Wise recipients on the first of the month, payment batches execute on approval, and the Wise transfer receipt posts into Sage 300 audit as proof. The AP team no longer re-keys payment data or chases manual recipient setup.
What you can do
- Map Sage 300 vendors to Wise recipients, syncing new vendors and address changes on a scheduled cadence.
- Execute AP payment batches from Sage 300 through Wise as multi-currency transfers routed to the correct balance and recipient.
- Translate HTTP Basic Authentication from Sage 300 to OAuth2 for Wise at the API boundary.
- Handle Wise quote expiry, recipient immutability, and the 4-step transfer sequence automatically.
- Track transfer state and provide full audit trail with receipt IDs for failed transfer replay and close-out.
Questions
- Can Wise transfers go to recipients outside the Wise platform?
- Yes. Wise recipients map to external bank accounts, not just Wise balances. A Sage 300 vendor with bank details (account number, routing number, or IBAN) becomes a Wise recipient pointing to that external account, and transfers execute to the external account in the recipient currency without requiring a Wise wallet on the receiving end.
- What happens if a Sage 300 vendor has no banking details or currency mismatch?
- ml-connector skips the payment line and records the skip in the audit log with the reason (missing bank account, unsupported currency). The AP team can then correct the vendor master in Sage 300 and re-run the batch, or manually fund the payment in Wise and mark it as complete in the audit trail.
- Does the integration handle Wise rate limits and quote expiry?
- Yes. ml-connector backs off and retries on HTTP 429 (rate limit) responses with exponential backoff and jitter, respecting Wise's 1000 req/min limit per account. It retrieves a fresh Wise quote for each transfer run rather than caching, so quote expiry is not a failure mode.
Related integrations
More Sage 300 integrations
Other systems that connect to Wise
Connect Sage 300 and Wise
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started