API conventions
Cross-cutting rules that apply to all endpoints. Knowing them avoids the most common mistakes when writing an agent or a script.
Money
Amounts are in decimal euros, not cents. One thousand two hundred euros is 1200.00, not 120000. Use a decimal point and two decimals where appropriate.
{ "base": 1000.00, "iva": 210.00, "total": 1210.00 }
Dates
Dates are in ISO-8601 (YYYY-MM-DD, for example 2026-07-08). Timestamps follow the same standard. Don't use local formats like 08/07/2026.
Identifiers
Resource IDs are UUIDs (for example 3f2a…). This holds for invoices, purchases, treasuries, movements, documents and tax types. On invoice/purchase lines, the tax is referenced by its tax_type_id (a UUID you get from /api/v1/taxes).
Pagination and filters
List endpoints accept these query parameters:
| Parameter | What it does |
|---|---|
limit | Maximum number of items to return. |
offset | Offset (for paging). |
from | Range start date (ISO-8601). |
to | Range end date (ISO-8601). |
Example:
curl "https://api.aikount.com/api/v1/bank-movements?treasury_id=<uuid>&from=2026-04-01&to=2026-06-30&limit=50" \
-H "Authorization: Bearer agl_your_key_here"
Errors
An error arrives as an HTTP status plus a JSON body with the detail key:
{ "detail": "..." }
The most common authentication ones are 401 (token missing, invalid or revoked) and 403 (valid token lacking the required scope). See Authentication.
The source of truth
This documentation describes the stable conventions, but the OpenAPI spec is the authoritative reference for each endpoint's exact parameters, types, fields and responses:
https://api.aikount.com/openapi.json
You can also explore it in Swagger UI (/docs) or Redoc (/redoc). If anything here disagrees with openapi.json, openapi.json wins.