SAP ECC and Basware integration
SAP ECC runs manufacturing and finance on-premises. Basware runs AP automation and e-invoicing in the cloud. Connecting the two keeps your vendor master data aligned, purchase orders synchronized, and invoices posted to the general ledger without re-keying. ml-connector handles the different transports on each side and moves records on a schedule you control.
What moves between them
The integration synchronizes bidirectionally. Vendor records and purchase orders flow from SAP ECC into Basware to populate the vendor master and contract data, using OAuth2 authentication and regional endpoint routing. Basware accounting documents flow back into SAP ECC on a polling schedule, mapped to SAP GL accounts and cost centers, and are posted to the GL using BAPI_ACC_DOCUMENT_POST with an explicit transaction commit. The REF_DOC_NO field in SAP GL documents acts as an idempotency key to prevent duplicate posts on retry.
How ml-connector handles it
ml-connector runs an on-premises agent or connects directly to SAP Gateway for OData polling, storing both credential sets encrypted. On the SAP side, it polls vendors via BAPI_VENDOR_GETLIST and purchase orders via BAPI_PO_GETDETAIL1 on a defined schedule. Vendor and PO records are normalized and posted to Basware via OAuth2 authenticated REST calls, with the regional endpoint determined by customer configuration. On the return path, ml-connector polls Basware's accountingDocuments endpoint or receives webhook push notifications, maps invoice lines to SAP GL accounts and cost centers, and posts them to the GL using BAPI_ACC_DOCUMENT_POST followed by BAPI_TRANSACTION_COMMIT. The RFC_READ_TABLE operation respects SAP's 512-character row width limit, and Basware OAuth2 tokens are refreshed before expiry to avoid mid-request failures. Every record carries an audit trail and can be replayed if a downstream call fails.
A real-world example
A mid-sized manufacturing company runs SAP ECC on-premises for production planning and finance, and uses Basware in the cloud for AP automation and vendor management. Before the integration, the AP team manually entered invoice data from Basware into SAP GL each week, and the procurement team kept vendor master data in sync by hand. With SAP ECC and Basware connected, vendors created in Basware populate SAP automatically on the next sync cycle, purchase orders from SAP ECC populate Basware contracts, and invoices posted in Basware flow into SAP GL without re-keying. Month-end close and invoice reconciliation are now automated, and the finance team spends less time on manual data entry.
What you can do
- Poll vendors and purchase orders from SAP ECC and post them to Basware as vendor records and contracts.
- Receive Basware accounting documents via webhook or polling and post them to the SAP GL with the correct cost center allocation.
- Authenticate SAP ECC with HTTP Basic Auth and RFC/BAPI, and Basware with OAuth2, managing token refresh and regional endpoint routing.
- Prevent duplicate GL posts by using the REF_DOC_NO idempotency key and explicit BAPI_TRANSACTION_COMMIT calls.
- Track every vendor sync, PO mapping, and GL post in a full audit trail for compliance and troubleshooting.
Questions
- Which direction does data move between SAP ECC and Basware?
- Vendors and purchase orders flow from SAP ECC into Basware to populate the vendor master and contract data. Basware accounting documents flow back into SAP ECC and are posted to the GL using BAPI_ACC_DOCUMENT_POST with cost center allocation. Manual vendor edits in the Basware UI will be overwritten on the next API sync, so vendor management must be authoritative in SAP ECC.
- How does ml-connector handle SAP ECC's on-premises agent requirement and Basware's regional endpoints?
- ml-connector runs or connects to an on-premises agent that uses SAP .NET Connector or Java Connector to originate RFC and BAPI calls. For Basware, ml-connector determines the regional endpoint at connection time based on customer configuration, routing API calls to the correct region (EU, US, AU, or CA) and refreshing OAuth2 tokens before they expire.
- What happens if a GL post to SAP ECC fails after Basware has already processed the invoice?
- ml-connector stores both credential sets encrypted and tracks every GL post attempt in the audit log. If a BAPI_ACC_DOCUMENT_POST call fails, the record is marked for replay, and the next retry uses the same REF_DOC_NO to prevent a duplicate post once the issue is resolved. The full audit trail shows which invoices have been attempted and the status of each transaction.
Related integrations
More SAP ECC integrations
Other systems that connect to Basware
Connect SAP ECC and Basware
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started