Markets, pricing and rates

The configuration every price, tax, payment option and delivery quote resolves against on revenexx — markets, channels, price lists, payment methods and lifecycle, shipping rates, carriers, and settings.

Five apps sit behind this group, and none of them is where the money is: they are where the answers are.

AppBase pathAnswers
markets/v1/marketsWhich locale, currency and tax rate apply
channels/v1/channelsWhich assortment a caller may see
prices/v1/pricesWhat this buyer pays
payments/v1/paymentsWhat they may pay with, and moving the money
shipping/v1/shippingWhat delivery costs and who carries it

The four routes that answer, not store

Most routes in these apps are configuration CRUD. Four are the point of the whole group, and each takes a buyer context and answers a question:

RouteQuestion
POST /v1/prices/resolveWhat does this buyer pay for these items?
POST /v1/payments/methods/eligibleWhat may this buyer pay with?
POST /v1/shipping/ratesWhat does delivery to this destination cost?
POST /v1/channels/visibilityMay this channel see these rows?

Reach for those before you build the same logic client-side out of the configuration rows. Each of them returns not only the answer but the diagnostics — an excluded list with a reason in words for every option that did not apply — which is what makes "why is invoice missing from my checkout" answerable without a support ticket.

Markets are not a security boundary

X-Revenexx-Market selects a market, and 465 of the gateway's operations accept it. Its effect differs by direction, and this is the thing to get right:

  • On a write it assigns. Creating a row with the header records that row against the market, and it is visible only there. Creating one without leaves it unassigned — and unassigned means visible in every market, not hidden.
  • On a read it is normally a no-op. A list or a get returns the same rows whether or not you send it. The exceptions are POST /v1/prices/resolve and POST /v1/shipping/rates, which do restrict their candidates to this market plus the unassigned ones.

It is never a security boundary — the tenant is fixed by the credential. See Settings and Markets.

In this group