Getnet DocsGetnet Docs

Criar um pagamento autenticado com 3DS

This document applies to the following countries:

BrasilChileMéxicoEspanhaUruguai

No Web Checkout da Getnet, o 3D Secure (3DS) é um protocolo adicional de autenticação, usado em pagamentos online com cartão para verificar a identidade do portador do cartão junto ao banco emissor durante o processo de checkout. Quando uma transação é enviada pelo Web Checkout, o banco emissor pode exigir que o cliente conclua uma etapa de autenticação, como uma senha de uso único (OTP), verificação biométrica ou confirmação no aplicativo do banco.

Dependendo da avaliação de risco, a autenticação pode ocorrer por meio de um fluxo frictionless (sem interação do cliente) ou um fluxo de challenge (exigindo verificação do usuário). Esse mecanismo ajuda a reduzir fraudes e aumenta a segurança das transações sem cartão presente.

Para entender as regras de cada país, consulte o documento 3DS Authentication.

Requisitos

Antes de seguir as etapas, você precisa:

  • Configurar seu Web Checkout via Portal ou via API (dependendo da sua localização).
  • Gerar seu token seguindo o documento de Authentication.

Payment intent com 3DS

O fluxo consiste na validação do cartão, tokenização de dados sensíveis e armazenamento seguro.

Após a conclusão desse processo, um webhook contendo o card_id é enviado. Esse identificador representa a referência tokenizada do cartão armazenado. Usando esse identificador, o Merchant pode realizar novas transações por meio do endpoint de autorização da Regional API, informando apenas o card_id na requisição, sem precisar enviar novamente todos os dados do cartão.

O 3DS atua como uma importante barreira de segurança e, por esse motivo, não é recomendável desativá-lo para todos os pagamentos.

Para passar pela autenticação 3DS, estes parâmetros devem ser enviados no payment intent.

Endpoint
POST /payment-intent

Campos obrigatórios

AtributoTipoDescriçãoExemplo
configurationsObjectConjunto de opções de pagamento.—
preauthorizationBooleanIndica se é um pagamento do tipo pré-autorizado.false
card_verificationBooleanIndica se é um pagamento do tipo verificação de cartão.false
3dsBooleanIndica se é um pagamento do tipo 3DS.true

O bloco de código a seguir mostra os campos que devem ser enviados no endpoint do payment intent.

"configurations": {
        "preauthorization": false,
        "card_verification": false,
        "3ds": true
    }

Argentina: card_verification e preauthorization não estão disponíveis para a Argentina.

Entendendo o processo de autenticação 3DS

O emissor do cartão determina dinamicamente o fluxo de autenticação com base na avaliação de risco, na bandeira do cartão e nas capacidades do emissor. Depois que você inicia o enrollment, a API retorna um campo status que determina sua próxima ação.

Trate os três cenários possíveis:

  1. Autenticação direta: o emissor autentica o portador do cartão imediatamente (status: Authenticated ou Attempt).
  2. Challenge necessário: o emissor exige verificação interativa do portador do cartão (status: Pending Challenge). Escolha entre renderizar um template HTML ou realizar um POST manual usando os dados do ACS Direct Form.
  3. Continuação de enrollment pendente: o emissor exige processamento adicional antes de atingir um estado final (status: Pending Enrollment Continue). Essa etapa pode resultar em autenticação ou em um challenge.

Referência rápida: fluxo de decisão

Siga esta lógica de decisão com base no status retornado pela API:

Após o Passo 2 (Iniciar o enrollment):


Etapas de implementação

Passo 1: Obter o access token e tokenizar o cartão

  1. Solicite um access token usando suas credenciais de API.
  2. Tokenize as informações do cartão usando o endpoint de token.

Passo 2: Iniciar o enrollment

Chame o endpoint 3DS - Init Authentication. Inclua o objeto extra_fields com endereço de cobrança, endereço de entrega, detalhes do navegador e informações do cliente para oferecer suporte a uma avaliação de risco precisa.

curl --request POST \
  --url https://api-sbx.globalgetnet.com/dpm/security-gwproxy/v2/enrolments-initial \
  --header 'authorization: Bearer ' \
  --header 'content-type: application/json' \
  --data '{
  "currency": "CLP",
  "md": "NmQyZTQzODAtZDhhMy00Y2NiLTkxMzgtYzI4OTE4MjgxOGE0",
  "term_url": "123",
  "amount": 1,
  "payment_method": {
    "expiration_month": "05",
    "expiration_year": "25",
    "security_code": "282",
    "number_token": "4292b573ea94b257dcb132afe242b4a15c9866d16e2d4d64d8e571c877af0540c3946b8bddaf37c2c75a1810863fc6b0fe0e841ebbc752c1d23ccfb5fdaac3d1"
  },
  "description": "TEST",
  "operation": "CREDIT",
  "extra_fields": {
    "billing_address": {
      "street": "Av. Brasil",
      "number": "1000",
      "complement": "Sala 1",
      "district": "São Geraldo",
      "city": "Porto Alegre",
      "state": "RS",
      "country": "BR",
      "postal_code": "90230060",
      "reference": "Near the hospital"
    },
    "shipping_address": {
      "street": "Av. Brasil",
      "number": "1000",
      "complement": "Sala 1",
      "district": "São Geraldo",
      "city": "Porto Alegre",
      "state": "RS",
      "country": "BR",
      "postal_code": "90230060",
      "reference": "Near the hospital"
    }
  }
}'

Exemplo de resposta (Pending Challenge):

{
  "transaction_id": "84c05897-fbf1-4a91-90e8-d292a0fda1c8",
  "status": "Pending Challenge",
  "protocol": "3DS2.3.1",
  "redirect_html_template": "<html>...</html>",
  "acs_redirect_form": {
    "action_url": "https://3ds-acs.test.modirum.com/mdpayacs/creq;token=368800071.1773147207.lksz3Q5MLGPuP5RsNmoU_8831PDCBLY_ABFB5xq0wtc",
    "method": "POST",
    "creq": "ewogICAgImFjc1RyYW5zSUQiOiAiNjVhMWUxN2MtZWVmYS00NGU1LTgyMDEtMDI4MjM5ZTVmOTA3IiwKICAgICJjaGFsbGVuZ2VXaW5kb3dTaXplIjogIjAzIiwKICAgICJtZXNzYWdlVHlwZSI6ICJDUmVxIiwKICAgICJtZXNzYWdlVmVyc2lvbiI6ICIyLjMuMSIsCiAgICAidGhyZWVEU1NlcnZlclRyYW5zSUQiOiAiZjI0ZmZhMWItMWY5MC01ZjMxLTgwMDAtMDAwMDAyYmY4Yjc3Igp9",
    "threeDSSessionData": "NmQyZTQzODAtZDhhMy00Y2NiLTkxMzgtYzI4OTE4MjgxOGE0"
  }
}

Passo 3: Verificar o status e seguir o cenário apropriado

Status: Authenticated ou Attempt

Extraia os dados de autenticação (xid, eci, cavv, ds_trans_id) e prossiga para Passo 4: Criar o pagamento.

Status: Pending Challenge

Redirecione o cliente para o banco para que ele conclua a autenticação. Escolha um dos métodos de redirecionamento a seguir:

Opção A: template HTML

Extraia e renderize o redirect_html_template diretamente na sua aplicação. O template contém um formulário de envio automático que redireciona o cliente para a página de autenticação do banco.

Exemplo — renderizando o template HTML no lado do cliente:

<!-- In your frontend application -->
<div id="challenge-container"></div>
<script>
// Receive the redirect_html_template from your backend
const redirectHtmlTemplate = response.redirect_html_template;
// Inject the HTML into your page
document.getElementById('challenge-container').innerHTML = redirectHtmlTemplate;
// The template contains a form that will automatically submit and redirect
// the customer to their bank's authentication page
</script>

Exemplo — renderizando o template HTML no lado do servidor:

// Node.js/Express example
app.post('/initiate-3ds', async (req, res) => {
  const enrollmentResponse = await fetch('https://api-sbx.globalgetnet.com/dpm/security-gwproxy/v2/enrolments-initial', {
    // ... request configuration
  });
  const data = await enrollmentResponse.json();
  if (data.status === 'Pending Challenge') {
    // Send the HTML template directly to the browser
    res.send(data.redirect_html_template);
  }
});

Opção B: ACS Direct Form

Use o objeto acs_redirect_form para realizar uma requisição POST manual a partir do navegador do cliente. Esse método é preferível porque evita scripts de terceiros e permite exibir uma UI de carregamento personalizada durante o redirecionamento.

Detalhes necessários do POST:

  • URL: use o valor action_url da resposta.
  • Método: POST
  • Content-Type: application/x-www-form-urlencoded
  • Corpo: inclua creq e threeDSSessionData.

Exemplo — redirecionamento manual via POST:

<div id="loader">Redirecting to secure bank authentication...</div>

<form id="acs-direct-form" method="POST" action="https://3ds-acs.test.modirum.com/mdpayacs/creq;token=368800071.1773147207.lksz3Q5MLGPuP5RsNmoU_8831PDCBLY_ABFB5xq0wtc">
  <input type="hidden" name="creq" value="ewogICAgImFjc1RyYW5zSUQiOiAiNjVhMWUxN2MtZWVmYS00NGU1LTgyMDEtMDI4MjM5ZTVmOTA3IiwKICAgICJjaGFsbGVuZ2VXaW5kb3dTaXplIjogIjAzIiwKICAgICJtZXNzYWdlVHlwZSI6ICJDUmVxIiwKICAgICJtZXNzYWdlVmVyc2lvbiI6ICIyLjMuMSIsCiAgICAidGhyZWVEU1NlcnZlclRyYW5zSUQiOiAiZjI0ZmZhMWItMWY5MC01ZjMxLTgwMDAtMDAwMDAyYmY4Yjc3Igp9" />
  <input type="hidden" name="threeDSSessionData" value="NmQyZTQzODAtZDhhMy00Y2NiLTkxMzgtYzI4OTE4MjgxOGE0" />
</form>

<script>
  // Programmatically submit the form
  document.getElementById('acs-direct-form').submit();
</script>

Status: Pending Enrollment Continue

Prossiga para Passo 3C: Continuar o enrollment antes de tratar qualquer status subsequente.

Passo 3B: Validar autenticação

Depois que o cliente concluir o challenge e o navegador redirecionar de volta para seu site, capture o token CRES do callback e chame o endpoint 3DS - Validate Authentication. Envie o token junto com o transaction_id e o xid da resposta de enrollment.

Exemplo de requisição:

curl --request POST \
  --url https://api-sbx.globalgetnet.com/dpm/security-gwproxy/v2/validations \
  --header 'authorization: Bearer <your-token>' \
  --header 'content-type: application/json' \
  --data '{
  "transaction_id": "502040201060404060506040",
  "xid": "VDdnR0kyU1g4ZXlxMkhWTlp0VnA=",
  "token": "<cres-token-from-challenge-callback>"
}'

Passo 3C: Continuar o enrollment

Se o enrollment inicial retornar Pending Enrollment Continue, chame o endpoint 3DS - Continue Enrollment com o transaction_id do Passo 2. A resposta segue a mesma lógica de status do enrollment inicial e pode retornar Pending Challenge ou Authenticated.

Se a resposta retornar Pending Challenge, redirecione o cliente usando a Opção A ou a Opção B, depois chame Passo 3B: Validar autenticação.

Exemplo de resposta (status Pending Challenge):

{
  "transaction_id": "84c05897-fbf1-4a91-90e8-d292a0fda1c8",
  "status": "Pending Challenge",
  "protocol": "3DS2.3.1",
  "acs_redirect_form": {
    "action_url": "https://3ds-acs.test.modirum.com/mdpayacs/creq;token=368800071.1773147207.lksz3Q5MLGPuP5RsNmoU_8831PDCBLY_ABFB5xq0wtc",
    "method": "POST",
    "creq": "ewogICAgImFjc1RyYW5zSUQiOiAiNjVhMWUxN2MtZWVmYS00NGU1LTgyMDEtMDI4MjM5ZTVmOTA3IiwKICAgICJjaGFsbGVuZ2VXaW5kb3dTaXplIjogIjAzIiwKICAgICJtZXNzYWdlVHlwZSI6ICJDUmVxIiwKICAgICJtZXNzYWdlVmVyc2lvbiI6ICIyLjMuMSIsCiAgICAidGhyZWVEU1NlcnZlclRyYW5zSUQiOiAiZjI0ZmZhMWItMWY5MC01ZjMxLTgwMDAtMDAwMDAyYmY4Yjc3Igp9",
    "threeDSSessionData": "NmQyZTQzODAtZDhhMy00Y2NiLTkxMzgtYzI4OTE4MjgxOGE0"
  }
}

Passo 4: Criar o pagamento

Após a conclusão da autenticação (Authenticated ou Attempt), chame o endpoint Create - Authorize. Inclua os dados de autenticação (xid, eci, cavv, ds_trans_id) no objeto payment.

Requisitos específicos por país: alguns mercados podem exigir campos obrigatórios adicionais. No Uruguai, você deve incluir um array rates com a chave iva. Envie regional_regulation_code somente quando a transação for elegível para um benefício fiscal ou regulação regional. Cada entrada recebe um code (17934 ou 19210) e, opcionalmente, um invoice com até 9 caracteres alfanuméricos. Quando você omite o invoice, a Getnet o deriva do seu order_id. Consulte a referência Taxes and Regulations para mais informações.

Exemplo de requisição:

curl --request POST \
  --url https://api-sbx.globalgetnet.com/dpm/payments-gwproxy/v2/payments \
  --header 'authorization: Bearer '\
  --header 'content-type: application/json' \
  --header 'x-seller-id: 54f88e68-7764-4e87-8830-756b1e2c02f8' \
  --data '{
    "order_id": "123order",
    "data": {
      "amount": 118708,
      "currency": "CLP",
      "payment": {
        "payment_method": "CREDIT_AUTHORIZATION",
        "xid": "VDdnR0kyU1g4ZXlxMkhWTlp0VnA=",
        "eci": "24",
        "ds_trans_id": "f7e5f76e-6388-43e6-b8cd-49b251a1f89c",
        "card": { ... }
      }
    }
  }'

Integração com a Europa

O fluxo 3DS para o tenant santander com country: ES segue o mesmo ciclo de vida do fluxo genérico, mas com comportamentos específicos em cada etapa. Esta seção documenta o fluxo linear completo.

Identificadores principais

CampoValor
Tenantsantander
PaísES
MoedaEUR
Protocolo 3DS2.1.0
Provedor ACSRedsys (sis-d.redsys.es)

Cabeçalhos obrigatórios

Todas as requisições do fluxo da Espanha exigem os seguintes cabeçalhos adicionais:

CabeçalhoValor
x-seller-idUUID do seu seller
tenantsantander
countryES
x-operation-typecard

Passo 1: Iniciar o enrollment

Chame POST /v2/enrolments-initial com os cabeçalhos específicos da Espanha. Inclua o objeto extra_fields com dados do cliente, cobrança, entrega e navegador.

curl --request POST \
  --url https://api-sbx.globalgetnet.com/dpm/security-gwproxy/v2/enrolments-initial \
  --header 'accept: application/json' \
  --header 'authorization: Bearer <your-token>' \
  --header 'x-seller-id: <your-seller-id>' \
  --header 'tenant: santander' \
  --header 'country: ES' \
  --header 'content-type: application/json' \
  --header 'x-operation-type: card' \
  --data '{
    "currency": "EUR",
    "amount": 400,
    "term_url": "https://your-domain.com/3ds/callback",
    "payment_method": {
      "number": "4548814479727229",
      "security_code": "123",
      "expiration_month": "12",
      "expiration_year": "49",
      "payment_method": "CREDIT",
      "credentials_on_file_type": "ONE_CLICK"
    },
    "description": "3ds unified",
    "extra_fields": {
      "customer": {
        "email": "[email protected]",
        "document_number": "12345678Z",
        "document_type": "dni",
        "name": "Sra. Carmen López",
        "phone_number": "34612345678"
      },
      "billing_address": {
        "street": "Calle Gran Vía",
        "number": "28",
        "complement": "Piso 3, Puerta A",
        "district": "Centro",
        "city": "Madrid",
        "state": "Madrid",
        "country": "ES",
        "postal_code": "28013",
        "reference": "Near Callao metro station"
      },
      "shipping_address": {
        "street": "Calle Gran Vía",
        "number": "28",
        "complement": "Piso 3, Puerta A",
        "district": "Centro",
        "city": "Madrid",
        "state": "Madrid",
        "country": "ES",
        "postal_code": "28013",
        "reference": "Near Callao metro station"
      },
      "browser_details": {
        "ip": "1.1.1.1",
        "accept_header": "application/json,application/x-www-form-urlencoded",
        "java_enabled": "false",
        "java_script_enabled": "true",
        "language": "es",
        "color_depth": "24",
        "screen_height": "600",
        "screen_width": "800",
        "time_zone": "52",
        "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
      }
    }
  }'

Exemplo de resposta (Attempt):

{
  "transaction_id": "526618589740",
  "protocol": "2.1.0",
  "status": "Attempt",
  "eci": 0,
  "acs_redirect_form": {
    "method": "POST",
    "creq": "11cf1933-8798-4280-bd92-e8120fe1944e"
  }
}

Importante — status Attempt na Espanha: sempre prossiga para o Passo 2 (Continuar o enrollment) ao receber Attempt. Não trate esse status como autenticação concluída. A etapa de continuação pode revelar um estado Pending Challenge ou Authenticated. Armazene o transaction_id; você precisará dele em todas as etapas seguintes.

O valor de acs_redirect_form.creq nesta resposta é uma referência de transação do servidor, usada internamente para a continuidade do fluxo. Não o utilize para redirecionar o cliente — os dados reais de redirecionamento do ACS são retornados na resposta de continuação do enrollment.

A resposta também pode retornar Pending Enrollment Continue ou Authenticated diretamente.

Passo 2: Continuar o enrollment

Envie o transaction_id do Passo 1 para POST /v2/enrolments-continue. Inclua os mesmos cabeçalhos específicos da Espanha. A resposta segue a mesma lógica de status do fluxo genérico e pode retornar Pending Challenge ou Authenticated.

curl --request POST \
  --url https://api-sbx.globalgetnet.com/dpm/security-gwproxy/v2/enrolments-continue \
  --header 'accept: application/json' \
  --header 'authorization: Bearer <your-token>' \
  --header 'x-seller-id: <your-seller-id>' \
  --header 'tenant: santander' \
  --header 'country: ES' \
  --header 'content-type: application/json' \
  --data '{
    "transaction_id": "526618589740"
  }'

Exemplo de resposta (Pending Challenge):

{
  "status": "Pending Challenge",
  "redirect_html_template": "<html lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\">...</html>",
  "eci": 0,
  "acs_redirect_form": {
    "action_url": "https://sis-d.redsys.es/sis-simulador-web/authenticationRequest.jsp",
    "method": "POST",
    "creq": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjExY2YxOTMzLTg3OTgtNDI4MC1iZDkyLWU4MTIwZmUxOTQ0ZSIsImFjc1RyYW5zSUQiOiI1Zjg1YjVmZi04Y2Q5LTQwOWQtOWZlOS1iNjMwZDllMzYwMjYiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0"
  }
}

Redirecione o cliente para o ACS usando um dos métodos a seguir:

Opção A: template HTML — injete o redirect_html_template na sua página. O template é um formulário de envio automático que redireciona o cliente para a página de challenge da Redsys automaticamente.

Opção B: ACS Direct Form — construa um formulário POST usando os dados de acs_redirect_form. O formulário exige apenas o campo creq — não inclua threeDSSessionData.

<div id="loader">Redirecting to Redsys secure authentication...</div>

<form id="acs-direct-form" method="POST" action="https://sis-d.redsys.es/sis-simulador-web/authenticationRequest.jsp" enctype="application/x-www-form-urlencoded">
  <input type="hidden" name="creq" value="eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjExY2YxOTMzLTg3OTgtNDI4MC1iZDkyLWU4MTIwZmUxOTQ0ZSIsImFjc1RyYW5zSUQiOiI1Zjg1YjVmZi04Y2Q5LTQwOWQtOWZlOS1iNjMwZDllMzYwMjYiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0" />
</form>

<script>
  document.getElementById('acs-direct-form').submit();
</script>

Principal diferença em relação ao fluxo genérico: o formulário ACS exige apenas creq. O fluxo genérico exige tanto creq quanto threeDSSessionData.

Passo 3: Validar autenticação

Depois que o cliente concluir o challenge, o ACS redireciona de volta para o seu term_url com um token CRES. Capture esse token e chame POST /v2/validations. Envie o CRES no campo token.

curl --request POST \
  --url https://api-sbx.globalgetnet.com/dpm/security-gwproxy/v2/validations \
  --header 'accept: application/json' \
  --header 'authorization: Bearer <your-token>' \
  --header 'x-seller-id: <your-seller-id>' \
  --header 'tenant: santander' \
  --header 'country: ES' \
  --header 'content-type: application/json' \
  --header 'x-operation-type: card' \
  --data '{
    "token": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImU5MGVhYzlmLWM2OWYtNDAyNS05MzE2LTQ4ZGI5YzcwNzY0MyIsImFjc1RyYW5zSUQiOiJlODY0NzNlYS1iMGRmLTRkNzktOTdmZi0xN2E1NmY1YWM1MDAiLCJtZXNzYWdlVHlwZSI6IkNSZXMiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwidHJhbnNTdGF0dXMiOiJZIn0="
  }'

Exemplo de resposta (Authenticated):

{
  "tx_id": "e86473ea-b0df-4d79-97ff-17a56f5ac500",
  "status": "Authenticated",
  "ds_trans_id": "e90eac9f-c69f-4025-9316-48db9c707643"
}

Observação: a resposta de validação retorna tx_id, status e ds_trans_id. Ela não inclui todos os campos presentes na resposta genérica (como xid ou cavv), mas os valores de status seguem a mesma convenção.

Passo 4: Criar o pagamento

Quando o fluxo 3DS atingir o status Authenticated, chame POST /v2/payments para cobrar o cartão.

Requisitos específicos da Espanha:

  1. Defina order_id como o transaction_id retornado pelo processo de enrollment 3DS — não use um ID de pedido personalizado.
  2. Inclua o campo cres no objeto payment. Para transações na Espanha (ES), apenas cres é necessário para a autorização 3DS — não inclua xid, cavv ou eci.
curl --request POST \
  --url https://api-sbx.globalgetnet.com/dpm/payments-gwproxy/v2/payments \
  --header 'content-type: application/json' \
  --header 'authorization: Bearer <your-token>' \
  --header 'x-seller-id: <your-seller-id>' \
  --header 'country: ES' \
  --header 'tenant: santander' \
  --data '{
    "idempotency_key": "91d5f349-8256-4929-a468-7a2c97e68978",
    "request_id": "cf779372-082f-4d13-ad74-35ad0b93d9c5",
    "order_id": "526618589740",
    "data": {
      "amount": 400,
      "currency": "EUR",
      "customer_id": "913f3f9d-7060-4639-af6d-331b658668d4",
      "payment": {
        "payment_id": "6456ef10-55ce-415f-aa82-39336a5d572d",
        "payment_method": "CREDIT",
        "save_card_data": false,
        "transaction_type": "FULL",
        "number_installments": 1,
        "dynamic_mcc": "1234",
        "credentials_on_file_type": "ONE_CLICK",
        "cres": "<cres-token-from-redsys-callback>",
        "card": {
          "number": "4548810000000003",
          "expiration_month": "12",
          "expiration_year": "49",
          "cardholder_name": "Sra. Carmen López",
          "security_code": "123"
        }
      },
      "additional_data": {
        "order": {
          "items": [
            {
              "name": "Producto Electrónico",
              "quantity": 1,
              "sku": "SKU-ES-001",
              "price": 400.00
            }
          ]
        },
        "customer": {
          "email": "[email protected]",
          "document_number": "12345678Z",
          "document_type": "dni",
          "name": "Sra. Carmen López",
          "phone_number": "34612345678",
          "billing_address": {
            "street": "Calle Gran Vía",
            "number": "28",
            "complement": "Piso 3, Puerta A",
            "district": "Centro",
            "city": "Madrid",
            "state": "Madrid",
            "country": "ES",
            "postal_code": "28013",
            "reference": "Near Callao metro station"
          },
          "shippings": {
            "address": {
              "street": "Calle Gran Vía",
              "number": "28",
              "complement": "Piso 3, Puerta A",
              "district": "Centro",
              "city": "Madrid",
              "state": "Madrid",
              "country": "ES",
              "postal_code": "28013",
              "reference": "Near Callao metro station"
            },
            "name": "Sra. Carmen López",
            "phone_number": "34612345678"
          }
        }
      }
    }
  }'

Veja também

Você pode explorar mais pagamentos da API Getnet Web Checkout: