Ellipse Gradient for Header

MYOB Integration Guide

Connect MYOB AccountRight and MYOB Business with enterprise systems through OAuth 2.0-secured REST APIs, selected notifications, and Martini workflows.

MYOB integration options at a glance

MYOB AccountRight and MYOB Business provide REST APIs for accessing and maintaining accounting and business data, including Accounts, Contacts, Items, Invoices, Bills, Payments, and Jobs where supported. OAuth 2.0 secures application access, with product-specific permissions, company-file context, and organization rules. Selected products and events may provide notification or webhook-style capabilities, but coverage must be verified for each API. Martini can consume these APIs, manage token renewal, paginate and checkpoint synchronization, transform JSON payloads, apply validation and financial rules, and expose a normalized API for downstream applications. Attachments may be supported for selected resources and should be confirmed before implementation.

Integration pointSupported by MYOB?Common use casesHow Martini supports it
REST APIsYesAccountRight and MYOB Business expose accounting and business resources over HTTP with JSON-oriented requests and responses. Use them to retrieve, create, or update supported MYOB objects.Martini can consume MYOB REST endpoints from workflows, map payloads, apply business rules, handle pagination, and expose normalized APIs for other systems.
AuthenticationYesMYOB APIs use OAuth 2.0 application authorization with client credentials, consent, bearer access tokens, refresh tokens, and product-specific permissions.Martini can store credentials and refresh tokens as environment-specific secrets and orchestrate authorization, token renewal, and protected API calls.
Webhooks / outbound callbacksLimitedNotification or webhook-style capabilities are available for selected products and events, but coverage is not universal across MYOB objects or APIs.Martini can receive supported notifications through an API endpoint or webhook workflow, then retrieve the authoritative MYOB resource and process it idempotently.
File / attachment APIsLimitedSupporting documents or attachments may be available for selected resources and products. Endpoint coverage, file limits, and associations must be verified.Martini can transfer and transform files when the selected MYOB API exposes the required attachment operations, while preserving object references and processing status.
Bulk / async / batch APIsNot confirmedA general-purpose MYOB bulk or asynchronous import API was not confirmed. Large transfers should use pagination and workflow-level batching.Martini can control concurrency, process pages in batches, checkpoint progress, throttle requests, and retry recoverable failures.
Scheduled synchronizationYesScheduled polling is appropriate when notifications are unavailable or when periodic reconciliation is needed for Contacts, Invoices, Bills, Payments, and other supported resources.Martini scheduler-triggered workflows can retrieve incremental pages, persist checkpoints, reconcile missed notifications, and write results to target systems.
Database accessNoMYOB does not provide a documented direct customer database integration interface. API access or an intermediary data store is the supported pattern.Martini can consume MYOB APIs and write normalized data to a supported SQL database for reporting and downstream analytics.

How MYOB exposes data and business events

MYOB REST APIs

MYOB AccountRight and MYOB Business provide REST APIs for business and accounting resources. The available objects, operations, fields, permissions, and company-file rules depend on the selected product and API version.

Martini implementation pattern

Martini implementation pattern: a workflow authenticates with OAuth 2.0, calls the appropriate MYOB endpoint, handles JSON responses and pagination, maps the result to a canonical model, applies validation and business rules, and writes to the target system. For writes, the workflow stores external IDs and processing outcomes for idempotency and reconciliation.

Implementation sequence

Authenticate with OAuth 2.0 and obtain a valid access token
Select the MYOB product, API version, and company-file context
Retrieve or submit the required MYOB resource
Process every response page and persist a synchronization checkpoint
Map MYOB JSON into the target data model
Apply validation, tax, account, and ownership rules before writing the target result

MYOB notifications and webhooks

MYOB provides notification or webhook-style capabilities for selected products and events. Coverage is not universal, so each event must be confirmed against the relevant API documentation.

Martini implementation pattern

Martini implementation pattern: expose a controlled Martini API endpoint or webhook workflow to receive the notification, validate its authenticity and identifiers, then retrieve the complete MYOB resource through the REST API. The notification is treated as a synchronization signal rather than the authoritative business payload, with scheduled reconciliation used as a fallback.

Implementation sequence

Receive the MYOB notification for a supported event
Validate the request and extract the resource identifier
Retrieve the current MYOB resource through the REST API
Map and validate the authoritative resource
Write the result to the target application
Store the event and resource checkpoint for duplicate prevention and reconciliation

MYOB scheduled synchronization

Scheduled retrieval is appropriate for incremental synchronization, missed-event recovery, and resources without confirmed notification coverage. Pagination, filtering, and modification-date behavior must be verified for the selected API.

Martini implementation pattern

Martini implementation pattern: a scheduler-triggered workflow loads the last successful checkpoint, retrieves pages with bounded concurrency, transforms each object, writes results transactionally where possible, and advances the checkpoint only after successful processing. Separate reconciliation runs can compare financial totals or time windows.

Implementation sequence

Start the workflow on a controlled schedule
Load the last successful checkpoint and synchronization scope
Retrieve MYOB pages using supported filters or modification fields
Process each page with bounded concurrency and throttling
Write mapped objects and persist source identifiers
Advance the checkpoint and record exceptions for replay

MYOB attachments

Supporting documents or attachments may be available for selected MYOB resources and products. Attachment endpoints, content types, file limits, and object associations must be confirmed before implementation.

Martini implementation pattern

Martini implementation pattern: retrieve or receive the source document, resolve its MYOB object association, validate file metadata and size, and call the relevant MYOB attachment operation when supported. Martini can route unsupported or failed files to an exception process without marking the parent transaction complete.

Implementation sequence

Confirm attachment support for the MYOB product and resource
Retrieve the document and its parent object reference
Validate content type, size, and required association
Transfer the file through the supported MYOB endpoint
Record the attachment result and source correlation ID
Retry recoverable transfer failures without duplicating the parent transaction

Common MYOB integration patterns

Pattern 1: Sync MYOB Contacts to a CRM

When to use this pattern

Use this pattern when MYOB is the accounting source for customer or supplier contact details and a CRM needs aligned account information. It supports scheduled synchronization and selected notification-driven updates.

Integration direction
MYOB
Martini
Salesforce
Example Mapping
MYOB FieldCanonical FieldTarget Field
UIDexternalContactIdMYOB_Contact_ID__c
CompanyNameorganizationNameAccount.Name
PhoneprimaryPhoneAccount.Phone
EmailprimaryEmailContact.Email
Martini implementation pattern

A scheduler or supported MYOB notification starts the workflow. Martini retrieves the complete Contact, applies matching rules and field validation, maps it to Salesforce Account or Contact data, and performs an idempotent upsert. The workflow records inactive or deleted-state handling, retries transient failures, and sends ambiguous matches to an exception queue or review process.

Martini capabilities used
  • workflows
  • API consumption
  • scheduling
  • data mapping
  • business rules
  • error handling

Pattern 2: Create MYOB Invoices from commerce orders

When to use this pattern

Use this pattern when an approved order from Shopify or WooCommerce must become an MYOB Invoice. The workflow should resolve customer and item references before creating the financial transaction.

Integration direction
Shopify
Martini
MYOB
Example Mapping
MYOB FieldCanonical FieldTarget Field
order.idsourceOrderIdInvoice.ExternalReference
customer.emailcustomerEmailContact.Email
line_items[].skuitemCodeInvoice.Lines[].Item
total_taxtaxAmountInvoice.TaxTotal
Martini implementation pattern

Martini receives an order event or polls for approved orders, retrieves authoritative order details, matches the customer to a MYOB Contact and each SKU to an Item, and validates tax treatment, account codes, currency, and totals. It checks the source ID before creating an Invoice, persists the MYOB identifier, and retries only recoverable API failures.

Martini capabilities used
  • API consumption
  • webhook receiving
  • data mapping
  • validation
  • business rules
  • idempotency
  • retry handling

Pattern 3: Load MYOB financial data into a reporting store

When to use this pattern

Use this pattern when finance or analytics teams need normalized MYOB data without direct database access to MYOB. It is suitable for Invoices, Bills, Payments, and Accounts with incremental checkpoints.

Integration direction
MYOB
Martini
SQL database
Microsoft Power BI
Example Mapping
MYOB FieldCanonical FieldTarget Field
Invoice.UIDinvoiceIdfact_invoice.source_id
Invoice.DateinvoiceDatefact_invoice.invoice_date
Invoice.TotalAmountgrossAmountfact_invoice.gross_amount
Payment.AmountpaymentAmountfact_payment.amount
Martini implementation pattern

A scheduled Martini workflow retrieves paginated resources, normalizes product-specific fields into a stable reporting model, and writes them to SQL using source identifiers and load timestamps. Checkpoints advance after successful pages, while financial-period reconciliation, immutable transaction history, and replayable error records protect data quality.

Martini capabilities used
  • workflows
  • scheduling
  • API consumption
  • pagination control
  • data transformation
  • SQL database access
  • monitoring

Pattern 4: Reconcile MYOB Payments with Stripe

When to use this pattern

Use this pattern when payment activity in Stripe must be reconciled against MYOB Invoices and Payments. It is useful for identifying unmatched, duplicated, partially paid, or delayed transactions.

Integration direction
Stripe
Martini
MYOB
Example Mapping
MYOB FieldCanonical FieldTarget Field
payment.idpaymentReferencePayment.ExternalReference
payment.amountpaymentAmountPayment.Amount
payment.currencycurrencyPayment.Currency
metadata.myob_invoice_idinvoiceReferencePayment.Invoice
Martini implementation pattern

Martini consumes Stripe payment data, resolves the related MYOB Invoice using configured references or matching rules, validates currency and decimal amounts, and creates or updates a supported MYOB Payment. It records reconciliation status, prevents duplicate processing, and routes unmatched or conflicting payments for review.

Martini capabilities used
  • API consumption
  • data mapping
  • decimal-safe transformation
  • business rules
  • idempotency
  • error handling

Applications commonly integrated with MYOB

MYOB can be connected to adjacent business applications when accounting, customer, commerce, payment, service, or reporting data must be coordinated. These are practical enterprise architecture patterns rather than claims of MYOB-certified integrations; the required objects and ownership model should be confirmed for each implementation.

Application Scenario Direction Martini Pattern
Salesforce Synchronize MYOB Contacts, Items, Invoices, and payment status with customer and opportunity processes. Salesforce → Martini → MYOB Use Salesforce events or API requests to initiate workflows, resolve MYOB Contacts and Items, validate accounting fields, and create or update supported MYOB resources. Store cross-system identifiers and use scheduled reconciliation for missed events.
Shopify Transfer orders, customers, products, refunds, and payment information into accounting workflows. Shopify → Martini → MYOB Receive commerce notifications where available, retrieve the authoritative order, map customers and SKUs to MYOB Contacts and Items, create accounting transactions, and synchronize invoice or payment status back to Shopify.
HubSpot Keep customer and company information aligned with MYOB Contacts and relevant financial status. HubSpot → Martini → MYOB Schedule incremental MYOB Contact retrieval and process HubSpot changes through APIs. Apply matching rules, normalize tax and billing fields, and retain MYOB identifiers to make updates idempotent.
NetSuite Exchange financial, customer, supplier, and transaction data where both platforms participate in a multi-system operating model. NetSuite → Martini → MYOB Define ownership by object and direction, then orchestrate REST API workflows with canonical mappings, validation, correlation IDs, conflict handling, and periodic reconciliation to avoid competing updates.
ServiceNow Provide financial, supplier, or cost information to operational workflows and return approved service or procurement data when required. MYOB → Martini → ServiceNow Retrieve relevant MYOB data on a schedule or through a controlled API request, map it to ServiceNow fields, apply approval and validation rules, and record source identifiers for reconciliation.
Microsoft Power BI Build reporting datasets from MYOB accounting data without querying a MYOB database directly. MYOB → Martini → SQL database → Microsoft Power BI Extract MYOB Invoices, Bills, Payments, and Accounts with checkpointed workflows, normalize them into a SQL data store, and expose a stable reporting model for Power BI.
Stripe Reconcile payment activity with MYOB Invoices and Payments. Stripe → Martini → MYOB Consume Stripe payment data, match it to MYOB invoice references, validate amounts and currency, write supported MYOB Payments, and propagate reconciliation status with duplicate protection.
WooCommerce Transfer online orders, customers, products, and refunds into MYOB accounting processes. WooCommerce → Martini → MYOB Receive or poll WooCommerce orders, map products and customers to MYOB Items and Contacts, create supported transactions, and run scheduled reconciliation for refunds and payment status.

How to build a MYOB integration in Martini

Objective

Establish access to the correct MYOB product and API version while keeping credentials and company context environment-specific.

Instructions in Martini

  • Register or identify the MYOB developer application
  • Configure OAuth 2.0 client credentials, consent, scopes, and refresh-token handling
  • Store secrets and company-file or organization identifiers in Martini environment configuration
  • Confirm the selected AccountRight or MYOB Business API and supported resources

Objective

Select an event-driven or scheduled initiation model based on the confirmed notification coverage and synchronization requirements.

Instructions in Martini

  • Use a Martini API or webhook workflow for supported MYOB notifications
  • Use a scheduler for polling, incremental synchronization, and reconciliation
  • Define the source event, polling window, checkpoint, and fallback behavior
  • Avoid assuming that every MYOB object supports notifications

Objective

Call MYOB REST resources reliably and obtain complete authoritative objects before transformation.

Instructions in Martini

  • Build authenticated REST API requests for the selected resources
  • Process pagination and supported filters without assuming fixed page sizes
  • Renew expired access tokens and apply bounded concurrency
  • Persist checkpoints and correlation identifiers during long-running runs

Objective

Coordinate retrieval, enrichment, validation, target writes, and exception handling as a maintainable Martini workflow.

Instructions in Martini

  • Separate resource retrieval, mapping, validation, and target writes into clear workflow stages
  • Resolve Contacts, Items, Accounts, and other references before dependent transactions
  • Apply ownership and conflict rules for bidirectional flows
  • Record processing state so failed work can be replayed safely

Objective

Convert MYOB JSON resources into target application or canonical models while preserving financial meaning.

Instructions in Martini

  • Map actual MYOB fields such as Accounts, Contacts, Items, Invoices, Bills, and Payments
  • Preserve decimal precision and explicitly handle tax-inclusive or tax-exclusive values
  • Normalize dates, identifiers, statuses, currencies, and line-item structures
  • Version mappings by MYOB product and API version

Objective

Validate financial and operational constraints before creating or updating downstream or MYOB resources.

Instructions in Martini

  • Validate required customer, item, account, tax, and transaction references
  • Check source IDs and existing MYOB IDs before creating records
  • Apply ownership rules for customer master data, item codes, invoice numbering, and payment status
  • Route ambiguous matches, conflicts, and validation failures for review

Common MYOB data objects used in integrations

ObjectTypical UseCommon target systemsMartini handling
AccountsChart-of-accounts entries used to classify financial activity and map transactions.SQL databases, Microsoft Power BI, NetSuite, SalesforceMartini retrieves and normalizes Accounts, applies versioned account mappings, and stores external IDs for reconciliation.
ContactsCustomers, suppliers, and other business contacts used in sales, purchasing, and payment flows.Salesforce, HubSpot, Shopify, WooCommerce, ServiceNowMartini matches Contacts using configured keys, validates billing and tax fields, and creates or updates target records idempotently.
ItemsProducts or services used for sales, purchasing, inventory, and transaction line mapping.Shopify, WooCommerce, Salesforce, NetSuiteMartini maps SKU or item identifiers, validates availability and account references, and applies product-specific transformation rules.
InvoicesSales invoices containing customer references, line items, tax information, amounts, and statuses.Salesforce, Shopify, WooCommerce, SQL databases, Microsoft Power BIMartini validates customer and item references, preserves decimal precision, prevents duplicate creation, and synchronizes status changes.
BillsSupplier bills and associated purchasing information used for accounts payable and reporting.NetSuite, ServiceNow, SQL databases, Microsoft Power BIMartini retrieves or writes supported Bills, maps supplier and account codes, records failures for replay, and reconciles totals.
PaymentsCustomer, supplier, and other payment transactions used for reconciliation and financial status.Stripe, Salesforce, Shopify, SQL databases, Microsoft Power BIMartini matches payment references to invoices or bills, validates amount and currency, and applies duplicate detection before writing updates.

Authentication and security considerations

OAuth 2.0 application authorization

MYOB APIs use OAuth 2.0 with application registration, client credentials, consent, bearer access tokens, refresh tokens, and product-specific permissions. AccountRight and MYOB Business can have different scopes, access rules, and company or organization context.

Protect credentials and tenant context

  • Store client secrets, refresh tokens, access tokens, and company-file identifiers as environment-specific secrets or configuration.
  • Do not embed credentials or organization identifiers directly in reusable workflows.
  • Limit permissions to the resources and operations required by the integration.
  • Control access to Martini APIs that expose normalized MYOB data through appropriate authentication and authorization.

Operational considerations for MYOB integrations

Rate limits and pagination

Confirm MYOB quotas and API behavior for the customer’s product and subscription. Use bounded concurrency, retry-after handling where supplied, exponential backoff, workflow-level throttling, and complete page processing.

Idempotency and financial precision

Store source IDs, MYOB IDs, correlation IDs, and processing status before retrying writes. Preserve decimal precision and explicitly handle tax codes, rounding, tax-inclusive pricing, account codes, currencies, and payment matching.

Versioning and reconciliation

AccountRight and MYOB Business differ in resources and field structures. Version mappings by product and API version, monitor schema changes, and run scheduled reconciliation even when selected notifications are available.

Testing and recovery

  • Test authentication renewal, pagination, partial failures, attachment behavior, and company-file context.
  • Separate retryable failures from validation, permission, conflict, and business-rule errors.
  • Keep failed transactions replayable without creating duplicates.
  • Verify ownership rules to prevent bidirectional update loops.

Why use Martini instead of scripts or point-to-point integrations?

Reliable orchestration

Scripts often combine authentication, pagination, mappings, retries, and business rules in code that becomes difficult to operate. Martini represents this behavior as maintainable workflows and APIs with reusable integration logic.

Controlled transformation

Martini can map MYOB JSON into canonical or application-specific models, validate accounting references, preserve financial precision, and apply ownership and duplicate-prevention rules before writing data.

Operational resilience

  • Use scheduled and notification-driven workflows together with checkpoints and reconciliation.
  • Centralize environment-specific secrets and configuration.
  • Handle retries, exceptions, monitoring, and replayable failures consistently.
  • Expose a controlled normalized API rather than coupling every consuming system directly to MYOB.

Frequently asked questions

How can MYOB be integrated with enterprise systems?

MYOB can be integrated through its AccountRight and MYOB Business REST APIs using OAuth 2.0. Enterprise workflows can retrieve or update supported Accounts, Contacts, Items, Invoices, Bills, Payments, and Jobs, use selected notification or webhook-style events where available, and rely on scheduled polling and reconciliation for broader coverage.

Can Martini integrate with MYOB?

Yes. Martini can consume MYOB REST APIs with OAuth 2.0, manage pagination and token renewal, transform MYOB data, apply validation and business rules, write to downstream systems, and expose a controlled API for normalized MYOB data. It can also receive supported MYOB notifications where product and event coverage is confirmed.

Do I need a connector to integrate MYOB with Martini?

No. A dedicated MYOB connector is not required. Martini can integrate using MYOB's native REST APIs, OAuth 2.0 authentication, selected notification or webhook-style endpoints, and supported file or attachment operations.

Is there any extra Lonti cost to integrate MYOB with Martini?

Lonti does not charge an additional per-connector or per-vendor fee to integrate MYOB. The integration is subject to the provisioned capacity of the Martini environment. Separate costs may apply from MYOB, cloud infrastructure, or other third-party systems based on subscription, API usage, and deployment model.

Which MYOB integration methods should an architect use?

REST APIs are the primary and recommended method for new integrations with AccountRight and MYOB Business. OAuth 2.0 is used for application authorization. Selected notifications or webhook-style mechanisms can complement REST APIs, while pagination, scheduled workflows, and reconciliation should be used where event coverage is unavailable. No official current GraphQL or SOAP integration path was confirmed.

Can MYOB trigger a Martini workflow with events or webhooks?

For selected products and events, MYOB may provide notification or webhook-style capabilities. Coverage is not universal, so the exact product, API version, and event must be confirmed. Martini can receive the signal, retrieve the complete authoritative MYOB resource, and use scheduled reconciliation as a fallback.

How does Martini synchronize and transform MYOB data?

Martini can run scheduled or notification-driven workflows that retrieve paginated MYOB resources, map JSON payloads into canonical or target models, validate financial and reference data, and write idempotent updates. Checkpoints, external IDs, decimal-safe monetary handling, and versioned mappings support reliable synchronization.

How are MYOB errors, retries, and duplicate transactions handled?

Martini can distinguish authentication, validation, conflict, rate-limit, and transient HTTP failures, then apply appropriate retry or exception handling. Workflows should store source and MYOB identifiers, correlation IDs, checkpoints, and processing status so retries do not duplicate Invoices, Bills, Payments, or Contacts. Martini can also expose a normalized API façade for controlled access to MYOB data.