MYOB and TaxJar integration
MYOB handles accounting across Australia and New Zealand. TaxJar automates sales tax compliance and calculation. Connecting the two keeps your tax reporting in sync with your actual sales. Every invoice MYOB records flows to TaxJar for real-time tax rate calculation and automatic reporting to tax authorities. No re-entry, no manual reconciliation, no missed transactions.
What moves between them
Sales invoices move from MYOB to TaxJar. ml-connector polls MYOB for new or modified invoices using OData $filter on LastModified, extracts the customer, line items, and totals, and posts each transaction to TaxJar's transaction endpoint. TaxJar calculates the applicable sales tax based on the customer address and item categories and stores the transaction for reporting to state tax authorities. The flow is one-direction: TaxJar is read-only for tax rate lookups, and MYOB remains the source of truth for invoice data.
How ml-connector handles it
ml-connector stores both the MYOB OAuth token and the company file credentials (username and password) encrypted, and re-authenticates with fresh tokens when they expire. On each poll cycle, it reads MYOB invoices using OData $filter=LastModified gt datetime'YYYY-MM-DD'T'HH:mm:ss' and maps MYOB sale line items to TaxJar transaction format, including the customer address, item SKUs mapped to TaxJar tax categories, and line totals. When posting to TaxJar, it handles the idempotency quirk: if a 422 exists response comes back, it falls back to a PUT to update the existing transaction; if a 404 comes back on the PUT, it retries POST. MYOB enforces a RowVersion field on every record and returns 409 conflicts on stale versions, so ml-connector reads the full invoice object before any update. Rate limits on both sides trigger HTTP 429 responses; ml-connector backs off with exponential jitter and retries. Every transaction posted carries a job ID for replay if a downstream call fails.
A real-world example
A mid-sized e-commerce company based in Australia uses MYOB for bookkeeping and invoice management, and TaxJar to handle sales tax compliance across multiple states and territories where they have nexus. Before integration, the finance team exported invoices from MYOB weekly and manually uploaded them to TaxJar, then spot-checked that TaxJar's tax calculations matched the amounts recorded in MYOB. With MYOB and TaxJar connected, each invoice syncs automatically within minutes of being saved in MYOB, TaxJar calculates tax in real time, and the finance team receives alerts if a transaction fails to report. Month-end tax reconciliation is now a simple dashboard check instead of manual comparisons and re-uploads.
What you can do
- Poll MYOB invoices on a schedule tied to your billing cycle and post completed transactions to TaxJar.
- Map MYOB customer addresses and item SKUs to TaxJar transaction format, including tax category codes.
- Bridge MYOB multi-credential OAuth and company file auth to TaxJar token-based API without manual credential juggling.
- Handle MYOB's RowVersion conflicts and TaxJar's idempotency quirks (422 and 404 fallbacks) automatically.
- Track every transaction with a job ID, audit trail, and replay capability if a downstream call fails.
Questions
- Which way does data flow between MYOB and TaxJar?
- Data flows one direction: from MYOB invoices into TaxJar for tax calculation and compliance reporting. ml-connector reads invoices from MYOB and posts them as transactions to TaxJar. TaxJar remains read-only for tax rate lookups; MYOB is the authoritative source of all invoice and transaction data.
- How does ml-connector handle MYOB's complex OAuth and company file credential requirement?
- ml-connector stores both the OAuth token and the company file username and password encrypted, and includes both in every API call. When OAuth tokens expire after 20 minutes, ml-connector refreshes them using the refresh token. When company file credentials are invalid, TaxJar returns 401 and ml-connector alerts the customer to update the stored credentials.
- Does TaxJar's idempotency model need special handling?
- Yes. TaxJar returns 422 if a transaction already exists on a POST; in that case ml-connector falls back to a PUT to update it. If the PUT returns 404, ml-connector retries POST. This bidirectional fallback ensures invoices are reliably synced without duplicates or missed updates.
Related integrations
More MYOB integrations
Other systems that connect to TaxJar
Connect MYOB and TaxJar
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started