Skip to content

    Manage subscription retries

    This guide is for developers who want to understand and to be compliant with subscription retries.

    Efficient and compliant retry logic on subscriptions

    One of the most common reasons for a transaction rejection is insufficient funds. However, there are also other reasons a subscription might not be charged.

    By analysing the data from each transaction, you can increase your chances for success and remain compliant with retry policies from payment schemes like Visa and MasterCard. 

    For example:

    • If the decline is due to a technical issue, you would like to retry the charge, later or during the next few days.

    • If the decline is due to insufficient funds, you can retry a few days later or even identify main pay day in your market and retry accordingly.

    • Alternatively, if the decline is due to a card tagged as lost or stolen by the issuer, there is no point retrying the payment.

    An optimised retry mechanism is therefore necessary, and for each charge attempt, Nets Easy provides you with the decline response codes that you need to consider.

    Re-attempt can be forbidden

    You should never re-attempt transactions whenever you get the below response code. Retrying charge could lead to fines from Visa or MasterCard.

    See the following response codes in the table below:

    Response codeReason
    5 Do not honour
    7 Pick up card, special condition (fraud account)
    12 Invalid transaction
    14 Invalid account number (no such number)
    92 No such issuer (first 8 digit of account number do not relate to an issuer identifier)
    41 Lost card, pick up
    43 Stolen card, pick up
    39 Closed account
    57 Transaction not permitted to cardholder
    3 Stop payment order
    3 Revocation of authorization order
    3 Revocation of all authorization order

    Re-attempt limitations

    In addition, for all other response codes you should not attempt more than 14 retries for one failed charge.

    Nets Easy may blacklist the card and block all future retry attempts.

    Where to get the response code?

    You can get the decline reason (response code) via either:

    Retrieve Bulk Charge call

    Webhook reservation.failed

    • looking into the Nets Easy portal (Declined payments – Decline reason – Action code)

     Nets Easy portal: Declined payments – Decline reason – Action code