Skip to main content

Processing flow

Cash receipt issuance and cancellation are asynchronous. The API first returns 202 Accepted and an issuanceKey. Check the final result via webhook or the status API.
  1. Webhook - the API sends a result event to your registered URL. We recommend webhooks for real-time processing.
  2. Status API - query the current status with Bolta-Client-Reference-Id.
202 means that the API accepted the request. It does not confirm issuance or cancellation. Always check the final result via webhook or the status API.

Issuance

To issue a cash receipt, call POST /v1/cashReceipts.
Register the supplier’s certificate before issuing a cash receipt. Issuance fails without a registered certificate. See Certificate Registration Integration.
The API returns an issuance key (issuanceKey). Store it for cancellation requests.

Recipient types

Set recipient.value based on recipient.type.
Do not set value for SELF. Provide a valid value for PHONE and BUSINESS_REGISTRATION_NUMBER.

Supplier information

Set issuer.businessRegistrationNumber to the business registration number linked to Supplier-Key.

Amount

Set each field in amount to no more than 9,999,999,999. The total (supplyAmount + vatAmount + taxFreeAmount) must also be no greater than 9,999,999,999 and greater than 0. If you omit taxFreeAmount, the API treats it as 0.

Status

Query the processing status with the Bolta-Client-Reference-Id used in the issuance or cancellation request.
Use status to determine success or failure. If the request failed, check failure for details. After successful issuance, the API also returns the cash receipt approval number in cashReceiptApprovalNumber.

Cancellation

You can fully cancel an issued cash receipt. Partial cancellation is not supported. Set {issuanceKey} in the path to the issuanceKey from the issuance response.
Set the cancellation request’s Bolta-Client-Reference-Id to a different value from the issuance request. Check the final result via webhook or the status API.

Reproducing a failure webhook (testing)

When calling the issuance or cancellation API with a test key, set the Bolta-Webhook-Test-Code header to a failure code. The API sends the corresponding failure webhook. Do not use this header in production (live).
For the list of failure codes, see Error codes.