Perform Pix Transaction
Request
ENDPOINT
/account/ACCOUNT_KEY/pix_transfer
METHOD
POSTPath Params
Field | Type | Description | Characters |
---|---|---|---|
account_key | uuidv4 | Unique account identification key | 36 |
Key Pix Transaction
Request Body: Transaction by Key Pix
{
"request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
"pix_transfer_type": "key",
"target_pix_key": "target_pix_key@email.com",
"transaction_amount": 500.65,
"end_to_end_id": "E73856642202309201429bZKfklNlbwu",
"pix_message": "Hello World"
}
Body Params
Field | Type | Description | Characters |
---|---|---|---|
request_control_key * | uuidv4 | Unique identification key for the client request in uuid v4 format. | 36 |
pix_transfer_type * | enumerator | Pix transfer type of the transaction to be performed. In case of a key transfer the value must be key. | "key" |
target_pix_key * | string | Pix key of the target account. | 100 |
transaction_amount * | number | Transaction amount. | 10 |
end_to_end_id * | string | Idempotency key used by the SPI (Instantaneous Payment System). This must be the same as the one returned by pix key inquiry request. It is mandatory for pix_transfer_type key, static_qr_code or dynamic_qr_code | 32 |
pix_message | string | Message sent with the Pix transaction. | 140 |
Manual Pix Transaction
Request Body: Manual Pix Transaction
{
"request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
"pix_transfer_type": "manual",
"target_account": {
"account_branch": "0001",
"account_digit": "3",
"account_number": "12345678",
"owner_document_number": "32402502000135",
"owner_name": "Qi Tech",
"account_type": "checking_account",
"ispb": "32402502"
},
"transaction_amount": 500.65,
"pix_message": "Hello World"
}
Body Params
Field | Type | Description | Characters |
---|---|---|---|
request_control_key * | uuidv4 | Unique identification key for the client request in uuid v4 format. | 36 |
pix_transfer_type * | enumerator | Pix transfer type of the transaction to be performed. | manual |
target_account * | Object | Must only be sent if pix_transfer_type is manual. | Object target_account |
transaction_amount * | number | Transaction amount. | 10 |
pix_message | string | Message sent with the Pix transaction. | 140 |
Object target_account
Field | Type | Description | Characters |
---|---|---|---|
account_branch * | string | Account agency number. | 6 |
account_digit * | string | Account digit. | 1 |
account_number * | string | Account number. | 20 |
owner_document_number * | string | CPF or CNPJ (only numbers) from account owner. | 14 |
owner_name * | string | Account owner name. | 150 |
account_type * | enumerator | Account Type. | Enumerator account_type |
ispb * | string | Financial institution identification code | 8 |
Enumerator account_type
Enumerador | Description |
---|---|
checking_account | Checking Account |
salary_account | Salary Account |
saving_account | Saving Account |
payment_account | Payment account |
QR Code Pix Transaction
The data used to perform a payment transaction with a Pix QR Code must be obtained through the decoding of the Pix QR Code, using the Pix Copy and Paste URI.
- The
end_to_end_id
field must be the same value returned from the decoding of the Dynamic QR Code. - Insert to the
transaction_amount
field the same value returned in theqr_code_data.amount
field from the decoding of the Dynamic QR Code. - Change the
pix_transfer_type
field to dynamic_term for the payment request. - The
receiver_conciliation_id
field must be the same value returned from the decoding of the Dynamic QR Code.
Request Body: Qr Code Pix Transaction
{
"request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
"pix_transfer_type": "static_qr_code",
"transaction_amount": 500.65,
"end_to_end_id": "E73856642202309201429bZKfklNlbwu",
"receiver_conciliation_id": "REC00000000000000000000009459463343",
"target_pix_key": "target_pix_key@email.com",
"pix_message": "Hello World"
}
Body Params
Field | Type | Description | Characters |
---|---|---|---|
request_control_key * | uuidv4 | Unique identification key for the client request in uuid v4 format. | 36 |
pix_transfer_type * | enumerator | Pix transfer type of the transaction to be performed. | static_qr_code ou dynamic_qr_code |
target_pix_key * | string | Targets pix key. | 100 |
receiver_conciliation_id | string | Conciliation Identification code for receiver. | 35 |
transaction_amount * | number | Transaction amount. | 10 |
end_to_end_id * | string | Idempotency key used by the SPI (Instantaneous Payment System). This must be the same as the one returned by pix key inquiry request. It is mandatory for pix_transfer_type key, static_qr_code or dynamic_qr_code | 32 |
pix_message | string | Message sent with the Pix transaction. | 140 |
Aviso
The end_to_end_id
must be from an inquiry which has been done by the account to execute the transfer!
Aviso
The end_to_end_id
can only be used for a single transfer, whether successful or not.
Response
STATUS
201Response Body: Transfer Sent
{
"request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
"pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"pix_transfer_status": "sent",
"created_at": "2021-10-22T20:30:23.459Z"
}
STATUS
202Response Body: Transfer Pending
{
"request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
"pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"pix_transfer_status": "pending",
"created_at": "2021-10-22T20:30:23.459Z"
}
Information
If HTTP Status 202 is returned with pending as the value for the field pix_transfer_status
, the Pix
Transaction must not be attempted again. A Webhook will be sent as soon as the transaction reaches its final status.
Alternatively, it is possible to verify the transfer status using Pix Transaction Inquiry.
STATUS
4xxResponse Body: Transfer Rejected
{
"title": "title",
"description": "description in English",
"translation": "descrição em portugues",
"code": "code",
"extra_fields": {
"pix_transfer_data": {
"request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
"pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"pix_transfer_status": "rejected",
"created_at": "2021-10-22T20:30:23.459Z"
}
}
}
STATUS
4xxResponse Body: Error
{
"title": "titulo",
"description": "description in English",
"translation": "descrição em portugues",
"code": "codigo",
"extra_fields": {}
}
HTTP Statusstatus | Code QIcode | Tittletitle | Description (eng)description | Description (ptbr)translation |
---|---|---|---|---|
400 | QIT000001 | Bad Request | Schema Error | Erro de Schema |
406 | PXT000103 | request_control_key must be a valid uuid v4 string | request_control_key was not accepted for not being a valid uuid v4 string | request_control_key não foi aceito por não ser uma palavra uuid v4 válida |
400 | PXT000048 | Bad Request | Emoji not allowed in pix message. | Emoji não é permitido na mensagem pix. |
400 | PXT000104 | Invalid Transaction Amount | Transaction amount of {transaction_amount} is not valid. It must be a positive value with at maximum 2 decimal places | O valor de transação {transaction_amount} não é válido. Deve ser um valor positivo com no máximo duas casas decimais |
404 | PXT000004 | Account not found | Account not found for: {account_datum} | Conta não encontrada para: {account_datum} |
400 | PXT000003 | Account is Closed | Account {account_key} is closed. | Conta {account_key} está fechada. |
422 | PXT000092 | Invalid Account Type | Pix is not yet implemented for non-checking or non-escrow account types | Transações Pix não estão implementadas para conta que não sejam escrow ou livres |
403 | PIT000001 | User is not allowed to do this transaction | Usuário não tem autorização para fazer essa transação | |
400 | PXT000010 | Account is Blocked | Account {account_key} is blocked. | Conta {account_key} está bloqueada. |
400 | PXT000003 | Account is Closed | Account {account_key} is closed. | Conta {account_key} está fechada. |
400 | PIT000003 | Bad Request | Insufficient account balance for transfer and fee amount. | Saldo de conta insuficiente para a transferência e a taxa. |
400 | PXT000118 | Requester is not Pix Participant | The requester sent an alias key but is not a indirect pix participant | O requisitante enviou uma alias key no entanto não é um participante do pix indireto |
404 | PXT000120 | Alias sent not found | Alias key attached to this account not found | Alias key vinculada à conta não encontrada |
406 | PXT000105 | Invalid end_to_end_id | The end_to_end_id sent {end_to_end_id} is not valid. | O end_to_end_id enviado {end_to_end_id} não é válido. |
400 | PXT000108 | Bad Request | Billing account closed or blocked | Conta de cobrança encerrada ou bloqueada |
400 | PXT000079 | Bad Request | Insufficient billing account balance for fee. | Saldo de conta de cobrança insuficiente para a taxa. |
400 | PIT000004 | Bad Request | Transaction amount is over limit. | O total da transferência é superior ao limite. |
404 | PIX000056 | Not Found | Pix key inquiry not found | Consulta de chave pix não encontrada |
404 | PXT000041 | Not Found | Qr Code not found | Qr Code não encontrado |
400 | PXT000053 | Bad Request | QrCode already paid | Qr Code já Pago |
400 | PXT000118 | Requester is not Pix Participant | The requester sent an alias key but is not a indirect pix participant | O requisitante enviou uma alias key no entanto não é um participante do pix indireto |
404 | PXT000120 | Alias sent not found | Alias key attached to this account not found | Alias key vinculada à conta não encontrada |
400 | PXT000115 | Bad Request | Insufficient account balance for transfer and fee amount. | Saldo de conta insuficiente para a transferência e a taxa |
400 | PXT000128 | Bad Request | Pix key {pix_key} sent does match inquiry pix key. Verify if end_to_end_id sent is correct | Chave Pix {pix_key} enviada não condiz com consulta. Verifique se end_to_end_id enviado está correto |
400 | PXT000109 | Bad Request | request_control_key {request_control_key} already in use | request_control_key {request_control_key} já utilizada |
400 | PXT000061 | Bad Request | End to end id invalid. A pix transfer with the end to end id {end_to_end} has already been registered! | End to end id inválido. Uma transação pix com o identificador único {end_to_end} já foi registrada! |
400 | PXT000129 | SPI Error message | Message rejected by SPI-ICOM | Mensagem rejeitada pela SPI-ICOM |
408 | PXT000130 | SPI Timeout Control | SPI Timeout Control | Controle de timeout no SPI |
400 | PXT000131 | Receiver Internal Error | Cancelled transaction due to receiver's internal error | Transação interrompida devido a erro no PSP do Recebedor |
400 | PXT000132 | Invalid Target Account Number | Target account number is invalid | Número da conta de destino é inexistente ou inválido |
400 | PXT000133 | Blocked Target Account | Target account is blocked. | A conta de destino encontra-se bloqueada. |
400 | PXT000134 | Closed Target Account | Target account is closed. | A conta de destino encontra-se encerrada. |
400 | PXT000135 | Unsupported Transaction | Unsupported transaction for given target account. | A conta de destino não suporta este tipo de transação. |
400 | PXT000136 | Invalid Participant | SPI participant is not PSP settler agent of payer nor receiver. | Participante direto do SPI não é liquidante do PSP do Pagador / Recebedor. |
400 | PXT000137 | Zero Value Payment Order | Zero value payment order. | Ordem de pagamento com valor zero. |
400 | PXT000138 | Insufficient Funds | Insufficient funds in PI account from payer. | Saldo insuficiente na conta PI do pagador. |
400 | PXT000139 | Return Value Too Great | Return value greater than corresponding payment order. | Valor de devolução acima do valor de pagamento correspondente. |
400 | PXT000140 | Invalid Transactions Number | Invalid transactions number. | Quantidade de transações inválida. |
400 | PXT000141 | Unrelated Beneficiary Document Number | Beneficiary document number is not that of target account owner. | CPF/CNPJ do usuário recebedor não é compatível com o titular da conta de destino. |
400 | PXT000142 | Invalid Beneficiary Document Number | Invalid beneficiary document number | CPF/CNPJ da conta de destino está incorreto. |
400 | PXT000143 | Incorrect Message Element | Incorrect message element. | Elemento da mensagem incorreto. |
403 | PXT000144 | Rejected Payment Order | Beneficiary's PSP has rejected payment order. | Ordem de pagamento foi rejeitada pelo banco recebedor. |
403 | PXT000145 | Unauthorized Payer | Signing participant is unauthorized to make a payment order for paying account. | Participante que assinou a mensagem não é autorizado a realizar a operação na conta PI debitada. |
400 | PXT000146 | Invalid Datetime | Invalid datetime for message delivery. | Data e Hora do envio da mensagem inválida. |
400 | PXT000147 | Generic Error | Error while processing payment (generic error). | Erro no processamento do pagamento (erro genérico). |
400 | PXT000148 | Bad Format Operation Identifier | Badly formatted operation's identifier. | Identificador da operação mal formatado. |
400 | PXT000149 | Invalid Payer ISPB | Invalid or non-existent payer's PSP ISPB number. | Número ISPB do PSP do Pagador é inválido ou inexistente. |
400 | PXT000150 | Invalid Beneficiary ISPB | Invalid or non-existent beneficiary's PSP ISPB number. | Número ISPB do banco recebedor é inválido ou inexistente. |
400 | PXT000151 | Incorrect Type | Incorrect type for target account. | Type incorreto para a conta transacional especificada. |
400 | PXT000152 | Repeated End-to-End ID Error | The end_to_end_id was already used | O end_to_end_id já foi utilizado |
400 | PXT000153 | Invalid Target Account Type | The target account type cannot receive PIX transactions | O tipo de conta destino não pode receber transações PIX |
400 | PXT000154 | Invalid ISPB | Invalid or non-existent ISPB number. | Número ISPB é inválido ou inexistente. |
400 | PXT000155 | Amount too Great | Amount too great for credited account. | Valor de pagamento/devolução acima do permitido para a conta de destino creditada. |
400 | PXT000156 | QR Code Rejected | QR Code rejected by beneficiary's PSP. | QR Code rejeitado pelo PSP do usuário recebedor. |
503 | PXT000157 | Bacen Service Unavailable Error | Could not send the message to ICOM after 3 retries | Não pode enviar a mensagem para a ICOM depois de 3 tentativas |
400 | PXT000158 | Invalid Amount | Paid amount diverges from expected amount of {expected_amount} | O valor do pagamento diverge do valor esperado de {expected_amount} |
400 | PXT000159 | QR code inactive | QR code is not active at the time of payment | QR code não está ativo no instante do pagamento |