Skip to content
Bondry

Payments

The payment layer that ships with the core, and the gateway modules that plug into it.

Payments is a core module. It is the layer every other module charges through, which is why the LMS does not need Members Plus in order to sell a course.

The gateway registry#

The payments module holds the registry; each gateway is a separate module that registers a driver when it boots. Three ship as official modules:

Module What it covers
Payments: Stripe Hosted Stripe Checkout: one-time charges, recurring plans, trials, setup fees and lifetime terms
Payments: PayPal One-time charges through Orders, recurring plans through Billing Subscriptions
Payments: Mercado Pago Hosted checkout through preferences, recurring through preapproval, good for PIX and Latin America

An offline method is built into the payments module itself: the member says they paid by bank transfer and an administrator approves it by hand.

Installing a gateway#

A gateway is installed like any other module, in Modules. It appears as a child of Payments in the list. Disabling it removes its section from the settings, its method from the checkout and its webhook endpoint, and touches nothing else.

Settings#

Payments > Settings covers the sale currency, the tax percentage, the invoice numbering and the credentials of each installed gateway. Each gateway has its own section, which only appears while that module is enabled.

Webhooks#

Every gateway verifies the signature of the provider callback before acting on it, and processes each event once. The endpoint appears in the settings of the gateway, ready to paste into the provider dashboard.

Warning A checkout that completes on the provider side but never reaches your server is almost always a webhook that was never configured. It is the first thing to check when a payment goes through and the member does not get access.

Test before you launch#

Every gateway has a test mode. Run one full purchase, one refund and one cancellation in test mode before you switch the keys to live.