# Create a Payment

This document applies to the following countries:
Brazil | Chile | Mexico | Portugal | Spain | Uruguay
---|---|---|---|---|---|

This guide walks you through processing a complete single-step payment transaction using the Getnet Web Checkout API. The flow involves direct capturing the payment **without** a previous authorization.

## How it works

Use the single-step payment when you want to capture the payment directly in one step, **without** a previous authorization. Key characteristics:

- **Single-step capture** — the transaction is captured directly; there is no separate authorization step.
- **Same payment intent** — you create the payment intent through the `POST /payment-intent` endpoint, the same one used for the other methods.
- **Regional field requirements** — required fields vary by country (currency, document type, country code), and Uruguay requires the `additional_data` object with tax rates and the regional regulation code for SEP compliance.
- **Optional configurations** — 3DS, redirect URLs (`success_url` / `error_url`), and intent expiration (`expires_at`) can be set in the request; when provided, the redirect URLs override the seller's technical configuration.

The flow involves the buyer, the Checkout page, and the Getnet WebCheckout API:

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

## Before you start

Before following the steps, you need to:

* Configuring your WebChekout by [Portal](/en/web-checkout/first-steps-wbc/configuration-by-portal) or by [API](/en/web-checkout/first-steps-wbc/configration-by-api) (depending on you location).
* Generate your token following the [Authentication](/en/web-checkout/first-steps-wbc/authentication-token-wbc) document.

## Single-Step Payment Process

This section guides you through the process of creating a single-step payment transaction with the Getnet Web Checkout API. You'll learn how to capture payment directly in one step.

Endpoint|
---|
`POST /payment-intent`|

**Required fields**
| Field | Type | Description | Example |
|---|---|---|---|
|`payment.currency`| String | Currency code. | `BRL`|
|`payment.amount`| Integer | Purchase amount in integer format, where the last 2 digits represent the cents. For countries where cents do not apply, fill in the amount with 2 zeros to the right. |`92500`|
| `product.quantity` | integer | Quantity of the product. | `10`|
| `product.title` | string | Product name. | `Toy car`|
| `product.value` | integer | Product value in integer format, where the last 2 digits represent the cents. | `1200`|
|`customer.customer_id`| String | Recommend using the customer's document number, only letters and numbers, without any special characters, separators or spaces.| `12345678912`  |
|`customer.first_name`| String | Customer's first name.| `John`  |
|`customer.last_name`| String | Customer's last name.| `Doe Smith`  |
|`customer.name`| String | Customer's full name.| `John Doe Smith`  |
|`customer.email`| String | Customer's email address.| `customer@email.com.br`  |
|`customer.document_type`| String | Type of the document used to identify the customer. Check the **Field Values** table to see the accepted values. | `CPF`  |
|`customer.document_number`| String | Document number used to identify the customer.| `12345678912`  |
|`customer.billing_address.street`| String | Name of a street.| `Av. Brasil`  |
|`customer.billing_address.number`| String | Number that identifies the position of a building on a street.| `1000`  |
|`customer.billing_address.country`| String | Country code. Check the **Field Values** table to see the accepted values.| `BR` |
|`customer.billing_address.postal_code`| String | Postal or ZIP code.| `90230060`  |

**Conditional fields (Uruguay only)**
| Field | Type | Description | Example |
|---|---|---|---|
|`additional_data`| Object | Additional data for regional regulations and tax requirements. Required for Uruguay. | --- |
|`additional_data.rates`| Array | Tax rates applied to the transaction.| --- |
|`additional_data.rates.key`| String | (Uruguay only). Type of tax or rate being applied. | `IVA`|
|`additional_data.rates.value`| Number | (Uruguay only). Tax amount in integer format (cents)| `123`|
|`additional_data.regional_regulation_code`| String | (Uruguay only). Regional fiscal or regulatory code required by local authorities. Used for SEP submissions in Uruguay. | `17934`|

**Optional fields**
| Field | Type | Description | Example |
|---|---|---|---|
|`configurations`| Object | Additional configurations for the payment intent | --- |
|`configurations.3ds`| Boolean | Controls 3D Secure authentication. | `true` or `false`|
|`configurations.preauthorization`| Boolean | Indicates if the payment is a pre-authorization. | `true` or `false`|
|`configurations.card_verification`| Boolean | Indicates if this is a card verification flow. | `true` or `false`|
|`configurations.success_url`| String | Redirect URL in case of successful payment. |`https://www.mystore.com/checkout/success`|
|`configurations.error_url`| String | Redirect URL in case of an error during payment. |`https://www.mystore.com/checkout/error`|
|`expires_at`| String | Payment intent expiration. | `3d4h15m`|

**Field Values**
| Field         | Argentina |       Brazil                | Chile | Portugal |      Spain              | Mexico | Uruguay         |
|:-------------:|:---------:|:---------------------------:|:-----:|:--------:|:--------------------------:|:------:|:---------------:|
|`currency`     |   `ARS`   |               `BRL`         | `CLP` |  `EUR`   | `EUR`                     |  `MXN` | `UYU` or  `USD` |
|`document_type`|   `DNI`   | `CPF`, `CNPJ` or `passport` | `RUT` |          |`DNI`, `INE` or `passport` |  `RFC` |     `uyci`      |
|`country`      |    `AR`   |             `BR`            |  `CH` |   `PT`   |             `ES`           |  `MX`  |      `UY`       |
|`key`          |    -      |             -               |   -   |    -     |             -              |    -   |       `IVA`     |

#### Field filling rules:

* The `expires_at` field accepts a duration value (for example, 15m, 2h, 7d, or 1d12h30m). This duration is applied regardless of the merchant's timezone. The expiration timestamp returned by the API is always formatted in GMT+0 (UTC). If **no value** is provided, the payment intent **does not expire**.
* When `success_url` and `error_url` is provided in the payment intent request, it will overrides the value configured in the seller's technical configuration.
* **Uruguay**: Sellers can create payment intents in either UYU (Uruguayan Peso) or USD. When paying in UYU, the `additional_data` object is required and must include the `additional_data.rates.key` with **IVA** rate key and the `regional_regulation_code` for SEP compliance.
* **Argentina**: `card_verification` and `preauthorization` are **not available** for Argentina.

#### Example of request:

```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"
}
```

#### Example of 200 Response

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

## Next Steps

Now that you have successfully created a single-step payment, you can explore more payments of the Getnet Web Checkout API:

* Learn how to [Create a payment with pre-authorization](/en/web-checkout/payment-guides-wbc/payment-preauth-wbc).
* Learn how to [Create a payment with card verification](/en/web-checkout/payment-guides-wbc/payment-cardverif-wbc).
* Learn how to [Create a payment with 3DS](/en/web-checkout/payment-guides-wbc/payment-3ds-wbc).