Transaction Under Review Webhook

Sent once when a deposit or withdrawal is held for manual compliance review

Transaction Under Review Webhook

This webhook is sent when a user's deposit or withdrawal has been paused for manual compliance review. It lets you tell your user that their transaction was received and is being reviewed, instead of it appearing to have silently stalled.

It is delivered to the /tx endpoint appended to your Webhook URL (the same TRANSACTION channel as transaction status updates). Filter on the type field.

📘

Most compliance checks resolve automatically within seconds to a few minutes and produce no event. This webhook is only sent once a transaction has been held for several minutes and is waiting on a manual decision.

Semantics

  • Sent at most once per held transaction. In rare recovery scenarios the event can be duplicated — deduplicate on transactionId + type.
  • No reason is included. The event intentionally carries no information about why the transaction is being reviewed, and our support teams cannot share review details either.
  • No action is required from you or your user. The review is internal. When it concludes, the transaction proceeds or is declined through the standard events.
  • There is no closing event of this type. The outcome is signalled by the terminal TRANSACTION webhook you already consume: the usual completed/confirmed event when the transaction is approved (for example SEPA_PAYIN_COMPLETED, ON_CHAIN_DEPOSIT_CONFIRMED), or the corresponding *_DENIED event when it is declined.

Covered transaction types

The txType field carries the type of the held transaction:

txTypeFlow
SEPA_PAYIN_COMPLETEDIncoming SEPA transfer
SEPA_PAYOUT_INITIATEDOutgoing SEPA transfer
ON_CHAIN_DEPOSIT_CONFIRMEDIncoming on-chain deposit
ON_CHAIN_WITHDRAWAL_INITIATEDOutgoing on-chain withdrawal
LN_INCOMING_CONFIRMEDIncoming Lightning payment
LN_OUTGOING_INITIATEDOutgoing Lightning payment

Payload

FieldDescription
uidUnique id of this webhook delivery
typeAlways TRANSACTION_UNDER_REVIEW
transactionIdId of the held transaction, matching the id on its other TRANSACTION webhooks
accountIdThe account the transaction belongs to
syncedOwnerIdOwner of the account
userId / businessId / applicationIdOne of these, depending on whether the owner is a consumer, a business, or your corporate account
txTypeThe held transaction's type (table above)
amountAmount in the currency's smallest unit, as a string
currencyTransaction currency
heldAtISO 8601 timestamp of when the transaction was placed in review
tsDelivery timestamp (milliseconds)

The body shape is identical across all covered transaction types; only the values and the owner id field vary. The examples below cover every txType and every owner shape.

Incoming SEPA transfer (business account)

{
  "uid": "a7c31e52-90bb-4f6d-8c21-3d4e5f6a7b8c",
  "type": "TRANSACTION_UNDER_REVIEW",
  "transactionId": "0cf9a1d4-5b6e-4c7d-8e9f-0a1b2c3d4e5f",
  "accountId": "9b8a7c6d5e4f30211203f4e5d6c7b8a9",
  "syncedOwnerId": "7d6c5b4a-3e2f-4d5c-8b9a-0f1e2d3c4b5a",
  "businessId": "7d6c5b4a-3e2f-4d5c-8b9a-0f1e2d3c4b5a",
  "txType": "SEPA_PAYIN_COMPLETED",
  "amount": "250000",
  "currency": "EUR",
  "heldAt": "2026-10-06T09:12:45.820Z",
  "ts": 1791278011443
}

Outgoing SEPA transfer (corporate account)

{
  "uid": "2e9c4a1b-6d53-4f8e-a07b-9c8d7e6f5a4b",
  "type": "TRANSACTION_UNDER_REVIEW",
  "transactionId": "6a5b4c3d-2e1f-4a9b-8c7d-6e5f4a3b2c1d",
  "accountId": "31d2c3b4a5968778695a4b3c2d1e0f9e",
  "syncedOwnerId": "e4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8",
  "applicationId": "e4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8",
  "txType": "SEPA_PAYOUT_INITIATED",
  "amount": "1800000",
  "currency": "EUR",
  "heldAt": "2026-10-06T10:03:11.502Z",
  "ts": 1791281042780
}

Incoming on-chain deposit (consumer)

{
  "uid": "8b7a6c5d-4e3f-4a2b-9c1d-0e9f8a7b6c5d",
  "type": "TRANSACTION_UNDER_REVIEW",
  "transactionId": "bf4dbe08-2cb6-43c2-9892-a887e8f4937f",
  "accountId": "d2f1b6a09001a2b3c4d5e6f708192a3b",
  "syncedOwnerId": "104894c7-95fc-4dde-97dd-cb25b2587b91",
  "userId": "104894c7-95fc-4dde-97dd-cb25b2587b91",
  "txType": "ON_CHAIN_DEPOSIT_CONFIRMED",
  "amount": "10000000",
  "currency": "USDC",
  "heldAt": "2026-10-06T08:27:54.019Z",
  "ts": 1791275304231
}

Outgoing on-chain withdrawal (consumer)

{
  "uid": "5f1d2c3b-7a88-4a10-9c55-0e1f2a3b4c5d",
  "type": "TRANSACTION_UNDER_REVIEW",
  "transactionId": "3c2b1a0d-9e8f-4c7b-a6d5-4e3f2a1b0c9d",
  "accountId": "7c6b5a4d3e2f10098a7b6c5d4e3f2a1b",
  "syncedOwnerId": "104894c7-95fc-4dde-97dd-cb25b2587b91",
  "userId": "104894c7-95fc-4dde-97dd-cb25b2587b91",
  "txType": "ON_CHAIN_WITHDRAWAL_INITIATED",
  "amount": "1250000",
  "currency": "BTC",
  "heldAt": "2026-10-06T11:41:22.137Z",
  "ts": 1791286952601
}

Incoming Lightning payment (consumer)

{
  "uid": "0d9e8f7a-6b5c-4d3e-a2f1-b0c9d8e7f6a5",
  "type": "TRANSACTION_UNDER_REVIEW",
  "transactionId": "9f8e7d6c-5b4a-4f3e-b2d1-c0a9b8c7d6e5",
  "accountId": "5e4d3c2b1a0f99887766554433221100",
  "syncedOwnerId": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
  "userId": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
  "txType": "LN_INCOMING_CONFIRMED",
  "amount": "150000",
  "currency": "BTC",
  "heldAt": "2026-10-06T07:55:09.644Z",
  "ts": 1791273339902
}

Outgoing Lightning payment (consumer)

{
  "uid": "4c3b2a1d-0e9f-4a8b-b7c6-d5e4f3a2b1c0",
  "type": "TRANSACTION_UNDER_REVIEW",
  "transactionId": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
  "accountId": "0f1e2d3c4b5a69788796a5b4c3d2e1f0",
  "syncedOwnerId": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
  "userId": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
  "txType": "LN_OUTGOING_INITIATED",
  "amount": "320000",
  "currency": "BTC",
  "heldAt": "2026-10-06T12:14:37.318Z",
  "ts": 1791288947110
}