ml-connector
SYSPROTipalti

SYSPRO and Tipalti integration

SYSPRO runs manufacturing and distribution finance. Tipalti automates accounts payable and mass payments for global suppliers. Connecting the two keeps your supplier data, invoices, and payment records in a single source of truth. New suppliers created in SYSPRO appear in Tipalti for onboarding, invoices route from SYSPRO into Tipalti for approval, and approved payments post back into SYSPRO's general ledger with full traceability. ml-connector bridges the two systems and moves the data on a schedule aligned with your payment cycle.

How SYSPRO works

SYSPRO (versions 8 and earlier) exposes suppliers, invoices, purchase orders, GL accounts, cost centers, and goods receipts through e.net Business Objects (REST and SOAP with read-write support) and OData endpoints (REST with read-only support). Cloud and on-premise instances authenticate with a session token obtained by login to Utilities/Logon, returning a UserId GUID that is passed on subsequent calls, or with HTTP Basic Auth credentials (operator code and OData password) for read-only access. Each SYSPRO customer provides their own server URL, as there is no shared SaaS base URL. SYSPRO does not publish webhooks, so data is read by polling OData tables on timestamp fields like PostDate and InvoiceDate at regular intervals.

How Tipalti works

Tipalti is a cloud-native accounts payable and payment platform that exposes suppliers (called Payees), invoices, purchase orders, payment batches, GL accounts, and GRNs through two distinct API families: SOAP endpoints at https://api.tipalti.com/v14 (PayeeFunctions and PayerFunctions) authenticated with HMAC-SHA256 signatures (payer_name and api_key), and REST endpoints at https://triggers.approve.com authenticated with OAuth2 client credentials or static x-api-key headers. Tipalti can push payment lifecycle events (payee_details_changed, payment_submitted, payment_cancelled, payments_group_approved, completed, error) to a single account-wide IPN webhook endpoint, verified with HMAC-SHA256.

What moves between them

Supplier records and invoices flow from SYSPRO into Tipalti for processing. Each SYSPRO ApSupplier maps to a Tipalti Payee, and ApInvoice records are created or updated in Tipalti's invoice list. Once approved and paid in Tipalti, payment records and GL postings flow back into SYSPRO's general ledger (GenMaster) with matching GL accounts and cost center references. The sync runs on a schedule tied to your payment cycle, typically daily or twice-daily, so invoices can be processed end-to-end without manual re-entry.

How ml-connector handles it

ml-connector stores SYSPRO credentials (server URL and operator code/OData password) encrypted and obtains a session token on each polling cycle, parsing the UserId GUID from the Utilities/Logon response. It polls SYSPRO OData tables for ApSupplier, ApInvoice, and GenBalance on the configured schedule and transforms each supplier into a Tipalti Payee and each invoice into a Tipalti Invoice via SOAP calls with computed HMAC-SHA256 signatures. Tipalti IPN events (payment_submitted, completed) are received at ml-connector's webhook endpoint, verified with HMAC-SHA256, and mapped back to SYSPRO ApPosting and GenMaster records. Cost centers and GL accounts are pre-mapped so payments land on valid SYSPRO dimensions, and a full audit trail is kept for every record. If a Tipalti payment call fails, ml-connector stores it for replay when the downstream system is reachable.

A real-world example

A mid-market distribution company runs SYSPRO for inventory, purchase orders, and finance across three regional warehouses, and uses Tipalti to manage payments to 400 suppliers globally, including compliance and tax form collection. Before the integration, the accounts payable team entered invoices manually from SYSPRO into Tipalti each week, then manually posted approved Tipalti payments back into SYSPRO's general ledger at month-end, introducing lag and re-keying errors that delayed reconciliation. With SYSPRO and Tipalti connected, invoices flow automatically, approvals in Tipalti trigger status updates in SYSPRO, and payments post into the ledger immediately, compressed from a weekly manual cycle to real-time, and month-end close is faster and error-free.

What you can do

  • Sync SYSPRO suppliers into Tipalti Payees and maintain a two-way match as supplier details change in either system.
  • Pull SYSPRO invoices and post them into Tipalti for approval, payment processing, and compliance collection without manual re-entry.
  • Route Tipalti payment events (submitted, approved, paid, failed) back into SYSPRO invoice status fields so AP staff see payment progress in the ERP.
  • Post approved Tipalti payments and GL entries into SYSPRO's general ledger, allocated to the correct cost centers and GL accounts.
  • Handle SYSPRO session token lifecycle and Tipalti HMAC-SHA256 signature verification on every call, with a full audit trail on each record.

Questions

Which direction does data move between SYSPRO and Tipalti?
Suppliers and invoices flow from SYSPRO into Tipalti for processing. Approved payments and GL postings flow back into SYSPRO. Reference data such as cost centers and GL accounts are aligned in both directions so payments land on valid SYSPRO dimensions and reconciliation is seamless.
How does ml-connector handle SYSPRO's session token and Tipalti's HMAC signatures?
ml-connector logs into SYSPRO's Utilities/Logon endpoint on each polling cycle, extracts the UserId GUID, and uses it on subsequent OData calls. For Tipalti SOAP calls, it computes HMAC-SHA256 signatures using the payer name and API key, and verifies IPN webhook payloads the same way before processing events.
Does the integration support SYSPRO on-premise and cloud instances?
Yes. SYSPRO customers supply their own server URL and credentials, whether running cloud or on-premise versions. ml-connector accepts each URL and credential set separately per customer, so the integration works across any SYSPRO deployment model.

Related integrations

Connect SYSPRO and Tipalti

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

Get started