Decode QR Unregistered

View as Markdown
Identical to **decodeQr** but requires no `customer_id` and no registered customer. Use it when you want to decode a QR before the sender is registered, for example to show the merchant name and amount up front. - `customer_id` is ignored if sent. - The customer is attached at **executePayout**, which still requires a registered customer before any balance is locked. - On corridors where the verified recipient name comes from a payment network lookup that requires the registered sender (LATAM: AR, BR, PE, BO, CO), `merchant` returns the QR's own label instead of the verified account holder. Decode with a registered `customer_id` when you need the verified name. - `missing_fields` may be omitted on some corridors; the required sender fields are still recorded on the transaction and enforced at **executePayout**. Same authentication and request body as **decodeQr** otherwise.

Authentication

AuthorizationBasic

Basic Auth: base64(client_id:client_secret)

Query parameters

dpintegerOptional0-10Defaults to 2
Decimal places for monetary fields in the response (USD amounts, fees, exchange rates). Default 2, which rounds sub-cent fees to 0. Use dp=4 or higher to reconcile against exact deducted totals: at full precision amount_usd + percentage_fee + fixed_fee equals the amount deducted from your balance. Rounding is applied to the response only; all stored values and balance deductions always use full precision.

Request

This endpoint expects an object.
qr_stringstringRequired

EMV / local QR string, or for KE/TZ a numeric till/paybill number.

customer_idstringOptional
Ignored on this endpoint. The customer is attached at executePayout instead.
partner_transaction_idstringOptional
partner_app_idstringOptional

Optional partner sub-app id (1–64 chars, [a-zA-Z0-9_-]). Body value wins over the customer profile value.

payment_currencystringOptional
ISO 4217. Required for Indonesia when currency cannot be resolved from the QR.
wallet_identifierstringOptional
country_codestringOptional

ISO alpha-2 override. Required when QR is not EMV-parseable (e.g. BO encrypted QR, or KE/TZ + merchant_id).

merchant_idstringOptional

Till or paybill number for KE/TZ manual decode via decodeQr. Prefer /lookupPaymentCode for the same flow.

account_referencestringOptional

Paybill bill reference for KE/TZ when the merchant expects one.

Response

OK
is_dynamicbooleanOptional
is_businessbooleanOptional
amountdoubleOptional
merchantstringOptional
merchant_idstringOptional

Africa (KE/TZ) till or paybill number when returned.

merchant_namestringOptional

Africa (KE/TZ) verified merchant display name when returned.

payment_typeenumOptional

Africa (KE/TZ) payment destination type when returned.

merchant_infoobjectOptional

Africa (KE/TZ) merchant metadata when returned.

countrystringOptional
tx_idstringOptional
currencystringOptional
partner_transaction_idstringOptional
amount_usddoubleOptional
feedoubleOptional
percentage_feedoubleOptional
fixed_feedoubleOptional
missing_fieldslist of maps from strings to anyOptional
suggested_valuesmap from strings to anyOptional
sendermap from strings to anyOptional
recipientmap from strings to anyOptional

Errors

400
Bad Request Error