# Processe seu Primeiro Pagamento

Este tutorial orienta você na realização da sua primeira requisição de API para a Get Smart API Cloud. Você iniciará um pagamento no **Ambiente de Teste** utilizando credenciais de exemplo.

Ao final deste tutorial, você terá:

1. Construído um objeto de pagamento JSON válido.  
2. Gerado a assinatura criptográfica necessária.  
3. Enviado uma requisição `POST` para a API.  
4. Recebido uma confirmação `200 OK`.

## Pré-requisitos

* **Cliente de API:** Uma ferramenta como `curl`, Postman ou um ambiente de código (Python, Node.js, etc.).  
* **Credenciais de Teste:** Utilizaremos os seguintes valores de exemplo encontrados na documentação:  
  * **Código de Estabelecimento (`comercio`):** `777888991`  
  * **Terminal:** `1`  
  * **Secret Key (Chave Secreta):** `AAABBB` (Utilizada para assinatura)

## Passo 1: Definir os Dados de Pagamento

Para iniciar um pagamento, você deve construir um objeto JSON contendo os detalhes da transação. A estrutura requer uma hierarquia específica.

Crie um objeto JSON com os seguintes campos:

```json
{
  "comercio": "777888991",
  "terminal": 1,
  "timestamp": "20250428 111217",
  "notificacion": {
    "urlNotificacion": "[https://www.miservicio.es/servicio/notificaciones/tpvpc](https://www.miservicio.es/servicio/notificaciones/tpvpc)",
    "correoNotificacion": "email@comercio.es"
  },
  "datosOperacion": {
    "importe": "15.00",
    "factura": "FACTURA1"
  }
}
```

**Notas sobre os campos**: 

* `timestamp`: Deve estar no formato `YYYYMMDD HHmmss`.  
* `importe`: O valor no formato `XXXXXXXXX.XX` (ex.: `15.00`).  
* `factura`: Seu ID de referência único para a compra (máx. 250 caracteres).

## Passo 2: Gerar a Assinatura

A segurança na API Cloud é aplicada via uma assinatura SHA-256. Você não pode simplesmente enviar o JSON acima; você deve assiná-lo.

A lógica da assinatura funciona da seguinte forma:

1. Pegue a string JSON **exata** do objeto `info` (minimizada, sem espaços extras).  
2. Adicione sua **Secret Key** ao final dessa string.  
3. Calcule o hash **SHA-256** da string combinada.

<Callout type="tip">

Para um mergulho profundo no algoritmo de assinatura, consulte o guia de [Lógica de Assinatura e Segurança](/pt/get-smart/get-smart-api-cloud/core-concepts/signature-logic-and-security).

</Callout>

### Exemplo de Cálculo

**Payload (minimizado):** `{"comercio":"777888991","timestamp":"...","datosOperacion":{"importe":"15.00",...}}`

**Secret Key:** `AAABBB`

**String Combinada:** `{"comercio":"..."...}AAABBB`

**Assinatura Resultante:** `0ED5D16230C0E2683CF304A713154B90D887D592EF72437AA214CBA305B00646`

## Passo 3: Enviar a Requisição

Combine seu objeto `info` e sua `signature` calculada no corpo final da requisição. Envie este payload para o **Endpoint do Ambiente de Teste**.

**Endpoint:** `https://tpvpc-i.redsys.es:27443/TPV_PC/services/rest/tpvpcwss/v1/pago`

### Requisição via cURL

Aqui está um exemplo completo e executável usando `curl`.

```bash
curl -X POST "https://tpvpc-i.redsys.es:27443/TPV_PC/services/rest/tpvpcwss/v1/pago" \\
     -H "Content-Type: application/json" \\
     -d '{
           "info": {
             "comercio": "777888991",
             "terminal": 1,
             "timestamp": "20250428 111217",
             "notificacion": {
               "urlNotificacion": "https://www.miservicio.es/servicio/notificaciones/tpvpc",
               "correoNotificacion": "email@comercio.es"
             },
             "datosOperacion": {
               "importe": "15.00",
               "factura": "FACTURA1"
             }
           },
           "signature": "0ED5D16230C0E2683CF304A713154B90D887D592EF72437AA214CBA305B00646"
         }'
```

<Callout type="warning">

A assinatura no exemplo acima é válida **apenas** para os dados e timestamp exatos exibidos (`20250428 111217`). Se você alterar o timestamp ou o valor, você **deve** recalcular a assinatura.

</Callout>

## Passo 4: Verificar a Resposta

Se sua requisição for bem-sucedida, a API retornará um status `200 OK` e uma resposta JSON.

**Exemplo de Resposta de Sucesso:**

```json
{
    "signature": "CD8E8EC1C53E945C03A37E6B3B2E2273AC4DF11E1C6AE0F9556007F505DABE39",
    "info": {
        "resultado": {
            "codigo": "0"
        }
    }
}
```

* **`codigo: "0"`**: Indica que a API recebeu e validou sua requisição com sucesso.  
* **Processamento Assíncrono:** Esta resposta **não** significa que o pagamento está concluído. Significa apenas que o sistema na nuvem aceitou o comando. O terminal físico agora irá ativar e solicitar o cartão ao portador.

## Próximos Passos

Você iniciou um pagamento com sucesso!

* [**Configurar Webhooks e Notificações**](/pt/get-smart/get-smart-api-cloud/integration-guides/set-up-webhooks-and-notifications): Aprenda como receber o resultado final (Aprovado/Negado) assim que o cliente terminar de interagir com o terminal.  
* [**Configurar Ambientes e Credenciais**](/pt/get-smart/get-smart-api-cloud/first-steps/configure-environments-and-credentials): Mude destas credenciais de teste para suas chaves de produção.