Subscriptions that keep renewing.

Most subscription revenue is not lost at signup. It leaks later, at the renewal. A card expires. A mandate lapses. A bank declines for a reason nobody reads. BazPay bills EU subscribers on cards, SEPA Direct Debit and open banking through one API. Mandates, retries and dunning sit inside the gateway. Your app just listens for the webhook.

Three rails for the same renewal

EU payers do not all pay the same way. Pick the rail per plan, per country, or per payer. The billing logic above it stays identical.

MIT

Card on file

The classic renewal. Fast, and the widest reach.

  • First charge is SCA-authenticated, then stored
  • Renewals run as merchant-initiated transactions
  • Network tokens keep expired cards billing
  • Decline reasons come back coded, not guessed
How card acquiring works here

Account-to-account

Open banking

For renewals a payer prefers to approve each time.

  • Payer confirms in their own banking app
  • No card expiry and no chargeback route
  • Settles fast on SEPA Instant where the bank supports it
  • Useful for high-value annual invoices
Read about open banking pay-ins

Failed renewals, handled by reason

A blind retry loop annoys issuers and burns your attempt budget. Our engine reads the decline code first. Soft declines get another try. Hard declines stop at once and go to email.

Every attempt is logged with its code. You can see which issuers decline most, and when.

Track renewals in the dashboard
What the engine does with each decline
Decline reason Class Next action
Insufficient funds Soft decline Retry on a schedule tuned to payday cycles
Card expired Soft decline Try the network token, then ask the payer to update
Do not honour Soft decline Retry within the scheme's attempt limit, then escalate
Stolen or lost card Hard decline Stop retrying. Email the payer for a new method
Mandate cancelled Return code Pause the subscription and flag it in the dashboard

Attempt limits are set by the card schemes. We stay inside them and never add attempts of our own.

The life of one subscription

Four states. Each one fires a webhook the moment it changes.

  1. Sign up

    The payer authenticates once. We store a token or a mandate, never raw card data.

  2. Bill on schedule

    Charges run on your billing date. Proration is worked out for you.

  3. Recover failures

    Soft declines go into retry. Hard declines go straight to dunning email.

  4. Change or cancel

    Upgrades, pauses and cancellations post back the same day they happen.

The rules a renewal has to clear

Recurring payments in the EU are governed work. These four points decide whether a charge goes through.

SCA once, then exempt

The first charge carries strong customer authentication. Later renewals run as MIT. That is what the rules expect.

Mandates held our side

We store the mandate reference, signing date and payer details. Your database never has to.

PCI scope stays with us

BazPay holds PCI DSS Level 1 on the gateway. You keep SAQ A and zero card-data scope.

Low-risk only

We underwrite low-risk merchants. Subscription approval rates stay steady because the book stays clean.

Fraud checks run on renewals too. See the fraud tools and the checkout options for the pieces either side of billing.

Billing questions

Migrating an existing book of subscribers? Write to [email protected] and we will map your plans before you move a single payer.

Check plugin coverage first
Can I mix card and SEPA on one subscription?

Yes. A plan can hold more than one payment method per payer. If the card fails, you can fall back to the mandate. The billing schedule does not change.

How many times will you retry a failed charge?

We do not set the ceiling. Card schemes cap the number of attempts per declined transaction. Our engine stays inside that cap and stops early on hard declines.

Do I need my own billing system as well?

No. Plans, proration, trials and invoices run inside BazPay. Webhooks push every state change to your app, so your database can stay thin.

What happens when a card expires mid-term?

The engine tries the network token first. Many issuers update it silently. If that fails, dunning takes over and asks the payer for a new card.

Which platforms have a ready-made plugin?

All the major EU carts and CMS platforms. Most merchants go live in days. There is no long custom build for a standard subscription flow.

Run a full billing cycle first

Build a full billing cycle against the live API today. No card needed, and no sales call first.