Skip to main content

errand_quote

Submits the pickup and dropoff details plus the items to send, and returns real-time quotes from multiple couriers. The quotes are packaged into a single-use confirmation token quote_id — pick a courier and pass it to errand_create to place the order.
Order flow: errand_request_user_bind → errand_verify_user_bind for consent_grant_id → (optional) errand_search_addresses / errand_list_goods_categories / errand_list_schedule_slots → errand_quote → quote_id + each courier’s company_code / fee → errand_create to place the order → the user opens cashier_url to pay.
quote_id is single-use and must be redeemed before it expires. It’s valid for expires_in_seconds seconds (currently 120). Using an expired or already-redeemed quote_id with errand_create returns QUOTE_INVALID_OR_EXPIRED — get a new quote.
Pickup and dropoff must be in the same city. Cross-city requests return ERRAND_CROSS_CITY.
The item name and courier note are screened for prohibited items. Anything involving drugs and controlled medication, firearms and controlled devices, flammable/explosive or hazardous chemicals, or illegal goods is rejected with GOODS_PROHIBITED; the error message names the matched word and category. If a legitimate item name is flagged by mistake, rephrase it more precisely and quote again.
Coordinates are always GCJ-02; monetary fields are always in fen (cents).

Parameters

EndpointParty (shared shape for from_address / to_address):
Plain address text without coordinates is not supported yet — it returns COORDS_REQUIRED. Get coordinates via errand_search_addresses first, or pass address_id.
goods[]:

Returns

quotes[]:
The estimate is derived from the delivery distance (45 minutes within 3 km, plus 5 minutes per additional km), so every courier in one quote shows the same duration — those are not duplicate values.fee is the price quoted here; if the delivery fee has changed by the time you place the order, errand_create returns ERRAND_FEE_CHANGED — just request a new quote.
Example response:

Error codes

See Error Handling for the full list.

Example call