ml-connector
MYOBProcurify

MYOB and Procurify integration

MYOB runs accounting for mid-market SMEs across Australia and New Zealand. Procurify manages procurement, purchase orders, requisitions, and spend. Connecting the two keeps your procurement records in sync with your accounting ledger. Approved purchase orders and paid bills flow from Procurify into MYOB without manual re-entry, mapped to the correct suppliers and GL accounts, and every transaction carries a full audit trail.

How MYOB works

MYOB Business API exposes purchase orders, bills, suppliers, customers, and general ledger accounts through REST endpoints using OData v3 query parameters. Authentication requires OAuth2 authorization code flow plus company file username and password sent with every call in three separate headers. The API enforces a 20-minute token expiry and a 1-week refresh token lifespan. MYOB does not support webhooks, so records are detected by polling with $filter on LastModified timestamps. Updates require the RowVersion field to guard against concurrent edits, and the API rate-limits at 8 requests per second.

How Procurify works

Procurify exposes purchase orders, requisitions, bills, vendors, departments, and account codes through REST APIs with OAuth2 client credentials (machine-to-machine, 24-hour token lifetime). The API is time-filtered for polling via date_modified and po_created_date parameters. Purchase orders are generated from approved requisitions and cannot be created directly; bills and payments are read-only through the API. Procurify does not publish a rate limit number but warns against excessive requests. The API is documented as evolving and subject to change, and API access requires a Procurify representative contact on some plans.

What moves between them

Purchase orders and bills flow from Procurify into MYOB on a schedule you define (typically daily after the procurement close). Procurify vendors are mapped to MYOB suppliers and Procurify account codes map to MYOB GL categories so the bills land in the correct ledger accounts. Requisitions are read from Procurify but not written; purchase orders and bills are read-only from Procurify's perspective. Reference data such as vendors and departments are enriched in both directions so downstream approvals in Procurify reflect valid MYOB suppliers and cost centers.

How ml-connector handles it

ml-connector stores the Procurify OAuth2 credentials and MYOB company file password encrypted in its database. It refreshes the Procurify bearer token (24-hour lifetime) before each batch of calls and sends the MYOB OAuth token plus company file password in the three required headers on every MYOB request. It polls Procurify for bills and purchase orders newer than the last sync timestamp using date-range filters, then upserts them into MYOB mapped to matching suppliers and GL account categories. When updating MYOB records, it first reads the current RowVersion to avoid 409 conflicts, and if a stale RowVersion is encountered, it retries the read-update cycle. Rate limiting is handled with exponential backoff. Every record is logged with full audit trail including source entity ID, mapped fields, and outcome, so any failed flow can be replayed once the underlying issue is fixed.

A real-world example

A regional distributor runs MYOB for accounting and Procurify for spend approval across three locations. Before the integration, the finance team waited for the procurement manager to export approved purchase orders from Procurify each week, then manually created bill records in MYOB with the same line items and vendor names, introducing data entry errors and reconciliation delays. With MYOB and Procurify connected, each approved PO and paid bill flows into MYOB automatically, mapped to the correct supplier and GL account for each location. The manual data entry step is gone, and month-end reconciliation now starts with procurement and accounting already aligned.

What you can do

  • Pull approved purchase orders from Procurify into MYOB, mapped to the correct MYOB suppliers and general ledger accounts.
  • Import paid bills from Procurify with full line-item detail, ready for matching against MYOB purchase orders.
  • Map Procurify vendors to MYOB suppliers and Procurify account codes to MYOB GL categories on a per-customer basis.
  • Handle MYOB's dual authentication (OAuth2 plus company file password) and RowVersion conflict resolution on updates.
  • Poll on a schedule you control with automatic retry and a full audit trail on every record pulled or rejected.

Questions

Which direction does data move between MYOB and Procurify?
The main flow is Procurify into MYOB. Approved purchase orders and paid bills move from Procurify into MYOB, while vendors and account codes are enriched in both directions to ensure procurement and accounting stay aligned. Procurify bills and payments are read-only, so ml-connector does not write financial entries back into Procurify.
How does the integration handle MYOB's unusual dual authentication?
MYOB requires three headers on every call: an OAuth2 bearer token (good for 20 minutes), an API key, and a Base64-encoded company file username and password. ml-connector stores all three encrypted, refreshes the bearer token before each batch, and includes all three headers on every request so your company file stays protected.
What happens if a purchase order or bill in MYOB is edited while ml-connector is updating it?
MYOB uses the RowVersion field to detect concurrent edits and returns a 409 conflict if the version is stale. ml-connector catches the 409, re-reads the current RowVersion, and retries the update so neither the manual edit nor the sync is lost.

Related integrations

Connect MYOB and Procurify

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

Get started