ml-connector
SAP Business OneTipalti

SAP Business One and Tipalti integration

SAP Business One runs purchasing and finance for growing mid-market manufacturers and distributors. Tipalti handles supplier onboarding, invoice automation, and global mass payments. Connecting the two means purchase orders and incoming supplier invoices flow into Tipalti for approval and payment processing, approved payments come back to SAP Business One with matching GL accounts and profit centers, and payment status and compliance workflows are visible in your ERP at all times.

How SAP Business One works

SAP Business One exposes business partners (suppliers), purchase orders, invoices, incoming payments, outgoing payments, journal entries, chart of accounts, dimensions, and profit centers through OData v4 REST at a customer-specific Service Layer URL (for example https://customer-server:50001/b1s/v2/). Authentication uses a session token obtained via POST /Login that expires after 30 minutes of inactivity. Webhooks are available in version 10.0 FP 2602 and newer if server-side activation is configured, but polling with UpdateDate filters is the recommended default since each customer maintains their own on-premise or partner-hosted instance.

How Tipalti works

Tipalti exposes payees (suppliers), invoices, purchase orders, payments, GL accounts, tax codes, and custom fields through both SOAP/XML and REST/JSON APIs with separate endpoint families and authentication schemes. Invoices and payment operations use HMAC-SHA256 signatures on SOAP or OAuth2 credentials on REST. Tipalti publishes events (payee changes, payment status, compliance requests) to a single IPN webhook endpoint per payer account, verified with HMAC-SHA256 signatures, supporting one-way push from Tipalti to your system in real time.

What moves between them

Purchase orders and invoices move from SAP Business One into Tipalti as bill records for supplier approval and payment processing. Approved payments and GL account assignments flow back to SAP Business One as outgoing payments and journal entries so the ledger reflects what Tipalti has paid. Reference data such as suppliers, GL accounts, and profit centers is kept in sync between the systems so each payment line carries the correct SAP Business One dimension and account code.

How ml-connector handles it

ml-connector stores SAP Business One session credentials and automatically refreshes the login session before the 30-minute inactivity timeout expires, so polling never encounters an expired token. It handles both SOAP and REST transports on the Tipalti side, choosing the right API family and signature scheme for each operation: HMAC-SHA256 for SOAP calls and OAuth2 bearer token for REST. Purchase orders and invoices are mapped from SAP Business One purchase document IDs to Tipalti bill records and payee records using DocNum as the idempotency key (SAP Business One does not publish idempotency keys, so duplicates are detected by checking for existing DocNum before retry). Incoming Tipalti IPN webhooks are verified with HMAC-SHA256 before processing, and approved payments are posted back as outgoing payments in SAP Business One with the GL account and profit center preserved from the order. Poll frequency is configurable and typically tied to your invoice approval cycle.

A real-world example

A mid-market distribution company runs SAP Business One for purchasing and accounting across three regional warehouses. They receive hundreds of supplier invoices monthly and were manually forwarding them to Tipalti for approval and settlement, then hand-posting the payment receipts back to SAP Business One's journal. This created delays, duplicate data entry, and month-end reconciliation headaches. With SAP Business One and Tipalti connected, invoices flow automatically from SAP Business One into Tipalti's approval queue tagged with the correct warehouse and cost center, approved payments route back to the right GL account and profit center, and compliance updates from Tipalti appear in SAP Business One so procurement knows payee status at a glance.

What you can do

  • Push purchase orders and incoming supplier invoices from SAP Business One into Tipalti as bills and payee records for approval and processing.
  • Sync approved payment status and GL account assignments back to SAP Business One as outgoing payments and journal entries.
  • Map suppliers, GL accounts, and profit centers between SAP Business One and Tipalti so every transaction carries the correct financial dimensions.
  • Refresh SAP Business One session tokens automatically before timeout and handle both SOAP and REST transports on the Tipalti side transparently.
  • Verify Tipalti IPN webhooks and receive real-time payment and compliance status updates, with full audit trail and retry on failure.

Questions

How does the integration handle SAP Business One's session token expiry and customer-specific URLs?
ml-connector tracks the 30-minute inactivity timeout and refreshes the login session before it expires, so polling never encounters a 5002 token error. Since each SAP Business One customer provides their own Service Layer URL and port, ml-connector stores the full URL per customer and validates all entity paths against that instance. Session reuse is enforced so a fresh login is not required for every request.
Does the integration support both SOAP and REST on the Tipalti side?
Yes. ml-connector handles both API families transparently, routing SOAP operations to PayeeFunctions and PayerFunctions endpoints with HMAC-SHA256 signatures, and REST operations to the Approve.com endpoint with OAuth2 credentials. The choice depends on the specific operation; most bill and payee work flows through SOAP while payment status queries often use REST.
How are purchase order and invoice duplicates prevented across the two systems?
SAP Business One does not publish idempotency keys, so ml-connector uses the document DocNum (purchase order or invoice number) as the deduplication key when retrying. Before posting a bill to Tipalti, ml-connector checks if a record with that DocNum already exists and skips creation to prevent duplicates on retry.

Related integrations

Connect SAP Business One and Tipalti

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

Get started