Integration testing? In the test environment (
https://cryptobank.qbank.cl/platform, pk_test_ keys) the firewall behaves exactly like production once your org enables it. Details in Environments and testing.What you’ll see
When one of your operations is held:- Its status changes to
in_review— the operation does not execute yet. ThePOSTthat created it responds202 Acceptedwith areview_id. - You receive a webhook
txn_review_status_changedwith the new status. - If information is requested, you receive an email with the reason and a link to upload documents.
This is normal. The transactional firewall is a control layer your organization enabled to meet compliance policies. Most reviews resolve within minutes or hours.
List your reviews
List your operations that are or were under review:Filters
?status=—in_review,info_requested,released,rejectedorall(empty = open:in_review+info_requested). Any other value ⇒400 invalid_status.?from=/?to=— date range (YYYY-MM-DD, organization timezone, both inclusive). Invalid date ⇒400 invalid_range.?page=/?page_size=— pagination (default 50, max 200).
Review detail
404 not_found (never 403, so existence is not leaked). When the review was rejected, the detail includes decision_note (the same text as the rejection email) and decided_at.
Review statuses
Automatic rejection by deadline. If your organization configured a review deadline, a review nobody decides within that window (counted from its last status change — uploading evidence resets the clock) is automatically rejected by an hourly sweep: the operation is cancelled, held funds return to your balance, and you receive the same email and
txn_review_status_changed webhook as with a manual rejection. On the detail, the decision_note carries the standard deadline notice. Application reviews are never auto-rejected: a held banking or card application always waits for a human decision, with no deadline.Held applications (banking and cards)
If your organization enabled application review (two separate toggles, one for banking and one for cards), these requests can also be held before they are processed:POST /v1/banking/customer— opening your own banking profilePOST /v1/banking/third-parties— registering a third party for bankingPOST /v1/cards— issuing a card (virtual or physical)
202 Accepted instead of 201:
idempotency_key returns the same 202 payload with idempotency_hit: true — it never opens a second review.
- The application fee is charged when the application is held. If the review is rejected, the fee is automatically refunded; if it is approved, the profile or card is created at that moment.
- Follow the result with the webhook
txn_review_status_changed(kindwill bebanking_applicationorcard_application) or by pollingGET /v1/me/txn-reviews. - The review can also request information (
info_requested) — upload documents exactly like with a transactional review.
Upload documents when asked
If your review is ininfo_requested, upload the supporting files. The body is the raw file binary, the filename travels in the name query param and the type in the Content-Type header:
201 response — uploading a file moves the review back to in_review so the team re-evaluates it:
- Allowed types: PDF, PNG, JPEG, WEBP, TXT, CSV, DOC(X), XLS(X) — validated by the
Content-Typeheader. - Max size: 50 MB per file.
- Max 20 files per review.
Download your own files
Content-Type (files from other accounts answer 404 not_found).
Webhook txn_review_status_changed
Whenever the status of one of your reviews changes, you receive this webhook:
The webhook payload is neutral by design: it carries the status and the operation summary, but never the internal review reason or compliance notes.For application reviews (
kind: banking_application / card_application) the payload omits amount and asset; method carries the application flow (self/third_party) or the card type (virtual/physical).Own errors
Full catalog in Errors.
Frequently asked questions
Why was my operation held?
Why was my operation held?
Your organization enabled the transactional firewall, a control layer that holds certain operations for manual review before executing them. The exact criteria depend on your organization’s compliance policy.
How long does a review take?
How long does a review take?
Most reviews resolve within minutes or hours. If your review stays unanswered for over 24 hours, your organization receives an automatic alert. If your organization configured a decision deadline, the review is automatically rejected when it expires — uploading the requested evidence resets that clock.
What happens if my operation is rejected?
What happens if my operation is rejected?
The operation is cancelled. If funds were held (for example, in a payout), they are automatically returned to your available balance. You receive an email with the rejection reason.
Can I cancel an operation under review?
Can I cancel an operation under review?
Not directly. If you need to cancel it, contact your organization’s compliance team — they can reject it from their panel.
Why can't I see the hold reason?
Why can't I see the hold reason?
For security and to avoid compromising compliance investigations, the internal reason is never exposed to the end user. You will only see the information request message when documents are asked of you.
I created a banking profile or a card and got a 202 — what happened?
I created a banking profile or a card and got a 202 — what happened?
Your organization enabled application review: the request was held before processing. Nothing is created yet — when compliance approves the review, the profile or card is created automatically and you receive the webhook
txn_review_status_changed with status: released. The application fee was charged at hold time; if the review is rejected, the fee is refunded to your balance automatically.