Denied by Bank - Response Codes
When a charge request for Credit Card is received, there are layers of security that it has to go through. The last one would be the Bank’s automated authorization system. The bank’s authorization system take various factors into account, such as spending habits, account balance, card information, etc.
In cases where your customers’ transactions are declined by the banks, Midtrans shares as much information as what we receive from the bank, through HTTP notification and within the dashboard (Merchant Administration Portal). Information through API is in the form of codes, while information on Dashboard is in the form of words (more user friendly).
While in some cases the banks may provide helpful explanation such as “insufficient funds”, “stolen cards”, “expired cards”, unfortunately some other explanation such as “do not honour” are rather generic where it is less likely to know the exact reason for decline of payment. Please see the meaning of "do not honour" here.
After logging into the dashboard, go to “transactions” tab and click on the denied transaction that you would like to find out more about and you will be redirected to the page below. Click on the “See Why” to see the “Insufficient funds (51)” bubble.
Here is the an example of how the charge response API sent by Midtrans. Please refer to the “status_message” field below.
In this example, we can see that the denied by bank code is 05.
You may refer to the list of codes here for more explanation for meaning of each codes.