BWH Payments lets a Frappe app take payments through Stripe, Razorpay, Telr or Tabby, using the same code for every gateway. Read the developer docs.
- Stripe: cards and wallets, worldwide
- Razorpay: cards, UPI, netbanking and wallets in India
- Telr: cards and local payment methods in the GCC
- Tabby: buy now, pay later in Saudi Arabia, the UAE, Kuwait, Bahrain and Qatar
- Hosted checkout pages, so card details never touch your site
- Payment status from signed webhooks, or by asking the gateway directly
- Full and partial refunds
- Currencies with 0, 2 or 3 decimal places, such as JPY, USD and KWD
- Add your own gateway with one Python class
- Works without ERPNext. With ERPNext, refund Payment Entries also refund the gateway.
sequenceDiagram
participant App as Your app
participant BP as BWH Payments
participant GW as Gateway
App->>BP: create a Gateway Payment Request
BP->>GW: open a checkout session
GW-->>BP: checkout URL
BP-->>App: checkout URL for the shopper
Note over App,GW: The shopper pays on the gateway's page
GW->>BP: signed webhook, payment completed
BP-->>App: request status is Paid
You need Frappe 16 or later.
bench get-app https://github.com/bwhtech/bwh_payments
bench --site your.site install-app bwh_paymentsThen set up a gateway and build your return pages.
Create a Single DocType in your own app, extend PaymentGatewayBase, and implement create_session,
get_payment_status, refund_payment and handle_webhook. The
step-by-step guide walks
through it, tests included.
bench --site test_site set-config allow_tests true
bench --site test_site run-tests --app bwh_paymentsFound a bug or have a question? Open an issue.
BWH Payments is developed and maintained by BWH Studios, a tech company based in Jagdalpur, Chhattisgarh, specializing in Frappe customizations and consulting.
MIT