SAP ECC and Tipalti integration
SAP ECC runs procurement, finance, and vendor data on an on-premises host. Tipalti automates accounts payable and mass payments, with compliance and tax handling for global suppliers. Connecting the two lets you maintain vendors in SAP ECC while Tipalti manages supplier onboarding, invoice approval workflows, and payment execution, then posts payment confirmations back to SAP's general ledger. ml-connector bridges the on-premises RFC agent and Tipalti's cloud API, keeping the two systems in sync without manual intervention.
What moves between them
The integration flows in both directions. Vendors and cost centers are synced from SAP ECC to Tipalti as payees with custom field mappings, establishing the vendor master once. Purchase orders flow from SAP ECC to Tipalti to trigger invoice matching workflows. After approval in Tipalti, invoices are posted back to SAP ECC as AP line items via BAPI_ACC_DOCUMENT_POST, allocated to the GL accounts and cost centers originally sent. Payment confirmations arrive via Tipalti webhooks and update the SAP invoice status, completing the cycle. Changes in either system (vendor name, cost center, payment status) are synced on a configurable schedule, typically daily or weekly.
How ml-connector handles it
ml-connector maintains a persistent connection to SAP ECC via the on-premises RFC agent (NCo or JCo), using RFC_READ_TABLE to poll for new or changed vendors, POs, and GL accounts on a schedule. It translates SAP vendor numbers and cost center codes to Tipalti payee identifiers, storing the mapping encrypted. For vendor data, it reads from LFA1/LFB1 and attaches SAP GL account and cost center references as custom fields in Tipalti. When an invoice is approved in Tipalti, ml-connector retrieves it via REST, maps the payee and line items back to SAP GL accounts, and posts an AP document via BAPI_ACC_DOCUMENT_POST with a unique REF_DOC_NO to prevent duplicates on retry. Payment confirmations arrive as Tipalti webhooks, verified with HMAC-SHA256, and update SAP invoice status via BAPI_ACC_DOCUMENT_CHANGE. The RFC_READ_TABLE has a 512-character row width limit, so wide vendor records are fetched via OData instead. Character encoding issues are handled by setting ABAP_AS_CODEPAGE in the RFC agent. Rate limits on SAP ECC are not published, but safe throughput is 10-50 concurrent RFC calls.
A real-world example
A mid-market global manufacturer operates SAP ECC on-premises, with vendors in 15 countries and complex cost center hierarchies for each factory. Finance manually manages accounts payable in spreadsheets, matching invoices to purchase orders, handling currency conversions and tax compliance per country, then re-entering approved payments into SAP ECC before bank submission. With SAP ECC and Tipalti connected, vendors are synced once into Tipalti's supplier onboarding system, invoices are auto-matched to POs with approval rules per cost center, and payment confirmations flow back into SAP's GL automatically. The finance team no longer re-keys invoices or payments, month-end close completes faster, and vendor compliance (OFAC, tax documentation) is handled centrally by Tipalti while SAP maintains the authoritative GL.
What you can do
- Sync vendors and cost centers from SAP ECC to Tipalti, with GL account and cost center references stored as custom payee fields for invoice matching.
- Post Tipalti-approved invoices back to SAP ECC as AP documents via BAPI_ACC_DOCUMENT_POST, allocated to the correct GL accounts and cost centers.
- Link SAP ECC purchase orders to Tipalti invoices for three-way matching and approval workflows.
- Bridge RFC/BAPI and Tipalti webhooks with retry-safe deduplication using SAP ECC REF_DOC_NO and Tipalti HMAC verification.
- Receive payment confirmation events from Tipalti and update SAP ECC invoice status in real-time via BAPI_ACC_DOCUMENT_CHANGE.
Questions
- How does the integration connect to SAP ECC if it runs on-premises?
- ml-connector uses the on-premises RFC agent (SAP .NET Connector or Java Connector) running on the customer's network to call RFC_READ_TABLE and BAPI functions directly against the SAP system. The agent is not exposed to the internet; ml-connector communicates with it over a private network or VPN tunnel configured by the customer's IT team. This is the standard approach for any cloud-to-SAP integration when the SAP system is on-premises.
- What happens when an invoice is approved in Tipalti but the GL account has changed in SAP ECC?
- ml-connector uses the GL account and cost center mappings stored in Tipalti custom fields at the time the vendor was synced. When posting the AP document via BAPI_ACC_DOCUMENT_POST, it retrieves the current GL account from Tipalti and validates that the account still exists in SAP ECC via BAPI_GL_ACC_GETDETAIL. If the account has been deleted or inactivated, the post fails and returns an error with the invoice ID; finance is alerted to resolve the mapping before re-submitting the payment batch.
- Can payment confirmations from Tipalti update SAP ECC in real-time?
- Yes. Tipalti publishes payment completion events to a webhook endpoint that ml-connector provides, verified with HMAC-SHA256. When a payment is marked completed in Tipalti, the webhook immediately triggers an update to the SAP ECC invoice status via BAPI_ACC_DOCUMENT_CHANGE, marking it as posted or paid. This eliminates manual status updates and keeps the two systems in agreement within seconds of bank submission.
Related integrations
More SAP ECC integrations
Other systems that connect to Tipalti
Connect SAP ECC and Tipalti
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started