Update User CIP Status (PATCH /v1/user/:id/cipStatus)
Error Code
HTTP Status
Description
Example Payload
NOT_ALLOWED_FOR_ANONYMOUS_USER
400
This action cannot be performed on anonymous users
{"status": "error", "error": {"errorType": "USER_ERROR", "errorCode": "NOT_ALLOWED_FOR_ANONYMOUS_USER", "message": "Action not allowed for anonymous user."}}
NOT_ALLOWED_FOR_CIP_STATUS
400
User's current CIP status does not allow this update
{"status": "error", "error": {"errorType": "USER_ERROR", "errorCode": "NOT_ALLOWED_FOR_CIP_STATUS", "message": "Action not allowed for user with CIP status: pend."}}
CIP_STATUS_NOT_ELIGIBLE_FOR_UPDATE
400
CIP status cannot be updated (>30 days since decision)
{"status": "error", "error": {"errorType": "INVALID_INPUT", "errorCode": "CIP_STATUS_NOT_ELIGIBLE_FOR_UPDATE", "message": "The user's CIP status is not eligible to be updated."}}
USER_NOTHING_TO_MODIFY
400
No changes detected (CIP status is already the requested value)
{"status": "error", "error": {"errorType": "INVALID_INPUT", "errorCode": "USER_NOTHING_TO_MODIFY", "message": "Nothing to modify for user"}}
Archive User (PATCH /v1/user/:id/archiveUser)
Error Code
HTTP Status
Description
Example Payload
USER_ARCHIVE_ACTIVE_ACCOUNTS_EXIST
400
Cannot archive user with active accounts
{"status": "error", "error": {"errorType": "NOT_FOUND", "errorCode": "USER_ARCHIVE_ACTIVE_ACCOUNTS_EXIST", "message": "User has active accounts and cannot be archived."}}
USER_NOT_FOUND
404
The specified user was not found
{"status": "error", "error": {"errorType": "NOT_FOUND", "errorCode": "USER_NOT_FOUND", "message": "Active user not found."}}
{"status": "error", "error": {"errorType": "NOT_FOUND", "errorCode": "USER_ARCHIVE_ACTIVE_ACCOUNTS_EXIST", "message": "User has active accounts and cannot be archived."}}
USER_NOT_FOUND
404
The specified entity was not found
{"status": "error", "error": {"errorType": "NOT_FOUND", "errorCode": "USER_NOT_FOUND", "message": "Active user not found."}}
Retrieve ID Number (GET /v1/user/:id/retrieveIdNumber)
Error Code
HTTP Status
Description
Example Payload
NOT_ALLOWED_FOR_ANONYMOUS_USER
400
Cannot retrieve ID for anonymous users
{"status": "error", "error": {"errorType": "USER_ERROR", "errorCode": "NOT_ALLOWED_FOR_ANONYMOUS_USER", "message": "Action not allowed for anonymous user."}}
USER_NOT_FOUND
404
The specified user was not found
{"status": "error", "error": {"errorType": "NOT_FOUND", "errorCode": "USER_NOT_FOUND", "message": "Active user not found."}}
Retrieve ID Update History (GET /v1/user/:id/retrieveIdUpdateHistory)
Error Code
HTTP Status
Description
Example Payload
NOT_ALLOWED_FOR_ANONYMOUS_USER
400
Cannot retrieve ID history for anonymous users
{"status": "error", "error": {"errorType": "USER_ERROR", "errorCode": "NOT_ALLOWED_FOR_ANONYMOUS_USER", "message": "Action not allowed for anonymous user."}}
USER_NOT_FOUND
404
The specified user was not found
{"status": "error", "error": {"errorType": "NOT_FOUND", "errorCode": "USER_NOT_FOUND", "message": "Active user not found."}}
Confirm ID Number (POST /v1/user/:id/confirmIdNumber)
Error Code
HTTP Status
Description
Example Payload
NOT_ALLOWED_FOR_ANONYMOUS_USER
400
Cannot confirm ID for anonymous users
{"status": "error", "error": {"errorType": "USER_ERROR", "errorCode": "NOT_ALLOWED_FOR_ANONYMOUS_USER", "message": "Action not allowed for anonymous user."}}
Account Endpoints
Create Account (POST /v1/account/create)
Error Code
HTTP Status
Description
Example Payload
PRODUCT_NOT_ELIGIBLE
400
The product is not eligible for this action (e.g., anonymous product)
{"status": "error", "error": {"errorType": "INPUT_ERROR", "errorCode": "PRODUCT_NOT_ELIGIBLE", "message": "Product not eligible for this action: createAccount.", "errorData": {"action": "createAccount"}}}
INVALID_SHIPPING_OPTION
400
The specified shipping option is not available for this product
{"status": "error", "error": {"errorType": "USER_ERROR", "errorCode": "NOT_ALLOWED_FOR_CIP_STATUS", "message": "Action not allowed for user with CIP status: pend.", "errorData": {"cipStatus": "pend"}}}
WATCHLIST_CONFIRMED_OR_PENDING_REVIEW
400
User is on watchlist and cannot create account
{"status": "error", "error": {"errorType": "INVALID_INPUT", "errorCode": "WATCHLIST_CONFIRMED_OR_PENDING_REVIEW", "message": "Action is blocked due to watchlist status: confirmed", "errorData": {"watchlistStatus": "confirmed"}}}
PRODUCT_COLLATERAL_CONFIG_ID_NOT_FOUND
400
The specified collateral config ID was not found on the product
{"status": "error", "error": {"errorType": "NOT_FOUND", "errorCode": "PRODUCT_COLLATERAL_CONFIG_ID_NOT_FOUND", "message": "Collateral config id: config123 not found on product id: prod456", "errorData": {"collateralConfigId": "config123", "productId": "prod456"}}}
{"status": "error", "error": {"errorType": "INVALID_INPUT", "errorCode": "ACCOUNT_STATUS_NOT_ELIGIBLE", "message": "Account status for accountId: acc123 not eligible for this action: edit."}}
Edit Account Features (PATCH /v1/account/:id/editAccountFeatures)
Error Code
HTTP Status
Description
Example Payload
INVALID_SHIPPING_OPTION
400
The specified shipping option is not available for this product
{"status": "error", "error": {"errorType": "INPUT_ERROR", "errorCode": "CARD_STATUS_NOT_ELIGIBLE", "message": "Card status not eligible for this modify action: activation."}}
{"status": "error", "error": {"errorType": "INPUT_ERROR", "errorCode": "CARD_STATUS_NOT_ELIGIBLE", "message": "Card status not eligible for this modify action: freeze."}}
Replace Card (POST /v1/card/:cardId/replace)
Error Code
HTTP Status
Description
Example Payload
CARD_STATUS_NOT_ELIGIBLE
400
Card status does not allow replacement (e.g., already closed)
{"status": "error", "error": {"errorType": "INPUT_ERROR", "errorCode": "CARD_STATUS_NOT_ELIGIBLE", "message": "Card status not eligible for this modify action: replace.", "errorData": {"modifyReason": "replace"}}}
Card cannot be reissued (closed or already has pending reissue)
{"status": "error", "error": {"errorType": "INPUT_ERROR", "errorCode": "CARD_STATUS_NOT_ELIGIBLE", "message": "Card status not eligible for this modify action: reissue.", "errorData": {"modifyReason": "Card has already been reissued"}}}
Card must be active or frozen to reset PIN fail count
{"status": "error", "error": {"errorType": "INPUT_ERROR", "errorCode": "CARD_STATUS_NOT_ELIGIBLE", "message": "Card status not eligible for this modify action: ResetPINFailCard.", "errorData": {"modifyReason": "ResetPINFailCard"}}}
Mobile Wallet Provisioning (POST /v1/card/:cardId/mobileWalletProvision)
Error Code
HTTP Status
Description
Example Payload
CARD_STATUS_NOT_ELIGIBLE
400
Card status does not allow mobile wallet provisioning
{"status": "error", "error": {"errorType": "INPUT_ERROR", "errorCode": "CARD_STATUS_NOT_ELIGIBLE", "message": "Card status not eligible for this modify action: mobileWalletProvision.", "errorData": {"modifyReason": "mobileWalletProvision"}}}
Get Card Display URL (POST /v1/card/:cardId/displayUrl)
Error Code
HTTP Status
Description
Example Payload
CARD_STATUS_NOT_ELIGIBLE
400
Card status does not allow fetching display URL (e.g., closed)
{"status": "error", "error": {"errorType": "INPUT_ERROR", "errorCode": "CARD_STATUS_NOT_ELIGIBLE", "message": "Card status not eligible for this modify action: getDisplayUrl."}}
Get Card PIN Change Token (POST /v1/card/:cardId/pinChangeToken)
Error Code
HTTP Status
Description
Example Payload
CARD_STATUS_NOT_ELIGIBLE
400
Card status does not allow PIN change (e.g., closed)
{"status": "error", "error": {"errorType": "INPUT_ERROR", "errorCode": "CARD_STATUS_NOT_ELIGIBLE", "message": "Card status not eligible for this modify action: getCardPinUrl.", "errorData": {"modifyReason": "getCardPinUrl"}}}
{"status": "error", "error": {"errorType": "INPUT_ERROR", "errorCode": "CARD_STATUS_NOT_ELIGIBLE", "message": "Card status not eligible for this modify action: commitCardPinChange.", "errorData": {"modifyReason": "commitCardPinChange"}}}
{"status": "error", "error": {"errorType": "NOT_FOUND", "errorCode": "ACH_ACCOUNT_NOT_FOUND", "message": "Active ach account not found."}}
ACCOUNT_STATUS_NOT_ELIGIBLE
400
Account status does not allow ACH transactions
{"status": "error", "error": {"errorType": "INVALID_INPUT", "errorCode": "ACCOUNT_STATUS_NOT_ELIGIBLE", "message": "Account status for accountId: acc123 not eligible for this action: achTransaction."}}
ACH_ACCOUNT_STATUS_NOT_ELIGIBLE
400
ACH account status does not allow transactions
{"status": "error", "error": {"errorType": "INVALID_INPUT", "errorCode": "ACH_ACCOUNT_STATUS_NOT_ELIGIBLE", "message": "Ach account status not eligible for this action: transaction."}}
ACH_ACCOUNT_NOT_OWNED_BY_ACCOUNT
400
ACH account does not belong to the specified account
{"status": "error", "error": {"errorType": "INVALID_INPUT", "errorCode": "ACH_ACCOUNT_NOT_OWNED_BY_ACCOUNT", "message": "Ach account is not owned by the account."}}
{"status": "error", "error": {"errorType": "INVALID_INPUT", "errorCode": "ACCOUNT_STATUS_NOT_ELIGIBLE", "message": "Account status for accountId: acc123 not eligible for this action: cancelAch."}}
{"status": "error", "error": {"errorType": "INVALID_INPUT", "errorCode": "ACCOUNT_STATUS_NOT_ELIGIBLE", "message": "Account status for accountId: acc123 not eligible for this action: createFee."}}
{"status": "error", "error": {"errorType": "INVALID_INPUT", "errorCode": "ACCOUNT_STATUS_NOT_ELIGIBLE", "message": "Account status for accountId: acc123 not eligible for this action: reverseFee."}}
{"status": "error", "error": {"errorType": "INVALID_INPUT", "errorCode": "ACCOUNT_STATUS_NOT_ELIGIBLE", "message": "Account status for accountId: acc123 not eligible for this action: createAdjustment."}}
{"status": "error", "error": {"errorType": "INVALID_INPUT", "errorCode": "ACCOUNT_STATUS_NOT_ELIGIBLE", "message": "Account status for accountId: acc123 not eligible for this action: createPayment."}}
Create A2A Transfer (POST /v1/transaction/createA2ATransfer)
Error Code
HTTP Status
Description
Example Payload
PRODUCT_A2A_NOT_ELIGIBLE
400
A2A transfers are not enabled for this product
{"status": "error", "error": {"errorType": "INVALID_INPUT", "errorCode": "PRODUCT_A2A_NOT_ELIGIBLE", "message": "Product is not eligible for A2A transfers."}}
A2A_SENDER_RECEIVER_SAME
400
Cannot transfer to the same account
{"status": "error", "error": {"errorType": "INVALID_INPUT", "errorCode": "A2A_SENDER_RECEIVER_SAME", "message": "Sender and receiver cannot be the same."}}
ACCOUNT_NOT_FOUND
404
The specified account was not found (sender or receiver)
{"status": "error", "error": {"errorType": "INVALID_INPUT", "errorCode": "ACCOUNT_STATUS_NOT_ELIGIBLE", "message": "Account status for accountId: acc123 not eligible for this action: a2aTransfer."}}
Common Errors
These errors can occur across multiple endpoints:
Resource Not Found Errors
Error Code
Description
USER_NOT_FOUND
The specified user was not found
ACCOUNT_NOT_FOUND
The specified account was not found
CARD_NOT_FOUND
The specified card was not found
ACH_ACCOUNT_NOT_FOUND
The specified ACH account was not found
PRODUCT_NOT_FOUND
The specified product was not found
GROUP_NOT_FOUND
The specified group was not found
LINKED_INSTITUTION_NOT_FOUND
The specified linked institution was not found
LINKED_INSTITUTION_ACCOUNT_NOT_FOUND
The specified linked institution account was not found
ZTM (Zero Touch Monitoring) Errors
Error Code
Description
ZTM_NO_GO
Transaction was blocked by ZTM risk assessment
Validation Errors
Error Code
Description
INVALID_USER_IDNUMBER
The provided ID number format is invalid
INVALID_SHIPPING_OPTION
The specified shipping option is invalid
PRODUCT_INVALID_CONFIG_ID
The display config ID is invalid
Feature Error Reference
Error codes for feature areas not covered by the endpoint tables above. All responses use the standard error structure shown at the top of this page.
Request & Platform Errors
These can occur on any endpoint.
Error Code
HTTP Status
Error Type
Description
INVALID_REQUEST
400
INVALID_REQUEST
Request body or parameters failed schema validation; the message field lists the specific failures
DUPLICATE_REQUEST_ID
400
INVALID_REQUEST
The requestId was already used by a previous request
MISSING_REQUEST_ID
400
INVALID_REQUEST
A unique requestId is required
OPERATION_NOT_ALLOWED_IN_PRODUCTION
403
FORBIDDEN
This operation (e.g. a simulation endpoint) is only available in non-production environments
OPERATION_REQUIRES_SANDBOX_ENVIRONMENT
403
FORBIDDEN
This operation is only available in the sandbox environment
User & Product Eligibility Errors
Returned by user/entity create and edit endpoints when product rules are not satisfied.
Error Code
HTTP Status
Error Type
Description
MISSING_REQUIRED_USER_FIELDS
400
INVALID_INPUT
Missing required user fields:
MISSING_POSTAL_CODE
400
INVALID_INPUT
postalCode is required for the provided countryCode
INVALID_PHONE_NUMBER
400
INVALID_INPUT
Only phone numbers from the following countries are allowed:
INVALID_LINKED_USER
400
INVALID_INPUT
Invalid linked user:
UNSUPPORTED_ACH_ACCOUNT_TYPE
400
INVALID_INPUT
The provided ach account type is not supported
PRODUCT_NOT_ELIGIBLE_FOR_USER_TYPE
400
INVALID_INPUT
Product not eligible for user type:
MINIMUM_AGE_RULE_NOT_SATISFIED
400
INVALID_INPUT
The user does not meet the product's minimum age requirement
MAXIMUM_AGE_RULE_NOT_SATISFIED
400
INVALID_INPUT
The user exceeds the product's maximum age limit
USER_ID_TYPE_RULE_NOT_SATISFIED
400
INVALID_INPUT
The user's idType is not allowed by the product's ID-type rule
COUNTRY_CODE_RULE_NOT_SATISFIED
400
INVALID_INPUT
The user's country code is not allowed by the product's country rule
Entity & Beneficial Owner Errors
Returned by entity create/edit and beneficial-owner endpoints.
Error Code
HTTP Status
Error Type
Description
ENTITY_NOT_FOUND
404
NOT_FOUND
Active entity not found
BENEFICIAL_OWNER_NOT_FOUND_OR_INVALID
400
INVALID_INPUT
Beneficial owner(s) not found or invalid:
BENEFICIAL_OWNER_PERCENTAGE_INVALID
400
INVALID_INPUT
Beneficial owner percentage can not be greater than 100%