> ## Documentation Index
> Fetch the complete documentation index at: https://docs.autorizou.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Cancelar Pagamento

> Cancela um pagamento que ainda não foi capturado/liquidado

Cancela um pagamento autorizado antes da liquidação. Use para reverter uma autorização
de cartão (estorno da reserva) ou para invalidar uma cobrança PIX/boleto ainda em aberto.

<Note>
  Para devolver um pagamento **já capturado/pago**, utilize o endpoint de
  [Reembolso](/api-reference/refunds/create-refund). O cancelamento atua apenas sobre
  pagamentos que ainda não foram liquidados.
</Note>

## Parâmetros da Requisição

<ParamField path="identifier" type="string" required>
  Identificador UUID do pagamento a ser cancelado.
</ParamField>

O corpo da requisição é vazio — o pagamento é identificado pela URL.

## Exemplos de Requisição

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://pay.autorizou.dev/api/v1/payments/295e3b31-1684-4355-8ee5-4bbf7b97589b/cancel \
      -H "Authorization: Bearer 4eC39HqLyjWDarjtT1zdp7dc" \
      -H "Content-Type: application/json"
  ```

  ```javascript JavaScript theme={null}
  const result = await fetch(
    'https://pay.autorizou.dev/api/v1/payments/295e3b31-1684-4355-8ee5-4bbf7b97589b/cancel',
    {
      method: 'POST',
      headers: {
        'Authorization': 'Bearer 4eC39HqLyjWDarjtT1zdp7dc',
        'Content-Type': 'application/json'
      }
    }
  );

  console.log('Pagamento cancelado:', await result.json());
  ```

  ```php PHP theme={null}
  <?php

  $curl = curl_init();
  curl_setopt_array($curl, [
      CURLOPT_URL => 'https://pay.autorizou.dev/api/v1/payments/295e3b31-1684-4355-8ee5-4bbf7b97589b/cancel',
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_POST => true,
      CURLOPT_HTTPHEADER => [
          'Authorization: Bearer 4eC39HqLyjWDarjtT1zdp7dc',
          'Content-Type: application/json'
      ],
  ]);

  $response = json_decode(curl_exec($curl), true);
  echo "Pagamento cancelado: " . json_encode($response, JSON_PRETTY_PRINT);
  ?>
  ```
</CodeGroup>

## Exemplo de Resposta

```json theme={null}
{
  "message": "Pagamento cancelado com sucesso",
  "payment": {
    "uuid": "295e3b31-1684-4355-8ee5-4bbf7b97589b",
    "status": "canceled",
    "acquirer_reference": "ZKQTMKXV9PJH4T82"
  }
}
```

## Códigos de Erro

<AccordionGroup>
  <Accordion title="422 - Cancelamento não permitido" icon="circle-xmark">
    O pagamento não pode ser cancelado no estado atual (por exemplo, já foi
    liquidado ou já está cancelado).

    ```json theme={null}
    {
        "message": "Pagamento não pode ser cancelado - status inválido. Status atual: refunded",
        "error": "payment_cancel_error"
    }
    ```
  </Accordion>

  <Accordion title="404 - Pagamento não encontrado" icon="circle-xmark">
    Nenhum pagamento foi encontrado para o `identifier` informado.

    ```json theme={null}
    {
        "message": "Payment not found."
    }
    ```
  </Accordion>
</AccordionGroup>
