Skip to main content
Subscriptions automate recurring revenue. Create flexible billing cycles, free or paid trials, plan changes with proration, and add-ons. Customers renew automatically until they cancel or the term ends.

Upgrade & Downgrade

Control plan changes with proration and quantity updates.

On‑Demand Subscriptions

Authorize a mandate now and charge later with custom amounts.

Customer Portal

Let customers manage plans, billing, and cancellations.

Subscription Webhooks

React to lifecycle events like created, renewed, and canceled.

What Are Subscriptions?

A subscription is a recurring product that charges customers on a schedule. Ideal for SaaS, memberships, digital content, and support plans.
  • SaaS licenses: Apps, APIs, or platform access
  • Memberships: Communities, programs, or clubs
  • Digital content: Courses, media, or premium content
  • Support plans: SLAs, success packages, or maintenance

Key Benefits

  • Predictable revenue: Recurring billing with automated renewals
  • Flexible cycles: Monthly, annual, custom intervals, and trials
  • Plan agility: Proration for upgrades and downgrades
  • Add-ons and seats: Attach optional, quantifiable upgrades
  • Hosted checkout: Checkout pages and Customer Portal
  • Developer-first: Clear APIs for creation, changes, and usage tracking

Creating Subscriptions

Create subscription products in your Dodo Payments dashboard, then sell them through checkout or your API. Separating products from active subscriptions lets you version pricing, attach add-ons, and track performance independently.

Subscription Product Creation

Configure the fields in the dashboard to define how your subscription sells, renews, and bills. The sections below map directly to what you see in the creation form.

Product Details

  • Nome do produto (obrigatório): o nome de exibição mostrado no checkout, no Customer Portal e nas faturas.
  • Descrição do produto (opcional): uma declaração clara de valor que aparece no checkout e nas faturas.
  • Imagem do produto (opcional): PNG/JPG/WebP de até 3 MB. Usada no checkout e nas faturas.
  • Marca: associe o produto a uma marca específica para definir o tema e os emails.
  • Categoria fiscal (obrigatória): escolha a categoria (por exemplo, SaaS) para determinar as regras fiscais.
Pick the most accurate tax category to ensure correct tax collection per region.

Pricing

  • Tipo de preço: Escolha Subscription (este guia). As alternativas são Pagamento único e Cobrança baseada em uso.
  • Preço (obrigatório): Preço recorrente base com moeda. Um preço diferente de zero deve atender ao mínimo de subscription para a moeda que o cliente paga: $1.00 para USD. Em moedas diferentes de USD, EUR e GBP, o preço também deve valer pelo menos $1.00. Por exemplo, uma subscription em AED precisa de aproximadamente 3.70 AED, não do mínimo listado de 2.00 AED. EUR e GBP usam seus próprios mínimos listados. Consulte Valores mínimos. Valores abaixo do mínimo não são compatíveis. Um preço exatamente igual a $0 é um caso separado e compatível; consulte Cartão opcional com preço zero.
  • Desconto aplicável (%): Desconto percentual opcional aplicado ao preço base; refletido no checkout e nas faturas. Você pode inserir até duas casas decimais, como 10.5. Na API, use discount_bps (pontos-base, portanto 1050 corresponde a 10.5%).
  • Repetir pagamento a cada (obrigatório): Intervalo para renovações, por exemplo, a cada 1 mês. Selecione a frequência (meses ou anos) e a quantidade.
  • Período da subscription (obrigatório): Prazo total durante o qual a subscription permanece ativa (por exemplo, 10 anos). Após o término desse período, as renovações são interrompidas, a menos que sejam estendidas.
  • Dias do período de avaliação (obrigatório): Defina a duração do período de avaliação em dias. Use 0 para desativar períodos de avaliação. A primeira cobrança ocorre automaticamente quando o período de avaliação termina.
  • Valor do período de avaliação: Cobrança inicial opcional para um período de avaliação pago. Deixe em branco para um período de avaliação gratuito. Consulte Períodos de avaliação pagos.
  • Cartão opcional com preço de $0: Permita que os clientes iniciem a subscription sem adicionar um cartão quando o preço for $0 ou quando um desconto deixar nenhum valor devido hoje. Um período de avaliação gratuito tem sua própria caixa de seleção Iniciar o período de avaliação sem um cartão. Consulte Cartão opcional com preço zero.
  • Selecionar add-on: Anexe até 10 add-ons que os clientes podem comprar junto com o plano base.
Editing the price of an active product changes what new customers pay. Existing subscriptions are never repriced — each one keeps the price it was created with and renews at that price for as long as it stays active.To move an existing subscriber onto a different price, change their plan explicitly with Change Plan, or let them switch through the Customer Portal if you have enabled self-service plan changes. Your proration settings apply to that plan change, not to product price edits.
Add-ons are ideal for quantifiable extras such as seats or storage. You can control allowed quantities and proration behavior when customers change them.

Advanced Settings

  • Preços com impostos incluídos: Exiba os preços com os impostos aplicáveis incluídos. O cálculo final dos impostos ainda varia de acordo com a localização do cliente.
  • Chave de licença (em Entitlements): Emita uma chave exclusiva para cada cliente após a compra. Consulte o guia Chaves de licença.
  • Arquivos digitais (em Entitlements): Entregue arquivos ou conteúdo automaticamente após a compra. Saiba mais em Entrega de produtos digitais.
  • Metadados: Anexe pares de chave–valor personalizados para marcação interna ou integrações com clientes. Consulte Metadados.
Use metadata to store identifiers from your system (e.g., accountId) so you can reconcile events and invoices later.

Subscription Trials

Trials let customers evaluate a subscription before paying the full recurring price. A trial can be free (no charge until it ends) or paid (a reduced amount charged upfront). After the trial, the full price charges at the first renewal.

Configuring Trials

Set Trial Period Days in the product’s pricing section (use 0 to disable). Override it when creating a subscription:
trial_period_days must be between 0 and 10,000 days.
Charge a reduced amount upfront for the trial window. Set Trial Amount on the product’s price. The full recurring price charges at the first renewal.
Subscription pricing form with a trial duration and an optional trial amount for a paid trial
Paid trials are configured on the product’s price, not per subscription or per checkout session:
The trial amount is taxed and included in checkout calculations and payment link pricing. Adaptive Currency markup applies per currency. The preview endpoint returns trial_amount and trial_period_days so you can show the amount due today before creating the subscription.

Card-Optional at Zero Price

Let customers start a subscription without adding a payment method when nothing is due today. Enable it per price in the product’s pricing section, with one checkbox for each case below.
Subscription pricing form with the Card-Optional at $0 Price checkbox next to Trial Period and Default Discount
Nothing due today happens in two cases:
  • A free trial: trial_period_days is set with no trial_amount, so the first charge is $0 while the trial runs. Check Start the trial without a card under Trial Period (Days).
  • A $0 recurring price: Either the price itself is $0, or a discount brings it to $0 (the product’s Default Discount (%) or a discount code stacked at checkout). Check Card-optional at $0 Price.
A paid trial always requires a card. Setting a Trial Amount means something is due, so the card requirement stays on.
Each checkbox maps to its own API field: trial_payment_method_optional (free trial case) and zero_amount_payment_method_optional ($0 price case). You can enable either one on its own.

What Happens Without a Card

A card-optional subscription is created and activated immediately with no payment method on file. The create response returns payment_method_required: false, and the subscription object shows has_payment_method: false. Then:
  1. A reminder email goes out before billing starts. The number of days is set in Settings → Subscriptions → Payment Method Reminder (see Subscription Settings). The Add Payment Method Reminder email (see Customer Emails) links the customer to the Customer Portal to add a card.
  2. If no card is added in time, the subscription goes on_hold when the trial ends or the discounted period runs out and a real charge is due. The customer receives the Subscription On Hold, No Payment Method email.
  3. Adding a payment method reactivates the subscription (see Reactivating from On Hold). A charge is created for the amount now due, and the subscription returns to active on success.
Subscriptions settings tab showing the Payment Method Reminder days field
A card added before the trial or discounted period ends prevents the hold. The next renewal charges that card.

Preventing Trial Misuse

Stop customers from repeatedly claiming trials of the same product. When enabled, a customer who has already redeemed a trial of a product gets a paid subscription instead of a fresh trial of that product.
Prevent Trial Misuse toggle in the Subscriptions settings tab
Enable it from Settings → Subscriptions. Once enabled:
  • Customers are matched by normalized email (plus-aliases stripped), so user+trial@example.com and user@example.com count as the same person.
  • Redemptions are recorded at trial activation, so a customer who cancels the same day has still consumed their trial.
  • Existing customers are backfilled from historical trials by email, so past trial users are recognized immediately.
  • Passing trial_period_days explicitly on a checkout session or subscription skips the check and grants that trial.
Off by default. See Subscription Settings for all business-level subscription controls.

Detecting Trial Status

The subscription object has no trial status field. For a free trial, retrieve the subscription’s payments: if there is exactly one payment with a total_amount of 0, the subscription is in trial. This check doesn’t work for paid trials, where the first payment is the trial_amount.
This check only works for free trials. For a paid trial, the first payment equals the trial amount. Compare the first payment against the subscription’s trial_amount, or check whether next_billing_date is still within the trial window.

Updating Trial Period

Extend the trial by updating next_billing_date:
You cannot set next_billing_date to a past time. The date must be in the future.

Subscription Plan Changes

Upgrade or downgrade subscriptions, adjust quantities, or migrate to different products. Proration mode controls whether the change triggers an immediate charge, creates credit, or applies no billing adjustment. You can change plans and update the next billing date from the dashboard, or change plans with the API. To let customers change plans themselves, add subscription products to a Product Collection and enable Allow Subscription Updates in Settings → Subscriptions.

Product Collections

Group related products to enable upgrade/downgrade paths in the Customer Portal.

Proration Modes

Choose how customers are billed when changing plans:

prorated_immediately

Credits the unused portion of the current billing cycle, then charges a full cycle at the new plan. The new plan is never charged at a fraction of its price. Net immediate charge = (full new cycle) minus (remaining fraction × full old cycle). If the credit exceeds the new cycle charge, the difference is held as subscription-scoped credit for future renewals. The billing cycle re-anchors to the change date.

difference_immediately

Charges the price difference immediately (upgrade) or adds credit for future renewals (downgrade).
Credits from downgrades are subscription-scoped and auto-applied to future renewals. They’re distinct from Credit-Based Billing entitlements.
When a customer downgrades with difference_immediately, the unused value becomes a subscription-scoped credit that automatically offsets future renewals:

full_immediately

Charges the full new plan amount immediately, ignoring remaining time. Best for resetting billing cycles.

do_not_bill

Switches to the new plan immediately without any billing adjustment. No charges, no credits. The new plan is active as soon as the call succeeds but is not charged until the next renewal. The customer keeps the upgraded plan free for the rest of the current cycle. The original renewal date is preserved, and the new plan price applies at that renewal.
Scenario: Customer on Basic ($30/month) upgrades to Pro ($80/month) on day 16 of a 30-day cycle using prorated_immediately.
The customer starts a full new month of Pro today, so Pro is charged in full and only the unused time on Basic is credited.Next renewal on February 15 (January 16 + 30 days): $80.00/month.
For more detailed calculation examples and edge cases, see our full Upgrade & Downgrade Guide.
Scenario: Customer on Pro ($80/month) downgrades to Starter ($20/month) using difference_immediately.
The $60 credit auto-applies to future renewals:
  • Renewal 1: $20 − $20 (credit) = $0.00 ($40 credit remaining)
  • Renewal 2: $20 − $20 (credit) = $0.00 ($20 credit remaining)
  • Renewal 3: $20 − $20 (credit) = $0.00 (credit exhausted)
  • Renewal 4: $20.00 (full price)
Learn more about how credits are managed in the Upgrade & Downgrade Guide.

Changing Plans with Add-ons

Modify add-ons when changing plans. Add-ons are included in proration calculations:
By default (effective_at: 'immediately') plan changes trigger immediate charges. Pass effective_at: 'next_billing_date' to schedule the change for the next billing date instead — the pending change is returned on the subscription as scheduled_change, and you can cancel it with Cancel Scheduled Plan Change. Failed charges may move the subscription to on_hold status, unless you pass on_payment_failure: 'prevent_change', which keeps the subscription on its current plan until payment succeeds. Track changes via subscription.plan_changed webhook events. Plan changes are rejected while a subscription is past_due — see Grace Period.

Previewing Plan Changes

Preview the exact charge before committing:

Preview Change Plan API

Preview plan changes before committing.

Pausing and Resuming Subscriptions

Pause a subscription to freeze it instead of ending it. Billing stops, access is revoked, and the subscription keeps its plan and history. Use it as a retention alternative to cancellation. Open any active subscription under Sales → Subscriptions and click Pause subscription. The status changes to paused and renewals stop until resumed.
Subscription details page in the dashboard showing the Update, Pause subscription, and Cancel Subscription buttons

What Happens When You Pause

  • Renewals stop. No invoice is generated and no renewal charge is attempted while paused.
  • Access is revoked immediately. Pausing revokes every delivered and pending entitlement grant, which disables license keys and stops new digital product download URLs. Resuming re-grants them.
  • The billing clock freezes. next_billing_date and expires_at both move forward by the exact length of the pause, so the customer keeps the time they already paid for.
  • No pause duration limit. A paused subscription stays paused until resumed. You don’t set a pause length upfront.
Pausing revokes access immediately, not at the end of the billing period. Make that clear to the customer before they confirm.
Resuming returns the subscription to active and restores entitlements. Because the clock was frozen, the next renewal lands the paused duration later than originally scheduled.

Pausing Usage-Based Subscriptions

A usage-based subscription can have usage recorded but not yet billed when paused. Bill Usage at Pause under Settings → Subscriptions controls what happens: Only metered usage is settled this way. The recurring base fee is never charged at pause time. Standard and on-demand subscriptions have nothing to settle.
Bill Usage at Pause is recorded per billing cycle. Changing it mid-cycle doesn’t affect the cycle already in progress; the new value applies from the next cycle onward.
The settlement invoice is collected like any other invoice, so it can fail. If it goes unpaid past the dunning grace period, the subscription moves to on_hold while remaining flagged as paused.
A subscription in that state has two exits:
Resuming is a valid exit from this hold. You don’t have to collect the settlement invoice first. Resuming forgives the outstanding usage rather than deferring it.

Letting Customers Pause Their Own Subscriptions

Allow Subscription Pause under Settings → Subscriptions controls whether customers can pause and resume from the Customer Portal. Off by default, so self-service pause is opt-in.
Subscriptions settings tab showing the Allow Subscription Pause and Bill Usage at Pause toggles
This setting only governs the Customer Portal. You can always pause and resume from the dashboard or the API. Turning it off stops new customer pauses, but doesn’t trap a customer who is already paused. They can still resume a pause they started. Pauses you started stay under your control.

Pausing from the Customer Portal

See what the customer sees, including the confirmation dialog.

Pausing via API

Pause and resume run through the status field on the update subscription endpoint:
Send paused or active on its own. Combining either with any other field is rejected with 422. The older boolean pause field is removed and always fails with 422, so a caller still on it gets a loud error instead of a silent no-op.
Pausing emits subscription.paused and resuming emits subscription.unpaused. Both carry the full subscription object, with paused_at set while paused and null once resumed.

Pause and Other Subscription Actions

  • Cancellation still works. You can cancel a paused subscription exactly as you would an active one. Any open settlement invoice from the pause is voided.
  • Scheduled plan changes are delayed, not dropped. A plan change scheduled for the next billing date sits untouched while paused, then applies at the shifted billing date once resumed. Its scheduled_change.effective_at is a snapshot from when it was scheduled and is not adjusted for the pause. To drop the change, use Cancel Scheduled Plan Change.

Subscription States

A subscription moves through defined statuses over its lifetime:
on_hold and failed are often confused. on_hold is recoverable for an already-active subscription whose renewal failed. failed is terminal and only occurs when initial subscription creation fails.
past_due and on_hold are both involuntary but differ in one way: past_due keeps the customer’s access, on_hold removes it. A subscription reaches past_due only when you enable a grace period. Without one, a failed renewal goes straight to on_hold.
on_hold and paused are distinct. on_hold is involuntary (payment failed). paused is deliberate (you or the customer chose to freeze it). A usage-based subscription can still owe a settlement invoice at the moment it is paused (see Pausing Usage-Based Subscriptions).

State Machine

On Hold State

A subscription enters on_hold when:
  • A renewal payment fails (insufficient funds, expired card, etc.)
  • A plan change charge fails
  • Payment method authorization fails
  • A pause settlement invoice for a usage-based subscription goes unpaid
  • A grace period ends with renewal debt unpaid and expiry action is on_hold
  • A Card-Optional at Zero Price subscription’s free trial or $0 period ends with no payment method ever added
If you set a grace period, a failed renewal moves the subscription to past_due first. It reaches on_hold only when the window ends.
When a subscription is in on_hold, it will not renew automatically. You must update the payment method to reactivate it.

Reactivating from On Hold

Update the payment method to reactivate a subscription from on_hold. This automatically:
  1. Creates a charge for remaining dues
  2. Generates an invoice
  3. Processes the payment using the new payment method
  4. Reactivates the subscription to active on successful payment
The one exception is a hold caused by an unpaid pause settlement invoice. Clearing that invoice returns the subscription to paused, not active, because pause is where it was before the payment failed. Resume it explicitly once the invoice is settled.
After successfully updating the payment method for an on_hold subscription, you’ll receive payment.succeeded followed by subscription.active webhook events.

Grace Period

A grace period is a window between a failed renewal and loss of access. The subscription moves to past_due instead of on_hold, and the customer keeps everything they bought until the window ends. This gives them time to fix a card without losing your product. Off by default. Enable one from Settings → Subscriptions → Subscription Grace Period.
Subscription settings tab showing the Subscription Grace Period toggle, the number of days field, and the status after the grace period

Settings

What Happens During the Window

While a subscription is past_due:
  • The customer keeps access. Entitlement grants, license keys, and digital product downloads all stay live.
  • Usage-based billing keeps recording usage.
  • The subscription does not renew.
  • The subscription cannot be paused.
  • Dunning emails go out, and payment retries continue.
  • subscription.past_due is emitted at entry.
The subscription.past_due webhook carries the deadline as past_due_ends_at. Store it when the event arrives — the subscription API does not return this field. Every subscription webhook while the window is open carries the same value, next to a status of past_due.
The window is fixed when the subscription enters it. If you change the length or expiry action later, a window already open keeps its original values. New values apply to the next subscription that enters a window.

Recovery

The window closes when the renewal debt is settled through a successful retry or when the customer updates the payment method. The subscription returns to active, and a subscription.active webhook is sent. Only the failed renewal opens a window. An unrelated merchant charge that goes unpaid does not move a subscription to past_due.

When the Window Ends

If the renewal debt is still unpaid at the deadline, the subscription moves to on_hold or to cancelled, as you configured. At the same time:
  • A scheduled plan change on the subscription is cancelled.
  • A pending plan change whose invoice is still unpaid is cancelled.
If the expiry action is cancel_subscription, open invoices are also voided, and their payment retries stop.
A pending plan change whose invoice was paid is applied while the window is still open, not at the deadline. A paid invoice settles the change whatever the subscription status.
Plan changes are rejected while a subscription is past_due. Settle the renewal debt first.

Webhook Events by Transition

Each transition emits a webhook so you can drive entitlement logic without polling:

Subscription Webhook Payloads

View the full payload schema for subscription lifecycle events.

API Management

Use POST /checkouts to create subscriptions programmatically from products, with optional trials (subscription_data.trial_period_days) and add-ons (product_cart[].addons).
POST /subscriptions is deprecated. Existing integrations keep working, but new integrations should use Checkout Sessions.

API Reference

View the create checkout session API.
Use PATCH /subscriptions/{subscription_id} to cancel at the next billing date, extend the subscription period, update billing details, or modify metadata. To change quantity, use the Change Plan API instead.

API Reference

Learn how to update subscription details.
Pause and resume run through the status field on PATCH /subscriptions/{subscription_id}: status: paused pauses an active subscription and status: active resumes it. Neither value can be combined with any other field in the same request. See Pausing and Resuming Subscriptions for full behavior and billing effects.

API Reference

View the update subscription API, including the status field.
Change the active product and quantities with proration controls.

API Reference

Review plan change options.
For on-demand subscriptions, charge specific amounts on demand.

API Reference

Charge an on-demand subscription.
Use GET /subscriptions to list all subscriptions and GET /subscriptions/{id} to retrieve one.

API Reference

Browse listing and retrieval APIs.
Fetch recorded usage for metered or hybrid pricing models.

API Reference

See usage history API.
Update the payment method for a subscription. For active subscriptions, this updates the payment method for future renewals. For subscriptions in on_hold, this reactivates the subscription by creating a charge for remaining dues.When generating a new payment-method link, you can pass allowed_payment_method_types to restrict which payment methods the customer sees. Customers will never see a method that isn’t in the list, though including a method does not guarantee it appears (availability depends on factors like customer location and your business settings).

API Reference

Learn how to update payment methods and reactivate subscriptions.

Common Use Cases

  • SaaS and APIs: Tiered access with add-ons for seats or usage
  • Content and media: Monthly access with introductory trials
  • B2B support plans: Annual contracts with premium support add-ons
  • Tools and plugins: License keys and versioned releases

Integration Examples

Checkout Sessions (Subscriptions)

Create a checkout session with a subscription product and optional add-ons:

Plan Changes with Proration

Upgrade or downgrade a subscription and control proration behavior:

Cancel at Next Billing Date

Schedule a cancellation that takes effect at the end of the current billing period:

Extend the Subscription Period

Extend how long a subscription runs by passing a new subscription_period_count and subscription_period_interval to PATCH /subscriptions/{subscription_id}. The subscription’s expiry is recomputed from the new count and interval:
A subscription’s period can only be increased, never shortened.

On‑Demand Subscriptions

Create an on‑demand subscription and charge later as needed:

Update Payment Method for Active Subscription

Update the payment method for an active subscription:
Para uma subscription de um carrinho com várias subscriptions, o novo método de pagamento também é movido para as outras subscriptions desse carrinho que têm a mesma moeda de liquidação e moeda de cobrança. Todas as subscriptions de um carrinho começam com o mesmo par. Se uma alteração posterior, como uma mudança de plano, mover uma delas para outra moeda de liquidação ou moeda de cobrança, atualize essa subscription separadamente.

Reativar subscription de on_hold

Reative uma subscription que foi colocada em espera devido a uma falha no pagamento:

Subscriptions com mandatos em conformidade com o RBI

As subscriptions de UPI e cartões indianos operam sob as regulamentações do RBI (Reserve Bank of India), com requisitos específicos de mandato.

Limites do mandato

O tipo e o valor do mandato dependem da cobrança recorrente da sua subscription:
  • Cobranças abaixo do limite mínimo do mandato (₹15,000 por padrão): Criamos um mandato sob demanda para o valor mínimo. O valor da subscription é cobrado periodicamente de acordo com a frequência da sua subscription, até o limite do mandato.
  • Cobranças iguais ou acima do limite mínimo do mandato: Criamos um mandato de subscription (ou um mandato sob demanda) para o valor exato da subscription.
O limite mínimo do mandato pode ser configurado por merchant ou por solicitação via mandate_min_amount_inr_paise (paise de INR). O valor registrado no banco é max(mandate_floor, billing_amount) — portanto, o limite mínimo se torna efetivamente o teto de autorização exibido ao cliente sempre que a cobrança for menor. Consulte Métodos de pagamento da Índia para obter informações detalhadas sobre mandatos em conformidade com o RBI e o limite mínimo de mandato configurável.

Considerações sobre upgrade e downgrade

Ao fazer upgrade ou downgrade de subscriptions, considere os limites do mandato:
  • Se um upgrade/downgrade resultar em um valor de cobrança que exceda o limite mínimo do mandato (₹15,000 por padrão) e ultrapasse o limite de pagamento sob demanda existente, a cobrança da transação poderá falhar.
  • O cliente pode precisar atualizar o método de pagamento ou alterar a subscription novamente para estabelecer um novo mandato com o limite correto.

Autorização para cobranças de alto valor

Para cobranças de subscription de ₹15,000 ou mais:
  • O banco solicitará que o cliente autorize a transação.
  • Se o cliente não autorizar, a transação falhará e a subscription será colocada em espera.

Atraso de processamento de 48 horas

As cobranças recorrentes em cartões indianos e subscriptions de UPI seguem um padrão de processamento específico:
  • As cobranças são iniciadas na data programada, de acordo com a frequência da sua subscription.
  • A dedução efetiva da conta do cliente ocorre somente após 48 horas do início do pagamento.
  • Essa janela de 48 horas pode se estender por mais 2 a 3 horas, dependendo das respostas da API do banco.

Janela de cancelamento do mandato

Durante a janela de processamento de 48 horas:
  • Os clientes podem cancelar o mandato pelos aplicativos bancários.
  • Se um cliente cancelar o mandato durante esse período, a subscription permanecerá ativa (caso extremo específico de subscriptions de cartões indianos e UPI AutoPay).
  • No entanto, a dedução efetiva poderá falhar e, nesse caso, colocaremos a subscription em espera.
Se você fornecer benefícios, créditos ou acesso ao uso da subscription aos clientes imediatamente após o início da cobrança, trate essa janela de 48 horas adequadamente:
  • Adie a ativação dos benefícios até a confirmação do pagamento
  • Implemente períodos de carência ou acesso temporário
  • Monitore o status da subscription para identificar cancelamentos de mandatos
  • Trate os estados de espera da subscription na lógica da sua aplicação
Monitore os webhooks da subscription para acompanhar alterações no status do pagamento e tratar casos extremos em que os mandatos são cancelados durante a janela de 48 horas.

Práticas recomendadas

  • Comece com níveis claros: 2 a 3 planos com diferenças evidentes
  • Comunique os preços: Mostre os totais, o rateio proporcional e a próxima data de renovação
  • Use períodos de avaliação com critério: Converta com onboarding, não apenas com tempo
  • Aproveite os add-ons: Mantenha os planos base simples e faça upsell de extras
  • Teste as alterações: Valide as mudanças de plano e o rateio proporcional no modo de teste
Subscriptions são uma base flexível para receita recorrente. Comece de forma simples, teste completamente e faça iterações com base nas métricas de adoção, churn e expansão.
Última modificação em 8 de outubro de 2026