Zoho Books and Wise integration
Zoho Books tracks payables and vendor payments across multiple currencies. Wise moves money globally to vendor bank accounts. Connecting the two lets you automate the step from an approved vendor payment in Zoho Books to a live transfer in Wise, skipping manual payment order entry and reconciliation against payout confirmations. Multi-currency vendors are paid at Wise's rates without leaving Zoho Books.
What moves between them
Approved vendor payments in Zoho Books flow into Wise as transfers. The connector reads vendor payments from Zoho Books (via webhooks or polling), looks up or creates the matching recipient in Wise, initiates the transfer sequence (quote, recipient, transfer order, fund), and stores the transfer ID in Zoho Books for reconciliation. Payout state changes from Wise (sent, failed, completed) are received via webhooks and used to update the payment status in Zoho Books. Multi-currency payments are supported: Zoho Books provides the amount and currency, and Wise handles the conversion at Wise rates.
How ml-connector handles it
ml-connector stores Zoho Books OAuth2 credentials (client ID, client secret, refresh token) encrypted and routes all calls to the correct regional base URL determined by the region field returned at authentication. It refreshes the Zoho Books access token proactively at 55 minutes to avoid token expiry mid-request. For Wise, it stores either an OAuth2 token pair or a Personal API Token. When a vendor payment is approved in Zoho Books, ml-connector fetches the vendor contact record to extract the bank account details, then initiates the Wise transfer sequence: first it creates a quote using the payment amount and destination currency, then it creates or reuses the recipient record (using the account details from Zoho Books), then it creates the transfer order linked to the quote and recipient, and finally it funds the transfer. Each step is idempotent using Wise's customerTransactionId field, keyed to the Zoho Books payment ID. Payout state changes from Wise arrive via webhook and are matched back to the original payment for status reconciliation. If a quote expires or a recipient is invalid, the connector retries with a fresh quote and recipient record. Rate limits on both sides (Zoho Books 100/minute, Wise 100/second) are handled with exponential backoff and jitter.
A real-world example
A mid-market import-export company uses Zoho Books for invoicing and payables across 5 currencies and 12 major vendor countries. Before the integration, the finance team approved vendor payments in Zoho Books, exported the data weekly, and manually set up each transfer in Wise, then waited for state changes to post them back to Zoho Books for reconciliation. With Zoho Books and Wise connected, each approved payment automatically flows to Wise as a transfer within minutes, routed to the correct vendor bank account at the current Wise rate, and payout confirmations post back to Zoho Books without manual intervention. The finance team now spends time reviewing and approving payments, not re-entering them.
What you can do
- Automatically create Wise transfers from approved vendor payments in Zoho Books, with correct recipient routing and multi-currency conversion.
- Execute Wise's 4-step transfer sequence (quote, recipient, order, fund) idempotently, keyed to Zoho Books payment IDs.
- Handle Zoho Books regional routing (US, EU, India, Australia, Japan, Canada, China, Saudi Arabia) and OAuth2 token refresh.
- Receive and reconcile Wise payout state changes (sent, failed, completed) back to Zoho Books payment records via webhooks.
- Manage Wise recipient creation, quote expiry, and retry logic for failed transfers with full audit trail on every step.
Questions
- What happens if a Wise quote expires before the transfer is funded?
- Wise quotes have a fixed validity window (typically a few minutes to hours depending on the currency pair). ml-connector monitors quote expiry and creates a fresh quote if the original expires before the transfer is fully funded. The new quote is linked to the same transfer order via the idempotent customerTransactionId, so Wise deduplicates and does not charge twice.
- How does the connector handle multi-currency vendors in Zoho Books?
- Zoho Books stores the payment currency and amount on each vendor payment record. ml-connector reads both fields, and Wise's quote endpoint handles the currency conversion at current rates. The vendor's bank account in Wise defines the destination currency, and Wise routes the converted amount to the correct account.
- Can the integration handle vendor payments for bank accounts in countries Wise does not support?
- No. Wise's recipient API requires the destination bank account to be in a supported country. ml-connector validates the recipient country against Wise's supported list before attempting to create the recipient or transfer. If a vendor is in an unsupported country, the payment fails with a clear error and is logged for manual review in Zoho Books.
Related integrations
More Zoho Books integrations
Other systems that connect to Wise
Connect Zoho Books and Wise
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started