ml-connector
SYSPROWise

SYSPRO and Wise integration

SYSPRO runs manufacturing finance and procurement for mid-market operations. Wise moves money across borders at competitive rates. Connecting the two means your approved vendor invoices in SYSPRO can flow into Wise for international payment without re-keying, transfer status updates from Wise can close out SYSPRO payment records, and your multi-currency account balances in Wise are visible back in SYSPRO for cash position reporting. This eliminates manual payment entry and keeps cash flow synchronized across both systems.

How SYSPRO works

SYSPRO exposes suppliers, supplier addresses, purchase order headers and details, accounts payable invoices, GL master records, inventory, and internal transfer data through e.net Business Objects (REST/SOAP read+write) and OData REST (read-only with HTTP Basic Auth), authenticated with a session token obtained via Utilities/Logon. SYSPRO cloud and on-premise editions use customer-supplied server URLs with no shared SaaS base address. OData supports timestamp filtering for polling, recommended at 5-15 minute intervals for financial data. SYSPRO has no outbound webhook capability, so all reads are pull-based.

How Wise works

Wise exposes profiles, multi-currency balances, balance statements, vendor recipients, quotes, transfers, and transaction activity through REST APIs at https://api.wise.com, authenticated with OAuth2 bearer token (12-hour expiry, long-lived refresh tokens) or a long-lived Personal API Token. Wise pushes transfer state changes, payout failures, balance updates, and verification state changes through registered webhooks with RSA-SHA256 signature verification via X-Signature-SHA256 header. Transfers require a four-step sequence: quote, recipient, transfer order, and fund payment. Profile ID is required on most endpoints and must be retrieved on first call.

What moves between them

Approved vendor invoices and payment records flow from SYSPRO into ml-connector on a schedule you control. ml-connector matches vendor records in SYSPRO with registered recipients in Wise, creates fresh quotes for each transfer amount and currency, and executes the payment. Transfer state changes from Wise (completed, failed, pending funds) push back to ml-connector via webhook, where they update SYSPRO invoice payment status and reconciliation GL postings. Balance updates from Wise notify ml-connector of multi-currency account changes for cash position reporting back into SYSPRO.

How ml-connector handles it

ml-connector polls SYSPRO's OData ApInvoice and ApSupplier tables on your schedule, filtering by invoice date and payment status to find unpaid items. For each invoice, it looks up the supplier's registered Wise recipient (created offline or via prior integration batch) and requests a fresh Wise quote for the amount and currency. Once the quote is confirmed, ml-connector executes the transfer through Wise's four-step process (quote, recipient, transfer, fund payment) and stores the transfer ID encrypted, indexed back to the SYSPRO invoice number. When Wise fires a transfersstate-change webhook, ml-connector verifies the RSA-SHA256 signature, looks up the invoice, and updates SYSPRO's payment status and GL posting timestamp. OAuth2 token refresh happens transparently on 401 responses. Rate limits on Wise (100 req/sec) are respected with exponential backoff and jitter. SYSPRO session tokens are cached and refreshed before expiry to avoid mid-batch logoff.

A real-world example

A mid-market discrete manufacturer headquartered in North America with suppliers across Europe and Asia uses SYSPRO for procurement and finance, and Wise for international vendor payments at better rates than their bank's standard FX and fees. Previously, the payables team approved invoices in SYSPRO, exported payment data to a spreadsheet, manually entered each vendor and amount into Wise, monitored transfer states in email, and re-entered the completed transfer confirmations back into SYSPRO for GL posting. With SYSPRO and Wise connected, the daily payment batch flow runs unattended: invoices marked for payment automatically execute through Wise at the day's best rate, transfer confirmations flow back to SYSPRO to close the invoice and the GL posting, and the cash position in Wise's multi-currency balances is visible in SYSPRO's cash reporting dashboard. Manual payment entry is gone, and FX hedging decisions can be made with real-time balance visibility.

What you can do

  • Poll SYSPRO approved vendor invoices on a schedule you control and execute international payments through Wise without manual re-entry.
  • Match SYSPRO vendors with Wise recipients and automatically request quotes in the vendor's local currency.
  • Update SYSPRO invoice payment status and GL posting reconciliation as transfer state changes arrive from Wise webhooks.
  • Handle OAuth2 token refresh, SYSPRO session token expiry, Wise quote expiry, and rate limits with transparent retry logic.
  • Sync Wise multi-currency account balances back into SYSPRO for cash position visibility and reporting.

Questions

Which direction does data move between SYSPRO and Wise?
Approved vendor invoices and supplier records flow from SYSPRO to Wise for payment execution. Transfer state changes and multi-currency balance updates push from Wise back to SYSPRO via webhooks for reconciliation and cash reporting. SYSPRO invoices are the source of truth for what to pay; Wise execution and status are the source of truth for transfer state.
How does ml-connector handle the different authentication methods on each side?
SYSPRO uses a session token obtained via Utilities/Logon, cached and refreshed before expiry to avoid session timeout during large payment batches. Wise uses OAuth2 bearer token with 12-hour expiry, automatically refreshed on 401 responses, or alternatively a long-lived Personal API Token. Both credential sets are stored encrypted in ml-connector's database.
Does the integration work with both SYSPRO cloud and on-premise editions?
Yes. ml-connector accepts the customer-supplied SYSPRO server URL for both cloud and on-premise editions, since SYSPRO publishes no shared SaaS base address. OData polling and e.net Business Objects authentication work identically on both. Wise is always cloud-hosted, so all Wise calls go to https://api.wise.com or the sandbox environment.

Related integrations

Connect SYSPRO and Wise

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started