> 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/perso-design-services/implement-allaboutme-and-sketchmycard-b2c/integrate-designer-tool/advanced-image-api/print-ready-card-designs-for-third-party-perso.md).

# Print-ready Card Designs for Third Party Perso

## What is the Image Delivery API?

Perso Design Services products are compatible with both Thales and third-party personalization bureaus. The **Image Delivery API** is the way for a third-party personalization bureau to request approved print ready images from Thales.

## Integrate Image Delivery API

The primary method to for a third-party personalization bureau to request an image via the Image Delivery API is using the **GetImage method**.

### How it Works

The bureau will receive a unique identifier for an image along with every card embossing request. This ID identifies the image that should be printed on the card front. The bureau should call the **GetImage** web service to request the image associated with each image unique identifier.

In addition to the unique identifier, other parameters are required for the web service request to correctly identify the Service Aggregator, Subscriber and maybe the Product. These will be random, unique strings so that the bureau cannot request images from Service Aggregators, Subscribers or even Products it should not have access to.

### URLs

URLs for the web service will be provided by your Thales contact during onboarding.

### Required Parameters

* `CardImageID` (string): The unique identifier for the image being requested. This is generated by the Designer Tool and passed to the issuer during the Handback procedure.
* `ImageDelivery_Key` (GUID string): This value identifies the caller and is matched to the Service Aggregator. This guarantees that the caller should have access to the requested CardImageID. Thales will provide the aggregator with the value for this parameter. Also note that a different value will be used on each environment (see the Handover URL section for an explanation of the environments).

### Response Parameters

* `CardImageID` (string): The same value as the request parameter.
* `Image` (byte\[]): The print-ready image in RGB JPEG format. It will contain the full edge-to-edge image as designed by the Cardholder (whether uploaded or from the Gallery). It will also include brand elements in the Print Template, but not the Designer Template. See the Card Template section for more details.
* `HashValue` (string): The MD5 hash of the Image parameter. This should be used to validate that the Image was received without corruption.
* `ErrorCode` (integer): An error code describing the error (if any) that occurred during the method call.

### Error Codes

* `-1` (Unexpected system error): An internal error occurred. The caller should attempt to call the method again. If a high number of such errors are encountered, the problem should be escalated to manual operators at Thales.
* `0` (Success): The method call was successful.
* `1` (No image available for CardImageID): The informed CardImageID doesn’t match any image available for delivery.
* `2` (CardImageID is invalid): The CardImageID isn’t a valid identifier.
* `3` (ImageDelivery\_Key is invalid or doesn’t match CardImageId): The CardImageID and ImageDelivery\_Key don’t match. This error will usually occur when an invalid or incorrect ImageDelivery\_Key is used.


---

# 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/perso-design-services/implement-allaboutme-and-sketchmycard-b2c/integrate-designer-tool/advanced-image-api/print-ready-card-designs-for-third-party-perso.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.
