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

Profile

This page was rewritten against the live backend

The previous version documented /api/v1/vendor/profile (GET) and /api/v1/vendor/profile/update (POST) — neither exists. What follows is read directly from paymentSystem/src/modules/vendors/routes/vendor.route.js.

Get Profile

GET /vendor/me
Authorization: Bearer <token>
{
  "statusCode": "00",
  "message": "vendor Details",
  "data": {
    "id": "v-uuid",
    "code": "VEN001",
    "name": "My Company Pvt Ltd",
    "email": "vendor@example.com",
    "mobile": "9876543210",
    "status": true,
    "mstatus": "APPROVED",
    "riskflag": 1,
    "merchants": [
      {
        "id": "m-uuid",
        "mid": "M001",
        "appid": "100234",
        "status": true,
        "riskflag": 1,
        "transactions": [
          { "id": "txn-uuid", "tr": "RRN-...", "amount": 500, "status": "SUCCESS", "createdAt": "2026-07-04T10:30:00Z" }
        ],
        "settlementAccount": { "...": "merchant's own settlement account, if configured" },
        "callback": { "...": "merchant's own callback config, if configured" }
      }
    ],
    "commissions": [ "...vendor's own commission configs" ],
    "transactions": [ "...vendor's own transaction records" ]
  }
}

merchants[].transactions is capped implicitly by whatever the underlying query returns for that merchant — for a full, paginated transaction list use Transactions instead of parsing this response.

Reset Password

POST /vendor/reset-password
Authorization: Bearer <token>
Content-Type: application/json

{ "oldPassword": "current-password", "newPassword": "new-password" }
{ "statusCode": "00", "message": "Password reset successfully" }

Failure modes: 401 { "statusCode": "05", "message": "Old password is incorrect" }, 400 { "statusCode": "01", "message": "Old and new password are required" }.

Get by ID

GET /vendor/:id

Returns a much larger nested payload than GET /vendor/me — includes address, settlementAccount, vendorpan, businesstype, aggregator (with its commission configs), commissionconfig, up to 100 recent transactions with ledger/reconciliation/settlement detail per transaction, and every merchant under this vendor with their own nested wallet/address/ KYC/limits/payment-methods. Not role-gated the same way as the routes above (no checkRole on this one in source) — treat :id as a sensitive parameter, not something to expose to end users.

{ "statusCode": "00", "message": "Vendor fetched successfully", "data": { "id": "v-uuid", "...": "see description above — large nested object" } }

There is no profile-update endpoint

Unlike a merchant, a vendor's name/address/contact details aren't updatable through this API today — vendor.route.js has no PUT/POST route for it. If you need this, that's a paymentSystem change to request.

Next
Balance