Unknown OpenRTB substitution macro
nurl, burl, lurl, or adm contains ${NAME} where NAME is not a documented AUCTION_* macro.
What it means
OpenRTB lists a closed set of substitution macros (${AUCTION_ID}, ${AUCTION_PRICE}, ${AUCTION_LOSS}, and the rest of the AUCTION_* family). An encoding suffix such as ${AUCTION_PRICE:B64} is still that macro. This token is not in the set. Exchange %%MACRO%% spellings are ignored.
Why it matters
Unknown macros are left unsubstituted. A typo (${AUCTION_PRCIE}) means the billing URL never gets a price, so you cannot settle the win.
How to fix it
Use a documented name. ${AUCTION_PRICE:B64} is fine; ${WINNING_PRICE} is not OpenRTB (Google's %%WINNING_PRICE%% lives outside this check).
Example that trips it
{ "nurl": "https://dsp.example/win?p=${AUCTION_PRCIE}" }Check your payload
Paste a bid request or response into the tester to see whether this code fires against it, or gate on the id in CI with the CLI: the id is stable, wording is not.
Back to the full diagnostic code reference.