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}}' \
--header 'Idempotency-Key: d9a2305a-7b93-4a43-b0c3-a494480c8c36' \
--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.
Idempotency-KeyFormato UUID v4.Chave de idempotência cuja finalidade é garantir que uma operação seja executada uma única vez.
📘

Nota

Informe um UUID novo a cada requisição.

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

Manual

NomeTipoDescriçãoEspecificação
recipientobjectObrigatório. Objeto que deverá conter informações sobre o recebedor da transação.
recipient.accountobjectObrigatório. Objeto que deverá conter informações sobre a conta do recebedor.
recipient.account.branchstringObrigatório. Número da agência.
recipient.account.numberstringObrigatório. Número da conta.
recipient.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).
recipient.bankobjectObrigatório. Objeto que deverá conter informações sobre o banco recebedor da transação.
recipient.bank.ispbstringObrigatório. ISPB (Identificador de Sistema de Pagamentos Brasileiro) do banco recebedor da transação.
recipient.documentNumberstringObrigatório. Número do documento do recebedor da transação.Informe somente números.
recipient.namestringObrigatório. Nome do recebedor da transação.Este campo não aceita caracteres especiais ou com acentos, como por exemplo ã, é, ó, ç.
📘

Nota

No tipo manual, não é necessário informar o endToEndId.

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": ""
}
{
    "amount": 3.36,
    "transactionNotes": "Pix Manual",
    "initializationType": "Manual",
    "sender": {
        "documentNumber": "73379344915",
        "name": "Nísia Floresta",
        "account": {
            "type": "CHECKING",
            "branch": "0001",
            "number": "1104714229"
        }
    },
    "recipient": {
        "documentNumber": "52145638795",
        "name": "Alberto Gilberto",
        "account": {
            "branch": "0001",
            "number": "1101263307",
            "type": "CHECKING"
        },
        "bank": {
            "ispb": "13140088"
        }
    },
    "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 codeCódigoMensagemSignificado
400O valor do changeAmount precisa ser o mesmo do informado pelo QR Code.
400SENDER_ACCOUNT_STATUS_NOT_ALLOW_CASH_OUTSender account status does not allow cash out.O status da conta pagadora não permite o cash-out.
400RECIPIENT_ACCOUNT_STATUS_NOT_ALLOW_CASH_INRecipient account status does not allow cash in.O status da conta recebedora não permite cash-in.
400INVALID_RECIPIENT_ACCOUNTSender and recipient account must not be the same.A conta do pagador e do recebedor não podem ser a mesma.
400SENDER_ACCOUNT_NOT_FOUNDSender account not found for fund transfer.Conta do pagador não encontrada para a realização da transferência.
400RECIPIENT_ACCOUNT_NOT_FOUNDRecipient account not found for internal transfer.Conta do recebedor não encontrada para transferência interna.
400CASHOUT_LIMIT_NOT_ENOUGHSender does not have sufficient cash out limit.A transação excede o limite de valor da transferência.
400TIMEOUTTransaction exceeded request limit timeout.A requisição excedeu o tempo máximo para completar essa transação.
400INVALID_BANK_BRANCHInvalid bank branch.Agência bancária inválida.
400INVALID_BANK_ACCOUNTInvalid bank account.Conta bancária inválida.
400RECIPIENT_ACCOUNT_DOES_NOT_MATCH_THE_DOCUMENTRecipient account does not match with the document informed.O documento informado não pertence à conta do recebedor.
400SENDER_ACCOUNT_DOES_NOT_MATCH_THE_DOCUMENTSender account does not match with the document informed.O documento informado não pertence à conta do pagador.
400INSUFFICIENT_BALANCECustomer does not have sufficient balance.O cliente não possui saldo suficiente para a transação.
400TRANSFER_WAS_REPROVEDPix transfer was reproved.A transferência não foi aprovada.
400TRANSFER_AMOUNT_NOT_RESERVEDPix transfer amount not reserved.Erro ao reservar dinheiro para transferência.
400TRANSFER_ORDER_NOT_PROCESSEDPix transfer order not processed.A transferência não foi processada.
400INTERNAL_TRANSFER_NOT_COMPLETEDPix transfer order not processedA transferência interna de Pix não foi completada.
400SCHEDULE_NOT_ALLOWED
Agendamento não permitido.
400INVALID_END_TO_END_ID
endToEndId inválido.
400END_2_END_ID_ALREADY_USEDThe EndToEnd informed already been used by another transaction.O endToEndId informado já está sendo utilizado em outra transação.
400INVALID_PARAMETERSThe 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.
404ACCOUNT_NOT_FOUNDAccount not found for fund transfer.Conta não encontrada.
422QR_CODE_NOT_AVAILABLEThe 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.


Did this page help you?