---
title: "Simulate an Account Updater Subscription update"
method: POST
path: "/payments/cards/subscriptions/{subscription_id}/simulate"
tags: ["Payments", "Real-time Account Updater"]
---

# Simulate an Account Updater Subscription update

`POST /payments/cards/subscriptions/{subscription_id}/simulate`

## Request

- Base URL: `https://api.evervault.com`
- URL: `https://api.evervault.com/payments/cards/subscriptions/{subscription_id}/simulate`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/evervault/apis/evervault-api/docs/payments/cards/subscriptions/:subscription_id/simulate/post.ts> (a function with typed inputs; its response is checked against the schema)

Simulate an asynchronous update for a subscribed card so you can test your webhook
integration without waiting for a real push from the card networks. First
[subscribe a card](#createAccountUpdaterSubscription) using the test card
`4242424242424242`, then call this endpoint with the `type` of update you want to
simulate.

Evervault delivers a [`real-time.card.updated`](/api#realTimeCardUpdated) webhook to
your registered endpoint, identical to a production push. The card networks only push
a subset of results asynchronously, so this endpoint accepts only the update types that
can arrive over a webhook.

Updates can only be simulated for a subscription to `4242424242424242`. A
`new-account-number` update returns `4111111111111111` as the replacement card,
as an Evervault encrypted string.

This endpoint is only available to [Sandbox apps](/developers/sandbox).

## Path parameters

- `subscription_id` string, required

## Request body

- object
  - `type` 'new-account-number' | 'new-expiry-date' | 'account-closed', required: The update to simulate. Accepts only the updates the card networks push asynchronously.

## Response `202`

The simulated update was accepted and a `real-time.card.updated` webhook will be
delivered to your registered endpoint. The body describes the update that was
dispatched.

- RealTimeAccountUpdate: A real-time card account update pushed by the card networks for a subscription. Push updates fire only for actual changes.
  - `subscription` string, required: The identifier of the subscription this update belongs to.
  - `result` 'new-account-number' | 'new-expiry-date' | 'account-closed', required: The type of update pushed by the card networks. Push updates fire only when there is an actual change, so `no-change`, `no-match`, `contact-cardholder`, and opt-out results never appear here.
  - `update` object, nullable, required: The updated card details. Present on `new-account-number` and `new-expiry-date` results, and `null` on `account-closed`.
    - `card` object: The updated card details.
      - `number` string: The updated card number. Always an Evervault encrypted string, and only present on a `new-account-number` result. The plaintext card number is never returned, so decrypt this value with Evervault if you need the plaintext account number.
      - `expiry` CardExpiry: The card expiry date.
        - `month` string, required: The card expiry month, in MM format (e.g. 12 for December)
        - `year` string, required: The card expiry year, in YY format (e.g. 29 for 2029)

## Other responses

- `400`: The request was invalid or cannot be otherwise served.
- `401`: The request cannot be authenticated.
- `403`: The request is not authorized to perform this action.
- `404`: The subscription could not be found.

## Changes

- **2026-11-06** `8d0ca833fa04`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/evervault/apis/evervault-api/changes/payments/cards/subscriptions/:subscription_id/simulate/post.md)

---

[API](https://skmtc.dev/evervault/apis/evervault-api.md) - [All operations](https://skmtc.dev/evervault/apis/evervault-api/llms.txt) - [OpenAPI document](https://skmtc.dev/evervault/apis/evervault-api/revisions/8d0ca833fa04?raw)
