Call the API from your backend
The caller is your PSP backend, authenticated with an application token. The token identifies your application, not one of your customers. Your backend authenticates the payer and authorizes the payer for the account before it calls the API.- Send the payer account in
X-Account-Idon account-scoped operations. Create authorization request from QR code takes the account in thepayerAccountIdbody field instead. - A resource that belongs to a different account than the one you send returns
404. - Send
X-Idempotencyon each write. Reuse the value only to retry the same request.
Start an authorization from a QR code
- Call Create authorization request from QR code. Send the raw QR code content in
qrCodePayloadand the payer account inpayerAccountId. - The API decodes the QR code, detects the journey, and reads the recurrence payload from the receiving PSP over HTTPS.
- On journey 3, send
immediatePayment.resultasSETTLED. On journey 4, aFAILEDresult stops the journey. - Keep the
authorizationRequestIdfrom the response. The request waits for the payer’s decision untilexpiresAt.
Decide a pending request
- Call List authorization requests to get the requests that wait for the payer’s decision. A request leaves this list when the payer accepts or rejects it, when the receiving PSP cancels it, or when it expires.
- Call Decide authorization request with
decisionset toACCEPTorREJECT. Use the exactauthorizationRequestIdthat the API returned. - To accept, you can also send the payer parameters. A parameter that you do not send takes its default: notifications on, credit line on, and no maximum amount.
- To reject, send
rejectionReasonasNotRecognizedByDebtororRejectedByDebtor. - Call Get authorization request to read the outcome. It returns the request in any state.
Manage authorizations
- List authorizations returns the authorizations that have not ended:
APPROVEDandAWAITING_CONCLUSION. Sendinclude_terminated=trueto also getREJECTED,EXPIRED, andCANCELLEDauthorizations. - An
AWAITING_CONCLUSIONauthorization is not active at BACEN until the receiving PSP concludes the process. Filter onstatus=APPROVEDto get only the authorizations in force. - Get authorization returns one authorization in any state.
- List authorization history returns the audit of state transitions. Each entry has the previous state, the new state, the time, and the actor.
Change the payer parameters
Update authorization parameters applies a JSON merge patch (RFC 7386) to the three payer parameters:maximumAmount, schedulingNotificationsEnabled, and creditLineEnabled. Send the body as application/merge-patch+json.
- Omit a parameter to keep its value.
- Set a parameter to
nullto reset it to its default. The two switches default to enabled, so a reset does not turn them off. - A change applies to debits that are scheduled after it. A debit that is already scheduled keeps the maximum amount that was in force when it was scheduled.
Cancel an authorization
Cancel authorization ends the authorization at the payer’s request. The cancellation is immediate. It also cancels the debits scheduled under the authorization, including retries after the due date. Debits due for settlement on the day of the cancellation stay scheduled and settle that day. The response reportscancelledScheduledPayments and preservedScheduledPayments. A preserved count above zero is correct behavior, not a partial failure.
The reason field is a free-text note for the payer’s audit trail. The receiving PSP gets the code SLDB, which the response returns in counterpartyReason.
Cancel one scheduled debit
- Call List scheduled payments to get the identifier of the debit. This list also keeps settled and cancelled debits.
- Call Cancel scheduled payment with that identifier.
409 in these cases:
- The request arrives at or after 00:00 on the settlement date, in the America/Sao_Paulo time zone (
PIX-0825). - The debit comes from a retry after the due date, purpose
NTAG(PIX-0826). - The debit is no longer
SCHEDULED.

