Create a transaction
POST /api/v1/programmatic/transactions
/api/v1/programmatic/transactionsCreates one withdrawal, deposit, or transfer. The request is replay-safe per PAT and idempotency key.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
Idempotency-Key | header | stringRequired | Unique 16–128 character retry key. <Idempotency-Key> |
Request body
application/json{
"type": "withdrawal",
"date": "2026-07-12T12:00:00.000Z",
"amount": "12.50",
"description": "Lunch",
"source_account_id": "<asset-account-id>"
}Code examples
curl --request POST \
--url 'https://api.tetri.app/api/v1/programmatic/transactions' \
--header 'Authorization: Bearer $TETRI_API_TOKEN' \
--header 'Idempotency-Key: <Idempotency-Key>' \
--header 'Content-Type: application/json' \
--data '{ "type": "withdrawal", "date": "2026-07-12T12:00:00.000Z", "amount": "12.50", "description": "Lunch", "source_account_id": "<asset-account-id>" }'Responses
{
"data": {
"type": "transactions",
"id": "<uuid>",
"attributes": {
"group_title": "<string>",
"execution_status": "scheduled",
"executed_at": "2026-07-12T12:00:00Z",
"archived_at": "2026-07-12T12:00:00Z",
"is_archived": false,
"transactions": [
{
"transaction_journal_id": "<uuid>",
"type": "withdrawal",
"transfer_kind": "internal_fx",
"date": "2026-07-12T12:00:00Z",
"occurred_at": "2026-07-12T12:00:00Z",
"business_date": "2026-07-12",
"timezone": "Europe/Tbilisi",
"description": "Grocery shopping",
"amount": "42.50",
"foreign_amount": "45.00",
"foreign_currency_code": "EUR",
"foreign_currency_symbol": "€",
"currency_code": "USD",
"currency_symbol": "$",
"currency_decimal_places": 2,
"source_id": "<uuid>",
"source_name": "<string>",
"source_type": "asset",
"destination_id": "<uuid>",
"destination_name": "<string>",
"destination_type": "expense",
"category_id": "<uuid>",
"category_name": "<string>",
"budget_id": "<uuid>",
"budget_name": "<string>",
"tags": [
"<string>"
],
"notes": "<string>",
"last_reconciled_at": "2026-07-12",
"reconciled": false,
"status": "settled",
"estimated_rate": "1.05",
"final_rate": "1.058",
"settled_at": "2026-07-12T12:00:00Z",
"splits": [
{
"id": "<uuid>",
"amount": "42.50",
"category_id": "<uuid>",
"note": "<string>",
"tag_ids": [
"<uuid>"
]
}
],
"has_splits": false,
"remainder": "0.00",
"fx_delta_home": "1.23",
"effective_rate_journal": "0.9200"
}
]
}
}
}