Skip to content

Changelog

Every change to the API, newest first. The current status and price of each operation is always in GET /v1/pricing.

2026-11-04 Pre-release

Section titled “2026-11-04 ”

The first entry: what exists today. The API is not generally available yet, and until it is, endpoints and fields can still change. Every change will be listed here.

  • One base URL, https://api.accountcloud.io/v1, with JSON in and out, described by an OpenAPI 3.1 spec and the API reference.
  • API keys for live (ac_live_…) and test (ac_test_…), with scopes per product or operation, an IP allowlist, a monthly spending cap, an end date, rotation with an overlap, and revoking. See authentication and keys.
  • Rate limits per key per minute and per account per day, in the RateLimit-Policy and RateLimit headers.
  • Errors as RFC 9457 problems with a stable code; each code has its own link, https://docs.accountcloud.io/errors/{code}. See errors.
  • Idempotency-Key on every POST: a retry within 24 hours gets the first answer and is never charged twice. See idempotency.
  • Test mode: fixed test values for every operation, the error paths included, always free. See test mode.
  • The cost in every answer, in AccountCloud-Charged, and the credit left in AccountCloud-Balance.
  • The AccountCloud-Entity header, to keep documents and charges apart per customer of yours.
  • Webhooks, signed the Standard Webhooks way: credit.low_balance, credit.auto_top_up_failed, subscription.paused, document.extracted, document.completed, document.failed, document.rejected and the test event ping, with retries for 24 hours. See webhooks.
  • Prepaid credit and a base subscription, topped up in the portal. See pricing and credit.
  • GET /v1/me (the account, the key and the balance), and without a key GET /v1/status and GET /v1/pricing (in English, or Dutch with ?locale=nl).
Operation Endpoint Status on 2026-11-04
address.forms GET /v1/address/forms, GET /v1/address/forms/{country} Live, free
address.validate POST /v1/address/validate Preview, no price yet
address.format POST /v1/address/format Preview, no price yet
ocr.extract POST /v1/documents with processing: automatic Preview
ubl.verified POST /v1/documents with processing: verified Preview
ocr.read GET /v1/documents, GET /v1/documents/{id}, DELETE /v1/documents/{id} Preview, free
ubl.generate GET /v1/documents/{id}/ubl Preview, free
ubl.validate POST /v1/ubl/validate Preview, free
ocr.feedback POST /v1/documents/{id}/feedback Preview, free
company.profile GET /v1/companies/{country}/{number} Preview. NL priced, for accounts with access to KvK data; BE no price yet
company.search GET /v1/companies Preview, no price yet
vat.validate GET /v1/vat-numbers/{vat_number} Preview, no price yet

An operation in preview without a price answers a live key with 503 operation_unavailable until it has one; test keys already get answers. The guides: addresses, documents, and company data and VAT numbers.