Network Retry Signals

Preview

Network Retry Signals is in preview and is subject to change. You can enroll Visa and Mastercard merchant IDs. To get access, register your interest.

Network Retry Signals helps recover lost revenue from declined transactions by sending you notifications informing you when a transaction has succeeded on that card. The card networks track activity, such as successful approvals on the same card at other merchants for similar amounts or greater, to identify optimal retry windows.

Declined transactions impact all businesses to some degree and are often caused by temporary issues, such as insufficient funds. They can negatively impact revenue, support costs, customer loyalty, and brand trust. To prevent these issues, most solutions retry the payment based on some kind of static schedule, without any signal that the retry will succeed. Network Retry Signals fills this gap. It uses card network intelligence to determine when a retry is more likely to succeed.

  • Increase approval rates

    Retry when the network has seen the card succeed, instead of on a fixed schedule.

  • Maximize revenue recovery

    Recover payments that would otherwise be written off after a temporary decline.

  • Mitigate excessive retry fines

    Fewer blind retries means fewer network penalties for repeatedly retrying declined cards.

  • Prevent service disruptions

    Keep subscriptions and services running without asking customers to update their payment details.

How it works


After a monitored decline, Mastercard and Visa watch the card for successful approvals elsewhere. When they see one, Evervault sends you a signal to retry the payment.

  1. Configuration

    Network Retry Signals is configured per merchant. To onboard your merchant, use the Network Retry Signals Enrolment API. Then, configure a webhook endpoint in the Dashboard and subscribe to the payments.network-retry-signals.signal event.

  2. Network Monitoring

    After enrollment, Mastercard and Visa monitor declined transactions on that MID to identify the optimal moment for a retry.

  3. Retry signals

    When the network sees a successful transaction on the same card, Evervault sends a signal event to your webhook endpoint so you can retry the payment.

Network Retry Signals Enrolment API


Supported merchant countries

Network Retry Signals is available for merchants registered in the supported countries. Onboarding a MID registered elsewhere may fail.

Enroll your merchant IDs (MIDs) with the Network Retry Signals Enrolment API. One request enrolls up to ten identifiers for one merchant, on Visa, Mastercard, or both. Each identifier is one of the following:

  • A networkMid, when you know the MID
  • A list of up to 50 networkTransactions, when you don't know the MID. We recommend providing at least three.

For a list of transactions, Evervault locates the MID or MIDs that the transactions were processed on and enrolls each one. To find the transaction IDs, see Locating a transaction ID. The timestamp of each transaction is optional, but it helps the network find the MID.

From the time of onboarding, it can take up to 3 weeks before the networks track the MID and you start receiving notifications.

The response has one enrollment in accounts for each identifier, in the same order as the request. Store the id of each enrollment and use it to retrieve the enrollment and check its status.

A list of transactions can belong to more than one MID. Each located MID is enrolled separately and has its own status in locatedMids, so one MID can start receiving signals while another is still being enrolled.

Each MID and transaction can be part of only one open enrollment. If a request includes one that's already being enrolled, the API returns a 409 error that points to the identifier, and doesn't create any of the enrollments in the request.

Visa merchant details


In addition to the existing details provided when creating a merchant, Visa requires the merchant's business phone number and a contact name. Set them in the contact attribute when you create or update the merchant, before you enroll the MID.

If they're missing, the enrollment is still created, and missingForBoarding lists the merchant attributes to set. An open enrollment can't be sent again, so contact Evervault support to complete it.

Only production apps can be onboarded. Calling the Enrolment API with a Sandbox app returns a 403 response. To test your integration in a Sandbox app, simulate a signal instead.

Supported merchant countries


Merchants must be registered in one of the following markets.

RegionSupported markets
North AmericaUnited States and Canada
EuropeThe European Economic Area (EEA) and the United Kingdom
Latin America and the CaribbeanAll markets, except sanctioned markets (Cuba, Venezuela, and Nicaragua)
Asia Pacific

Australia, Brunei, Cambodia, Fiji, Hong Kong, Indonesia, Japan, Laos, Macao, Malaysia, Mongolia, New Zealand, the Philippines, Singapore, Taiwan, Thailand, and Vietnam

Eastern Europe, Middle East, and Africa

Armenia, Azerbaijan, Bahrain, Egypt, Georgia, Ghana, Iraq, Jordan, Kazakhstan, Kenya, Kuwait, Lebanon, Mauritius, Morocco, Nigeria, Oman, Pakistan, Qatar, Saudi Arabia, Somalia, South Africa, Tanzania, Tunisia, Uganda, the United Arab Emirates, Uzbekistan, Yemen, and Zimbabwe

Network monitoring


The network scans its own network for failed transactions associated with your enrolled MID. If a monitored MID receives a 51 or 61 decline code, the network monitors the payment instrument involved in the declined transaction.

Network monitoring is triggered exclusively for the following response codes:

  • Decline Code 51: Insufficient Funds
  • Decline Code 61: Exceeds Withdrawal Amount Limit

The networks monitors linked payment credentials across their global networks. They track activity such as successful approvals on the same card at other merchants for similar amounts or greater, to identify optimal retry windows.

Duplicate decline prevention


When a repeat decline occurs for the same PAN, MID, and amount, the system doesn't initiate a new monitoring session. It also avoids new sessions if a decline occurs within an existing monitoring period. This avoids redundant tracking, minimizes system load, and reduces duplicate notifications.

Self-retry detection (auto-termination)


If a successful authorization is observed independently (e.g., the customer pays manually), the active monitoring session is canceled.

The retry signal event


Here is an example of a retry signal webhook event:

A retry signal webhook event has two sections: the signal status and transaction information, and card network-specific transaction metadata.

Signal status and transaction information


Attributes

  • networkstring

    The card network where the signal originated from.

  • signalstring

    The status of the signal. These are outlined in more detail below.

  • amountnumber

    The amount of the declined transaction in minor currency units.

  • networkTransactionIdstring

    The card network-specific transaction ID.

  • timestampstring

    The time the initial transaction failed.

  • currencyobject

    An object containing the ISO 4217 alphabetic currency code, and the ISO 4217 numeric currency code.

Card network metadata


Mastercard metadata


Attributes
  • notificationIdstring

    Mastercard's unique reference for this specific alert.

  • acquirerMerchantIdstring

    The merchant ID enrolled with Mastercard for Network Retry Signals.

  • cardBinstring

    The first 6-8 digits of the card number used in the declined transaction.

  • cardLastFourstring

    The last four digits of the card used in the declined transaction.

  • tokenBinstring

    The first 6-8 digits of the network token number used in the declined transaction.

  • tokenLastFourstring

    The last four digits of the network token number used in the declined transaction.

  • maskedCardNumberstring

    The masked card number used in the declined transaction.

Either cardBin and cardLastFour, or tokenBin and tokenLastFour will be present depending on whether a PAN or network token was used in the declined transaction.

Signal statuses


SignalDescriptionAvailability
retry-now

Issued when conditions suggest that funds are available and a previously declined transaction can be retried.

Available

monitoring-started

Indicates the network started monitoring activity for the declined transaction. No retry is advised.

Coming soon

monitoring-expired

Monitoring period (30 days) ended without a successful retry. No further alerts will be sent.

Coming soon

monitoring-cancelled

Monitoring has ended because a successful retry was independently observed. No further alerts will be sent.

Coming soon

Only retry-now is currently available and requires merchant action. Monitoring lifecycle statuses will be informational when available and may be used for reporting, logging, or transparency purposes.

Matching signals to failed transactions


To retry the failed transaction after a webhook signal, you can match on the following set of identifiers from your PSP:

  • Transaction timestamp
  • Network transaction ID
  • Last four digits
  • BIN
  • Masked PAN

Here's an example handler that matches a retry-now signal to the declined payment and retries it.

webhook.js

Testing


You can use Evervault's Sandbox apps to test your webhook handler without waiting for a real retry signal. Sandbox apps can't be onboarded with Mastercard. Instead, Evervault provides a simulate endpoint that sends a test signal to your registered webhook.

Sandbox only

The simulate endpoint is only available to Sandbox apps. Calling it with a production app returns a 403 response.

Simulate a signal


Make sure your Sandbox app has a webhook endpoint subscribed to the payments.network-retry-signals.signal event. Then, send a request to the simulate endpoint, authenticated with an API key that has the networkRetrySignals:create grant.

Request body

  • networkMidstring

    The Mastercard MID to use as the acquirerMerchantId of the simulated signal. Must be between 1 and 64 characters. If you leave it out, Evervault generates a random 11-digit MID.

The endpoint returns the simulated signal with a 202 status, and Evervault delivers the same signal to your webhook as a payments.network-retry-signals.signal event. The signal has the same shape as a production retry signal event.

Each simulated signal uses random values:

  • The amount is between 100 and 100,000 minor units (1.00 to 1,000.00).
  • The currency is USD, EUR, or GBP.
  • The card details always use a card number, not a network token, so tokenBin and tokenLastFour are never present.

Because the values are random, a simulated signal doesn't match a payment in your system. Use it to check that your endpoint receives, parses, and acknowledges the event.

Locating a transaction ID


If you use a PSP, it typically provides this value when you inspect a transaction on its platform or through its APIs. Here's how to find it for some common PSPs.

Finding a transaction ID with Stripe


  1. In the Stripe dashboard, navigate to Transactions and locate a transaction on the network you're enrolling.
  2. Copy and search for the Payment and open it in the Workbench.
  3. Locate the Charge associated with the Payment.
  4. In the Workbench Inspector tab, find the network_transaction_id under payment_method_details.

Finding a transaction ID with Adyen


With Adyen you can use the Transfers API to locate a payment transfer on the network you're enrolling. In the response, locate the event containing a transactionId field. This is the network transaction ID.