BNPL Settings
Configure Buy Now Pay Later — let approved customers check out on credit, repay later.
Want the feature overview?
See Buy Now Pay Later for eligibility logic, debt tracking, auto-deduct, interest computation, and risk controls.
Pilot feature
Highest-risk feature in the plugin. Roll out to a small whitelist first. Pair with KYC + transaction limits.
Where
Wallet → Settings → BNPL.

Step-by-step Setup
1. Enable
Master toggle. When OFF, all BNPL logic short-circuits — zero performance cost.
2. Eligibility mode
How customers get into the BNPL pool.
| Mode | Logic |
|---|---|
whitelist | only listed users can use BNPL |
role | any user with a listed WP role |
all_kyc_approved | any KYC-approved customer |
Recommended: start with whitelist for the pilot. Move to all_kyc_approved once tested.
3. Eligible users (whitelist mode)
Multiselect of customers who can use BNPL. Add manually based on trust history.
4. Eligible roles (role mode)
Multiselect of WP roles. Useful for "VIP customers" or "B2B accounts" pools.
5. Max debt per user
Hard ceiling on total outstanding debt per customer. Plugin blocks new BNPL orders that would exceed this.
| Strategy | Cap |
|---|---|
| Conservative pilot | 500 |
| Normal | 1000 |
| Aggressive | 5000 |
6. Min order to qualify
Smallest cart total eligible for BNPL. Smaller carts skip the BNPL path even for eligible users.
Default: 100. Stops abuse via tiny orders.
7. Repayment days
Window before debt is "overdue". Default 30.
| Strategy | Days |
|---|---|
| Strict | 7 |
| Standard | 30 |
| Generous | 60 |
8. Interest type
Optional. Charges accrue past the grace period.
| Type | Effect |
|---|---|
none | no interest, just track debt |
fixed | flat amount per overdue row |
percent | percent of principal × days_late / 30 |
9. Interest amount
Value matching the type:
| Type | Example |
|---|---|
fixed | 50 (flat ₹50 per overdue debt) |
percent | 2 (2% per month) |
10. Grace days before interest
Days past due_date before interest starts accruing. Default 7. Gives customers a buffer.
11. Save
Click Save changes.
Verify
As an eligible test customer:
- Add product to cart at amount > current wallet balance
- Pick wallet at checkout
- Confirm order goes through (instead of "insufficient balance")
- Wallet drops to 0
- Open My Wallet → BNPL panel → outstanding row visible
- Top up wallet → confirm auto-deduct fires (debt reduces or clears)
As admin:
- Wallet → BNPL (admin list of all debt rows)
- Filter by overdue → see customers in arrears
Auto-Deduct vs Manual Repayment
By default, every wallet credit (cashback, top-up, refund) automatically applies to the oldest BNPL debt first.
Customers can opt out via Wallet Central → Settings → "Auto-deduct BNPL repayment". They then repay manually from the BNPL panel.
Risk Controls (recommended)
| Control | Where |
|---|---|
| Require KYC | KYC Settings → required features → Wallet usage |
| Hard cap | "Max debt per user" |
| Whitelist only | Eligibility mode |
| Block withdrawal during outstanding | filter wkwp_wallet_withdrawal_eligible |
Common Combos
Soft pilot (5 trusted customers)
| Field | Value |
|---|---|
| Enable | ON |
| Eligibility | whitelist |
| Whitelist | (5 users manually) |
| Max debt | 500 |
| Repayment days | 30 |
| Interest | none |
Standard production
| Field | Value |
|---|---|
| Enable | ON |
| Eligibility | all_kyc_approved |
| Max debt | 1000 |
| Repayment days | 30 |
| Interest | percent 2 |
| Grace days | 7 |
Strict (high risk)
| Field | Value |
|---|---|
| Enable | ON |
| Eligibility | role (b2b_verified) |
| Max debt | 5000 |
| Repayment days | 14 |
| Interest | percent 5 |
| Grace days | 3 |
Troubleshooting
| Problem | Fix |
|---|---|
| Eligible customer not offered BNPL | Cart below min; existing debt + new amount > cap; KYC gate active |
| Auto-deduct not firing | Customer opted out; or hook order conflict |
| Interest looks wrong | Grace days config; interest type config |
| Overdue email sent more than once a week | Built-in rate-limit is once per debt per week |
