# Holded — Accounting API: overview

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

Business management software with top-class invoicing, accounting, inventory and CRM with projects in a super intuitive single platform that suits every type of business.
- Status: beta
- Authentication: apiKey

- **responsibility matrix:**   - **area:** Enable the Holded connector
  - **customer:** ✓ Via the Apideck Dashboard
  - **area:** Create the Holded API key
  - **consumer:** ✓ (choosing its module permissions)
  - **area:** Supply the key in Vault
  - **consumer:** ✓
  - **apideck:** ✓
  - **area:** Store and encrypt credentials
  - **area:** Build via the Unified API
  - **apideck:** ✓ Maintains the connector
  - **customer:** ✓ Builds the requests
  - **area:** Deliver change events
  - **apideck:** ✓
  - **apideck:** ✓ Logs and alerts
  - **customer:** ✓ Via the Apideck Dashboard
  - **consumer:** ✓ Can revoke the key anytime
  - **area:** Monitor connections
- **account type required:** A Holded account on a paid plan: the free plan carries no API access.
- **sandbox note:** Every Holded account includes a demo environment, switched into from the account menu. It takes sample data, can be reset, and the API reaches it too.
- **external guides:**   - **source:** Holded
  - **url:** https://help.holded.com/en/articles/6896051-how-to-generate-and-use-the-holded-api
  - **title:** How to generate and use the Holded API
  - **url:** https://www.holded.com/es/desarrolladores/limite-de-tasa
  - **title:** API limits
  - **source:** Holded
- **costs:** Holded does not sell API access separately, so the cost is the subscription your consumer already pays, on whichever plan carries the quota you need.
- **consumer access level:** A user who can reach the Developers section in Holded, which the default developer role grants.
- **difficulty:** moderate
- **partnership required:** false
- **apideck credentials available:** false
- **rate limits:** 60 to 600 calls a minute by plan, plus a monthly quota from 500 on the entry plan to 100,000 at the top. Lower plans 429 at the cap; the top meters overage.
- **important to know:** The monthly quota, not the per-minute rate, is what usually decides whether Holded can carry an integration: it is a single allowance for the whole account, drawn down by every key on it rather than granted per integration.
A Holded API key belongs to the account rather than to the person who created it. Anyone holding it reaches everything the account exposes within the module permissions picked at creation, so choose those permissions deliberately.
Holded serves both the accounting and HRIS APIs, and Vault keys a connection to one unified API, so each vertical is a separate connection using the same Holded API key. Employees are reachable only through HRIS: the accounting side excludes them.
- **environment notes:**   - **description:** Holded serves one production host, https://api.holded.com/api. There is no separate development host, so the credential shape is the same wherever you point it.
  - **environment:** Single host
  - **description:** Test against the demo environment rather than a live Holded account: anything the integration writes outside it lands in real books.
  - **environment:** Testing
- **beta:** true
- **webhooks:** Virtual webhooks - created and updated events across 11 resources, from invoices, bills and payments to employees. Deletions raise nothing.
- **apideck credentials note:** Each consumer supplies their own Holded API key.
- **sandbox available:** true
- **authentication note:** Sent as a request header; not OAuth.
- **difficulty reason:** API Key Authentication - Each Consumer Creates Their Own Key in Holded

## Supported resources

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

- **downstream name:** Employees
- **downstream id:** employees
- **id:** employees
- **custom field support:** true
- **name:** Employees
- **status:** beta
- **downstream name:** Invoices
- **id:** invoices
- **name:** Invoices
- **status:** live
- **downstream id:** invoices
- **custom field support:** true
- **downstream id:** credit-notes
- **downstream name:** Credit Notes
- **status:** live
- **name:** Credit Notes
- **custom field support:** true
- **id:** credit-notes
- **downstream id:** bills
- **status:** live
- **id:** bills
- **downstream name:** Bills
- **custom field support:** true
- **name:** Bills
- **name:** Purchase Orders
- **downstream id:** purchase-orders
- **status:** live
- **custom field support:** true
- **downstream name:** Purchase Orders
- **id:** purchase-orders
- **downstream name:** Quotes
- **custom field support:** true
- **id:** quotes
- **downstream id:** quotes
- **name:** Quotes
- **status:** beta
- **id:** customers
- **name:** Customers
- **custom field support:** true
- **status:** live
- **downstream id:** contacts-customers
- **downstream name:** Contacts Customers
- **id:** suppliers
- **name:** Suppliers
- **downstream id:** contacts-suppliers
- **downstream name:** Contacts Suppliers
- **custom field support:** true
- **status:** live
- **id:** payments
- **name:** Payments
- **downstream name:** Payments
- **status:** live
- **custom field support:** false
- **downstream id:** payments
- **name:** Bill Payments
- **custom field support:** false
- **status:** live
- **id:** bill-payments
- **downstream id:** bill-payments
- **downstream name:** Bill Payments
- **downstream name:** Taxes
- **status:** live
- **custom field support:** false
- **name:** Tax Rates
- **downstream id:** taxes
- **id:** tax-rates
- **downstream id:** treasury
- **name:** Bank Accounts
- **custom field support:** false
- **downstream name:** Treasury
- **status:** beta
- **id:** bank-accounts
- **downstream name:** Warehouses
- **custom field support:** false
- **name:** Locations
- **downstream id:** warehouses
- **status:** live
- **id:** locations
- **name:** Ledger Accounts
- **downstream name:** Chart Of Accounts
- **id:** ledger-accounts
- **downstream id:** chart-of-accounts
- **status:** live
- **custom field support:** false
- **downstream id:** journal-entries
- **id:** journal-entries
- **status:** live
- **downstream name:** Journal Entries
- **custom field support:** true
- **name:** Journal Entries
- **id:** attachments
- **name:** Attachments
- **custom field support:** false
- **downstream name:** Attachments
- **downstream id:** attachments
- **status:** live

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)
