Subscription Billing

Managed Subscription Billing

CheckoutJoy collects your PayFast and Paystack subscription and payment plan renewals, retries failed payments and emails customers a link to update their card.

With managed subscription billing, CheckoutJoy collects your subscription and payment plan renewals for you. Your customer's card is saved with your payment gateway at checkout. On every billing date CheckoutJoy charges it through your own gateway account, records the payment, and keeps the subscription up to date in your dashboard.

When a payment is declined, CheckoutJoy emails your customer, retries the payment on a schedule, and brings the subscription back to Active as soon as a payment goes through.

What you get

  • Renewals collected for you. Every subscription and payment plan is charged on its billing date, through your own PayFast or Paystack account.
  • Automatic retries. A declined payment is retried on a schedule instead of ending the subscription. See Failed Payment Recovery.
  • Customer emails. Your customer is told when a payment fails, why it failed, when the next attempt is, and how to fix it.
  • Card updates. Customers can replace their card themselves, without starting a new checkout.
  • Free trials and payment plans. Offer a free trial, or a fixed number of payments, on both gateways.
  • Pause and resume. Pause payment collection on a subscription and pick it up again later.
  • One place to see it all. Every renewal, failed payment and retry appears on the order in your CheckoutJoy dashboard.

Supported payment processors

ProcessorCurrenciesFree trialsCard updatesGuide
PayFastZARYes, nothing is charged at checkoutOn PayFast's secure card update pagePayFast Subscription Billing
PaystackYour Paystack account currencyYes, in NGN, GHS, ZAR and USDIn your Customer PortalPaystack Subscription Billing

Subscriptions on other processors keep using the processor's own recurring billing.

How a renewal works

  1. Step 1

    The renewal falls due

    CheckoutJoy checks for due renewals every hour.

  2. Step 2

    CheckoutJoy charges the saved card

    The charge goes through your own PayFast or Paystack account.

  3. Step 3

    The gateway confirms the result

    CheckoutJoy reads the final result from the gateway before it records anything.

Payment succeeds

  • The payment is recorded on the order.
  • The subscription stays Active.
  • The next billing date moves one period ahead.
  • Your integrations and sale notification run.

Payment is declined

  • The failed payment is recorded with the reason.
  • The subscription becomes Past Due.
  • Your customer gets an email with a link to fix it.
  • The retry schedule starts.
How CheckoutJoy collects a renewal.
  1. The renewal falls due. CheckoutJoy checks for due renewals every hour, so a renewal is charged within an hour of its due time.
  2. CheckoutJoy charges the saved card. The charge is made on your own gateway account, and the money settles to you exactly as it does for any other sale.
  3. The gateway confirms the result. CheckoutJoy reads the final result from the gateway before it records anything, so your dashboard always matches your gateway account.

When the payment succeeds, it is recorded on the order, the next billing date moves one period ahead, and your integrations run as they do for any recurring payment. If you have sale notifications turned on under Settings > Notifications, you receive one for the renewal.

When the payment is declined, the failed payment is recorded with the reason, the subscription becomes Past Due, and failed payment recovery takes over.

Subscription statuses

first paymentpayment declinedretry succeedsyou pauseyou resumeretries run outlast payment of a planFree trialActivePast DuePausedExpired or CancelledCompleted
The statuses a managed subscription moves through. Cancelling ends a subscription from any status.
StatusWhat it means
PendingThe checkout was started and the first payment is not confirmed yet.
ActiveThe subscription is in good standing and renews on its next billing date. A subscription in a free trial is also Active.
Past DueA renewal was declined. CheckoutJoy is retrying it and your customer has been emailed.
PausedYou paused payment collection. Nothing is charged until you resume.
ExpiredEvery retry was declined and the subscription has ended.
CancelledThe subscription was cancelled by you or by your customer.
CompletedA payment plan collected its last payment.
Needs attentionCheckoutJoy could not finish a billing attempt. The attempt is tried again every hour until it goes through, and CheckoutJoy support is alerted. There is nothing for you to do.

Billing periods, trials and payment plans

You set these on the product, the same way as for any subscription product.

  • Billing period. Day, week, month, quarter or year, with an interval. A period of month with an interval of 3 bills every three months.
  • Number of payments. Leave it at 0 for a subscription that runs until it is cancelled. Set a number for a payment plan. After the last payment the subscription is Completed and nothing more is charged.
  • Free trial. The first payment is collected when the trial ends. With a number of payments set, the payment at the end of the trial is payment 1.
  • Setup fee. Anything due at checkout, such as a setup fee, is charged at checkout, also when the product has a free trial.

The recurring amount is fixed at checkout. If your product is priced in a different currency from your gateway account, the amount is converted once at checkout and the same amount is charged on every renewal.

Pausing and resuming

Open the subscription under Subscriptions in your dashboard and choose Pause Payment Collection from the Actions menu. A paused subscription keeps its billing date but is not charged.

When you choose Resume Payment Collection you pick how billing continues:

  • Start a new billing period. The customer is charged within the hour and the billing date restarts from today.
  • Continue existing billing cycle. The subscription carries on to its existing billing date. This is available while that date is still in the future.

Cancelling

Open the subscription under Subscriptions and choose Cancel Subscription from the Actions menu. Your customer can cancel from your Customer Portal. A cancelled subscription is not charged again. No call to the gateway is needed, because CheckoutJoy holds the schedule.

What you see in your dashboard

  • Orders. Each order's timeline shows every renewal, every declined payment with its reason, and every retry.
  • Subscriptions. The list shows the status of each subscription. Use the Needs attention filter to find subscriptions whose billing attempt is being tried again.
  • Integrations. Renewals, ended subscriptions and completed payment plans run your integrations, as they do for every other processor.

Turning it on

Managed subscription billing is switched on for each payment processor by CheckoutJoy support. Contact support and tell us which processor you want it for.

Before you ask, check the following:

  • PayFast. The passphrase saved under Settings > Payment Methods matches the passphrase in your PayFast dashboard. CheckoutJoy uses it to verify every payment notification from PayFast.
  • Paystack. The webhook URL is set in your Paystack dashboard, as described in the Paystack setup guide.
  • Customer Portal. Your Customer Portal is set up. The payment emails send your customers there to update their card.

Once it is on, every new subscription and payment plan sold through that processor is managed by CheckoutJoy. Your products and checkouts stay as they are.

Frequently asked questions

What happens to the subscriptions I already have?

Nothing changes for them. A subscription sold before managed billing was switched on keeps renewing through the gateway's own recurring billing, on the same schedule. Only subscriptions sold after the switch are managed by CheckoutJoy.

Does CheckoutJoy store my customers' card details?

No. The card is saved by your payment gateway. CheckoutJoy stores only the token the gateway issues for it.

Where does the money go?

To your own gateway account. Every renewal is a charge on your PayFast or Paystack account and settles the way your other sales do.

How soon after the billing date is a customer charged?

Within an hour of the time the renewal falls due.

What happens to renewals if my CheckoutJoy account is not active?

Renewals are collected while your CheckoutJoy account is active or in trial. If your account is reactivated later, each subscription is charged for one billing period and carries on from there.

Managed Subscription Billing — CheckoutJoy Docs