Search

Are you looking for test card numbers?

Would you like to contact support?

Default icon

Auto Rescue for SEPA payments

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

Besides Auto Rescue for card transactions, we support rescuing SEPA transactions. Because SEPA transactions always have eventCode AUTHORISED in the response, these require a different rescue logic compared to card transactions.

Also note that for SEPA payments, we have a maximum of two rescue attempts within the rescue window. The reasons for that are:

  • The period between the initial transaction and the first decline message is longer than for card transactions. This means we have fewer days left to rescue the transaction.
  • Because chargebacks are typically fined by the schemes, it’s important to keep the number of rescue attempts low for the highest chance of successfully rescuing the transaction.

On this page, you will learn how to:

  1. Enable Auto Rescue for SEPA transactions.
  2. Receive updates on the Auto Rescue process.

We also explain how you can:

Step 1: Enable Auto Rescue

You can enable Auto Rescue for SEPA payments only on transaction level. To do so:

  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 the merchantOrderReference you can connect any Auto Rescue retry attempt to the original /payments request.

To enable Auto Rescue for a transaction, make a /payments request, and specify:

  • shopperInteraction: ContAuth
  • autoRescuetrue
  • maxDaysToRescue: The rescue window, in days. You can specify between 1 and 42 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.
  • paymentMethod.type: sepadirectdebit
  • paymentMethod.sepa.ownerName: The name on the SEPA bank account. For testing, use a concatenation of chargeback and reasonCode. See the example below.
  • paymentMethod.sepa.ibanNumber: The IBAN of the bank account. Make sure to not encrypt this value.

The following example shows how to enable Auto Rescue for a shopper-not-present transaction submitted to the /payments endpoint. In case of a chargeback, Auto Rescue will automatically retry this payment for a maximum of 30 days.

{
   "merchantAccount":"YOUR_MERCHANT_ACCOUNT",
   "reference":"YOUR_MERCHANT_REFERENCE",
   "merchantOrderReference":"YOUR_MERCHANT_ORDER_REFERENCE",
   "shopperInteraction":"ContAuth",
   "amount":{
      "currency":"EUR",
      "value":1000
   },
   "paymentMethod":{
      "type":"sepadirectdebit",
      "sepa.ownerName":"chargeback:MS03",
      "sepa.ibanNumber":"DE12345678901234567890"
   },
   "additionalData":{
      "autoRescue":"true",
      "maxDaysToRescue":"30"
   }
}

You will receive a response containing:

  • resultCode: Authorised

{
    "additionalData": {
        "merchantOrderReference": "YOUR_MERCHANT_ORDER_REFERENCE",
        "retry.rescueReference": "8816226419151450",
        ...
    },
    "resultCode": "Authorised",
    "amount": {
        "currency": "EUR",
        "value": 1000
    },
    "merchantReference": "YOUR_MERCHANT_REFERENCE"
}

In case the transaction is charged back, you will receive a notification containing:

  • eventCode: CHARGEBACK
"notificationItems": [
    {
        "NotificationRequestItem": {
            "additionalData": {
                "chargebackReasonCode": "MS03",
                "retry.rescueReference": "8816148861604903",
                "merchantOrderReference": "YOUR_MERCHANT_ORDER_REFERENCE",
                "retry.rescueScheduled": "true",
                "chargebackSchemeCode": "sepadirectdebit",
                "hmacSignature": "j0kFGdPI2R26sDSIrLOSh2cgc7oIV4HGEe53X8ubXOc="
            },
            "amount": {
                "currency": "EUR",
                "value": 1000
            },
            "eventCode": "CHARGEBACK",
            "eventDate": "2021-03-05T02:59:46+01:00",
            "merchantAccountCode": "YOUR_MERCHANT_ACCOUNT",
            "merchantReference": "XXXXXXX",
            "originalReference": "8816148861604903",
            "paymentMethod": "sepadirectdebit",
            "pspReference": "8016148861732686",
            "reason": "MS03:NotSpecifiedReasonAgentGenerated",
            "success": "true"
        }
    }
]

The Auto Rescue process will attempt to rescue this transaction.

Step 2: Receive Auto Rescue updates

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

  • A rescue attempt was made, and it was:
  • The rescue process ended either because the payment was rescued, or the process was unsuccessful.

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 was successful, this means we didn't receive another chargeback within the specified rescue window and the Auto Rescue process ended, you will receive a notification with:

  • eventCode: AUTORESCUE
  • eventDate: The date of the retry attempt.
  • success: true
  • reason: retryWindowHasElapsed

Here's an example of the Auto Rescue process end notification.

"notificationItems": [
    {
        "NotificationRequestItem": {
            "additionalData": {
                "retry.rescueReference": "8816148861604903",
                "merchantOrderReference": "YOUR_MERCHANT_ORDER_REFERENCE",
                "hmacSignature": "Et+r7J6w5q\/r7\/0aojPCQH8y8SJm0kYb0XFdKwJ1dzU="
            },
            "amount": {
                "currency": "EUR",
                "value": 1000
            },
            "eventCode": "AUTORESCUE",
            "eventDate": "2021-03-06T05:00:46+01:00",
            "merchantAccountCode": "YOUR_MERCHANT_ACCOUNT",
            "merchantReference": "XXXXXXXXX",
            "originalReference": "8816148861604903",
            "pspReference": "8916149095865772",
            "reason": "retryWindowHasElapsed",
            "success": "true"
        }
    }
]

If we received another chargeback but the second retry was successful, the process ends and you will receive a notification with:

  • eventCode: AUTORESCUE
  • eventDate: The date of the retry attempt.
  • success: true
  • reason: maxRetryAttemptsReached

Here's an example of the Auto Rescue process end notification.

"notificationItems": [
    {
        "NotificationRequestItem": {
            "additionalData": {
                "retry.rescueReference": "8516148861909024",
                "merchantOrderReference": "YOUR_MERCHANT_ORDER_REFERENCE",
                "hmacSignature": "18nUi2UeHIPv2AtRDzRjp8upMuNaI3JfC0NpZwozlJ0="
            },
            "amount": {
                "currency": "EUR",
                "value": 1000
            },
            "eventCode": "AUTORESCUE",
            "eventDate": "2021-03-07T04:57:38+01:00",
            "merchantAccountCode": "YOUR_MERCHANT_ACCOUNT",
            "merchantReference": "XXXXXXX",
            "originalReference": "8516148861909024",
            "pspReference": "8916149957984737",
            "reason": "maxRetryAttemptsReached",
            "success": "true"
        }
    }
]

You can view how much revenue has been recovered with Auto Rescue in your Customer Area, under Performance > RevenueAccelerate.

Retry attempt unsuccessful

If a retry attempt was unsuccessful, this means we received chargebacks after each of the two retry attempts. You will receive a notification with:

  • eventCode: AUTORESCUE
  • eventDate: The date of the retry attempt.
  • success: false
  • reason: maxRetryAttemptsReached

Here's an example of the Auto Rescue process end notification.

"notificationItems": [
    {
        "NotificationRequestItem": {
            "additionalData": {
                "retry.rescueReference": "8516148862104450",
                "merchantOrderReference": "YOUR_MERCHANT_ORDER_REFERENCE",
                "hmacSignature": "T5lRBZqLKjRd0TfCTC5Cv3UEu7+FNuam7tb+xquQYy8="
            },
            "amount": {
                "currency": "EUR",
                "value": 1000
            },
            "eventCode": "AUTORESCUE",
            "eventDate": "2021-03-07T04:57:38+01:00",
            "merchantAccountCode": "YOUR_MERCHANT_ACCOUNT",
            "merchantReference": "XXXXXXX",
            "originalReference": "8516148862104450",
            "pspReference": "8916149957984729",
            "reason": "maxRetryAttemptsReached",
            "success": "false"
        }
    }
]

In case the Auto Rescue process ended unsuccessfully, you can 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 the Auto Rescue process

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 rescueReference 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 /payments request, additionally provide:

    • autoRescueScenario: Set this to the scenario you want to test:
      • AutoRescueSuccessfulFirst: The payment is authorised but we received a chargeback. The first retry attempt is successful because we received no chargeback after this attempt within 30 days.
      • AutoRescueSuccessfulSecond: The payment is authorised but we received a chargeback. The first retry attempt is authorised but we received a second chargeback. The second retry attempt is successful because we received no chargeback after this attempt within 30 days.
      • AutoRescueFailed: The payment and all retry attempts are authorised, but we received chargebacks after each attempt.

    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":"30",
            "autoRescueScenario":"AutoRescueSuccessfulSecond"
        }
    }
  2. 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 generates a unique pspReference. In the Received payment details report, we can add the paymentRequesterType for you, to show which payments were initiated by Auto Rescue.

To connect an Auto Rescue retry attempt to a payment request, use the value in the Merchant Order Reference column. This corresponds to the merchantOrderReference you provided in the payment request. We can add the merchantOrderReference to the following reports:

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

Example

The following example represents two payment requests with merchantOrderReference A1 and 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 Chargeback
1st retry attempt 814987049386784P A1 Authorised
December monthly subscription payment 812872049382471H A2 Chargeback
1st retry attempt 804938149876784D A2 Chargeback
2nd retry attempt 804938149950514L A2 Authorised

See also