> 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/click-to-pay/implement-click-to-pay-issuers/update-click-to-pay-profiles.md).

# Update Click to Pay profiles

End user data and card data stored in Click to Pay can change over time.

This page explains how the issuer backend can keep Click to Pay directories synchronized with the latest information using D1.

D1 exposes two APIs for this purpose:

* **Click to Pay update consumer** – update end user (consumer) profile data, and optionally the billing address for all cards.
* **Click to Pay update card** – update card-level data such as the billing address and, for Visa only, the cardholder name.

{% hint style="info" %}
**Quick links**

* [Enroll cards in Click to Pay](/click-to-pay/implement-click-to-pay-issuers/enroll-cards-in-click-to-pay.md)
* [Retrieve Click to Pay profiles](/click-to-pay/implement-click-to-pay-issuers/retrieve-click-to-pay-profiles.md)
* [Opt out cards from Click to Pay](/click-to-pay/implement-click-to-pay-issuers/opt-out-cards-from-click-to-pay.md)
  {% endhint %}

## Choose the right API

Use the following guidance to decide which API to call:

### Click to Pay API

* **Click to Pay update consumer**\
  Use when you need to update consumer data specifically in Click to Pay (for example, when you only integrate Click to Pay with D1 or when the consumer profile is not fully managed in D1). Provide all consumer fields, even if only some values changed. Optionally include a billing address to update the billing address for all cards.
* **Click to Pay update card**\
  Use when only card-level data stored in Click to Pay must change, such as the billing address for a given card, or the cardholder name for Visa cards, without modifying the consumer profile.

### **D1 API**

* **Update consumer information**\
  Use when you maintain the end user profile in D1 and want all channels, including Click to Pay, to be updated. The end user must be fully registered in D1 and already enrolled in Click to Pay. Updates are automatically propagated to the Click to Pay directory; you do not need to call **Click to Pay update consumer** API.
* **Renew / Replace**\
  D1 must have the latest data updated. Use the D1 **Renew** or **Replace** APIs when a card is renewed or replaced (new PAN and/or expiration date). There is no dedicated Click to Pay API for these events; in case tokenization is also enabled, D1 orchestrates the re-linking of existing tokens, including any Click to Pay tokens.

## User experience

<figure><img src="/files/VjB3ZjrCJ7jav2Ggdm8G" alt=""><figcaption></figcaption></figure>

## Flow

The diagram below shows the overall flow to update consumer and card details in Click to Pay through D1:

<figure><img src="/files/OXPa2cW05yeAkzN78Odb" alt=""><figcaption></figcaption></figure>

## Sequence diagrams

### Prerequisites

Please refer to [prerequisites](/click-to-pay/implement-click-to-pay-issuers/enroll-cards-in-click-to-pay.md#prerequisites).

#### Update consumer details

To update end user details in Click to Pay, use the D1 API [Click to Pay update consumer](/click-to-pay/integrate-the-d1-api/d1-api-summary.md).

D1 forwards the updated data to all relevant Click to Pay directories (if more than one directory exists). This allows the issuer backend to synchronize all directories with a single API call.

All consumer details must be provided in the request, including fields that have not changed:

* First name
* Middle name
* Last name
* Phone number
* Email address
* Language

Optionally, if a billing address is provided, D1 also updates the billing address for each card associated with the consumer.

The sequence diagram below summarizes the behavior:

<figure><img src="/files/TzAVq6thQDncYhYWKzqd" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
If the issuer backend has fully registered the end user details on D1, and the end user is enrolled in Click to Pay, a call to [Update consumer information](/click-to-pay/integrate-the-d1-api/d1-api-reference/outbound-api-from-d1/consumer-api.md#post-notifications-d1-v2-issuers-issuerid-consumers) also automatically propagates the updates to the Click to Pay directory. In that case, you do not need to call **Click to Pay update consumer** separately.
{% endhint %}

#### Update card details

You can also update specific card details stored in Click to Pay by using the D1 API [Click to Pay update card](/click-to-pay/integrate-the-d1-api/d1-api-summary.md).

This API can be used to update the following card attributes:

* Billing address
* Cardholder name (optional – only applicable to Visa)

The sequence diagram below summarizes the behavior:

<figure><img src="/files/9P3gtMowEnPAKuHy0B0f" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
In case of card renewal (new expiration date) or card replacement (new PAN and new expiration date), there is no specific Click to Pay API for this purpose.

In these scenarios, the issuer backend **must** use the appropriate [D1 API](/click-to-pay/integrate-the-d1-api/d1-api-summary.md):

* Replace: if the card has been replaced (both, PAN number and expiration date change).
* Renew V2: only the expiration date changes.

Or

* Renew V1, for customers who are in V1.
  {% endhint %}


---

# 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, and the optional `goal` query parameter:

```
GET https://docs.payments.thalescloud.io/click-to-pay/implement-click-to-pay-issuers/update-click-to-pay-profiles.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
