Skip to main content
NewChargeback Protection + Fee Intelligence for high-volume merchants. Get a savings analysis and a review of your dispute handling.See how it works
Details

Chargeback Protection + Fee Optimization

See how it works: high-volume merchants get automated dispute evidence, interchange optimization, and real-time savings visibility.

See how it works

DEVELOPER PLATFORM

Recurring Payments API

The Recurring Payments API builds subscriptions, memberships and instalment plans against the same billing engine the RapidCents dashboard uses, so a plan created in code behaves identically to one created by an operator. It owns the parts that are tedious to rebuild: the schedule, the stored token each charge runs against, proration when a plan changes mid-cycle, notifications sent before a charge, and the retry sequence after a failed renewal. Each charge is an ordinary payment, with the same states and settlement records as anything else.

  • Sandbox with documented test cards
  • Signed webhooks
  • Typed errors and idempotent retries
  • Dedicated developer support
RapidCents recurring-payments API showing a subscription charge beside a terminal
A RapidCents subscription charge created over the API, using the same billing engine as the dashboard.

What crosses the wire

  • Where it sits

    Above the payments API rather than beside it. A plan produces charges, and each charge is an ordinary payment with the same states, the same error codes and the same settlement records as anything else on the account.

  • What you send

    A plan: the amount, the interval, any trial or setup fee, the retry policy, and the token to bill. Then a subscriber attached to it. The reference names each field and states which are fixed at creation and which can change later.

  • What comes back over time

    Events, not a return value. A renewal succeeding, a renewal failing, a retry succeeding, a plan changing, a subscription ending — each arrives as a webhook, and an integration that only reads the creation response knows nothing after the first cycle.

When to use it

  • Revenue that repeats

    Any charge that happens more than once on a schedule belongs here rather than in a job that calls the payments API on a timer and reimplements retries badly.

  • Instalment plans

    A fixed number of equal charges after a deposit, common in healthcare and professional services, is a schedule with an end date rather than an open subscription.

  • Plans that change

    Upgrades, downgrades and pauses mid-cycle need proration and an audit trail. Both are easier to inherit than to build, and both are where hand-rolled billing quietly diverges from the ledger.

How to implement Recurring Payments API

  1. Vault the card first and keep the token against the customer record.

  2. Create the plan with its amount, interval, trial and retry policy.

  3. Capture and store the customer’s consent to recurring billing at signup.

  4. Subscribe to the renewal, failure and retry events and act on them in your own system.

  5. Give customers a way to update the card, and route hard declines to it instead of retrying.

What fails, and how you find out

  • Retrying a hard decline on the schedule

    The retry sequence exists for soft declines. A closed account fails on day 3, day 7 and day 14 identically, against an issuer that has already said no.

  • Cancelling on the first failure

    Most failed renewals are an expired or reissued card rather than a customer leaving. Ending the subscription on the first decline turns a recoverable payment into a lost one.

  • Plan state living only in your database

    If your record says active and the engine says cancelled, the customer experiences whichever one your product reads. Drive your state from the events rather than from what you wrote when you created the plan.

  • No consent record

    A recurring charge a customer disputes is defended with the authorization you captured at signup. Not storing it turns an ordinary dispute into one you cannot answer.

Sandbox versus production

  • Cycles you do not have to wait a month for

    Sandbox is where a monthly plan can be observed through several renewals in a sitting, which is the only practical way to test dunning without waiting for real calendar time to pass.

  • Failures on demand

    A documented decline card attached to a plan produces a failed renewal and the retry sequence that follows it, so the recovery path can be asserted on rather than hoped for.

  • Updater results are simulated

    Sandbox can show a refreshed credential rescuing a renewal. Real recovery depends on network and issuer participation, so treat sandbox as proof your handling works rather than as a rate to plan around.

Questions about Recurring Payments API

How does the retry schedule work when a renewal fails?

Failed charges enter a retry queue and are attempted again on day 3, day 7 and day 14, with alerts, rather than immediately. Spacing attempts is deliberate: repeated immediate retries are treated as suspicious by issuers and reduce the chance the recovery succeeds.

What intervals are supported?

Weekly, monthly and quarterly, plus custom cadences, with trial periods and an optional setup fee charged before the recurring cycle begins. The reference states how each is expressed on a plan.

What happens if a customer changes plan mid-cycle?

Proration calculates the credit or charge for the unused portion and applies it to the next bill, so the customer is not billed twice for overlapping time and your revenue records stay consistent with what was actually delivered.

Can a subscription be paused rather than cancelled?

Yes, and pausing keeps the stored token rather than discarding it, so resuming does not require the customer to re-enter a card. Pause and cancel actions are both logged with the user who made them.

How should my application decide a subscriber has really churned?

On the events, after the retry sequence has completed and a hard decline or an explicit cancellation has arrived. Anything earlier is guessing, and the usual cost of guessing early is ending a subscription the updater would have rescued.

Can I migrate existing subscriptions from another system?

Schedules can be imported. The stored credentials are the hard part, because tokens are meaningful only inside the vault that issued them, so credential migration is a conversation with both providers rather than an API call.

Why do I need webhooks if the plan is already created?

Because everything after creation arrives as an event, not as a return value. Renewals succeeding, renewals failing, retries, plan changes and endings are all delivered as webhooks, so an integration that only reads the creation response knows nothing after the first cycle. Drive your own subscription state from those events.

Take the next step

Talk to a RapidCents specialist

RapidCents Fee Check reads a processing statement and shows interchange separately from the markup. Upload a statement for an instant breakdown, or open a merchant account and start accepting payments on one account.

  • No obligation
  • Payment specialists, not a call centre
  • Secure statement upload