ml-connector
MYOBSAP Concur

MYOB and SAP Concur integration

MYOB runs accounting for Australian and New Zealand SMEs. SAP Concur handles travel, expenses, and invoice processing. Connecting the two means expense reports and vendor invoices submitted in Concur flow into MYOB's accounts payable and general ledger without re-entry. Expense line items land on the correct GL accounts, and the audit trail flows automatically. The finance team can track spend in both systems and close the books faster.

How MYOB works

MYOB AccountRight Live API exposes contacts, purchase invoices, purchase orders, general ledger accounts, tax codes, and inventory items through REST APIs with OData v3 query parameters. Authentication requires OAuth2 bearer token, API key, and company file username-password credentials sent as headers on every call. Access tokens expire in 20 minutes and refresh tokens last 1 week. MYOB publishes no webhook system, so records are detected by polling with OData $filter on LastModified timestamps. The API rate limit is 8 requests per second and 1 million requests per day per API key, with page sizes up to 1000 records.

How SAP Concur works

SAP Concur exposes expense reports, vendor invoices, purchase orders, purchase requests, and financial integration documents through REST APIs. Authentication uses OAuth 2.0 password grant with company ID, client ID, client secret, and a 24-hour auth token from App Center, returning a 1-hour access token and 6-month refresh token. Concur's geolocation in the token response determines the API base URL (US, EMEA, or China) for all subsequent calls. The platform supports webhooks through Event Subscription Service on topics like expense reports, invoices, and users, with at-least-once delivery and automatic retry on server errors. Each app is limited to 5 active event subscriptions.

What moves between them

Expense documents and vendor invoices flow from SAP Concur into MYOB. When an expense report is approved or invoice is submitted in Concur, ml-connector receives the webhook notification, reads the full expense details and line items from Concur's financial integration API, maps the vendor and GL account codes from Concur to MYOB contacts and GL accounts, and posts the result as a purchase invoice into MYOB's accounts payable. Reference data such as vendors and cost allocations are reconciled in both directions. MYOB's invoice line changes are detected by polling with OData $filter so amendments are captured.

How ml-connector handles it

ml-connector accepts the OAuth credentials for both systems and manages token refresh on the MYOB side (20-minute expiry), while on the Concur side it caches the 1-hour token and refreshes it before expiry. The Concur OAuth response includes geolocation, which ml-connector uses as the base URL for all Concur API calls; it does not hardcode a single endpoint. When a Concur expense report or invoice webhook arrives, ml-connector fetches the full document from Concur's financial integration API, maps the expense GL dimension (cost center, department, or project) to a MYOB GL account in the customer's chart of accounts, looks up or creates the vendor contact in MYOB, and posts a purchase invoice with line items and the GL distribution. MYOB requires RowVersion on PATCH operations to prevent conflicts, so ml-connector stores it and includes it on updates. Concur limits the app to 5 active subscriptions, so multiple cash flows may use a single subscription and be multiplexed by client context. Every record carries UID and audit trail fields for full replay if a downstream GL post fails.

A real-world example

A mid-size Australian services company uses MYOB for accounting and finance close. The organization uses SAP Concur for employee travel and expense reports, and also processes vendor invoices through Concur for cash management. Before the integration, the finance team exported expense reports from Concur each week, split them into GL allocations, created purchase invoices in MYOB by hand, and manually reconciled the two systems. With Concur and MYOB connected, approved expenses flow into MYOB automatically as purchase invoices, allocated to the GL accounts defined in Concur, and the invoice audit trail is complete. Month-end close no longer requires manual expense entry or reconciliation between the two platforms.

What you can do

  • Post SAP Concur expense reports into MYOB purchase invoices, allocated to the correct GL accounts and departments.
  • Sync vendor and employee records from SAP Concur into MYOB contacts so expense and invoice processing uses valid vendors.
  • Handle MYOB dual authentication with OAuth token, API key, and company file credentials on every API call.
  • Route SAP Concur API calls to the correct datacenter (US, EMEA, or China) based on the geolocation in the OAuth token response.
  • Detect invoice line changes in MYOB by polling with OData $filter, and replay failed GL postings with full audit trail for debugging.

Questions

Which direction does data flow between MYOB and SAP Concur?
The main flow is SAP Concur into MYOB. Expense reports, invoice line items, and vendor records flow from Concur into MYOB purchase invoices and GL entries. Vendor and GL account reference data can be reconciled in both directions so expense allocations land on valid accounts. MYOB's invoice changes are detected by polling so amendments are captured.
How does ml-connector handle MYOB's dual authentication and token expiry?
MYOB requires OAuth2 bearer token, API key, and company file username-password credentials on every request. ml-connector stores all three encrypted and includes them in each API call header. Access tokens expire in 20 minutes, so ml-connector monitors expiry and refreshes the token before it reaches zero. Refresh tokens last 1 week.
How does ml-connector route SAP Concur calls to the right datacenter?
SAP Concur's OAuth token response includes a geolocation field indicating US, EMEA, or China. ml-connector extracts this geolocation and uses it to build the API base URL for all subsequent Concur calls, not a hardcoded endpoint. This ensures the call reaches the customer's home region and respects data residency rules.

Related integrations

Connect MYOB and SAP Concur

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

Get started