SAP ECC and BILL integration
SAP ECC runs procurement and finance on premises. BILL runs accounts payable and invoice management in the cloud. Connecting the two keeps your purchase orders and vendor records synchronized across systems. When a new PO is created in SAP ECC, it flows into BILL as a bill record so the accounting team can match invoices and schedule payments without re-keying. Vendor master data stays aligned between systems, and a full audit trail tracks every record that moves.
What moves between them
The main flow runs from SAP ECC into BILL. ml-connector polls SAP ECC on a scheduled interval for new and updated purchase orders (via BAPI_PO_GETDETAIL1), translates them to BILL bill records, and posts them into BILL. Vendor master records (BAPI_VENDOR_GETLIST, BAPI_VENDOR_GETDETAIL) also flow from SAP ECC to BILL so the vendor database in BILL stays current with new suppliers and contact information created in the ERP. Payments approved and scheduled in BILL do not flow back to SAP ECC; the integration is read-heavy on the ERP side and write-heavy on BILL.
How ml-connector handles it
ml-connector maintains the SAP .NET Connector or Java Connector configuration on the customer-hosted agent and uses HTTP Basic Auth to establish RFC connections. It polls BAPI_PO_GETDETAIL1 and BAPI_VENDOR_GETLIST on a configurable schedule (e.g., every 4 hours), translating SAP ECC cost centers and GL accounts to BILL's chart of accounts and vendor hierarchy. Each purchase order becomes a BILL bill record tagged with the SAP PO number as an external reference so the accounting team can match invoices to the original PO. ml-connector retrieves a BILL session token by calling POST /v3/login and refreshes it before expiry. BILL enforces a rate limit on concurrent sessions, so ml-connector maintains a single persistent session and queues concurrent writes. If a POST to BILL returns a 4xx or 5xx error, ml-connector retries with exponential backoff, and every record carries a full audit trail so failed transactions can be replayed once the downstream issue is resolved.
A real-world example
A mid-sized manufacturing company runs SAP ECC for procurement and GL, and uses BILL for accounts payable and invoice management. The procurement team creates purchase orders in SAP ECC for materials and subcontracted work, and previously the AP team had to manually re-enter each PO into BILL when supplier invoices arrived, matching vendor names and line-item amounts by hand and often creating duplicate records. With SAP ECC and BILL connected, every PO flows from SAP ECC to BILL automatically, complete with cost center, GL account, and supplier details. When the supplier invoice lands, BILL's matching engine has an accurate PO on file and the AP team can approve and schedule payment in minutes instead of hours spent on data entry and reconciliation.
What you can do
- Poll SAP ECC purchase orders on a scheduled interval and post them to BILL as bill records with full line-item and cost-center detail.
- Sync vendor master data from SAP ECC to BILL so the accounting team works with current supplier names, addresses, and payment terms.
- Translate SAP ECC cost centers and GL accounts to BILL's chart of accounts during the sync so bills post to the correct expense buckets.
- Authenticate SAP ECC via RFC Basic Auth through a customer-hosted agent, and authenticate BILL via session token with automatic refresh before expiry.
- Retry failed API calls with exponential backoff and maintain a full audit trail so records can be replayed if a downstream system becomes unavailable.
Questions
- How does the integration handle SAP ECC's on-premises architecture?
- SAP ECC is on premises and cannot be reached directly from the cloud. ml-connector requires a customer-hosted agent (running SAP .NET Connector or Java Connector) that sits on the customer's network and initiates RFC calls on demand. The agent maintains the connection pool and translates BAPI responses into the format ml-connector sends to BILL.
- Which direction do purchase orders and vendors flow between SAP ECC and BILL?
- The main flow is from SAP ECC into BILL. Purchase orders and vendor master records are read from SAP ECC on a scheduled interval and posted to BILL so the accounting team has an accurate PO and vendor database for invoice matching. Payments approved in BILL do not flow back to SAP ECC; the integration is one-way for procurement and vendor data.
- What happens if the polling schedule misses a PO or a BILL API call fails?
- ml-connector polls on a schedule you set (e.g., every 4 hours). Any PO created between polling cycles is picked up on the next poll. If a POST to BILL times out or returns an error, ml-connector retries with exponential backoff, and every record is logged with a timestamp and result code. If retries are exhausted, the transaction is flagged for manual review and can be replayed once the issue is resolved.
Related integrations
More SAP ECC integrations
Other systems that connect to BILL
Connect SAP ECC and BILL
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started