ml-connector
Infor CloudSuiteTipalti

Infor CloudSuite and Tipalti integration

Infor CloudSuite runs the finance and procurement backbone for mid-market manufacturers and distributors. Tipalti automates accounts payable and mass payments across global suppliers. When the two are connected, purchase orders and invoices flow from CloudSuite into Tipalti for approval and payment, and approved payment records flow back into CloudSuite's general ledger for reconciliation. ml-connector bridges the two different API families and auth schemes, so invoice approval workflows and payment posting happen automatically without manual handoffs.

How Infor CloudSuite works

Infor CloudSuite exposes suppliers, invoices, purchase orders, GL accounts, and payment transactions through REST APIs via the ION Gateway, using M3 managed APIs (CRS620MI for suppliers, APS100MI for invoices, PPS100MI for POs, APS110MI for payments). Authentication is OAuth2 with service account credentials registered in the tenant's ION configuration, and the base URL and tenant ID are specific to each customer and region. CloudSuite has no native self-service webhooks, so invoice and PO data are read by polling the list APIs filtered by modified date or status. Token lifetime ranges from 1 to 24 hours depending on tenant policy. ION BOD document flows can push updates via subscription, but that requires administrator configuration in ION Desk rather than programmatic setup.

How Tipalti works

Tipalti is an accounts payable and payments platform with SOAP and REST APIs. SOAP endpoints at https://api.tipalti.com authenticate with HMAC-SHA256 signatures (payer name plus API key), while REST endpoints at https://triggers.approve.com authenticate with OAuth2 client credentials or static API key headers. Tipalti manages payees, invoices, purchase orders, payments, GL accounts, and custom fields. It pushes real-time events (payee changes, payment submissions, approvals, errors) to a single IPN webhook endpoint per payer account, and the webhook is verified via HMAC-SHA256 matching the request body signature.

What moves between them

Purchase orders and invoices flow from Infor CloudSuite into Tipalti where they are reviewed and approved. Once a payment is approved in Tipalti, ml-connector pulls the payment record and posts it as a GL transaction in CloudSuite, allocated to the original PO line item's GL account and cost center. Supplier master records are synced from CloudSuite to Tipalti on a schedule to keep payee details current. Payment status changes (approved, submitted, error) arrive in real time from Tipalti's IPN webhooks, triggering GL posting workflows without polling.

How ml-connector handles it

ml-connector handles CloudSuite's OAuth2 token refresh cycle (1 to 24 hour lifetime) and stores the OAuth endpoint and credentials encrypted per customer. For Tipalti, it stores the API key or OAuth credentials and presents the appropriate auth scheme (HMAC or OAuth2) on each call. Because CloudSuite has no outbound webhooks for invoice or PO changes, ml-connector polls the M3 APS100MI and PPS100MI list endpoints on a schedule, filtering by modified date or status to avoid re-processing the same records. Tipalti's IPN webhooks arrive in real time, carrying the payer name, event type, and HMAC signature; ml-connector verifies the signature against the stored API key before processing. GL postings reference both the supplier ID from the PO and the GL account string from CloudSuite's CRS630MI, so every payment maps to a valid GL dimension. Tipalti's SOAP and REST endpoints use different function signatures, so ml-connector selects the right family per operation. Rate limiting is managed by respecting CloudSuite's 100-500 req/min guardrails and Tipalti's standard response codes, with exponential backoff on 429 responses. Every record carries a full audit trail and can be replayed if a downstream GL post fails.

A real-world example

A mid-sized manufacturing company runs Infor CloudSuite for finance, procurement, and production costing, and manages global supplier payments through Tipalti. Before the integration, the AP team created purchase orders in CloudSuite, emailed them to Tipalti for approval and payment, then manually re-entered payment records back into CloudSuite's GL at month-end. With CloudSuite and Tipalti connected, each PO flows automatically into Tipalti for review, and once approved and paid, the payment posts directly into the GL with the correct cost center, cutting the manual PO-to-payment cycle from three days to real-time and eliminating month-end GL reconciliation delays.

What you can do

  • Sync suppliers and purchase orders from Infor CloudSuite to Tipalti for approval and payment processing.
  • Post approved payments from Tipalti back into Infor CloudSuite's general ledger, mapped to the original PO and cost center.
  • Receive real-time payment status changes from Tipalti's IPN webhooks (approved, submitted, error) and trigger GL postings without polling.
  • Handle Infor CloudSuite's variable OAuth token lifetime and Tipalti's HMAC and OAuth2 authentication schemes transparently.
  • Poll Infor CloudSuite on a schedule filtered by modified date to avoid re-processing invoices and orders, with full audit trail and error replay.

Questions

Does data flow both directions, or only from CloudSuite to Tipalti?
Both. Purchase orders and invoices flow from CloudSuite to Tipalti for approval and payment. Once a payment is approved in Tipalti, ml-connector pulls the payment record and posts it as a GL transaction back into CloudSuite's general ledger, mapped to the original purchase order and cost center.
How does ml-connector handle the different authentication schemes between Infor CloudSuite and Tipalti?
Infor CloudSuite uses OAuth2 with service account credentials registered in ION; ml-connector refreshes the bearer token automatically before expiry (1 to 24 hours depending on tenant policy). Tipalti uses HMAC-SHA256 for SOAP calls and OAuth2 or static API key for REST; ml-connector stores both credential sets encrypted and presents the correct scheme per endpoint.
Does ml-connector process every invoice change in real time, or on a schedule?
Infor CloudSuite has no native webhooks for invoices or POs, so ml-connector polls the M3 list APIs on a schedule, filtering by modified date or status to avoid re-processing. Tipalti sends payment status changes in real time via IPN webhooks (approved, error, submitted), which trigger immediate GL posting workflows.

Related integrations

Connect Infor CloudSuite and Tipalti

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

Get started