Download OpenAPI specification:
A small double-entry bookkeeping service: accounts, transactions, and the entries that belong to them. Entries are immutable and append-only — balances are always derived by summing entries, never stored and mutated directly. Every transaction's entries must sum to exactly zero (enforced both in application code and by a database constraint).
This API is meant to be called by other services/applications in this
account, not by end users directly — see the awsSigv4 security scheme
below.
| name required | string |
| type required | string (AccountType) Enum: "asset" "liability" "income" "expense" |
| currency required | string ISO 4217, e.g. |
{- "name": "string",
- "type": "asset",
- "currency": "USD"
}{- "name": "string",
- "type": "asset",
- "currency": "USD",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "created_at": "2019-08-24T14:15:22Z"
}Paginated, most-recent-first by effective_date.
| id required | string <uuid> |
| limit | integer [ 1 .. 200 ] Default: 50 |
| offset | integer >= 0 Default: 0 |
{- "items": [
- {
- "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
- "amount": 0,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "transaction_id": "0fec1e58-b197-4052-99cf-2218496c5482",
- "effective_date": "2019-08-24",
- "created_at": "2019-08-24T14:15:22Z"
}
], - "limit": 0,
- "offset": 0
}Requires an idempotency_key. Posting the same key twice returns
the original transaction unchanged with 200, rather than
double-posting — safe to retry.
| idempotency_key required | string |
| description | string |
| effective_date | string <date> Defaults to today (UTC) if omitted. |
required | Array of objects (EntryInput) >= 2 items Amounts must sum to exactly zero. |
{- "idempotency_key": "string",
- "description": "string",
- "effective_date": "2019-08-24",
- "entries": [
- {
- "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
- "amount": 0
}, - {
- "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
- "amount": 0
}
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "description": "string",
- "idempotency_key": "string",
- "effective_date": "2019-08-24",
- "created_at": "2019-08-24T14:15:22Z",
- "entries": [
- {
- "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
- "amount": 0,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "transaction_id": "0fec1e58-b197-4052-99cf-2218496c5482",
- "effective_date": "2019-08-24",
- "created_at": "2019-08-24T14:15:22Z"
}
]
}| id required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "description": "string",
- "idempotency_key": "string",
- "effective_date": "2019-08-24",
- "created_at": "2019-08-24T14:15:22Z",
- "entries": [
- {
- "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
- "amount": 0,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "transaction_id": "0fec1e58-b197-4052-99cf-2218496c5482",
- "effective_date": "2019-08-24",
- "created_at": "2019-08-24T14:15:22Z"
}
]
}| id required | string <uuid> |
| as_of | string <date> Interpreted end-of-day inclusive (effective_date <= as_of). Omit for "now." |
{- "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
- "as_of": "2019-08-24",
- "balance": 0
}| as_of | string <date> Interpreted end-of-day inclusive (effective_date <= as_of). Omit for "now." |
{- "as_of": "2019-08-24",
- "accounts": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "currency": "string",
- "balance": 0
}
]
}