Ordering and recovery
Hum separates preparation, authorization, submission, and retrieval. Keep those boundaries visible to the user and in client logic.Validate without committing
Startvalidate_order with the lookup and exact executable offer returned by availability. Hum
creates a draft, refreshes the selected offer, and returns either the next requirement or a review.
Validation creates no order and sends no fulfillment request.
Continue with checkout_id. When Hum returns required_fields, collect only those values and send
them with the exact expected_revision. A stale revision is rejected so that older information
cannot overwrite the current draft.
Do not ask for card data, Social Security numbers, existing-account credentials, or payment
authorization. Hum may request customer identity and contact fields, a mailing address, billing
preferences, installation preferences, provider consents, a four-digit service PIN, or date of
birth when the selected provider requires them. The returned field paths are authoritative.
Handle validation states
Present the exact review
When validation isready, show the returned review rather than rebuilding terms from an earlier
availability response. Include every returned:
- provider and plan fact
- monthly price, regular price, and promotion period
- one-time and recurring fee
- contract and data-limit condition
- installation choice and preferred timing
- billing preference and consent
- unknown or unavailable fact
Obtain authorization
The host owns its authorization interface. Authorization must cover the current review and its exactterms_hash. General intent to shop, an approval for an older revision, silence, or an
approval for different terms does not authorize submission.
Do not call create_order when the host cannot obtain this authorization.
Submit once
Callcreate_order with the ready checkout, its validation token, the matching terms hash,
confirmed: true, and a stable idempotency key. The key identifies this exact intended order. Keep
it stable for an identical replay; never reuse it for another checkout, person, offer, or review.
Hum records the authorized order locally before asynchronous fulfillment. A normal create response
can arrive before fulfillment completes.
queued means the local record is durable and submission is queued. It does not mean the ISP
accepted the customer or that installation is scheduled.
Recover a lost response
Useget_order with the same checkout_id after a normal submission and whenever the create call
times out, disconnects, returns a transport error, or loses its response.
An error marked retryable does not override this rule. Retrieval comes first whenever a create call
might have crossed the submission boundary.
Fulfillment states
These states report evidence in Hum’s fulfillment path:
Do not translate these into the generic states used by Hum’s partner analytics or widget. The MCP
does not track provider installation, final ISP acceptance, account activation, payment,
cancellation, or modification.
Support escalation
When the result directs you to support, include:- the safe correlation ID
- the displayable order reference, if one exists
- the status and last checked time
- the client name and version
