New compliance error codes
Affects: v3 APIs and order webhooks
As part of ongoing compliance improvements, we have standardised the error
codes returned when a request is declined or held by our compliance checks.
The following codes and messages have been added. No request or response
schemas have changed — only the possible values of existing error-code fields.
New error codes
Order APIs — POST /v3/orders
POST /v3/ordersReturned in error.context.details[].code on HTTP 400:
| Code | Message |
|---|---|
KYT_CHECK_FAILED | Your transaction is rejected due to compliance guidelines. Please contact support for further assistance. |
KYT_UNUSUAL_BEHAVIOR_MANUAL_REVIEW | Your transaction is under compliance review. Please allow 24-48 hours for the outcome or contact support for further assistance. |
KYT_UNUSUAL_BEHAVIOR_MANUAL_REVIEW indicates a temporary hold pending
review; KYT_CHECK_FAILED is a terminal decline for that transaction.
User creation and role-change APIs
POST /v3/users/individual, POST /v3/users/business,
POST /v3/senders/*, POST /v3/recipients/*, and role-change endpoints.
Returned in error.code on HTTP 409:
| Code | Message |
|---|---|
COMPLIANCE_CHECK_FAILED | Compliance check has failed for this user. Please contact support for further assistance. |
COMPLIANCE_CHECK_UNDER_MANUAL_REVIEW | Compliance check is under manual review for this user. Please wait 24-48 hours or contact support. |
Order retrieval and webhooks
GET /v3/orders/{id}, order listing, and order-status webhooks may now carryfailureCode = KYT_CHECK_FAILED or KYT_UNUSUAL_BEHAVIOR_MANUAL_REVIEW
with the messages above. This applies to all order types.
Recommendation
If your integration branches on error codes, add handling for the codes
above. Treat *_MANUAL_REVIEW codes as pending states and
KYT_CHECK_FAILED / COMPLIANCE_CHECK_FAILED as terminal for the request.
Unrecognised codes should fall through to your generic error handling.