Autenticação: Público (sem autenticação)
- Valida a identidade do assinante e os dados de pagamento.
- Se
save_cardfortruee o método forcredit_card, tokeniza o cartão para que ele possa ser reutilizado nas cobranças recorrentes. - Cria um assinante vinculado ao plano com
status='pending'enext_billing_date=now. - Cria o primeiro pagamento da assinatura no valor do plano e tenta cobrá-lo imediatamente através da conta do vendedor. Em caso de sucesso, o assinante e o pagamento passam para
paidenext_billing_dateavança conforme afrequencydo plano.
201 com o assinante, o pagamento e — para PIX/boleto — as instruções de pagamento.
Pré-requisitos
- O plano precisa existir (
GET /subscriptions/plan/{plan_id}/o retorna). - O plano precisa pertencer a uma conta de vendedor ativa na plataforma — caso contrário a chamada falhará.
- O
typeenviado deve ser um dos métodos listados empayment_methodsdo plano. Enviarpixpara um plano que aceita apenas cartão retorna400.
Parâmetros de rota
UUID do plano de assinatura ao qual se está aderindo.
Corpo da requisição
Campos de identidade do assinante são sempre obrigatórios. Campos de pagamento dependem dotype.
Campos do assinante
Nome completo do assinante. Deve ter pelo menos duas palavras (nome + sobrenome).
E-mail do assinante. Validado como endereço de e-mail real.
Número de telefone, máx. 15 caracteres. Caracteres não numéricos são removidos no servidor. Validado contra
country_code.Prefixo de país E.164, formato
+\d{1,4}. Padrão +55 (Brasil).CPF (11 dígitos) ou CNPJ (14 dígitos). Opcional para
credit_card e pix, obrigatório para boleto. Caracteres de formatação são removidos.Campos de pagamento
Um dos valores
credit_card, boleto, pix. Precisa estar presente em payment_methods do plano.Obrigatório quando
type=credit_card. Campos:number(string, máx. 16) — número do cartão.cvv(string, máx. 4).name(string, máx. 255) — nome do portador.expirationMonth(string, tamanho 2) — ex.:"08".expirationYear(string, tamanho 4) — ex.:"2028".id(string, opcional) — se você já tem um UUID de cartão tokenizado, envieidno lugar dos campos brutos.
Obrigatório para
credit_card. Inteiro entre 1 e 21. Observação: assinaturas são cobradas com max_installments=1 independentemente desse valor — veja o fluxo de assinaturas para o racional.Obrigatório quando
type=boleto. Campos do endereço:line1,line2,neighborhood,city— strings, máx. 255.state— UF de 2 caracteres (ex.:"SP").postalCode— CEP de 8 dígitos, apenas números.
Quando
true e type=credit_card, tokeniza o cartão antes de cobrar e armazena o token no assinante. O token é reutilizado em todas as cobranças recorrentes seguintes.Resposta
201 Created em caso de sucesso.
Resumo público do assinante — veja Obter contexto público do assinante para o formato completo. Inclui
id, name, email, phone_number, country_code, taxpayer_id, status, next_billing_date, subscribed_at e saved_card quando aplicável.Resumo do primeiro pagamento da assinatura:
id— UUID do pagamento.status—paid,pendingoufailed.payment_method— espelha otypeenviado na requisição.pix— presente apenas quandotype=pix; contém os dados do QR Code.boleto— presente apenas quandotype=boleto; contém a URL e o código de barras do boleto.
Inconsistência conhecida do campo
amount: o valor é exposto como string em centavos (ex.: "4990" = R$ 49,90), diferente da convenção em centavos inteiros adotada em outros endpoints. Trate-o como string e converta para inteiro antes de operar aritmeticamente.Erros
| Status | Quando |
|---|---|
400 | Erro de validação: campos faltantes, CPF/CNPJ inválido, método de pagamento fora do payment_methods do plano, card ausente para cartão de crédito, address ou taxpayer_id ausentes para boleto, conta do plano mal configurada ou cartão recusado antes da cobrança. |
402 | Cartão recusado pelo emissor. O corpo da resposta contém o motivo da recusa. Tanto o pagamento quanto o assinante são marcados como failed. |
404 | Não existe plano com o plan_id informado. |
500 | Falha inesperada de processamento. O pagamento e o assinante são marcados como failed. |