Decode a scanned PIX QR code
Decodes a scanned PIX QR-code payload, normalizing static / immediate-dynamic / cobv sub-types into one null-safe response. The payer document is sourced from the CRM alias for the JDPI decode header.
Which of this deployment’s direct participants acts is decided by ispb, by exactly the rule an order’s payerIspb follows: this deployment may act as several direct participants, each with its own customers and its own JDPI credential, and naming none is answerable only while there is one answer. Omit it while this deployment acts as a single participant; once it acts as several, omitting it is 422 PIX-0127 and naming one it is not is 422 PIX-0128. It selects the JDPI credential the decode goes out on and nothing else.
Authorizations
JWT bearer token issued by the identity provider.
Body
The CRM account id of the scanning payer (sources the PI-PayerID document).
"acc-123"
The scanned EMV QR-code payload to decode.
"00020126..."
The ISPB of the direct participant this decode asks as. This deployment may act as SEVERAL direct SPI participants - one ISPB each, each with its own customers and its own JDPI credential - and this field is the only thing on the request that says which of them acts. OPTIONAL while it acts as a single participant: omit it and that one acts. REQUIRED once it acts as several - omitted is 422 PIX-0127, and an ISPB this deployment does not act as is 422 PIX-0128. It is ROUTING DATA you supply and guarantee, exactly like payerIspb on a transaction: never a credential, never read from a header or a path, and it never widens what your token can reach. It selects the JDPI credential the decode goes out on and nothing else - the decoded charge belongs to the payee, not to you. Send it as an absent key, not an empty string; an empty value is refused 400 PIX-0061.
^[0-9]{8}$"12345678"
Response
OK
The decoded amount in centavos.
10050
The decoded recipient identity.
The decoded QR type (STATIC or DYNAMIC; cobv folds onto DYNAMIC).
"DYNAMIC"
The Pix Troco amount in centavos (troco only).
0
Recipient city (cidade; §8.3.3 Obrg=Sim on every block).
"Sao Paulo"
When the dynamic charge was created (dtHrCriacao; §8.3.3 Obrg=Sim).
"2020-01-20T12:29:15.043Z"
Additional data (dadosAdicionais).
"Invoice 42"
Due date (cobv/static optional).
"2026-12-31"
The SPI end-to-end id.
"E1234567890"
Whether the QR carries a Pix Saque leg.
false
Whether the QR carries a Pix Troco leg.
false
The saque/troco PSS participant ISPB (a v5.5.0 string; leading zeros are significant).
"00360305"
The recipient PIX key.
"recipient@bank.com"
When the payer captured the QR, i.e. the moment of this decode (dtHrApresentacao; §8.3.3 Obrg=Sim).
"2020-01-23T10:21:34.107Z"
Charge revision counter (revisao). Always present on a DYNAMIC decode, including at its initial value 0; absent on a STATIC one, whose §8.3.3 block declares no revisao.
0
Conciliation id (idConciliacaoRecebedor).
"TX-001"

