Managed cards

Physical card fulfillment status

Sent each time the fulfillment status of a physical card changes, after a virtual card has been upgraded with Request a physical card for individual delivery or Request a physical card for bulk delivery.

Use it to keep cardholders, and whoever ordered the card for them, informed of where their card is without polling.

Events

One event is sent per transition of physicalCardDetails.manufacturingState:

  • REQUESTED: the upgrade request was accepted and fulfillment has started.
  • SENT_FOR_FULFILLMENT: the card has been sent to the manufacturer for printing and packaging.
  • DISPATCHED: the card has left the manufacturer and is with the postal or courier service. A second DISPATCHED event is sent if the manufacturer supplies a deliveryTrackingCode after the first one; deliveryTrackingMethod and deliveryTrackingUrl are populated when available.
  • DELIVERED: the card has been activated by the cardholder with Activate a physical card.

physicalCardDetails is a snapshot of the card's physical details at the time of the event, including the delivery address and method. The same manufacturingState is available on demand via Get a card.

Enable and configure webhooks in the Embedder Portal; recent events are listed on its Webhook Logs page. Weavr sends this event to {Webhook URL}/managed_cards/physical_cards_upgrade/watch.

postWebhook/managed_cards/physical_cards_upgrade/watch

Headers

call-refstring

A call reference generated by the caller and unique to the caller to provide correlation between the caller and system with a maximum length of 255

published-timestampinteger required

The timestamp, expressed in Epoch timestamp using millisecond precision, when this event was published.

signaturestring required

The signature to verify the authenticity of this request. This is the base64 hash (HmacSHA256) of the published-timestamp using your API key.

signature-v2string required

The signature to verify the authenticity of this request. This is the base64 hash (HmacSHA256) of the call-ref + payload + published-timestamp using your API key.

Payload

upgradedTimestampstring required

When the fulfillment status changed. Epoch timestamp using millisecond precision.

Example payload

{
  "id": {
    "id": "123456789",
    "type": "managed_accounts"
  },
  "physicalCardDetails": {
    "bulkDelivery": true,
    "productReference": "PRD_001",
    "carrierType": "STANDARD",
    "replacement": {
      "replacementId": "345678901"
    },
    "deliveryAddress": {
      "name": "Alex",
      "surname": "Smith",
      "addressLine1": "1 High Street",
      "addressLine2": "Flat 2",
      "city": "London",
      "postCode": "W1A 1AA",
      "state": "Greater London",
      "country": "GB",
      "contactNumber": "+447700900123"
    },
    "deliveryTrackingCode": "JD0002231234567890",
    "deliveryTrackingMethod": "ROYAL_MAIL",
    "deliveryTrackingUrl": "https://www.royalmail.com/track-your-item#/tracking-results/JD0002231234567890",
    "nameOnCardLine2": "Acme Ltd"
  },
  "upgradedTimestamp": "1729678800000"
}

Response

Event received.

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.