Decode a QR code
Decode an External QR without creating a Payment, reserving a priced quote, or changing Stableyard financial state. Returns the same nullable qrInfo fields for all supported routes, including PH/KE and VN. Existing payable, merchant, manualBankTransfer, providerReferenceId and destinationAmount fields remain available. QR amountUsd and fee are indicative provider decode metadata, not the binding payment quote or combined Stableyard fees; use POST /v2/payments for funding amounts and funding.totalFees. Missing decoded values are null, never assumed zero. A zero sentinel on a classified static/personal QR becomes null unless explicitly dynamic; actual Payments still require a positive amount. The request accepts only sender, country and qrPayload. QR rejection returns 400; invalid upstream responses return 502; transient provider failures return 503. payable describes destination classification, not approval to move funds. The sender UPA must already have an active account link for the selected provider route. QR contents and decoded account numbers are sensitive; do not log or persist raw decode responses.
Authorizations
HTTP Basic auth. Username is the Stableyard app ID. Password is the app secret. The optional Stableyard-Version request header must match the environment pin.
Headers
Optional contract-version assertion. Omit it to use the app environment's pinned version. A different supported version is accepted only after that environment is explicitly migrated.
2026-09-09 Body
Response
QR decode preview
Decoded destination account number when returned; preserve leading zeros. Sensitive data, not a linked bank account or an authorization to pay.
64Normalized, allowlisted QR display metadata. Keys are always present; unknown values are null. Amounts are exact decimal strings. Decode metadata is not a locked Payment quote.
False for a personal/peer-to-peer QR classification -- not payable through POST /v2/payments.
Present only when payable is false and the provider returned a manual bank-transfer destination.
Present only for a dynamic QR that embeds a fixed amount; absent for a static/amount-flexible QR.