paymentCurrencies (the payout
set). A buyer whose currency is one of these pays exactly what the seller is paid
in: no FX.
When a buyer’s currency is not one a storefront settles in, the marketplace
can still admit the buy via cross-currency FX: it converts each source cost to
the buyer’s currency at the platform spot rate and quotes the buyer in their own
currency. The source keeps quoting and being paid in its own currency — nothing
about the source changes. Scope3 sits on the storefront’s curation edge and holds
the cross-currency relationship between buyer and source.
Two decisions, two owners
Currency support is split between the operator and the marketplace:- The operator decides which currencies its storefront settles in —
paymentCurrencies. These are the operator’s money and the operator’s call; there is no FX on them. - The marketplace decides which directed buyer→settlement pairs it accepts via FX. A buyer currency is admitted only when the exact pair to the seller’s settlement currency is supported.
When it applies
A buyer is locked to one currency (say ZAR) and wants to buy from a source that prices and settles only in another (say USD). Because the marketplace supports ZAR→USD, the storefront admits the buy, converts each USD source cost to ZAR at the platform spot rate, and quotes the buyer in ZAR. The source is still paid in USD. A buyer whose currency is neither settled by the storefront nor supported by an exact pair to its settlement currency is not admitted — discovery returns no products (a normal “nothing for me here” outcome, not an error), and a media buy in that currency is rejected.How it works
1
Discovery admits the buyer's currency
A buyer whose currency the storefront settles, or whose exact directed FX pair
the marketplace supports, is surfaced products in their own currency.
2
Quotes are converted at the rate-of-the-day
Each source cost (in the storefront’s settlement currency) is converted to the
buyer’s currency at the rate-of-the-day before the buyer is quoted — one
rate per pair per UTC day, fixed at first use.
3
The quote holds for the day, then re-prices
An FX-converted product carries a hard
expires_at (the next UTC
midnight). Within that window the rate the buyer was quoted is the rate the buy
books — quote and create_media_buy resolve the same rate-of-the-day, so
“quoted ZAR 52 → booked ZAR 52” holds. After it expires, re-discover to be
re-quoted at the new day’s rate. Re-executing from that fresh quote creates a
new media buy; it never re-prices the earlier booked buy.4
The booked rate is locked for the campaign
When a media buy is created, the rate in effect is snapshotted onto that buy,
so it bills the source and settles the campaign at the rate committed at
booking — every package, inventory source, update, delivery report, and payout
for that media buy uses the same rate. A retry cannot replace it with a later
rate; a later rate move never changes a booked buy.
Rates
The conversion is keyed by a currency pair writtenBASEQUOTE (e.g. USDZAR):
- BASE is the settlement currency the source is paid in (the storefront’s
defaultCurrency). - QUOTE is the buyer currency.
- The rate is QUOTE units per 1 BASE unit — the standard market quote
(
USDZAR= ZAR per USD). The buyer price in QUOTE = source cost in BASE × rate.
expires_at expresses. The day’s rate is the
same for every buyer (not a per-buyer rate). A buy locks the rate when it is
created (create_media_buy): that snapshot bills the source and settles the
campaign for its whole life, so a later rate move never changes a booked buy. The
pilot uses spot rates and takes no hedge over the booking-to-settlement gap; a
longer hold means re-pricing (re-discovering) at the prevailing day’s rate.
If the rate feed is temporarily unavailable when a new day’s rate would be
fixed, the marketplace carries the most recent locked rate forward (up to 7
days old) as that day’s rate-of-the-day rather than blocking buys, and pages its
operations team to restore the feed. Beyond that window the pair is treated as
unpriceable: cross-currency requests for it fail with FX_RATE_UNAVAILABLE
(retry later, or re-discover once rates are flowing) rather than pricing at a
stale rate.
What the source sees
Nothing changes for the source. It advertises one currency, is paid in that currency, and never sees the buyer’s currency. The cross-currency relationship is entirely a property of the storefront’s curation edge between the buyer and the source.Where it applies
FX applies to both composed products and wholesale / passthrough products, including live, account-specific products returned for a buyer’s brief. In every case, the source’s price is converted to the buyer’s currency for the quote and the source is still paid in its own currency. Conversion happens once, at the buyer’s edge (the first storefront the buyer transacts with). In a curation chain, internal storefront-to-storefront hops carry the settlement currency through and never re-convert, so a buy is never FX’d twice.Multiple currencies in one campaign
A campaign is not restricted to a single currency. A buyer can select products that settle in different currencies — across storefronts, and within a single storefront that sells in more than one currency — all in the same campaign. The buyer always transacts and is billed in their own primary currency; the marketplace converts each product’s cost at the rate-of-the-day described above. Products are split into one media buy per (storefront, settlement currency). For example, a buyer in ZAR who selects USD and GBP products from storefront A and USD products from storefront B gets three media buys — (A, USD), (A, GBP) and (B, USD). Each media buy is denominated in the buyer’s primary currency and carries its own settlement currency and its own locked FX rate.Cross-currency FX applies on currency-discovery,
create_media_buy, and
update_media_buy, including on manual-approval storefronts. Updating a buy
re-applies its locked life rate — re-budgeting never re-quotes; changing a
buy’s currency is not supported, a buy’s currency is fixed for its whole life.
On a manual-approval storefront the rate quoted at submission is held for a
limited window and re-applied when the buy is approved.