API Error Codes

All errors returned by the Due API follow a consistent structure. The error_code field in the response body uniquely identifies the error type and can be used for programmatic handling.

Error response format

{
  "error_code": "err_recipient_not_found",
  "message": "Recipient is required",
  "http_code": 400
}

Error codes

http_codeerror_codedescription
400err_account_no_walletsAccount has no wallets created
400err_account_cannot_be_completedAccount cannot be completed in its current status
400err_credential_already_approvedThis credential has already been approved
400err_credential_not_approvedThis credential has not been approved
400err_credential_session_invalidThis session is not a registration session
400err_credential_not_ownedCredential is not owned
400err_otp_invalidInvalid OTP code
400err_otp_requiredOTP code is required
400err_signin_jwt_requiredJWT token is required
400err_token_invalidInvalid token
400err_signup_email_requiredEmail is required
400err_user_address_takenThis address is already linked to another account
400err_user_address_not_ownedThis address does not belong to your account
400err_user_password_already_setA password has already been set
400err_user_email_takenThis email is already in use
400err_webhook_endpoint_invalid_urlInvalid URL provided
400err_webhook_event_not_supportedThe specified webhook event is not supported
400err_market_history_invalid_intervalThe specified interval is invalid
400err_channel_not_foundChannel not found
400err_channel_not_foundVirtual account channel not found
400err_channel_restrictedChannel is restricted in your country
400err_channel_restricted_categoryChannel is restricted for your category
400err_channel_recipient_country_restrictedRecipient country is not supported for this channel
400err_channel_sender_requiredThis channel requires a sender
400err_channel_sender_invalid_schemaSender schema is invalid
400err_purpose_requiredPurpose code is required for this destination
400err_purpose_invalidPurpose code does not match the channel's purpose code list
400err_purpose_not_supportedPurpose code is not supported for this destination
400err_endorsement_requiredRequired endorsements are missing
400err_recipient_type_not_supportedRecipient type is not supported for this destination
400err_channel_does_not_support_disposable_accountThis channel does not support disposable accounts
400err_channel_virtual_account_creation_restrictedThis channel does not support creation of new virtual accounts
400err_kyc_not_passedKYC not passed
400err_kyc_already_passedKYC has already been passed
400err_kyc_document_requirement_not_satisfiedRequirement for a document is not satisfied
400err_kyc_questionnaire_not_answeredThe required questionnaire has not been answered
400err_kyc_questionnaire_reference_answer_not_foundReference answer not found for the specified question
400err_kyc_questionnaire_answer_not_foundAnswer is missing for the specified question
400err_policy_usage_limit_exceededUsage limit exceeded
400err_policy_3rd_party_transfer_limit_exceededThird-party transfer limit exceeded
400err_policy_transfer_limit_exceededTransfer limit exceeded
400err_policy_breachedThis transfer could not be approved due to internal compliance policy
400err_quote_limit_below_minimumThe amount is below the required minimum. Please enter a greater amount.
400err_quote_limit_below_feeFees exceeded the estimated quote. Please try again with a higher amount.
400err_quote_limit_exceededThe amount exceeds the permissible limit. Please enter a smaller amount.
400err_estimate_invalid_source_channel_typeInvalid source channel type
400err_estimate_invalid_destination_channel_typeInvalid destination channel type
400err_quote_application_fee_outside_platformApplication fee is only available for platforms
400err_quote_application_fee_one_side_onlyEither source or destination application fee can be specified, not both
400err_quote_application_fee_exceeds_internal_feeApplication fee cannot exceed the transfer fee
400err_memo_unsupportedThis payment type does not support memos
400err_memo_requiredThe memo is required for this payment method
400err_memo_invalid_lengthMemo length is outside the allowed range
400err_memo_invalid_charactersMemo must only contain alphanumeric characters and & - . /
400err_memo_repeating_characterMemo must not consist of one repeating character
400err_rail_schema_unsupportedThe destination rail does not support this schema
400err_recipient_deletedThis recipient has been deleted
400err_recipient_invalidatedThis recipient is no longer valid
400err_recipient_requiredRecipient is required
400err_tos_ip_address_requiredIP address is required
400err_transfer_invalid_destination_idInvalid destination ID
400err_transfer_invalid_sender_idInvalid sender ID
400err_transfer_invalid_amountInvalid transfer amount
400err_transfer_intent_should_be_cryptoTransfer intent must be a crypto transfer
400err_wallet_invalid_addressThis wallet address is empty or invalid
400err_transfer_intent_failureTransfer intent failure
400err_transfer_intent_already_completedThis transfer intent has already been completed
400err_transfer_intent_has_different_idA pending intent with this reference has a different ID
400err_transfer_intent_invalid_tokenInvalid transfer intent token
400err_cctp_not_configuredCCTP not configured for this network
400err_cctp_chain_not_supportedChain is unsupported
400err_cctp_not_supportedCCTP is not supported
400err_cctp_network_does_not_support_session_keyThis network does not support session key execution
400err_cctp_nonce_requiredNonce is required
400err_relay_json_rpcA JSON RPC error occurred
400err_quote_no_amountInvalid quote request: you should specify either amount in or out
400err_insufficient_balanceInsufficient balance
401err_signin_invalid_credentialsInvalid credentials
401err_signin_jwt_invalidInvalid JWT token
401err_signin_jwt_expiredJWT token has expired
401err_wallet_signin_invalid_signatureInvalid signature
403err_aml_risk_score_hitTransaction flagged by compliance check
404err_credential_missingCredential is missing
404err_sumsub_applicant_not_foundSumsub applicant not found
404err_company_formation_document_not_foundCompany formation document not found
404err_company_ownership_document_not_foundCompany ownership document not found
404err_proof_of_address_not_foundProof of address not found
404err_id_doc_not_foundIdentity document not found
404err_liveness_check_not_foundLiveness check (selfie) not found
404err_occupation_not_foundOccupation not found
404err_ip_address_not_foundIP address not found
404err_kyc_questionnaire_not_foundQuestionnaire with this template ID not found
409err_account_external_id_conflictAn account with this external ID already exists
409err_webhook_endpoint_already_existsWebhook endpoint already exists
409err_kyc_applicant_invalid_statusInvalid applicant status for this operation
409err_kyc_sharing_invalid_statusSharing is unavailable for this account due to its current KYC status
409err_kyc_sharing_state_terminalSharing reached its terminal state
409err_endorsement_already_existsEndorsement already exists
409err_kyc_root_applicant_already_existsA root applicant for this account already exists
409err_recipient_already_existsRecipient already exists
422err_platform_deactivatedPlatform is deactivated
422err_user_email_requiredUser email is required
422err_user_name_requiredUser name is required
422err_invalid_signed_agreement_idInvalid signed agreement ID
422err_kyc_sharing_invalid_account_typeOnly individual accounts are supported
422err_kyc_sharing_not_possibleSharing is not possible due to an account restriction
422err_kyc_unsupported_param_combinationThe combination of country, account type, and role is not supported
422err_kyc_submission_finalizedSubmission must be open
422err_kyc_has_open_submissionsApplicant has open submissions
422err_kyc_document_request_invalidDocument of this type and variant was not found in submission requirements
422err_kyc_validation_errorValidation error
422err_recipient_validation_failedRecipient details failed validation. Check account information and try again.
422err_tos_region_not_configuredNot configured for your region
422err_transfer_not_awaiting_fundsTransfer is not awaiting funds
422err_derived_account_not_supportedThis account does not support derivation
428err_signup_requiredSignup required
428err_bvn_requiredBVN not found