Search

Are you looking for test card numbers?

Would you like to contact support?

Default icon

Auto Rescue for card payments

Automatically retry shopper-not-present card transactions when they are refused.

On this page, you will learn how to:

  1. Enable Auto Rescue for card payments.
  2. Receive updates on the Auto Rescue process.

We also explain how you can:

Step 1: Enable Auto Rescue

You can enable Auto Rescue at either:

  • Account level: Auto Rescue is used on all eligible payments.
  • Transaction level: You choose when Auto Rescue can be used for a payment, using the autoRescue flag.

Enable at account level

To enable Auto Rescue for all payments, contact our Support Team or your Adyen Account Manager.

When enabled, Auto Rescue works for payments that have:

  • The shopperInteraction ContAuth.
  • A value greater than 0.

If you enable Auto Rescue at account level, a rescue window of one calendar month is used. If you prefer to use another rescue window you need to enable Auto Rescue at the transaction level.

You receive updates to the Auto Rescue process in notification webhooks.

Enable at transaction level

To enable Auto Rescue on a transaction level, you need to:

  1. Contact our Support Team or your Adyen Account Manager to configure this for you.
  2. Add the autoRescue flag to your payment request to enable Auto Rescue for that transaction.
  3. In the payment request, provide a unique merchantOrderReference. This should represent a specific billing cycle or subscription, and will appear in any Auto Rescue updates or reports.

With merchantOrderReference you can connect any Auto Rescue retry attempts to a payment request.

To enable Auto Rescue for a transaction:

  1. Make a payment request, and additionally specify:

    • shopperInteraction: ContAuth
    • autoRescuetrue
    • maxDaysToRescue: The rescue window, in days. You can specify between 1 and 48 days. We recommend using a rescue window of one calendar month (30 days).
    • reference: Your unique reference for this payment request.
    • merchantOrderReference: Your unique order reference. For example, a concatenation of a unique shopper reference and the transaction date.

    The example below shows how you would enable Auto Rescue for a shopper-not-present payment submitted to the /payments endpoint. If this payment is Refused, Auto Rescue will automatically retry this payment for a maximum of 40 days.

    {
       "paymentMethod":{
          "type":"scheme",
          "storedPaymentMethodId":"7218395820498475"
       },
       "amount":{
          "currency":"USD",
          "value":1000
       },
       "returnUrl":"https://your-company.com/...",
       "merchantAccount":"YOUR_MERCHANT_ACCOUNT",
       "recurringProcessingModel":"Subscription",
       "shopperInteraction":"ContAuth",
       "reference":"Trans987654321",
       "shopperReference":"YOUR_UNIQUE_SHOPPER_ID",
       "merchantOrderReference":"Cust12345_Nov19",
       "additionalData":{
          "autoRescue":"true",
          "maxDaysToRescue":"40"
       }
    }

  1. You receive a payment response. If the payment is refused, this contains:

    • resultCodeRefused
    • refusalReason: The reason the payment was refused. For more information, see Refusal reasons.
    • retry.rescueScheduled: Indicates whether Auto Rescue will try to rescue the payment:

      • true: Auto Rescue will try to rescue the payment. You receive updates on the rescue process in notification webhooks.
      • false: Auto Rescue will not try to rescue the payment. This happens when a payment cannot be rescued. For example, because of account closure or fraud.
    • retry.rescueReference: Unique Auto Rescue reference for this payment.
      You can use this to cancel the Auto Rescue process if, for example, the shopper provides you with a new payment details, or cancels their subscription.

    The example response below is for a payment that was Refused. In this response, retry.rescueScheduled is set to true, indicating that Auto Rescue will attempt to rescue this payment.

    {
        "pspReference":"812872049382471H",
        "resultCode":"Refused",
        "refusalReason":"NOT_ENOUGH_BALANCE",
        "additionalData":{
            "retry.rescueScheduled":"true",
            "retry.rescueReference":"865497581465325B"
        }
    }

You receive updates to the Auto Rescue process in notification webhooks.

Step 2: Receive Auto Rescue updates

To update you on the Auto Rescue process, we send you notification webhooks. We send you a notification when:

Before using Auto Rescue for live payments, we recommend that you test how your integration handles these notifications.

Retry attempt successful

If a retry attempt is successful, you receive a notification with:

  • eventCode: AUTHORISATION
  • eventDate: The date of the retry attempt.
  • success: true
  • pspReference: Adyen's unique reference for the successful retry attempt.
  • merchantOrderReference: Unique order reference that you provided in the payment request.

The example below is for a retry attempt that was successful.

{
   "live":"false",
   "notificationItems":[
      {
         "NotificationRequestItem":{
            "additionalData":{
               "retry.rescueScheduled":"false",
               "retry.rescueReference":"88HH88HH88HH88HH",
               "retry.orderAttemptNumber":3,
               "merchantOrderReference":"Cust12345_Nov19",
               ...
            },
            "pspReference":"814987049386784P",
            "eventCode":"AUTHORISATION",
            "eventDate":"2019-11-12T12:00:01+01:00",
            "reason": "035450:2909:10/2020",
            "success":"true",
            ...
         }
      }
   ]
}

You can view how much revenue has been recovered with Auto Rescue in your Customer Area, under Reports. Search for the RevenueAccelerate report.

If you use manual capture, you need to capture each rescued payment to transfer it to your account.

Retry attempt unsuccessful

If a retry attempt is unsuccessful, you receive a notification with:

  • eventCodeAUTHORISATION
  • eventDate: The date of the retry attempt.
  • success: false
  • merchantOrderReference: Unique order reference that you provided in the payment request.
  • retry.rescueScheduled: Indicates whether Auto Rescue will attempt the payment again:

The example below is for a retry attempt that was unsuccessful (success is false). Another retry attempt has been scheduled (retry.rescueScheduled is true).

{
   "live":"false",
   "notificationItems": [
      {
         "NotificationRequestItem":{
            "additionalData":{
               "retry.rescueScheduled":"true",
               "retry.rescueReference": "88HH88HH88HH88HH",
               "retry.orderAttemptNumber": 1,
               "merchantOrderReference":"Cust12345_Nov19",
               ...
            },
            "pspReference":"804938149876784D",
            "eventDate":"2019-11-12T12:00:01+01:00",
            "eventCode":"AUTHORISATION",
            "reason": "Refused",
            "success":"false",
            ...
         }
      }
   ]
}

Rescue process ended

When the Auto Rescue process ends we send you a notification with:

  • eventCodeAUTORESCUE.
  • eventDate: The date that the rescue process started.
  • success: Indicates whether the rescue process was successful:
    • true: The rescue process was successful.
    • false: The rescue process was unsuccessful.
  • merchantOrderReference: Unique order reference you provided in the payment request.
  • reason: If the rescue process was unsuccessful, this indicates why the payment could not be rescued:
    • retryWindowHasElapsed: The rescue window expired.
    • maxRetryAttemptsReached: The maximum number of retry attempts was made.
    • fraudDecline: The retry was rejected due to fraud.
    • internalError: An internal error occurred while retrying the payment.

The example below is a notification indicating that a payment could not be rescued. This is because the maximum number of retries has been reached (reason is maxRetryAttemptsReached).

{
   "live":"false",
   "notificationItems":[
      {
         "NotificationRequestItem":{
            "additionalData":{
               "retry.rescueReference":"88HH88HH88HH88HH",
               "merchantOrderReference":"Cust12345_Nov19"
            },
            "amount":{
               "currency":"USD",
               "value":1000
            },
            "eventCode":"AUTORESCUE",
            "eventDate":"2019-11-11T12:00:01+01:00",
            "merchantAccountCode":"YOUR_MERCHANT_ACCOUNT",
            "success":"false",
            "originalReference":"812872049382471H",
            "pspReference":"867848149870493R",
            "reason":"maxRetryAttemptsReached",
            ...
         }
      }
   ]
}

In case the Auto Rescue process ended unsuccessfully, you can optionally use Pay by Link to send the shopper a payment link so they can still proceed with the payment, for example, using other payment method.
To activate Pay by Link for Auto Rescue, contact our Support Team.
After we activate the feature, you will receive additional data fields in the Auto Rescue process end notification:

  • paymentLink.url — The URL where the shopper can complete the payment. Valid for 5 days.
  • paymentLink.expiresAt — The date when the payment link expires, in ISO 8601 format. For example, 2019-11-23T12:25:28Z or 2020-05-27T20:25:28+08:00.
{
   "live":"false",
   "notificationItems":[
      {
         "NotificationRequestItem":{
            "paymentLink":{
               "url": "https://test.adyen.link/PL8F7CCDDCCB904770",
               "expiresAt": "2021-05-26T12:51:14Z"
            },
            "additionalData":{
               "retry.rescueReference":"88HH88HH88HH88HH",
               "merchantOrderReference":"Cust12345_Nov19"
            },
            "amount":{
               "currency":"USD",
               "value":1000
            },
            "eventCode":"AUTORESCUE",
            "eventDate":"2019-11-11T12:00:01+01:00",
            "merchantAccountCode":"YOUR_MERCHANT_ACCOUNT",
            "success":"false",
            "originalReference":"812872049382471H",
            "pspReference":"867848149870493R",
            "reason":"maxRetryAttemptsReached"
         }
      }
   ]
}

When the shopper has paid with Pay by Link, you receive an AUTHORISATION notification with:

  • shopperReference: The payment details used by the shopper.
  • recurringDetailReference: The token you can use for the next subscription renewal. For more information, refer to Tokenization.

Cancel Auto Rescue

While a payment is in the Auto Rescue process, your shopper may provide you with a new payment method, or cancel their subscription. In these scenarios, you should cancel the Auto Rescue process for the charged back payment.
To cancel the Auto Rescue process:

  1. Make a /cancel request, specifying: 
    • originalReference: The rescueReference that you received in the payment response.
    • cancellationType: autoRescue
    The example below shows how you would cancel the Auto Rescue process for a payment with a rescueReference of 865497581465325B.
    {
        "merchantAccount":"YOUR_MERCHANT_ACCOUNT",
        "originalReference":"865497581465325B",
        "additionalData":{
            "cancellationType":"autoRescue"
        }
    } 
  2. You receive a /cancel response containing:
    • response: [cancel-received]
    • pspReference: The PSP reference associated with this /cancel request. This is different from the PSP reference associated with the original payment request.
    {
        "response":"[cancel-received]",
        "pspReference":"8412534564722331"
    }
    After we have processed your cancel request, you receive a notification with:
    • eventCodeCANCEL_AUTORESCUE
    • success: Indicates whether your request to cancel the rescue process was successful.
    • merchantOrderReference: Unique order reference that you provided in the payment request.
    {
       "live":"false",
       "notificationItems":[
          {
             "NotificationRequestItem":{
                "additionalData":{
                   "merchantOrderReference":"Cust12345_Nov19"
                },
                "amount":{
                   "currency":"USD",
                   "value":1000
                },
                "eventCode":"CANCEL_AUTORESCUE",
                "eventDate": "2019-04-05T09:08:05+01:00",
                "merchantAccountCode":"YOUR_MERCHANT_ACCOUNT",
                "success":"true",
                "originalReference":"88HH88HH88HH88HH",
                "pspReference":"77GG77GG77GG77GG",
                ...
             }
          }
       ]
    }

Test Auto Rescue and go live

Before flagging live payments for Auto Rescue, we recommend that you test how your integration handles scenarios involving Auto Rescue updates.

To simulate scenarios involving Auto Rescue updates:

  1. Make a test /payments request that is flagged for Auto Rescue. In the request, additionally provide:

    • autoRescueScenario: Set this to the scenario you want to test:
      • AutoRescueSuccessfulFirst: The payment is refused; the first retry attempt is successful.
      • AutoRescueSuccessfulSecond: The payment and first retry attempt are refused; the second retry attempt is successful.
      • AutoRescueFailed: The payment and all retry attempts are refused.
      • AutoRescueFraud: The payment is refused because of fraud; there will be no retry attempts.
  2. The example below shows how to test a scenario, with the /payments endpoint, where the second retry attempt is successful:

    {
        "paymentMethod":{
            "type":"scheme",
            "storedPaymentMethodId":"7218395820498476"
        },
        "amount":{
            "currency":"USD",
            "value":1000
        },
        "returnUrl":"https://your-company.com/...",
        "merchantAccount":"YOUR_MERCHANT_ACCOUNT",
        "recurringProcessingModel":"Subscription",
        "shopperInteraction":"ContAuth",
        "reference":"Trans987654321",
        "shopperReference":"YOUR_UNIQUE_SHOPPER_ID",
        "merchantOrderReference":"SecondRetryTest",
        "additionalData":{
            "autoRescue":"true",
            "maxDaysToRescue":"40",
            "autoRescueScenario":"AutoRescueSuccessfulSecond"
        }
    }
  1. You receive Auto Rescue updates corresponding to the scenario you are testing. If this scenario involves multiple retry attempts, these Auto Rescue updates will occur several minutes apart.

Auto Rescue reports

Each Auto Rescue retry attempt is a separate transaction, and thus generates a unique pspReference. If you want to see all payments initiated by Auto Rescue, we can add the Payment Requester Type column to your Received payment details report. Contact our Support Team or your Adyen Account Manager to configure this for you.
To connect an Auto Rescue retry attempt to a payment request, use the value in the Merchant Order Reference column. This corresponds to merchantOrderReference you provided in the payment request. We can add Merchant Order Reference to the following reports:

Contact our Support Team or your Adyen Account Manager to configure this for you.

If you did not provide merchantOrderReference in the payment request, we automatically populate the Merchant Order Reference column with pspReference of the payment request.

Example

The following example represents two payment requests. One has the merchantOrderReference A1, and the other A2.

  • A1: The payment was rescued on the first retry attempt.
  • A2: The payment was rescued on the third retry attempt.
Transaction PSP Reference Merchant Order Reference Record Type
November monthly subscription payment 812872049382471H A1 Refused
1st retry attempt 814987049386784P A1 Authorised
December monthly subscription payment 812872049382471H A2 Refused
1st retry attempt 804938149876784D A2 Refused
2nd retry attempt 804938149950514L A2 Refused
3rd retry attempt 814987049986784P A2 Authorised

See also