TransactionsUpdate Banking Transaction

Update Banking Transaction

Updates editable fields on a banking transaction, identified by transactionId.

Use this endpoint to enrich transactions in your reconciliation flow or ERP — for example, by recording operation context, reconciling the transaction, or classifying it by category and cost center.

Editable fields today:

  • notes — transaction notes (max 1000 characters). Send an empty string ("") to clear.
  • isConciled — marks the transaction as reconciled. Only true is accepted — reconciling is irreversible via the API.
  • categoryId — numeric category ID.
  • costCenterId — UUID of the cost center (use the id field from GET /cost-centers/v1/cost-centers).

Rules:

  • transactionId must be the transaction id from the statement (GET /statements/v1/banking).
  • At least one field must be provided in the body.
  • Sending isConciled: false returns 400 Bad Request.
  • A categoryId or costCenterId that doesn't exist for the company returns 400 Bad Request.
  • When the transaction can't be reconciled, the API returns 409 Conflict.
  • On success, the API returns 204 No Content (no body).

Example:

curl -X PATCH https://api-sandbox.contasimples.com/statements/v1/banking/106615 \
  -H "Authorization: Bearer {TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"notes":"Supplier payment","isConciled":true,"categoryId":1146}'
curl -X PATCH "https://api-sandbox.contasimples.com/statements/v1/banking/106615" \
  -H "Content-Type: application/json" \
  -H "Signature-Input: example_string" \
  -H "Signature: example_string" \
  -H "Content-Digest: example_string" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{
  "notes": "Supplier payment",
  "isConciled": true,
  "categoryId": 1146,
  "costCenterId": "a02f8f63-8b1b-4328-9d7d-0d2e351b8118"
}'
{}
PATCH
/statements/v1/banking/{transactionId}
PATCH
Base URLstring

Target server for requests. Edit to use your own host.

Bearer Token
Bearer Tokenstring
Required

Bearer token from OAuth 2.0 client credentials. Format: Bearer TOKEN

Bearer token from OAuth 2.0 client credentials. Format: Bearer TOKEN
path
transactionIdinteger
Required

Banking transaction ID — use the id field from GET /statements/v1/banking (e.g. 106615).

Content-Typestring
Required

The media type of the request body

Options: application/json
header
Signature-Inputstring

What was signed and the signature parameters, in the RFC 9421 format. A credential with a public key must send it on every call, reads included, or the request is refused with 401. The signature covers the @method, @path, and @query components, and also content-digest when there is a body. created and alg are required, and created is valid for 300 seconds. The full format, with examples, is in Request Signing.

header
Signaturestring

The signature of the base defined by RFC 9421, in base64, between : and under the same label used in Signature-Input, for example sig=:SGVsbG8gd29ybGQ=:. It always goes together with Signature-Input.

header
Content-Digeststring

Hash of the request body in the RFC 9530 format, with sha-256 or sha-512, for example sha-256=:X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE=:. It is required when the request has a body and the credential has a public key, and in that case Signature-Input must include the content-digest component.

notesstring

Transaction notes. Send an empty string ("") to clear.

Max length: 1000
isConciledboolean

Marks the transaction as reconciled. Only true is accepted — reconciling is irreversible via the API.

Options: true
categoryIdinteger

Category ID — use the id field from GET /categories/v1/categories.

costCenterIdstring

UUID of the cost center — use the id field from GET /cost-centers/v1/cost-centers.

Format: uuid
Request Preview
Response

Response will appear here after sending the request

Authentication

header
Authorizationstring
Required

Bearer token. Bearer token from OAuth 2.0 client credentials. Format: Bearer TOKEN

Path Parameters

transactionIdinteger
Required

Banking transaction ID — use the id field from GET /statements/v1/banking (e.g. 106615).

Example:
106615

Headers

Signature-Inputstring

What was signed and the signature parameters, in the RFC 9421 format. A credential with a public key must send it on every call, reads included, or the request is refused with 401. The signature covers the @method, @path, and @query components, and also content-digest when there is a body. created and alg are required, and created is valid for 300 seconds. The full format, with examples, is in Request Signing.

Signaturestring

The signature of the base defined by RFC 9421, in base64, between : and under the same label used in Signature-Input, for example sig=:SGVsbG8gd29ybGQ=:. It always goes together with Signature-Input.

Content-Digeststring

Hash of the request body in the RFC 9530 format, with sha-256 or sha-512, for example sha-256=:X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE=:. It is required when the request has a body and the credential has a public key, and in that case Signature-Input must include the content-digest component.

Body

application/json
notesstring

Transaction notes. Send an empty string ("") to clear.

Example:
Supplier payment
isConciledboolean

Marks the transaction as reconciled. Only true is accepted — reconciling is irreversible via the API.

Allowed values:true
categoryIdinteger

Category ID — use the id field from GET /categories/v1/categories.

Example:
1146
costCenterIdstring

UUID of the cost center — use the id field from GET /cost-centers/v1/cost-centers.

Example:
a02f8f63-8b1b-4328-9d7d-0d2e351b8118

Responses