# Card order status change

This event is triggered every time a card order status is updated. Statuses depend on the type of card (virtual/physical). Additional statuses related to delivery exist for physical cards.

* Event type: cards#card-order-status-change
* Profile level subscriptions: Not Supported
* Application level subscriptions: Supported

Available card order statuses:

The initial card order status is PLACED or REQUIREMENTS_FULFILLED depending on the requirement fulfillment state. The possible values are:
- PLACED: The card order is created. The card will be generated once it has fulfilled all the requirements.
- REQUIREMENTS_FULFILLED: The card order has fulfilled all the requirements and the card should be generated in a short while.
- CARD_DETAILS_CREATED: The card has been generated.
- PRODUCED: The physical card has been produced and is waiting to be picked up by delivery vendor (physical card only).
- COMPLETED: The card has been activated and is ready to use. The card order is completed.
- CANCELLED: The card order has been cancelled. This can happen if you contact Wise Support to cancel a card order.
- RETURNED: Delivery failed. The physical card has been returned and will be blocked (physical card only).

{% img
  src="/images/diagrams/card-order-status-flow.png"
  alt="Create card order statuses transition diagram"
/%}

Events may not be delivered in the order they occurred. Use data.occurred_at to reconcile the order.
See the Event ordering guide for details.

See the Webhooks guide for setup instructions, signature verification, and best practices.

Endpoint: POST cards#card-order-status-change

## Header parameters:

  - `X-Signature-SHA256` (string)
    RSA-SHA256 signature of the request body, Base64 encoded. Verify this against the Wise public key to ensure the request is authentic and has not been tampered with.
    Example: "t7FMhk3OARMgwqz0LJXO..."

  - `X-Delivery-Id` (string)
    Unique identifier for this webhook delivery attempt.
    Example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"

  - `X-Test-Notification` (boolean)
    Present with the value true if this is a test notification sent to verify your callback URL during subscription setup.
    Example: true

## Request fields (application/json):

  - `body` (any) — one of (discriminator: schema_version):
    - 4.0.0:
      - `schema_version` (string)
        Version of the event schema. Determined by the schema_version on your [webhook subscription](/api-reference/webhook).
        Enum: "4.0.0"
      - `subscription_id` (string)
        ID of the webhook subscription that triggered this event.
        Example: "01234567-89ab-cdef-0123-456789abcdef"
      - `event_type` (string)
        Event type identifier
        Example: "cards#card-order-status-change"
      - `sent_at` (string)
        Timestamp when the event was sent.
        Example: "2023-01-01T12:34:56.123Z"
      - `data` (object)
      - `data.resource` (object)
      - `data.resource.profile_id` (integer)
        ID of the profile that owns the card.
        Example: 123456
      - `data.resource.type` (string)
        Webhook notification of type 'card'.
        Example: "card"
      - `data.resource.client_id` (string)
        API client_id
        Example: "your-bank"
      - `data.resource.card_token` (string,null)
        Unique identifier of the card.
        Example: "35050a4a-9521-426e-8109-1396e3687a3e"
      - `data.resource.card_program` (string)
        The card program associated with this card order. A card program is how Wise refers to all the cards you will be issuing with us, grouped by product type and issuing country.
        Example: "VISA_DEBIT_CONSUMER_UK_1_PHYSICAL_CARDS_API"
      - `data.order_id` (string)
        Card order ID associated with the status change.
        Example: "1001L"
      - `data.order_status` (string)
        Updated card order status
        Enum: "PLACED", "REQUIREMENTS_FULFILLED", "CARD_DETAILS_CREATED", "PRODUCED", "COMPLETED", "CANCELLED", "RETURNED"
      - `data.delivery_vendor` (string,null)
        Delivery vendor used to dispatch the order (physical card only).
        Example: "DHL"
      - `data.occurred_at` (string)
        When the card order status change occurred.
        Example: "2023-01-01T12:24:56.789Z"
    - 2.0.0:
      - `schema_version` (string)
        Version of the event schema. Determined by the schema_version on your [webhook subscription](/api-reference/webhook).
        Enum: "2.0.0"
      - `subscription_id` (string)
        ID of the webhook subscription that triggered this event.
        Example: "01234567-89ab-cdef-0123-456789abcdef"
      - `event_type` (string)
        Event type identifier
        Example: "cards#card-order-status-change"
      - `sent_at` (string)
        Timestamp when the event was sent.
        Example: "2023-01-01T12:34:56Z"
      - `data` (object)
      - `data.resource` (object)
      - `data.resource.profile_id` (integer)
        ID of the profile that owns the card.
        Example: 123456
      - `data.resource.type` (string)
        Webhook notification of type 'card'.
        Example: "card"
      - `data.resource.client_id` (string)
        API client_id
        Example: "your-bank"
      - `data.resource.card_token` (string,null)
        Unique identifier of the card.
        Example: "35050a4a-9521-426e-8109-1396e3687a3e"
      - `data.resource.card_program` (string)
        The card program associated with this card order. A card program is how Wise refers to all the cards you will be issuing with us, grouped by product type and issuing country.
        Example: "VISA_DEBIT_CONSUMER_UK_1_PHYSICAL_CARDS_API"
      - `data.order_id` (string)
        Card order ID associated with the status change.
        Example: "1001L"
      - `data.order_status` (string)
        Updated card order status
        Enum: same as `data.order_status` in "4.0.0" (7 values)
      - `data.delivery_vendor` (string,null)
        Delivery vendor used to dispatch the order (physical card only).
        Example: "DHL"
      - `data.occurred_at` (string)
        When the card order status change occurred.
        Example: "2023-01-01T12:24:56Z"

## Response 200 fields (application/json):

  - `status` (string)
    Example: "ok"


