> ## Documentation Index
> Fetch the complete documentation index at: https://docs.knotapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Server-Side Updates

> Automatically provision new cards to merchant accounts without user interaction.

## Overview

This functionality (CardUpdater™) enables you to provision a user's new card to their merchant accounts entirely server-side, without requiring them to re-authenticate through the SDK. This is ideal for scenarios where a user already has linked merchant accounts and you want to seamlessly update their payment method when a new card is issued.

## Use Cases

* **A user's card is reissued** (e.g., expiration or replacement) and you want to update their payment method across merchants where they've previously authenticated.
* **A user is issued a different card** that you want to provision to merchants, such as when you have a business incentive to capture higher interchange spend (e.g., moving from debit to credit).

<Note>
  This functionality requires users to have previously authenticated with merchants through the Knot SDK. It updates cards at existing merchant account connections—it does not create new ones.
</Note>

## Integration Steps

<Steps>
  <Step title="Retrieve available merchant accounts">
    When a new card is issued for a user, call [Get Merchant Accounts](/api-reference/accounts/get-accounts) to retrieve the merchant accounts where the card can be provisioned. Whether the card can be updated at each merchant is indicated by the presence of `update_card` in `connection.scopes.type`:

    ```json theme={"system"}
    [
      {
        "merchant": {
          "id": 19,
          "name": "DoorDash",
          "logo": "https://knot.imgix.net/merchants/KBQ5j6cN010PPpwbO7RpKGyDrCpsZ91FRhwnZp5u.png"
        },
        "connection": {
          "status": "connected",
          "scopes": [
            {
              "type": "update_card"
            }
          ]
        },
        "lifecycle": {
          "status": null
        },
        "last_user_action": {
          "attempted_at": null,
          "status": null
        }
      }
    ]
    ```
  </Step>

  <Step title="Provision the card to each merchant account">
    For each merchant account that supports updating the card and where updating is desired, make a request to [Switch Card](/api-reference/products/card-switcher/switch-card#cardupdater) or [Switch Card (JWE)](/api-reference/products/card-switcher/switch-card-jwe#cardupdater) to provision the new card.
  </Step>

  <Step title="Listen for webhooks">
    Listen for the [`CARD_UPDATED`](/card-switcher/webhook-events/card-updated) and [`CARD_FAILED`](/card-switcher/webhook-events/card-failed) webhooks to track the status of each card update, just as you do for SDK-initiated card switches.
  </Step>
</Steps>
