Oracle NetSuite and Wise integration
Oracle NetSuite holds your vendors, purchase orders, and accounts payable. Wise moves money across borders cost-effectively. Connecting them lets you initiate and track international vendor payments without leaving Oracle NetSuite. When a vendor bill is approved in Oracle NetSuite, ml-connector can create a Wise transfer and fund it. As Wise executes the payment, ml-connector brings the transfer state back into Oracle NetSuite so you see real-time settlement status without manual polling.
What moves between them
The main flow moves from Oracle NetSuite to Wise. When a vendor bill or vendor payment reaches approved status in Oracle NetSuite, ml-connector reads the payment amount, vendor bank details, and destination currency. It then creates a Wise quote (locked for 10 minutes), adds or validates the Wise recipient, and initiates a Wise transfer with a customerTransactionId keyed to the Oracle NetSuite record. As Wise processes the transfer and executes the payout, it pushes state-change events back to ml-connector, which writes the transfer state, reference ID, and completion timestamp into a custom field or memo on the Oracle NetSuite vendor payment record. Reference data such as vendor addresses and bank details is read in both directions to keep recipient information aligned.
How ml-connector handles it
ml-connector stores Oracle NetSuite OAuth2 credentials (client ID, certificate) and Wise OAuth2 or personal-token credentials encrypted. On the Oracle NetSuite side, it polls vendor payments and bills on a schedule aligned to your payment run cadence (weekly, bi-weekly, or monthly). For each payment ready to send, it fetches the vendor's bank details, destination country, and beneficiary name from Oracle NetSuite, then queries Wise for the current exchange rate via a quote request. If the vendor does not yet exist as a Wise recipient, ml-connector creates one; if the recipient was deleted, it recreates it. ml-connector then initiates the Wise transfer with a unique customerTransactionId derived from the Oracle NetSuite payment ID to prevent duplicates if a retry occurs. On the Wise side, ml-connector receives webhook events when the transfer state changes (pending, processing, completed, failed), decrypts the RSA-SHA256 signature to validate authenticity, and updates the Oracle NetSuite payment record with the Wise transfer ID and current state. If a Wise transfer fails (insufficient balance, rate lock expired, blocked recipient), ml-connector marks the Oracle NetSuite payment as failed and can trigger a retry on the next scheduled run. Oracle NetSuite does not provide native webhooks with HMAC signatures, so ml-connector validates incoming Oracle NetSuite change events by IP allowlist or shared-secret comparison. Quotes expire within 10 minutes, so if a payment is approved but delayed before funding, ml-connector fetches a fresh quote before completing the transfer.
A real-world example
A mid-market product distributor sources inventory from vendors across Southeast Asia and Europe. The finance team approves vendor payments in Oracle NetSuite monthly but must manually log into Wise, look up each vendor's bank details, check exchange rates, and initiate transfers one by one, then return to Oracle NetSuite to record the Wise transfer ID. With Oracle NetSuite and Wise connected, the team sets payment approval in Oracle NetSuite to trigger the transfer automatically. ml-connector pulls the vendor and payment details, creates the transfer in Wise, waits for settlement, and posts the completion status back into Oracle NetSuite. The finance team now sees each international payment journey from approval through settlement without switching systems, and the month-end cash position in Oracle NetSuite stays accurate without manual re-keying.
What you can do
- Initiate Wise transfers from approved vendor payments and bills in Oracle NetSuite, mapped to vendor bank details and destination currencies.
- Fetch live Wise exchange rates and lock them in a quote before funding, so the rate your Oracle NetSuite team sees at approval matches the rate Wise executes.
- Receive Wise state-change events via webhook and update Oracle NetSuite payment records in real time with the Wise transfer ID and settlement status.
- Handle OAuth2 credential refresh on both sides (Oracle NetSuite every 60 minutes, Wise every 12 hours) and manage Wise recipient lifecycle (create, validate, recreate if deleted).
- Track payment reconciliation with idempotency keys so retries do not create duplicate Wise transfers, and log all state transitions in a full audit trail.
Questions
- Does ml-connector handle all the payment steps that Wise requires?
- Yes. ml-connector executes the complete 4-step Wise payment sequence: it fetches or creates a quote for the recipient and currency pair, adds the recipient if not present (or recreates it if deleted), builds a transfer order with the amount and destination, and funds the transfer. It also manages quote expiry by fetching a fresh quote if the payment is approved but delayed before funding.
- How does ml-connector keep Oracle NetSuite and Wise vendor data in sync?
- ml-connector reads vendor bank details and addresses from Oracle NetSuite and uses them to validate or create Wise recipients. Recipients are immutable in Wise, so if a vendor's bank details change in Oracle NetSuite, ml-connector must delete the Wise recipient and recreate it with the new account information. Payment initiation includes the vendor name, address, and beneficiary name from Oracle NetSuite so each Wise transfer carries the correct destination.
- What happens if a Wise transfer fails after Oracle NetSuite approves the payment?
- ml-connector receives the Wise transfers-state-change webhook event indicating failure, decrypts the RSA-SHA256 signature to confirm authenticity, and writes the failure reason and state to the Oracle NetSuite payment record. The payment can then be approved and retried on the next scheduled payment run. ml-connector uses the Oracle NetSuite payment ID as a customerTransactionId in Wise so a retry does not create a duplicate transfer.
Related integrations
More Oracle NetSuite integrations
Other systems that connect to Wise
Connect Oracle NetSuite and Wise
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started