🚀 VaultsPay API v1 is live. See what's new →
WebhooksCard Events

Card Events

1. Purpose

This webhook allows third-party partners to receive real-time card status updates from VaultsPay. Partners register a single callback URL, and VaultsPay sends a POST request to that URL whenever an important card status change occurs.

The payload is intentionally lean, containing only the essential information required for partners to update their systems.

2. How Integration Works

  1. Partner registers a webhook URL and optional secret in the SaaS platform.
  2. VaultsPay stores the subscription in the webhook system.
  3. When a card status changes, the event is produced by internal services.
  4. The webhook dispatcher sends the event to the partner’s URL.

3. Webhook Payload

Example webhook request sent to partners:

{
  "id": "01hvjr8fz6mbw6f9r9v3e5b5yw",
  "type": "card.status.active",
  "occurred_at": "2026-03-13T09:20:12Z",
  "status": {
    "previous": {
      "code": "BLOCK",
      "label": "DECLINE_ALL_TXNS"
    },
    "current": {
      "code": "ACTIVE",
      "label": "FULLY_OPERATIONAL"
    },
    "reason": "Card was unblocked by the admin"
  },
  "card": {
    "token": 987654321,
    "last_four_digits": "3321",
    "tier": "VaultsPay Debit Card Tier",
    "network": "MC",
    "type": "PHYSICAL"
  }
}

4. Key Fields

Envelope

FieldDescription
idUnique webhook event identifier.
typeCard status event type.
occurred_atTimestamp of the status change.

Status Change

FieldDescription
status.previous.codePrevious platform status code.
status.previous.labelPrevious network status label.
status.current.codeNew platform status code.
status.current.labelNew network status label.
status.reasonReason for the status change.

Card Information

FieldDescription
card.tokenCard network token.
card.last_four_digitsLast 4 digits of the card.
card.networkCard network.
card.typePHYSICAL or VIRTUAL.

This structure allows partners to track the status transition clearly while keeping the payload minimal.

5. Card Status Events Sent to Partners

VaultsPay sends webhooks only for important lifecycle states.

EventDescription
card.status.createdCard created in the platform.
card.status.issued.third_partyCard issued or provisioned by the third party.
card.status.activeCard activated and ready for transactions.
card.status.freezeCard temporarily frozen.
card.status.unfreezeFrozen card restored.
card.status.blockCard blocked or restricted.
card.status.reported_lostCard reported lost.
card.status.reported_stolenCard reported stolen.
card.status.reported_damagedCard reported damaged.
card.status.expiredCard expired.
card.status.conversion_requestedCard conversion from virtual to physical is requested.

6. Enumerations

6.1 Status Codes (status.previous.code, status.current.code)

Platform-level card states:

CodeDescription
ACTIVECard is fully operational.
FREEZECard is temporarily frozen.
BLOCKCard is blocked.
STOLENCard reported stolen.
DAMAGEDCard reported damaged.
LOSTCard reported lost.
EXPIREDCard expired.
ISSUANCE_REQUESTEDCard issuance requested.
ISSUANCE_REQUEST_DECLINEDIssuance request declined.
ISSUANCE_IN_PROGRESSCard issuance in progress.
PENDING_VERIFICATIONAwaiting verification.
REPORTEDGeneric reported state.
DESTROYEDCard permanently destroyed.
CARD_CONVERSION_REQUESTEDConversion requested from virtual to physical card.
REISSUE_REQUESTEDCard reissue requested — renew or replacement request is in place.

6.2 Status Labels (status.previous.label, status.current.label)

Network-level behavior:

LabelDescription
FULLY_OPERATIONALCard can perform transactions.
DECLINE_ALL_TXNSAll transactions will be declined.

6.3 Code → Label Mapping Rule

This mapping is deterministic and guaranteed:

Status CodeLabel
ACTIVEFULLY_OPERATIONAL
ALL OTHER VALUESDECLINE_ALL_TXNS

This applies to both status.previous and status.current.

6.4 Mapping Between type and Status Transitions

Event TypeTypical current.codeResulting current.label
card.status.createdISSUANCE_REQUESTEDDECLINE_ALL_TXNS
card.status.issued.third_partyISSUANCE_IN_PROGRESSDECLINE_ALL_TXNS
card.status.activeACTIVEFULLY_OPERATIONAL
card.status.freezeFREEZEDECLINE_ALL_TXNS
card.status.unfreezeACTIVEFULLY_OPERATIONAL
card.status.blockBLOCKDECLINE_ALL_TXNS
card.status.reported_lostLOSTDECLINE_ALL_TXNS
card.status.reported_stolenSTOLENDECLINE_ALL_TXNS
card.status.expiredEXPIREDDECLINE_ALL_TXNS
card.status.conversion_requestedCARD_CONVERSION_REQUESTEDDECLINE_ALL_TXNS
card.status.reported_damagedDAMAGEDDECLINE_ALL_TXNS

6.5 Card Type (card.type)

ValueDescription
PHYSICALPhysical card.
VIRTUALVirtual card.

6.6 Card Network (card.network)

ValueDescription
MCMastercard.
VISAVisa.
MADAMada (if applicable).