Order Creation — Advanced Fields
The Quickstart covers the minimum fields to place an order. Everything below is optional — reach for these once you're past your first successful order and want tighter delivery accuracy, richer tax compliance data, or special handling instructions.
Location Precision
Address strings alone aren't always enough for accurate routing, especially in areas with informal or inconsistent addressing. customer_details, pickup_details, and return_details all accept:
latitude/longitude— GPS coordinates for the address. Improves delivery routing accuracy and hub assignment when the address text is ambiguous.location_accuracy(customer_detailsonly) — signals how the coordinates were captured:G(device GPS, most accurate),H(high — e.g. geocoded from a precise address),L(low — rough geocoding). Send this alongsidelatitude/longitudeso Shadowfax knows how much to trust them.location_type(customer_detailsonly) —residentialorcommercial. Can affect delivery-attempt scheduling (e.g. commercial addresses may need daytime/business-hours delivery).
Contact & Address Detail
address2(customer_details) — a second address line for apartment/floor/landmark detail beyondaddress_line_1.alternate_contact(customer_details) — a backup number the rider can try if the primary contact is unreachable.state(customer_details) — state name; not required, but helps with address disambiguation.email(return_details) — contact email for the return address, if you want return-related notifications to reach an inbox rather than just a phone.
Order Metadata
promised_delivery_date(order_details) — the delivery date you've already committed to your customer, if different from what Shadowfax would otherwise estimate.total_amount(order_details) — total order value inclusive of tax, separate fromproduct_value(which is exclusive of tax). Useful if your invoicing needs the tax-inclusive figure on record.order_identifier(order_details) — priority tier:premium,express,regular, oreconomy. Use this if your own product tiers should influence handling priority.shopify_order_id/woocommerce_order_id/fulfillment_order_id(order_details) — pass through your platform's own order ID if you're integrating via Shopify, WooCommerce, or a fulfillment platform, so it's visible on the order record for reconciliation.
Delivery Instructions
order_details.delivery_instructions accepts:
image_required— require the rider to capture a proof-of-delivery photo.obd_required— Open Box Delivery: require the rider to let the customer open and inspect the item before accepting delivery, with QC verification logged on the rider app. Useful for high-value or fragile items where delivery disputes are costly.
Product & Tax Detail
orders.mdx's E-Way Bill section covers the required minimum (eway_bill, seller_details.gstin_number above ₹50,000). Beyond that, each SKU in product_details also accepts:
brand— product brand name.hsn_code— HSN (Harmonized System of Nomenclature) code, for GST classification.invoice_no— your invoice number for this SKU.seller_details.seller_name/seller_address/seller_state— full seller identity beyond just the GSTIN, if your compliance records need it on the shipment.taxes— a tax breakdown (cgst_amount,sgst_amount,igst_amount,total_tax_value) if you want the split recorded rather than just the total.
Extra-Care Handling
product_details[].additional_details also accepts:
requires_extra_care/type_extra_care— flag a SKU as fragile/high-value and describe the handling need (e.g. "Dangerous Goods").product_id/product_weight— additional product identifiers if your catalog tracks these separately fromsku_id.
For D2D-specific fields (mode, slot_type, quantity), see Order Types.