T
TOMO
Developer Docs
BETA These docs are under partner review. Some features described are roadmap items, not yet shipped. Verify against your sandbox before relying on any contract.
● LIVEv1.0.0logistics.book_cold_chain_delivery

logistics.book_cold_chain_delivery — Full Intent Specification

INTENT NAMESPACE: logistics
INTENT NAME:      book_cold_chain_delivery
FULL ID:          logistics.book_cold_chain_delivery
VERSION:          v1.0.0
STATUS:           live
TTBS WEIGHTS:     time 0.30 · taste 0.05 · budget 0.25 · safety 0.40
LAST UPDATED:     2026-05-14

Temperature-controlled delivery of pharmacy items (insulin, vaccines, biologics), perishable food (high-end groceries, frozen seafood), or other temp-sensitive cargo. Distinct from logistics.send_intracity_parcel because: (a) cargo lives in a defined temperature band (2–8°C for vaccines, −18°C for frozen, 15–25°C for some drugs); (b) the entire chain — packout, vehicle, last-mile bag — must be temperature-logged; (c) a temperature excursion = the cargo may be unusable, claim window starts immediately; (d) CDSCO + state drugs control + FSSAI may apply depending on cargo; (e) some pharmacy cargo requires Rx + pharmacist sign-off at intake.


1. NATURAL LANGUAGE COVERAGE

Classifies IN

  • "deliver insulin from pharmacy to home, keep cold"
  • "ship vaccine vials, 2 to 8 degrees"
  • "frozen seafood Mumbai to Bangalore"
  • "cold chain biologics, doctor prescribed"
  • "pharmacy delivery with ice pack"
  • "temperature-controlled medicine pickup"
  • "diagnostic sample to lab, cold"
  • "fresh sushi delivery, frozen"
  • "carry biologic injection home, refrigerated"
  • "ship Kerala fish, frozen overnight"

Classifies OUT — borderline NO

  • "groceries to home" (room-temp) → food.order_delivery or lifestyle.book_at_home_service
  • "courier vitamin tablets" (room-temp) → logistics.send_intracity_parcel
  • "ambulance for patient" → safety.book_private_ambulance
  • "controlled substance" → BLOCKED (only via licensed channels)

MULTI-INTENT TRIGGERS

  • "pharmacy + cold-chain home delivery" → pharmacy lookup + logistics.book_cold_chain_delivery
  • "diagnostic sample + ambulance" → logistics.book_cold_chain_delivery + safety.book_private_ambulance (rare)

2. INPUT — TOMO → PROVIDER

{
  "intent":          "logistics.book_cold_chain_delivery",
  "intent_version":  "v1.0.0",
  "request_id":      "req_cc_4r2p_2026-05-14T15:00:00Z",
  "user_session_id": "anon_user_token_or_uid",

  "pickup": {
    "type":             "pharmacy",
    "type_allowed":     ["pharmacy", "lab", "restaurant_cold", "supplier_warehouse", "home"],
    "address_id":       "addr_pharmacy_v1",
    "pin":              "500032",
    "contact_phone_e164": "+91XXXXXXXXXX",
    "ready_at_iso":     "2026-05-14T16:00:00+05:30"
  },

  "drop": {
    "address_id":       "addr_home_v1",
    "pin":              "500032",
    "contact_phone_e164": "+91XXXXXXXXXX",
    "recipient_name":   "Keerthi Krishna"
  },

  "cargo": {
    "category":         "pharmacy_biologic",
    "category_allowed": ["pharmacy_otc_cold", "pharmacy_biologic", "vaccine", "diagnostic_sample", "frozen_food", "perishable_food_chilled"],
    "temp_band_c":      "2_to_8",
    "temp_band_allowed": ["2_to_8", "minus_18_to_minus_25", "15_to_25"],
    "weight_kg":        0.4,
    "needs_rx":         true,
    "rx_doc_uploaded":  true,
    "declared_value_inr": 12000,
    "fragile_glass_vial": true
  },

  "duration": {
    "max_in_transit_min": 60,
    "deliver_by_iso":     "2026-05-14T17:30:00+05:30"
  },

  "user_constants": {
    "preferred_partners": ["Tata 1mg Cold", "Apollo Cold Chain", "Snowman Logistics", "Cipla CryoServe"]
  }
}

Field rules

  • temp_band_c STRICT ENUM.
  • needs_rx: true + rx_doc_uploaded: falseERR_RX_REQUIRED_NOT_UPLOADED.
  • max_in_transit_min ≤ 120 for 2_to_8 cold-chain (insulin/vaccine).
  • declared_value_inr drives insurance band.

3. PROVIDER TOOLS

cold.quote

Returns price + ETA + thermal-bag tier + temperature-log device included y/n.

cold.rx_validate

Validates Rx upload against pharmacy-side prescriptions register where partner integration permits.

cold.create_order

Books pickup; assigns rider with thermal bag + IoT temp logger.

cold.temp_log_subscribe

Returns websocket / poll endpoint streaming temperature per minute.

cold.handover_capture

Pickup snapshot: thermal bag sealed, IoT logger active, initial temperature recorded.

cold.deliver_capture

Drop snapshot: bag opened in recipient's presence, final temperature recorded, photo of cargo intact.

cold.excursion_flag

Auto-triggered if temperature breaches band ≥ N minutes; cargo flagged as "may be compromised".

cold.dispute

Claim within 24h on excursion or damaged-on-arrival.

cold.cancel

Pre-pickup only.


4. RESPONSE SHAPE

{
  "intent": "logistics.book_cold_chain_delivery",
  "request_id": "req_cc_4r2p_2026-05-14T15:00:00Z",
  "rx_check": {"passed": true, "validated_at": "2026-05-14T15:01:00+05:30"},
  "options": [
    {
      "tier": "OK",
      "provider": "Tata 1mg Cold",
      "thermal_bag_class": "vip_2_to_8_passive",
      "temp_logger_included": false,
      "rider_trained_cold_chain": true,
      "price_inr": 149,
      "eta_min": 55,
      "insurance_included_inr": 5000,
      "ttbs_score": 0.65,
      "tier_reason": "cheapest, passive bag only, no logger"
    },
    {
      "tier": "GOOD",
      "provider": "Apollo Cold Chain",
      "thermal_bag_class": "vip_2_to_8_passive_phase_change_material",
      "temp_logger_included": true,
      "rider_trained_cold_chain": true,
      "background_check_band": "verified",
      "price_inr": 229,
      "eta_min": 45,
      "insurance_included_inr": 12000,
      "insurance_cover_meets_declared_value": true,
      "ttbs_score": 0.85,
      "tier_reason": "balanced — phase-change bag + IoT logger + full cover"
    },
    {
      "tier": "GREAT",
      "provider": "Snowman Logistics",
      "thermal_bag_class": "active_refrigerated_box",
      "temp_logger_included": true,
      "logger_realtime_alert_sec": 60,
      "rider_trained_cold_chain": true,
      "background_check_band": "verified_plus_aadhaar",
      "redundant_thermal_pack": true,
      "price_inr": 399,
      "eta_min": 35,
      "insurance_included_inr": 25000,
      "ttbs_score": 0.93,
      "tier_reason": "active-refrigerated + real-time alerts + redundant packs"
    }
  ],
  "temp_band_target_c": "2_to_8",
  "max_excursion_minutes_allowed": 15
}

5. CONTROLLED VOCABULARIES

cargo.category

pharmacy_otc_cold · pharmacy_biologic · vaccine · diagnostic_sample · frozen_food · perishable_food_chilled

temp_band_c

2_to_8 · minus_18_to_minus_25 · 15_to_25

thermal_bag_class

vip_2_to_8_passive · vip_2_to_8_passive_phase_change_material · active_refrigerated_box · dry_ice_box

pickup.type

pharmacy · lab · restaurant_cold · supplier_warehouse · home

BANNED

controlled_substance_schedule_x · narcotics · radioactive · human_remains (separate cold-chain channel governed by hospital protocol, out of v1)

All STRICT ENUM.


6. TTBS DIMENSIONS

TIME (weight 0.30)

  • eta_min (smaller = better; insulin/vaccine have 60-min preference)
  • Pickup latency
  • Buffer against deliver_by_iso
  • TIME = 1 − eta_min / max_in_transit_min

TASTE (weight 0.05)

  • Partner brand familiarity
  • App tracking and temp-log UX
  • TASTE = brand × ux

BUDGET (weight 0.25)

  • price_inr vs best
  • Logger fee bundled vs add-on
  • BUDGET = 1 − (price − best) / best

SAFETY (weight 0.40 — dominant)

  • insurance_cover_meets_declared_value
  • temp_logger_included (must-have for biologic/vaccine)
  • Thermal bag class fit for temp_band
  • Rider trained in cold-chain handling
  • Redundant thermal pack
  • Real-time alert latency
  • Excursion-window tolerance ≤ 15 min
  • Rx validated at pharmacy (for needs_rx)
  • SAFETY = insurance_fit × logger × bag_fit × rider_trained × redundant × alert_band × excursion × rx_validated

HARD FILTERS

  1. temp_band_c band serviceable by partner.
  2. Thermal bag class fits temperature band.
  3. Rx validated if needs_rx: true.
  4. ETA ≤ max_in_transit_min.
  5. Insurance ≥ declared value (or user override with explicit warning).

7. COMPLETION CONTRACT

Success criteria

  1. Order created; Rx validated where applicable.
  2. Rider with thermal bag + active IoT logger at pickup.
  3. Cargo sealed at correct temperature; initial reading captured.
  4. Live temperature stream observable to TOMO + user.
  5. Drop snapshot: final temperature within band; photo of cargo intact.
  6. Recipient OTP/sign-off.
  7. CPC webhook fires.

CPC webhook

{
  "event": "logistics.book_cold_chain_delivery.completed",
  "intent_id": "logistics.book_cold_chain_delivery",
  "request_id": "req_cc_4r2p_2026-05-14T15:00:00Z",
  "order_id": "CC9KP72",
  "provider": "Apollo Cold Chain",
  "thermal_bag_class": "vip_2_to_8_passive_phase_change_material",
  "temp_logger_id": "TL-AP-12345",
  "temp_min_observed_c": 3.2,
  "temp_max_observed_c": 7.8,
  "excursion_minutes": 0,
  "price_inr": 229,
  "tomo_commission_base_inr": 34,
  "tomo_commission_inr": 3.4,
  "pass_through_inr": 195,
  "delivered_at_iso": "2026-05-14T16:50:00+05:30",
  "signature_hmac_sha256": "…"
}

Failure cases

  • excursion_detected → cargo flagged; pharmacy / partner replaces or refunds.
  • rx_invalid → block at intake.
  • recipient_unreachable → return to pickup, with cold-chain reset cycle.
  • logger_failure → fall back to manual temperature check + partial credit per partner.

8. WIDGET

{
  "widget": "ColdChainDeliveryWidget",
  "header": {
    "cargo_strip": "Biologic · 2–8 °C · 0.4 kg",
    "route_strip": "Pharmacy → Home · ~12 km",
    "deliver_by_strip": "Deliver by 5:30 PM · max in-transit 60 min"
  },
  "regions": {
    "region_1_intelligence": ["Rx validated", "IoT logger streaming", "trained rider", "thermal bag sealed"],
    "region_2_summary": "Pickup ~4 PM, deliver ~4:45 PM",
    "region_3_visual": null,
    "region_4_now_pin": "Book — 2 cold riders within 5 km",
    "region_5_tomo_choices": [
      {"tier": "OK", "label": "1mg Cold · ₹149 · passive bag · no logger", "reason": "cheapest"},
      {"tier": "GOOD", "label": "Apollo · ₹229 · PCM bag + IoT logger + ₹12k cover", "reason": "balanced"},
      {"tier": "GREAT", "label": "Snowman · ₹399 · active box + real-time alerts + redundant packs", "reason": "highest safety"}
    ]
  },
  "footer_disclosures": [
    "Cargo flagged unusable if temperature breaches band for more than 15 min — refund / replacement is automatic.",
    "Prescription items require Rx upload — controlled substances are blocked on this surface.",
    "Live temperature log is visible to you and us — open it from the order screen if anything looks off."
  ]
}

9. CACHING POLICY

  • Quote: 5 min TTL.
  • Rx validation: cached 1 hour at partner; not at TOMO.
  • Temperature stream: live; not cached.
  • Logger logs: retained at partner ≥ 90 days for dispute/audit.
  • Past cold-chain orders: 2 years on-device, encrypted.

10. ERROR CODES

Code Meaning UI surface
ERR_RX_REQUIRED_NOT_UPLOADED needs_rx true and no upload Inline upload prompt
ERR_RX_INVALID partner rejected Rx Plain explainer
ERR_TEMP_BAND_UNSUPPORTED partner can't serve band Try next partner
ERR_BAG_CLASS_MISMATCH bag insufficient for band Upgrade tier
ERR_ETA_EXCEEDS_MAX quote ETA > max_in_transit_min Try next or change cargo
ERR_LOGGER_FAILURE IoT logger offline Replace logger pre-pickup or fall back
ERR_EXCURSION_DETECTED temp out of band > tolerance Cargo flagged + auto-refund/replace
ERR_INSURANCE_GAP cover < declared Top-up
ERR_PICKUP_NO_RIDER_AVAILABLE no trained rider Try next partner
ERR_RECIPIENT_UNREACHABLE drop unreachable Cold-chain reset cycle

11. SANDBOX → PRODUCTION CHECKLIST

  • Sandbox temperature stream every 60s.
  • Sandbox excursion auto-flag at 16 min out-of-band.
  • Sandbox Rx validation flow with valid + invalid Rx.
  • Sandbox controlled-substance auto-block.
  • Sandbox bag-class mismatch auto-upgrade.
  • Sandbox logger-failure fallback path.
  • Production rider cold-chain training certificate verified.
  • Production IoT logger calibration < 90 days.
  • Production insurance contract attested by legal.
  • Production CDSCO / state drugs control framing for biologic / vaccine in partner agreement.
  • Production CPC HMAC-SHA256 5-min replay verified.

12. ANTI-FABRICATION RULES

  • NO paid_placement on partners.
  • NO synthetic temperature readings — IoT logger only.
  • NO "guaranteed cold" without temp_logger_included.
  • NO bundling promo into cold-chain price.
  • NO claim of Rx validation without partner integration.
  • NO controlled-substance acceptance — block at intake.
  • NO TOMO-issued thermal-bag id — partner's only.
  • NO holding Rx data — partner is custodian; TOMO pointer only.
  • NO synthetic excursion-window claim — partner-published SLA.
  • NO marketing language ("smart cold delivery").

13. REGULATORY FRAMING

  • Drugs and Cosmetics Act 1940 + Rules 1945 + Drugs and Cosmetics (Amendment) Act 2008 — pharmacy biologics, vaccines.
  • CDSCO + state drugs controllers govern temperature-band storage.
  • FSSAI — perishable food cold chain.
  • WHO PQS Cold Chain Equipment Catalogue — bag / box class references where partner attests.
  • Carriage by Road Act 2007 — vehicle / rider regulation.
  • IRDAI — insurance product.
  • DPDPA 2023 — Rx + recipient = personal data; partner is processor; TOMO holds pointer.
  • TOMO is router only — does NOT operate cold chain, does NOT prescribe, does NOT hold cargo.