# Dualentry — Accounting API: overview

> Canonical URL: https://developers.apideck.com/apis/accounting/dualentry/overview

DualEntry is an AI-native ERP platform built from the ground up for finance teams scaling from mid-market to IPO.
- Status: live
- Authentication: apiKey

- **account type required:** Any DualEntry plan. Multi-company tenants supported; scope to a Default Company or the whole tenant.
- **apideck credentials available:** false
- **apideck credentials note:** Each consumer supplies their own API key; there is no shared Apideck credential.
- **authentication note:** Sent in the X-API-KEY header, not OAuth. The key is a long-lived organisation credential with no expiry.
- **consumer access level:** Organisation administrator — only an admin can generate the API key, via Settings > Organization > Developer access.
- **costs:** No separate API fee — bundled into the DualEntry subscription, which lists Open API as a plan feature.
- **difficulty:** moderate
- **difficulty reason:** API Key Authentication — Credential Generated by the Consumer's DualEntry Administrator
- **environment notes:**   - **description:** Development and testing against api-dev.dualentry.com. Credentials: a Development API key, generated by the consumer's DualEntry administrator and selected in Apideck by setting the connection's Environment to Development. There is no self-service sandbox signup — ask DualEntry for a development organisation.
  - **environment:** Sandbox
  - **description:** Live consumer data on api.dualentry.com. Credentials: a Production API key from the same administrator, with the connection's Environment left on Production.
  - **environment:** Production
  - **description:** Development credentials CANNOT be used with production accounts. The two environments hold separate organisations and separate keys, so swapping a key between them fails to authenticate rather than returning an error you can act on.
  - **environment:** Critical
- **external guides:**   - **source:** DualEntry
  - **title:** Rate Limiting
  - **url:** https://docs.dualentry.com/developers/guides/rate-limiting
  - **source:** DualEntry
  - **title:** How to Authenticate Your Requests
  - **url:** https://docs.dualentry.com/developers/guides/how-to-authenticate-your-requests
- **important to know:** The API key is not self-service for you: the consumer's own DualEntry administrator must generate it, and DualEntry shows it only once at creation — if it is lost, a new key must be issued and the old one revoked.
On a multi-company tenant, a read that does not name a company returns records from every company in the tenant. Set a Default Company on the connection, or send an x-apideck-company-id header per request.
DualEntry offers no free trial. Every plan includes accountant-led implementation instead, so evaluating the platform means going through their onboarding rather than self-serving.
- **partnership note:** Apideck holds an approved partnership with DualEntry, so no application or certification is required from you.
- **partnership required:** false
- **rate limits:** 300 requests/min per API key across all endpoints; 60 requests/min per endpoint; invoice create/update capped at 2/min.
- **responsibility matrix:**   - **area:** Generate the API key in DualEntry
  - **consumer:** ✓ (organisation administrator)
  - **apideck:** Docs provided
  - **area:** Configure the DualEntry connector
  - **customer:** ✓
  - **apideck:** Securely stores credentials
  - **area:** Provide the API key
  - **consumer:** ✓ (via Vault)
  - **area:** Choose the environment and Default Company
  - **consumer:** ✓ (at connection time)
  - **apideck:** Maintains connector
  - **area:** Build via the Unified API
  - **customer:** ✓
  - **apideck:** Updates the stored credential
  - **area:** Rotate the API key
  - **consumer:** ✓ (administrator)
  - **apideck:** Logs & alerts
  - **area:** Monitor connections
  - **consumer:** ✓ Can revoke anytime
  - **customer:** ✓ Via Dashboard
- **sandbox available:** true
- **sandbox note:** A separate Development environment at api-dev.dualentry.com with its own organisations and API keys; a production key will not authenticate there.
- **sandbox url:** https://docs.dualentry.com/developers/guides/how-to-authenticate-your-requests
- **supported resource categories:**   - **name:** Sales & Receivables
  - **resources:** invoices
invoice-items
customers
payments
credit-notes
  - **name:** Purchases & Payables
  - **resources:** bills
bill-credit-notes
bill-payments
suppliers
purchase-orders
expenses
  - **name:** Core Financial
  - **resources:** journal-entries
ledger-accounts
tax-rates
  - **name:** Organizational
  - **resources:** subsidiaries
companies
- **webhooks:** No webhooks — not supported by DualEntry's API.

## Supported resources

[Accounting data model](/guides/accounting-data-model.md)

- **custom field support:** false
- **downstream id:** vendor-payments
- **downstream name:** Vendor Payments
- **id:** bill-payments
- **name:** Bill Payments
- **status:** live
- **custom field support:** false
- **downstream id:** bills
- **downstream name:** Bills
- **id:** bills
- **name:** Bills
- **status:** live
- **custom field support:** true
- **downstream id:** customer-credits
- **downstream name:** Customer Credits
- **id:** credit-notes
- **name:** Credit Notes
- **status:** live
- **custom field support:** true
- **downstream id:** vendor-credits
- **downstream name:** Vendor Credits
- **id:** bill-credit-notes
- **name:** Bill Credit Notes
- **status:** beta
- **custom field support:** false
- **downstream id:** customers
- **downstream name:** Customers
- **id:** customers
- **name:** Customers
- **status:** live
- **custom field support:** false
- **downstream id:** direct-expenses
- **downstream name:** Direct Expenses
- **id:** expenses
- **name:** Expenses
- **status:** live
- **custom field support:** false
- **downstream id:** items
- **downstream name:** Items
- **id:** invoice-items
- **name:** Invoice Items
- **status:** live
- **custom field support:** false
- **downstream id:** invoices
- **downstream name:** Invoices
- **id:** invoices
- **name:** Invoices
- **status:** live
- **custom field support:** false
- **downstream id:** journal-entries
- **downstream name:** Journal Entries
- **id:** journal-entries
- **name:** Journal Entries
- **status:** live
- **custom field support:** false
- **downstream id:** accounts
- **downstream name:** Accounts
- **id:** ledger-accounts
- **name:** Ledger Accounts
- **status:** live
- **custom field support:** false
- **downstream id:** customer-payments
- **downstream name:** Customer Payments
- **id:** payments
- **name:** Payments
- **status:** live
- **custom field support:** false
- **downstream id:** purchase-orders
- **downstream name:** Purchase Orders
- **id:** purchase-orders
- **name:** Purchase Orders
- **status:** live
- **custom field support:** false
- **downstream id:** subsidiaries
- **downstream name:** Subsidiaries
- **id:** subsidiaries
- **name:** Subsidiaries
- **status:** live
- **custom field support:** false
- **downstream id:** companies
- **downstream name:** Companies
- **id:** companies
- **name:** Companies
- **status:** beta
- **custom field support:** false
- **downstream id:** vendors
- **downstream name:** Vendors
- **id:** suppliers
- **name:** Suppliers
- **status:** live
- **custom field support:** false
- **downstream id:** product-tax-codes
- **downstream name:** Product Tax Codes
- **id:** tax-rates
- **name:** Tax Rates
- **status:** live
- **custom field support:** false
- **downstream id:** attachments
- **downstream name:** Attachments
- **id:** attachments
- **name:** Attachments
- **status:** live
- **custom field support:** false
- **downstream id:** trial-balance
- **downstream name:** Trial Balance
- **id:** trial-balance
- **name:** Trial Balance
- **status:** beta

An omitted operation list does not establish operation support. Verify the selected operation in the coverage matrix.

[API reference](https://developers.apideck.com/apis/accounting/reference.md) · [Coverage matrix](https://developers.apideck.com/apis/accounting/coverage)
