Modelo mental
Uma assinatura na AbacatePay tem três fases distintas:POST /subscriptions/create não cria uma assinatura diretamente — ele cria um checkout de assinatura. A assinatura em si (com id: subs_...) só existe após o cliente concluir o pagamento. Esse detalhe muda como você lida com os webhooks: ouça subscription.completed para confirmar que a assinatura está ativa, não apenas que o checkout foi criado.
Criar checkout
Inicia o fluxo de assinatura.
Cancelar
Cancela imediatamente, sem cobranças futuras.
Alterar plano
Muda o produto; novo valor no próximo ciclo.
Toda assinatura antes de ser iniciada, o seu cliente deve passar pelo Checkout. A diferença é que um checkout de assinatura aceita só um produto, e esse produto precisa ter ciclo (frequency) definido na loja. Quando o pagamento é realizado, a assinatura se torna ativa.
Parâmetros
OPOST /subscriptions/create usa os mesmos parâmetros do Checkout:
Exemplo (cada item só precisa de
id e quantity; o ciclo vem do produto):
Resposta
Create e list retornam o mesmo formato do Checkout (id, url, amount, items, status, etc.).
Resposta:
Ciclo de cobrança
Definido no produto ao criar na loja. Valores: WEEKLY, MONTHLY, SEMIANNUALLY, ANNUALLY.Status
Mesmos do Checkout: PENDING, EXPIRED, CANCELLED, PAID, REFUNDED.Período de teste gratuito (Free Trial)
Configure um período de teste no produto com o campotrialDays ao criar o produto. Durante o trial, o cliente não é cobrado — a primeira cobrança ocorre somente ao final do período.
Como funciona
- Criação do produto: defina
trialDays(inteiro de 1 a 90) junto comcycle. - Checkout: o cliente insere o cartão normalmente, mas o valor cobrado é R$ 0,00. O cartão é apenas tokenizado para uso futuro.
- Assinatura ativa imediatamente: a assinatura é criada com
status: ACTIVEe os campostrialDaysetrialEndsAtpreenchidos. - Fim do trial: na data
trialEndsAt, a primeira cobrança pelo valor integral é processada automaticamente. - Renovações: seguem o ciclo normal do produto a partir do fim do trial.
Exemplo de produto com trial
Objeto da assinatura com trial
Após a ativação, a assinatura expõetrialDays e trialEndsAt:
Webhook de início de trial
Quando uma assinatura com trial é criada, o eventosubscription.trial_started é disparado:
Cancelamento durante o trial
Cancelar uma assinatura em período de trial tem o mesmo comportamento que cancelar uma assinatura normal: o cancelamento é imediato e nenhuma cobrança futura é processada. Veja Cancelar assinatura.Gerenciando assinaturas ativas
Após uma assinatura ser criada e ativada, você pode gerenciá-la com os seguintes endpoints:Produtos de uso (pay-as-you-go)
Além do produto principal (com ciclo), uma assinatura pode acumular cobranças variáveis via Registrar uso. O produto referenciado precisa ser um produto sem ciclo — ele representa um item cobrado por unidade consumida (ex: chamadas de API, SMS, créditos).Segurança
- Requisições autenticadas via Bearer Token
- Abusos podem levar à suspensão da conta conforme os termos de uso