Skip to main content

Ordering and recovery

Hum separates preparation, authorization, submission, and retrieval. Keep those boundaries visible to the user and in client logic.

Validate without committing

Start validate_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 is ready, 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
Sensitive customer values are omitted from the review and receipt. Do not echo them into a review, log, or support message.

Obtain authorization

The host owns its authorization interface. Authorization must cover the current review and its exact terms_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

Call create_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

Use get_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
Do not send validation tokens, checkout capabilities, service PINs, birth dates, contact details, or raw request and response bodies by email. Contact support@letshum.com.