Acumatica and SAP Ariba integration
Acumatica Cloud ERP runs financials, AP, and procurement. SAP Ariba runs sourcing, supplier management, and procure-to-pay on the SAP Business Network. Connecting the two keeps the purchase orders and invoices that originate in Ariba reconciled to the vendors and AP bills in Acumatica, without re-keying procurement documents into the ledger. ml-connector reads Ariba reporting data on a schedule and writes it to Acumatica using each system's own API contract, and keeps supplier and vendor master records aligned. It handles the very different authentication and data-access models on each side.
What moves between them
The main flow runs from SAP Ariba into Acumatica. ml-connector submits Ariba reporting jobs for purchase orders, invoices, and requisitions filtered by an updated-date window, polls until each job finishes, downloads the paginated results, and writes them into Acumatica as purchase orders and AP bills mapped to the matching vendors and GL accounts. Vendor master data flows the other direction: Acumatica vendor changes are pushed to the Supplier Data API to keep supplier registration and contact details aligned. Reporting jobs and Acumatica reads run on a schedule you set, since neither side offers a usable webhook for these documents.
How ml-connector handles it
ml-connector stores both credential sets encrypted and presents what each side requires on every request: the Acumatica OAuth token against the tenant instance URL, and for Ariba the Bearer token, the static apiKey header, and the realm query parameter together, since missing any one returns 401. It caches the Ariba token and refreshes it before the one-hour expiry. Because Ariba bulk data is job-based, the connector runs the submit, poll, and download cycle rather than a simple GET, respects the one-year limit on each job's date window by chunking longer backfills, and stores the last successful updatedDateTo as a high-water mark. On the Acumatica side it pins the exact endpoint version, wraps every field value in the required value object, and matches vendors and GL accounts before writing so each bill lands on records that already exist. Ariba reporting job submission is tightly rate limited, so the connector watches the remaining-calls response header and backs off; Acumatica returns 429 once past its license limit, so it retries with exponential backoff and jitter. Supplier writes go through the Supplier Data API status fields only, and PO and invoice write-back is not attempted because Ariba routes those through cXML rather than these REST APIs. Every record carries a full audit trail and can be replayed if a downstream call fails.
A real-world example
A mid-sized manufacturing company, roughly 600 employees across three sites, runs Acumatica Cloud ERP for finance and accounts payable and has standardized procurement on SAP Ariba so buyers raise requisitions and suppliers submit invoices on the Ariba Network. Before the integration, an AP clerk exported purchase order and invoice reports from Ariba each week and re-keyed them into Acumatica bills by hand, which delayed three-way matching and left supplier contact changes out of sync between the two systems. With Acumatica and SAP Ariba connected, the procurement documents flow into Acumatica automatically against the right vendors and accounts, supplier updates propagate back, and the AP team spends its time on exceptions instead of data entry.
What you can do
- Pull SAP Ariba purchase orders, invoices, and requisitions from reporting jobs and write them into Acumatica as purchase orders and AP bills.
- Match Ariba supplier and document data to the correct Acumatica vendors and GL accounts before posting.
- Push Acumatica vendor master changes to the Ariba Supplier Data API to keep supplier records aligned.
- Bridge Acumatica OAuth on the tenant URL with the Ariba Bearer token, apiKey header, and realm query parameter required on every call.
- Run on a schedule with rate-limit-aware backoff, a stored high-water mark, retries, and a full audit trail on every record.
Questions
- Which direction does data move between Acumatica and SAP Ariba?
- The main flow is SAP Ariba into Acumatica: purchase orders, invoices, and requisitions are pulled from Ariba reporting jobs and written into Acumatica as purchase orders and AP bills. Vendor master data moves the other way, from Acumatica to the Ariba Supplier Data API, to keep supplier details aligned. Ariba does not accept PO or invoice write-back through these REST APIs, so ml-connector does not post procurement documents back into Ariba.
- Why does SAP Ariba need polling instead of webhooks?
- The SAP Ariba Open APIs do not offer a general outbound webhook for procurement documents; bulk data is delivered through asynchronous reporting jobs that you submit, poll, and download. ml-connector runs that cycle on a schedule, filters each job by an updated-date window, and stores the last successful timestamp so only new and changed records are processed. Acumatica reads use the same incremental approach with a LastModifiedDateTime filter.
- How does ml-connector handle the two credentials SAP Ariba requires?
- Every Ariba call needs both an OAuth client-credentials Bearer token and a static apiKey header, with the realm passed as a query parameter, and missing any one returns 401. ml-connector stores the client secret and application key encrypted, attaches all three to each request, and caches the token with a refresh before its one-hour expiry. On the Acumatica side it manages the separate OAuth login against the customer's tenant instance URL.
Related integrations
More Acumatica integrations
Other systems that connect to SAP Ariba
Connect Acumatica and SAP Ariba
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started