Can I create a subscription that starts on a future date?
Yes. PassstartTime (ISO 8601 with timezone) when calling
/api/v1/subscription/create:
- The subscription is created immediately and activates automatically when
startTimearrives — no scheduler needed on your side. Before the start date it is already inACTIVEstatus with no billing period consumed yet, so readstartTime(not the status) to tell a not-yet-started subscription from a running one. - With a trial configured, the trial starts counting from
startTime; without one, the first deduction is executed onstartTime. startTimemust be strictly in the future and at most 365 days ahead; omitting it keeps the current behavior (immediate start).- On activation Waffo pushes an activation webhook; a failed first deduction enters the normal retry flow.
Is the user’s payment method verified before the start date?
Yes, at creation time, via a zero-amount authorization that validates the method and stores the token for future charges — the user sees a “verification only, no charge today” step, not a payment.- If verification fails, the subscription is not created and the API returns a payment-method verification error — ask the user to try another method.
- Your contract must allow zero-amount orders for this flow; otherwise creation is rejected.
- No funds are ever held, so cancelling before the start date needs no refund handling.
What operations are allowed before the start date?
Can users change or add payment methods on an existing subscription?
Yes, on the hosted subscription management page. Users can add extra payment methods, set a new default, reorder backups, or delete a method.- Supported for card, Apple Pay and Google Pay subscriptions only, and not once the subscription is cancelled or expired; the default method of an active subscription cannot be deleted.
- The subscription detail response returns
canChangePaymentMethodand the list of bound payment methods so you can drive your own UI. - A newly added method is verified with the same zero-amount authorization flow; switching the default takes effect from the next deduction.
What happens when the default payment method fails to charge?
If backup payment methods are bound, Waffo immediately retries with the backups in priority order, without waiting for the normal retry interval:- When a backup succeeds, the user is emailed and asked whether to make it the new default (the stored default stays unchanged until they confirm).
- If every backup fails, the order falls back to the configured retry strategy on the default method. Backup attempts are not counted against the card-scheme rolling retry window, and they do not trigger the payment-failed email — see Subscription retries & payment methods.
Can I raise the amount through the update API?
No./api/v1/subscription/update (both amount and scheduledAmounts)
only accepts values lower than or equal to the current ones. To charge
more, use /api/v1/subscription/change and move the user to a new plan.
After a successful update, Waffo emails a price-change notice to the subscriber
(original amount, new amount, effective period) — provided that notification is
enabled on your account — and pushes SUBSCRIPTION_UPDATE_NOTIFICATION to the
subscription’s notifyUrl. The update response is still the primary record
of what changed, so persist it; the webhook confirms the same change
asynchronously. Changes apply from the next billing period; the current period
is untouched. See
Subscription amounts & per-period scheduling.
Which notifications does Waffo send to my end users?
Waffo emails subscribers directly at key lifecycle points. Each type can be enabled or disabled per merchant; the language is the subscription’scashierLanguage if you set one, otherwise derived from the user currency.
Exact timing, suppression rules and how to avoid double-emailing are on
Subscription emails to your customers.
How are failed deductions retried?
Automatically, per the retry strategy configured for your contract; the schedule adapts to the billing cycle. Additional behaviors:- Retries end when the period’s attempts reach the contract maximum (the
period’s order closes; the subscription itself stays
ACTIVE) or when the subscription is cancelled with the close-retries-on-cancellation setting on. There is no separate “non-retryable decline” class that ends retries early. - Card retries are additionally capped by card-network compliance rules; attempts beyond the cap are deferred automatically.
- Whether pending retries stop the moment a subscription is cancelled depends on a setting in your contract. If you require that no further attempt is made after cancellation, confirm this setting with integration support.