Core & Plugins

Payments

Payment providers are plugins behind one capability. Core routes money out as events and line items; it never calls a gateway.

Payment methods (providers) in the admin.
Payment methods (providers) in the admin.

Provider plugins

Central rails ship as plugins: stripe (Checkout Sessions + webhooks), paypal (Orders API + webhooks) and token_payment (pay any invoice from a token balance — no external gateway). Regional rails (YooKassa, Conekta, Mercado Pago, PromptPay, TrueMoney, Toss, …) are additional plugins enabled per-instance.

How a provider plugs in

A provider implements the payment capability and registers its line-item handler + lifecycle hook in on_enable. Inbound webhooks are signature-verified per provider. Core's hardened /webhooks/payment (admin mark-paid) is permission-gated. This open/closed shape means a new gateway is a new plugin — no core edit.