Ola 司机端数据 API:收入、账单与出车
Ola Driver App(Ola Partner)是 Ola 印度网约车网络的司机端。车牌 OTP(POST /v1/auth/otp/send)与会话登录(POST /v1/auth/driver-session)之后,首页收入卡片由 POST /v1/earnings/daily 填充——按总额、行程、奖励与运营商账单拆分。
每一单都是结构化车费:POST /v1/trips/{bookingId} 返回上下车点、乘客与 pricingInfo,POST /v1/trips/{bookingId}/complete 结算 total_bill 与 driver_payout_commission,POST /v1/payments/online-status / POST /v1/payments/qr-status 确认乘客已付。出车与 GPS 落在 POST /v1/duty/status 与 POST /v1/location/ping。路径为示意,字段名来自应用自身模型。
Ola Driver App(Ola Partner)是印度网约车平台 Ola 的司机端。登录、上线、行程、账单与收入界面背后是一套司机数据接口:车牌 OTP 加会话登录返回 attendance_id、duty_status 与绑定车辆,日收入按 bookings/incentive/operatorBill/total 拆分,完结账单含 GST、夜间费、佣金与 driver_payout_commission,并轮询二维码 / 在线支付、上报 GPS、切换出车状态。路径为示意,字段名来自应用自身模型。
应用截图
API 端点一览
发送司机 OTP
POST
/v1/auth/otp/sendopendata启动司机登录:按登录页上的车牌号下发短信 OTP。
认证方式: 无需登录。请求体以车牌识别司机。
- id
- licenseNumber
- service
- status
- reason
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/auth/otp/send HTTP/1.1 Content-Type: application/json { "id": 18422109, "licenseNumber": "KA01AB1234", "service": "DRIVER_APP" }{ "status": "SUCCESS", "reason": "OTP_SENT" }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据司机登录页的车牌 OTP 发送控件重建字段名与 GenerateOtp 请求/响应模型一致(id、licenseNumber、service)
核验司机 OTP
POST
/v1/auth/otp/confirmopendata在验证页确认 OTP,并绑定设备位置,以便后续会话登录签发 attendance_id。
认证方式: 无需登录。请求体携带 OTP、车牌与当前位置。
- id
- licenseNumber
- otp
- lat
- lng
- service
- status
- reason
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/auth/otp/confirm HTTP/1.1 Content-Type: application/json { "id": 18422109, "licenseNumber": "KA01AB1234", "otp": "482193", "lat": "12.9716", "lng": "77.5946", "service": "DRIVER_APP" }{ "status": "SUCCESS", "reason": "OTP_VERIFIED" }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据 OTP 验证界面重建VerifyOtp 请求字段 id、licenseNumber、otp、lat、lng
司机会话登录
POST
/v1/auth/driver-sessionosint签发后续所有调用使用的司机会话:attendance_id、出车状态、司机资料(姓名、照片、评分、城市)以及可绑定车辆列表。
认证方式: OTP 核验后的设备会话。请求体为预登录 LoginRequest(source=DRIVER_APP)。
- status
- request_type
- attendance_id
- duty_status
- imei
- encryptedDriverId
- driverId
- serviceCity
- businessCategory
- driver
- mName
- mProfilePic
- city
- rating
- commLanguage
- langCode
- data
- availableCars
- licenseNumber
- carModel
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/auth/driver-session HTTP/1.1 Content-Type: application/json { "source": "DRIVER_APP", "isByod": true, "carId": 44102, "carLicenseNumber": "KA01AB1234", "androidId": "a1b2c3d4e5f6", "googleId": "xxxxxxxx-xxxx", "deviceModel": "Pixel 7", "osVersion": "34", "androidVersion": "14", "version_name": "9.9.2.4.4", "skipOperatorOTP": false, "versionCode": 99244 }{ "status": "SUCCESS", "request_type": "LOGIN", "attendance_id": "ATT-20260928-18422", "duty_status": "OFFLINE", "imei": "35xxxxxxxxxx", "encryptedDriverId": "enc_drv_7c81", "driverId": "18422109", "serviceCity": "bangalore", "businessCategory": "CITY_TAXI", "driver": { "mName": "Ravi Kumar", "mProfilePic": "/media/drivers/18422109.jpg", "city": "bangalore", "rating": "4.82", "commLanguage": "kn", "langCode": "kn" }, "data": { "availableCars": [ {"id": 44102, "licenseNumber": "KA01AB1234", "carModel": "Dzire", "label": "Mini", "itemType": 1} ], "disabledCars": [], "skipOperatorOTP": true } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据 OTP 之后的司机会话登录流程重建LoginResponse 字段 attendance_id、duty_status、driver、driverId
日收入汇总
POST
/v1/earnings/dailyopenfinance驱动首页收入卡片:按今日总额、行程数、奖励与运营商账单拆分的 EarningItem 磁贴。
认证方式: 登录会话:JSON 体中的 attendance_id,加上 POST /v1/auth/driver-session 签发的 access_token(Authorization 头)。
- status
- updatedAt
- incentiveToolTipVisibility
- earnings
- id
- name
- value
- displayValue
- display
- orderId
- details
- summaryId
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/earnings/daily HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "attendance_id": "ATT-20260928-18422", "version_code": 99244, "details": "account_summary", "summaryId": "SUM-2026-09-28" }{ "status": "SUCCESS", "updatedAt": "2026-09-28T18:40:00+05:30", "incentiveToolTipVisibility": true, "earnings": { "total": {"id": "total", "name": "Today", "value": "2140.50", "displayValue": "₹2,140.50", "display": true, "orderId": 1}, "bookings": {"id": "bookings", "name": "Trips", "value": "12", "displayValue": "12", "display": true, "orderId": 2}, "incentive": {"id": "incentive", "name": "Incentive", "value": "180.00", "displayValue": "₹180", "display": true, "orderId": 3}, "operatorBill": {"id": "operatorBill", "name": "Operator bill", "value": "96.00", "displayValue": "₹96", "display": true, "orderId": 4} } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据首页收入卡片重建DailySummaryResponse.earnings 与 EarningItem 的 total/bookings/incentive/operatorBill
读取订单详情
POST
/v1/trips/{bookingId}opendata加载来单 / 行程中卡片:乘客姓名与掩码电话、上下车点、OTP、ETA、价格区间以及费率卡 / 高峰系数计价。
认证方式: 登录会话:JSON 体中的 attendance_id,加上 POST /v1/auth/driver-session 签发的 access_token(Authorization 头)。
- bookingId
- status
- tripType
- rideType
- serviceType
- currencySymbol
- otp
- eta
- priceRange
- driverSurcharge
- billingGroup
- customer
- name
- displayPhoneNo
- pickUpLoc
- dropLoc
- locality
- address
- latitude
- longitude
- pricingInfo
- rateCardId
- paymentType
- commissionPercentage
- upfrontFare
- demand_factor
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/trips/CRN123456789 HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "attendance_id": "ATT-20260928-18422", "version_code": 99244, "bookingId": "CRN123456789", "key": "auth-key-88a21", "medium": "UNICAST", "restoreBooking": false }{ "bookingId": "CRN123456789", "status": "ALLOTTED", "tripType": "LOCAL", "rideType": "MINI", "serviceType": "p2p", "currencySymbol": "₹", "otp": "4821", "eta": 420, "priceRange": "₹180–₹220", "driverSurcharge": 12.0, "billingGroup": "city_taxi", "customer": { "name": "Anita", "displayPhoneNo": "+91-98xxxx3210", "dialingCode": "+91" }, "pickUpLoc": { "locality": "Indiranagar", "address": "100 Feet Rd", "latitude": 12.9784, "longitude": 77.6408 }, "dropLoc": { "locality": "Koramangala", "address": "80 Feet Rd", "latitude": 12.9352, "longitude": 77.6245 }, "pricingInfo": { "rateCardId": 8841, "paymentType": "ONLINE", "invoice_model": "GST", "commissionPercentage": 12.0, "upfrontFare": 196.0, "baseFare": {"value": 49.0, "currency": "INR"}, "minFare": {"value": 79.0, "currency": "INR"}, "demand_factor": {"type": "PEAK", "value": 1.2, "reason": "peak_hour"} } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据来单 / 行程中卡片重建BookingDetailResponse 含 customer、pickUpLoc、dropLoc、pricingInfo
接单
POST
/v1/trips/{bookingId}/acceptopendata从来单界面接受单播 / 软分配订单,附带司机实时经纬度,并返回已接单卡片。
认证方式: 登录会话:JSON 体中的 attendance_id,加上 POST /v1/auth/driver-session 签发的 access_token(Authorization 头)。
- bookingId
- serviceType
- allotmentType
- unicast_type
- status
- latitude
- longitude
- accuracy
- offlineAgreedBill
- reason
- bookingInfo
- otp
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/trips/CRN123456789/accept HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "attendance_id": "ATT-20260928-18422", "version_code": 99244, "bookingId": "CRN123456789", "serviceType": "p2p", "allotmentType": "UNICAST", "unicast_type": "SOFT_LOCK", "status": 1, "latitude": 12.9784, "longitude": 77.6408, "accuracy": 8.5, "offlineAgreedBill": 0 }{ "status": "SUCCESS", "timestamp": "2026-09-28T18:41:02+05:30", "reason": "ACCEPTED", "bookingInfo": { "bookingId": "CRN123456789", "status": "ACCEPTED", "otp": "4821", "customer": {"name": "Anita", "displayPhoneNo": "+91-98xxxx3210"} } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据来单界面的接单控件重建请求字段 bookingId、allotmentType、latitude、longitude
完结行程账单
POST
/v1/trips/{bookingId}/completeopenfinance在行程结束时提交司机侧账单(里程、等待、夜间、过路费、GST),并返回结算后的 total_bill 与账单详情页上展示的 driver_payout_commission。
认证方式: 登录会话:JSON 体中的 attendance_id,加上 POST /v1/auth/driver-session 签发的 access_token(Authorization 头)。
- bookingId
- booking_id
- rateCardId
- distance
- chargedDistance
- duration
- waitTime
- baseFare
- distanceFare
- rideTimeFare
- waitTimeFare
- minFare
- nightCharge
- tollCharges
- toll_charges
- discount
- totalBill
- total_bill
- subTotalBill
- totalPayableNow
- advance
- payment_type
- invoice_model
- adjusteCashToDriver
- driver_payout_commission
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/trips/CRN123456789/complete HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "attendance_id": "ATT-20260928-18422", "version_code": 99244, "bookingId": "CRN123456789", "rateCardId": 8841, "distance": 8.4, "chargedDistance": 8.4, "duration": 22.0, "waitTime": 4.0, "baseFare": 49.0, "distanceFare": 84.0, "rideTimeFare": 22.0, "waitTimeFare": 8.0, "minFare": 79.0, "nightCharge": 0.0, "tollCharges": 0.0, "discount": 20.0, "totalBill": 196.0, "subTotalBill": 175.0, "totalPayableNow": 0.0, "advance": 196.0, "payment_type": "ONLINE", "dropLocLat": 12.9352, "dropLocLong": 77.6245, "startAt": 1759057860000, "stopAt": 1759059180000 }{ "status": "SUCCESS", "request_type": "COMPLETE", "booking_id": "CRN123456789", "payment_type": "ONLINE", "invoice_model": "GST", "baseFare": 49.0, "distanceFare": 84.0, "rideTimeFare": 22.0, "waitTimeFare": 8.0, "minFare": 79.0, "nightCharge": 0.0, "toll_charges": 0.0, "discount": 20.0, "subTotalBill": 175.0, "total_bill": 196.0, "advance": 196.0, "totalPayableNow": 0.0, "adjusteCashToDriver": 0.0, "driver_payout_commission": "23.52", "chargedDistance": 8.4, "chargedTripTime": 22.0, "chargedWaitTime": 4.0, "rateCardId": 8841 }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据结束行程账单详情页重建CompleteBookingResponse 字段 total_bill、driver_payout_commission、payment_type
在线支付状态
POST
/v1/payments/online-statusopenbanking轮询乘客端内支付 / UPI 是否已结算,以便结束行程界面把车费标为已付。
认证方式: 登录会话:JSON 体中的 attendance_id,加上 POST /v1/auth/driver-session 签发的 access_token(Authorization 头)。
- bookingId
- paymentStatus
- paymentType
- amount
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/payments/online-status HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "bookingId": "CRN123456789" }{ "bookingId": "CRN123456789", "paymentStatus": "SUCCESS", "paymentType": "UPI", "amount": 19600 }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据结束行程在线支付轮询界面重建OnlinePaymentPollingResponse 字段 paymentStatus、paymentType、amount
二维码收款状态
POST
/v1/payments/qr-statusopenbanking轮询行程中向乘客展示的二维码收款,直到可关闭“已收现金”并标记车费已付。
认证方式: 登录会话:JSON 体中的 attendance_id,加上 POST /v1/auth/driver-session 签发的 access_token(Authorization 头)。
- bookingId
- paymentQrCodeDetails
- clientRequestId
- id
- imageUrl
- imageContent
- disableCashCollectedTtl
- payment_type
- totalPayableNow
- qrCodeDetails
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/payments/qr-status HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "attendance_id": "ATT-20260928-18422", "version_code": 99244, "bookingId": "CRN123456789", "paymentQrCodeDetails": { "clientRequestId": "qr_01H9K2", "id": "qr_pay_88a21", "imageUrl": "/media/qr/88a21.png" } }{ "status": "SUCCESS", "booking_id": "CRN123456789", "payment_type": "QR", "totalPayableNow": 0.0, "qrCodeDetails": { "clientRequestId": "qr_01H9K2", "id": "qr_pay_88a21", "imageUrl": "/media/qr/88a21.png", "imageContent": null, "disableCashCollectedTtl": 30 } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据行程中二维码收款界面重建PaymentQrCodeDetails / QrCodeDetails 字段 clientRequestId、imageUrl、id
出车状态切换(上线 / 下线)
POST
/v1/duty/statusopendata从首页上线控件切换司机出车状态,上报当前 GPS,并返回会话 / Go-To 接单约束。
认证方式: 登录会话:JSON 体中的 attendance_id,加上 POST /v1/auth/driver-session 签发的 access_token(Authorization 头)。
- current_status
- requested_status
- app_state
- action_id
- current_location
- google_advertisement_id
- apps_flyer_id
- status
- goToSessionTime
- goToBookingCount
- showSurveyQuestion
- homeLocation
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/duty/status HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "attendance_id": "ATT-20260928-18422", "version_code": 99244, "current_status": "OFFLINE", "requested_status": "ONLINE", "app_state": 1, "action_id": "GO_ONLINE", "google_advertisement_id": "xxxxxxxx-xxxx", "apps_flyer_id": "af_18422109", "current_location": { "lat": "12.9716", "lng": "77.5946", "accuracy": "8.5", "bearing": "12.0", "speed": "0.0" } }{ "status": "SUCCESS", "goToSessionTime": 45, "goToBookingCount": 2, "showSurveyQuestion": false, "homeLocation": { "latitude": 12.9716, "longitude": 77.5946 } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据首页上线 / 下线控件重建请求字段 current_status、requested_status、current_location
上报司机位置
POST
/v1/location/pingopendata持续上报司机实时 GPS(及行程中里程 / 等待),供调度匹配来单、乘客地图跟踪车辆。
认证方式: 登录会话:JSON 体中的 attendance_id,加上 POST /v1/auth/driver-session 签发的 access_token(Authorization 头)。
- bookingId
- lat
- lng
- accuracy
- alt
- bearing
- speed
- provider
- fixTime
- timestamp
- status
- distance
- waitTime
- duration
- city
- car_category
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/location/ping HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "attendance_id": "ATT-20260928-18422", "version_code": 99244, "bookingId": "CRN123456789", "lat": 12.9512, "lng": 77.6301, "accuracy": 6.2, "alt": 920.0, "bearing": 214.0, "speed": 8.4, "provider": "gps", "fixTime": 1759058600000, "timestamp": 1759058600500, "status": 3, "distance": 4.1, "waitTime": 90, "duration": 780000, "city": "bangalore", "car_category": "mini" }{ "status": "SUCCESS" }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据供给乘客地图的实时定位上报重建字段 lat、lng、bookingId、distance、waitTime、car_category
设备配置与分成文案
POST
/v1/config/cityopenfinance拉取按城市的司机配置,包括账单 / 收入页上展示的分成文案(customerBill 与 driverEarnings)。
认证方式: 登录会话:JSON 体中的 attendance_id,加上 POST /v1/auth/driver-session 签发的 access_token(Authorization 头)。
- city
- status
- hash
- data
- driverPayoutCommissionMessage
- clAdjusted
- customerBill
- driverEarnings
- enableFraudClone
- enableFraudMock
- localeLanguages
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/config/city HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "city": "bangalore" }{ "status": "SUCCESS", "hash": "cfg-bangalore-9f2a", "data": { "driverPayoutCommissionMessage": { "clAdjusted": "After cancellation levy", "customerBill": "Customer paid ₹196", "driverEarnings": "Your earning ₹172.48" }, "enableFraudClone": true, "enableFraudMock": true, "localeLanguages": [{"code": "en"}, {"code": "hi"}, {"code": "kn"}] } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据账单 / 收入页分成文案重建PayoutCommissionMessage 字段 clAdjusted、customerBill、driverEarnings
查询乘客联系电话
POST
/v1/trips/{bookingId}/rider-contactosint为当前订单揭示乘客的回拨号码(行程中拨打按钮),受预订详情中的 getCustNumberEnabled 开关控制。
认证方式: 登录会话:JSON 体中的 attendance_id,加上 POST /v1/auth/driver-session 签发的 access_token(Authorization 头)。
- bookingId
- userType
- leadSourceVendor
- contactNumber
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/trips/CRN123456789/rider-contact HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "attendance_id": "ATT-20260928-18422", "version_code": 99244, "bookingId": "CRN123456789", "userType": "CUSTOMER", "leadSourceVendor": "OLA" }{ "contactNumber": "+91-98xxxx3210" }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据行程中拨打按钮重建GetCustomerContactResponseModel.contactNumber
国家区号信息
POST
/v1/geo/diallingopendata在发送 OTP 之前引导登录国家的区号、司机客服电话与改号链接。
认证方式: 无需登录。请求体以 imei 识别设备。
- imei
- status
- timestamp
- countryInfo
- id
- countryCode
- name
- dialingCode
- iconUrl
- partnerCareNumber
- phoneNumberChangeWebUrl
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/geo/dialling HTTP/1.1 Content-Type: application/json { "imei": "35xxxxxxxxxx" }{ "status": "SUCCESS", "timestamp": "2026-09-28T12:01:00Z", "countryInfo": [ { "id": 1, "countryCode": "IN", "name": "India", "dialingCode": "+91", "iconUrl": "/media/flags/in.png", "partnerCareNumber": "080-12345678", "phoneNumberChangeWebUrl": "/partner/register" } ] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据登录前国家 / 区号引导重建CountryInfo 字段 countryCode、dialingCode、partnerCareNumber
数据类别
- 司机身份
- 会话与出车状态
- 日收入
- 行程账单
- 在线与二维码支付
- 实时位置
- 乘客联系方式
- 国家配置
数据使用场景与案例
司机收入对账
车队每晚拉取 POST /v1/earnings/daily(earnings.total / bookings / incentive / operatorBill),与 POST /v1/trips/{bookingId}/complete 的 total_bill、driver_payout_commission、payment_type 对齐,把现金单、在线单与奖励打到同一本账。
逐单计价审计
财务机器人把 POST /v1/trips/{bookingId} 的 pricingInfo(rateCardId、commissionPercentage、demand_factor、upfrontFare)与完结载荷(baseFare、distanceFare、nightCharge、toll_charges、GST invoice_model)拼接,标出偏离预估价的账单。
支付结算监控
运营看板在完结后轮询 POST /v1/payments/online-status 与 POST /v1/payments/qr-status,用 paymentStatus / paymentType / amount 和 qrCodeDetails.disableCashCollectedTtl 在司机再次上线前抓住未付的二维码或 UPI 车费。
运力在线供给
城市运营工具读取 POST /v1/duty/status(current_status → requested_status)以及 POST /v1/location/ping(lat、lng、city、car_category、status),绘制哪些司机在岗、在哪、开哪一类车——与调度派发单播订单用的是同一路信号。
常见问题
Ola 司机如何登录?
应用在 POST /v1/auth/otp/send 按车牌下发 OTP,在 POST /v1/auth/otp/confirm 核验,再调用 POST /v1/auth/driver-session。登录响应签发 attendance_id、duty_status、司机资料与可绑定车辆;后续调用在 JSON 体中携带 attendance_id。
Ola 司机端暴露哪些收入数据?
POST /v1/earnings/daily 返回按键拆分的 earnings 映射(total、bookings、incentive、operatorBill),含 value 与 displayValue。逐单结算来自 POST /v1/trips/{bookingId}/complete:total_bill、driver_payout_commission、payment_type 以及车费拆分(baseFare、distanceFare、nightCharge、toll_charges)。分城市分成文案在 POST /v1/config/city。
如何确认乘客已付款?
在线 / UPI 车费在 POST /v1/payments/online-status 轮询(paymentStatus、paymentType、amount)。二维码收款走 POST /v1/payments/qr-status,请求体带 PaymentQrCodeDetails(clientRequestId、imageUrl、id),直到 disableCashCollectedTtl 到期。两者都要求已登录的司机会话。
接口是否暴露实时位置或乘客电话?
是。POST /v1/location/ping 上报 lat、lng、speed、city 与 car_category(行程中还有 distance / waitTime)。POST /v1/trips/{bookingId}/rider-contact 在预订详情开启 getCustNumberEnabled 时返回当前订单的 contactNumber。
相关主题
- ola 司机 api
- ola partner 收入
- ola 行程账单
- ola 出车状态
- ola 二维码收款
- driver_payout_commission
- ola 司机会话
需要集成这个 App 的数据 API?
我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。
- 每个项目均签 NDA 与 SOW
- 3–7 天交付
- 验收通过后才付款
- 仅在授权范围内作业