Card Order Tracking
D1 sends real-time production and shipment updates for physical cards to the issuer backend. You can receive updates asynchronously through notifications (webhooks) or retrieve the latest status on demand.
How it works
Use one or both approaches:
Receive webhook notifications for each production step and shipment update.
Handle at-least-once delivery. Expect retries and duplicate events.
Implement the callback endpoint defined by D1 event & message notification.
Expose the Notify Card Operations API on your issuer backend.
Query the current production/shipment status at any time.
Call the Get Card Issuance Status API with the card identifier.
Recommended integration
Delivery and idempotency
Notifications can arrive out of order, and more than once.
Use
operationIdto de-duplicate and correlate events.Use
startTime/endTimeto decide which event is the latest for a given operation.Use the on-demand API to reconcile state if you detect gaps.
Common parameters
Each notification and on-demand response can include:
operationId
Unique identifier for the operation instance. Use for idempotency and correlation.
Always
operation
Operation type. Always PRODUCE for physical issuance tracking.
Always
status
Operation status: PENDING, SUCCESSFUL, or FAILED.
Always
startTime
ISO 8601 timestamp when the operation started.
Always
endTime
ISO 8601 timestamp when the operation completed.
Conditional (when completed)
cardId
Internal card identifier in D1.
Always
details
Issuance-specific payload for the operation.
Always
errorCode
Machine-readable failure cause.
Conditional (on failure)
error
Short human-readable failure description.
Conditional (on failure)
inputFileName
File name containing card issuance requests.
Conditional (file-based orders only)
issuerRequestId
Request correlation identifier from the input file.
Conditional (file-based orders only)
Top-level status is the operation status. details.status is the physical issuance status.
Parameters specific to physical issuance (details)
The physical issuance payload is in details for the PRODUCE operation.
Physical card issuance status
CARD_PROD_REQUESTED
Card personalization has been requested via the D1 APIs.
DATA_PREPARED
Data has been successfully processed.
CARD_PROD_READY
Data has been sent to the personalization center, and the card is ready for personalization.
CARD_PROD_ONGOING
Card personalization is in progress.
CARD_SHIPPED
The card has been handed over to the carrier.
DATA_EXCEPTION
An error occurred during data processing.
CARD_PROD_EXCEPTION
Card personalization encountered an issue.
CARD_PROD_CANCELED
Card personalization was canceled by the issuer.
CARD_PROD_ONHOLD
Card personalization is on hold, either by the issuer or due to an issue with the shipment address.
Details object
reason
Additional details in case of exception during data processing or card production.
On exceptions
consumerId
Deprecated. Use your internal End user identifier.
Deprecated
dueDate
Estimated shipment date, calculated upon receipt of the card issuance request.
After data processing
productionSite
The name of the personalization center handling the card personalization.
After data processing
shipment
Shipment tracking details, available only when provided by the carrier.
After shipment
inputFileName
Name of the file containing card issuance requests.
Only for cards ordered by file
issuerRequestId
Unique identifier for the card issuance request from the input file.
Only for cards ordered by file
Shipment object
When present, details.shipment can include:
carrier: Lowercase carrier code (for example,fedex).trackingNumber: Carrier tracking reference.status: Carrier shipment status (when provided by the carrier).message: Human-readable carrier status (when provided by the carrier).trackingUrl: Direct URL to carrier tracking with the tracking number embedded.redirectUrl: Carrier landing page URL that may handle locale/consent flows.pickupDate: ISO 8601 timestamp when the carrier collected the parcel.estimatedDeliveryDate: ISO 8601 estimated delivery time.lastUpdatedAt: ISO 8601 timestamp of the last tracking event.lastCheckpoint:checkpointTime: ISO 8601 timestamp.city: Last checkpoint city.countryName: Country of the last checkpoint.message: Human-readable checkpoint status.
Examples by issuance status
Sequence
This diagram shows typical transitions from request to shipment, including exception and on-hold paths.
Physical card issuance tracking on demand
The issuer backend can retrieve the card production status on demand using the Get Card Issuance Status API.
On-demand status example
Last updated
Was this helpful?