DiDi Driver: Drive & Earn Cash icon

DiDi Conductor private trip and wallet data API

DiDi Global · Transport

DiDi Driver: Drive & Earn Cash is DiDi Global's partner app for licensed ride-hailing drivers — the Play listing still uses that English name, while the installed Android label is DiDi Conductor. Drivers sign in with a mobile number, go online on the home map, set a listen mode (destination filter, carpool, airport station, female-passenger switch) and grab broadcast trip cards, then run the serving flow from arrival at pickup through begin-charge, waypoints and trip-end fare. A wallet tab shows weekly income, today's daily earning and trip count plus a withdraw-method picker, and a cuenta cash-out screen quotes commissions before sending funds to a bound card. The app is published for DiDi's Latin American ride-hailing markets — Mexico, Chile, Argentina and Brazil among them — and competes for the same partners as Uber Driver, 99 Motorista, inDrive and Cabify.

Weekly income and today's dailyEarning sit on the wallet header next to dailyTripsNum, while each broadcast card carries newPriceValue against oldPriceValue plus passenger_star before a strive writes succ_oids. Serving then exposes pickup mFromLat/mFromLng, drop-off mToName, the passenger nickname and a mPassengerPin, and a cuenta quote splits availableBalance from commissionAmount on the chosen channelId.

Fleet payroll bots reconcile those fare and wallet fields against closed trips; a safety desk watches isOnline, mGrabMode and mOnlyFemalePassenger; treasury reads canWithdraw before a SPEI payout. openData Studio turns that partner surface into callable open data.

Screenshots

  • DiDi Driver: Drive & Earn Cash screenshot 1
  • DiDi Driver: Drive & Earn Cash screenshot 2
  • DiDi Driver: Drive & Earn Cash screenshot 3
  • DiDi Driver: Drive & Earn Cash screenshot 4
  • DiDi Driver: Drive & Earn Cash screenshot 5

API surface

The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.

  • Send login verification code

    POST /v1/didi-driver/session/otp osint

    Sends an SMS one-time code for driver UnifyLogin; returns errno plus prompt and voiceSupport.

    Auth: None (starts driver login). Companion captcha and country-list steps live on the same login flow.

    • 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
    }
  • Passport sign-in by SMS code

    POST /v1/didi-driver/session/verify osint

    Completes SMS-code sign-in on DiDi UnifyLogin and returns the ticket that dLogin exchanges for a driver session.

    Auth: None (issues a login ticket). A companion code-check step lives on the same login flow.

    • cell
    • code
    • codeType
    • loginType
    • ticket
    • uid
    • email
    • 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"
    }
  • Driver session login

    POST /v1/didi-driver/session osint

    Exchanges a UnifyLogin ticket plus phone for the driver profile and mToken consumed by wallet, listen-mode and trip calls.

    Auth: Login ticket from the SMS sign-in, sent as ticket. Issues mToken used as ticket on later partner calls.

    • 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"
    }
  • Home index info

    POST /v1/didi-driver/home opendata

    Loads the home-map bootstrap: driver lock/status banner (reason, lock window) plus hall and listen-mode button flags.

    Auth: ticket = mToken from the driver session login.

    • 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"
    }
  • Get online status

    POST /v1/didi-driver/availability opendata

    Reads whether the partner is currently online plus the receiveLevel / vehicle_type the home toggle should show.

    Auth: ticket = mToken from the driver session login.

    • 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
    }
  • Set online status

    POST /v1/didi-driver/availability/toggle opendata

    Toggles the partner online or offline; may return a face-verify challenge (need_verify, faceSessionId) before dispatch starts.

    Auth: ticket = mToken from the driver session login.

    • 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": ""
    }
  • Get listen mode

    POST /v1/didi-driver/listen-sheet opendata

    Reads the listen-mode sheet: grab vs assign, carpool, destination filter, airport station, female-passenger switch, car-level toggles and pair routes.

    Auth: ticket = mToken from the driver session login. A companion setter writes the same listen sheet.

    • 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"}
      ]
    }
  • Pull broadcast trip cards

    POST /v1/didi-driver/offers opendata

    Pulls the next broadcast trip cards onto the map: pickup/drop addresses, passenger_star, newPriceValue vs oldPriceValue and a countdown.

    Auth: ticket = mToken from the driver session login.

    • 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
          }
        ]
      }
    }
  • Strive / grab a trip

    POST /v1/didi-driver/offers/claim opendata

    Attempts to grab a broadcast card; returns strive status, succ_oids and the assigned NOrderInfo (mOrderId, pickup/drop, mStatus).

    Auth: ticket = mToken from the driver session login.

    • 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
        }
      }
    }
  • In-trip order detail

    POST /v1/didi-driver/trips/{orderId} opendata

    Loads the live serving card: pickup/drop coordinates, passenger nickname and star_level, payment_view and the pickup PIN.

    Auth: ticket = mToken from the driver session login.

    • 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"
        }
      }
    }
  • Arrived at pickup

    POST /v1/didi-driver/trips/{orderId}/arrived opendata

    Marks the driver as arrived at pickup with the current from_lat/from_lng; serving then waits for the passenger PIN.

    Auth: ticket = mToken from the driver session login.

    • 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
    }
  • Begin charge

    POST /v1/didi-driver/trips/{orderId}/meter opendata

    Starts the metered trip after PIN: returns per-order status plus a routeList of drop-off coordinates for navigation.

    Auth: ticket = mToken from the driver session login. A carpool sibling starts the meter on shared trips.

    • 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
        }
      ]
    }
  • Finish order

    POST /v1/didi-driver/trips/{orderId}/complete opendata

    Closes the serving trip at the drop-off coordinates so the wallet can attach the fare; dEndCharge stops the meter first on some products.

    Auth: ticket = mToken from the driver session login. A meter-stop sibling closes the fare clock first on some products.

    • 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
    }
  • Wallet all-balance query

    POST /v1/didi-driver/wallet/ledger openfinance

    Reads the cuenta cash ledger: totalBalance, totalEarning, cashback and interests that the withdraw screen quotes against.

    Auth: ticket = mToken from the driver session login, sent on the wallet session. A companion ledger-entries call lives on the same wallet flow.

    • 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
      }
    }
  • Set default withdraw channel

    POST /v1/didi-driver/payouts/channel openfinance

    Persists the wallet withdraw-manage pick: which channelId is the defaultChannelFlag=1 payout rail.

    Auth: ticket = mToken from the driver session login.

    • 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"
    }
  • Quote a manual withdrawal

    POST /v1/didi-driver/payouts/quote openfinance

    Quotes a cuenta cash-out: oriAmount vs commissionAmount plus DriverWithdrawInfo (realBalance, availableBalance, canWithdraw).

    Auth: ticket = mToken from the driver session login, sent on the wallet session. A companion create step books the payout after this quote.

    • 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
        }
      }
    }

Data categories

  • identity
  • sessions
  • driver-profile
  • online-status
  • listen-mode
  • trip-offers
  • trip-serving
  • fares
  • wallet-income
  • payouts

Where teams use this data

  • Partner-fleet payroll reconciliation

    A fleet operator pulls totalBalance and totalEarning from the cuenta ledger plus income and dailyEarning from the native wallet header, then matches each closed trip's mOrderId and pay_text against realBalance so cash vs in-app fares land in the right cost center.

  • Dispatch-mode compliance dashboard

    A safety desk watches isOnline, mGrabMode, mOnlyFemalePassenger and dest_remaining_num so a city that restricts airport-station listening or female-only trips can flag partners whose listen sheet drifted off policy.

  • Offer-card yield analytics

    A marketplace analyst stores newPriceValue vs oldPriceValue, passenger_star and start_dest_distance from dPullOrder cards, then joins strive succ_oids to see which fare bands actually convert into assigned trips.

  • Payout-rail treasury

    A treasury bot reads channelId / defaultChannelFlag from the withdraw menu and the calculate quote (availableBalance, commissionAmount, canWithdraw) before booking a SPEI or card payout, and retries only when hasBindAccount is true.

Frequently asked questions

How does DiDi Conductor authenticate a driver?

The app sends an SMS one-time code to the partner's mobile number, then exchanges it for a ticket, uid and cell. A follow-up session call trades that ticket plus phone for mToken, which later partner calls send as ticket.

What income fields does the wallet surface return?

The cuenta ledger fills totalBalance, totalEarning, cashback and interests. The native wallet card additionally carries income, dailyEarning, dailyTripsNum and currentSymbol, and the withdraw-method list exposes channelId plus defaultChannelFlag.

Which trip fields are on a live serving card?

A live trip returns mOrderId, mTravelId, mFromName/Lat/Lng, mToName/Lat/Lng, mStatus, passenger nickname and star_level, payment_view.pay_text and mPassengerPin. Begin-charge adds routeList drop-off coordinates.

Is this a public DiDi developer API?

No. These are first-party partner endpoints the Android driver app calls after login. They are documented here as a data surface, not as a supported partner SDK.

Apps similar to DiDi Driver: Drive & Earn Cash

  • Uber - Driver: Drive & Deliver — Uber's driver app lets partners go online, accept ride and delivery requests, track earnings, and cash out weekly to a bank account or via Instant Pay.
  • 99 Motorista e Entregador — 99 Motorista e Entregador is the Brazil partner app for 99's vehicle-for-hire and 99 Food services; DiDi purchased the remainder of 99 in 2018, and the platform operates in about 500 Brazilian cities.
  • inDrive — inDrive is a ride-hailing app in which the rider proposes a fare and the driver accepts, counters or declines; it entered Latin America in Mexico in 2018 and later expanded to Chile, Brazil and other countries in the region.
  • Cabify — Cabify is a Spanish ride-hailing platform that matches passengers with private drivers in Chile, Argentina, Peru, Colombia and Spain.
  • Soy Rappi - Sé un repartidor — Soy Rappi is Rappi's courier app for independent Rappitenderos who deliver restaurant, grocery and other on-demand orders in Mexico, Brazil, Chile and Argentina.
  • iFood para Entregadores — iFood para Entregadores is the courier partner app for iFood, the Brazilian online food-ordering and delivery platform.
  • DiDi Delivery: Deliver & Earn — DiDi Delivery is DiDi Global's courier app for meal and parcel drops; DiDi Food launched in 2018 and is listed as available in Mexico, Brazil and China.

Topics

  • DiDi Conductor API
  • DiDi Driver data API
  • driver wallet dailyEarning
  • DiDi listen mode mGrabMode
  • cuenta availableBalance
  • DiDi partner mToken
  • newPriceValue trip cards
  • UnifyLogin ticket

Need this app's data API integrated?

We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.

  • NDA + SOW on every engagement
  • Delivery in 3–7 days
  • Payment only after acceptance
  • Work scoped to authorized use

Get a quote