BucksBox Developer DocsBucksBox Developer Docs
Getting Started
Merchant API
Partner API
SDK
GitHub
Getting Started
Merchant API
Partner API
SDK
GitHub
  • Introduction
  • Error Handling
  • Commission Model

Commission Model

This is the aggregator-only cascade config, not a vendor-callable API

The routes and model on this page (/commission/aggregator/vendor, /commission/aggregator/merchant-default, /commission/effective, /commission/:id, in paymentSystem/src/modules/setups/commissions/commission.routes.js) are gated checkRole("aggregator") — a merchant or vendor credential can't call any of them. This page describes the concept (how the effective rate is resolved) for background; if you're a vendor looking to manage your own merchants' rates, that's a different, vendor-callable slab model — see Partner API → Commission.

Config Cascade

For every transaction the platform resolves the applicable commission config in three steps:

  1. Merchant-specific — a config created with merchantId matching the transacting merchant
  2. Vendor default — a config created with isDefault: true for the vendor
  3. DISTRIBUTOR fallback — the platform's base rate for the txnType

The first match wins.

txnType Values

txnTypeApplies to
REGISTRATIONDMT remitter registration fee
VALIDATIONDMT account verification (NSDL penny-drop)
TRANSFERIMPS/NEFT fund transfer
NONENo charge for this operation

DMT Fee Flows

Registration (txnType: REGISTRATION)

  • Only the PLATFORM FIXED portion is debited from the wallet.
  • Bank/GST charges are absorbed into the platform's GL share.

Validation (txnType: VALIDATION)

  • ALL FIXED charges are debited (bank fee + platform fee).
  • GST is inclusive in the platform fee.

GL Entries

DR  Merchant Wallet     200.00   (transfer amount)
DR  Merchant Wallet       5.00   (platform fee)
CR  Platform GL          15.00   (bank fee + platform fee + GST)
CR  Beneficiary Account 190.00

Reversal mirrors these entries with DEBIT↔CREDIT swapped using synthetic transaction IDs (DMT-REG-{refId} / DMT-VAL-{refId}).

Config Example

{
  "aggregatorId": "fc84ec36-f74f-4eee-9c46-3b1111fd88c1",
  "vendorId":     "f0195939-0e56-4988-9fd4-5f797322b4a7",
  "paymentMethod": "DMT",
  "provider":      "NSDL",
  "txnType":       "VALIDATION",
  "chargeType":    "FIXED",
  "chargeValue":   5,
  "isDefault":     true
}
Prev
Error Handling