Managed cards

Managed card expiry and renewal

Sent as a managed card approaches expiry, expires, or is renewed.

Use CARD_ABOUT_TO_EXPIRE to prompt a cardholder before the card stops working. Whether a card renews automatically is set by renewalType.

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/expiries/watch.

postWebhook/managed_cards/expiries/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

eventType'CARD_ABOUT_TO_EXPIRE' | 'CARD_EXPIRED' | 'CARD_RENEWED' required

Where the card is in its expiry cycle:

  • CARD_ABOUT_TO_EXPIRE: the card is approaching its expiry date.
  • CARD_EXPIRED: the card has expired and will decline authorizations.
  • CARD_RENEWED: the card was renewed and a new expiry date applies.
cardType'VIRTUAL' | 'PHYSICAL' required
expiryMmyystring

The card's expiry date, in MMYY format.

renewalType'RENEW' | 'NO_RENEW' required

Indicates how the card will be handled once it is close to expiring.

  • RENEW: The card will be automatically renewed, keeping the same card number but with a new expiry date and CVV.
  • NO_RENEW: Once the expiry date is reached, the card is destroyed.
renewalTimestampinteger

When the card will be renewed. Epoch timestamp using millisecond precision. Present when renewalType schedules an automatic renewal.

Example payload

{
  "id": {
    "id": "123456789",
    "type": "managed_accounts"
  },
  "expiryMmyy": "1028",
  "renewalTimestamp": 1786118400000
}

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.