Criar assinatura

Cria a assinatura de um cliente final a um plano. Ela nasce em PENDING_ENROLLMENT e só é cobrada depois da adesão do cartão.

Fluxo completo da recorrência por cartão

  1. POST /v1/acquiring/subscription-plans — crie o plano (uma vez).
  2. POST /v1/acquiring/subscriptions — crie a assinatura do cliente (esta rota). Guarde o id.
  3. POST /v1/acquiring/card-sessions com purpose=ENROLLMENT e subscriptionId = o id da assinatura. Abra a hostedCardUrl para o cliente digitar o cartão. A adesão faz uma validação de valor zero (não cobra), salva o cartão e deixa a assinatura ACTIVE (webhook subscription.activated).
  4. A Autra cobra sozinha: gera a fatura 3 dias antes de cada vencimento e cobra o cartão salvo no dia, sem CVV. Recusa → até 3 tentativas (vencimento + cardRetryDays do plano); esgotadas, a fatura fica OVERDUE e a assinatura PAST_DUE. Acompanhe pelos webhooks invoice.* e subscription.* (domínio subscriptions) ou por GET .../invoices.

Idempotência: externalRef é a sua chave, única por estabelecimento. Repetir o POST com o mesmo externalRef, plano e cliente devolve a assinatura já criada (200, sem duplicar); com outro plano ou cliente, EXTERNAL_REF_IN_USE.

1º vencimento: firstDueDate (hoje ou depois, horário de Brasília) ou, se omitido, a regra do plano. O dia do 1º vencimento vira o dia-âncora das cobranças seguintes (planos FIXED_DAY usam o billingDay).

O documento do cliente volta mascarado na resposta e nos webhooks.

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

codeHTTPQuando aconteceO que fazer
INVALID_INPUT400Campo inválido ou fora do limite; msg diz qual e a regra.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.
PLAN_NOT_FOUND404Plano não existe neste estabelecimento.Confira o id (planos são por estabelecimento).
EXTERNAL_REF_IN_USE409externalRef já usado por outra assinatura (outro plano ou cliente).Use outro externalRef ou consulte a existente com GET ?externalRef=.
PAYLOAD_TOO_LARGE413Corpo acima de 64 KiB.Reduza o corpo (o metadata aceita até 4 KiB).
INVALID_DOCUMENT422Documento do estabelecimento malformado.CPF com 11 ou CNPJ com 14 dígitos, só números.
PLAN_ARCHIVED422O plano está arquivado.Use um plano ACTIVE.
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…
Query Params
string

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

Body Params

Assinatura

customer
object
required

Cliente final.

string

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

string
required
length ≤ 120

Seu identificador da assinatura/cliente, único por estabelecimento; é a chave de idempotência do POST. Até 120 caracteres entre letras, números, ., _, : e -.

date

1º vencimento (YYYY-MM-DD, hoje ou depois, em Brasília). Omitido = regra do plano. Plano IMMEDIATE só aceita hoje. Define o dia-âncora das cobranças seguintes.

metadata
object

Objeto livre seu (até 4 KiB), devolvido como veio. Não coloque dado sensível.

uuid
required

ID de um plano ACTIVE do mesmo estabelecimento.

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