order_updated
webhook event to help you understand the failure in detail. Understanding failure reasons helps you provide better user experience and handle edge cases appropriately.
Status Classifications
Ivy uses a two-level classification system to categorize payment failures:Contains primary and secondary failure classifications when a payment fails.
Primary Classifications
Payment Authorization Failed
The payment was rejected during the authorization phase, typically due to user action or bank restrictions. Common scenarios:- User rejected or cancelled the payment in their bank app
- User input the wrong credentials with their bank
- User’s account has restrictions preventing instant transfers
- Suggest trying again and checking their log in details carefully
- Suggest retrying with a different bank
- Suggest checking their bank account for restrictions
Payment Execution Failed
The payment was authorized but failed during execution, usually due to technical or account-related issues. Common scenarios:- Insufficient funds in the account
- Account limits exceeded
- International transfer was blocked by the bank
- The payment was rejected by the bank
- Bank system errors or maintenance
- Payment not settled within the required timeframe
- For insufficient funds: Suggest checking account balance and retrying
- For account restrictions: Recommend contacting the bank
- For settlement failures: Retry the payment, if the original payment later arrives it will be returned
Payment Abandoned
The payment process was started but never completed, often due to user inaction. Common scenarios:- User closed the browser/app during payment
- User did not complete the payment in time and the session timed out
- The user cancelled the payment with their bank side
- Provide clear messaging about incomplete payments
- Inform users of the max time within which payments must be completed
- Offer to restart the payment process
Secondary Classifications
Authentication Issues
User entered incorrect bank credentials during authentication.
User provided incorrect two-factor authentication response.
User’s PIN is blocked - e.g. due to multiple failed attempts.
The payment request timed out due to slow response from bank systems.
The users bank is not responding to the payment request.
The bank’s system returned an error during processing.
The user’s bank is currently under maintenance.
The user’s account has insufficient funds for the payment.
The payment exceeds the user’s account transfer limits.
International transfers are blocked for this account.
The payment exceeds international transfer limits.
Instant transfers are not enabled for this account.
No active TAN (Transaction Authentication Number) methods available.
The user’s account is blocked or restricted.
The bank account type is not supported for the requested transfer.
The payment was explicitly rejected by the bank.
The payment was cancelled by the user or bank.
The payment was not settled within the required timeframe.
Webhook Integration
Theorder_updated
webhook event includes status classification information when payments fail:
Status classifications are only included in webhook payloads when payments fail or are cancelled. Successful payments will not include this field. For detailed information about webhook setup and handling, see the Webhooks documentation.
To understand the complete payment flow and status transitions, see the Payment Status documentation.