Servicio de creación de transacciones
Esta llamada es necesaria para obtener la URL del método 3DS correspondiente a la tarjeta y la versión más reciente del 3DS admitida, además de crear una transacción en el servidor 3DS que se utilizará en los pasos siguientes del flujo.
Importante: El valor del campo message_version devuelto en la respuesta debe usarse en el paso CREQ (para transacciones de desafío).
Detalles de la llamada#
- Recurso:
/v2/authentication - Método HTTP:
POST - Formato de la solicitud:
JSON - Formato la respuesta:
JSON - Parâmetros de cabeçalho:
| Parámetro | Descrición | Formato | Obligatorio |
|---|---|---|---|
merchant_id | Código de la tienda en el servidor 3DS. Los códigos de producción y certificación serán diferentes. | < 15 AN | SI |
merchant_key | clave de autentificación de la tienda en el 3DS Server. Las claves de producción y certificación serán diferentes. | < 80 AN | SI |
Content-Type | Debe ser enviado con el valor application/json. | = 15 AN | SI |
Authorization | Debe ser enviada la firma de autentificación de la tienda en el formato Bearer {assinatura}. Ejemplo: Bearer JHVGytfdgauygdauiw78264284527852897hagdg. | < 2000 AN | COND.* |
carat_merchant_id | El código de la tienda Carat debe enviarse solo si el campo token se envía en la solicitud | < 15 AN | COND. |
carat_merchant_key | La clave de autenticación de la tienda Carat debe enviarse solo si el campo token se envía en la solicitud | < 80 AN | COND. |
* Observación: Por razones de seguridad, para realizar la autentificación de la transacción, se recomienda informar el valor del campo
Authorization.
Si la tienda ha registrado su clave pública con el Portal Carat, este campo es obligatorio.Para más información sobre la futura v3, consulta Quick Start.
Autorizadores disponibles#
| ID | Nome |
|---|---|
1 | Visa |
2 | Mastercard |
41 | Elo |
3 | Amex |
Generación de la firma#
Para generar el valor que se enviará en el header Authorization, es necesario:
- Crear las claves pública y privada
- Consulte la página Autentificación con firma, sección Crear las claves pública y privada.
- Envíe sólo la clave pública a nuestro equipo de soporte, que asociará internamente esta clave al registro de su tienda.
- Siga las instrucciones de generación de firmas descritas en la página Autentificación con firma, sección Algoritmo de firma, a excepción de la subsección Segunda parte (payload), que será diferente en este caso - ver más detalles a continuación.
Payload#
Es posible generar la firma utilizando 3 payloads diferentes:
- El payload usando tarjeta para esta funcionalidad debe tener el siguiente formato:
- El payload usando token para esta funcionalidad debe tener el siguiente formato:
- [Futura v3] El payload usando tarjeta encriptada para esta funcionalidad debe tener el siguiente formato:
Payload Base64:
Composición del payload#
| Parámetro | Descrición | Formato | Obligatorio |
|---|---|---|---|
merchant_id | Código de la tienda en el Portal Carat. | = 15 AN | SI |
merchant_key | Clave de autentificación de la tienda en el Portal Carat. | < 80 AN | SI |
cartao | Número de tarjeta del comprador (PAN), el campo tarjeta o token siempre debe enviarse en la carga útil. | < 19 AN | COND |
token | HASH de una tarjeta almacenada en Carat, el campo tarjeta o token siempre debe enviarse en la carga útil | = 88 AN | COND |
timestamp | Representación en milisegundos del momento de generación de la firma. Destacando que el campo timestamp tiene un límite de validez de 10 minutos. | < 13 N | SI |
Ejemplos#
Abajo estan algunos ejemplos de llamada al servicio de creación de transacciones utilizando la herramienta cURL.
Solicitud con número de tarjeta:
Para usar este ejemplo, no olvide definir la variable {{url}} con el valor
esitef-homologacao.softwareexpress.com.br
Respuesta:
Solicitud con token:
Para usar este ejemplo, no olvide definir la variable {{url}} con el valor
esitef-homologacao.softwareexpress.com.br
Respuesta:
[Futura v3] olicitud con número de tarjeta encriptado:
Para usar este ejemplo, no olvide definir la variable {{url}} con el valor
esitef-homologacao.softwareexpress.com.br
Respuesta:
Errores HTTP 400#
Requisición con número de tarjeta fuera del rango de tarjetas soportadas (código de retorno de error 305 y status INV):
Otras entradas inválidas también resultarán en el status INV.
Respuesta código de retorno de error 305 y status INV:
Respuesta a un error durante la comunicación con DS - Status ERR
Respuesta para cuando DS retorna un mensaje de error - Status ERM
Parámetros de solicitud#
En la tabla siguiente se describen los parámetros de solicitud del servicio de creación de transacciones:
| Parámetro | Descrición | Formato | Obligatorio |
|---|---|---|---|
brand_id | ID da la tarjeta. más información. | = 4 N | SI |
| cardholder.acct | |||
number | Número de tarjeta del comprador, el campo encrypted_number, number o token siempre debe enviarse en la solicitud | < 19 N | COND |
token | HASH de una tarjeta almacenada en Carat, siempre se debe enviar el campo encrypted_number, number o token en la solicitud | = 88 AN | COND |
encrypted_number | [v3] Número encriptado de tarjeta del comprador, siempre se debe enviar el campo encrypted_number, number o token en la solicitud | COND | |
| message | |||
version | Versión del mensaje 3DS: 2.1.0 ou 2.2.0. | < 8 AN | NO |
Parámetros de respuesta#
En caso de éxito, el código de respuesta HTTP será 201. Cualquier otro código debe ser interpretado como un error. En la tabla siguiente se describen los parámetros de respuesta del servicio de creación de transacciones:
| Parámetro | Descrición | Formato |
|---|---|---|
three_ds_method_url | URL do frame invisible que se mostrará en el navegador del comprador | < 256 AN |
device_channel | Canal del dispositivo. Saiba mais. | < 2 N |
message_version | Versión de transacción (esta versión debe usarse en la solicitud de CRes) | < 8 AN |
| three_ds_server | ||
trans_id | ID de la transacción 3DS Server | < 8 AN |
status | Status no 3DS Server. más información. | = 3 AN |
| acs.protocol_version | ||
start | Versión más antigua del protocolo 3DS soportada por ACS | < 8 AN |
end | Versión más reciente del protocolo 3DS soportada por ACS | < 8 AN |
| ds.protocol_version | ||
start | Versão mais antiga de protocolo 3DS suportada pelo DS | < 8 AN |
end | Versão mais recente de protocolo 3DS suportada pelo DS | < 8 AN |
| error | ||
code | Código de error. más información. | < 3 N |
component | Indica cual componente identificou el error.
| = 1 AN |
description | Descripción del error | < 2048 AN |
detail | Detalles del error | < 28 AN |