QuickBooks Online and Wise integration
QuickBooks Online tracks every invoice, bill, and expense for your business. Wise moves money across borders and currencies when you need to pay international vendors or staff. Connecting the two keeps your payment records aligned, eliminates manual entry of transfer details back into your general ledger, and gives your team full visibility into which bills have been paid and where the money went. When a vendor invoice is due and you execute the payment through Wise, ml-connector records the transaction in QuickBooks Online with no re-keying.
What moves between them
Vendor records in QuickBooks Online sync to Wise recipients so payments reach the correct destination. When a bill payment is created in QuickBooks Online and executed through Wise, ml-connector records the transfer state and links it back to the bill for reconciliation. Balance updates and transfer state changes from Wise fire webhooks that ml-connector ingests to keep QuickBooks Online journal entries and payment status current. The flow is bidirectional: QuickBooks Online drives vendor and bill creation, while Wise drives payment execution and transfer status updates.
How ml-connector handles it
ml-connector stores both OAuth credential sets encrypted and refreshes QuickBooks Online access tokens before expiry since they have only a 1-hour window. On the Wise side, it uses either OAuth or personal token authentication and handles the 4-step transfer sequence by creating quotes, adding recipients, building transfer orders, and initiating payments. Vendors in QuickBooks Online map to Wise recipients by name and currency, and bill payments trigger transfer quotes in Wise to show the cost in the destination currency before execution. ml-connector verifies Wise webhook signatures using RSA-SHA256 and the X-Signature-SHA256 header to ensure authenticity, then updates bill payment status in QuickBooks Online when transfers complete or fail. QuickBooks Online's SyncToken requirement means every bill payment update must include the current token, so ml-connector fetches the latest bill payment before patching it. Rate limiting in Wise requires exponential backoff on 429 responses. Transfer quotes expire, so ml-connector recreates them if an execution is delayed, and idempotency keys prevent duplicate charges if a payment retry succeeds after a network error.
A real-world example
A small-to-mid-market services company based in London invoices US and Australian clients in their local currencies but pays offshore freelancers and vendors in GBP. They use QuickBooks Online for accounting and Wise for international transfers and multi-currency accounts. Before the integration, the bookkeeper created a vendor in QuickBooks Online, then manually logged into Wise, initiated a transfer, and came back to QuickBooks Online to record the payment and update the bill status. The process was slow and prone to delays in bill reconciliation, with transfers sometimes not being recorded at all. With QuickBooks Online and Wise connected, creating a vendor and marking a bill as paid in QuickBooks Online triggers a transfer quote in Wise with the final destination amount visible in GBP. Once the transfer is initiated, the bill payment is automatically recorded and linked to the transfer, and balance updates flow back to QuickBooks Online so the accountant always sees the true payment status.
What you can do
- Sync vendor records between QuickBooks Online and Wise recipients so payments reach the correct destination with the right currency.
- Create transfer quotes in Wise based on bill payment amounts in QuickBooks Online to show the exact cost in the destination currency before execution.
- Record Wise transfer state changes and payout failures back into QuickBooks Online bill payments for full reconciliation.
- Verify Wise webhook signatures using RSA-SHA256 and handle token refresh for both QuickBooks Online OAuth and Wise credentials.
- Handle QuickBooks Online SyncToken concurrency control and Wise quote expiry by fetching fresh data before updates.
Questions
- How does ml-connector handle the 4-step Wise transfer sequence when a bill is paid in QuickBooks Online?
- When a bill payment is marked in QuickBooks Online, ml-connector creates a Wise quote to show the destination currency cost, adds or verifies the vendor as a Wise recipient, builds a transfer order with the correct amount, and initiates the payment. All steps use idempotency keys to prevent duplicate transfers if a retry occurs.
- What happens when a Wise transfer state changes or fails?
- Wise webhooks fire transfer state changes and payout failures with RSA-SHA256 signatures that ml-connector verifies. When a transfer completes, ml-connector updates the bill payment status in QuickBooks Online. If a transfer fails, the bill payment is marked as failed so the bookkeeper can retry or choose a different payment method.
- Why does ml-connector need to fetch bill payments before updating them in QuickBooks Online?
- QuickBooks Online requires the current SyncToken on every update for concurrency control and conflict prevention. ml-connector fetches the latest bill payment with its current token before patching it, ensuring the update does not conflict with other changes and the bill stays in sync.
Related integrations
More QuickBooks Online integrations
Other systems that connect to Wise
Connect QuickBooks Online and Wise
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started