> 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/xpay-enablement/es/preparacion-de-datos/personalizacion-de-google-pay.md).

# Personalización de Google Pay

El TSH es totalmente capaz de personalizar una aplicación EMV para la solución Google Pay. Aquí está el conjunto de datos requeridos por el TSP en la operación 'submitTokenData'.

{% hint style="info" %}
**Nota1**:

El nombre del elemento de datos no distingue mayúsculas de minúsculas.\
Por ejemplo, DEK\_KCV y dek\_kcv son equivalentes
{% endhint %}

{% hint style="info" %}
**Nota2**:

Algunos elementos de datos pueden añadirse o eliminarse según la configuración del proyecto
{% endhint %}

### Elementos de datos comunes de PURE y DISCOVER

| Nombre               | Formato            | Longitud | Descripción                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Ejemplo                                                                                                               |
| -------------------- | ------------------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| etiqueta\_kek        | Cadena ASCII       | máx 64   | Etiqueta de la clave utilizada para el cifrado de las claves de pago. El valor se define durante la ceremonia de claves.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | "G062C.TEST.SGKEK.TKSUK.01"                                                                                           |
| kek\_kcv             | Cadena hexadecimal | 6        | <p>KCV de la clave utilizada para el cifrado de las claves de pago.<br>El KCV de la clave KEK se calcula cifrando 8 bytes de 00h (para 3DES) usando el modo ECB o usando CMAC sobre 16 bytes de 00h (para AES).</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | "E95500"                                                                                                              |
| etiqueta\_dek        | Cadena ASCII       | máx 64   | Etiqueta de la clave utilizada para el cifrado de los Datos de Track2 ("track2\_data"). El valor se define durante la ceremonia de claves.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | "G062C.TEST.SGDEK.MKDATA.01"                                                                                          |
| dek\_kcv             | Cadena hexadecimal | 6        | <p>KCV de la clave utilizada para el cifrado de los datos de track2.<br>El KCV se calcula cifrando 8 bytes de 00h (para 3DES) o 16 bytes de 01h (para AES) con la clave DEK usando el modo ECB.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | "50FE57"                                                                                                              |
| track2\_data         | Cadena hexadecimal | máx 64   | <p>Datos equivalentes de Pista 2 (la longitud máxima es 19 bytes)<br>El formato en claro es:<br></p><ul><li>PAN del token hasta 19 dígitos: 'ppppppppppppppppppp'</li><li>'D'</li><li>Fecha de caducidad: 'aamm'</li><li>Código de servicio: 'sss'</li><li>(opcional) Datos discrecionales (dependiendo de la longitud del PAN)</li><li>'F' (si es necesario para asegurar el byte completo)<br><br>track2\_data se rellena con 80h + 00h..00h para alcanzar el tamaño de bloque del algoritmo de cifrado (relleno ISO7816-4)<br><br>track2\_data se cifra bajo la clave DEK usando el modo CBC.<br>El algoritmo de cifrado se define durante la configuración del proyecto.</li></ul> | "FAB7FF4EFE1989AC25EBBEC2ED72378BDA79D244B89F7F25"                                                                    |
| payment\_keys        | Cadena             | -        | Ver formato más abajo.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | -                                                                                                                     |
| psn                  | Cadena hexadecimal | 2        | Número de secuencia del PAN para personalizar en la aplicación.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | "01"                                                                                                                  |
| par                  | Bytes ASCII        | 58       | Referencia de la cuenta de pago.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | <p>"323352305041594D454E544143434F554E545245464552454E43455858"<br>que representa "23R0PAYMENTACCOUNTREFERENCEXX"</p> |
| app\_preferred\_name | Bytes ASCII        | max 16   | Nombre preferido de la aplicación                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | <p>"4465626974"<br>que representa "Debit"</p>                                                                         |

### Elementos de datos adicionales de PURE

| Nombre       | Formato            | Longitud | Descripción                                   | Ejemplo |
| ------------ | ------------------ | -------- | --------------------------------------------- | ------- |
| cmk\_ac\_dki | Cadena hexadecimal | 2        | DKI de la clave de Criptograma de Aplicación. | "01"    |
| cmk\_rp\_dki | Cadena hexadecimal | 2        | DKI de la clave de Pago Remoto.               | "02"    |

### Elementos de datos adicionales de DISCOVER

| Nombre         | Formato            | Longitud | Descripción                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Ejemplo                                            |
| -------------- | ------------------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
| track1\_data   | Cadena hexadecimal | máx 64   | <p>Datos de Pista 1<br><br>Una vez descifrados, el formato son bytes ASCII. Una vez decodificado, el formato es:</p><ul><li>'B'</li><li>PAN del token hasta 19 dígitos: 'ppppppppppppppppppp'</li><li>'^'</li><li>Nombre, de 2 a 26 caracteres (incluyendo separadores, cuando proceda, entre apellido, nombre, etc.)</li><li>'^'</li><li>Fecha de expiración: 'aamm' o '^'</li><li>Código de servicio: 'sss' o '^'</li><li>(opcional) Datos discrecionales (dependiendo de la longitud del PAN)</li></ul><p><br>track1\_data se rellena con 80h + 00h..00h para alcanzar el tamaño de bloque del algoritmo de cifrado (relleno ISO7816-4)<br><br>track1\_data se cifra con la clave DEK usando el modo CBC.<br>El algoritmo de cifrado se define durante la configuración del proyecto.</p> | "FAB7FF4EFE1989AC25EBBEC2ED72378BDA79D244B89F7F25" |
| cmk\_emv\_dki  | Cadena hexadecimal | 2        | DKI de la clave EMV.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | "01"                                               |
| cmk\_cavv\_dki | Cadena hexadecimal | 2        | DKI de la clave CAVV.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | "02"                                               |

### formato de payment\_keys

payment\_keys es la representación en cadena de un arreglo JSON como se define a continuación:

```json
[
  objeto1,
  objeto2,
  ...
]
```

{% hint style="info" %}
**Nota3**:\
El número máximo de SUKs establecidos (es decir, referidos como objeto arriba) es 40.
{% endhint %}

{% hint style="info" %}
**Nota4**:\
Para SUKs AES, el algoritmo de cifrado será AES-KW según RFC 3394 y el algoritmo KCV será CMAC sobre 16 bytes de 00h según RFC4493.\
Para SUKs 3DES, el algoritmo de cifrado será 3DES-ECB y el algoritmo KCV se calculará según EMV-CPS, es decir, cifrando 8 bytes de 00h con la clave relacionada en modo ECB.\
En ambos casos, los 3 bytes de orden superior se usarán como KCV.
{% endhint %}

#### formato payment\_keys de PURE

Cada objeto del arreglo definido arriba es un objeto JSON como se define a continuación:

| nombre del parámetro JSON | M/O/C | descripción                                                                       |
| ------------------------- | ----- | --------------------------------------------------------------------------------- |
| acKey                     | M     | SUK de criptograma de aplicación encriptado con la clave KEK                      |
| acKeyKcv                  | M     | KCV del SUK de criptograma de aplicación                                          |
| rpKey                     | O     | SUK de pago remoto encriptado con la clave KEK                                    |
| rpKeyKcv                  | C     | <p>KCV del SUK de pago remoto<br>Deberá proporcionarse si rpKey está presente</p> |
| lcKey                     | M     | SUK de generación de sello CDCVM local encriptado con la clave KEK                |
| lcKeyKcv                  | M     | KCV del SUK de generación de sello CDCVM local                                    |
| atc                       | M     | Contador de transacciones de la aplicación                                        |

Ejemplo:

```json
{
  "acKey": "2C2ECFF7A1578049B2A40EA861966CFC",
  "acKeyKcv": "AB33DF",
  "rpKey": "765D07ABCA8B2F1A90E69D6B82CE8786",
  "rpKeyKcv": "24AA55",
  "lcKey": "EBFCD0659B5109FA0316B44BF12E78C1",
  "lcKeyKcv": "E1BCA2",
  "atc": "0001"
}
```

#### formato payment\_keys de DISCOVER

Cada objeto del arreglo definido arriba es un objeto JSON como se define a continuación:

| nombre del parámetro JSON | M/O/C | descripción                                                                                   |
| ------------------------- | ----- | --------------------------------------------------------------------------------------------- |
| emvKey                    | M     | SUK de criptograma de aplicación EMV encriptado con la clave KEK                              |
| emvKeyKcv                 | M     | KCV del SUK de criptograma de aplicación EMV                                                  |
| cavvKey                   | O     | SUK del Valor de Verificación de Autenticación del Cliente (CAVV) encriptado con la clave KEK |
| cavvKeyKcv                | C     | <p>KCV del SUK CAVV<br>Deberá proporcionarse si cavvKey está presente</p>                     |
| msKey                     | O     | SUK de banda magnética encriptado con la clave KEK                                            |
| msKeyKcv                  | C     | <p>KCV del SUK de banda magnética<br>Deberá proporcionarse si msKey está presente</p>         |
| atc                       | M     | Contador de transacciones de la aplicación                                                    |

Ejemplo:

```json
{
  "emvKey": "2C2ECFF7A1578049B2A40EA861966CFC",
  "emvKeyKcv": "AB33DF",
  "cavvKey": "765D07ABCA8B2F1A90E69D6B82CE8786",
  "cavvKeyKcv": "24AA55",
  "msKey": "EBFCD0659B5109FA0316B44BF12E78C1",
  "msKeyKcv": "E1BCA2",
  "atc": "0001"
}
```

### Elementos de datos CPACE Girocard

| Nombre      | Formato            | Longitud | Descripción                                                                                            | Ejemplo                                 |
| ----------- | ------------------ | -------- | ------------------------------------------------------------------------------------------------------ | --------------------------------------- |
| type        | Cadena             | máx 64   | <p>Tipo de personalización CPACE.<br>El valor deberá ser "Girocard".</p>                               | "Girocard"                              |
| profile     | Cadena Base64      | -        | Perfil de token según la especificación Perso FF                                                       | "ANcB1wLXAA8AhAEBAHFl+OnQaqq2...Fwkf6n" |
| diversifier | Cadena hexadecimal | 32       | Valor diversificador de 16 bytes usado como datos de derivación para la generación de claves de sesión | "F5CFEA0C7C17EE5275566A33DAA1DFA9"      |


---

# 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/xpay-enablement/es/preparacion-de-datos/personalizacion-de-google-pay.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.
