4000 | Both | Missing required field (pix_key, ref_id, merchant_order_id, amount). | Verify that all mandatory payload fields are present in the JSON body. |
400 / 4001001 | Initiate | Invalid PIX key format or data. | Check key formatting (CPF, CNPJ, email, phone with DDD, or EVP UUID). |
4001096 | Initiate | Inactive or deleted key in DICT. | Request the recipient to verify their key status in their banking app. |
4003008 | Initiate | Missing account context. | Ensure X-ISPB and X-Account-Number are supplied when using USER credentials. |
501 | Initiate | Downstream DICT lookup RPC failure. | Retry the lookup request. |
500 | Both | Cache error or internal server failure. | Retry the request. Contact support if the error persists. |
4002 | Confirm | Invalid amount or merchant_order_id format. | Format amount as a 2-decimal string (e.g., "10.00") and start merchant_order_id with YYMMDD. |
400 | Confirm | Stale or invalid date prefix on merchant_order_id. | Adjust the YYMMDD prefix to overlap current UTC time within ±1 hour. |
4003012 | Confirm | ref_id missing, expired (> 60s), or invalid. | Restart the flow by calling /key-initiate to obtain a fresh ref_id. |
4004003 | Confirm | ref_id belongs to another account. | Ensure the operating payer account matches the account that initiated the lookup. |
4003014 | Confirm | Payment processing failure (e.g., insufficient funds). | Check account balance or inspect mapped provider failure reasons. |