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).
⚠️

Importante

O 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.

📘

Nota

Em 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)

NomePropriedadeDescrição
versioncutting-edgeObrigatório. Essa propriedade garante que o response da API seja retornado no formato JSON
AuthorizationBearer tokenObrigató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:

NomeTipoDescriçãoEspecificação
senderobjectObrigatório. Objeto que deverá conter informações sobre o pagador da transação.
sender.accountobjectObrigatório. Objeto que deverá conter informações sobre a conta do pagador da transação.
sender.account.typestringObrigató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.branchstringObrigatório. Número da agência.
sender.account.numberstringObrigatório. Número da conta.
sender.documentNumberstringObrigatório. Número do documento do pagador da transação.Informe somente números.
sender.namestringObrigató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 ã, é, ó, ç.
amountnumberObrigatório. Valor da transação.
descriptionstringCampo 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).
initializationTypestringObrigatório. Modo pelo qual se dará a transação, que pode ser "Key" (chave de endereçamento), "StaticQrCode" ou "DynamicQrCode" (QR Code) ou "Manual”.
paymentDatestringData de pagamento (formato ISO ou vazio para imediato).
⚠️

Importante

Para 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).

👍

Dica

Recordamos 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:

NomeTipoDescriçãoEspecificação
endToEndIdstringObrigatório. Valor de endToEndId retornado na consulta de chave para transferência.
pixKeystringChave 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:

NomeTipoDescriçãoEspecificação
endToEndIdstringObrigatório. Valor de endToEndId retornado na decodificação do QR Code.
receiverReconciliationIdstringObrigató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:

EventoDescrição
PIX_CASHOUT_WAS_COMPLETEDPagamento via Pix finalizado.
PIX_CASHOUT_WAS_CANCELEDA reserva de valor para a transação (hold) não foi concluída com sucesso, resultando no cancelamento da transação.
PIX_CASHOUT_WAS_UNDONEEmbora 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.
📘

Nota

Se 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.