Skip to main content
Na Ephra, a recorrência é gerenciada pela plataforma. Você só inicia a assinatura com a 1ª cobrança no cartão — a partir daí a Ephra re-cobra o cartão automaticamente a cada ciclo. Você não armazena cartão nem agenda cobranças.

O modelo de 3 camadas

Produto

Um produto marcado como assinatura no dashboard: tipo digital + cobrança recorrente.

Oferta / Plano

Define a frequência (mensal, anual…) e o preço. Gera um offerSlug.

Assinatura

O ProductSubscription, criado quando a 1ª cobrança é aprovada.

Pré-requisitos

1

Configure o produto de assinatura

No dashboard, crie um produto digital + recorrente com um plano (frequência + preço). Guarde o productId e o offerSlug.
2

Autentique-se

Troque sua API key por um token Bearer de curta duração. Veja Autenticação.
3

Tokenize o cartão

Gere um cardToken (ct_...) em Tokenizar cartão. Ele é de uso pontual e curta duração — tokenize imediatamente antes de iniciar a assinatura.

O ciclo de vida

1

Você inicia a assinatura

Chame POST /v1/subscriptions com productId, offerSlug, o cardToken e o customer. Não envie amountInCents — o valor vem do plano.
2

A 1ª cobrança define o resultado

Se aprovada, a assinatura nasce active e a resposta traz data.subscription. Se recusada, a assinatura não é criada — trate o retry ou peça um novo cartão (veja data.transaction.refuseReason).
3

A Ephra assume a recorrência

Um job diário re-cobra o cartão a cada ciclo. Em caso de falha há retentativas automáticas (dunning); após 5 falhas consecutivas a assinatura é cancelada e o acesso é revogado.
Uma assinatura só existe se a 1ª cobrança for aprovada. Sempre confirme que data.subscription veio na resposta antes de liberar o acesso.

Status da assinatura

Frequências do plano

weekly (Semanal), monthly (Mensal), bimonthly (Bimestral), quarterly (Trimestral), semiannual (Semestral), annual (Anual).

Acompanhamento por webhook

Cada cobrança recorrente gera uma nova transação, que dispara os webhooks de transação que você já assina (transaction_paid, transaction_refunded). Use-os para acompanhar cada ciclo — não é preciso ficar consultando a API.
O cancelamento automático após 5 falhas dispara o evento product_canceled com cancelReason: max_retries.
Um cliente tem uma assinatura ativa por produto. Iniciar uma nova para o mesmo produto + cliente substitui/reinicia a existente.

Rotas de assinatura

Iniciar assinatura

Faz a 1ª cobrança e cria a assinatura.

Listar assinaturas

Lista paginada com métricas (MRR, churn, LTV).

Consultar assinatura

Detalhe, cliente e histórico de cobranças.

Cancelar assinatura

Encerra a assinatura e revoga o acesso.