canonical: https://jentic.com/apis/codat.io

# Codat APIs

Codat provides a set of financial data APIs that give applications a single, normalised interface to their customers' accounting, banking, and commerce systems. One integration reads and writes standardised invoices, bills, journal entries, bank transactions, and commerce orders across platforms like QuickBooks, Xero, Sage, Shopify, Square, and Stripe. The APIs also push data back into accounting software as bank feeds, expense entries, or synced commerce sales, and derive lending metrics for underwriting. They are used by fintech applications, lenders, and B2B SaaS products that need their customers' financial data without building per-platform connectors.

## For AI agents

An agent can read normalised accounting, banking, and commerce data from a customer's linked platforms, push invoices, bills, bank feeds, expenses, and commerce sales back into their accounting software, and generate enhanced financial reports and lending metrics for credit decisioning. All of this works through one Codat credential across QuickBooks, Xero, Sage, Shopify, Square, Stripe, and other supported systems.

## Scope

Use for: Reading and writing normalised accounting, banking, and commerce data from a customer's linked financial platforms, and deriving lending metrics from it, through one unified integration across QuickBooks, Xero, Sage, Shopify, Square, and Stripe.

Not supported:
- payment processing
- payment initiation
- direct bank aggregation onboarding
- real-time transaction streaming
- consumer banking data

## APIs

| API | Category | Endpoints | Description |
| --- | --- | --- | --- |
| Accounting API | finance | 135 | Read and write standardised accounting data - invoices, bills, journal entries, customers, suppliers, and payments - across 20+ accounting platforms through a single unified interface. |
| Bank Feeds | finance | 32 | Push bank transactions from a financial institution or fintech platform directly into a customer's accounting software as a native bank feed. |
| Assess API | finance | 22 | Generate enhanced financial reports and lending metrics - enhanced P&L, balance sheet, cash flow, MRR, customer retention, and data integrity scores - from a customer's linked accounting and commerce data. |
| Sync for Commerce | e-commerce | 22 | Configure and trigger automated sync of a merchant's commerce sales, fees, and refunds into their accounting software, with integration branding and lifecycle controls. |
| Commerce API | e-commerce | 21 | Read normalised orders, payments, products, customers, and disputes from a merchant's connected commerce platform such as Shopify, Square, Stripe, or Amazon. |
| Sync for Expenses API | finance | 14 | Push expense transactions from a card or spend management platform into a customer's accounting software with correct account, tax, and category mapping. |
| Banking API | finance | 8 | Read bank accounts, balances, and categorised transactions from a customer's linked bank account for cash flow analysis and credit decisioning. |

## Which API to use

| Need | API | Why |
| --- | --- | --- |
| Read invoices, bills, journal entries, and reports from a customer's accounting ledger | accounting | Full read and write access to normalised accounting data across QuickBooks, Xero, Sage, and 17 other platforms. |
| Get ready-made lending metrics like enhanced P&L, MRR, and data integrity scores | assess | Derives underwriting metrics from already-linked accounting and commerce data instead of returning raw records. |
| Read a customer's bank accounts, balances, and categorised transactions | banking | Returns cleaned bank data from directly linked bank or open-banking sources for cash flow analysis. |
| Push bank transactions into accounting software as a native bank feed | bank-feeds | Delivers transactions as a branded bank feed rather than reading data out of the ledger. |
| Read a merchant's orders, payments, products, and disputes from a commerce platform | commerce | Read-only normalised commerce data from Shopify, Square, Stripe, Amazon, and eBay in one schema. |
| Sync a merchant's commerce sales, fees, and refunds into their accounting software | sync-for-commerce | Manages the configured commerce-to-accounting sync flow with branding and lifecycle controls. |
| Push card or expense transactions into accounting software with GL mapping | sync-for-expenses | Writes expense entries with correct account, tax rate, and tracking category applied. |

## Cross-API use cases

### End-to-end SMB lending underwriting

A lender pulls raw ledger data with the Accounting API, cash flow history with the Banking API, and feeds them into the Assess API to produce enhanced profit and loss, cash flow, and data integrity scores. One Codat credential covers all three so a credit model can score a borrower without asking for document uploads.

Example prompt: For company {companyId}, fetch the last 12 months of profit and loss from the Accounting API, pull categorised bank transactions from the Banking API, then retrieve the enhanced cash flow and data integrity summary from the Assess API and flag any month below 80 percent integrity.

### Commerce revenue diligence for revenue-based finance

A capital provider reads a merchant's orders, payments, and disputes with the Commerce API and derives cohort metrics like MRR, retention, and lifetime value with the Assess API. Both run off the same Codat connection so an underwriter can evaluate revenue quality across Shopify, Square, and Stripe from one integration.

Example prompt: For company {companyId} connection {connectionId}, list the last 12 months of commerce orders and payments from the Commerce API, then fetch MRR, customer retention, and lifetime value from the Assess API and summarise revenue quality.

### Full commerce-to-accounting reconciliation

A finance platform reads normalised orders and payments with the Commerce API and writes each day's sales, fees, and refunds into the accounting ledger with the Sync for Commerce API. The same credential reads the source data and configures the sync, so a merchant sees reconciled figures without manual exports.

Example prompt: For company {companyId}, list commerce payments from the Commerce API grouped by order, then trigger a Sync for Commerce run and monitor it until it returns a final status.

### Spend management writeback across feeds and expenses

A spend management platform posts raw bank-feed transactions with the Bank Feeds API and writes GL-coded expense entries with the Sync for Expenses API, both into the customer's accounting software. One Codat credential drives both writeback paths so finance teams get reconciled entries without CSV imports.

Example prompt: For company {companyId}, post a batch of card transactions through the Bank Feeds API, trigger a Sync for Expenses run, then confirm both syncs reached a successful status.

## Why Jentic

- **Setup:** Wiring Codat's APIs by hand means building a Basic API-key header, targeting api.codat.io, and threading company and connection IDs through paging and retries for every accounting, banking, commerce, and sync call. Through Jentic you install Jentic One once, add the Codat APIs you need from the Jentic directory, store the key once, and your agent calls any of them.
- **Permission scoping:** Codat puts the company id in the URL path across every API, so your own rules in Jentic One can pin an agent to one company and to specific operations. You decide whether an agent gets read-only access to invoices, bank transactions, or commerce orders, or whether it may also push invoices, post bank feeds, or trigger expense syncs.
- **Credential handling:** Your Codat API key is stored once, encrypted, by your own Jentic One instance and constructed into the Basic Authorization header at execution time. It never enters the agent's prompt, logs, or context, and the same stored credential serves every Codat API.
- **Discovery method:** Agents search Jentic by intent such as 'fetch unpaid invoices', 'list a borrower's bank transactions', or 'sync commerce sales to accounting', and Jentic returns the matching Codat operation with its input schema so the agent calls the right endpoint across the portfolio without browsing the reference docs.

## Related vendors

- **Plaid** — Provides bank account linking and transaction data, overlapping with Codat's Banking API for cash flow and lending use cases.
- **Xero** — A leading accounting platform Codat normalises and writes into; teams often integrate it directly alongside Codat.
- **QuickBooks** — A primary accounting destination Codat reads from and posts to across its accounting and sync products.
- **Stripe** — A commerce and payments source Codat reads through its Commerce API and syncs into accounting.

## FAQ

### What can I do across Codat's APIs?

You can read normalised accounting, banking, and commerce data from a customer's linked platforms, write invoices, bills, bank feeds, expenses, and commerce sales back into their accounting software, and generate lending metrics for credit decisioning. The APIs split into raw data reads (Accounting, Banking, Commerce), writeback and sync flows (Bank Feeds, Sync for Commerce, Sync for Expenses), and derived metrics (Assess).

### Does one Codat credential work across all of these APIs?

Yes. Every Codat API uses the same API key passed as a Basic Authorization header, so a single credential covers accounting, banking, commerce, the sync products, and Assess. You store it once and use it against any API in the portfolio.

### How do the read APIs differ from the sync and feed APIs?

The Accounting, Banking, and Commerce APIs read normalised data out of a customer's systems, and the Accounting API can also write to the ledger. Bank Feeds, Sync for Commerce, and Sync for Expenses are purpose-built writeback flows that push bank transactions, commerce sales, and expenses into accounting software with the right mapping and lifecycle controls.

### When should I use Assess instead of the raw data APIs?

Use Assess when you need ready-made metrics for lending and underwriting, such as enhanced profit and loss, cash flow, MRR, customer retention, and data integrity scores. Use the Accounting, Banking, or Commerce APIs directly when you need the raw normalised records rather than derived figures.

### Which underlying platforms does Codat cover?

Codat normalises data from 20+ accounting platforms including QuickBooks, Xero, Sage, NetSuite, and FreeAgent, from commerce platforms including Shopify, Square, Stripe, Amazon, and eBay, and from linked bank and open-banking sources. The same endpoints and schemas work regardless of which underlying platform a customer uses.

### Can agents both read and write financial data through Codat?

Yes, but the direction depends on the API. The Accounting API supports both reads and pushes, Bank Feeds, Sync for Commerce, and Sync for Expenses are write-oriented, and Banking, Commerce, and the reporting side of Assess are read-only. You scope which operations an agent may call based on the task.
