ml-connector
MYOBSAP Ariba

MYOB and SAP Ariba integration

MYOB handles your accounting: contacts, purchase orders, invoices, and general ledger accounts. SAP Ariba handles your procurement and supplier relationships. Connecting them keeps your supplier master and purchase orders synchronized between accounting and procurement, so a new supplier added to MYOB flows to Ariba before the next purchase order, and invoiced orders in Ariba are reflected in MYOB's accounts payable ledger. ml-connector maps MYOB's contact and purchase structure to Ariba's supplier and purchase order entities and handles the different authentication methods each system requires.

How MYOB works

MYOB Business API (AccountRight Live API v2) exposes SME cloud accounting including contacts (suppliers, customers, employees), purchase orders, bills, sales invoices, GL accounts, tax codes, and inventory items through REST endpoints with OData v3 query parameters. Authentication requires three headers on every call: an OAuth2 Bearer token (20-minute expiry), an API key (x-myobapi-key), and Base64-encoded company file credentials (x-myobapi-cftoken). The cloud product polls using LastModified timestamps since MYOB does not support webhooks. Rate limits are 8 requests per second and 1 million per day; RowVersion fields are required on updates to prevent conflicts.

How SAP Ariba works

SAP Ariba (SAP Ariba Procure-to-Pay) exposes purchase orders, invoices, requisitions, contracts, suppliers, and sourcing events through REST Open APIs at openapi.ariba.com and api.ariba.com. Every request requires OAuth2 client credentials (with 1-hour token expiry) plus a static API key header. Data flows through async reporting jobs with annual date-window limits, returning paginated results up to 50,000 records per call and 2 million per day. Most write operations use SOAP/cXML, not REST, making the REST APIs primarily read-oriented for procurement documents. Realm must be appended as a query parameter on every call.

What moves between them

MYOB suppliers (Contact records) and purchase orders (Purchase/Order records) flow to SAP Ariba as suppliers and purchase orders, respecting the annual window limit on Ariba's async reporting jobs. Bills in MYOB (Purchase/Bill records) map to invoices in Ariba, and sync runs on a schedule aligned to your accounts payable cycle. Direction is primarily MYOB into Ariba since Ariba's REST APIs are read-focused and write operations prefer SOAP/cXML; supplier master updates in MYOB take precedence over Ariba updates to avoid conflicts.

How ml-connector handles it

ml-connector caches the OAuth2 bearer tokens from both systems, refreshing MYOB's token every 19 minutes and Ariba's every 55 minutes before expiry. On the MYOB side, it supplies all three required headers (Bearer token, API key, company file credentials) and polls using OData $filter on LastModified to detect changes since the last sync. For Ariba, ml-connector builds async reporting jobs with updatedDateFrom and updatedDateTo windows (respecting the one-year maximum), submits the job, polls for completion by jobId, and downloads paginated results. It maps MYOB Contact UID to Ariba supplier ID and MYOB Purchase/Order UID to Ariba PurchaseOrder UID, and it pre-validates that MYOB RowVersion on updates prevents 409 conflicts. Because Ariba writes prefer SOAP/cXML over REST, ml-connector does not attempt invoice write-back to Ariba; instead it reads MYOB bills and posts their totals to Ariba's analytical reporting data. Every record carries a jobId for idempotency.

A real-world example

A mid-sized professional services firm in New Zealand uses MYOB for accounting and invoicing, and SAP Ariba for supplier sourcing and contract management across their three offices. Before integration, the procurement team maintained a spreadsheet of approved suppliers in Ariba and a separate master in MYOB, and when finance added a new vendor to pay for subcontractor services, procurement had to manually add it to Ariba contracts. With MYOB and Ariba connected, new suppliers added to MYOB's contact list flow to Ariba overnight, existing suppliers' payment terms stay synchronized, and invoiced orders visible in MYOB are already recorded in Ariba's procure-to-pay audit trail. Reconciliation of supplier master records between systems is eliminated.

What you can do

  • Sync MYOB suppliers (Contact records) to SAP Ariba supplier master on your defined schedule.
  • Map MYOB purchase orders to Ariba purchase orders, keeping procurement records aligned with accounting.
  • Flow MYOB bills into Ariba's analytical reporting data, linking accounts payable to procure-to-pay.
  • Authenticate MYOB with OAuth2 plus company file credentials and Ariba with OAuth2 plus API key, handling token refresh before expiry.
  • Poll MYOB with OData LastModified filtering and Ariba with async reporting jobs, respecting annual date-window limits and pagination constraints.

Questions

Why does ml-connector primarily sync from MYOB to Ariba and not the other way?
Ariba's REST Open APIs are read-oriented for procurement documents. Most write operations in Ariba use SOAP/cXML rather than REST, which is outside the scope of this integration. ml-connector reads supplier and purchase data from Ariba and posts it to MYOB's GL, but primary writes remain on MYOB side to avoid conflicts between accounting and procurement.
How does ml-connector handle MYOB's three-header authentication requirement?
Every MYOB API call requires an OAuth2 Bearer token (with 20-minute expiry), an API key header (x-myobapi-key), and Base64-encoded company file credentials (x-myobapi-cftoken). ml-connector supplies all three on each request, refreshes the Bearer token before expiry, and uses OData $filter on LastModified to detect changes since the last sync.
Does the annual date-window limit on Ariba's async reporting jobs affect the sync?
Yes. Ariba reporting jobs enforce a maximum of one year between the updatedDateFrom and updatedDateTo query parameters. For multi-year backfills or deep historical syncs, ml-connector submits multiple jobs in annual chunks, polls each job by jobId, and downloads results paged at 50,000 records per call.

Related integrations

Connect MYOB and SAP Ariba

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

Get started