Dishonour Codes

When a payment fails, these code will tell you why

When a payment attempt fails, you will receive a dishonour code that maps to one of the following. These are in order of how common they occur.

Code

Description

Can I try again?

insufficient-funds

The payer did not have enough funds at the time of the transaction.

Yes

temporary-problem

This usually occurs when transactions are out of the ordinary, too close together or a multitude of other reasons. The bank has said no, but you are allowed to try again, usually after an hour, or even better, the next day.

Yes

blocked-by-bank

This occurs when the bank determines the transaction to be suspicious. It can be potential fraud, a lost or stolen card, a frozen account, or just too risky. The bank will reject all future attempts.

No

invalid-card

The provided credit card information is invalid. Check all the details and create a new credit card source.

No

invalid-account

The provided bank account is invalid. Please re-confirm the information with the payer and create a new agreement.

No

unsupported-card

The card type you're trying to use isn't supported by the system. Visa and Mastercard are sure bets. Please confirm with us before trying other schemes.

No

technical-error

Something's gone wrong on our end. You should rarely see this error, but make sure you have a process in place to handle it. You'll need to contact support to find out what happened.

Yes

Testing

To test any of these dishonor types scenarios in the test environment, you are able to add the dishonor code anywhere into a payment description prefixed by a #.

var result = await api.Payment.ExecuteRealtime(new RealtimePaymentSaveOptions()
{
    FullName = "Ben Hotdog",
    Email = "[email protected]",
    CreditCardToken = "tkn_XXXXXXXXXXXXXXXXXXXXXXXXXXX",
    Amount = 1245,                
    Description = "this transaction will fail with #insufficient-funds"
});
curl https://api.getpinch.com.au/test/payments/realtime 
 -H "Authorization: Bearer ..." 
 -H "Content-Type: application/json" 
 -d "{
    'fullName': 'Ben Hotdog',
    'email': '[email protected]',
    'amount': 1245,
    'description': 'this transaction will fail with #insufficient-funds',
    'creditCardToken': 'tkn_XXXXXXXXXXXXXXXXXXXXXXXXXXX'
}"