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 tokenquote_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.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.Error codes
See Error Handling for the full list.

