API Reference
Decodificar QR Code Pix
POST /v1/qr-code/decode — primeiro passo para pagar QR Code.
Decodifica QR Code Pix
Primeiro passo do fluxo Pagar QR Code: interpreta o copia-e-cola e devolve dados do beneficiário, valor (quando o QR tem valor pré-definido) e detalhes específicos do tipo (estático, dinâmico imediato ou dinâmico cobrança).
POST/v1/qr-code/decode
Os blocos data* são mutuamente exclusivos: apenas o que corresponde ao qrType vem preenchido, os demais ficam null. DYNAMIC_IMMEDIATE traz expiration, original_value, allows_change_value e suporte a saque/troco/cashback. DYNAMIC_CHARGE traz due_date, fees, fine, abatement, discount, final_value e days_allowed_pay_after_due (cobrança com vencimento). Os campos dentro de data* vêm em snake_case por refletirem o payload bruto do provider.
Headers
- AuthorizationObrigatóriostringBearer SUA_API_KEY
- Idempotency-KeyObrigatóriostringUUID para retry seguro.
- Content-TypeObrigatóriostringapplication/json
Body
- pixCopyAndPasteObrigatóriostringQR Code Pix completo (copia-e-cola, padrão BR Code).
Exemplo de requisição
bash
curl -X POST https://api.staterpay.io/v1/qr-code/decode \ -H "Authorization: Bearer SUA_API_KEY" \ -H "Idempotency-Key: ef0758e1-a475-4f32-ac84-5cf4e4546089" \ -H "Content-Type: application/json" \ -d '{ "pixCopyAndPaste": "00020126580014BR.GOV.BCB.PIX0136f3e7b544-2510-4d84-a262-8bfe14eef00852040000530398654041.005802BR5921Fulano de Tal6009SAO PAULO61080540900062240520ZGjmjzMYwgRaBfd2yojr630459C8" }'Resposta
- idstringIdentificador da decodificação. Use em POST /v1/payouts/qr-code como qrCodeDecodeId.
- endToEndIdstringEndToEndId reservado para esta operação.
- qrType"STATIC" | "DYNAMIC_IMMEDIATE" | "DYNAMIC_CHARGE"Tipo do QR.
- ispbstringISPB da instituição do beneficiário.
- agencystringAgência do beneficiário.
- accountstringConta do beneficiário.
- accountType"PAYMENT" | "CURRENT" | "SAVINGS"Tipo da conta do beneficiário.
- keystringChave Pix.
- keyType"EMAIL" | "PHONE" | "CPF" | "CNPJ" | "EVP"Tipo da chave.
- receiverNamestringNome do beneficiário.
- receiverFantasyNamestring | nullNome fantasia, quando informado.
- receiverDocumentType"CPF" | "CNPJ"Tipo do documento.
- receiverDocumentLegalIdstringDocumento (CPF/CNPJ) — apenas dígitos.
- amountCentsstring | nullValor do QR em centavos. null em QR estático sem valor; preenchido em QR dinâmico ou estático com valor fixo.
- dataStaticobject | nullDetalhes específicos quando qrType = STATIC.
- dataDynamicImmediateobject | nullDetalhes específicos quando qrType = DYNAMIC_IMMEDIATE.
- dataDynamicChargeobject | nullDetalhes específicos quando qrType = DYNAMIC_CHARGE — inclui dueDate, fees, fine, abatement, discount, final_value.
- dataCompoundobject | nullReservado para QR composto (saque/troco). null nos casos comuns.
- cachedbooleantrue quando a resposta veio de cache interno (não acionou o provider).
json
{ "id": "cmoxample0001qkxyzdecode", "endToEndId": "E37319859202605072204ZWKK6E95W85", "qrType": "STATIC", "ispb": "18236120", "agency": "0001", "account": "49773517", "accountType": "PAYMENT", "key": "f3e7b544-2510-4d84-a262-8bfe14eef008", "keyType": "EVP", "receiverName": "Fulano de Tal", "receiverFantasyName": null, "receiverDocumentType": "CPF", "receiverDocumentLegalId": "12345678900", "amountCents": "100", "dataStatic": { "category_code": null, "value": 1, "allows_change_value": false, "city": "SAO PAULO", "postal_code": "05409000", "conciliation_id": "ZGjmjzMYwgRaBfd2yojr", "additional_data": null, "ispb_fss": null }, "dataDynamicImmediate": null, "dataDynamicCharge": null, "dataCompound": null, "cached": false}URL base:
https://api.staterpay.io