滴滴司机端私有行程与钱包数据 API
DiDi Driver: Drive & Earn Cash 是 DiDi Global 面向持证网约车司机的合作方应用。Play 商店仍用这个英文名,安装后的 Android 标签则是 DiDi Conductor。司机用手机号登录,在首页地图上线,设置听单模式(目的地过滤、拼车、机场站点、仅女性乘客),抢广播行程卡片,再按到达上车点、开始计费、途经点与行程结束车费走完服务流程。钱包页展示周收入、当日收入与行程数以及提现方式选择,cuenta 提现页会在打款到已绑定银行卡前给出手续费报价。应用覆盖滴滴在拉丁美洲的网约车市场(墨西哥、智利、阿根廷、巴西等),并与 Uber Driver、99 Motorista、inDrive、Cabify 争夺同一批司机。
钱包头上的周 income 与当日 dailyEarning 紧挨着 dailyTripsNum;每张广播卡片带着 newPriceValue 对照 oldPriceValue 以及 passenger_star,抢单成功后写入 succ_oids。服务过程再给出上车 mFromLat/mFromLng、下车 mToName、乘客 nickname 与 mPassengerPin;cuenta 报价则按所选 channelId 拆出 availableBalance 与 commissionAmount。
车队工资机器人用这些车费与钱包字段对已结束行程;安全台观察 isOnline、mGrabMode 与 mOnlyFemalePassenger;资金侧在 SPEI 打款前读取 canWithdraw。openData Studio 把这一合作方面转换成可调用的开放数据。
应用截图
API 端点一览
以下端点与请求/响应示例均依据应用界面推导重构,为示意说明,并非实际抓包。
发送登录验证码
POST
/v1/didi-driver/session/otposint向司机发送 UnifyLogin 短信一次性验证码;返回 errno 以及 prompt、voiceSupport。
认证方式: 无(发起司机登录)。同流程还有验证码图与国家列表步骤。
- cell
- code_type
- os_type
- country_id
- country_calling_code
- canonical_country_code
- api_version
- app_version
- lang
- role
- errno
- error
- traceId
- prompt
- voiceSupport
POST /v1/didi-driver/session/otp HTTP/1.1 Content-Type: application/json { "cell": "5215512345678", "code_type": 1, "os_type": "android", "country_id": 52, "country_calling_code": "+52", "canonical_country_code": "MX", "api_version": "1.0.2", "app_version": "7.10.54", "lang": "es-MX", "role": 1 }{ "errno": 0, "error": "", "traceId": "tr_9c81e2b0", "code_type": 1, "prompt": "Enviamos un código al **5678", "voiceSupport": true }护照短信验证码登录
POST
/v1/didi-driver/session/verifyosint在 DiDi UnifyLogin 上完成短信验证码登录,返回供 dLogin 换取司机会话的 ticket。
认证方式: 无(签发登录 ticket)。同流程还有校验验证码步骤。
- cell
- code
- codeType
- loginType
- ticket
- uid
- countryId
- callingCode
- role
- userType
- verifySessionId
- errno
- error
- traceId
POST /v1/didi-driver/session/verify HTTP/1.1 Content-Type: application/json { "cell": "5215512345678", "code": "482193", "codeType": 1, "loginType": 1, "country_id": 52, "country_calling_code": "+52", "canonical_country_code": "MX", "api_version": "1.0.2", "app_version": "7.10.54", "lang": "es-MX", "role": 1 }{ "errno": 0, "error": "", "traceId": "tr_9c81e2b0", "ticket": "tk_8f21c0a4", "uid": 1843921001, "cell": "5215512345678", "email": "", "countryId": 52, "callingCode": "+52", "role": 1, "userType": 1, "verifySessionId": "vs_44102" }司机会话登录
POST
/v1/didi-driver/sessionosint用 UnifyLogin ticket 与手机号换取司机资料及后续钱包、听单、行程调用所需的 mToken。
认证方式: 来自短信登录的 ticket,以 ticket 字段发送。响应 mToken 作为后续合作方调用的 ticket。
- errno
- errmsg
- ticket
- phone
- ostype
- logintype
- location_country
- lang
- mToken
- mName
- mLicenseNumber
- mCarType
- mCityName
- mCompany
- mCoopMode
- mHeadUrl
- mBusinessId
- mReceiveLevel
- mIsRedirect
- mRedirectUrl
POST /v1/didi-driver/session HTTP/1.1 Content-Type: application/x-www-form-urlencoded ticket=tk_8f21c0a4&phone=5215512345678&ostype=2&support_oth_phone=1&logintype=1&location_country=MX&lang=es-MX{ "errno": 0, "errmsg": "ok", "mDriveInfo": { "mToken": "drv_tok_9b0e12", "mName": "Carlos Hernández", "mLicenseNumber": "ABC1D23", "mCarType": "express", "mCityName": "Ciudad de México", "mCompany": "DiDi Global", "mCoopMode": "individual", "mHeadUrl": "/avatar/c1.jpg", "mBusinessId": 307, "mReceiveLevel": "express" }, "mIsRedirect": 0, "mRedirectUrl": "", "lang": "es-MX" }首页索引信息
POST
/v1/didi-driver/homeopendata加载首页地图引导:司机锁定/状态横幅(reason、锁定窗口)以及大厅与听单按钮开关。
认证方式: ticket = 司机会话登录返回的 mToken。
- errno
- errmsg
- mDriverStatusInfo
- title_bar
- title
- reason
- reason_detail
- status
- start_lock_time
- end_lock_time
- button_text
- button_link
- check_status
- is_hall_need_online
- showSetListenModeButtonActive
- show_selection_hall
- travelMode
- openRideBrand
POST /v1/didi-driver/home HTTP/1.1 Content-Type: application/x-www-form-urlencoded ticket=drv_tok_9b0e12&lang=es-MX{ "errno": 0, "errmsg": "ok", "mDriverStatusInfo": { "title_bar": "Cuenta restringida", "title": "Verificación pendiente", "reason": "document_expired", "reason_detail": "Licencia vencida", "status": 2, "start_lock_time": "2026-10-01 00:00:00", "end_lock_time": "2026-10-15 23:59:59", "button_text": "Subir documento", "button_link": "/driver/docs", "check_status": 0 }, "is_hall_need_online": 1, "showSetListenModeButtonActive": 1, "show_selection_hall": 1, "travelMode": 0, "openRideBrand": "DiDi" }读取在线状态
POST
/v1/didi-driver/availabilityopendata读取司机当前是否在线,以及首页开关应展示的 receiveLevel / vehicle_type。
认证方式: ticket = 司机会话登录返回的 mToken。
- errno
- errmsg
- isOnline
- receiveLevel
- receiveLevelsType
- driver_require_levels
- transportType
- vehicle_type
POST /v1/didi-driver/availability HTTP/1.1 Content-Type: application/x-www-form-urlencoded ticket=drv_tok_9b0e12{ "errno": 0, "errmsg": "ok", "isOnline": 1, "receiveLevel": "express", "receiveLevelsType": 1, "driver_require_levels": "express,comfort", "transportType": 1, "vehicle_type": 2 }设置在线状态
POST
/v1/didi-driver/availability/toggleopendata切换司机上线/下线;派单开始前可能返回人脸核验挑战(need_verify、faceSessionId)。
认证方式: ticket = 司机会话登录返回的 mToken。
- isOnline
- receiveLevel
- lat
- lng
- need_verify
- faceCode
- faceSessionId
- dialog_msg
- phone
- transportType
- vehicle_type
- refreshIndex
- switchCarUrl
- errno
- errmsg
POST /v1/didi-driver/availability/toggle HTTP/1.1 Content-Type: application/x-www-form-urlencoded ticket=drv_tok_9b0e12&isOnline=1&receiveLevel=express&lat=19.432608&lng=-99.133209{ "errno": 0, "errmsg": "ok", "data": { "need_verify": 0, "faceCode": 0, "faceSessionId": "", "dialog_msg": "", "phone": "5215512345678" }, "transportType": 1, "vehicle_type": 2, "refreshIndex": true, "switchCarUrl": "" }读取听单模式
POST
/v1/didi-driver/listen-sheetopendata读取听单设置页:抢单/指派、拼车、目的地过滤、机场站点、仅女性乘客、车型开关与配对路线。
认证方式: ticket = 司机会话登录返回的 mToken。配套写入走同一张听单设置。
- mListenMode
- mGrabMode
- mAutoGrabFlag
- mListenCarpoolMode
- mShowDest
- mShowListenAirportStation
- mOnlyFemalePassenger
- mReceiveLevel
- mListenDistance
- dest_remaining_num
- mLevel
- mSwitch
- mCarDesc
- route_id
- from_region
- dst_region
- errno
- errmsg
POST /v1/didi-driver/listen-sheet HTTP/1.1 Content-Type: application/x-www-form-urlencoded ticket=drv_tok_9b0e12{ "errno": 0, "errmsg": "ok", "mListenMode": 1, "mGrabMode": 0, "mAutoGrabFlag": 0, "mListenCarpoolMode": 1, "mShowDest": 1, "mShowListenAirportStation": 1, "mOnlyFemalePassenger": 0, "mReceiveLevel": "express", "mListenDistance": "8", "dest_remaining_num": 3, "mLevelModeSwitchList": [ {"mLevel": 600, "mSwitch": 1, "mCarDesc": "DiDi Express", "mSwitchDesc": "Express"} ], "listen_pair_routes": [ {"route_id": "rt_12", "pair_route_id": "pr_12", "from_region": "Polanco", "dst_region": "Aeropuerto"} ] }拉取广播行程卡片
POST
/v1/didi-driver/offersopendata把下一组广播行程卡片拉到地图上:上下车地址、passenger_star、newPriceValue 与 oldPriceValue 以及倒计时。
认证方式: ticket = 司机会话登录返回的 mToken。
- total_num
- waiting_trip_num
- trip_limit
- has_next
- sleep_time
- list_tips
- order_id
- start_address
- dest_address
- start_dest_distance
- passenger_star
- head_img
- newPriceValue
- oldPriceValue
- newPriceText
- count_down_timestamp
- isShowAcceptButton
- errno
- errmsg
POST /v1/didi-driver/offers HTTP/1.1 Content-Type: application/x-www-form-urlencoded ticket=drv_tok_9b0e12&lat=19.432608&lng=-99.133209&pull_type=1{ "errno": 0, "errmsg": "ok", "data": { "total_num": 3, "waiting_trip_num": 1, "trip_limit": 5, "has_next": 0, "sleep_time": 8, "list_tips": "Nuevos viajes cerca", "list": [ { "order_id": "TqK8m2n1p0", "start_address": "Av. Reforma 222", "dest_address": "Aeropuerto T1", "start_dest_distance": "12.4 km", "passenger_star": "4.92", "head_img": "/psg/ana.jpg", "newPriceInfo": { "newPriceValue": "$86", "oldPriceValue": "$78", "newPriceText": "Tarifa estimada", "isFirstTime": 0 }, "count_down_timestamp": 1760005410, "show_count_down": true, "isShowAcceptButton": 1, "status": 0 } ] } }抢单 / 争抢行程
POST
/v1/didi-driver/offers/claimopendata尝试抢下一张广播卡片;返回 strive 状态、succ_oids 以及已指派的 NOrderInfo(mOrderId、上下车点、mStatus)。
认证方式: ticket = 司机会话登录返回的 mToken。
- oid
- status
- strive_type
- succ_oids
- toast_text
- autograb_text
- waitPaxAccept
- acceptOrderMode
- is_serial
- queryInterval
- mOrderId
- mTravelId
- mFromName
- mToName
- mStatus
- passenger_id
- errno
- errmsg
POST /v1/didi-driver/offers/claim HTTP/1.1 Content-Type: application/x-www-form-urlencoded ticket=drv_tok_9b0e12&oid=TqK8m2n1p0&lat=19.432608&lng=-99.133209{ "errno": 0, "errmsg": "ok", "status": 1, "strive_type": 1, "succ_oids": "TqK8m2n1p0", "toast_text": "Viaje asignado", "autograb_text": "", "waitPaxAccept": 0, "acceptOrderMode": 1, "is_serial": 0, "queryInterval": 0, "mOrderDetailResponse": { "mCurOrder": { "mOrderId": "TqK8m2n1p0", "mTravelId": "trv_77a1", "mFromName": "Av. Reforma 222", "mToName": "Aeropuerto T1", "mStatus": 1, "passenger_id": 88001234 } } }行程中订单详情
POST
/v1/didi-driver/trips/{orderId}opendata加载进行中的服务卡片:上下车坐标、乘客 nickname 与 star_level、payment_view 以及上车 PIN。
认证方式: ticket = 司机会话登录返回的 mToken。
- oid
- travel_id
- mOrderId
- mTravelId
- mFromName
- mFromLat
- mFromLng
- mToName
- mToLat
- mToLng
- mStatus
- mIsCarPool
- mIsOfflinePay
- is_pay
- pay_text
- passenger_count
- passenger_id
- nickname
- star_level
- avatar_url
- phone
- is_protect_phone
- mPassengerPin
POST /v1/didi-driver/trips/{orderId} HTTP/1.1 Content-Type: application/x-www-form-urlencoded ticket=drv_tok_9b0e12&oid=TqK8m2n1p0&travel_id=trv_77a1{ "errno": 0, "errmsg": "ok", "data": { "mCurOrder": { "mOrderId": "TqK8m2n1p0", "mTravelId": "trv_77a1", "mFromName": "Av. Reforma 222", "mFromLat": 19.4338, "mFromLng": -99.1605, "mToName": "Aeropuerto T1", "mToLat": 19.4361, "mToLng": -99.0719, "mStatus": 4, "mIsCarPool": 0, "mIsOfflinePay": 0, "is_pay": 0, "pay_text": "Tarjeta", "passenger_count": 1, "passenger_id": 88001234, "passenger_info": { "nickname": "Ana", "star_level": "4.9", "avatar_url": "/psg/ana.jpg", "phone": "+52******5678", "is_protect_phone": 1 }, "payment_view": { "pay_text": "Tarjeta", "pay_desc": "Pago en la app", "pay_icon": "/pay/card.png" }, "mPassengerPin": "4821" } } }到达上车点
POST
/v1/didi-driver/trips/{orderId}/arrivedopendata用当前 from_lat/from_lng 标记司机已到上车点;随后等待乘客 PIN。
认证方式: ticket = 司机会话登录返回的 mToken。
- oid
- from_lat
- from_lng
- errno
- errmsg
- httpStatus
POST /v1/didi-driver/trips/{orderId}/arrived HTTP/1.1 Content-Type: application/x-www-form-urlencoded ticket=drv_tok_9b0e12&oid=TqK8m2n1p0&from_lat=19.4338&from_lng=-99.1605{ "errno": 0, "errmsg": "ok", "httpStatus": 200 }开始计费
POST
/v1/didi-driver/trips/{orderId}/meteropendata乘客 PIN 通过后开始计费行程:返回各订单 status 以及供导航用的下车坐标 routeList。
认证方式: ticket = 司机会话登录返回的 mToken。拼车配套会在合乘行程上开始计费。
- oid
- lat
- lng
- statusButtonText
- orders
- status
- to
- to_addr
- to_lat
- to_lng
- routeList
- mOid
- mPassengerName
- mLat
- mLng
- mCoordName
- mType
- errno
- errmsg
POST /v1/didi-driver/trips/{orderId}/meter HTTP/1.1 Content-Type: application/x-www-form-urlencoded ticket=drv_tok_9b0e12&oid=TqK8m2n1p0&lat=19.4338&lng=-99.1605{ "errno": 0, "errmsg": "ok", "statusButtonText": "En viaje", "orders": [ { "oid": "TqK8m2n1p0", "status": 4, "to": "Aeropuerto T1", "to_addr": "Cap. Carlos León, Terminal 1", "to_lat": 19.4361, "to_lng": -99.0719 } ], "routeList": [ { "mOid": "TqK8m2n1p0", "mPassengerName": "Ana", "mLat": 19.4361, "mLng": -99.0719, "mCoordName": "wgs84", "mType": 2 } ] }结束订单
POST
/v1/didi-driver/trips/{orderId}/completeopendata在下车坐标关闭进行中的行程,以便钱包挂上车费;部分产品会先走 dEndCharge 停表。
认证方式: ticket = 司机会话登录返回的 mToken。部分产品会先停表再关单。
- oid
- lat
- lng
- errno
- errmsg
- httpStatus
POST /v1/didi-driver/trips/{orderId}/complete HTTP/1.1 Content-Type: application/x-www-form-urlencoded ticket=drv_tok_9b0e12&oid=TqK8m2n1p0&lat=19.4361&lng=-99.0719{ "errno": 0, "errmsg": "ok", "httpStatus": 200 }钱包全余额查询
POST
/v1/didi-driver/wallet/ledgeropenfinance读取 cuenta 现金账本:totalBalance、totalEarning、cashback 与 interests,供提现页对照报价。
认证方式: ticket = 司机会话登录返回的 mToken,挂在钱包会话上。同流程还有账本流水查询。
- totalBalance
- totalBalanceLabel
- totalBalanceTitle
- totalEarning
- totalEarningLabel
- cashback
- cashbackLabel
- interests
- interestLabel
- withoutHistory
- hasHit
- errno
- errmsg
POST /v1/didi-driver/wallet/ledger HTTP/1.1 Content-Type: application/json { "ticket": "drv_tok_9b0e12", "lang": "es-MX" }{ "errno": 0, "errmsg": "ok", "data": { "totalBalance": 482050, "totalBalanceLabel": "Saldo total", "totalBalanceTitle": "Cuenta", "totalEarning": 118630, "totalEarningLabel": "Ganancias", "cashback": 1200, "cashbackLabel": "Cashback", "interests": 0, "interestLabel": "Intereses", "withoutHistory": false, "hasHit": false } }设置默认提现渠道
POST
/v1/didi-driver/payouts/channelopenfinance保存钱包提现管理中的选择:哪个 channelId 作为 defaultChannelFlag=1 的打款通道。
认证方式: ticket = 司机会话登录返回的 mToken。
- errno
- errmsg
- channelId
- defaultChannelFlag
POST /v1/didi-driver/payouts/channel HTTP/1.1 Content-Type: application/x-www-form-urlencoded ticket=drv_tok_9b0e12&channelId=spei&defaultChannelFlag=1{ "errno": 0, "errmsg": "ok" }手动提现报价
POST
/v1/didi-driver/payouts/quoteopenfinance给出 cuenta 提现报价:oriAmount 与 commissionAmount,以及 DriverWithdrawInfo(realBalance、availableBalance、canWithdraw)。
认证方式: ticket = 司机会话登录返回的 mToken,挂在钱包会话上。配套创建步骤在报价之后落账。
- channelId
- amount
- channelName
- oriAmount
- inputAmount
- commissionAmount
- realBalance
- availableBalance
- realBalanceSplit
- availableBalanceSplit
- canWithdraw
- hasBindAccount
- showTransferIn
- errno
- errmsg
POST /v1/didi-driver/payouts/quote HTTP/1.1 Content-Type: application/json { "ticket": "drv_tok_9b0e12", "channelId": "spei", "amount": 250000 }{ "errno": 0, "errmsg": "ok", "data": { "channelName": "SPEI", "oriAmount": ["$", "2,500.00"], "inputAmount": ["$", "2,500.00"], "commissionAmount": ["$", "8.00"], "driverInfo": { "realBalance": 482050, "availableBalance": 250000, "realBalanceSplit": ["$", "4,820.50"], "availableBalanceSplit": ["$", "2,500.00"], "canWithdraw": true, "hasBindAccount": true, "showTransferIn": false } } }
数据类别
- 身份
- 会话
- 司机资料
- 在线状态
- 听单模式
- 行程报价
- 行程服务
- 车费
- 钱包收入
- 提现
数据使用场景与案例
车队工资对账
车队运营从 cuenta 账本拉取 totalBalance 与 totalEarning,再叠加原生钱包头的 income 与 dailyEarning,按已结束行程的 mOrderId 与 pay_text 对照 realBalance,把现金车费与应用内车费归入正确成本中心。
听单合规看板
安全台观察 isOnline、mGrabMode、mOnlyFemalePassenger 与 dest_remaining_num,以便在限制机场站点听单或仅女性行程的城市里,标出听单设置偏离政策的司机。
播单转化分析
市场分析保存 dPullOrder 卡片上的 newPriceValue 与 oldPriceValue、passenger_star、start_dest_distance,再与 strive 的 succ_oids 关联,看哪些价位真正转化成已指派行程。
提现通道资金调度
资金机器人读取提现菜单的 channelId / defaultChannelFlag 以及报价里的 availableBalance、commissionAmount、canWithdraw,再预约 SPEI 或银行卡打款,仅在 hasBindAccount 为真时重试。
常见问题
DiDi Conductor 如何鉴权司机?
应用先向司机手机号发送一次性验证码,再换成 ticket、uid 与 cell。随后用该 ticket 加手机号换取 mToken,后续合作方调用以 ticket 字段携带。
钱包面返回哪些收入字段?
cuenta 账本填入 totalBalance、totalEarning、cashback 与 interests。原生钱包卡另外带 income、dailyEarning、dailyTripsNum 与 currentSymbol,提现方式列表提供 channelId 与 defaultChannelFlag。
进行中的服务卡片有哪些行程字段?
进行中行程返回 mOrderId、mTravelId、mFromName/Lat/Lng、mToName/Lat/Lng、mStatus、乘客 nickname 与 star_level、payment_view.pay_text 与 mPassengerPin。开始计费还会带上 routeList 下车坐标。
这是滴滴对外开放的开发者 API 吗?
不是。这些是 Android 司机端在登录之后调用的第一方合作方数据接口,在此作为数据面文档化,而非受支持的合作方 SDK。
与 DiDi Driver: Drive & Earn Cash 相似的应用
- Uber - Driver: Drive & Deliver — Uber 司机端供合作司机上线、接乘车和配送订单、查看收入,并按周打款到银行或使用 Instant Pay 提现。
- 99 Motorista e Entregador — 99 Motorista e Entregador 是巴西 99 平台的司机与配送合作端,承接网约车和 99 Food 订单;滴滴于 2018 年收购 99 余下股权,该平台覆盖约 500 个巴西城市。
- inDrive — inDrive 是网约车应用,由乘客出价、司机接受、还价或拒绝;2018 年从墨西哥进入拉美,随后扩展到智利、巴西等国。
- Cabify — Cabify 是西班牙网约车平台,在智利、阿根廷、秘鲁、哥伦比亚和西班牙为乘客匹配专职司机。
- Soy Rappi - Sé un repartidor — Soy Rappi 是 Rappi 的骑手端,独立配送员(Rappitendero)用它配送餐饮、商超及其他即时订单,覆盖墨西哥、巴西、智利和阿根廷。
- iFood para Entregadores — iFood para Entregadores 是巴西在线点餐与外卖平台 iFood 的配送合作端。
- DiDi Delivery: Deliver & Earn — DiDi Delivery 是滴滴面向骑手的配送应用,承接餐食与包裹;DiDi Food 于 2018 年上线,覆盖墨西哥、巴西和中国。
相关主题
- 滴滴司机 API
- DiDi Conductor 数据接口
- 司机钱包 dailyEarning
- 听单模式 mGrabMode
- cuenta availableBalance
- 合作方 mToken
- newPriceValue 行程卡
- UnifyLogin ticket
需要集成这个 App 的数据 API?
我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。
- 每个项目均签 NDA 与 SOW
- 3–7 天交付
- 验收通过后才付款
- 仅在授权范围内作业