Porter 物流服务 App 数据 API
Porter 客户 App 通过私有 JSON 客户 API 为市内货运定价与下单。确认页把 /v1/quotes/on-demand 连同 vehicle_ids 与嵌套 order 一起提交,返回各车型 fare_info 与 quotation_uuid;下单调用 /v1/bookings/create 把该报价转为 order_crn。/v1/account/snapshot 的首页快照返回 Porter 钱包 amount、Paytm 余额、dues_amount 与 open_or_live_order_ids。优惠券、租赁套餐、地理区域多边形与司机评价共用同一 mobile + auth_token 会话。
Porter 是 SmartShift Logistics 面向印度的按需货运客户 App(两轮车、小货车、Ace 与卡车)。其运费确认、优惠券、租赁套餐与钱包界面背后是私有 JSON 客户 API:按需报价以 vehicle_ids 与嵌套 order 请求,优惠券/折扣返回 fare 与 applied_coupon,另有按时长/里程的租赁套餐、Porter/Paytm 钱包快照、取货城市地理区域、进行中订单与欠款标记,以及行程后司机评价。登录调用在请求体发送客户 mobile 与 auth_token。
应用截图
API 端点一览
按需车型报价
POST
/v1/quotes/on-demandopendata针对一组收发地址返回各车型按需运费报价(quotation_uuid、fare_info、route_polyline),即确认下单页。
认证方式: 客户会话:JSON 请求体字段 mobile 与 auth_token。
- vehicle_ids
- selected_vehicle_id
- service_type
- part_load_only_request
- customer_mobile
- geo_region_id
- from_address_lat
- from_address_long
- to_address_lat
- to_address_long
- waypoints_attributes
- payment_mode
- use_porter_credits
- vehicle_wise_quotations
- quotation_uuid
- vehicle_id
- fare_info
- fare
- min_paytm_amount
- total_discount
- applied_coupon
- fare_before_discount
- nearby_vehicle_drivers
- route_polyline
- select_vehicle_id
- wallet_info
- porter_duration_in_mins
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/quotes/on-demand HTTP/1.1 Content-Type: application/json { "mobile": "9876543210", "auth_token": "<auth_token>", "vehicle_ids": [1, 2, 5], "selected_vehicle_id": 2, "service_type": "spot", "part_load_only_request": false, "order": { "customer_mobile": "9876543210", "geo_region_id": 3, "from_address_lat": 12.9716, "from_address_long": 77.5946, "to_address_lat": 12.9352, "to_address_long": 77.6245, "waypoints_attributes": [], "value_added_services": [], "payment_mode": "online", "business_order_info": null, "use_porter_credits": true } }{ "vehicle_wise_quotations": [{ "quotation_uuid": "q-9f3a1c", "vehicle_id": 2, "fare_info": { "fare": 412.0, "min_paytm_amount": 50.0, "min_paytm_amount_with_credits": 0.0, "total_discount": 40.0, "applied_coupon": null, "description": "2-wheeler", "applied_discounts": [], "fare_before_discount": 452.0 }, "book_cta_info_text": "Book now", "value_added_services": [], "bill_details": {}, "porter_duration_in_mins": 28, "price_differential_percentage": 0, "outstation_tag": null }], "nearby_vehicle_drivers": [], "route_polyline": "enc:polyline", "select_vehicle_id": 2, "wallet_info": { "paytm_wallet": {"login_status": true, "balance": 120.5, "balance_api_status": "ok"}, "porter_wallet": {"amount": 80.0, "payable": true} }, "partload_vehicle_wise_quotations": [] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的确认下单运费页重构。字段名与该页背后的各车型报价模型一致。
应用按需优惠券
POST
/v1/quotes/coupons/applyopendata为指定 vehicle_id 应用 coupon_code 后重新计算按需报价,返回含 applied_coupon 与 total_discount 的 fare_info。
认证方式: 客户会话:JSON 请求体字段 mobile 与 auth_token。
- coupon_code
- vehicle_id
- quotations_request
- applied_coupon
- total_discount
- applied_discounts
- fare
- fare_before_discount
- quotation_uuid
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/quotes/coupons/apply HTTP/1.1 Content-Type: application/json { "mobile": "9876543210", "auth_token": "<auth_token>", "coupon_code": "PORTER40", "vehicle_id": 2, "quotations_request": { "vehicle_ids": [2], "selected_vehicle_id": 2, "service_type": "spot", "part_load_only_request": false, "order": { "customer_mobile": "9876543210", "geo_region_id": 3, "from_address_lat": 12.9716, "from_address_long": 77.5946, "to_address_lat": 12.9352, "to_address_long": 77.6245, "waypoints_attributes": [], "value_added_services": [], "payment_mode": "online", "use_porter_credits": false } } }{ "vehicle_wise_quotations": [{ "quotation_uuid": "q-9f3a1c", "vehicle_id": 2, "fare_info": { "fare": 372.0, "min_paytm_amount": 50.0, "min_paytm_amount_with_credits": 0.0, "total_discount": 80.0, "applied_coupon": "PORTER40", "description": "2-wheeler", "applied_discounts": [{"value": "PORTER40"}], "fare_before_discount": 452.0 } }], "select_vehicle_id": 2, "wallet_info": { "paytm_wallet": {"login_status": true, "balance": 120.5, "balance_api_status": "ok"}, "porter_wallet": {"amount": 80.0, "payable": true} } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据运费确认页的优惠券输入步骤重构。请求/响应镜像报价流程,另加优惠券字段。
应用按需折扣
POST
/v1/quotes/discounts/applyopendata对 quotations_request 应用优惠券与奖励折扣(should_use_auto_apply、requested_discounts),返回更新后的 fare_info。
认证方式: 客户会话:JSON 请求体字段 mobile 与 auth_token。
- discounts_request
- should_use_auto_apply
- requested_discounts
- value
- vehicle_id
- quotations_request
- applied_discounts
- applied_coupon
- total_discount
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/quotes/discounts/apply HTTP/1.1 Content-Type: application/json { "mobile": "9876543210", "auth_token": "<auth_token>", "vehicle_id": 2, "discounts_request": { "should_use_auto_apply": true, "requested_discounts": [{"value": "PORTER40"}] }, "quotations_request": { "vehicle_ids": [2], "selected_vehicle_id": 2, "service_type": "spot", "part_load_only_request": false, "order": { "customer_mobile": "9876543210", "geo_region_id": 3, "from_address_lat": 12.9716, "from_address_long": 77.5946, "to_address_lat": 12.9352, "to_address_long": 77.6245, "waypoints_attributes": [], "value_added_services": [], "payment_mode": "online", "use_porter_credits": true } } }{ "vehicle_wise_quotations": [{ "quotation_uuid": "q-9f3a1c", "vehicle_id": 2, "fare_info": { "fare": 372.0, "total_discount": 80.0, "applied_coupon": "PORTER40", "applied_discounts": [{"value": "PORTER40"}], "fare_before_discount": 452.0 } }], "select_vehicle_id": 2 }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的自动应用奖励与折扣流程重构。
移除按需优惠券
POST
/v1/quotes/coupons/removeopendata从按需报价中清除已应用的 coupon_code,返回未折扣的 fare_info。
认证方式: 客户会话:JSON 请求体字段 mobile 与 auth_token。
- coupon_code
- vehicle_id
- quotations_request
- applied_coupon
- total_discount
- fare
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/quotes/coupons/remove HTTP/1.1 Content-Type: application/json { "mobile": "9876543210", "auth_token": "<auth_token>", "coupon_code": "PORTER40", "vehicle_id": 2, "quotations_request": { "vehicle_ids": [2], "selected_vehicle_id": 2, "service_type": "spot", "part_load_only_request": false, "order": { "customer_mobile": "9876543210", "geo_region_id": 3, "from_address_lat": 12.9716, "from_address_long": 77.5946, "to_address_lat": 12.9352, "to_address_long": 77.6245, "waypoints_attributes": [], "value_added_services": [], "payment_mode": "online", "use_porter_credits": false } } }{ "vehicle_wise_quotations": [{ "quotation_uuid": "q-9f3a1c", "vehicle_id": 2, "fare_info": { "fare": 452.0, "total_discount": 0.0, "applied_coupon": null, "applied_discounts": [], "fare_before_discount": 452.0 } }], "select_vehicle_id": 2 }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据运费确认页的优惠券移除操作重构。
租赁套餐
POST
/v1/rentals/packagesopendata按车型列出按时长/里程的租赁套餐(uuid、fare、time、distance),供租赁预订流程使用。
认证方式: 客户会话:JSON 请求体字段 mobile 与 auth_token。
- n_waypoints
- vehicle_ids
- order
- rentalVehicleData
- uuid
- fare
- totalDiscount
- time
- distance
- minPaytmBalance
- vehicleInfoList
- initSelectedVehicleId
- description
- walletInfo
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/rentals/packages HTTP/1.1 Content-Type: application/json { "mobile": "9876543210", "auth_token": "<auth_token>", "n_waypoints": 0, "vehicle_ids": [4, 5], "order": { "customer_mobile": "9876543210", "geo_region_id": 3, "from_address_lat": 19.0760, "from_address_long": 72.8777, "to_address_lat": 19.1136, "to_address_long": 72.8697, "waypoints_attributes": [], "value_added_services": [], "payment_mode": "online", "use_porter_credits": false } }{ "rentalVehicleData": [{ "uuid": "rp-8h", "fare": 1499.0, "totalDiscount": 0.0, "time": "8 hrs", "distance": "80 km", "minPaytmBalance": 0.0 }], "vehicleInfoList": [], "initSelectedVehicleId": 4, "description": "Full-day rental", "walletInfo": { "paytm_wallet": {"login_status": true, "balance": 120.5, "balance_api_status": "ok"}, "porter_wallet": {"amount": 80.0, "payable": true} } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的租赁套餐选择页重构。camelCase 字段集与按车型展示的租赁套餐卡片一致。
应用租赁优惠券
POST
/v1/rentals/coupons/applyopendata为 selectedVehicleId 应用 couponCode 后重新计算租赁套餐价格。
认证方式: 客户会话:JSON 请求体字段 mobile 与 auth_token。
- couponCode
- selectedVehicleId
- rentalPackagesRequest
- uuid
- fare
- totalDiscount
- initSelectedVehicleId
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/rentals/coupons/apply HTTP/1.1 Content-Type: application/json { "mobile": "9876543210", "auth_token": "<auth_token>", "couponCode": "RENTAL100", "selectedVehicleId": 4, "rentalPackagesRequest": { "mobile": "9876543210", "auth_token": "<auth_token>", "n_waypoints": 0, "vehicle_ids": [4], "order": { "customer_mobile": "9876543210", "geo_region_id": 3, "from_address_lat": 19.0760, "from_address_long": 72.8777, "to_address_lat": 19.1136, "to_address_long": 72.8697, "waypoints_attributes": [], "value_added_services": [], "payment_mode": "online", "use_porter_credits": false } } }{ "rentalVehicleData": [{ "uuid": "rp-8h", "fare": 1399.0, "totalDiscount": 100.0, "time": "8 hrs", "distance": "80 km", "minPaytmBalance": 0.0 }], "initSelectedVehicleId": 4, "description": "Full-day rental", "walletInfo": { "porter_wallet": {"amount": 80.0, "payable": true} } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据租赁预订流程中的租赁优惠券步骤重构。
创建按需订单
POST
/v1/bookings/createopendata根据 quotation_uuid 创建按需订单,返回实时行程页所用的 order_crn 与 order_status。
认证方式: 客户会话:JSON 请求体字段 mobile 与 auth_token。
- quotation_uuid
- vehicle_id
- customer_mobile
- geo_region_id
- from_address_lat
- from_address_long
- to_address_lat
- to_address_long
- payment_mode
- use_porter_credits
- order_crn
- order_created_at
- order_status
- rebooking_enabled
- pay_online_enabled
- is_cod_order
- amount
- cash_payable
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/bookings/create HTTP/1.1 Content-Type: application/json { "mobile": "9876543210", "auth_token": "<auth_token>", "quotation_uuid": "q-9f3a1c", "vehicle_id": 2, "customer_mobile": "9876543210", "geo_region_id": 3, "from_address_lat": 12.9716, "from_address_long": 77.5946, "to_address_lat": 12.9352, "to_address_long": 77.6245, "waypoints_attributes": [], "value_added_services": [], "payment_mode": "online", "use_porter_credits": true }{ "order_crn": "CRN240918001", "order_created_at": 1726632000000, "geo_region_id": 3, "order_status": {"name": "finding_driver"}, "rebooking_enabled": false, "pay_online_enabled": true, "is_cod_order": false, "total_amount": {"amount": 372.0, "cash_payable": 0.0} }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据订单确认与实时行程流程重构。响应字段与行程跟踪页背后的订单模型一致。
账户快照、钱包与欠款
POST
/v1/account/snapshotopenfinance加载登录后的首页快照:Porter/Paytm 钱包余额、dues_amount、进行中订单 ID、未评价行程与 blacklisting_info。
认证方式: 客户会话:JSON 请求体字段 mobile 与 auth_token。
- for_blacklisting
- blacklisting_info
- is_blacklisted
- wallet_info
- paytm_wallet
- login_status
- balance
- balance_api_status
- porter_wallet
- amount
- payable
- category
- unrated_order_ids
- open_or_live_order_ids
- goods_type_info
- all_goods_types
- default_goods_types
- dues_info
- dues_amount
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/account/snapshot HTTP/1.1 Content-Type: application/json { "mobile": "9876543210", "auth_token": "<auth_token>", "for_blacklisting": false }{ "blacklisting_info": { "is_blacklisted": false, "skip_blacklisting": false, "type": null, "message": null, "balance": 0.0 }, "wallet_info": { "paytm_wallet": {"login_status": true, "balance": 120.5, "balance_api_status": "ok"}, "porter_wallet": {"amount": 80.0, "payable": true} }, "category": "retail", "unrated_order_ids": ["CRN240917014"], "open_or_live_order_ids": ["CRN240918001"], "app_update_data": {}, "goods_type_info": { "all_goods_types": ["Household", "Electronics"], "default_goods_types": ["Household"] }, "share_app": {}, "dues_info": {"message": "", "dues_amount": 0.0} }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据登录后首页快照重构。钱包与欠款字段与钱包卡片背后的模型一致。
获取地理区域
POST
/v1/regions/resolveopendata把经纬度解析为报价与下单所用的 Porter geo_region(id、name、pickup_polygon、drop_polygon)。
认证方式: 可选客户会话(mobile、auth_token)。请求体为经纬度。
- lat
- long
- geo_region
- id
- name
- pickup_polygon
- drop_polygon
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/regions/resolve HTTP/1.1 Content-Type: application/json { "lat": 12.9716, "long": 77.5946 }{ "geo_region": { "id": 3, "name": "Bengaluru", "pickup_polygon": "12.97,77.59 ...", "drop_polygon": "12.97,77.59 ..." } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据地图选点时的取货城市解析步骤重构。
保存司机评价
POST
/v1/trips/ratingopendata为 unrated_order_ids 中的 order_crn 提交行程后司机反馈(含 id/name 的 rating_reasons)。
认证方式: 客户会话:JSON 请求体字段 mobile 与 auth_token。
- order_crn
- rating_reasons
- id
- name
- unrated_order_ids
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/trips/rating HTTP/1.1 Content-Type: application/json { "mobile": "9876543210", "auth_token": "<auth_token>", "order_crn": "CRN240917014", "rating_reasons": [{"id": 11, "name": "On time"}] }{ "order_crn": "CRN240917014", "unrated_order_ids": [] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据行程后司机评价提示重构。
数据类别
- 报价
- 运费
- 优惠券
- 钱包
- 地理区域
- 订单
- 评价
数据使用场景与案例
货主运费洞察
3PL 或电商平台可在确定线路前快照各车型运费报价、优惠券后总额与 Porter 预计分钟数,并对比同一收发的两轮车与小货车报价。
钱包与欠款对账
财务机器人可拉取 Porter 钱包 amount/payable、Paytm login_status 与 balance,以及 dues_amount,标记需结清欠款才能下单的客户。
进行中订单运营台
运营控制台可在下单后轮询 open_or_live_order_ids 与 unrated_order_ids,并在行程结束后提交 rating_reasons 完成闭环。
可服务城市校验
预订组件可把取货坐标解析为地理区域(id、name、取/送多边形),并在展示车型前拒绝 Porter 覆盖范围外的报价。
常见问题
Porter 客户 API 暴露哪些数据?
按需报价(quotation_uuid、fare、vehicle_id)、优惠券与折扣调整、按时长/里程的租赁套餐、Porter 与 Paytm 钱包余额、地理区域多边形、进行中/未评价订单 ID、欠款,以及行程后评价原因。
Porter 如何认证客户调用?
登录请求在 JSON 请求体中发送登录流程签发的客户 mobile 与 auth_token。地理区域查询以经纬度为键,请求体无需这些字段。
Porter 客户 API 是否同时覆盖租赁与按需下单?
是的。租赁流程按车型列出按时长/里程的套餐(uuid、fare、time、distance)并在应用优惠券后重新定价,与用于即时行程的按需报价和下单流程相互独立。
哪个端点驱动 Porter 首页的钱包与欠款卡片?
POST /v1/account/snapshot 返回登录快照:wallet_info 含 paytm_wallet.balance 与 porter_wallet.amount、dues_info.dues_amount,以及驱动实时行程与评价提示的 open_or_live_order_ids 和 unrated_order_ids。
相关主题
- Porter API
- Porter 报价 API
- Porter 钱包余额
- Porter 客户数据 API
- 印度按需物流 API
- Porter 优惠券运费
- Porter 地理区域
- Porter 订单 CRN
需要集成这个 App 的数据 API?
我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。
- 每个项目均签 NDA 与 SOW
- 3–7 天交付
- 验收通过后才付款
- 仅在授权范围内作业