Skip to main content
POST
/
api
/
subscriptions
/
{id}
/
cancel
Cancelar Assinatura
curl --request POST \
  --url https://garu.com.br/api/subscriptions/{id}/cancel \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "cancelImmediately": true,
  "reason": "<string>"
}
'

Visão Geral

Cancele uma assinatura de duas formas: imediatamente (cliente perde acesso na hora) ou agendado para o fim do período pago (cliente mantém acesso até a data de renovação).

Cancelamento Imediato

O cliente perde acesso imediatamente e nenhuma cobrança futura será realizada.
curl -X POST https://garu.com.br/api/subscriptions/100/cancel \
  -H "Authorization: Bearer sk_test_sua_chave" \
  -H "Content-Type: application/json" \
  -d '{
    "cancelImmediately": true,
    "reason": "Cliente solicitou cancelamento"
  }'
Resultado:
  • Status muda para canceled
  • Acesso revogado imediatamente
  • Nenhuma cobrança futura

Cancelamento Agendado

O cliente mantém acesso até o fim do período pago atual.
curl -X POST https://garu.com.br/api/subscriptions/100/cancel \
  -H "Authorization: Bearer sk_test_sua_chave" \
  -H "Content-Type: application/json" \
  -d '{
    "cancelImmediately": false,
    "reason": "Cliente optou por não renovar"
  }'
Resultado:
  • Status muda para pending_cancellation
  • Cliente mantém acesso até currentPeriodEnd
  • Campo cancelAt preenchido com a data de cancelamento
  • No fim do período, status muda para canceled

Parâmetros

cancelImmediately
boolean
required
true = cancelamento imediato, false = cancelamento no fim do período.
reason
string
Motivo do cancelamento (opcional, para registro interno).

Resposta de Sucesso

Cancelamento Imediato (200 OK)

{
  "id": 100,
  "status": "canceled",
  "cancelledAt": "2024-02-20T10:00:00.000Z",
  "message": "Assinatura cancelada com sucesso"
}

Cancelamento Agendado (200 OK)

{
  "id": 100,
  "status": "pending_cancellation",
  "cancelAt": "2024-03-15T00:00:00.000Z",
  "message": "Assinatura será cancelada em 2024-03-15"
}

Erros Comuns

{
  "statusCode": 404,
  "message": "Subscription not found"
}
Solução: Verifique se o ID da assinatura está correto.
{
  "statusCode": 400,
  "message": "Subscription is already canceled"
}
Solução: A assinatura já foi cancelada anteriormente.

Próximos Passos

Pausar Assinatura

Pause temporariamente as cobranças

Webhooks

Receba notificações de cancelamento