Skip to main content
POST
Cancelar assinatura
POST /subscriptions/:id/cancel Faz parte do recurso Assinaturas — o conceito e os dez estados estão lá. Encerra a assinatura. canceled é terminal: não há rota que a traga de volta.
Os dois modos resolvem problemas diferentes. immediate encerra na hora — o cliente perde o acesso ao que resta do período que já pagou. at_period_end mantém a assinatura ativa até currentPeriodEnd e a encerra sozinha lá, que é o comportamento esperado por quem cancela uma mensalidade no meio do mês.
at_period_end é reversível; immediate não. Enquanto a assinatura estiver dentro da janela, uncancel limpa o agendamento. Depois que o motor a transiciona para canceled, não há volta.
reason e reasonDetails são obrigatórios. Não é campo de analytics opcional: a chamada falha sem eles. Todo cancelamento fica registrado com justificativa.
As faturas futuras deixam de existir; as vencidas dependem de você. keepOverdueInvoices: true preserva o que já venceu como dívida em aberto, false anula. Omitido, vale a configuração da sua conta — então uma integração que não envie o campo pode ter comportamentos diferentes entre contas. As faturas já pagas não são afetadas.
Nem todo estado aceita cancelamento. Estados terminais respondem 409. Uma assinatura incomplete pode ser cancelada normalmente — é assim que se descarta uma que nunca ganhou forma de pagamento.
O cancellationReason da resposta tem mais valores do que o corpo aceita. Você envia um dos sete motivos de feedback, mas um cancelamento também acontece sem você pedir — e aí o campo traz o motivo sistêmico: at_period_end (o agendado que chegou a hora), dunning_exhausted (a régua desistiu), from_unpaid, from_paused, during_trial, incomplete_abandon, enrollment_failed e enrollment_expired.Um switch fechado nos sete valores de entrada não cobre a assinatura que foi cancelada sozinha. Trate o desconhecido como “outro”.

Exemplo

Resposta 200
Com at_period_end, a resposta ainda traz status: "active" — o que mudou foi cancelAtPeriodEnd. O canceledAt já vem preenchido com o instante do agendamento, não do cancelamento efetivo: para saber se a assinatura ainda está de pé, leia status e cancelAtPeriodEnd, nunca o canceledAt. Uma integração que só olhe o status não vê o cancelamento agendado. Com immediate, o status já vem canceled.

Authorizations

x-api-key
string
header
required

API Key da Credential (gerada no Backoffice)

Headers

Idempotency-Key
string

Chave única para garantir idempotência da requisição

Path Parameters

id
string
required

ID da assinatura

Body

application/json
reason
enum<string>
required

Motivo do cancelamento, para o seu histórico. Obrigatório.

Available options:
too_expensive,
unused,
customer_service,
low_quality,
missing_features,
switched_service,
other
reasonDetails
string
required

Justificativa em texto livre (1 a 500 caracteres). Obrigatória.

Required string length: 1 - 500
mode
enum<string>
default:immediate

Quando o cancelamento vale. immediate (padrão) encerra agora; at_period_end mantém a assinatura ativa até o fim do período atual e a encerra sozinha lá.

Available options:
immediate,
at_period_end
keepOverdueInvoices
boolean

O que fazer com as faturas já vencidas: true as preserva como dívida em aberto, false as anula. Omitido, vale a configuração da conta. Não afeta as pagas nem as futuras — estas deixam de existir com o cancelamento.

Response

Assinatura cancelada ou agendada para cancelamento

id
string

Identificador único do registro.

number
object

Número do endereço.

referenceCode
string | null

Código do contrato no sistema do integrador; pesquisável, sem unicidade.

customerId
string

ID do cliente associado ao registro.

customerEmail
string

E-mail do cliente.

customerName
string

Nome do cliente.

customerDocument
string

Documento do cliente (CPF ou CNPJ).

currency
string

Moeda no padrão ISO 4217 (ex.: BRL).

status
enum<string>

Status atual do registro (assinatura, fatura, plano ou slip de pagamento).

Available options:
incomplete,
incomplete_expired,
trialing,
active,
past_due,
unpaid,
paused,
canceled,
completed
billingGroupId
any | null

ID do grupo de cobrança ao qual o registro pertence; nulo se não agrupado.

currentPeriodStart
string<date-time>

Início do período de cobrança atual da assinatura (ISO 8601).

currentPeriodEnd
string<date-time>

Fim do período de cobrança atual da assinatura (ISO 8601).

nextInvoiceAt
any | null

Data e hora prevista para a próxima fatura da assinatura (ISO 8601).

recurrence
object

Regra de recorrência (intervalo, unidade e âncora do ciclo).

collectionMethod
enum<string>

Como a fatura é cobrada. Hoje só a cobrança automática na forma de pagamento padrão.

Available options:
charge_automatically
collectionTiming
enum<string>

Momento da cobrança do ciclo: prepaid (no início) ou postpaid (no fim).

Available options:
prepaid,
postpaid
invoiceGenerationMode
enum<string>

Modo de geração de faturas: just_in_time (a cada ciclo) ou upfront (todas antecipadas).

Available options:
just_in_time,
upfront
cancelAtPeriodEnd
boolean

Indica se a assinatura será cancelada ao fim do período atual.

canceledAt
string<date-time>

Data e hora do cancelamento; nula se não cancelado (ISO 8601).

endedAt
string<date-time>

Data e hora em que a assinatura foi efetivamente encerrada; nula se ainda ativa (ISO 8601).

cancellationReason
string

Motivo do cancelamento da assinatura.

pausedAt
any | null

Data e hora em que a assinatura foi pausada; nula se não pausada (ISO 8601).

pauseResumesAt
any | null

Data e hora agendada para a retomada automática da assinatura pausada (ISO 8601).

pauseReason
any | null

Motivo da pausa da assinatura.

trialEnd
any | null

Data e hora de término do período de teste; nula se sem trial (ISO 8601).

incompleteExpiresAt
any | null

Prazo para concluir o primeiro pagamento antes de a assinatura incompleta expirar (ISO 8601).

trialRemindersFired
any[]

Lembretes de fim do período de teste já disparados para a assinatura.

maxCycles
any | null

Número máximo de ciclos da assinatura; nulo se não houver limite.

issuedCycles
integer

Número de ciclos já faturados (faturas emitidas) da assinatura.

completedCycles
integer

Número de ciclos já concluídos (pagos) da assinatura.

defaultPaymentMethodRef
object

Referência da forma de pagamento padrão usada para cobrar a assinatura.

splitConfig
any | null

Configuração de divisão (split) dos valores entre recebedores; nula se sem split.

paymentBehavior
enum<string>

O que fazer quando a primeira cobrança não é aprovada: allow_incomplete cria a assinatura com a fatura em aberto; error_if_incomplete cancela a assinatura.

Available options:
allow_incomplete,
error_if_incomplete
latestInvoiceId
string

ID da fatura mais recente gerada pela assinatura.

paymentUpdateToken
any | null

Token do link público para o cliente atualizar a forma de pagamento; nulo se não gerado.

paymentUpdateMethods
any | null

Formas de pagamento permitidas no link público de troca; nula se não habilitada.

metadata
object

Metadados livres (pares chave-valor) para uso do integrador; não afeta o processamento.

createdAt
string<date-time>

Data e hora de criação do registro (ISO 8601).

updatedAt
string<date-time>

Data e hora da última atualização do registro (ISO 8601).