Skip to main content
POST
Criar assinatura
Cria uma nova assinatura. Sem trial (PENDING), a primeira cobrança roda no mesmo request. Paid → 201. Decline de negócio → 422 (UVV154147) com subscription_id / invoice_id. Com trial (TRIAL), não há cobrança no create. O endpoint é limitado a 20 requisições por minuto por rastreador do throttler (credencial/IP). Em excesso, a API responde 429. payment_methods aceita credit_card (PAN) ou pix. Sem trial e com PIX, a resposta inclui pix.qrcode e a assinatura permanece PENDING até o pagamento. A resposta HTTP do create usa snake_case (subscription_id, subscription_status, …). trial_unit aceita apenas DAY. transaction_idempotency_id deve ser único por organização.

Resposta de sucesso (201)

Inclui status da assinatura/invoice/cobrança quando a cobrança sync é paga, quando é trial sem cobrança, ou quando é PIX aguardando pagamento. Exemplo PIX (sem trial):

Declínio na cobrança sync (422 / UVV154147)

A assinatura é criada (PAST_DUE, invoice OPEN), mas a API não devolve 201 com falha embutida. Body:
transaction_id é público e só entra no body quando a adquirente devolveu um id na tentativa recusada. Recuperação: reenvie o mesmo POST com o mesmo transaction_idempotency_id e o mesmo payload de negócio. O backend cria o próximo charge attempt e cobra de novo (retries manuais via POST não aplicam o limite da fila automática). Não há retry automático na fila para a primeira cobrança (auto_charge=false).

Erros de negócio e cobrança

Corpo padrão:
Os codes são opacos no formato UVV154 + 3 dígitos. Use-os para branching programático.

Customer

external_customer_id e documento (número + tipo) são únicos por organização. No create de assinatura:
  • mesmo external_customer_id com nome/email/telefone/documento divergente → 422 / UVV154640 (CUSTOMER_DATA_MISMATCH);
  • mesmo documento (número + tipo) com external_customer_id diferente → 422 / UVV154718 (EXTERNAL_CUSTOMER_ID_MISMATCH).

Authorizations

client-id
string
header
required
client-secret
string
header
required

Headers

client-id
string
required

ID público da credencial do merchant

client-secret
string
required

Secret da credencial do merchant

Body

application/json
subscription_plan_id
string<uuid>
required

UUID de um plano ACTIVE criado antes via POST /v1/recurrency/plan. Define valor, moeda e cadência da assinatura.

grace_period_days
integer
required

Dias de tolerância após falha de cobrança antes do cancelamento terminal.

Required range: x >= 0
Example:

3

customer
object
required

Dados do cliente. Reaproveitado por external_customer_id quando já existir.

payment_methods
object
required

Método de pagamento (credit_card com PAN ou pix).

transaction_idempotency_id
string
required

Chave de idempotência da criação (scope subscription_create)

Example:

"sub-create-0001"

trial_duration
integer | null

Duração do trial desta assinatura. Sobrescreve o trial padrão do plano quando informado.

Required range: x >= 0
trial_unit
enum<string> | null

Unidade do trial desta assinatura. Apenas DAY é aceito.

Available options:
DAY

Response

Assinatura criada. Sem trial, a primeira cobranca e sincrona: cartao pago → ACTIVE; PIX aguardando pagamento → PENDING com pix.qrcode; trial → TRIAL sem cobranca. Decline de negocio na cobranca sync responde 422 (UVV154147), nao 201.

subscription_id
string<uuid>

Identificador da assinatura criada.

customer_id
string<uuid>

Identificador do cliente vinculado.

invoice_id
string<uuid>

Identificador da primeira invoice.

subscription_status
enum<string>

Status da assinatura após o create (ACTIVE se paid; PENDING se PIX waiting_payment; PAST_DUE se decline; TRIAL se trial).

Available options:
ACTIVE,
PENDING,
TRIAL,
PAST_DUE,
CANCELLED
Example:

"ACTIVE"

invoice_status
string | null

Status da invoice após a cobrança sync (ou open no trial/PIX pendente).

charge_status
enum<string> | null

Status da tentativa de cobrança. Null no trial (sem cobrança no create). pending para PIX aguardando pagamento.

Available options:
pending,
succeeded,
failed
transaction_id
string<uuid> | null

ID da transação quando a cobrança gerou pagamento.

failure_code
string | null

Categoria pública de recusa em decline (ex.: issuer_declined). Null quando paid/trial/PIX pendente.

failure_message
string | null

Rótulo público da recusa. Null quando paid/trial/PIX pendente.

pix
object | null

Presente quando a primeira cobrança PIX foi gerada e aguarda pagamento.