canonical: https://jentic.com/apis/apideck.com/apideck-accounting

# Apideck Accounting API

Apideck Accounting is a unified API that maps a single schema for invoices, bills, payments, ledger accounts, customers, suppliers, and tax rates onto many downstream accounting platforms such as Xero, QuickBooks, Sage, NetSuite, and FreshBooks. The 95 operations cover the day-to-day finance objects most apps need plus reports like Balance Sheet, Profit and Loss, and Aged Debtors. Apideck routes each call through Apideck Vault, so customer credentials for the underlying platform stay in Apideck's vault instead of being passed in by the calling app.

## For AI agents

Read and write invoices, bills, payments, customers, suppliers, and ledger accounts across Xero, QuickBooks, Sage, NetSuite, and other accounting platforms through one unified schema.

## Scope

Does not handle payroll runs, tax filing submissions, or bank-feed ingestion - use for ledger transactions, invoices, bills, and standard accounting reports only.

## Capabilities

- Create and list invoices with line items, tax rates, and customer references across many accounting platforms
- Push and pull bills, bill payments, and supplier records using a normalised supplier schema
- Read and write ledger accounts, journal entries, and tracking categories for general-ledger workflows
- Fetch the Balance Sheet, Profit and Loss, Aged Debtors, and Aged Creditors reports for any connected ledger
- Manage customers, suppliers, payments, credit notes, and expenses with consistent fields across platforms
- List company info, locations, departments, and subsidiaries to populate transaction context

## Use cases

### SaaS Billing to Ledger Sync

Push invoices from a SaaS billing system into whichever accounting platform a customer uses (Xero, QuickBooks, Sage, NetSuite, FreshBooks) using a single integration. Apideck's /accounting/invoices endpoint accepts a normalised invoice payload, and the unified API translates it into the native object on the connected ledger. SaaS finance teams typically replace 5+ direct integrations with a single Apideck contract this way.

Example prompt: POST a new invoice to /accounting/invoices with line items totalling $499.00 and the customer reference, then verify the response shows the invoice was created on the connected ledger

### Expense and Bill Capture

Forward supplier bills and expenses captured by an OCR or expense-management app into the customer's accounting platform of choice. Apideck's /accounting/bills, /accounting/expenses, and /accounting/bill-payments endpoints accept the unified payload and write to whichever ledger the customer uses. The integration is the same whether the customer runs Xero, QuickBooks, or Sage.

Example prompt: POST a bill to /accounting/bills with the supplier reference and line items, then POST a payment to /accounting/bill-payments to mark it as paid

### Financial Reporting Aggregation

Pull Profit and Loss, Balance Sheet, Aged Debtors, and Aged Creditors reports from many customers' ledgers into a single dashboard. Apideck returns each report in a consistent schema so a reporting tool does not need to translate between Xero P&L and QuickBooks P&L manually. Useful for FP&A vendors and lenders who underwrite loans against ledger data.

Example prompt: GET /accounting/profit-and-loss with start_date and end_date for the last quarter and store the returned line items in a reporting database

### AI Agent Bookkeeping Assistant

Give an AI agent a tool that can read invoices, create bills, and reconcile payments in whichever accounting platform a customer uses. Through Jentic, the agent searches for an intent like 'create invoice in customer accounting platform' and gets the matching Apideck operation with its input schema. The agent does not need separate integrations per platform.

Example prompt: Search Jentic for 'create accounting invoice', load the /accounting/invoices schema, and execute with the customer reference and line items returned by the upstream conversation

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /accounting/invoices | List invoices on the connected ledger with filters |
| POST | /accounting/invoices | Create a new invoice |
| GET | /accounting/bills | List supplier bills on the connected ledger |
| POST | /accounting/bill-payments | Record a payment against a supplier bill |
| GET | /accounting/ledger-accounts | List chart-of-accounts entries |
| POST | /accounting/journal-entries | Create a journal entry |
| GET | /accounting/profit-and-loss | Fetch Profit and Loss report for a period |
| GET | /accounting/balance-sheet | Fetch Balance Sheet as of a date |

## Key resources

- **Invoices** — Create, list, update, and void invoices with line items and tax rates
- **Bills** — Manage supplier bills and link them to bill payments
- **Customers** — Read and write customer records used by invoices
- **Suppliers** — Read and write supplier records used by bills
- **Ledger Accounts** — Manage the chart of accounts used by journal entries and reports
- **Payments** — Record customer payments against invoices
- **Bill Payments** — Record payments made to suppliers against bills
- **Reports** — Fetch Balance Sheet, Profit and Loss, Aged Debtors, and Aged Creditors

## Why Jentic

- **Setup:** Wiring the Apideck Accounting API by hand means setting up its API key plus consumer and service headers, learning the unified ledger and invoice shapes, and normalising across accounting platforms yourself. Through Jentic you install once, import Apideck Accounting from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** The Apideck Accounting API takes new records in the request body and lists resources by collection, so scope the agent to the operations it needs, such as listing invoices and reading a profit-and-loss report, and leave out posting journal entries unless you add it. You choose the allowed operations, so the agent only calls what you list.
- **Credential handling:** Your Apideck API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list open invoices' or 'read the balance sheet', and Jentic returns the matching Apideck Accounting operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Xero Accounting API** — Native Xero accounting API for ledgers running on Xero
- **Sage API** — Native Sage Business Cloud accounting API
- **Apideck CRM API** — Apideck CRM unified API to read customer and deal records that drive invoices

## FAQ

### What authentication does the Apideck Accounting API use?

Apideck uses three required headers per call: Authorization with a bearer API key, x-apideck-app-id with your Unify application id, and x-apideck-consumer-id with the end-customer reference stored in Apideck Vault. Through Jentic all three values are stored encrypted in the vault and attached to the request at execution time.

### Which accounting platforms does the Apideck Accounting API cover?

Apideck Unify routes the unified accounting calls to downstream connectors including Xero, QuickBooks Online, Sage Business Cloud, NetSuite, FreshBooks, MYOB, and Wave. Use the x-apideck-service-id header to pin the call to a specific connector when a consumer has more than one connected.

### Can I create an invoice with the Apideck Accounting API?

Yes. POST to /accounting/invoices with a body that includes the customer_id, currency, due_date, and line_items. Apideck translates the unified payload into the native invoice on the connected platform and returns the created object with the platform's invoice id.

### What are the rate limits for the Apideck Accounting API?

Apideck Unify enforces rate limits at both the Unify layer and the underlying connector. The connector-side limit dominates in practice, so a Xero call respects Xero's limits and a QuickBooks call respects QuickBooks' limits. The API returns ConnectorRateLimitError on connector throttling and HTTP 429 on Unify throttling - retry with backoff in both cases.

### How do I fetch a Profit and Loss report through Jentic?

Search Jentic for 'get profit and loss report', load the /accounting/profit-and-loss schema, and execute with start_date and end_date. The response returns the report rows in Apideck's unified shape, regardless of whether the connector is Xero or QuickBooks.

### Is the Apideck Accounting API free?

Apideck Unify offers a free tier with capped requests; production use is billed per consumer connection. See https://www.apideck.com/pricing for current tiers and contact sales@apideck.com for volume pricing.

### Can I limit what my agent is allowed to do with the Apideck Accounting API?

Yes. Because Jentic One is self-hosted, you set the rules that decide which of the 95 Apideck Accounting operations your agent may call and which credentials it may use. You can allow read-only operations like listing invoices at GET /accounting/invoices and reading a report at GET /accounting/profit-and-loss while leaving out write operations such as POST /accounting/journal-entries. The agent can only call the operations you have listed, so it never posts a bill payment or a journal entry unless you explicitly grant it.
