Delete an account (protected hard delete)
PROTECTED HARD DELETE. Permanently removes the account row and its transaction-free children (contacts, addresses, payment methods).
Industry standard (NetSuite / QuickBooks / Acumatica): an account that has
any financial or transaction history cannot be deleted. If the account is
referenced by orders (any document type: quote / sales order / invoice / return /
purchase order), payments, returns, vendor bills, AP payments, vendor credits,
vendor prepayments, customer deposits, journal entry lines, inventory transactions,
or pricing policies, the call returns 409 account_not_deletable with a clear
hint and per-type dependency counts. In that case, DEACTIVATE the account instead
(POST /v1/accounts/{id}/deactivate).
A transaction-free account is hard-deleted and the call returns
{ deleted: true, display_name }. This behavior is identical to the in-app
(Cognito) delete — one canonical handler serves both callers.
Authorizations
API key issued per entity via Settings > Developers > API Keys.
Each key carries scopes (e.g. orders:read, products:write).
Bearer token format: Authorization: Bearer ark_live_ent_Test keys use ark_test_ent_. Both are issued per entity
via Settings > Developers > API Keys.
Path Parameters
Account UUID or account_number (e.g. ACCT-001, CUST-00042). Polymorphic lookup: if the value is not a UUID it is resolved to a UUID via accounts.account_number within the entity scope before the record is fetched. (NEW-GAP-API-V1-POLYMORPHIC-LOOKUP-CROSS-RESOURCE 2026-05-20)
Response
Account permanently deleted (no financial history).

