Pular para o conteúdo principal

Configurar 3DS

3D Secure ou 3DS é um protocolo de autenticação usado para confirmar se o comprador é realmente o portador do cartão de crédito ou débito. O objetivo desse protocolo é prevenir fraudes em transações com cartão não presente (CNP). Quando o 3DS é aprovado, ocorre um liability shift, transferindo a responsabilidade do chargeback por fraude para o emissor.

Atenção

O shift só acontece quando o 3DS é implementado corretamente e a transação segue os critérios exigidos pela bandeira (ex.: autenticação aprovada, tentativa válida mesmo sem suporte do emissor, etc.).

A etapa de configuração concentra-se na coleta e validação dos dados de pagamento do cliente. Na prática, esta etapa verifica a precisão das informações do cartão e fornece os parâmetros essenciais necessários para iniciar a próxima etapa: a autenticação 3D Secure (3DS).

Fazendo Requisição

A chamada deverá ser feita utilizando o método POST.

POST/v1/card_payments/threeds_authentication_setup

Campos da Requisição

AtributoTipoDescriçãoObrigatório
card_numberstringNúmero do cartão, sem espaços ou traçosParcial
card_expiration_datestringData de expiração do cartão, no formato MMyyyy (ex.: 012029)Parcial
card_holder_namestringNome do portador impresso no cartãoParcial
slug_tokenstringUma sequência alfanumérica de 32 caracteres que representa um cartão tokenizado pelo endpoint /v1/tokenize_card. Pode ser usada em vez de card_number, card_expiration_date e card_security_code.Não
slug_stored_cardstringUma sequência alfanumérica de 32 caracteres que representa um cartão armazenado no cofre de cartões pelo endpoint /v1/tokenize_card. Pode ser usada em vez de card_number, card_expiration_date e card_security_code.Não

Exemplo de Requisição - Dados do Cartão

HTTP Request Body - Dados do Cartão
  {
"card_number": "4100000000000000",
"card_expiration_date": "102033",
"card_holder_name": "João da Silva"
}

Exemplo de Requisição - Slug Token

HTTP Request Body - Slug token
  {
"slug_token": "string"
}

Exemplo de Requisição - Slug Stored Card

HTTP Request Body - Slug stored card
  {
"slug_stored_card": "string"
}

Sucesso

Após a chamada, é retornado um JSON com o status 200.

HTTP 200 Response Body - Exemplo
{
"code": "WAITING_3DS_AUTHENTICATION",
"access_token": "kpXVCJ9JhbGciOiJIUzI1NynR5ecCI6IiIsI.LTQ0NzktOGNmMS03MjVmMDIxOTMwZjgiLCJpYXQiOjE3MDg2Mjc1NDQsImlzcyI6IjVkZDgzYmYwMGU0MjNkMTQ5OGRjYmFjYSIsImeyV4cCI5MGQ2IiwiUmVmZXJlbmNlSWQiOiI5NjMzNDFlOC1iNGQ5LTQwNWMtOWY1OS04MDA2NWMzMzk1NjMifQI6MTcwODYzMJqdGkiOiI3MDMxNzc3YS03NWRkTE0NCwiT3JnVW5pdElkIjoiNjQ3NTA0ZmQ2NWM2ZmE0YjkzNm.FYIAdAh_xy49AkBftEkBm0KMhnjy0lU11lQDSlxv0iu",
"device_data_collection_url": "https://centinelapistag.cardinalcommerce.com/V1/Cruise/Collect",
"reference_id": "963341e8-b4d9-405c-9f59-80065c339563",
"request_id": "42C46CD74D1845D698107DAAD84875DF20240222154543979"
}

Erros

Em caso de erros, será retornado um json com o atributo error especificando o motivo de a operação ter sido invalidada.

HTTP 400 Response Body - Exemplo
{
"errors": [
{
"code": "MSG_NOT_SUPPORTED",
"msg": "Not supported"
}
],
"request_token": "EE4F8B5BC25A46B080F11D34B9CFAFFF",
"multiacq_id": "001"
}
HTTP 422 Response Body - Exemplo
{
"errors": [
{
"code": "INVALID_INPUT_CARD_METHOD",
"msg": "request must include only slugToken, slugStoredCard, or card data. Please refer to the documentation."
}
],
"request_token": "7C2E9D3869F34F3CA5CC2C5CFAB4B6E2",
"transaction_status": "REJECTED",
"multiacq_id": "001"
}