Skip to main content

Subscriptions

With Subscriptions, Von Payments runs the repeat billing for you. You sell a product with a price and a schedule. The customer's first payment starts the subscription. After that, we charge the same card on the schedule, retry a declined renewal, email the customer, and give them a page where they can pause or cancel.

You run no scheduler and send no repeat charges yourself. Your server follows each change through events.

PageFor
Set up SubscriptionsThe business: switch it on, add a product, set the retry days, test, go live.
Day to dayYour team: what to check each day and week, and what each exception means.
Integration guideThe developer: show the terms, start the subscription with the first charge, follow the events, manage subscriptions by API.
ReferenceThe subscription object, every call, the events, the error codes and the SDK methods.

Who can use it​

Von Payments switches Subscriptions on for each business. Your business needs a merchant account and Vora, our payment routing, and a saved customer support contact. Ask Von Payments support to switch it on. See Set up Subscriptions.

How a subscription runs​

  1. You create a product in your dashboard: its name, renewal price, currency and how often it renews (every 1 to 365 days, 1 to 52 weeks, or 1 to 12 months).
  2. The customer agrees at your checkout. Your page shows the terms next to the order button, and their card is saved in their browser.
  3. The first charge starts the subscription. Your server charges the card with the product named in recurring. Once that charge succeeds, the subscription (vsub_…) exists and is active.
  4. We renew it on the schedule. Each renewal charges the same card at the product's price, as a merchant-initiated charge that the card networks know is part of a recurring series.
  5. A declined renewal is retried. By default we retry 3, 5 and 7 days after the bill date. You can change the retry days. After the last retry, the subscription ends as failed. A decline that a retry cannot fix ends it at once.
  6. The customer or your team can pause, resume or cancel it. A cancel at the end of the paid period keeps what the customer paid for and charges nothing more.
  7. Your systems can change it through the API: skip a renewal, move the next charge, change how often it renews or its price, or add a discount.

Statuses​

StatusMeaning
activeRenews on its schedule.
past_dueA renewal was declined. We retry it on your retry days.
pausedNo renewals until it is resumed, by a person or on its resumes_on date.
heldA renewal was stopped before it reached the bank, for example by your routing rules. It waits in your dashboard's Exceptions until someone fixes the reason.
cancelled, failed, expired, gdpr_cancelledEnded. Nothing more is charged. gdpr_cancelled means it was cancelled because the customer's data was erased.

How a subscription moves between them:

Ended stands for every ended status. A cancel, by the customer, your team or your code, ends an active, past_due, paused or held subscription. A subscription is also cancelled after a chargeback, or when the card's permission for repeat charges is withdrawn. A resume always returns to active, also from a pause that began in past_due.

More statuses may be added. Handle a status you do not know as "do not grant new access".

What your customers see​

Emails. We email the customer from subscriptions@vonpay.com, under your business name, and replies go to your support email. The customer gets:

  • a sign-up confirmation;
  • a receipt after each renewal (you can switch these off);
  • a note when a renewal is declined, once per billing period, with a link to their subscription page;
  • a confirmation when they cancel, or schedule a cancel;
  • a notice before a change that bills them sooner or more often.

Their subscription page. Each customer has a page for their own subscription. See an example of it. They reach it with a single-use link: from one of our emails, from a Manage my subscription button on your website, or by asking for a link by email. On the page they can:

  • pause an active subscription, and resume it;
  • cancel it (an active subscription stays paid until the end of the period);
  • undo a cancel they scheduled;
  • see their receipts;
  • contact you, through the Contact box with your support contact.

Events​

Five webhook events tell your server about each change: subscription.created, subscription.renewed, subscription.payment_failed, subscription.cancelled and subscription.updated. Select them by name on your endpoint. See Events.

Choose your approach​

Who runs the renewals​

Von Payments runs them (Subscriptions)You run them (saved cards)
You buildA product in your dashboard, the terms at your checkout, one sign-up charge, and your event handling.Your own scheduler, the card-saving consent, and every renewal charge.
Declined renewalsWe retry on your retry days.Your code decides.
Customer emails and pageOurs, under your business name.Your own.
Best whenEach product has a set price on a set schedule. You can still change the price, date or interval later.The amount or timing changes from one charge to the next, or you already run your own billing.

Already billing saved cards yourself? Nothing changes: your scheduler and your mit charges stay as they are. See Saving a card and charging it later. Before your own system renews a card, read subscription_billing.enabled and renew only when it is false, so the two never charge the same customer.

How customers manage their subscription​

OptionWhat you buildWhat the customer does
Our emailsNothing.Opens the link in one of our emails, such as the note about a declined renewal.
Manage button on your websitePaste the button from Subscriptions › Settings › Manage button. No code.Enters the email they subscribed with, and gets a link that works for one hour.
A button in your own account pageOne call from your server each time the button is pressed.Is already signed in to your site, so their page opens at once.

On their page, the customer can pause, resume or cancel. To change anything else, such as the price or the next bill date, your systems call the subscription API.