Delivery addresses and fees
Version 2 makes delivery data explicit and prices the order on the server before money moves.
Why v2 addresses
Legacy v1 accepted loosely related state, LGA, and area fields at order time. v2 requires a structured address and validates it before an order can be created.
Address selectors
Fetch states, then LGAs using the selected state, then towns using both state and LGA. Preserve returned spelling and casing and refresh dependent options whenever the parent selection changes.
Address object
Fee preview
Use the fee endpoint to display an estimate. Always send the full address with the order; Shioja independently recalculates the authoritative fee before charging the wallet.
Delivery only
Shioja orders must be delivered. Omit pickUp or set it to false. Requests with pickUp: true are rejected with PICKUP_NOT_SUPPORTED.
Errors
ADDRESS_UPGRADE_REQUIRED means the address is not version 2. INVALID_DELIVERY_ADDRESS identifies missing required fields. PICKUP_NOT_SUPPORTED means pickup was requested for a delivery-only Shioja order. DELIVERY_FEE_NOT_FOUND means the selected location cannot currently be priced.