Transactions
Edit, revert and re-validate transactions on processed bank statements.
Edit transactions
PUT /documents/{document_id}/transactions
Replace the transaction array for a processed bank statement. The original
extraction is preserved as an immutable backup on first edit, so
POST /documents/{document_id}/transactions/revert can always restore it.
Balance re-validation runs by default.
/documents/{document_id}/transactionscurl
curl -X PUT "https://api.kita.ai/api/v1/documents/42/transactions" \
-H "Authorization: Bearer $KITA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"transactions": [
{
"transaction_id": "<transaction_id>",
"date": "<date>",
"description": "<description>",
"amount": 0
}
]
}'Path parameters
| Field | Type | Description |
|---|---|---|
document_idrequired | integer | Positive integer document ID. |
Request body · application/json
| Field | Type | Description |
|---|---|---|
transactionsrequired | object[] | The full updated transactions array. |
transactions[].transaction_id | string | |
transactions[].date | string | As printed on the statement. |
transactions[].description | string | |
transactions[].amount | number | |
transactions[].debit | number | |
transactions[].credit | number | |
transactions[].balance | number | |
transactions[].category | string | |
transactions[].is_outlier | boolean | |
transactions[].outlier_reason | string | null | |
revalidate | boolean | Re-run balance validation. |
Response · 200
| Field | Type | Description |
|---|---|---|
success | boolean | |
transactions | object[] | |
transactions[].transaction_id | string | |
transactions[].date | string | As printed on the statement. |
transactions[].description | string | |
transactions[].amount | number | |
transactions[].debit | number | |
transactions[].credit | number | |
transactions[].balance | number | |
transactions[].category | string | |
transactions[].is_outlier | boolean | |
transactions[].outlier_reason | string | null | |
metrics | object | |
balance_checks | object | |
edit_history | object | |
edit_history.last_edited_at | string(date-time) | |
edit_history.edited_by_user_id | string | |
edit_history.version | integer |
Errors
| Field | Type | Description |
|---|---|---|
400 | error | The request was rejected. See `error` for the machine-readable code. |
404 | error | Resource does not exist, or belongs to another organization. |
Revert to the original extraction
POST /documents/{document_id}/transactions/revert
Restores the originally extracted transactions. Only available after at least one edit.
/documents/{document_id}/transactions/revertcurl
curl -X POST "https://api.kita.ai/api/v1/documents/42/transactions/revert" \
-H "Authorization: Bearer $KITA_API_KEY"Path parameters
| Field | Type | Description |
|---|---|---|
document_idrequired | integer | Positive integer document ID. |
Response · 200
| Field | Type | Description |
|---|---|---|
success | boolean | |
transactions | object[] | |
transactions[].transaction_id | string | |
transactions[].date | string | As printed on the statement. |
transactions[].description | string | |
transactions[].amount | number | |
transactions[].debit | number | |
transactions[].credit | number | |
transactions[].balance | number | |
transactions[].category | string | |
transactions[].is_outlier | boolean | |
transactions[].outlier_reason | string | null | |
metrics | object | |
balance_checks | object | |
message | string |
Errors
| Field | Type | Description |
|---|---|---|
400 | error | The request was rejected. See `error` for the machine-readable code. |
404 | error | Resource does not exist, or belongs to another organization. |
Re-run balance validation
POST /documents/{document_id}/transactions/revalidate
Re-validates the current transactions without modifying them.
/documents/{document_id}/transactions/revalidatecurl
curl -X POST "https://api.kita.ai/api/v1/documents/42/transactions/revalidate" \
-H "Authorization: Bearer $KITA_API_KEY"Path parameters
| Field | Type | Description |
|---|---|---|
document_idrequired | integer | Positive integer document ID. |
Response · 200
| Field | Type | Description |
|---|---|---|
success | boolean | |
transactions | object[] | |
transactions[].transaction_id | string | |
transactions[].date | string | As printed on the statement. |
transactions[].description | string | |
transactions[].amount | number | |
transactions[].debit | number | |
transactions[].credit | number | |
transactions[].balance | number | |
transactions[].category | string | |
transactions[].is_outlier | boolean | |
transactions[].outlier_reason | string | null | |
metrics | object | |
balance_checks | object |
Errors
| Field | Type | Description |
|---|---|---|
404 | error | Resource does not exist, or belongs to another organization. |

