Create Journal Entry
POST/external/v1/journal_entries/create/
Post one manual journal entry into a tenant the calling user owns. Debits must equal credits and every account code must exist in the tenant. Pass an optional external_id to make the call idempotent — retrying with the same value returns the original entry instead of double-posting.
ApiDocsParametersTitle
| ApiDocsParamField | ApiDocsParamType | ApiDocsParamRequired | ApiDocsParamDescription |
|---|---|---|---|
| domain_url | string | ApiDocsRequired | Target tenant subdomain prefix (e.g. acme-corp) or its full domain. |
| date | string | ApiDocsRequired | Entry date, YYYY-MM-DD. |
| memo | string | ApiDocsRequired | Description of the entry. Cannot be blank. |
| transactionCurrency | string | ApiDocsRequired | 3-letter ISO currency the entry is recorded in. |
| reportingCurrency | string | ApiDocsRequired | 3-letter ISO reporting currency. The FX rate is resolved server-side. |
| entries | array | ApiDocsRequired | Transaction lines. Each: account (code), debit, credit, description. |
| accrual_date | string | ApiDocsOptional | YYYY-MM-DD. When set, the entry is scheduled to post on this date. |
| external_id | string | ApiDocsOptional | Idempotency key. Replaying the same value returns the original entry. |
ApiDocsRequestLabel
curl -X POST https://<api-host>/external/v1/journal_entries/create/ \
-H "X-API-Key: <encrypted_token>" \
-H "Content-Type: application/json" \
-d '{
"domain_url": "acme-corp",
"date": "2026-06-03",
"memo": "API posted accrual",
"transactionCurrency": "SGD",
"reportingCurrency": "SGD",
"external_id": "ext-inv-00912",
"entries": [
{ "account": "5010", "debit": "1000.00", "credit": "0.00", "description": "Rent" },
{ "account": "2100", "debit": "0.00", "credit": "1000.00", "description": "Payable" }
]
}'ApiDocsResponseLabel
{
"status": "success",
"status_code": 200,
"data": {
"journal_entry_id": "JE00000001",
"journal_number": "DEP-2026-06-03-0001",
"date": "2026-06-03",
"memo": "API posted accrual",
"entry_type": "Manual Journal",
"transaction_currency": "SGD",
"transaction_amount": "1000.00",
"reporting_currency": "SGD",
"reporting_amount": "1000.00",
"exchange_rate": "1.00000000000",
"transactions": [ "... debit and credit lines ..." ],
"bank_reconciliation_id": null
}
}