> For the complete documentation index, see [llms.txt](https://docs.payments.thalescloud.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.payments.thalescloud.io/central-issuance/implement-central-issuance/card-order.md).

# Card order

D1 lets your issuer backend request physical card production. You can ship cards to the end user. You can also ship in bulk to branches or hubs.

Use this section to choose personalization and shipping options. Then call the Physical Issuance API to submit the order.

### Before you begin

* Complete D1 onboarding and get D1 API credentials.
* Configure card products, personalization profiles, and letter templates.
* Load stock items and product variants for your program/BIN.
* Configure return address and shipping methods.
* Define allowed destination countries per program.

### Flow

<figure><img src="/files/vg8da6rfhDEIbGel9Y3a" alt=""><figcaption><p>End-to-end flow from issuer backend request to a Thales personalization center.</p></figcaption></figure>

### How it works

{% stepper %}
{% step %}

### Choose order options

Select:

* Issuance type, shipment, packaging, and card carrier settings. See [Select card order services](/central-issuance/implement-central-issuance/card-order/select-card-order-services.md).
* Personalization inputs (print, magstripe, and chip). See:
  * [Magnetic stripe tracks](/central-issuance/implement-central-issuance/card-order/magnetic-stripe-tracks.md)
  * [Graphical personalization](/central-issuance/implement-central-issuance/card-order/graphical-personalization.md)
  * [Chip personalization](/central-issuance/implement-central-issuance/card-order/chip-personalization.md)
  * [Card carrier personalization](/central-issuance/implement-central-issuance/card-order/packaging.md)
  * [Packaging](/central-issuance/implement-central-issuance/card-order/packaging.md)
  * [Shipment](/central-issuance/implement-central-issuance/card-order/shipment.md)
    {% endstep %}

{% step %}

### Submit the order

Call the [Card order API](/central-issuance/integrate-d1-api/d1-api-reference/inbound-api-to-d1/order-card-api.md#post-issuers-issuerid-physicalcards-cardid-operations-production) to order a physical card.

Make requests idempotent. Reuse a stable key from your issuer backend (for example, `issuerRequestId`) so retries do not create duplicates.
{% endstep %}

{% step %}

### Track production and shipment

Use the status endpoint and notifications to keep your system in sync.

See [Card order tracking](/central-issuance/implement-central-issuance/card-order-tracking.md).
{% endstep %}
{% endstepper %}

### Required APIs

<table><thead><tr><th width="202.39996337890625">API</th><th width="176.7999267578125">Inbound/Outbound</th><th>Description</th></tr></thead><tbody><tr><td><a href="/pages/uEzPy2u8gld2HQVB2BKi#post-oauth2-token">Get authorization token</a></td><td>Issuer -> Thales D1</td><td>Get an OAuth 2.0 access token to call the D1 backend.</td></tr><tr><td><a href="/pages/lHQdBIzJy5oOXYM5IvQJ#post-issuers-issuerid-physicalcards-cardid-operations-production">Card order</a></td><td>Issuer -> Thales D1</td><td>Order a physical card</td></tr><tr><td><a href="/pages/7jYOB2jnWMpMRZ8vM6au#post-notifications-d1-v2-issuers-issuerid-cards">Notifications</a></td><td>Issuer &#x3C;- Thales D1</td><td>Receive notifications with card order status for the operation PRODUCE</td></tr></tbody></table>

### API Inputs

Required D1 API inputs:

* `issuerId`: Unique identifier of the issuer
* `cardId`: Unique identifier of the card.
* `consumerId`: Unique identifier of the consumer.

Conditional D1 API inputs:

* `issuerRequestId`: Unique identifier provided by issuer to identify the card production request. Used to correlate order with notifications.

Other D1 API inputs, see the different sections describing the required inputs:

* [Select card order services](/central-issuance/implement-central-issuance/card-order/select-card-order-services.md)
* [Magnetic stripe tracks](/central-issuance/implement-central-issuance/card-order/magnetic-stripe-tracks.md)
* [Graphical personalization](/central-issuance/implement-central-issuance/card-order/graphical-personalization.md)
* [Chip personalization](/central-issuance/implement-central-issuance/card-order/chip-personalization.md)
* [Card carrier personalization](/central-issuance/implement-central-issuance/card-order/packaging.md)
* [Packaging](/central-issuance/implement-central-issuance/card-order/packaging.md)
* [Shipment](/central-issuance/implement-central-issuance/card-order/shipment.md)

Deprecated D1 API inputs:

* `state`: The state of the card. If not provided, the card is considered ACTIVE.
* `oldCardId`: Unique identifier of the previous card. Provided in case the card is replacing another card.

### Error handling and retries

Handle errors at two layers:

* **Synchronous API errors** (HTTP `4xx`/`5xx`). Validate payloads. Retry safely with idempotency for transient failures.
* **Asynchronous production errors** (for example, out of stock or template issues). Track the latest operation status in your issuer backend.

### Security and data handling

Treat PAN, magnetic stripe track values, and the card security code (CSC) as sensitive data.

* Do not log sensitive fields.
* Encrypt sensitive fields when required by the endpoint. See [Encrypt sensitive data](/central-issuance/integrate-d1-api/d1-connectivity/encrypt-sensitive-data.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.payments.thalescloud.io/central-issuance/implement-central-issuance/card-order.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
