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

# Cancelar uma assinatura

> Cancela imediatamente uma assinatura ativa.

A assinatura passa para o status `CANCELLED` e nenhuma cobrança futura será gerada. Esta operação é irreversível.


Cancela uma assinatura ativa imediatamente. Parcelas futuras pendentes são canceladas junto.

<Card horizontal>
  Requer a permissão `SUBSCRIPTION:DELETE`.
</Card>

## Corpo da requisição

| Campo | Tipo   | Obrigatório | Descrição                     |
| ----- | ------ | ----------- | ----------------------------- |
| `id`  | string | Sim         | ID da assinatura (`subs_...`) |

**Exemplo:**

```json theme={null}
{
  "id": "subs_abc123xyz"
}
```

## Resposta

Retorna o objeto da assinatura com `status` atualizado para `CANCELLED`.

```json theme={null}
{
  "data": {
    "id": "subs_abc123xyz",
    "customerId": "cust_abc123xyz",
    "amount": 2990,
    "status": "CANCELLED",
    "method": "CARD",
    "coupons": [],
    "devMode": false,
    "trialDays": null,
    "trialEndsAt": null,
    "createdAt": "2024-12-06T20:00:00.000Z",
    "updatedAt": "2024-12-06T20:00:05.000Z"
  },
  "success": true,
  "error": null
}
```

<Warning title="Cancelamento imediato" horizontal>
  O cancelamento é aplicado na hora (`cancelPolicy: NOW`). Não há período de carência — o cliente perde o acesso imediatamente.
</Warning>


## OpenAPI

````yaml POST /subscriptions/cancel
openapi: 3.1.0
info:
  title: API AbacatePay
  description: API para gerenciamento de cobranças e pagamentos usando o AbacatePay.
  version: 1.0.0
servers:
  - url: https://api.abacatepay.com/v2
    description: Único servidor para os ambientes de produção e sandbox.
security: []
paths:
  /subscriptions/cancel:
    post:
      summary: Cancelar uma assinatura
      description: >
        Cancela imediatamente uma assinatura ativa.


        A assinatura passa para o status `CANCELLED` e nenhuma cobrança futura
        será gerada. Esta operação é irreversível.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - id
              additionalProperties: false
              properties:
                id:
                  type: string
                  description: Identificador único da assinatura a ser cancelada
                  example: subs_abc123xyz
      responses:
        '200':
          description: Assinatura cancelada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Subscription'
                  error:
                    type: string
                    nullable: true
                    example: null
                  success:
                    $ref: '#/components/schemas/Success'
        '401':
          description: Não autorizado. Falha na autenticação.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: >-
                      Mensagem de erro descrevendo o motivo da falha na
                      autenticação.
                    example: Token de autenticação inválido ou ausente.
        '404':
          description: Assinatura não encontrada.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: >-
                      Mensagem de erro indicando que a assinatura não foi
                      encontrada.
                    example: Subscription not found
      security:
        - bearerAuth: []
components:
  schemas:
    Subscription:
      type: object
      description: Dados de uma assinatura (subscription).
      required:
        - id
        - name
        - description
        - amount
        - currency
        - method
        - status
        - customerId
        - devMode
        - events
        - createdAt
        - updatedAt
      additionalProperties: false
      properties:
        id:
          type: string
          description: Identificador único da assinatura.
          example: subs_abc123xyz
        name:
          type: string
          description: Nome da assinatura.
          example: Plano Premium Mensal
        description:
          type: string
          description: Descrição da assinatura.
          example: Assinatura mensal do plano premium
        amount:
          type: number
          description: Valor da assinatura em centavos.
          example: 10000
        currency:
          type: string
          description: Moeda da assinatura.
          example: BRL
        method:
          type: string
          description: Método de pagamento da assinatura.
          enum:
            - PIX
            - CARD
          example: PIX
        status:
          type: string
          description: Status atual da assinatura.
          enum:
            - PENDING
            - ACTIVE
            - CANCELLED
            - EXPIRED
            - FAILED
          example: PENDING
        customerId:
          type: string
          description: Identificador do cliente que possui a assinatura.
          example: cust_abc123xyz
        devMode:
          type: boolean
          description: Indica se a assinatura foi criada em ambiente de testes.
          example: false
        createdAt:
          type: string
          format: date-time
          description: Data de criação da assinatura.
          example: '2024-11-04T18:38:28.573Z'
        updatedAt:
          type: string
          format: date-time
          description: Data de atualização da assinatura.
          example: '2024-11-04T18:38:28.573Z'
    Success:
      type: boolean
      description: Se a requisição obteve sucesso ou não.
      example: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        Todas as requisições devem incluir sua chave de API no header
        Authorization usando o formato `Bearer <abacatepay-api-key>`. Sem esse
        header a requisição será rejeitada.


        Saiba mais sobre como criar e usar chaves de API na [documentação de
        autenticação](/pages/authentication).

````