Skip to content

Cria ou executa cancel

POST/api/subscriptions/{id}/cancel

Auth
Requires a token
X-CommunityId
X-CommunityId Send the X-CommunityId of the community the operation happens in.
Endpoint descriptions come straight from the API specification and are in Portuguese for now. The interface around them is translated.

Corpo: `immediate` (boolean, opcional) e `cancelReason` (texto, opcional). O assinante cancela a própria assinatura; owner e admin da comunidade do `X-CommunityId` (e SuperAdmin) cancelam qualquer assinatura dela. **Contrato (F-35):** quando o assinante cancela uma assinatura `ACTIVE` antes de `commitmentEndsAt`, o cancelamento fica agendado para o fim do contrato, mesmo com `immediate: true`: `status` continua `ACTIVE`, `nextBillingDate` continua preenchido e as cobranças seguem até lá. Owner e admin não ficam presos ao contrato: com `immediate: true` encerram na hora, inclusive um cancelamento já agendado (é o único caso em que uma assinatura com `canceledAt` aceita novo cancelamento). **Anual (F-36):** o assinante que cancela uma assinatura `YEARLY` fica com o acesso até o fim do ano pago, mesmo com `immediate: true`, e ela não renova; não há reembolso. Owner e admin continuam podendo encerrar na hora. **`allowCancellation: false`** no produto: o assinante recebe 400 (`cancellationNotAllowed`); owner e admin podem cancelar. A resposta traz, além dos campos de antes, `commitmentEndsAt` (fim do contrato vigente, ou `null`) e `cancelEffectiveAt` (quando a assinatura de fato termina: agora, no fim do período, ou no fim do período em que o contrato acaba). Um cancelamento no fim do período é encerrado pelo job horário quando o período acaba (FIN-43): `status` vira `CANCELED` e o acesso termina.

Parameters

NameInTypeDescription
idrequiredpathstring

Headers

NameTypeDescription
X-CommunityIdoptionalstring (uuid)ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade.

Request body application/json

NameTypeDescription
cancelReasonoptionalstringmin 3, max 500
immediateoptionalboolean`true` encerra agora; ausente ou `false`, ao fim do período pago.

Responses

StatusDescription
201Operação realizada com sucesso.
400Requisição inválida — falha de validação.
401Token ausente, inválido ou expirado.
404Recurso não encontrado.
500Erro interno do servidor.

curl example

curl -X POST "https://api.memberfy.net/api/subscriptions/<id>/cancel" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{}'