Skip to content

Error handling

Errors during payments

In an ideal world payments always succeed and arrive in the recipient's account. However occasionally there are issues that only occur after the transaction has been funded. There could be various issues, for example:

  • Transaction details invalid
  • Transaction sender phone_number invalid
  • Transaction recipient phone_number invalid

Whenever we face a problem during payment we will add a note to the transaction state_reason and state_reason_details fields as shown here. These notes contain human readable error informations that can help you debug the issue. Note that they should never be shown to your customers as they could be technical in nature. They can be shown in your internal system for your customer service team to see however.

Error codes

Error Code Description
initial Transaction is created.
processing Transaction payout has been initiated and we're waiting for a response from the provider.
paid Transaction was paid to the recipient.
refunded Funds have been returned to the sender either partially or fully.
exception An exception happened during the processing of the transaction.
provider_pending Transaction is awaiting a status update from the provider.
provider_timeout Transaction is awaiting a status update from the provider.
provider_error There was an error from the provider. We will review the transaction, and update the state.
provider_unresponsive We didn't receive a response from the provider in time. We will retry to fetch the response at a later date.
provider_not_accepting_transactions The payment provider is not accepting transactions at the moment.
recipient_bank_not_accepting_transactions Transaction recipient bank is not accepting payments at the moment.
recipient_bank_unresponsive Transaction recipient bank is having connectivity issues.
manual_reconciliation_required Transaction requires manual verification. Please wait until this is done.
sender_details_invalid Transaction sender details invalid.
sender_not_allowed_to_transact Transaction sender is not allowed to transact.
sender_aml_suspicion Transaction sender has suspicious in AML.
sender_phone_number_invalid Transaction sender phone_number invalid.
sender_transfer_limit_exceeded Transaction sender has exceeded transfer limits.
recipient_details_invalid Transaction recipient details invalid.
recipient_phone_number_invalid Transaction recipient phone_number invalid.
recipient_phone_number_not_registered_on_network Transaction recipient phone_number is not registered on the network.
recipient_phone_number_not_allowed_for_mobile_money Transaction recipient phone_number is not registered for mobile money.
recipient_bank_account_invalid Transaction recipient bank_account invalid.
recipient_bank_account_locked Transaction recipient account is locked and doesn't accept funds.
recipient_bank_code_invalid Transaction recipient bank_code invalid.
recipient_bank_details_invalid Transaction recipient bank_account or bank_code invalid.
recipient_name_validation_failed Transaction recipient name has failed name validation against the account holder name.
recipient_transfer_limit_exceeded Transaction recipient has exceeded transfer limits.
recipient_daily_transfer_limit_exceeded Transaction recipient has exceeded daily transfer limits.
recipient_not_allowed_to_receive_money Transaction recipient not allowed to receive money.
transaction_details_invalid Transaction details invalid.
cannot_assign_collection_id_for_transaction Can not assign cash collection ID for transaction.
transaction_reference_already_used Transaction reference was already used.
transaction_amount_invalid Transaction amount invalid.
transaction_cancel_requested_by_provider Transaction was requested to be cancelled at the provider.
transaction_canceled_by_provider Transaction was cancelled by the provider.
transaction_canceled_by_sender Transaction was cancelled by the sender.
transaction_canceled_by_recipient Transaction was cancelled by the recipient.
transaction_canceled_by_admin Transaction was cancelled by the admin.
transaction_expired Transaction expired, and has been cancelled.
transaction_cannot_be_processed Transaction cannot be processed.
transaction_has_issues Payment to the recipient have run into issues.