v2.13.0 — Richer QR Code decode
v2.13.0 — Richer QR Code decode
POST /v1/accounts/{accountId}/pix/out/qr-code/decode now exposes
all the data the partner already returns from the QR capture step
— previously most of it lived only in internal logs. The change is
fully backward compatible: every existing field is preserved and
keeps its name and shape; new fields are additive.
New optional fields (populated when the partner returns them):
originalAmount— face value of the QR before discount/interest/ penalty (may differ fromamountfordynamic-due-date).qrCodeType(static|dynamic-immediate|dynamic-due-date) andqrCodeTypeId(numeric) — promoted to top level (they used to live insideExtra).allowChange— now actually populated from the partner (AllowPayerChangeValue) ondynamic-immediate. Previously documented but never set.payeeTradeName— fantasy / trade name of a legal entity (typical fordynamic-due-dateinvoices).bankIspb/bankBranch/bankAccount/accountType— beneficiary bank account details.accountTypeis canonicalised toCHECKING|SAVINGS|PAYMENT|SALARY(upper snake-case for unknown variants).discount,deduction,interest,penalty— charge components fordynamic-due-date. Relationship:amount = originalAmount - discount - deduction + interest + penalty. Previously onlydiscountwas documented (and was always0).dueDateandpaymentDeadline— promoted to top level (they remain insideExtrafor backward compatibility).
Compatibility: key, amount, payeeName, payeeDocument,
identifier, decodeId, description keep their names and shapes.
Existing integrations continue to work unchanged.