Borzo: Courier Delivery App icon

Borzo sender data API: quotes, cards, stats

INCRIN LIMITED · Transport

Borzo: Courier Delivery App is INCRIN LIMITED's same-day courier sender client — the global Borzo/Dostavista booking app for households and small businesses that need a bike, car or van to move a parcel across town. Senders enter a pickup and one or more drops, pick a vehicle class, confirm a quote, pay with a saved card or by topping up an in-app balance, then watch the assigned courier on a live map and rate the job when it closes. Address-book entries remember door codes and last-metre notes, promo codes knock the fare down, and a stats screen totals monthly spend. The listing covers Brazil, India, Indonesia, Mexico, South Korea and Vietnam (sibling regional clients exist for India, Korea and Brazil), and it sits next to Porter, Lalamove, Dunzo and local last-mile desks as a consumer-side courier booker rather than a rider payout app.

Quoted payment_amount on a multi-drop same-day job sits next to live status_category and the assigned courier's masked_phone, while saved pickups keep entrance_number and invisible_mile_navigation_instructions for the last metre. Vehicle rows advertise max_weight_kg and is_create_order_allowed.

Card-on-file rows expose bank_card_number_mask and is_last_used; wallet top-ups return a payment_url for the chosen bill_provider. Monthly spend rolls up as total_orders_price and average_address_price, and volume-discount steps report completed_deliveries against total_discount. Fleet dashboards, SMB shipping desks and wallet reconcilers stitch those objects into live ETAs, prepaid-balance alerts and city-level volume. openData Studio turns that surface into callable open data.

Screenshots

  • Borzo: Courier Delivery App screenshot 1
  • Borzo: Courier Delivery App screenshot 2
  • Borzo: Courier Delivery App screenshot 3
  • Borzo: Courier Delivery App screenshot 4
  • Borzo: Courier Delivery App screenshot 5
  • Borzo: Courier Delivery App screenshot 6

API surface

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

  • Send verification SMS

    POST /v1/borzo/otp/dispatch osint

    Sends a one-time SMS to phone (VerificationCodeRequest) so person login can pass code; force_sms bypasses push.

    Auth: Unauthenticated. A device-id header identifies the handset; no session token yet.

    • phone
    • source
    • device_id
    • push_token
    • force_sms
    • push_service
    • is_successful
    • errors
    • parameter_errors
    • session
    • server_time
    POST /v1/borzo/otp/dispatch HTTP/1.1
    Content-Type: application/json
    X-Device-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    
    {
      "phone": "+5511987654321",
      "source": "login",
      "device_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "push_token": "fcm:dK3_…",
      "force_sms": true,
      "push_service": "fcm"
    }
    {
      "is_successful": true,
      "errors": [],
      "parameter_errors": null,
      "session": null,
      "server_time": "2026-10-05T12:00:08Z"
    }
  • Login person

    POST /v1/borzo/session/person osint

    Authenticates a sender with phone, password and SMS code; returns session plus the user card (user_id, balance).

    Auth: Unauthenticated. A device-id header identifies the handset; no session token yet.

    • phone
    • password
    • code
    • is_successful
    • session
    • server_time
    • user
    • user_id
    • name
    • surname
    • middlename
    • email
    • balance
    • unread_notifications_category_ids
    POST /v1/borzo/session/person HTTP/1.1
    Content-Type: application/json
    X-Device-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    
    {
      "phone": "+5511987654321",
      "password": "••••••••",
      "code": "482911"
    }
    {
      "is_successful": true,
      "errors": [],
      "parameter_errors": null,
      "session": "dv-sess-7f21c0a4",
      "server_time": "2026-10-05T12:01:22Z",
      "user": {
        "user_id": 4410281,
        "name": "Ana",
        "surname": "Costa",
        "middlename": null,
        "phone": "+5511987654321",
        "email": "[email protected]",
        "balance": "128.50",
        "unread_notifications_category_ids": []
      }
    }
  • Client profile

    GET /v1/borzo/account/card openbanking

    Reloads the signed-in sender card, including wallet balance as a Money string.

    Auth: Session token from person login plus a device-id header on every call.

    • is_successful
    • session
    • server_time
    • user
    • user_id
    • name
    • surname
    • middlename
    • phone
    • email
    • balance
    • unread_notifications_category_ids
    GET /v1/borzo/account/card HTTP/1.1
    X-Session: dv-sess-7f21c0a4
    X-Device-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    {
      "is_successful": true,
      "session": "dv-sess-7f21c0a4",
      "server_time": "2026-10-05T12:02:01Z",
      "user": {
        "user_id": 4410281,
        "name": "Ana",
        "surname": "Costa",
        "middlename": null,
        "phone": "+5511987654321",
        "email": "[email protected]",
        "balance": "128.50",
        "unread_notifications_category_ids": ["orders"]
      }
    }
  • Calculate order

    POST /v1/borzo/quotes/preview opendata

    Prices a same-day multi-stop job from filling_id, form_type and addresses; returns payment_amount before the job is booked.

    Auth: Session token from person login plus a device-id header on every call.

    • filling_id
    • order_id
    • form_type
    • matter
    • promo_code
    • back_payment_method
    • addresses
    • address_id
    • address
    • latitude
    • longitude
    • contact_phone
    • delivery_interval_start
    • payment_amount
    • undiscounted_payment_amount
    • backpayment_amount
    • payment_method
    • warnings
    • parameter_errors
    • create_orders_count
    • is_user_created
    • payment_data
    POST /v1/borzo/quotes/preview HTTP/1.1
    Content-Type: application/json
    X-Session: dv-sess-7f21c0a4
    X-Device-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    
    {
      "filling_id": "fill-9f3a1c",
      "order_id": null,
      "form_type": "same_day",
      "matter": "Documents",
      "promo_code": null,
      "back_payment_method": null,
      "addresses": [
        {
          "address_id": null,
          "address": "Av. Paulista 1578, Sao Paulo",
          "latitude": -23.5614,
          "longitude": -46.6565,
          "contact_phone": "+5511987654321",
          "delivery_interval_start": "2026-10-05T14:00:00"
        },
        {
          "address": "Rua Augusta 2690, Sao Paulo",
          "latitude": -23.5533,
          "longitude": -46.6589,
          "contact_phone": "+5511912345678",
          "delivery_interval_start": "2026-10-05T15:30:00"
        }
      ]
    }
    {
      "is_successful": true,
      "order": {
        "id": null,
        "name": null,
        "form_type": "same_day",
        "status": null,
        "status_category": null,
        "payment_amount": "42.90",
        "undiscounted_payment_amount": "42.90",
        "backpayment_amount": "0.00",
        "payment_method": "balance"
      },
      "warnings": [],
      "parameter_warnings": null,
      "errors": [],
      "parameter_errors": null,
      "create_orders_count": 1,
      "is_user_created": false,
      "payment_data": null,
      "promo_code_warnings": []
    }
  • Create order

    POST /v1/borzo/jobs/book opendata

    Books the quoted job and returns the order id, status_category and optional payment_data redirect URLs.

    Auth: Session token from person login plus a device-id header on every call.

    • filling_id
    • form_type
    • matter
    • payment_method
    • addresses
    • id
    • name
    • status
    • status_category
    • created_at
    • payment_amount
    • undiscounted_payment_amount
    • backpayment_amount
    • is_user_created
    • create_orders_count
    • payment_data
    • payment_url
    • redirect_success_url
    • redirect_fail_url
    POST /v1/borzo/jobs/book HTTP/1.1
    Content-Type: application/json
    X-Session: dv-sess-7f21c0a4
    X-Device-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    
    {
      "filling_id": "fill-9f3a1c",
      "form_type": "same_day",
      "matter": "Documents",
      "payment_method": "balance",
      "addresses": [
        {
          "address": "Av. Paulista 1578, Sao Paulo",
          "latitude": -23.5614,
          "longitude": -46.6565,
          "contact_phone": "+5511987654321",
          "delivery_interval_start": "2026-10-05T14:00:00"
        },
        {
          "address": "Rua Augusta 2690, Sao Paulo",
          "latitude": -23.5533,
          "longitude": -46.6589,
          "contact_phone": "+5511912345678",
          "delivery_interval_start": "2026-10-05T15:30:00"
        }
      ]
    }
    {
      "is_successful": true,
      "order": {
        "id": 91827364,
        "name": "DV-91827364",
        "form_type": "same_day",
        "status": "new",
        "status_category": "undelivered",
        "created_at": "2026-10-05T12:05:11Z",
        "payment_amount": "42.90",
        "undiscounted_payment_amount": "42.90",
        "backpayment_amount": "0.00",
        "payment_method": "balance"
      },
      "warnings": [],
      "errors": [],
      "create_orders_count": 1,
      "is_user_created": false,
      "payment_data": {
        "payment_url": null,
        "redirect_success_url": null,
        "redirect_fail_url": null
      }
    }
  • Active orders and couriers

    GET /v1/borzo/jobs/live opendata

    Pages active jobs (getActiveOrders) with status_category=undelivered and the live couriers list for the map.

    Auth: Session token from person login plus a device-id header on every call.

    • status_category
    • offset
    • limit
    • orders
    • id
    • name
    • form_type
    • status
    • created_at
    • payment_amount
    • couriers
    • masked_phone
    • photo_url
    • is_deaf_mute
    • vehicle_number
    • vehicle_region
    • latitude
    • longitude
    GET /v1/borzo/jobs/live?status_category=undelivered&offset=0&limit=20 HTTP/1.1
    X-Session: dv-sess-7f21c0a4
    X-Device-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    {
      "is_successful": true,
      "orders": [
        {
          "id": 91827364,
          "name": "DV-91827364",
          "form_type": "same_day",
          "status": "courier_assigned",
          "status_category": "undelivered",
          "created_at": "2026-10-05T12:05:11Z",
          "payment_amount": "42.90"
        }
      ],
      "couriers": [
        {
          "id": 55201,
          "name": "Joao",
          "phone": "+5511999887766",
          "masked_phone": "+55 11 9****7766",
          "photo_url": "https://cdn.example/img",
          "is_deaf_mute": false,
          "vehicle_number": "BRA2E19",
          "vehicle_region": "SP",
          "latitude": -23.5571,
          "longitude": -46.6610
        }
      ]
    }
  • Cancel order

    POST /v1/borzo/jobs/void opendata

    Cancels a booked job by order_id and cancel_reason after a cancel-eligibility check.

    Auth: Session token from person login plus a device-id header on every call.

    • order_id
    • cancel_reason
    • is_successful
    • errors
    • parameter_errors
    • session
    • server_time
    POST /v1/borzo/jobs/void HTTP/1.1
    Content-Type: application/json
    X-Session: dv-sess-7f21c0a4
    X-Device-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    
    {
      "order_id": 91827364,
      "cancel_reason": "sender_cancelled"
    }
    {
      "is_successful": true,
      "errors": [],
      "parameter_errors": null,
      "session": "dv-sess-7f21c0a4",
      "server_time": "2026-10-05T12:18:44Z"
    }
  • Bank cards

    GET /v1/borzo/wallet/instruments openfinance

    Lists saved cards (BankCardDto) with bank_card_number_mask and is_last_used for checkout.

    Auth: Session token from person login plus a device-id header on every call.

    • bank_cards
    • bank_card_id
    • bank_card_number_mask
    • type
    • is_last_used
    • expiration_date
    • provider
    GET /v1/borzo/wallet/instruments HTTP/1.1
    X-Session: dv-sess-7f21c0a4
    X-Device-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    {
      "is_successful": true,
      "bank_cards": [
        {
          "bank_card_id": 8812,
          "bank_card_number_mask": "**** 4444",
          "type": "visa",
          "is_last_used": true,
          "expiration_date": "2028-09",
          "provider": "cardpay"
        }
      ]
    }
  • Request bank-card binding

    POST /v1/borzo/wallet/instruments/enroll openfinance

    Starts hosted card-on-file capture; BankCardBindingResponse returns binding_url, success_url and fail_url.

    Auth: Session token from person login plus a device-id header on every call.

    • binding_url
    • success_url
    • fail_url
    • is_successful
    POST /v1/borzo/wallet/instruments/enroll HTTP/1.1
    X-Session: dv-sess-7f21c0a4
    X-Device-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    {
      "is_successful": true,
      "binding_url": "https://pay.example/bind/8812",
      "success_url": "https://cdn.example/img",
      "fail_url": "https://cdn.example/img"
    }
  • Request top-up balance

    POST /v1/borzo/wallet/credit openfinance

    Starts a wallet top-up for bill_provider and amount; returns the hosted payment_url plus success/failure/callback URLs.

    Auth: Session token from person login plus a device-id header on every call.

    • bill_provider
    • amount
    • method
    • payment_url
    • success_url
    • failure_url
    • callback_url
    POST /v1/borzo/wallet/credit HTTP/1.1
    Content-Type: application/json
    X-Session: dv-sess-7f21c0a4
    X-Device-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    
    {
      "bill_provider": "pix",
      "amount": "100.00"
    }
    {
      "is_successful": true,
      "method": {
        "bill_provider": "pix",
        "payment_url": "https://pay.example/topup/8812",
        "success_url": "https://cdn.example/img",
        "failure_url": "https://cdn.example/img",
        "callback_url": "https://pay.example/callback"
      }
    }
  • Order statistics

    GET /v1/borzo/spend/monthly opendata

    Returns per-month and lifetime sender spend: orders_count, total_orders_price, average_order_price, average_address_price.

    Auth: Session token from person login plus a device-id header on every call.

    • monthly_statistics
    • year
    • month
    • orders_count
    • total_orders_price
    • average_order_price
    • average_address_price
    • total
    GET /v1/borzo/spend/monthly HTTP/1.1
    X-Session: dv-sess-7f21c0a4
    X-Device-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    {
      "is_successful": true,
      "monthly_statistics": [
        {
          "year": 2026,
          "month": 9,
          "orders_count": 18,
          "total_orders_price": "612.40",
          "average_order_price": "34.02",
          "average_address_price": "17.01"
        }
      ],
      "total": {
        "orders_count": 86,
        "total_orders_price": "3012.10",
        "average_order_price": "35.02",
        "average_address_price": "16.80"
      }
    }
  • Client addresses

    GET /v1/borzo/address-book opendata

    Loads the sender address book, including last-metre fields entrance_number, floor_number, apartment_number and invisible_mile_navigation_instructions.

    Auth: Session token from person login plus a device-id header on every call.

    • client_addresses
    • title
    • phone
    • note
    • address
    • latitude
    • longitude
    • entrance_number
    • floor_number
    • apartment_number
    • invisible_mile_navigation_instructions
    GET /v1/borzo/address-book HTTP/1.1
    X-Session: dv-sess-7f21c0a4
    X-Device-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    {
      "is_successful": true,
      "client_addresses": [
        {
          "title": "Office",
          "phone": "+5511987654321",
          "note": "Ask reception",
          "address": "Av. Paulista 1578, Sao Paulo",
          "latitude": -23.5614,
          "longitude": -46.6565,
          "entrance_number": "B",
          "floor_number": "12",
          "apartment_number": "1204",
          "invisible_mile_navigation_instructions": "Use the loading bay on Rua Augusta"
        }
      ]
    }
  • Geo suggestions

    GET /v1/borzo/places/autocomplete opendata

    Autocomplete for pickup/drop typing: formatted_address, place_id and is_final_address plus the geo_suggestion_provider.

    Auth: Session token from person login plus a device-id header on every call.

    • query
    • address_suggestions
    • formatted_address
    • street_level_address
    • city_level_address
    • is_final_address
    • latitude
    • longitude
    • place_id
    • is_final_address_detection_available
    • geo_suggestion_provider
    GET /v1/borzo/places/autocomplete?query=Av.%20Paulista%201578 HTTP/1.1
    X-Session: dv-sess-7f21c0a4
    X-Device-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    {
      "is_successful": true,
      "address_suggestions": [
        {
          "formatted_address": "Av. Paulista 1578, Bela Vista, Sao Paulo - SP",
          "street_level_address": "Av. Paulista 1578",
          "city_level_address": "Sao Paulo - SP",
          "is_final_address": true,
          "latitude": -23.5614,
          "longitude": -46.6565,
          "place_id": "ChIJpaulista1578"
        }
      ],
      "is_final_address_detection_available": true,
      "geo_suggestion_provider": "google"
    }
  • Vehicle types

    GET /v1/borzo/fleet/classes opendata

    Lists bookable vehicle classes (VehicleTypeDto) with max_weight_kg and is_create_order_allowed for the compose-order form.

    Auth: Session token from person login plus a device-id header on every call.

    • vehicle_types
    • vehicle_type_id
    • name
    • client_mobile_app_local_name
    • description
    • tags
    • max_weight_kg
    • default_weight_kg
    • sort_order
    • is_create_order_allowed
    • is_default
    • is_require_loading_enabled
    • is_motobox_required_enabled
    • is_cargo_dimension_enabled
    • is_insurance_visible
    • is_total_weight_editable
    GET /v1/borzo/fleet/classes HTTP/1.1
    X-Session: dv-sess-7f21c0a4
    X-Device-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    {
      "is_successful": true,
      "vehicle_types": [
        {
          "vehicle_type_id": 12,
          "name": "Bike",
          "client_mobile_app_local_name": "Moto",
          "description": "Up to 20 kg",
          "tags": ["same_day"],
          "max_weight_kg": 20,
          "default_weight_kg": 5,
          "sort_order": 1,
          "is_create_order_allowed": true,
          "is_default": true,
          "is_require_loading_enabled": false,
          "is_motobox_required_enabled": true,
          "is_cargo_dimension_enabled": false,
          "is_insurance_visible": true,
          "is_total_weight_editable": true
        }
      ]
    }
  • Promo code

    GET /v1/borzo/offers/lookup opendata

    Looks up a promo (PromoCodeDto) and returns discount_absolute_amount plus min_total_order_amount.

    Auth: Session token from person login plus a device-id header on every call.

    • promo_code
    • discount_absolute_amount
    • min_total_order_amount
    • is_successful
    GET /v1/borzo/offers/lookup?code=BORZO20 HTTP/1.1
    X-Session: dv-sess-7f21c0a4
    X-Device-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    {
      "is_successful": true,
      "promo_code": {
        "promo_code": "BORZO20",
        "discount_absolute_amount": 20.0,
        "min_total_order_amount": 50.0
      }
    }
  • Volume discount steps

    GET /v1/borzo/loyalty/tiers opendata

    Returns the sender volume-discount ladder: period start/end and steps with completed_deliveries, total_deliveries and total_discount.

    Auth: Session token from person login plus a device-id header on every call.

    • state
    • period
    • start
    • end
    • steps
    • completed_deliveries
    • total_deliveries
    • total_discount
    GET /v1/borzo/loyalty/tiers HTTP/1.1
    X-Session: dv-sess-7f21c0a4
    X-Device-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    {
      "is_successful": true,
      "state": {
        "period": {
          "start": "2026-09-01",
          "end": "2026-09-30"
        },
        "steps": [
          {
            "completed_deliveries": 18,
            "total_deliveries": 25,
            "total_discount": "40.00"
          }
        ]
      }
    }
  • Rate order

    POST /v1/borzo/jobs/feedback opendata

    Submits a post-delivery rating (oid, rating, comment, rating_ground_ids) after the post-delivery prompt.

    Auth: Session token from person login plus a device-id header on every call.

    • oid
    • rating
    • comment
    • rating_ground_ids
    • is_successful
    • errors
    • session
    • server_time
    POST /v1/borzo/jobs/feedback HTTP/1.1
    Content-Type: application/json
    X-Session: dv-sess-7f21c0a4
    X-Device-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    
    {
      "oid": 91827364,
      "rating": 5,
      "comment": "On time",
      "rating_ground_ids": ["punctual"]
    }
    {
      "is_successful": true,
      "errors": [],
      "parameter_errors": null,
      "session": "dv-sess-7f21c0a4",
      "server_time": "2026-10-05T16:40:02Z"
    }

Data categories

  • identity
  • orders
  • quotes
  • courier tracking
  • bank cards
  • wallet top-up
  • addresses
  • geocoding
  • order statistics
  • vehicle types
  • promo codes
  • volume discounts

Where teams use this data

  • Same-day quote vs booked fare

    A shipping desk posts the same address list to the quote preview, stores payment_amount and undiscounted_payment_amount, then diffs those strings against the booked job so promo and back-payment drift is visible before the courier is assigned.

  • Live courier board

    Dispatch screens poll active orders with status_category=undelivered, join each job to the couriers list, and plot masked_phone, vehicle_number, latitude and longitude until status_category flips.

  • Wallet and card ops

    Finance bots list bank_card_number_mask rows, keep is_last_used in sync, open the binding_url from card enrollment for a new card, and hit the payment_url from wallet credit when in-app balance cannot cover the next quote.

  • City spend and volume tiers

    Monthly spend totals (orders_count, total_orders_price, average_address_price) sit next to volume-discount steps (completed_deliveries, total_discount) so an SMB dashboard can compare this sender's volume against the address book without scraping the stats screen.

Frequently asked questions

What sender objects does Borzo expose?

A session-backed profile (user_id, phone, balance), calculated and booked jobs with payment_amount and status_category, a couriers list with masked_phone and live coordinates, saved client_addresses, place autocomplete, vehicle_types, promo_code rows, bank_cards, volume-discount steps and monthly spend totals.

How does a Borzo sender session authenticate?

Person login returns a session string that later calls send as a session header, together with a stable device-id header. SMS login posts phone, force_sms and push_token before that session exists.

Can quotes be reconciled against booked jobs?

Yes. Quote-preview and book-job share filling_id, form_type and the addresses list; the booked job keeps payment_amount, undiscounted_payment_amount and is_user_created so a desk can diff quote versus capture.

Where do card and wallet fields live?

Saved instruments list bank_card_id, bank_card_number_mask, expiration_date and is_last_used. Card enrollment returns binding_url, success_url and fail_url. Wallet credit takes bill_provider plus amount and returns payment_url, success_url, failure_url and callback_url.

Apps similar to Borzo: Courier Delivery App

  • Porter - Logistics Service App — India intra-city goods booking with vehicle-class quotes and a customer wallet; the closest catalog sender app to Borzo.
  • Dostavista — работа курьером — INCRIN/Dostavista's Russia courier (rider) client — same family, payouts and batches rather than sender quotes.
  • Lalamove — Same-day van and bike booking across several Asian cities, overlapping Borzo's sender flow.
  • Dunzo — India hyperlocal sender app for parcels and store runs, a frequent alternative on the same desk as Borzo.
  • Shadowfax — India last-mile marketplace used by D2C brands that also book ad-hoc same-day couriers.

Topics

  • borzo api
  • borzo courier data
  • incrin limited
  • same-day courier sender
  • payment_amount
  • status_category
  • bank_card_number_mask
  • total_orders_price
  • masked_phone

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