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

Returned in error.context.details[].code on HTTP 400:

CodeMessage
KYT_CHECK_FAILEDYour transaction is rejected due to compliance guidelines. Please contact support for further assistance.
KYT_UNUSUAL_BEHAVIOR_MANUAL_REVIEWYour 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:

CodeMessage
COMPLIANCE_CHECK_FAILEDCompliance check has failed for this user. Please contact support for further assistance.
COMPLIANCE_CHECK_UNDER_MANUAL_REVIEWCompliance 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 carry
failureCode = 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.