PayZuDocs

All errors the API can return, with the stable code you should code against, what each one means, and how your system should react.

Every error response follows the same envelope. Code your logic against errorCode (stable), not message (may change).

fielddescription
errorCodeStable code (e.g., PZD600). Use it in your logic, not the message.
messageHuman-readable text; may change.
statusCodeHTTP status of the response.
requestIdRequest identifier (share it with support).
details[]On validation (400), lists field + reason per error.
retryAfterSecondsOn 429, 503 and 424 unavailability responses, suggested seconds before retrying the request.

HTTP by origin

HTTPMeaningWhat to do
400Invalid dataDo not retry; fix the request
401Not authenticatedCheck the token
403No permission / IPDo not retry; check the token scope / IP
404Not foundCheck the id/clientReference
409ConflictQuery the state before retrying
410ExpiredResource no longer exists
422Business ruleFix as per the message
424Failure, rejection, timeout or unavailability of the financial institutionRetry with backoff; on creation (deposit, Pix payment, transfer) with timeout, query the state via clientReference before recreating
429Rate limitWait for retryAfterSeconds
500PayZu internal errorRetry; if it persists, contact support with requestId
503PayZu temporarily unavailableRetry after retryAfterSeconds
Timeout (network)No HTTP response within the deadline; not a status returned by the APIThe operation may have been applied; query the state via clientReference before recreating

5xx always means a PayZu-side problem; 424 means a financial-institution-side problem. The application does not emit 502/504: if you receive one, it came from a proxy/CDN in the path, not from the API.

Cross-cutting

These can appear on any authenticated /v1 route, regardless of the flow.

CodeHTTPMessageWhat to do
PZV001400Invalid data. Check the provided fields.See details[]: it points to the field and the reason.
PZI100500Internal error processing the request.Retry; if it persists, contact support with requestId.
PZF503503Service temporarily unavailable. Try again shortly.PayZu unavailability; retry with backoff.
PZA100401Authentication required or invalid token.Send a valid, active Authorization: Bearer.
PZA200403Operation not allowed for this token/scope.Token lacks the permission required by the route, or the access subdomain does not match the account.
PZA203403Access not allowed from this IP address.IP outside the whitelist (Pix payment/transfer). Allowlist the IP in the settings.
PZA204403Account locked for changes. Unlock the account before changing it.Returned on account configuration changes, including creating, editing, removing and rotating the webhook secret. The lock is evaluated before the resource existence: with the account locked, a non-existent {id} responds 403, not 404. Contact support to unlock.

Deposit / Cash-in

Routes: POST /v1/pix/, POST /v1/transactions/, GET /v1/pix/, GET /v1/pix/qr-code/:transactionId, GET /v1/user/deposit-pending/ and /:id

CodeHTTPMessageWhat to do
PZD200422Deposit not allowed for this account.Deposit not enabled; contact support.
PZD201422CNPJ deposits are not enabled for this account.CNPJ payer not enabled.
PZD500424No financial institution available at the moment. Try again shortly.Retry after retryAfterSeconds.
PZD600400The minimum deposit amount is {min}.Amount below the minimum.
PZD601400The maximum deposit amount is {max}.Amount above the maximum.
PZD602400For deposits above R$ 2,000.00 the document is required.Send generatedDocument.
PZD100424Could not generate the deposit at the financial institution. Try again.Failure at the receiver; try again.
PZD103424Deposit processing timeout reached. Try again.Processing timeout. Query the state via clientReference before recreating; the deposit may have been completed.

Pix payment / Cash-out

Routes: POST /v1/withdraw/, POST /v1/withdraw/qrcode, GET /v1/withdraw/

CodeHTTPMessageWhat to do
PZS200422Withdrawal not allowed for this account at the moment.Pix payment not enabled.
PZS201422Withdrawal to CNPJ allowed only for registered beneficiaries.Register the CNPJ beneficiary before paying.
PZS202422Daily withdrawal limit exceeded.Wait for the next day; the limit and its usage are in DailyWithdrawLimit on GET /user.
PZC200422Insufficient balance for this operation.Balance unavailable; also returned on POST /v1/internal-transfer/.
PZS102422Payment rejected by the receiver's financial institution.Rejection at the destination; check the beneficiary data before retrying.
PZS500424No financial institution available for the withdrawal at the moment. Try again shortly.Retry after retryAfterSeconds.
PZS600400The minimum withdrawal amount is {min}.Amount below the minimum.
PZS601400The maximum withdrawal amount is {max}.Amount above the maximum.
PZS602400The withdrawal amount is outside the financial institution's limits.Adjust to the receiver's limits.
PZS603400The provided amount ({a}) does not match the QR Code amount ({b}).Use the exact QR amount.
PZS604400The amount is required.QR without a fixed amount; provide the amount.

Internal transfer

Routes: POST /v1/internal-transfer/, GET /v1/internal-transfer/

PZC200 (insufficient balance), listed in the Pix payment section, is also returned here.

CodeHTTPMessageWhat to do
PZC201422Destination account unavailable.The destination account cannot receive at the moment.
PZC202422The transfer amount does not cover the receiver's cash-in fee.Increase the transfer amount.
PZC300404Invalid or not found destination account.Check receiverAccountNumber.
PZC301404Internal transfer not found.Not located for your account.
PZC400403The payer account does not belong to the requester.payerAccountNumber must be the token's own account.
PZC401403Internal transfer not enabled for this account.Not enabled; contact support.
PZC600400Transferring to your own account is not allowed.Provide a destination account different from the payer.
PZC602400The minimum transfer amount is {min}.Amount below the minimum.
PZC603400The maximum transfer amount is {max}.Amount above the maximum.

Pix key / DICT / QR

Routes: GET /v1/pix/key, POST /v1/pix/qrcode/read, POST /v1/withdraw/qrcode

CodeHTTPMessageWhat to do
PZK101424Could not query the QR Code at the financial institution.Try again.
PZK200422Invalid Pix key.Invalid key.
PZK201422The Pix key does not match the receiver's document.Key does not match the document.
PZK300404Pix key not found.Key not found in DICT.
PZK301404QR Code not found.QR not found.
PZK310410This QR Code has expired or was removed by the receiving financial institution.Request a new QR.
PZK400403Pix key lookup not enabled for the user.Not enabled; contact support.
PZK401403QR Code reading not enabled for the user.Not enabled.
PZK600400Invalid Pix key. Formats: CPF, CNPJ, email, phone (+55...) or random (UUID).Fix the format.
PZK601400Invalid or malformed QR Code.QR could not be read.

Query / Receipt / Account

Routes: GET /v1/status/, GET /v1/user/transactions/ and /:id, GET /v1/user/bank-statements/ and /:id, POST /v1/user/report/:id/download

CodeHTTPMessageWhat to do
PZC210409An operation with this identifier already exists. Check the provided clientReference.Duplicated clientReference; use another one or query the operation.
PZC310404Transaction not found.Not located for your account.
PZC320422Transaction not yet processed.Receipt unavailable while pending.
PZC321422Receipt unavailable: transaction cancelled without a document.Cancelled transaction without receipt.
PZI103500Missing internal data to complete the operation.Try again later; if it persists, contact support with requestId.

Infractions (MED)

Routes: GET /v1/user/infractions/ and /:id, POST /v1/user/infractions/:id/defenses

CodeHTTPMessageWhat to do
PZK210409Infraction already closed.The infraction no longer accepts actions; query the current status.
PZK212409Defense already submitted.A defense already exists for this infraction; query GET /v1/user/infractions/:id/defenses.

Callback resend

Three routes resend callbacks, each with its own codes.

POST /v1/user/callbacks/resend/webhook/:webhookId

CodeHTTPMessageWhat to do
PZW300404Webhook not found, inactive, or does not belong to the userCheck webhookId and whether the webhook is active on the account.
PZW310404No failed callback found for the webhookThere is no failed delivery to resend on this webhook.

POST /v1/user/callbacks/resend

Bulk resend, by filters.

CodeHTTPMessageWhat to do
PZG404404No transaction found for the criteria providedNo transaction matches the window and filters sent; review the criteria.

POST /v1/user/callbacks/resend/:transactionId

Resend for a single transaction.

CodeHTTPMessageWhat to do
PZG404404Transaction not found or has no callback configuredCheck transactionId and whether a callback is configured for it.

All three routes return PZG422 when the resend limit is reached. That code is in the generic table.

Financial institution

They appear on routes that query the financial institution in real time.

CodeHTTPMessageWhat to do
PZI101500Operation not supported for this financial institution.The receiver institution does not support the operation. Do not retry; use another key or another payment method.
PZI110424Communication error with the financial institution.Try again.
PZI111424The financial institution took too long to respond. Try again.Timeout; on creation (deposit, Pix payment, transfer), query the state via clientReference before recreating.
PZF500424Financial institution temporarily unavailable. Try again shortly.Retry after retryAfterSeconds.

Generic

CodeHTTPMessageWhat to do
PZG404404Resource not found.Resource does not exist.
PZG409409The request conflicts with the current state of the resource.Query the state before retrying.
PZG410410This resource is no longer available.Resource expired or removed.
PZG422422Could not process the request.Business rule; fix as per the message.
PZG423422The amount exceeds the allowed limit for this operation.Reduce the amount or review your limits.
PZG429429Too many requests in a short period. Try again shortly.Wait for retryAfterSeconds.

On this page