API entities such as payments and cards are processed asynchronously after the initial create request is made. If a problem occurs while processing the request, the `errorCode` property is set on the entity and can be retrieved either by polling the GET endpoint or via a notification.

## Payment Error Codes

CodeDescription
payment_failedPayment failed due to an unknown reason
payment_fraud_detectedSuspected fraud detected by Issuing bank. Please instruct your user to contact their bank directly to resolve
payment_deniedPayment denied by Circle Risk Service, see payment `riskReasonCode` for more details
payment_not_supported_by_issuerIssuer bank was unable to process the transaction
payment_not_fundedThere were insufficient funds to cover the payment amount
payment_stopped_by_issuerA stop has been placed by the issuer or customer
payment_canceledPayment was canceled
payment_failed_balance_checkPayment failed the Plaid balance check due to insufficient funds
payment_unprocessableThe provided `encryptedData` could not be processed
card_failedThe payment failed due to a problem with the card such as an incorrect card number
card_invalidThe card number was invalid
card_cvv_invalidIncorrect CVV value provided
card_expiredCard expired
card_limit_violatedThe amount or frequency of payments exceeded card limits
card_not_honoredThe issuing bank did not approve the payment
card_account_ineligibleThe card is not linked to an eligible bank account
card_restrictedTransaction not permitted to cardholder. Issuer has declined the transaction because the card cannot be used for this type of transaction. Please instruct your user to use a different payment method
unauthorized_transactionThe user has advised the bank that the payment was not authorized
bank_account_ineligibleThe account is not eligible and no other default account was found
bank_transaction_errorThe bank reported an error processing the transaction
invalid_account_numberThe account number is invalid or missing
invalid_wire_rtnThe wire routing number is invalid
ref_id_invalidPush payment reference Id not recognized
account_name_mismatchAccount name does not match Circle resource account name
account_number_mismatchPush payment account number does not match Circle resource account number
account_ineligibleIneligible fiat account due to invalid type or state
customer_name_mismatchCustomer full name doesn't match sender name
institution_name_mismatchInstitution name doesn't match sender name

## Card Verification Error Codes

CodeDescription
verification_failedVerification failed due to an unknown reason
verification_fraud_detectedCard suspected to be used for fraud
risk_deniedCard denied by Circle Risk Service, see `riskEvaluation ` for more details
verification_not_supported_by_issuerIssuer bank was unable to process the transaction
verification_stopped_by_issuerA stop has been placed on the card
card_failedVerification failed due to a problem with the card such as the card number does not exist
card_invalidThe card number was invalid
card_address_mismatchThe billing address provided in the card creation request did not match the one recorded by the issuer bank
card_zip_mismatchThe postal code provided in the card creation request did not match the one recorded by the issuer bank
card_cvv_invalidIncorrect CVV value provided
card_expiredCard expired
card_not_honoredThe issuing bank did not authorize the card
card_account_ineligibleThe card is not linked to an eligible bank account
card_limit_violatedThe amount or frequency of payments exceeded card limits
card_cvv_requiredThe cvv is either incorrect or missing
three_d_secure_not_supported3DS transactions are not supported by the issuing bank
three_d_secure_required3DS is required by the issuing bank
three_d_secure_failureThe customer failed the 3DS authentication step
three_d_secure_action_expiredThe customer took too long to finish the 3DS process. This typically expires after 15 minutes
three_d_secure_invalid_requestThe 3DS request was submitted with invalid parameters

## Payout Error Codes

CodeDescription
insufficient_fundsExchange insufficient funds
transaction_deniedThe transaction was denied as the fiat account is not verified
transaction_failedTransaction failed due to an unknown reason
transaction_returnedThe transaction was returned
bank_transaction_errorThe bank reported an error processing the transaction
fiat_account_limit_exceededThe Fiat account limit exceeded
invalid_bank_account_numberThe bank account number is invalid or missing
invalid_wire_rtnThe wire routing number is invalid
sen_not_supportedaccount_number_to must be a valid SEN account

## Transfer Error Codes

CodeDescription
transfer_failedThe transfer failed due to unknown reasons
transfer_deniedThe transfer was denied by Circle Risk Service, see transfer `riskEvaluation` for more details
blockchain_errorThere was an error processing the transfer on-chain
insufficient_fundsThere was not enough funding to cover the transfer amount