Payment Intents can fail for a variety of reasons. The reason a given payment intent failed is available in a Payment Intent Object's error_reason attribute.

Below is a list of all the types of error_reason we currently send. We may add more at any time, so in developing and maintaining your code, you should not assume that only these types exist.

bank_account_lockedThe bank blocked the transfers service for this account.
user_leftThe user abandoned the payment process before selecting an account or entering their bank account´s credentials.
bank_connection_errorFintoc had a problem connecting with the selected bank.
bank_not_availableThe selected bank is temporary unavailable.
amount_limit_reachedThe maximum amount available to transfer was reached.
insufficient_fundsThe account doesn’t have enough money to execute the payment.
login_credentials_lockedThe bank indicated that the user's credentials are locked.
login_invalid_credentialsThe bank indicated that the user's credentials are invalid.
maximum_amount_errorThe amount exceeds the maximum amount allowed for that bank.
mfa_authorization_timeoutThe user did not authorize the transfer with their multifactor method.
mfa_invalid_authorizationThe bank indicated that the multifactor authorization was invalid.
mfa_lockedThe multifactor authentication method is locked.
mfa_unavailableThe multifactor authentication method is unavailable.
new_contact_amount_limit_reachedThe amount exceeds the maximum amount permitted for new contacts.
new_contact_transfer_number_limit_reachedThe maximum number of transfers for new contacts was reached.
recipient_account_not_allowedThe bank indicated that the recipient account is not allowed to receive transfers.