**Last updated**: 19 May 2026 | [**Change log**](/products/payments/changelog/)

# 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.

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

## How to enable

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.

### requestAccountUpdater object (Required)


```
"instruction": {
    "paymentInstrument": {
        "type": "card/plain",
        "cardNumber": "4444333322221111",
        "expiryDate": {
            "month": 5,
            "year": 2035
        }
    },
    "customerAgreement":{
        "type": "cardOnFile",
        "storedCardUsage": "subsequent"
    },
    "requestAccountUpdater": true,
    ....
}
```

## Outcome details

card/plain

```
...
"updatedPaymentInstrument": {
    "type": "card/plain",
    "cardNumber": "8888777766665555",
    "expiryDate": {
        "month": 9,
        "year": 2031
    },
    "cardBrand": "visa",
    "fundingType": "credit",
    "accountUpdaterMessage": "The account number was changed"
},
...
```

card/plain+masked

```
...
"updatedPaymentInstrument": {
    "type": "card/plain+masked",
    "cardBin": "888877",
    "lastFour": "5555",
    "expiryDate": {
        "month": 9,
        "year": 2031
    },
    "cardBrand": "visa",
    "fundingType": "credit",
    "accountUpdaterMessage": "The account number was changed"
},
...
```

### Schema


```json
{
  "$ref": "#/components/schemas/PaymentsUpdatedPaymentInstrument",
  "components": {
    "schemas": {
      "PaymentsUpdatedPaymentInstrument": {
        "type": "object",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "card/plain": "#/components/schemas/PaymentsPlainUpdatedPaymentInstrument",
            "card/plain+masked": "#/components/schemas/PaymentsPlainMaskedUpdatedPaymentInstrument"
          }
        },
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of updated instrument."
          }
        },
        "required": [
          "type"
        ]
      },
      "ExpiryDate": {
        "type": "object",
        "description": "Contains your customer's card or token expiry date.",
        "properties": {
          "year": {
            "type": "integer",
            "format": "int32",
            "example": 2028
          },
          "month": {
            "type": "integer",
            "format": "int32",
            "example": 6
          }
        },
        "required": [
          "month",
          "year"
        ]
      },
      "PaymentsPlainUpdatedPaymentInstrument": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentsUpdatedPaymentInstrument"
          },
          {
            "type": "object",
            "properties": {
              "appliedNetworkToken": {
                "type": "boolean"
              },
              "type": {
                "type": "string",
                "enum": [
                  "card/plain"
                ]
              },
              "cardNumber": {
                "type": "string"
              },
              "accountUpdaterMessage": {
                "type": "string",
                "description": "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",
                "x-enumDescriptions": {
                  "The issuing bank does not participate in the update program": "Returned for Real Time Account Updater only. It is not known whether an account update is available.",
                  "Contact the cardholder for updated information": "A match was found but you may need to contact the cardholder for updated card details. This could be due to cardholder opt-out or other reasons.",
                  "The account number was changed": "A new card has been issued with a change in the card number.",
                  "No changes found": "No changes to the card account were found.",
                  "The account was closed": "The account is closed and the card is no longer valid. Ask your customer for an alternative payment method.",
                  "The merchant is not registered in the update program": "Returned for Real Time Account Updater only. Contact Worldpay to enroll in the service.",
                  "The expiry was changed": "A new card has been issued with an updated expiry date. In most cases the card number remains unchanged.",
                  "No match found": "The BIN range is enrolled for account updates, but no match was found for the card account. One reason for this may be that the card issuer has recently changed."
                }
              },
              "expiryDate": {
                "$ref": "#/components/schemas/ExpiryDate"
              },
              "cardBrand": {
                "type": "string",
                "description": "The brand of the updated card. In rare circumstances a card may be reissued under a different brand."
              },
              "fundingType": {
                "type": "string",
                "description": "How the card is funded."
              },
              "countryCode": {
                "type": "string"
              }
            }
          }
        ],
        "discriminator": {
          "propertyName": "type"
        },
        "required": [
          "type"
        ]
      },
      "PaymentsPlainMaskedUpdatedPaymentInstrument": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentsUpdatedPaymentInstrument"
          },
          {
            "type": "object",
            "properties": {
              "appliedNetworkToken": {
                "type": "boolean"
              },
              "type": {
                "type": "string",
                "enum": [
                  "card/plain+masked"
                ]
              },
              "cardBin": {
                "type": "string",
                "description": "The updated card BIN (Bank Identification Number).",
                "example": "444433"
              },
              "lastFour": {
                "type": "string",
                "description": "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"
              },
              "accountUpdaterMessage": {
                "type": "string",
                "description": "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",
                "x-enumDescriptions": {
                  "The issuing bank does not participate in the update program": "Returned for Real Time Account Updater only. It is not known whether an account update is available.",
                  "Contact the cardholder for updated information": "A match was found but you may need to contact the cardholder for updated card details. This could be due to cardholder opt-out or other reasons.",
                  "The account number was changed": "A new card has been issued with a change in the card number.",
                  "No changes found": "No changes to the card account were found.",
                  "The account was closed": "The account is closed and the card is no longer valid. Ask your customer for an alternative payment method.",
                  "The merchant is not registered in the update program": "Returned for Real Time Account Updater only. Contact Worldpay to enroll in the service.",
                  "The expiry was changed": "A new card has been issued with an updated expiry date. In most cases the card number remains unchanged.",
                  "No match found": "The BIN range is enrolled for account updates, but no match was found for the card account. One reason for this may be that the card issuer has recently changed."
                }
              },
              "expiryDate": {
                "$ref": "#/components/schemas/ExpiryDate"
              },
              "cardBrand": {
                "type": "string",
                "description": "The brand of the updated card. In rare circumstances a card may be reissued under a different brand."
              },
              "fundingType": {
                "type": "string",
                "description": "How the card is funded."
              },
              "countryCode": {
                "type": "string"
              }
            }
          }
        ],
        "discriminator": {
          "propertyName": "type"
        },
        "required": [
          "type"
        ]
      }
    }
  }
}
```