LarsaSub is launching soon. Purchases and account registration open shortly.

Documentation for larsasub v0.38.2. On an older version? Your release notes ship with the package (CHANGELOG.md).

What LarsaSub fits, and what it does not

Read this before you buy. It says who the package is built for, which shapes of application it supports, and what it does not do — with what you would do instead. Where a page holds the details, the line links to it. The limits are those of the current release; CHANGELOG.md records it when one moves.

What it is

Subscription billing for a Laravel application, collected through Mollie. It runs inside your application and your database. Payments go to your own Mollie account — or, with Mollie Connect, to your tenants' accounts — and the package takes no share of the revenue: what you pay per transaction is Mollie's own fee. You stay the merchant of record (under Connect, each tenant does for its own sales): your name is on the invoice, and the obligations that come with selling stay yours (Compliance).

It is built around European payment rails and obligations: SEPA Direct Debit with its pre-notification, iDEAL, Bancontact and the other local methods, EU VAT for the common cases, notice periods, and invoice numbering without gaps. That is the scope it was designed in, not a promise that it covers every obligation of selling in the EU.

Who it fits

Platforms that bill through Mollie Connect. Your customers — tenants — each sell subscriptions to their own users, and the money lands in their Mollie account, with an optional application fee for you. You may also bill the tenants yourself, from your own account (dual billing). The package runs the OAuth onboarding, routes every API call to the right account, keeps plans, customers, mandates and invoice numbering per tenant, and works with a database per tenant. See Mollie Connect and Multi-database tenancy. Connect requires the Platform license tier; on another tier the package refuses to boot with Connect enabled.

Applications that bill their own customers. One Mollie account, your own customers. Here the billing core is only part of what you get; the rest ships around it, and it is what you would otherwise build yourself:

The package also works headless, with your own screens calling its services (Public API). Then you use the billing core and the scheduled operations without the dashboards and, if you switch them off, the mails.

The shapes it supports

Question What the package supports Read
Who pays? The user; a related model such as a team or a company; or one of several billables a user acts for Billable models
Whose Mollie account? Yours (simple mode); each tenant's (Connect); both at once (dual billing) Mollie Connect
One database or many? One, or a landlord database plus one per tenant Multi-database tenancy
How often? Every 1 to 12 whole months — monthly, quarterly, yearly — on a fixed term or continuous Subscriptions
What amount? A plan price per period, or a price for one customer; add-ons on top, prorated per day; a one-off amount collected on the mandate on a date you plan; one-time payments with order lines and a VAT rate per line Recipes, Cost lines, Charges you create yourself, Single payments
Collected how? Recurring, on a mandate: SEPA Direct Debit, card, PayPal. One-time payments, and paying a failed charge by hand: iDEAL, Bancontact, Apple Pay, KBC/CBC, Belfius, EPS, TWINT, card, PayPal Payment methods
Trials and introductions? A free trial ends on a start date you choose, with the mandate set up first; a discounted introduction price runs for whole months Subscribing with an existing mandate
Money back? Refunds requested from your own code (there is no refund button); refunds and chargebacks read per occurrence; a SEPA chargeback becomes a charge the customer pays again (cards if you opt in) Refunds, Chargeback follow-ups
Unpaid charges? A reminder series, off by default Reminder series
Invoices? Off by default. When on: for paid payments only (automatically for subscription charges, on request for one-time payments), numbered continuously (per tenant under Connect), credit notes, a PDF or your own renderer Invoicing and VAT
VAT? Your rate, a rate per plan, or one subscription's own rate; reverse charge for a declared EU business; zero rate outside the EU Per-subscription VAT rate, Reverse charge
Coming from another system? Running subscriptions imported without collecting a paid period twice; historical invoices stay where they are Migrating subscribers in
Your own UI? The bundled dashboards, or your own screens on the public models and services Dashboards, Recipes
Languages? Package screens and mails in Dutch and English; plan content in as many languages as you configure Multilingual plan content

What it does not do

Some of these are decisions; others may come in a later release, and none is promised. Where a host has a supported way around one, the line says so.

Where the money goes

Not built What you do instead
Paying anyone out. No payout run, no balance per seller, no splitting one payment across several sellers, no money held for a third party. A marketplace that collects and then pays its sellers is a different product. Give each seller their own Mollie account through Connect: the payment lands with them, your fee with you. The package reads the payouts Mollie makes (Settlements); it never makes one. See Compliance.
Being the merchant of record. The package never takes custody of funds and is never the seller: you are, or under Connect each tenant is. VAT, fraud and chargebacks stay with the seller. If you want someone else to be the seller and carry the VAT across countries, that is a Merchant-of-Record service — another kind of product.
Booking a payment made outside Mollie — "on account", by bank transfer. There is no mark-as-paid, a planned charge cannot be paid by hand, and an invoice only comes from a paid payment. Bill such a customer outside the package, from your own accounting.
Giving the application fee back on a refund or a chargeback, or moving money between Mollie balances. The platform keeps its fee. Say so in your terms with your tenants (Application fees).

Pricing

Not built What you do instead
Coupons and discount codes. A cost line cannot be negative. An introduction price on the plan, a price for one customer, or credit you hand out. Credit settles part of a payment; it is not a discount, so the invoice states VAT on the full price (Compliance).
Seats and quantities. A subscription has no quantity, and the invoice shows an amount rather than quantity × unit price. Your app owns the count: put count × price on a cost line and change its amount when the count changes. The change is prorated per day.
Metered or usage billing. No meters, usage records, price tiers or spending caps. Compute the amount yourself and plan it as a standalone charge: announced, collected on the mandate, invoiced when invoicing is on. It is not idempotent, so keep track of what you planned.
A plan change at the end of the period. A change takes effect at once, with the unused days returned as credit. —
Several running subscriptions on one payer. A billable holds one at a time. Add-ons go on cost lines. A separate contract needs its own billable (Explicit mode).
Billing in a currency other than the euro. Plans, subscriptions, credit and the €0,01 mandate verification are in euros, the only supported currency.default. A second code in currency.allowed is for single payments and standalone charges only, collected at the amount you pass and never paid from credit. An invoice is in the currency its payment was collected in. A customer outside the euro area pays in euros by card or PayPal, and the issuer converts. See Currency.

Collecting

Not built What you do instead
A subscription paid by a new checkout each period. Recurring collection always runs on a mandate; checkout methods pay one-time payments and recover failed charges. —
A one-time payment on a future date — a deposit now and the rest later, instalments. A single payment is paid now: it has no due date, and nothing starts it later. With a mandate, plan the later amount as a standalone charge on its date. Without one, create the single payment on the due date from your own scheduled job and send the customer to pay it — through the payments dashboard or a payment link.
Authorising now and capturing later — deposits, holds. —
Pausing a subscription, or moving it to another payer. Pause an add-on by ending its line and adding it again (recipe); otherwise cancel and subscribe again. A mandate belongs to its payer and never moves.
Dunning beyond reminders. No automatic second collection from the mandate, no fees or interest, no cutting off access; the last step of a series is an event to your application. Decide access on paidThrough() and act on the escalation event (Reminder series).
Payment providers other than Mollie. The provider seam is open (Adding your own provider), but its contracts may still change in a minor release until a second provider ships (Public API).

Tax and documents

Not built What you do instead
A VAT rate per customer country, OSS, exchange rates. The rate comes from your configuration, the plan or the subscription's own rate; the customer's country only decides on zero-rating. Amounts are never converted between currencies. Below the EU threshold for cross-border sales to consumers, your own rate is the right one. Above it you need an OSS registration and a rate per country; the frozen invoice data gives you the report per country and rate.
Comparing the customer's name and address with VIES. The opt-in VIES check confirms the VAT number (and with it on, only a confirmed number is reverse charged); off, the reverse charge rests on the number the customer stored. Switch the check on (Validating VAT numbers) or validate the number yourself; the name and address comparison stays yours either way (Compliance).
E-invoices (UBL, Peppol) and free fields such as a purchase-order number. The PDF is the only rendering. Invoice and InvoiceLine are public models: export them, or hand downloads to your own invoicing system.
Invoicing your application fee to tenants. Issue those invoices yourself, or agree self-billing (Compliance).