ml-connector
MYOBFishbowl

MYOB and Fishbowl integration

MYOB handles your accounting and procurement records. Fishbowl manages your on-premise inventory and manufacturing orders. Connecting the two keeps your parts, vendors, and purchase orders aligned across both systems. Items added to MYOB flow into Fishbowl's inventory database, purchase orders sync from MYOB into Fishbowl's workflow, and vendor records stay consistent. ml-connector manages the different authentication schemes and network requirements for each system and moves the data on a schedule you control.

How MYOB works

MYOB AccountRight Live API v2 exposes contacts (suppliers, customers, employees), purchase and sales invoices and orders, inventory items, general ledger accounts, and general journal entries through REST endpoints with OData v3 query parameters. Authentication requires OAuth2 Authorization Code flow plus company file username and password sent in two HTTP headers per request. Access tokens expire in 20 minutes and refresh tokens last one week. MYOB enforces an 8 requests per second rate limit and one million requests per day per API key. The API supports polling only; MYOB does not offer webhooks or push notifications, so changes are detected using OData filters on LastModified timestamps.

How Fishbowl works

Fishbowl Advanced is deployed on a customer-hosted server running REST endpoints at a customer-supplied URL and port, typically port 2456. Every session begins with a POST to /api/login with username, password, application name and ID, and optional multi-factor authentication code, which returns a UUID bearer token. All subsequent API calls carry that token in the Authorization header. Fishbowl exposes vendors, purchase orders, sales orders, parts, inventory levels, customers, and manufacturing orders through REST. Data queries can also use GET /api/data-query with SQL to access records not covered by specific REST endpoints. Fishbowl does not offer webhooks, so polling with date ranges is required, and there is no published rate limit.

What moves between them

The main flow moves from MYOB into Fishbowl. Purchase orders and line items created in MYOB sync into Fishbowl's purchase-order endpoints, mapped to matching vendors. MYOB inventory items and part numbers flow into Fishbowl's parts database so receiving and inventory adjustments stay aligned. Vendor master records are synchronized in both directions so purchase orders reference valid suppliers in Fishbowl. MYOB is the source of truth for purchase orders and items; Fishbowl is read for inventory and fulfillment status to report back if needed. Sync runs on a schedule you define, typically between daily and hourly depending on procurement velocity.

How ml-connector handles it

ml-connector handles two different credential paths. On the MYOB side, it stores the OAuth2 bearer token and company file credentials encrypted, refreshes the token before expiry (20 minute window), and includes both the OAuth header and company file headers on every API request. On the Fishbowl side, it logs in once per session, stores the UUID bearer token, and reuses it across multiple data requests until the token expires. MYOB's rate limit of 8 requests per second is observed with queuing and backoff; a 429 response triggers exponential retry. Fishbowl's on-premise architecture means ml-connector connects directly to the customer's server at the URL they provide, so network routing and firewall rules are the customer's responsibility. Both systems are poll-based, so ml-connector uses OData $filter parameters on MYOB and date range queries on Fishbowl to detect changes since the last sync. Purchase order mapping requires exact vendor ID or name matching, and inventory item mapping matches by part number or SKU. Every record carries an audit trail so failed syncs can be replayed without duplication.

A real-world example

A mid-sized wholesaler and light manufacturer uses MYOB for accounting and purchasing, managing suppliers and bills, and Fishbowl Advanced on-premise for inventory tracking and assembly orders across two warehouses. Before the integration, purchase orders were created in MYOB, then manually re-entered into Fishbowl to track receiving and on-hand stock, creating double-entry work and opportunities for mismatches between the ordered quantity in accounting and the quantity received in inventory. When a line item quantity changed in MYOB, Fishbowl was out of sync until someone remembered to update it there too. With MYOB and Fishbowl connected, each new purchase order created in MYOB automatically appears in Fishbowl's queue, receiving staff see the exact ordered quantity, and the inventory count in Fishbowl feeds back to accounting for reconciliation. The manual re-entry step is gone, and receiving is no longer out of sync with procurement.

What you can do

  • Sync MYOB purchase orders and line items into Fishbowl purchase orders, mapped to matching vendors.
  • Synchronize MYOB inventory items and part numbers into Fishbowl parts database for accurate receiving.
  • Keep vendor master records aligned in both directions so purchase orders reference valid suppliers.
  • Authenticate MYOB with OAuth2 and company file credentials, and Fishbowl with on-premise session tokens.
  • Poll MYOB and Fishbowl on a schedule you control, with retries and a full audit trail on every record.

Questions

Which direction does data move between MYOB and Fishbowl?
The main flow is MYOB into Fishbowl. Purchase orders, items, and vendor records move from MYOB into Fishbowl. Fishbowl exposes receiving and inventory status for reporting, but purchasing and items are sourced from MYOB. Vendors and contacts are aligned in both directions so that new suppliers in MYOB are available in Fishbowl.
Does Fishbowl's on-premise architecture require special network setup?
Yes. Fishbowl runs on a customer-hosted server at a URL and port the customer supplies, typically port 2456. ml-connector connects directly to that server, so the customer must ensure network routing and firewall rules allow access from the ml-connector platform to their server. There is no shared multi-tenant endpoint.
How does the integration handle MYOB's token expiry and Fishbowl's login requirement?
MYOB access tokens expire in 20 minutes, so ml-connector proactively refreshes the token before expiry and includes both the OAuth bearer token and company file credentials on every request. Fishbowl requires a login session that returns a UUID token; ml-connector logs in once and reuses the token across multiple requests until it expires.

Related integrations

Connect MYOB and Fishbowl

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

Get started