BucksBox Developer DocsBucksBox Developer Docs
Getting Started
Merchant API
Partner API
SDK
GitHub
Getting Started
Merchant API
Partner API
SDK
GitHub
  • Overview
  • Authentication & Security
  • Endpoint Reference
  • Multi-Language Integration
  • Account

    • Profile
    • Balance
    • Merchants
    • Transactions
    • Commission
  • On behalf of merchants

    • UPI
    • AEPS
    • DMT

Balance

This page was rewritten against the live backend

The previous version documented /api/v1/vendor/wallet/balance and /api/v1/vendor/wallet/statement — neither exists. What follows is read directly from paymentSystem/src/modules/vendors/routes/vendor.balance.route.js.

Get Balance

GET /vendor/balance
Authorization: Bearer <token>
{
  "statusCode": "00",
  "message": "Vendor balance fetched successfully",
  "data": {
    "walletId": "w-uuid",
    "balance": 12500.75,
    "walletActive": true,
    "settlementAccount": {
      "id": "sa-uuid",
      "account_holder_name": "My Company Pvt Ltd",
      "account_type": "CURRENT",
      "bank_name": "HDFC Bank",
      "bank_account_no": "1234567890",
      "bank_ifsc_code": "HDFC0001234",
      "city": "Mumbai",
      "state": "Maharashtra"
    }
  }
}

balance/walletActive are 0/false if there's no wallet linked yet; settlementAccount is null if none is configured.

Add Funds

POST /vendor/balance/add
Authorization: Bearer <token>
Content-Type: application/json

{ "amount": 1000, "description": "Manual top-up" }

description is optional. amount must be a positive number.

{
  "statusCode": "00",
  "message": "Funds added successfully",
  "data": { "transactionId": "wtxn-uuid", "amountAdded": 1000, "newBalance": 13500.75 }
}

Withdraw Funds

POST /vendor/balance/withdraw
Authorization: Bearer <token>
Content-Type: application/json

{ "amount": 500, "description": "Settlement payout" }

Requires a settlement account to already be linked — 400 { "statusCode": "09" } if not.

{
  "statusCode": "00",
  "message": "Withdrawal initiated successfully",
  "data": {
    "transactionId": "wtxn-uuid",
    "amountDebited": 500,
    "newBalance": 13000.75,
    "settlementAccount": {
      "accountHolder": "My Company Pvt Ltd",
      "bankName": "HDFC Bank",
      "accountNo": "1234567890",
      "ifsc": "HDFC0001234"
    }
  }
}

Insufficient balance: 400 { "statusCode": "10", "message": "Insufficient balance", "data": { "requested": 500, "available": 300 } }.

Balance History

Paginated wallet ledger — every credit and debit.

GET /vendor/balance/history?page=1&limit=20&type=CREDIT&from=2026-07-01&to=2026-07-04&search=top-up
Authorization: Bearer <token>
Query paramTypeDescription
pagenumberPage number (default: 1)
limitnumberResults per page (default: 20)
typestringCREDIT or DEBIT
from, tostringDate range YYYY-MM-DD
searchstringCase-insensitive match on the ledger entry's description
{
  "statusCode": "00",
  "message": "Transfer history fetched",
  "data": [
    {
      "id": "ledger-uuid",
      "walletId": "w-uuid",
      "type": "CREDIT",
      "amount": 1000,
      "grossAmount": 1000,
      "netAmount": 1000,
      "chargeAmount": 0,
      "commissionAmount": 0,
      "description": "Manual top-up",
      "createdAt": "2026-07-04T10:30:00Z",
      "transaction": { "id": "wtxn-uuid", "type": "ADD_MONEY", "status": "SUCCESS", "utrNumber": null, "createdAt": "2026-07-04T10:30:00Z" }
    }
  ],
  "meta": { "page": 1, "limit": 20, "total": 142, "totalPages": 8 }
}

Cards

Read-only list of the vendor's own cards (issuance/management is a separate, aggregator-only API — see the note below).

GET /vendor/balance/cards
Authorization: Bearer <token>
{
  "statusCode": "00",
  "message": "Vendor cards fetched",
  "data": [
    {
      "id": "card-uuid",
      "cardHolderName": "My Company Pvt Ltd",
      "maskedPan": "400000XXXXXX0000",
      "last4": "0000",
      "expiryMonth": 12,
      "expiryYear": 2029,
      "type": "DEBIT",
      "network": "VISA",
      "status": "ACTIVE",
      "dailyLimit": 50000,
      "availableLimit": 50000,
      "perTxnLimit": 25000,
      "internationalTxn": false,
      "contactless": true,
      "kycVerified": true,
      "createdAt": "2026-01-15T10:00:00Z"
    }
  ]
}

Card issuance is aggregator-only

Creating, updating, or deleting a card (POST/PUT/DELETE /vendor/:vendorId/cards[/…], vendor.cards.route.js) is gated checkRole("aggregator") — a vendor credential can only read its own card list above, not manage cards.

Prev
Profile
Next
Merchants