Create a Codat company via POST to https://api.codat.io/companies with Authorization: Basic YOUR_API_KEY and a body containing a name for the company record.
Create a data connection for the company by POSTing to https://api.codat.io/companies/{companyId}/connections with the platformKey for the target accounting platform (e.g., 'qhyg' for QuickBooks Online).
Direct the end user to the linkUrl returned in the connection response to complete OAuth authorization with their accounting platform.
Once the connection status becomes 'Linked', trigger a data sync via POST to https://api.codat.io/companies/{companyId}/data/queue/{dataType} or wait for the automatic initial sync to complete.
Retrieve standardized data (e.g., invoices) via GET https://api.codat.io/companies/{companyId}/data/invoices; the response follows Codat's normalized data model regardless of the source platform.
To push data back to the source platform, POST to https://api.codat.io/companies/{companyId}/connections/{connectionId}/push/{dataType} with the standardized Codat payload.
Known gotchas
Codat data syncs are asynchronous; after queuing a sync, poll the dataset status endpoint or use Codat webhooks to determine when data is available before querying.
The Codat normalized data model may not expose all platform-native fields; for platform-specific fields, check whether Codat's supplemental data feature or direct platform API access is required.
Each Codat company record maps to one end-customer's accounting instance; do not reuse a company record across multiple customers or data from different accounts will be mixed.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp