Skip to content

MYOB Advanced — Known Issues (Developer View)

Live API quirks, ETL edge cases, and integration behaviour that catches engineers out. Append-only — when something is genuinely resolved, mark it resolved with a date rather than deleting.

ADF silently filters MYOB GL loads to LedgerID = ACTUAL

Section titled “ADF silently filters MYOB GL loads to LedgerID = ACTUAL”

Status: open. Phase B of the warehouse rebuild addresses.

The Copy Data activities for MYOB_GL_Transaction_Detail_* don’t project LedgerID and don’t pass an explicit $filter. The MYOB endpoint defaults to returning all ledgers, but the staging tables have no LedgerID column — so postings against BUDGET, FORECAST, ALLOCATION, FPALLOC, and PRIORYEAR are indistinguishable from ACTUAL lines once they land. In practice ADF only succeeds in pulling ACTUAL because the sink schema is narrow.

Effect. The ALLOCATION ledger carries on the order of 60+ batches per month for PWG (head-office overhead redistribution) that never reach the warehouse. Branch-level P&L from PWG_DATA / Hex therefore under-states allocated cost per branch.

Fix in flight. Phase B adds LedgerID to staging and CORE. Phase D filters MART views via STAGING.MYOB_Ledger.IncludeInPL. See PWG-DataMart/MYOB-REFERENCE-INVENTORY.md for the full plan.

JournalTransaction is missing batch metadata in staging

Section titled “JournalTransaction is missing batch metadata in staging”

Status: open. Phase B addresses.

The MYOB JournalTransaction entity exposes header columns we are not currently projecting through ADF:

  • LedgerID — see above
  • BatchNbr — audit trail back to the source MYOB batch
  • StatusPosted / Balanced / Unposted (we implicitly assume Posted only)
  • ModuleAP / AR / GL (present on _JV staging, missing from _PWG)
  • JournalTransaction.DetailsDebitAmount, CreditAmount, VendorOrCustomer, ReferenceNbr

We currently carry a single signed Amount per detail line. Splitting Debit / Credit preserves the double-entry view and lets us reconcile balance sheet against P&L.

Fix in flight. Phase B schema additions in PWG-DataMart already extend the staging tables; ADF projection update is the open follow-up.

Status: open. Endpoint defect.

mcp__pwg-myob__myob_query_entity("ReportingGroup", top=5) returns HTTP 500 from MYOB. We don’t currently use this entity, so no impact, but it’s a hint not to rely on it for future work.

Branch and AccountClass aren’t standalone entities

Section titled “Branch and AccountClass aren’t standalone entities”

Status: by-design. Schema quirk.

Two entities you might expect to exist as masters on Default/24.200.001 don’t:

  • Branch — returns 404. Branch metadata is inlined as columns on transactional entities (JournalTransaction.BranchID, etc.). For a true master list, GLConsolidation/22.200.001 exposes multi-company structure but we don’t currently use it.
  • AccountClass — returns 404. AccountClass values (CASHASSET, INCOME, EXPENSE, LOANIC, etc.) are exposed only as a column on Account. The list of valid values has to be inferred from SELECT DISTINCT AccountClass FROM Account.

Subaccount master is small but not currently in the loop

Section titled “Subaccount master is small but not currently in the loop”

Status: open. Minor.

Subaccount exists on the Default endpoint and returns a master table of around 118 rows. We currently consume subaccount data via GL detail (STAGING.MYOB_GL_Subaccount_*) rather than from the master. If a subaccount description changes in MYOB, downstream views won’t reflect it until a transaction posts against the new description.

Users and Roles aren’t exposed by any endpoint

Section titled “Users and Roles aren’t exposed by any endpoint”

Status: open. Process gap.

The Security/22.200.001 endpoint exposes certificate entities only — not Users, Roles, or UsersInRoles. The Default endpoint exposes Employee but not User / Role.

Workaround. Manual UI export — see admin-procedures.

Permanent fix. Either (a) the warehouse adds Users / Roles / UsersInRoles tables (raised as a DataMart backlog item), or (b) Axsys exposes a custom endpoint via AxsysAPI.

OAuth credentials are per-company, doubling the rotation surface

Section titled “OAuth credentials are per-company, doubling the rotation surface”

Status: by-design. Operational gotcha.

PWG and JV each require their own OAuth application registration. A single integration that touches both companies maintains two sets of credentials, two refresh-token caches, and two ADF linked services. Rotation is twice the work; verify each company independently.

Status: to-confirm.

Rate-limit headers and behaviour observed under heavy MCP querying have not been formally characterised. Production ADF pipelines run at low concurrency and have not hit limits. Document specific behaviour here as it’s observed rather than guessing now.

ALLOCATION ledger doesn’t post every month

Section titled “ALLOCATION ledger doesn’t post every month”

Status: by-design. Reporting quirk.

The ALLOCATION and FPALLOC ledgers don’t post on a monthly cadence — they’re triggered by management-reporting cycles. A COUNT(*) = 0 against FPALLOC for a given month is normal, not a load failure. Once Phase B + D land, the warehouse will reflect this faithfully.