Getnet DocsGetnet Docs

Criar um pagamento

Este documento se aplica aos seguintes países:

BrasilChileMéxicoPortugalEspanhaUruguai

Este guia orienta você no processamento de uma transação de pagamento completa em uma única etapa usando a API Getnet Web Checkout. O fluxo envolve a captura direta do pagamento sem uma autorização prévia.

Como funciona

Use o pagamento em etapa única quando quiser capturar o pagamento diretamente em uma etapa, sem uma autorização prévia. Características principais:

  • Captura em etapa única — a transação é capturada diretamente; não há uma etapa de autorização separada.
  • Mesmo payment intent — você cria o payment intent pelo endpoint POST /payment-intent, o mesmo usado para os demais métodos.
  • Requisitos de campos regionais — os campos obrigatórios variam por país (moeda, tipo de documento, código do país), e o Uruguai exige o objeto additional_data com as alíquotas de imposto e o código de regulamentação regional para conformidade com o SEP.
  • Configurações opcionais — 3DS, URLs de redirecionamento (success_url / error_url) e expiração do intent (expires_at) podem ser definidos na requisição; quando informadas, as URLs de redirecionamento substituem a configuração técnica do vendedor.

O fluxo envolve o comprador, a página de Checkout e a API Getnet WebCheckout:

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.

Processo de pagamento em etapa única

Esta seção orienta você no processo de criação de uma transação de pagamento em etapa única com a API Getnet Web Checkout. Você aprenderá como capturar o pagamento diretamente em uma etapa.

Endpoint
POST /payment-intent

Campos obrigatórios

CampoTipoDescriçãoExemplo
payment.currencyStringCódigo da moeda.BRL
payment.amountIntegerValor da compra em formato inteiro, em que os 2 últimos dígitos representam os centavos. Para países em que centavos não se aplicam, preencha o valor com 2 zeros à direita.92500
product.quantityintegerQuantidade do produto.10
product.titlestringNome do produto.Toy car
product.valueintegerValor do produto em formato inteiro, em que os 2 últimos dígitos representam os centavos.1200
customer.customer_idStringRecomendamos usar o número do documento do cliente, apenas letras e números, sem caracteres especiais, separadores ou espaços.12345678912
customer.first_nameStringPrimeiro nome do cliente.John
customer.last_nameStringSobrenome do cliente.Doe Smith
customer.nameStringNome completo do cliente.John Doe Smith
customer.emailStringEndereço de e-mail do cliente.customer@email.com.br
customer.document_typeStringTipo de documento usado para identificar o cliente. Consulte a tabela Valores dos Campos para ver os valores aceitos.CPF
customer.document_numberStringNúmero do documento usado para identificar o cliente.12345678912
customer.billing_address.streetStringNome de uma rua.Av. Brasil
customer.billing_address.numberStringNúmero que identifica a posição de um imóvel na rua.1000
customer.billing_address.countryStringCódigo do país. Consulte a tabela Valores dos Campos para ver os valores aceitos.BR
customer.billing_address.postal_codeStringCEP ou código postal.90230060

Campos condicionais (apenas Uruguai)

CampoTipoDescriçãoExemplo
additional_dataObjectDados adicionais para regulamentações regionais e exigências fiscais. Obrigatório para o Uruguai.---
additional_data.ratesArrayAlíquotas de imposto aplicadas à transação.---
additional_data.rates.keyString(Apenas Uruguai). Tipo de imposto ou alíquota aplicada.IVA
additional_data.rates.valueNumber(Apenas Uruguai). Valor do imposto em formato inteiro (centavos)123
additional_data.regional_regulation_codeString(Apenas Uruguai). Código fiscal ou regulatório regional exigido pelas autoridades locais. Usado para envios ao SEP no Uruguai.17934

Campos opcionais

CampoTipoDescriçãoExemplo
configurationsObjectConfigurações adicionais para o payment intent---
configurations.3dsBooleanControla a autenticação 3D Secure.true ou false
configurations.preauthorizationBooleanIndica se o pagamento é uma pré-autorização.true ou false
configurations.card_verificationBooleanIndica se este é um fluxo de verificação de cartão.true ou false
configurations.success_urlStringURL de redirecionamento em caso de pagamento bem-sucedido.https://www.mystore.com/checkout/success
configurations.error_urlStringURL de redirecionamento em caso de erro durante o pagamento.https://www.mystore.com/checkout/error
expires_atStringExpiração do payment intent.3d4h15m

Valores dos Campos

CampoArgentinaBrasilChilePortugalEspanhaMéxicoUruguai
currencyARSBRLCLPEUREURMXNUYU ou USD
document_typeDNICPF, CNPJ ou passportRUTDNI, INE ou passportRFCuyci
countryARBRCHPTESMXUY
key------IVA

Regras de preenchimento dos campos:

  • O campo expires_at aceita um valor de duração (por exemplo, 15m, 2h, 7d ou 1d12h30m). Essa duração é aplicada independentemente do fuso horário do estabelecimento. O timestamp de expiração retornado pela API é sempre formatado em GMT+0 (UTC). Se nenhum valor for informado, o payment intent não expira.
  • Quando success_url e error_url são informados na requisição do payment intent, eles substituem o valor configurado na configuração técnica do vendedor.
  • Uruguai: Vendedores podem criar payment intents em UYU (peso uruguaio) ou USD. Ao pagar em UYU, o objeto additional_data é obrigatório e deve incluir additional_data.rates.key com a chave de alíquota IVA e o regional_regulation_code para conformidade com o SEP.
  • Argentina: card_verification e preauthorization não estão disponíveis para a Argentina.

Exemplo de requisição:

{
  "mode": "instant",
  "order_id": "ORDER_UY_97531",
  "configurations": {
    "3ds": true,
    "preauthorization": false,
    "card_verification": false,
    "success_url": "https://www.mystore.com/checkout/success",
    "error_url": "https://www.mystore.com/checkout/error"
  },
  "payment": {
    "currency": "UYU",
    "amount": 120000
  },
  "product": [
    {
      "product_type": "service",
      "title": "Curso de inglés online",
      "description": "Curso completo de 6 meses",
      "value": 120000,
      "quantity": 1
    }
  ],
  "customer": {
    "customer_id": "12345678912",
    "first_name": "Laura",
    "last_name": "Fernández Rodríguez",
    "name": "Laura Fernández Rodríguez",
    "email": "laura.fernandez@example.com.uy",
    "document_type": "ci",
    "document_number": "45678912",
    "phone_number": "59899123456",
    "gender": "Female",
    "checked_email": true,
    "billing_address": {
      "street": "Av. 18 de Julio",
      "number": "1234",
      "complement": "Apto 601",
      "district": "Centro",
      "city": "Montevideo",
      "state": "Montevideo",
      "country": "UY",
      "postal_code": "11200",
      "reference": "Entre Río Branco y Convención"
    }
  },
  "shipping": {
    "first_name": "Laura",
    "last_name": "Fernández Rodríguez",
    "name": "Laura Fernández Rodríguez",
    "phone_number": "59899123456",
    "shipping_amount": 0,
    "address": {
      "street": "Av. 18 de Julio",
      "number": "1234",
      "complement": "Apto 601",
      "district": "Centro",
      "city": "Montevideo",
      "state": "Montevideo",
      "country": "UY",
      "postal_code": "11200",
      "reference": "Entre Río Branco y Convención"
    }
  },
  "pickup_store": false,
  "shipping_method": "UES",
  "soft_descriptor": "Tienda UY",
  "additional_data": {
    "rates": [
      {
        "key": "IVA",
        "value": 22
      }
    ],
    "regional_regulation_code": ["17934"]
  },
  "expires_at": "1h"
}

Exemplo de resposta 200

{
  "payment_intent_id": "ee0b7dd5-92da-4ef4-ad3b-0ba369ad0efe"
}

Próximos passos

Agora que você criou com sucesso um pagamento em etapa única, pode explorar outros pagamentos da API Getnet Web Checkout: