{
  "info": {
    "name": "BizzCab Driver App",
    "description": "Driver API. OTP login, KYC uploads, online toggle, sequential ride requests, start OTP, cash collection, and payouts. Uploads use multipart form-data on the document and vehicle requests.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "driverToken",
      "value": ""
    },
    {
      "key": "driverId",
      "value": ""
    },
    {
      "key": "rideId",
      "value": ""
    },
    {
      "key": "rideOtp",
      "value": "1234"
    },
    {
      "key": "driverPhone",
      "value": "9123456780"
    },
    {
      "key": "otp",
      "value": "123456"
    },
    {
      "key": "bankAccountId",
      "value": ""
    }
  ],
  "item": [
    {
      "name": "Auth",
      "item": [
        {
          "name": "Send OTP",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/driver/auth/send-otp",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone\": \"{{driverPhone}}\"\n}"
            }
          }
        },
        {
          "name": "Resend OTP",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/driver/auth/resend-otp",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone\": \"{{driverPhone}}\"\n}"
            }
          }
        },
        {
          "name": "Verify OTP",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/driver/auth/verify-otp",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone\": \"{{driverPhone}}\",\n  \"otp\": \"{{otp}}\",\n  \"name\": \"Ravi Yadav\",\n  \"vehicleType\": \"4-Wheeler\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const json = pm.response.json();",
                  "pm.test('login ok', () => pm.expect(json.success).to.eql(true));",
                  "if (json.data && json.data.token) pm.collectionVariables.set('driverToken', json.data.token);",
                  "if (json.data && json.data.driver) pm.collectionVariables.set('driverId', json.data.driver.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Logout",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/auth/logout"
          }
        }
      ]
    },
    {
      "name": "Onboarding",
      "item": [
        {
          "name": "Get profile",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/profile"
          }
        },
        {
          "name": "Update profile",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/profile",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Ravi Yadav\",\n  \"licenseNumber\": \"MP09-2020-1234\",\n  \"vehicleType\": \"4-Wheeler\",\n  \"addressDetails\": {\n    \"line1\": \"18, Scheme 54\",\n    \"line2\": \"Near C21 Mall\",\n    \"area\": \"Vijay Nagar\",\n    \"city\": \"Indore\",\n    \"state\": \"Madhya Pradesh\",\n    \"pincode\": \"452010\"\n  }\n}"
            }
          }
        },
        {
          "name": "Add bank account",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/bank-accounts",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"accountName\": \"Ravi Yadav\",\n  \"accountNumber\": \"1234567890\",\n  \"ifsc\": \"HDFC0001234\",\n  \"bankName\": \"HDFC Bank\",\n  \"active\": true\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const json = pm.response.json();",
                  "const accounts = json.data && json.data.bankAccounts;",
                  "if (accounts && accounts.length) pm.collectionVariables.set('bankAccountId', accounts[accounts.length - 1]._id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Add second bank account",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/bank-accounts",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"accountName\": \"Ravi Yadav\",\n  \"accountNumber\": \"9988776655\",\n  \"ifsc\": \"ICIC0000789\",\n  \"bankName\": \"ICICI Bank\"\n}"
            }
          }
        },
        {
          "name": "Set active bank account",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/bank-accounts/{{bankAccountId}}/activate"
          }
        },
        {
          "name": "Update bank account",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/bank-accounts/{{bankAccountId}}",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"accountName\": \"Ravi Yadav\",\n  \"accountNumber\": \"1234567890\",\n  \"ifsc\": \"HDFC0001234\",\n  \"bankName\": \"HDFC Bank\"\n}"
            }
          }
        },
        {
          "name": "Delete bank account",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/bank-accounts/{{bankAccountId}}"
          }
        },
        {
          "name": "Upload KYC document",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/documents",
            "body": {
              "mode": "raw",
              "raw": "Use form-data: type=dl|rc|insurance|puc|aadhaar, file=<pdf or image>, expiry=2027-01-01"
            }
          }
        },
        {
          "name": "Save vehicle",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/vehicle",
            "body": {
              "mode": "raw",
              "raw": "Use form-data: model, registrationNumber=MP09AB1234, vehicleType=4-Wheeler, rc, insurance, puc files"
            }
          }
        },
        {
          "name": "Deactivate account",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/profile/deactivate"
          }
        }
      ]
    },
    {
      "name": "Dashboard and location",
      "item": [
        {
          "name": "Dashboard",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/dashboard"
          }
        },
        {
          "name": "Go online",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/availability",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"online\": true,\n  \"lat\": 22.7533,\n  \"lng\": 75.8937\n}"
            }
          }
        },
        {
          "name": "Go offline",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/availability",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"online\": false\n}"
            }
          }
        },
        {
          "name": "Update location",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/location",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"lat\": 22.75,\n  \"lng\": 75.89\n}"
            }
          }
        }
      ]
    },
    {
      "name": "Rides",
      "item": [
        {
          "name": "Incoming requests",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/requests"
          }
        },
        {
          "name": "Accept ride",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/rides/{{rideId}}/accept"
          }
        },
        {
          "name": "Reject ride",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/rides/{{rideId}}/reject"
          }
        },
        {
          "name": "Arrived at pickup",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/rides/{{rideId}}/arrived"
          }
        },
        {
          "name": "Start ride with OTP",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/rides/{{rideId}}/start",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"otp\": \"{{rideOtp}}\"\n}"
            }
          }
        },
        {
          "name": "Complete ride",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/rides/{{rideId}}/complete",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"distanceKm\": 6.2\n}"
            }
          }
        },
        {
          "name": "Confirm cash collected",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/rides/{{rideId}}/cash-collected"
          }
        },
        {
          "name": "Cancel ride",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/rides/{{rideId}}/cancel",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"Customer not reachable\"\n}"
            }
          }
        },
        {
          "name": "History",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/rides?status=completed"
          }
        }
      ]
    },
    {
      "name": "Earnings",
      "item": [
        {
          "name": "Earnings summary",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/earnings"
          }
        },
        {
          "name": "Wallet transactions",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/wallet/transactions"
          }
        },
        {
          "name": "Request payout",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/payouts",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 100\n}"
            }
          }
        },
        {
          "name": "Payout history",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/payouts"
          }
        }
      ]
    },
    {
      "name": "Ratings, chat, SOS, support",
      "item": [
        {
          "name": "Rate customer",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/ratings",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"rideId\": \"{{rideId}}\",\n  \"stars\": 5,\n  \"review\": \"Polite customer\"\n}"
            }
          }
        },
        {
          "name": "My ratings",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/ratings"
          }
        },
        {
          "name": "Chat history",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/rides/{{rideId}}/messages"
          }
        },
        {
          "name": "Send chat",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/rides/{{rideId}}/messages",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"text\": \"I have arrived\"\n}"
            }
          }
        },
        {
          "name": "Raise SOS",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/sos",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"rideId\": \"{{rideId}}\",\n  \"lat\": 22.74,\n  \"lng\": 75.88,\n  \"message\": \"Emergency\"\n}"
            }
          }
        },
        {
          "name": "Report customer",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/reports",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"rideId\": \"{{rideId}}\",\n  \"subject\": \"Customer issue\",\n  \"message\": \"Customer was abusive\"\n}"
            }
          }
        },
        {
          "name": "Support tickets",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/support/tickets"
          }
        },
        {
          "name": "Create support ticket",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/support/tickets",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"category\": \"payment\",\n  \"subject\": \"Wallet not updated\",\n  \"message\": \"Completed ride earning missing\"\n}"
            }
          }
        },
        {
          "name": "Notifications",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{driverToken}}"
              }
            ],
            "url": "{{baseUrl}}/driver/notifications"
          }
        }
      ]
    }
  ]
}