Setup intents can fail for a variety of reasons. The reason a given setup intent failed is available in the Setup Intent object's error_reason attribute.
Fintoc sends the following error_reason values. Handle unknown values gracefully because Fintoc can add error reasons.
The Setup method column indicates which payment method types can produce each error: bank_transfer, card, or pac (automatic recurring bank debit).
error_reason | Description | Setup method |
|---|---|---|
account_type_not_permitted | The selected account type is not allowed for this setup. | pac |
authentication_failed | Your customer failed the card issuer's authentication challenge. | card |
authorization_timeout | Your customer did not authorize the direct debit subscription in time. | pac |
bank_connection_error | Fintoc had a problem connecting with the selected bank. | bank_transfer, pac |
bank_not_available | The selected bank is temporarily unavailable. | bank_transfer, pac |
card_declined | The card issuer declined the setup. | card |
insufficient_funds | The account or card does not have enough funds to complete the setup. | bank_transfer, card |
internal_error | An unexpected error occurred while processing the setup. | bank_transfer, pac |
invalid_card | The card is invalid, or your business does not allow this card type. | card |
invalid_card_credentials | Your customer entered incorrect card details, such as the number, expiration date, or security code. | card |
login_credentials_locked | The bank locked your customer's credentials after too many failed attempts. | bank_transfer, pac |
login_invalid_credentials | The bank credentials your customer entered are incorrect. | bank_transfer, pac |
mfa_authorization_timeout | Your customer did not complete the bank's multi-factor authentication in time. | pac |
mfa_unavailable | The bank's multi-factor authentication is not available for your customer. | pac |
password_change_required | The bank requires your customer to change their password before continuing. | bank_transfer, pac |
request_timeout | The request to the bank timed out. | bank_transfer, pac |
subscription_intent_expired | The underlying subscription intent expired before your customer completed the setup. | pac |
user_left | Your customer left the widget before completing the setup. | pac |