Product Decisions This Supports
Payment-rail and billing architecture
- Whether to add bank debit (ACH/Bacs/SEPA/AUTOGIRO/PAD) alongside cards for recurring revenue, rather than routing every subscription through a card processor.
- Whether to switch the default rail for subscription plans in the UK/EU from card to direct debit, based on fee math and involuntary-churn data.
- Whether to build a direct bank/scheme integration in-house versus buying an aggregator — this package is the cheap side of that trade-off.
Roadmap items it unblocks or de-risks
- Self-serve subscription billing, plan changes, and proration for SMB/European customers.
- Dunning and retry strategy: direct debit failures are recoverable and predictable, so a PM can justify investing in retry scheduling, pre-debit notifications, and grace periods as product features rather than support tickets.
- Invoice and accounts-receivable collection for B2B products where customers expect to pay from a business bank account, not a card.
- One-off bank payments (open-banking-style instant pay) for top-ups, deposits, or high-ticket checkout where card fees are punitive.
- International expansion sequencing: if the next market is UK, France, Germany, Australia, New Zealand, or the US, this determines whether billing is a launch blocker or a one-sprint task.
- Usage-based or variable-amount billing — variable mandates let you change the amount per charge, which is a genuine product capability decision, not just plumbing.
Build vs buy
- The package itself is a thin, officially maintained API client, so the real buy decision is GoCardless the provider, not this library. Engineering cost is near-zero for integration; the cost is commercial (fees, contract, scheme coverage) and operational (reconciliation, disputes, refunds).
Metrics this lets you move
- Involuntary churn, payment success rate by rail, cost per collected pound, days-sales-outstanding on B2B invoices, and checkout completion rate for bank-preferring segments.
When to Consider This Package
Strong fit
- Laravel/PHP stack (the client is framework-agnostic PSR-style PHP — you wrap it in a service class, queue jobs, and a webhook controller; no Cashier equivalent exists, so budget a small integration layer).
- Recurring or invoice-driven revenue where customers are businesses or European/UK consumers who expect direct debit.
- You already have or can get a GoCardless account; the library is useless without it — it is not a payment processor, just a client.
- You want an officially maintained client (releases are current, MIT licensed) rather than a community wrapper.
- Fee sensitivity: bank debit typically costs ~1% plus a small fixed fee with a cap per transaction, materially cheaper than cards for large or recurring tickets — verify current published pricing before you put it in a deck.
Weak fit or look elsewhere
- Card-first products, wallets, or anything needing instant authorisation and settlement — direct debit settles in days and can be reversed.
- Global coverage outside Bacs/SEPA/AUTOGIRO/ACH/PAD/BECS; if your roadmap is genuinely worldwide, this becomes a second-class rail.
- Marketplace, split-payment, or platform/multi-seller models — check scheme and provider support before designing around it.
- Teams wanting a batteries-included Laravel billing package:
laravel/cashier (Stripe/Paddle) gives you subscriptions, invoices, and tax handling out of the box; this gives you an API wrapper and nothing else.
- Ecosystem-risk-sensitive orgs: ~100 stars and no dependents is a thin PHP community signal. The mitigating factor is that the vendor maintains it, but it means Stack Overflow answers and third-party tooling are sparse.
- You need zero-vendor-lock-in: mandates and customer records live with the provider, and migrating mandates is a genuine project.
How to Pitch It (Stakeholders)
To executives — one paragraph
"GoCardless lets us collect recurring and invoice payments directly from customer bank accounts at roughly 1% per transaction with a cap, versus card fees that scale with ticket size. For our subscription and B2B invoice base, the business case is threefold: lower cost per collected pound, lower involuntary churn because failed bank debits are retryable rather than lost, and a shorter path into the UK and EU where paying by direct debit is the norm. Integration cost is minimal — the PHP client is official, MIT-licensed, and actively released — so the real commitment is a commercial agreement, not a build project. I'd recommend a scoped pilot on one plan in one market, measured on payment success rate and cost per collected pound, before a broader migration."
To engineering — the honest version
- Official, thin, maintained client. Laravel-agnostic: expect to write a service wrapper, a webhook endpoint with signature verification and idempotency, queued reconciliation jobs, and a mandate-lifecycle state machine. Budget days, not weeks.
- Hard dependency on the provider's API versioning and webhook contract; plan for replay and drift.
- Direct debit is asynchronous and reversible — your data model must tolerate
pending_submission, failed, charged_back, and cancelled as first-class states, not exceptions.
To finance and ops
- Predictable, capped per-transaction fees; simpler reconciliation than card settlements; refunds and chargebacks follow scheme rules with tighter customer-protection timelines — confirm the dispute handling process owners before launch.
The risks I'd put on the register
Vendor concentration on a single payment rail; thin PHP ecosystem for this specific package (low community support, so internal ownership is required); mandate migration cost if we ever move; and the need for a second rail (cards) so bank-debit-averse customers aren't excluded from checkout.