Transferência via Pix
Este endpoint permite realizar pagamentos/transferência de valores via Pix.
As transações de pagamentos/transferências de valores via Pix, ou Pix cash-out, podem ocorrer das seguintes maneiras:
- Por chave Pix;
- Por QR Code (estático ou dinâmico).
ImportanteO Pix cash-out possui limite de valor definido durante a operação, de acordo com a necessidade do parceiro. Esse limite pode ser alterado a qualquer momento através do nosso Service Desk.
NotaEm caso de pessoa física, não existe limite noturno para transações entre mesma titularidade.
Pré-requisitos
Para que seja possível utilizar este endpoint, é necessário que:
- Realizar a consulta das informações vinculadas à chave Pix, por meio do endpoint Consulta de chaves para transferência (em caso de transferência via chave Pix);
- Obter o endToEndId e o conciliationId no endpoint de Decodificação de QR Code (em caso de transferência por QR Code estático ou dinâmico).
Requisição (Request)
Requisição HTTP
POST https://sandbox.hiperbanco.com.br/pix/transfer
--request POST 'https://sandbox.hiperbanco.com.br/pix/transfer' \
--header 'version: cutting-edge' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{token}}' \
--data-raw '{
"sender": {
"account": {
"type": "CHECKING",
"branch": "0001",
"number": "1101958127"
},
"documentNumber": "35698525475",
"name": "Edson Batista"
},
"amount": 0.10,
"initializationType": "Key",
"endToEndId": "E1314008820211019140822078594881",
"pixKey": "35698525475",
"description": "Pix cashout via Key",
"paymentDate": ""
}'
Cabeçalhos (Headers)
Nome | Propriedade | Descrição |
---|---|---|
version | cutting-edge | Obrigatório. Essa propriedade garante que o response da API seja retornado no formato JSON |
Authorization | Bearer token | Obrigatório. Token de autorização do tipo Bearer. |
Parâmetros da rota (Path)
Não é necessário enviar parâmetros no path desta requisição.
Corpo da requisição (Body)
Tanto para operações manuais, quanto por chave Pix ou por QR Code, deve-se enviar os seguintes campos comuns em formato JSON:
Nome | Tipo | Descrição | Especificação |
---|---|---|---|
sender | object | Obrigatório. Objeto que deverá conter informações sobre o pagador da transação. | |
sender.account | object | Obrigatório. Objeto que deverá conter informações sobre a conta do pagador da transação. | |
sender.account.type | string | Obrigatório. Tipo de conta, que pode ser "CHECKING" (conta corrente), "SALARY" (conta salário), "SAVINGS" (conta poupança) e "PAYMENT" (conta de pagamento). | |
sender.account.branch | string | Obrigatório. Número da agência. | |
sender.account.number | string | Obrigatório. Número da conta. | |
sender.documentNumber | string | Obrigatório. Número do documento do pagador da transação. | Informe somente números. |
sender.name | string | Obrigatório. Nome de registro do pagador da transação, conforme consta no cadastro da conta. Quando pessoa física, trata-se do nome de registro, e quando pessoa jurídica, trata-se da razão social da empresa. | Este campo não aceita caracteres especiais ou com acentos, como por exemplo ã, é, ó, ç. |
amount | number | Obrigatório. Valor da transação. | |
description | string | Campo que pode ser utilizado pelo cliente do parceiro para registrar informações referentes à transação. Essas informações poderão ser visualizadas pelo destinatário da transferência. | O texto pode conter no máximo 140 caracteres e não aceita nenhum caractere especial (exceto hífen). |
initializationType | string | Obrigatório. Modo pelo qual se dará a transação, que pode ser "Key" (chave de endereçamento), "StaticQrCode" ou "DynamicQrCode" (QR Code) ou "Manual”. | |
paymentDate | string | Data de pagamento (formato ISO ou vazio para imediato). |
ImportantePara recuperar as informações da instituição financeira de destino (ISPB, code, name), basta consultar nosso serviço de listagem de participantes do Pix.
Veja a seguir as especificidades de cada modalidade de Pix cash-out.
Por chave Pix
Os pagamentos ou transferências via chave Pix podem ser feitos para todos os tipos de chaves (CPF, CNPJ, telefone, e-mail e chave aleatória - EVP).
DicaRecordamos que, antes de realizar uma transação cash-out por chave Pix, o parceiro deve fazer a consulta da chave junto ao DICT para verificar a sua validade. Recordamos que o retorno da consulta de chaves trará o endToEndId, que será utilizado no momento da transação de cash-out. Esse identificador deve ser usado no período máximo de 15 minutos.
Para realizar uma transferência por chave Pix, além dos campos comuns, envie os seguintes campos no body da requisição:
Nome | Tipo | Descrição | Especificação |
---|---|---|---|
endToEndId | string | Obrigatório. Valor de endToEndId retornado na consulta de chave para transferência. | — |
pixKey | string | Chave de endereçamento do recebedor da transação. | — |
Por QR Code (estático e dinâmico)
Para realizar uma transferência/pagamento por QR Code, além dos campos comuns, envie os seguintes campos no body da requisição:
Nome | Tipo | Descrição | Especificação |
---|---|---|---|
endToEndId | string | Obrigatório. Valor de endToEndId retornado na decodificação do QR Code. | — |
receiverReconciliationId | string | Obrigatório. Campo de preenchimento obrigatório no caso de pagamento por QR Codes dinâmicos. Nele, deve ser informado o valor do conciliationId retornado na leitura do QR Code. | — |
{
"sender": {
"account": {
"type": "CHECKING",
"branch": "0001",
"number": "111015164"
},
"documentNumber": "47742663023",
"name": "Nísia Floresta"
},
"amount": 0.10,
"description": "Pagar Pix por Chave Pix",
"initializationType": "Key",
"endToEndId": "E1314008820210628213443832702790",
"pixKey": "86046117747170",
"paymentDate": ""
}
{
"sender": {
"account": {
"type": "CHECKING",
"branch": "0001",
"number": "111015164"
},
"documentNumber": "47742663023",
"name": "Nísia Floresta"
},
"amount": 1,
"description": "Transfêrencia Pix QrCode Estático",
"initializationType": "StaticQrCode",
"endToEndId": "E1314008820210628213443832702790",
"pixKey": "86046117747170",
"conciliationId": "FiCapc7D0Ul7KHDOnZp8HGaCS",
"paymentDate": ""
}
{
"sender": {
"account": {
"type": "CHECKING",
"branch": "0001",
"number": "111015164"
},
"documentNumber": "47742663023",
"name": "Nísia Floresta"
},
"amount": 1,
"description": "Transfêrencia Pix QrCode Estático",
"initializationType": "DynamicQrCode",
"endToEndId": "E1314008820210628213443832702790",
"pixKey": "86046117747170",
"receiverReconciliationId": "Jk6GDZxqDD0HizWOfIYxGosIn9",
"paymentDate": ""
}
Resposta (Response)
O status code 202 indicará sucesso na transação.
Reprovação no processo de transferência
Embora haja sucesso na requisição, é possível que o processo de transferência via Pix não seja completado.
Nesses casos, o valor retornará para a conta pagadora e o parceiro receberá o evento PIX_CASHOUT_WAS_CANCELED e/ou o evento PIX_CASHOUT_WAS_UNDONE, que indicarão no campo refusalReason a razão pela qual a transferência não pôde ocorrer.
Erros
Este endpoint pode retornar erros específicos, conforme a tabela a seguir:
Status code | Código | Mensagem | Significado |
---|---|---|---|
400 | — | — | O valor do changeAmount precisa ser o mesmo do informado pelo QR Code. |
400 | SENDER_ACCOUNT_STATUS_NOT_ALLOW_CASH_OUT | Sender account status does not allow cash out. | O status da conta pagadora não permite o cash-out. |
400 | RECIPIENT_ACCOUNT_STATUS_NOT_ALLOW_CASH_IN | Recipient account status does not allow cash in. | O status da conta recebedora não permite cash-in. |
400 | INVALID_RECIPIENT_ACCOUNT | Sender and recipient account must not be the same. | A conta do pagador e do recebedor não podem ser a mesma. |
400 | SENDER_ACCOUNT_NOT_FOUND | Sender account not found for fund transfer. | Conta do pagador não encontrada para a realização da transferência. |
400 | RECIPIENT_ACCOUNT_NOT_FOUND | Recipient account not found for internal transfer. | Conta do recebedor não encontrada para transferência interna. |
400 | CASHOUT_LIMIT_NOT_ENOUGH | Sender does not have sufficient cash out limit. | A transação excede o limite de valor da transferência. |
400 | TIMEOUT | Transaction exceeded request limit timeout. | A requisição excedeu o tempo máximo para completar essa transação. |
400 | INVALID_BANK_BRANCH | Invalid bank branch. | Agência bancária inválida. |
400 | INVALID_BANK_ACCOUNT | Invalid bank account. | Conta bancária inválida. |
400 | RECIPIENT_ACCOUNT_DOES_NOT_MATCH_THE_DOCUMENT | Recipient account does not match with the document informed. | O documento informado não pertence à conta do recebedor. |
400 | SENDER_ACCOUNT_DOES_NOT_MATCH_THE_DOCUMENT | Sender account does not match with the document informed. | O documento informado não pertence à conta do pagador. |
400 | INSUFFICIENT_BALANCE | Customer does not have sufficient balance. | O cliente não possui saldo suficiente para a transação. |
400 | TRANSFER_WAS_REPROVED | Pix transfer was reproved. | A transferência não foi aprovada. |
400 | TRANSFER_AMOUNT_NOT_RESERVED | Pix transfer amount not reserved. | Erro ao reservar dinheiro para transferência. |
400 | TRANSFER_ORDER_NOT_PROCESSED | Pix transfer order not processed. | A transferência não foi processada. |
400 | INTERNAL_TRANSFER_NOT_COMPLETED | Pix transfer order not processed | A transferência interna de Pix não foi completada. |
400 | SCHEDULE_NOT_ALLOWED | Agendamento não permitido. | |
400 | INVALID_END_TO_END_ID | endToEndId inválido. | |
400 | END_2_END_ID_ALREADY_USED | The EndToEnd informed already been used by another transaction. | O endToEndId informado já está sendo utilizado em outra transação. |
400 | INVALID_PARAMETERS | The QR Code is expired. Payment after its expiration date is not allowed. | Não é permitido realizar pagamentos após a expiração do QR Code. |
404 | ACCOUNT_NOT_FOUND | Account not found for fund transfer. | Conta não encontrada. |
422 | QR_CODE_NOT_AVAILABLE | The requested QR Code is not available. If you have decoded it recently, please wait a few seconds and try again. | O QR Code solicitado não está disponível. Se você o escaneou recentemente, aguarde alguns segundos e tente novamente. |
Recordamos que esta API também poderá retornar erros comuns entre todos os endpoints que acompanham os erros 400 (se houver).
Eventos
Caso o parceiro deseje receber mensagens referentes aos eventos relacionados a esse endpoint, é preciso configurar o webhook. Os eventos são:
Evento | Descrição |
---|---|
PIX_CASHOUT_WAS_COMPLETED | Pagamento via Pix finalizado. |
PIX_CASHOUT_WAS_CANCELED | A reserva de valor para a transação (hold) não foi concluída com sucesso, resultando no cancelamento da transação. |
PIX_CASHOUT_WAS_UNDONE | Embora a reserva de valor para a transação (hold) tenha sido realizada com sucesso (o status do saldo foi modificado de AVAILABLE para IN_PROCESS), a etapa de verificação antifraude resultou em reprovação, levando à reversão do status do saldo para AVAILABLE novamente. |
NotaSe a reserva de valor para a transação (hold) for realizada com sucesso (o saldo foi atualizado para o status IN_PROCESS), e a etapa de verificação antifraude for aprovada, mas ocorrer uma falha durante o processo, a transação será cancelada e o saldo retornará ao status AVAILABLE novamente. Nesse cenário, o parceiro receberá dois eventos: PIX_CASHOUT_WAS_CANCELED e PIX_CASHOUT_WAS_UNDONE.
Updated about 12 hours ago