Skip to main content

Responses

All Shufti Travel Rule API responses follow a consistent JSON structure. This section describes response formats, transaction statuses, and verification statuses.

Standard Response Format

FieldTypeDescription
errorbooleanfalse when successful, true on error.
statusstringOverall result: SUCCESS or ERROR.
messagestringHuman-readable result description.
dataobjectResponse payload. Structure varies by endpoint.

Success Response

success-response
{
"error": false,
"status": "SUCCESS",
"message": "Operation completed successfully",
"data": { }
}

Error Response

error-response
{
"error": true,
"status": "ERROR",
"message": "Descriptive error message",
"data": {}
}
note

The { error, status, message, data } envelope above applies to the management endpoints (/travel-rule/* read / detail / update / delete / wallets / VASP). The create flow (POST /) instead returns the standard Shufti envelope (reference, event, …) and delivers the result via Callbacks.

Callbacks

Travel Rule screening is asynchronous. POST / returns request.pending immediately; the result is pushed to your callback_url as a signed callback. Every callback includes an sp_signature header — verify it as sha256(raw_json_body + secret_key), exactly as for other Shufti services.

EventWhenVerification result
request.pendingSynchronous response on create (not a callback)Pending
verification.acceptedTransaction reaches CONFIRMED (or wallet verified)Accepted
verification.declinedTransaction reaches DECLINED / FAILED / CANCELLEDDeclined

The verification stays pending while the transaction moves through non-terminal statuses and only finalises on a terminal status — CONFIRMED → accepted; DECLINED / FAILED / CANCELLED → declined. DELIVERED is not terminal (the message reached the counterparty VASP but isn't yet confirmed), so it keeps the verification pending. Use the Read / Detail endpoints to check the current status at any time.

Final callback

verification.accepted-callback
{
"reference": "sp-tr-txn-001",
"event": "verification.accepted"
}

For a declined outcome the event is verification.declined (with declined_reason / declined_codes as for other services — see Declined Reasons).

Transaction Statuses

Travel Rule transactions progress through these statuses during their lifecycle:

StatusDescriptionSet By
PENDINGTransaction created, awaiting delivery to counterparty.System
FAILEDTransaction delivery failed.System
CANCELLEDTransaction cancelled.System
DELIVEREDSuccessfully delivered to counterparty VASP.User/System
CONFIRMEDCounterparty VASP confirmed receipt and acceptance.User
DECLINEDCounterparty VASP declined the transaction.User
info

Only DELIVERED, CONFIRMED, and DECLINED statuses can be set via the Update Transaction endpoint, and only for INCOMING transactions.

Wallet Verification Statuses

StatusDescription
pendingVerification is pending review.
verifiedWallet ownership has been successfully verified.
failedVerification failed.

Risk Severity Levels

SeverityDescription
LOW_RISKLow risk entities.
MEDIUM_RISKModerate risk entities.
HIGH_RISKHigh risk entities requiring extra caution.