Response Codes & Reversal Codes

Shinkansen classifies and documents all response codes that may be returned during transactions between participants in the low-value payments ecosystem (IFO, IFR, and Switch). These codes help identify the status of a transaction or the reason for a reversal, providing clarity and traceability for integration and error handling.

The response_status values originate from two distinct components of the network: the Switch and the IFR (Receiving Financial Institution).
For this reason, we differentiate between status codes generated and returned by the Switch, and those that are propagated from the IFR when it acts as the final processor of the transaction. Despite their origin, all codes are returned through the same response_status field, providing a unified interface for clients while still allowing clear traceability of where the response was generated within the transaction flow.

These codes are directly related to the following resources:


🏦 Response Transaction Status Codes (Returned by the IFR)

These codes are returned in the response_status field and indicate the final state of a transaction.

CodeDescription
:approvedApproved transaction
:error_creditor_account_invalidInvalid destination account
:error_creditor_account_closedDestination account is closed
:error_creditor_account_type_invalidInvalid destination account type
:error_creditor_account_type_disabledDestination account type not enabled
:error_creditor_account_over_limitsDestination account restricted for deposits
:error_creditor_account_not_foundDestination account not found
:error_creditor_rut_invalidInvalid beneficiary RUT
:error_creditor_rut_account_relationInvalid RUT and account relationship
:error_amount_exceeds_maximumTransaction amount exceeds allowed maximum

📌 Note: When Shinkansen Participant is acting as the IFR, it is also required to return the appropriate response_status codes in its response messages. This ensures consistency in error handling across the entire network and allows the originating institution (IFO or Switch) to trace and propagate the correct error back to the user.

↩️ Response Reversal Status Codes (Returned by the IFR)

These codes are returned in the response_status field and indicate the final state of a transaction.

CodeDescription
:error_reversal_insufficient_balanceInsufficient balance to process reversal

🔀 Response Status Codes (Returned by the Switch)

These codes are returned in the response_status field and indicate the final status of a transaction processed through the Shinkansen Gateway.

CodeDescription
:error_invalid_messageInvalid message
:error_switch_transaction_not_foundQueried transaction does not exist on Switch records
:error_switch_rejected_by_macMAC rejected by the Switch
:error_creditor_fi_service_unavailable_due_maintenanceService unavailable due to scheduled maintenance
:error_creditor_fi_offlineIFR host unavailable
:error_creditor_fi_timeoutTimeout at destination bank
:error_creditor_fi_invalidInvalid destination bank
:error_creditor_fi_rejected_by_macMAC rejected by IFR
:error_creditor_account_disabledDestination account is disabled for TEF
:error_debtor_fi_invalidInvalid debtor fi ID
:errorUnspecified error

Reversal Reasons (Returned by Switch or IFO)

These codes are returned in the reversal code field and indicate the reason for the reversal.

Reversal TypeInitiatorDescription
:reversal_switch_timeoutSwitchGenerated when an IFR's "Approved" response arrives after the timeout window has expired.
:reversal_switch_delivery_failureSwitchGenerated when an approved response from IFR cannot be delivered to the IFO.
:reversal_debtor_fi_rejected_by_macSwitchGenerated when the IFO rejects an approved response due to a MAC error.
:reversal_conditional_timeoutSwitchGenerated (optionally) by the Switch when the IFR does not respond to a request in time.
:reversal_conditionalIFOGenerated by the IFO when it cannot determine the outcome of a transaction.