# Quickstart: Crie seu primeiro pagamento

Este guia ajuda você a criar sua primeira transação de pagamento bem-sucedida no ambiente Sandbox. Você irá se autenticar na API, enviar uma requisição de pagamento e verificar o status da transação — tudo em poucos minutos.

## Requisitos

Antes de começar, certifique-se de ter:

* Credenciais de Sandbox: `client_id` e `client_secret` (disponíveis no portal de desenvolvedores)
* Base URL do Sandbox: [`https://api-sbx.globalgetnet.com`](https://api-sbx.pre.globalgetnet.com)

<Callout type="tip">

Use [cartões de teste](https://docs.globalgetnet.com/en/articles?article=test-cards) para simular diferentes cenários de pagamento no Sandbox.

</Callout>

## Etapa 1: Obter uma credencial de sandbox

<Callout type="warning">

A obtenção do `client_id` e `client_secret` varia dependendo da região em que você está localizado. Entre em contato com seu gerente para mais informações.

</Callout>

Para gerar a credencial, na página inicial da Getnet, siga os passos abaixo:

![](https://static-devportal-ux.sensedia-eng.com/Pagonxt/production/documentations/getnet-final-1765816313012-cssplwc9.gif)

1. Clique na área do usuário.
2. Selecione **Developer Dashboard**.
3. No menu lateral, selecione **API Keys**.
4. Clique em **Create a new credential**.
5. Preencha os campos **Name** e **Description**.
6. Clique em **Continue**.
7. No aviso, clique em **Generate Secret ID**.
8. Copie o client_secret, pois ele não será visível novamente após ser gerado.
9. Clique em **Continue**.

Sua credencial foi criada com sucesso.

<Callout type="info">

Se você perder a chave client_secret, clique em **Refresh secret** para gerar uma nova.

</Callout>

## Etapa 2: Obter um Access Token

Autentique-se na API utilizando suas credenciais. Combine seu `client_id` e `client_secret` com dois pontos (`:`), codifique o resultado em Base64 e utilize no header Authorization.

```bash
curl --request POST \
  --url https://api-sbx.globalgetnet.com/authentication/oauth2/access_token \
  --header 'authorization: Basic <BASE64(client_id:client_secret)>' \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data grant_type=client_credentials
```

A resposta inclui um `access_token` que expira em aproximadamente uma hora:

```json
{
  "access_token": "eyJ0eXAiOiJKV1QiLCJraWQiOiI1amhLMy9xK0ZpK0tTRkIrRUwwN3VhMFYwdGM9IiwiYWxnIjoiUlMyNTYifQ...",
  "scope": "digital-platform-sbx:gateway-api",
  "token_type": "Bearer",
  "expires_in": 3599
}
```

Para etapas detalhadas de autenticação, consulte o [guia de autenticação](/pt/global-api/sep-api/first-steps-api/authentication).

## Etapa 3: Criar um pagamento

Crie um pagamento em etapa única que autoriza e captura os fundos em uma única operação. Substitua os placeholders pelos seus valores reais:

* `<ACCESS_TOKEN>` - O token da Etapa 1
* `<UUID>` - Uma chave de idempotência única (gere um novo UUID para cada pagamento)

```bash
curl --request POST \
  --url https://api-sbx.globalgetnet.com/dpm/payments-gwproxy/v2/payments \
  --header 'authorization: Bearer <ACCESS_TOKEN>' \
  --header 'content-type: application/json' \
  --header 'x-transaction-channel-entry: XX' \
  --data '{
  "idempotency_key": "63c7f8ee-51a6-470d-bb76-ef762b62bfb9",
  "order_id": "ORDER-QUICKSTART-001",
  "data": {
    "amount": 10000,
    "currency": "BRL",
    "payment": {
      "payment_method": "CREDIT",
      "transaction_type": "FULL",
      "number_installments": 1,
      "card": {
        "number": "5155901222260000",
        "expiration_month": "12",
        "expiration_year": "30",
        "cardholder_name": "JOHN TEST",
        "security_code": "123"
      }
    },
    "customer": {
      "email": "customer@example.com"
    }
  }
}'
```

Um pagamento bem-sucedido retorna uma resposta com `status: "APPROVED"`:

```json
{
  "payment_id": "053de7f9-3725-437b-bdfc-bbf3ed0acb75",
  "order_id": "ORDER-QUICKSTART-001",
  "amount": 10000,
  "currency": "BRL",
  "status": "APPROVED",
  "payment_method": "CREDIT",
  "received_at": "2025-01-15T10:30:00.000Z"
}
```

<Callout type="note">

O exemplo utiliza um número de cartão de teste. No Sandbox, você pode usar diversos [cartões de teste](https://docs.globalgetnet.com/en/articles?article=test-cards) para simular diferentes cenários.

</Callout>

## Etapa 4: Verificar o pagamento (Opcional)

Verifique o status da transação utilizando o [endpoint Get Transaction](https://docs.globalgetnet.com/en/products/online-payments/regional-api/swagger#tag/payment-record-management/get/dpm/hub-payment-info/v1/payments/info/{payment_id}) com o `payment_id` retornado na resposta:

```bash
curl --request GET \
  --url https://api-sbx.globalgetnet.com/dpm/hub-payment-info/v1/payments/info/<PAYMENT_ID> \
  --header 'authorization: Bearer <ACCESS_TOKEN>'
```

## Solução de problemas

**401 Unauthorized**: Seu access token pode ter expirado. Solicite um novo token e tente novamente.

**422 Validation Error**: Verifique se todos os campos obrigatórios estão presentes:

* `idempotency_key` (único para cada pagamento)
* `order_id`
* `data.amount` (em centavos)
* `data.currency`
* `data.payment.payment_method` (`CREDIT` ou `DEBIT`)
* `data.payment.transaction_type` (`FULL`)
* `data.payment.number_installments` (`1` para pagamento à vista)
* Dados completos do cartão

**Pagamento recusado**: Tente outro [cartão de teste](https://docs.globalgetnet.com/en/articles?article=test-cards) ou ajuste o valor.

## Próximos passos

Parabéns! Você criou seu primeiro pagamento. Para aprender mais:

* Siga o [guia completo de pagamento em etapa única](/pt/global-api/sep-api/payment-guides-api/card-payments/single-step-payment) para implementação detalhada e requisitos de produção.
* Explore [pagamentos pré-autorizados](/pt/global-api/sep-api/payment-guides-api/card-payments/pre-auth-payment) para fluxos em duas etapas.