Markets commands

Reference for the `revenexx markets` commands — every subcommand with a runnable example.

Auto-generated. This page is generated from the revenexx CLI by tools/sync-cli-reference.mjs. Don't edit it by hand — your changes will be overwritten.

Every revenexx markets subcommand. The example shows the required arguments; the options table lists every flag the command accepts, with a ✓ marking required flags. Some flag names carry a -_ (e.g. --attribute-_values) — that is the exact token the CLI accepts, so copy them verbatim. Run revenexx markets <command> --help for the live options.

backfill

Bash
revenexx markets backfill \
    --id northwind \
    --source northwind
FlagRequiredDescription
--id <id>The market being REPAIRED — a uuid or a market code.
--source <source>The market to copy the missing pieces FROM — a uuid or a market code. Must not be the market in the path. Pick a market that is already right; nothing about it is changed.
--currencies [value]Take the source's traded currencies for codes this market does not already carry. Default true.
--locales [value]Take the source's locales for codes this market does not already carry. Default true.
--tax-classes [value]Take the source's tax classes for codes this market does not already carry. An existing code keeps ITS rate — a backfill never re-rates a class the merchant already set. Default true.

clone

Bash
revenexx markets clone \
    --id northwind \
    --code northwind-b2b
FlagRequiredDescription
--id <id>The SOURCE market to copy — a uuid or a market code.
--code <code>Code of the NEW market (unique per tenant).
--copy-currencies [value]Copy the source's traded currencies. Default true. The new market's own base currency is registered and marked default either way.
--copy-locales [value]Copy the source's locales. Default true. False leaves the new market with no language of its own, so the tenant fallback_locale is seeded instead — it is never left with none.
--copy-tax-classes [value]Copy the source's tax classes, rates and all. Default true. False leaves the market unable to tax anything, which readiness reports as blocking.
--currency <currency>Base currency of the new market (ISO 4217). Defaults to the source market's, and is registered and marked default on the new one either way.
--name <name>Display name of the new market. Defaults to its code.
--status <status>Status of the new market. Defaults to 'active'; clone it 'inactive' to build it out before it serves anyone.

context

Bash
revenexx markets context \
    --id ''
FlagRequiredDescription
--id <id>The market. A uuid — this route does not accept a market code.

create

Bash
revenexx markets create \
    --code northwind \
    --name Northwind
FlagRequiredDescription
--code <code>Market code, unique per tenant, and the single most load-bearing string in this app: it IS the market scope slug. The Entity Scoping Engine publishes it as the \
--name <name>Display name, in the operator's own language. Cockpit copy only — nothing resolves a market by it.
--currency <currency>Base currency this market quotes in — ISO 4217, and schema.json's own default is 'EUR'. This is the single currency prices are STATED in; the currencies collection under the market is the wider set it accepts. A base currency missing from that collection is a blocking readiness failure.
--is-default [value]The tenant default market — what a call naming no market falls back to. Exactly one market holds it; move it with POST /markets/{id}/make-default rather than by writing this flag, which does not demote the market that currently holds it.
--labels <labels>Localized display names for storefronts, keyed by locale: a flat {locale: label} map, one level deep, string values. WHICH key to write is not free — GET /markets/{id}/context returns \
--position <position>Sort position among the tenant's markets, ascending, default 0. Presentation only — it decides the order the Cockpit and a market picker list them in, and nothing resolves a market by it.
--status <status>Default 'active'. Only an active market serves a storefront; 'inactive' keeps the market and all its configuration but takes it out of service. Readiness reports an active market that cannot trade as \

currencies-create

Bash
revenexx markets currencies-create \
    --market-id '' \
    --code EUR
FlagRequiredDescription
--market-id <market-id>The owning market. A uuid — this route does not accept a market code. An unknown market lists empty rather than 404.
--code <code>ISO 4217 code, unique per market — one entry in the set of currencies this market TRADES in, as opposed to the single base currency on the market row that its prices are quoted in. The base currency must appear here or the market cannot serve; clone and backfill register it for you.
--is-default [value]The currency offered first to a buyer who states no preference. At most one per market, and it should be the market's base currency — readiness reports it as a warning when it is not.
--position <position>Sort position among this market's currencies, ascending, default 0 — the order a currency switcher lists them in.

currencies-delete

Bash
revenexx markets currencies-delete \
    --market-id '' \
    --id ''
FlagRequiredDescription
--market-id <market-id>The owning market. A uuid — this route does not accept a market code. An unknown market lists empty rather than 404.
--id <id>The currency of a market, by its primary key. A uuid — this route does not resolve a code, so a segment that will not cast is a 400 before any row is read.

currencies-get

Bash
revenexx markets currencies-get \
    --market-id '' \
    --id ''
FlagRequiredDescription
--market-id <market-id>The owning market. A uuid — this route does not accept a market code. An unknown market lists empty rather than 404.
--id <id>The currency of a market, by its primary key. A uuid — this route does not resolve a code, so a segment that will not cast is a 400 before any row is read.

currencies-list

Bash
revenexx markets currencies-list \
    --market-id ''
FlagRequiredDescription
--market-id <market-id>The owning market. A uuid — this route does not accept a market code. An unknown market lists empty rather than 404.
--id <id>Exact match on \
--code <code>Exact match on \
--is-default [value]Exact match on \
--position <position>Exact match on \
--created-at <created-at>Exact match on \
--limit <limit>Page size (default 50, max 200). Out of range is CLAMPED, not refused — ?limit=999 answers 200 with 200 rows, and \
--offset <offset>Row offset for pagination (default 0). A negative offset is clamped to 0 rather than refused.
--order <order>Sort as 'column' | 'column.asc' | 'column.desc'. The direction is lower case, and the column has to exist: id, market_id, code, is_default, position, created_at.
--filter <column=value>Filter rows by column equality (repeatable).

currencies-update

Bash
revenexx markets currencies-update \
    --market-id '' \
    --id ''
FlagRequiredDescription
--market-id <market-id>The owning market. A uuid — this route does not accept a market code. An unknown market lists empty rather than 404.
--id <id>The currency of a market, by its primary key. A uuid — this route does not resolve a code, so a segment that will not cast is a 400 before any row is read.
--code <code>ISO 4217 code, unique per market — one entry in the set of currencies this market TRADES in, as opposed to the single base currency on the market row that its prices are quoted in. The base currency must appear here or the market cannot serve; clone and backfill register it for you.
--is-default [value]The currency offered first to a buyer who states no preference. At most one per market, and it should be the market's base currency — readiness reports it as a warning when it is not.
--position <position>Sort position among this market's currencies, ascending, default 0 — the order a currency switcher lists them in.

delete

Bash
revenexx markets delete \
    --id ''
FlagRequiredDescription
--id <id>The market, by its primary key. A uuid — this route does not resolve a market code, so a segment that will not cast is a 400 before any row is read.

get

Bash
revenexx markets get \
    --id ''
FlagRequiredDescription
--id <id>The market, by its primary key. A uuid — this route does not resolve a market code, so a segment that will not cast is a 400 before any row is read.

list

Bash
revenexx markets list
FlagRequiredDescription
--id <id>Exact match on \
--code <code>Exact match on \
--name <name>Exact match on \
--labels <labels>Exact match on \
--currency <currency>Exact match on \
--status <status>Exact match on \
--is-default [value]Exact match on \
--position <position>Exact match on \
--created-at <created-at>Exact match on \
--updated-at <updated-at>Exact match on \
--limit <limit>Page size (default 50, max 200). Out of range is CLAMPED, not refused — ?limit=999 answers 200 with 200 rows, and \
--offset <offset>Row offset for pagination (default 0). A negative offset is clamped to 0 rather than refused.
--order <order>Sort as 'column' | 'column.asc' | 'column.desc'. The direction is lower case, and the column has to exist: id, code, name, labels, currency, status, is_default, position, created_at, updated_at.
--filter <column=value>Filter rows by column equality (repeatable).

locale-policy

Bash
revenexx markets locale-policy

locales-create

Bash
revenexx markets locales-create \
    --market-id '' \
    --code de-DE \
    --country DE \
    --language de
FlagRequiredDescription
--market-id <market-id>The owning market. A uuid — this route does not accept a market code. An unknown market lists empty rather than 404.
--code <code>Locale code, language-COUNTRY — the language a storefront renders this market in, and the key a translation is stored under. Unique per market. The app's own seeded value is the tenant's \
--country <country>ISO 3166-1 alpha-2 country code — the region half of \
--language <language>ISO 639-1 language code — the language half of \
--is-default [value]The locale a storefront renders this market in when the request asks for none. At most one per market; where none carries the flag the first by position is used, and \
--position <position>Sort position among this market's locales, ascending, default 0 — and the tie-break that picks a default when no locale is flagged.

locales-delete

Bash
revenexx markets locales-delete \
    --market-id '' \
    --id ''
FlagRequiredDescription
--market-id <market-id>The owning market. A uuid — this route does not accept a market code. An unknown market lists empty rather than 404.
--id <id>The locale of a market, by its primary key. A uuid — this route does not resolve a code, so a segment that will not cast is a 400 before any row is read.

locales-get

Bash
revenexx markets locales-get \
    --market-id '' \
    --id ''
FlagRequiredDescription
--market-id <market-id>The owning market. A uuid — this route does not accept a market code. An unknown market lists empty rather than 404.
--id <id>The locale of a market, by its primary key. A uuid — this route does not resolve a code, so a segment that will not cast is a 400 before any row is read.

locales-list

Bash
revenexx markets locales-list \
    --market-id ''
FlagRequiredDescription
--market-id <market-id>The owning market. A uuid — this route does not accept a market code. An unknown market lists empty rather than 404.
--id <id>Exact match on \
--code <code>Exact match on \
--language <language>Exact match on \
--country <country>Exact match on \
--is-default [value]Exact match on \
--position <position>Exact match on \
--created-at <created-at>Exact match on \
--limit <limit>Page size (default 50, max 200). Out of range is CLAMPED, not refused — ?limit=999 answers 200 with 200 rows, and \
--offset <offset>Row offset for pagination (default 0). A negative offset is clamped to 0 rather than refused.
--order <order>Sort as 'column' | 'column.asc' | 'column.desc'. The direction is lower case, and the column has to exist: id, market_id, code, language, country, is_default, position, created_at.
--filter <column=value>Filter rows by column equality (repeatable).

locales-update

Bash
revenexx markets locales-update \
    --market-id '' \
    --id ''
FlagRequiredDescription
--market-id <market-id>The owning market. A uuid — this route does not accept a market code. An unknown market lists empty rather than 404.
--id <id>The locale of a market, by its primary key. A uuid — this route does not resolve a code, so a segment that will not cast is a 400 before any row is read.
--code <code>Locale code, language-COUNTRY — the language a storefront renders this market in, and the key a translation is stored under. Unique per market. The app's own seeded value is the tenant's \
--country <country>ISO 3166-1 alpha-2 country code — the region half of \
--is-default [value]The locale a storefront renders this market in when the request asks for none. At most one per market; where none carries the flag the first by position is used, and \
--language <language>ISO 639-1 language code — the language half of \
--position <position>Sort position among this market's locales, ascending, default 0 — and the tie-break that picks a default when no locale is flagged.

make-default

Bash
revenexx markets make-default \
    --id northwind \
    --data '{ "key": "value" }'
FlagRequiredDescription
--id <id>The market to promote — a uuid or a market code.
--data <data>Request body

readiness

Bash
revenexx markets readiness \
    --id northwind
FlagRequiredDescription
--id <id>The market — a uuid or a market code.

tax-classes-create

Bash
revenexx markets tax-classes-create \
    --market-id '' \
    --code standard \
    --name Standard rate
FlagRequiredDescription
--market-id <market-id>The owning market. A uuid — this route does not accept a market code. An unknown market lists empty rather than 404.
--code <code>
--name <name>Display name of the rate bucket, in the operator's own language.
--is-default [value]The class applied to a line that names none. At most one per market. A market that stores GROSS prices and marks no default cannot break those prices back down into net, which is why readiness turns that combination from a warning into a blocking failure.
--labels <labels>Localized display names for storefronts and invoices, keyed by locale: a flat {locale: label} map, one level deep, string values. The key to write is the \
--position <position>Sort position among this market's tax classes, ascending, default 0 — and the tie-break that picks a class when none is flagged default.
--rate <rate>Tax rate in PERCENT, 0–100 (default 0) — 20 means 20 %, not 0.2. Whether a stored price already contains it is a separate question, answered per market by \

tax-classes-delete

Bash
revenexx markets tax-classes-delete \
    --market-id '' \
    --id ''
FlagRequiredDescription
--market-id <market-id>The owning market. A uuid — this route does not accept a market code. An unknown market lists empty rather than 404.
--id <id>The tax class of a market, by its primary key. A uuid — this route does not resolve a code, so a segment that will not cast is a 400 before any row is read.

tax-classes-get

Bash
revenexx markets tax-classes-get \
    --market-id '' \
    --id ''
FlagRequiredDescription
--market-id <market-id>The owning market. A uuid — this route does not accept a market code. An unknown market lists empty rather than 404.
--id <id>The tax class of a market, by its primary key. A uuid — this route does not resolve a code, so a segment that will not cast is a 400 before any row is read.

tax-classes-list

Bash
revenexx markets tax-classes-list \
    --market-id ''
FlagRequiredDescription
--market-id <market-id>The owning market. A uuid — this route does not accept a market code. An unknown market lists empty rather than 404.
--id <id>Exact match on \
--code <code>Exact match on \
--name <name>Exact match on \
--labels <labels>Exact match on \
--rate <rate>Exact match on \
--is-default [value]Exact match on \
--position <position>Exact match on \
--created-at <created-at>Exact match on \
--updated-at <updated-at>Exact match on \
--limit <limit>Page size (default 50, max 200). Out of range is CLAMPED, not refused — ?limit=999 answers 200 with 200 rows, and \
--offset <offset>Row offset for pagination (default 0). A negative offset is clamped to 0 rather than refused.
--order <order>Sort as 'column' | 'column.asc' | 'column.desc'. The direction is lower case, and the column has to exist: id, market_id, code, name, labels, rate, is_default, position, created_at, updated_at.
--filter <column=value>Filter rows by column equality (repeatable).

tax-classes-update

Bash
revenexx markets tax-classes-update \
    --market-id '' \
    --id ''
FlagRequiredDescription
--market-id <market-id>The owning market. A uuid — this route does not accept a market code. An unknown market lists empty rather than 404.
--id <id>The tax class of a market, by its primary key. A uuid — this route does not resolve a code, so a segment that will not cast is a 400 before any row is read.
--code <code>
--is-default [value]The class applied to a line that names none. At most one per market. A market that stores GROSS prices and marks no default cannot break those prices back down into net, which is why readiness turns that combination from a warning into a blocking failure.
--labels <labels>Localized display names for storefronts and invoices, keyed by locale: a flat {locale: label} map, one level deep, string values. The key to write is the \
--name <name>Display name of the rate bucket, in the operator's own language.
--position <position>Sort position among this market's tax classes, ascending, default 0 — and the tie-break that picks a class when none is flagged default.
--rate <rate>Tax rate in PERCENT, 0–100 (default 0) — 20 means 20 %, not 0.2. Whether a stored price already contains it is a separate question, answered per market by \

update

Bash
revenexx markets update \
    --id ''
FlagRequiredDescription
--id <id>The market, by its primary key. A uuid — this route does not resolve a market code, so a segment that will not cast is a 400 before any row is read.
--code <code>Market code, unique per tenant, and the single most load-bearing string in this app: it IS the market scope slug. The Entity Scoping Engine publishes it as the \
--currency <currency>Base currency this market quotes in — ISO 4217, and schema.json's own default is 'EUR'. This is the single currency prices are STATED in; the currencies collection under the market is the wider set it accepts. A base currency missing from that collection is a blocking readiness failure.
--is-default [value]The tenant default market — what a call naming no market falls back to. Exactly one market holds it; move it with POST /markets/{id}/make-default rather than by writing this flag, which does not demote the market that currently holds it.
--labels <labels>Localized display names for storefronts, keyed by locale: a flat {locale: label} map, one level deep, string values. WHICH key to write is not free — GET /markets/{id}/context returns \
--name <name>Display name, in the operator's own language. Cockpit copy only — nothing resolves a market by it.
--position <position>Sort position among the tenant's markets, ascending, default 0. Presentation only — it decides the order the Cockpit and a market picker list them in, and nothing resolves a market by it.
--status <status>Default 'active'. Only an active market serves a storefront; 'inactive' keeps the market and all its configuration but takes it out of service. Readiness reports an active market that cannot trade as \

vocabularies

Bash
revenexx markets vocabularies

vocabulary

Bash
revenexx markets vocabulary \
    --name market-statuses
FlagRequiredDescription
--name <name>Which vocabulary to read. The enum is exhaustive — these are every value set this app owns, and anything else is a 404.
Was this page helpful?