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 Status Codes (Returned by Gateway)

These codes are returned in the response_status field and indicate the final status of a transaction; this is for rare cases when the gateway has trouble sending messages to the switch.

Shinkansen CodeDescription
errorTransfer not processed due to (connection problems, MAC generation or technical issues).

🏦 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.

Shinkansen Code

CCA
Code

Description

approved

000

Approved transaction

error_creditor_account_invalid

041

Invalid destination account

error_creditor_account_closed

042

Destination account is closed

error_creditor_fi_invalid*

043

Invalid IFR identifier

error_creditor_rut_invalid

045

Invalid beneficiary RUT

error_creditor_rut_account_relation

046

Invalid RUT and account relationship

error_transaction_code_invalid*

047

Incorrect transaction code

error_transaction_sequence_invalid*

048

Incorrect transaction sequence

error_creditor_account_type_disabled

050

Invalid destination account type

error_creditor_account_not_found

051

Destination account not found

error_amount_field_invalid

056

Amount field error

error_debtor_rut_invalid

057

Invalid origin RUT

error_duplicate_transaction

058

Duplicate transaction

error_required_field_missing

059

Missing mandatory field

error_trace_number_invalid*

060

Invalid trace number

error_product_account_type_disabled

061

Product-account type not enabled

error_amount_exceeds_maximum

062

Transaction amount exceeds allowed maximum

error_ifr_service_unavailable

063

Service unavailable by IFR

error_creditor_account_over_limits

064

Destination account restricted for deposits

error_trace_number_duplicate*

065

Duplicate trace number, transaction not duplicated

'*' Codes used in the gateway layer

📌 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.

Shinkansen Code

CCA
Code

Description

error_reversal_insufficient_balance

069

Insufficient 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.


Shinkansen CodeCCA CodeDescription
error_reversal_max_time_conditional009Exceeded maximum time to request conditional reversal
error_reversal_closed_cycle010Transaction belongs to a closed settlement cycle
error_invalid_message011Invalid message
error_reversal_nonexistent_transaction012Transaction to reverse not found
error_reversal_transaction_not_approved013Original Transaction not approved and reversal cannot be processed
error_reversal_duplicated014Duplicated reversal already exists
error_creditor_fi_rejected_by_mac015MAC rejected by IFR
error_switch_rejected_by_mac016MAC rejected by Switch
error_creditor_account_disabled017Destination account disabled for TEF
error_switch_transaction_not_found018Queried transaction does not exist
error_debtor_account_missing020Origin account not provided
error_creditor_account_missing021Destination account not provided
error_creditor_rut_missing025Destination RUT not provided
error_amount_missing028Transaction amount not provided
error_amount_invalid029Invalid transaction amount
error_debtor_fi_missing031Origin bank not provided
error_creditor_fi_missing032Destination bank not provided
error_debtor_fi_invalid033Invalid origin bank
error_creditor_fi_invalid034Invalid destination bank
error_product_codes_missing035Product codes not provided (Account types and TEF)
error_product_codes_invalid036Invalid products (Account types and TEF)
error_creditor_fi_offline037Timeout at destination bank or FI offline
error_creditor_fi_service_unavailable_due_maintenance,038Service unavailable due to scheduled maintenance IFR
error_creditor_fi_offline091IFR host unavailable

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.

🤖 Simulate transaction errors (Shinkansen Sandbox)

It is possible to simulate response errors coming directly from the switch, in order to verify their proper handling. This is like IFO

Response StatusDescriptionCCATrigger
error_creditor_account_invalidInvalid destination account041creditor.account = 987654321
error_creditor_account_closedDestination account is closed042creditor.account = 987654311
error_creditor_fi_invalidInvalid IFR identifier043creditor.financial.institution = 'BANCO_BRASIL_CL'
error_creditor_rut_account_relation_invalidInvalid RUT and account relationship046creditor.account = 987654321 & creditor.identification.id = '35600053-6'
error_creditor_account_type_disabledAccount type not enable050creditor.account = 987654321 & creditor.account_type = 'savings_account'
error_creditor_account_not_foundDestination account not found051creditor.account = 987654111
error_amount_field_invalidAmount field error056amount = 987654321
error_amount_exceeds_maximumTransaction amount exceeds maximum limit062amount >= 999999999
error_ifr_service_unavailableService unavailable by IFR063creditor.financial_institution = 'BANCO_PARIS_CL'

Simulated errors from Switch

ResponseDescriptionCCA Error CodeTrigger
error_reversal_max_time_conditionalExceeded maximum time to request conditional reversal009Reversals sent in less than 60 seconds
error_reversal_closed_cycleDestination account is closed010creditor.account = '123456789'
error_reversal_nonexistent_transactionTransaction to reverse not found012creditor.account = '113456789'
error_reversal_transaction_not_approvedOriginal Transaction not approved and reversal cannot be processed013creditor.account = '111456789'
error_reversal_duplicatedDuplicated reversal already exists014Sent transactions with the same original_transaction_id
error_creditor_account_disabledDestination account disabled for TEF017creditor.account = '987611111'
error_creditor_fi_service_unavailable_due_maintenanceService unavailable due to scheduled maintenance IFR038creditor.financial_institution='BANCO_BRASIL_CL' and recipient_account = '987111111'
error_creditor_fi_offlineIFR host unavailable091creditor.financial_institution='BANCO_PARIS_CL" and recipient_account = '987111111'