Account Updater

Your customer's card details may change due to expiration, loss, or other account changes. This may result in refused outcomes if you attempt subsequent Customer Initiated Transactions (CITs) or Merchant Initiated Transactions (MITs) using outdated credentials.

Receive real-time account updates

Your customer's card details can either be stored by you, or by us in a Worldpay token. When you submit payment requests using these card details, we can check if updated card details are available before attempting a payment authorization.

We have two offerings available:

  • Managed - we apply merchant configuration to your entity and automatically check for updated card details when you attempt qualifying payments. No changes are required to your payment requests.
  • Request a real-time account update in your payment request by setting the instruction.requestAccountUpdater boolean to true.

In both cases, if updated card details are available, we apply them before requesting payment authorization. We return updated card details in the updatedPaymentInstrument object in our response.

You can only supply requestAccountUpdater where customerAgreement.storedCardUsage is set to subsequent for either CITs or MITs.

Request

Set instruction.requestAccountUpdater to true to request updated card details for the paymentInstrument supplied. If the stored card details, that you have provided for the transaction, are no longer valid and new credentials are available, the authorization is processed with the new card and its details are returned in the updatedPaymentInstrument object in our response.

No changes are required in the request body if you are using our "Managed Account Updater" offering.

Request example

{
    "transactionReference": "Memory265-13/08/1876",
    "channel": "ecom",
    "merchant": {
        "entity": "default"
    },
    "instruction": {
        "requestAutoSettlement": {
            "enabled": false
        },
        "narrative": {
            "line1": "Mind Palace"
        },
        "value": {
            "currency": "GBP",
            "amount": 250
        },
        "paymentInstrument": {
            "type": "card/plain",
            "cardNumber": "4444333322221111",
            "expiryDate": {
                "month": 5,
                "year": 2035
            }
        },
        "customerAgreement":{
            "type": "cardOnFile",
            "storedCardUsage": "subsequent"
        },
        "requestAccountUpdater": true
    }
}

Response

If updated card details have been applied in your request, the updatedPaymentInstrument object is returned in the response.

appliedNetworkTokenboolean

Returned if the payment instrument was swapped for a network token.

accountUpdaterMessagestring

Details on the type of payment instrument update.

Enum"The merchant is not registered in the update program""The account number was changed""The account was closed""The expiry was changed""The issuing bank does not participate in the update program""Contact the cardholder for updated information""No match found""No changes found"
Example: "The account number was changed"
typestring
Example: "card/plain+masked"
cardBinstring^[0-9*]+$

The updated card BIN (Bank Identification Number).

Example: 444433
lastFourstring^[0-9*]+$

The four digits of the updated card. Some characters may be obfuscated with a * if the PAN length is less than 16 characters.

Example: 1111
expiryDateobject
cardBrandstring

The brand of the updated card. In rare circumstances a card may be reissued under a different brand.

fundingTypestring

How the card is funded.

Response examples

{
    "outcome": "authorized",
    "riskFactors": [
        {
            "type": "cvc",
            "risk": "notSupplied"
        },
        {
            "type": "avs",
            "risk": "notChecked",
            "detail": "address"
        },
        {
            "type": "avs",
            "risk": "notChecked",
            "detail": "postcode"
        }
    ],
    "issuer": {
        "authorizationCode": "12345A"
    },
    "scheme": {
        "reference": "060720116005060"
    },
    "updatedPaymentInstrument": {
        "cardBin": "491183",
        "lastFour": "0000",
        "expiryDate": {
            "month": 9,
            "year": 2031
        },
        "cardBrand": "visa",
        "fundingType": "credit",
        "accountUpdaterMessage": "The account number was changed",
        "type": "card/plain+masked"
    },
    "paymentInstrument": {
        "type": "card/plain+masked",
        "cardBin": "444433",
        "lastFour": "1111",
        "category": "consumer",
        "expiryDate": {
            "month": 5,
            "year": 2023
        },
        "cardBrand": "visa",
        "fundingType": "credit",
        "issuerName": "Some Issuer PLC",
        "paymentAccountReference": "Q1HJZ28RKA1EBL470G9XYG90R5D3E"
    },
    "_links": {
        "cardPayments:cancel": {
            "href": "https://try.access.worldpay.com/payments/authorizations/cancellations/eyJrIjoiazNhYjYzMiI="
        },
        "cardPayments:partialCancel": {
            "href": "https://try.access.worldpay.com/payments/authorizations/cancellations/partials/eyJrIjoiazNhYjYzMiJ9"
        },
        "cardPayments:settle": {
            "href": "https://try.access.worldpay.com/payments/settlements/full/eyJrIjoiazNhYjYzMiI="
        },
        "cardPayments:partialSettle": {
            "href": "https://try.access.worldpay.com/payments/settlements/partials/eyJrIjoiazNhYjYzMiI="
        },
        "cardPayments:events": {
            "href": "https://try.access.worldpay.com/payments/events/eyJrIjoiazNhYjYzMiI="
        },
        "curies": [
            {
                "name": "cardPayments",
                "href": "https://try.access.worldpay.com/rels/cardPayments/{rel}",
                "templated": true
            }
        ]
    }
}