> 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/card-carrier-personalization.md).

# Card carrier personalization

<figure><img src="/spaces/ol7FqojHqm5it3effNc4/files/REw2SsRwlf8vCnz2AJtf" alt="Example card carrier layout"><figcaption><p>Example card carrier layout</p></figcaption></figure>

D1 prints text, images, and barcodes on the card carrier. It uses your D1 API request fields and the card carrier configuration set during D1 onboarding.

### Select a card carrier

D1 selects the card carrier template from your request fields. It applies the rules defined during D1 onboarding.

Common selection fields:

* `services.cardCarrier`: Card carrier identifier configured during D1 onboarding.
* `services.issuance`: Issuance type. D1 can use different card carriers per issuance type (for example, `CREATION` vs. `RENEWAL`).
* `cardCarrierConfig.language` (Optional): Card carrier language (ISO 639-1 alpha-2, example: `en`).

### Inputs used for personalization

Required D1 API inputs:

Provide an End user name and delivery address. Exact fields can vary by endpoint and configuration.

End user name (one of the following, depending on your API payload):

* `name`
* `shipment.deliveryAddress.title`, `shipment.deliveryAddress.firstName`, `shipment.deliveryAddress.lastName`

Delivery address (`shipment.deliveryAddress`):

* `line1`: Address line 1.
* `zipCode`: Postal code.
* `city`: City.
* `countryCode`: Country code (ISO 3166-1 alpha-2, example: `US`).

Optional D1 API inputs:

* `cardCarrierConfig.images`: Image references to print on the card carrier.
* `cardCarrierConfig.customLines`: Custom text lines to print on the card carrier.
* `shipment.deliveryAddress.companyName`: Company name.
* `shipment.deliveryAddress.line2`: Address line 2.
* `shipment.deliveryAddress.line3`: Address line 3.

#### Example

{% code title="Example (request excerpt)" %}

```json
{
  "services": {
    "cardCarrier": "standard-carrier",
    "issuance": "CREATION"
  },
  "shipment": {
    "deliveryAddress": {
      "title": "Mr",
      "firstName": "Alex",
      "lastName": "Chen",
      "companyName": "Example Co",
      "line1": "10 Main St",
      "line2": "Apt 3B",
      "zipCode": "10001",
      "city": "New York",
      "countryCode": "US"
    }
  },
  "cardCarrierConfig": {
    "language": "en",
    "images": ["img_welcome_01"],
    "customLines": ["Welcome to Example Bank"]
  }
}
```

{% endcode %}

### Configuration in D1

During D1 onboarding, Thales configures:

* Card carrier templates and print mappings (text, images, barcodes).
* Supported languages and the default language behavior.
* Allowed `images` references and the rendering rules for each image slot.
* Placement and maximum length rules for `customLines`.

### Multiple cards on one card carrier

You can group up to six cards on the same card carrier.

Set these fields:

* `cardCarrierConfig.multiCardId`: Group identifier. Cards with the same value share one card carrier.
* `cardCarrierConfig.multiCardOrder`: Card position on the card carrier.

D1 prints the delivery address from the first card in the group.


---

# 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/card-carrier-personalization.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.
