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

# Cancelar

> Cancele uma assinatura ativa

## Visão geral

Use este endpoint para cancelar uma assinatura. Por padrão, o cancelamento é agendado para o final do ciclo de cobrança vigente, permitindo que o cliente continue com acesso até essa data. Também é possível solicitar o cancelamento imediato.

## Endpoint

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.avanttifinance.com/v1/subscriptions/{subscription_id}/cancel \
    -H "Authorization: Bearer {access_token}" \
    -H "Content-Type: application/json" \
    -d '{
      "at_period_end": true
    }'
  ```

  ```javascript Node.js theme={null}
  const response = await fetch(
    \`https://api.avanttifinance.com/v1/subscriptions/\${subscriptionId}/cancel\`,
    {
      method: "POST",
      headers: {
        "Authorization": \`Bearer \${accessToken}\`,
        "Content-Type": "application/json"
      },
      body: JSON.stringify({ at_period_end: true })
    }
  );

  const data = await response.json();
  console.log(data);
  ```

  ```python Python theme={null}
  import requests

  url = f"https://api.avanttifinance.com/v1/subscriptions/{subscription_id}/cancel"
  headers = {
      "Authorization": f"Bearer {access_token}",
      "Content-Type": "application/json"
  }
  payload = {"at_period_end": True}

  response = requests.post(url, headers=headers, json=payload)
  print(response.json())
  ```
</CodeGroup>

## Parâmetros de path

<ParamField path="subscription_id" type="string" required>
  Identificador único da assinatura a ser cancelada.
</ParamField>

## Parâmetros do corpo

<ParamField body="at_period_end" type="boolean">
  Quando `true` (padrão), o cancelamento é agendado para o final do ciclo de cobrança atual. Quando `false`, a assinatura é cancelada imediatamente.
</ParamField>

## Resposta

<ResponseField name="id" type="string">
  Identificador único da assinatura.
</ResponseField>

<ResponseField name="status" type="string">
  Novo status da assinatura. Será `active` (com cancelamento agendado) ou `canceled`, dependendo do parâmetro `at_period_end`.
</ResponseField>

<ResponseField name="cancel_at" type="string">
  Data e hora em que a assinatura será efetivamente cancelada, no formato ISO 8601.
</ResponseField>

<ResponseField name="canceled_at" type="string">
  Data e hora em que o cancelamento foi solicitado, no formato ISO 8601.
</ResponseField>

### Exemplo de resposta

```json theme={null}
{
  "id": "sub_8f72a1b3c4d5",
  "status": "active",
  "cancel_at": "2025-02-15T10:30:00Z",
  "canceled_at": "2025-01-15T14:22:00Z"
}
```

<Warning>
  Quando `at_period_end` é `false`, o cancelamento é imediato e irreversível. Nenhum reembolso proporcional é processado automaticamente.
</Warning>

## Erros comuns

| Código HTTP | Significado                               |
| ----------- | ----------------------------------------- |
| 401         | Token de autenticação inválido ou ausente |
| 404         | Assinatura não encontrada                 |
| 409         | Assinatura já está cancelada              |

## Próximos passos

<CardGroup cols={2}>
  <Card title="Listar assinaturas" icon="list" href="/listar-filtrar-1">
    Consulte o status de todas as assinaturas.
  </Card>

  <Card title="Criar assinatura" icon="repeat" href="/criar-assinatura">
    Crie uma nova assinatura recorrente.
  </Card>
</CardGroup>
