Create Records
Submit a JSON array of records for the key's entity, in the public record notation. The batch is all-or-nothing: one invalid record rejects the whole request, and a batch may hold each record id only once. A 202 means the records were accepted: they show in the app at once, and the next nightly processing run books them and makes them readable through this API, where the platform_object_id filter of the list endpoints finds a record by your own id. Resubmitting a record with the same id replaces it; resubmitting an identical record is safe and is counted as a duplicate. A link must repeat the target's platformType, platformId and platformDataType when the target was posted with them. Amounts must be finite and fit the currency's decimal places. Refused: exchangeRates, drafted vendor bills, and an invoice whose externalTotal, externalSubtotal or issuedDate differs from its total, subtotal or date. A Customer, Vendor, Product or Employee becomes readable through this API once a transaction links to it. Contractor, Settlement, Disbursement, Reimbursement, Discount, CurrencyReevaluation, RecognitionEvent, Fee and Deposit records are stored as submitted but not processed: they do not appear in the app and are not booked. Needs a key issued with a Custom API connection.
Query Parameters
- Type: stringentity
External id of the entity to act for, from
GET /v1/entities. Required when signed in with OAuth (an organization can hold several entities; ask the user which one if more than one could apply). Optional with an API key, which is scoped to one entity already.
Body
- Type:Properties: 3
Responses
- application/json
- 401
The credential was refused: none sent (CAPI11), an API key that is not valid (CAPI15), or an OAuth sign-in that has expired (CAPI16), was not issued for this API (CAPI17), names an organization T0 does not hold (CAPI18) or a membership that is no longer usable (CAPI19).
detailsays what to do. - 403
The key has no API connection, so it cannot submit records (CAPI72). Submitting needs a key issued alongside an API connection, which owns the account records land in. OAuth access tokens cannot use this endpoint (CAPI74); signed-in users post journal entries with
POST /v1/journal-entries. - 409
The entity is being rebuilt, or another submission to the same connection is in progress (CAPI36). Nothing was stored; retry shortly.
curl https://api.t0.ai/v1/records \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '[
{
"data": {
"amount": 1,
"currencyCode": "",
"customFields": {
"additionalProperty": "anything"
},
"date": "2026-11-11",
"description": "",
"endDate": "2026-11-11",
"exchangeRates": [],
"startDate": "2026-11-11"
},
"id": {
"dataType": "Adjustment",
"externalId": "",
"platformDataType": "",
"platformId": "",
"platformType": ""
},
"links": []
}
]'
{
"received": 1,
"inserted": 1,
"duplicates": 1
}