http://localhost:8000/api/vendor
All routes below are prefixed with this base URL.
{
"phone": "9876543210"
}
OR
{
"email": "vendor@example.com"
}
{
"success": true,
"message": "OTP sent successfully",
"user_id": "681b2d9f5e9b3c7a12345678",
"flag": 0
}
flag = 0 New Vendor Created
flag = 1 Existing Vendor
400 → Email or phone required
400 → Invalid Indian phone number
502 → Failed to send OTP
Authorization: Bearer accessToken
{
"businessname": "Neon Services",
"ownername": "Rahul Sharma",
"email": "rahul@example.com",
"phone": "9876543210",
"address": "Sector 62, Noida",
"city": "Noida",
"state": "Uttar Pradesh",
"pinCode": "201301",
"country": "India",
"id_proof": {
"fileUrl": "https://example.com/aadhar.jpg",
"size": "2MB",
"type": "image/jpeg"
},
"business_proof": {
"fileUrl": "https://example.com/gst.pdf",
"size": "1MB",
"type": "application/pdf"
},
"address_proof": {
"fileUrl": "https://example.com/bill.pdf",
"size": "500KB",
"type": "application/pdf"
},
"subscription_id": "681b2d9f5e9b3c7a12345678"
}
{
"success": true,
"message": "Profile registered successfully"
}
400 → Invalid email format
400 → Missing required fields
404 → Vendor does not exist
404 → Invalid subscription
403 → Subscription does not belong to vendor
409 → Email already in use
{
"phone": "9876543210",
"otp": "123456"
}
OR
{
"email": "vendor@example.com",
"otp": "123456"
}
{
"success": true,
"message": "Vendor logged in successfully",
"data": { vendorData },
"accessToken": "jwt-access-token",
"refreshToken": "jwt-refresh-token"
}
accessToken
refreshToken
400 → OTP required
400 → Invalid OTP
400 → OTP expired
404 → Vendor not found
403 → Account deactivated
{
"refreshToken": "jwt-refresh-token"
}
{
"success": true,
"message": "Access token refreshed",
"accessToken": "new-access-token",
"refreshToken": "new-refresh-token"
}
401 → Unauthorized request
401 → Invalid refresh token
Authorization: Bearer accessToken
{
"businessname": "Updated Business",
"ownername": "Rahul Sharma",
"address": "New Address",
"city": "Delhi",
"state": "Delhi",
"pinCode": "110001",
"country": "India"
}
{
"success": true,
"message": "Profile updated successfully",
"data": { updatedVendor }
}
400 → Business name and owner name required
404 → Vendor does not exist
{
"success": true,
"vendor": { vendorData }
}
Authorization: Bearer accessToken
{
"success": true,
"message": "Vendor logged out successfully"
}
Authorization: Bearer accessToken
{
"success": true,
"message": "Current subscription fetched successfully",
"data": {
"subscriptionId": "681b2d9f5e9b3c7a12345678",
"status": "ACTIVE",
"startDate": "2026-05-01T00:00:00.000Z",
"endDate": "2026-06-01T00:00:00.000Z",
"autoRenew": true,
"remainingDays": 25,
"pricing": {
"_id": "681a11111111111111111111",
"name": "Premium Plan",
"price": 999
},
"pricingSnapshot": {
"employeeLimit": 25,
"type": "SUBSCRIPTION"
},
"payment": {
"_id": "681c22222222222222222222",
"status": "SUCCESS"
}
}
}
401 → Unauthorized request
404 → No active subscription found
500 → Failed to fetch current subscription