# Criar um pagamento

Este documento se aplica aos seguintes países:
Brasil | Chile | México | Portugal | Espanha | Uruguai
---|---|---|---|---|---|

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:

![](https://static-devportal-ux.sensedia-eng.com/Pagonxt/production/documentations/flow-create-payment-wbc-1787834568660-owmqf8ns.png)

## Requisitos

Antes de seguir as etapas, você precisa:

* Configurar seu Web Checkout via [Portal](/pt/web-checkout/first-steps-wbc/configuration-by-portal) ou via [API](/pt/web-checkout/first-steps-wbc/configration-by-api) (dependendo da sua localização).
* Gerar seu token seguindo o documento de [Authentication](/pt/web-checkout/first-steps-wbc/authentication-token-wbc).

## 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**
| Campo | Tipo | Descrição | Exemplo |
|---|---|---|---|
|`payment.currency`| String | Código da moeda. | `BRL`|
|`payment.amount`| Integer | Valor 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.quantity` | integer | Quantidade do produto. | `10`|
| `product.title` | string | Nome do produto. | `Toy car`|
| `product.value` | integer | Valor do produto em formato inteiro, em que os 2 últimos dígitos representam os centavos. | `1200`|
|`customer.customer_id`| String | Recomendamos usar o número do documento do cliente, apenas letras e números, sem caracteres especiais, separadores ou espaços.| `12345678912`  |
|`customer.first_name`| String | Primeiro nome do cliente.| `John`  |
|`customer.last_name`| String | Sobrenome do cliente.| `Doe Smith`  |
|`customer.name`| String | Nome completo do cliente.| `John Doe Smith`  |
|`customer.email`| String | Endereço de e-mail do cliente.| `customer@email.com.br`  |
|`customer.document_type`| String | Tipo de documento usado para identificar o cliente. Consulte a tabela **Valores dos Campos** para ver os valores aceitos. | `CPF`  |
|`customer.document_number`| String | Número do documento usado para identificar o cliente.| `12345678912`  |
|`customer.billing_address.street`| String | Nome de uma rua.| `Av. Brasil`  |
|`customer.billing_address.number`| String | Número que identifica a posição de um imóvel na rua.| `1000`  |
|`customer.billing_address.country`| String | Código do país. Consulte a tabela **Valores dos Campos** para ver os valores aceitos.| `BR` |
|`customer.billing_address.postal_code`| String | CEP ou código postal.| `90230060`  |

**Campos condicionais (apenas Uruguai)**
| Campo | Tipo | Descrição | Exemplo |
|---|---|---|---|
|`additional_data`| Object | Dados adicionais para regulamentações regionais e exigências fiscais. Obrigatório para o Uruguai. | --- |
|`additional_data.rates`| Array | Alíquotas de imposto aplicadas à transação.| --- |
|`additional_data.rates.key`| String | (Apenas Uruguai). Tipo de imposto ou alíquota aplicada. | `IVA`|
|`additional_data.rates.value`| Number | (Apenas Uruguai). Valor do imposto em formato inteiro (centavos)| `123`|
|`additional_data.regional_regulation_code`| String | (Apenas Uruguai). Código fiscal ou regulatório regional exigido pelas autoridades locais. Usado para envios ao SEP no Uruguai. | `17934`|

**Campos opcionais**
| Campo | Tipo | Descrição | Exemplo |
|---|---|---|---|
|`configurations`| Object | Configurações adicionais para o payment intent | --- |
|`configurations.3ds`| Boolean | Controla a autenticação 3D Secure. | `true` ou `false`|
|`configurations.preauthorization`| Boolean | Indica se o pagamento é uma pré-autorização. | `true` ou `false`|
|`configurations.card_verification`| Boolean | Indica se este é um fluxo de verificação de cartão. | `true` ou `false`|
|`configurations.success_url`| String | URL de redirecionamento em caso de pagamento bem-sucedido. |`https://www.mystore.com/checkout/success`|
|`configurations.error_url`| String | URL de redirecionamento em caso de erro durante o pagamento. |`https://www.mystore.com/checkout/error`|
|`expires_at`| String | Expiração do payment intent. | `3d4h15m`|

**Valores dos Campos**
| Campo         | Argentina |       Brasil                | Chile | Portugal |      Espanha              | México | Uruguai         |
|:-------------:|:---------:|:---------------------------:|:-----:|:--------:|:--------------------------:|:------:|:---------------:|
|`currency`     |   `ARS`   |               `BRL`         | `CLP` |  `EUR`   | `EUR`                     |  `MXN` | `UYU` ou  `USD` |
|`document_type`|   `DNI`   | `CPF`, `CNPJ` ou `passport` | `RUT` |          |`DNI`, `INE` ou `passport` |  `RFC` |     `uyci`      |
|`country`      |    `AR`   |             `BR`            |  `CH` |   `PT`   |             `ES`           |  `MX`  |      `UY`       |
|`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:

```json
{
  "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

```json
{
  "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:

* Saiba como [criar um pagamento com pré-autorização](/pt/web-checkout/payment-guides-wbc/payment-preauth-wbc).
* Saiba como [criar um pagamento com verificação de cartão](/pt/web-checkout/payment-guides-wbc/payment-cardverif-wbc).
* Saiba como [criar um pagamento com 3DS](/pt/web-checkout/payment-guides-wbc/payment-3ds-wbc).