Trocar o plano da assinatura

Muda o valor das próximas cobranças trocando a assinatura de plano, sem novo cadastro do cartão e sem criar outra assinatura: o cartão salvo, o dia de cobrança, o externalRef e o histórico de faturas ficam. Para reajustar (ex.: R$ 1.000 → R$ 1.300), crie o plano com o valor novo e troque a assinatura para ele.

Quando vale: effectiveDate é o vencimento a partir do qual o plano novo é cobrado. Omitido = o próximo vencimento (nextDueDate). Pode ser um vencimento futuro da assinatura (até 36 à frente); data entre vencimentos é recusada e a mensagem traz o vencimento seguinte. A troca fica agendada (scheduledPlanChange na resposta, webhook subscription.plan_change_scheduled) e a Autra a aplica sozinha quando a fatura desse vencimento é gerada, 3 dias antes (subscription.plan_changed; planId da assinatura passa ao novo).

Fatura já gerada: a fatura do vencimento escolhido que já exista e ainda não tenha sido cobrada (SCHEDULED, sem tentativa) passa ao valor novo (invoice.updated). Fatura em cobrança, recusada aguardando nova tentativa ou paga não muda: a troca vale do vencimento seguinte em diante.

Regras do plano novo: do mesmo estabelecimento, ACTIVE, mesma periodicidade (o dia e o intervalo de cobrança são mantidos) e aceitando o meio de pagamento da assinatura. Reduções seguem a mesma rota. Trocar de novo antes da aplicação substitui o agendamento; pedir o plano atual desfaz a troca; repetir o mesmo pedido não grava nada. Não vale para assinatura cancelada, aguardando a adesão do cartão (PENDING_ENROLLMENT: troque depois de ativa) nem a partir do vencimento com cancelamento agendado. Enquanto a troca não é aplicada, a fatura do vencimento de início não é gerada nem cobrada no preço antigo.

Cobrança proporcional do restante do ciclo: POST .../charges (cobrança avulsa no mesmo cartão), independente desta troca.

Erros — corpo {"errors":[{"code":"...","msg":"..."}]}; msg detalha o campo quando é validação:

codeHTTPQuando aconteceO que fazer
INVALID_INPUT400planId ausente/inválido, effectiveDate fora do formato, antes do próximo vencimento, fora de um vencimento, a mais de 36 ciclos ou a partir de um cancelamento agendado; plano igual ao atual sem troca agendada.Corrija o campo indicado.
INVALID_JSON400Corpo não é um objeto JSON válido.Corrija o JSON.
MISSING_DOCUMENT_ID400Estabelecimento não informado.Envie o header X-Merchant-Document (ou documentId).
TENANT_REQUIRED400A credencial não identifica o tenant.Gere o token com as credenciais do seu tenant (POST /v1/oauth/token).
FEATURE_DISABLED403O módulo de assinaturas não está habilitado para o tenant.Peça a habilitação à Autra.
MERCHANT_NOT_FOUND404O documento não é de um estabelecimento do seu tenant.Confira o CPF/CNPJ do estabelecimento.
SUBSCRIPTION_NOT_FOUND404Assinatura não existe neste estabelecimento.Confira o id.
PLAN_NOT_FOUND404Plano novo não existe neste estabelecimento.Confira o planId.
INVALID_STATUS_TRANSITION409Assinatura cancelada.Crie uma nova assinatura.
PAYLOAD_TOO_LARGE413Corpo acima de 64 KiB.Reduza o corpo da requisição.
PLAN_NOT_COMPATIBLE422Plano novo arquivado, de outra periodicidade ou sem o meio de pagamento da assinatura; msg diz qual.Use um plano compatível.
INVALID_DOCUMENT422Documento do estabelecimento malformado.CPF com 11 ou CNPJ com 14 dígitos, só números.
INTERNAL_ERROR500Falha interna.Tente de novo; persistindo, fale com o suporte com o horário da chamada.
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
uuid
required

ID da assinatura (UUID)

Query Params
string

CPF/CNPJ do estabelecimento, quando não usar o header nem o corpo

Body Params

Plano novo e vencimento de início

string

Documento do estabelecimento (alternativa ao header X-Merchant-Document).

date

Vencimento a partir do qual o plano novo vale (YYYY-MM-DD). Omitido = o próximo vencimento (nextDueDate). Tem de ser um vencimento da assinatura, até 36 à frente.

string
required

Plano novo: do mesmo estabelecimento, ACTIVE, com a mesma periodicidade e aceitando o meio de pagamento da assinatura.

Headers
string

CPF/CNPJ do estabelecimento (só números). Preferido; alternativa: documentId no corpo ou na query

Responses

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json