Subscriptions & Rebilling
Time: ~10 minutes | Difficulty: IntermediateWhat Are Subscriptions in TagadaPay?
TagadaPay manages the entire recurring billing lifecycle — creation, automatic rebills, retries on failure, pause/resume, cancellation, and processor changes. It’s PSP-agnostic: the same subscription can be billed through Stripe today and NMI tomorrow, without touching your code.Subscriptions are vaulted. The customer’s card is tokenized once. TagadaPay charges it automatically each cycle — through whichever processor your payment flow selects. You never handle raw card data or PSP-specific recurring APIs.
Subscription Lifecycle
Create a Subscription
Create with a Free Trial
active and triggers the first rebill.
Manual Rebill
Trigger an immediate charge on anyactive or past_due subscription — useful for dashboards, support tools, or retry scripts.
What happens under the hood:
- TagadaPay loads the subscription’s price, currency, and payment instrument
- Routes the charge through your payment flow (cascade, weighted, fallback — all automatic)
- On success → updates
nextBillingDate, status staysactive - On decline → enters retry logic (see below)
When to Use Manual Rebill
Batch Retry All Past-Due Subscriptions
Automatic Retry on Failure
When a rebill is declined, TagadaPay doesn’t immediately cancel. It retries automatically:
During retries, the subscription status is
past_due. After max retries, it’s automatically canceled.
Cancel a Subscription
Cancel Immediately
Cancel at Period End
Bulk Cancel
Resume a Subscription
Resume acanceled, paused, or past_due subscription:
cancelAtPeriodEnd: true but hasn’t reached the end yet, resuming clears the cancellation flag.
Pause a Subscription
Pausing stops billing without canceling — the subscription stays on file and can be resumed at any time. Useful for customer-portal self-serve, seasonal accounts, or account-recovery flows where you don’t want to lose the vaulted card.Bulk Pause
{ success: true }.
Pause vs. Cancel at Period End
Resume works the same way for both
paused and canceled states — tagada.subscriptions.resume({ subscriptionIds: [...] }).
Change Processor
Move a subscription from one processor to another — for example, migrating from Stripe to Checkout.com, or clearing a stuck processor.Assign a Specific Processor
Let TagadaPay Auto-Select
Use Case: Migrate All Subscriptions from Stripe to NMI
List & Filter Subscriptions
Available Filters
Retrieve a Subscription
Webhook Events
Listen for subscription events via webhooks to keep your system in sync:Full Example: Subscription with Trial, Rebill, and Processor Migration
Next Steps
Multi-PSP Routing & Vault
Connect Stripe, NMI, Checkout.com, Airwallex and route payments intelligently
Headless Payments (Frontend)
Build your own checkout UI with client-side card tokenization and 3DS
Node SDK Quick Start
Get started with stores, products, and funnels
API Reference
Full REST API documentation
