Commerce CensusContactRequest access

Money, units and time

Three conventions, applied everywhere, chosen so that arithmetic never silently loses precision or meaning.

Money is integer minor units

`price_minor: 19800` is $198.00. Floating-point money is a bug waiting for a rounding boundary; every monetary field in the API is an integer and a currency code.

Landed, sticker and shipping stay separate

Comparisons rank on landed cost, but sticker and shipping are carried as their own fields. Collapsing them loses information that cannot be recovered, and some callers genuinely need the sticker figure. Where a seller does not expose shipping, the field is null rather than zero — assuming zero is the most common way a comparison quietly becomes wrong.

Two timestamps, always

`observed_at` is when the source said it. `ingested_at` is when we learned it. They differ, sometimes by a lot, and anything time-sensitive needs both.

JSON
{ "price_minor": 19800, "currency": "USD",
  "shipping_minor": null,
  "observed_at": "2026-09-07T14:02:11Z",
  "ingested_at": "2026-09-07T14:02:44Z" }