Devolução de transferência Pix

stable

Após o recebimento de um valor via Pix (cash-in), o recebedor pode devolver ao pagador a quantia total recebida ou parte dela.

A devolução de um pagamento via Pix pode acontecer em até 90 dias após a data da transação original.

Caso o cliente queira fazer a devolução após esse período, será preciso realizar uma transferência via Pix (Pix cash-out) convencional.

Este endpoint permite realizar a devolução de valores recebidos via Pix.

Pré-requisito

Para que seja possível utilizar este endpoint, é necessário que:

Requisição

Requisição HTTP

POST 'https://api-mtls.sandbox.bankly.com.br/pix/cash-out:refund'
--location --request POST 'https://api-mtls.sandbox.bankly.com.br/pix/cash-out:refund' \ 
--header 'Accept: application/json' \ 
--header 'Content-Type: application/json' \ 
--header 'x-correlation-id: {{GUID}}' \ 
--header 'api-version: 1.0' \
--header 'Authorization: {{token}}' \ 
--data-raw '{ 
    "account": { 
        "branch": "0001", 
        "number": "15164", 
        "type": "PAYMENT" 
    }, 
    "authenticationCode": "79bb6e3-6869-42c6-be15-2dba237f306b", 
    "amount": 30, 
    "refundCode": "MD06", 
    "refundReason": "1", 
    "description": "{{refundDescription}}" 
}'

Autorização

Para garantir a segurança nas requisições, todos os endpoints do Bankly utilizam scopes como parte do seu fluxo de autorização.
Esta requisição requer o scope descrito a seguir:

ScopeDescrição
pix.cashout.createConcede acesso para iniciar um pagamento ou devolução via Pix.

Cabeçalhos (Headers)

NomeDescrição
api-versionObrigatório. Versão da API. Atualmente estamos na versão 1.0.
AuthorizationObrigatório. Token de autorização do tipo Bearer.
x-correlation-idSe desejar, informe um GUID v4, sendo um novo 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)

No body, envie os seguintes campos em formato JSON:

NomeTipoDescrição
accountobjectObrigatório. Objeto que contém os dados da conta que recebeu a transação original.
account.branchstringObrigatório. Número da agência.
account.numberstringObrigatório. Número da conta.
account.typestringObrigatório. Tipo de conta, o qual pode ser CHECKING para conta corrente, SALARY para conta salário, SAVINGS para conta poupança e PAYMENT para conta de pagamento.
authenticationCodestringObrigatório. Código de autenticação do pagamento. Informe o valor do campo authenticationCode gerado no evento PIX_CASH_IN_WAS_RECEIVED.
amountnumberObrigatório. Valor a ser devolvido. Pode ser o valor total da transação original que foi recuperado no evento disponível no extrato ou o valor parcial.
refundCodestringObrigatório. Código da devolução.
refundReasonstringCampo opcional que permite descrever o motivo da devolução.
descriptionstringCampo opcional que permite adicionar uma descrição para a devolução.

🚧

Importante

O valor máximo a ser devolvido obrigatoriamente é o valor total da transação recebida.

--location --request POST 'https://api-mtls.sandbox.bankly.com.br/pix/cash-out:refund' \ 
--header 'Accept: application/json' \ 
--header 'Content-Type: application/json' \ 
--header 'x-correlation-id: {{correlationId}}' \ 
--header 'api-version: 1.0' \
--header 'Authorization: {{token}}' \ 
--data-raw '{ 
    "account": { 
        "branch": "0001", 
        "number": "15164", 
        "type": "PAYMENT" 
    }, 
    "authenticationCode": "79bb6e3-6869-42c6-be15-2dba237f306b", 
    "amount": 30, 
    "refundCode": "MD06", 
    "refundReason": "1", 
    "description": "{{refundDescription}}" 
}'

Código da devolução

CódigoDescrição
BE08Devolução de pagamento instantâneo devido a erro do PSP (Provedor de Serviços de Pagamento). Utilizado em caso de Mecanismo Especial de Devolução (MED).
FR01Devolução de pagamento motivada por fundada suspeita de fraude. Utilizado em caso de Mecanismo Especial de Devolução (MED).
MD06Devolução de pagamento instantâneo solicitada pelo usuário recebedor pagamento original.
SL02Devolução motivada por um erro relacionado ao saque Pix.

Resposta (Response)

O status code 202 indicará que solicitação de devolução foi criada (status CREATED).
Sendo bem-sucedido, o retorno irá trazer os seguintes campos em formato JSON:

NomeTipoDescrição
authenticationCodestringCódigo de autenticação do pagamento.
amountnumberValor devolvido.
descriptionstringDescrição da devolução.
correlationIdstringGUID da requisição.
senderobjectObjeto que contém os dados do pagador.
sender.accountobjectObjeto que contém os dados da conta do pagador.
sender.account.branchstringNúmero da agência.
sender.account.numberstringNúmero da conta.
sender.account.typestringTipo de conta, o qual pode ser CHECKING para conta corrente, SALARY para conta salário, SAVINGS para conta poupança e PAYMENT para conta de pagamento.
sender.bankobjectObjeto com os dados do banco do pagador.
sender.bank.ispbstringISPB do banco.
sender.bank.compestringCódigo do banco. Esse campo não é retornado em caso de Pix externo.
sender.bank.namestringNome do banco. Esse campo não é retornado em caso de Pix externo.
sender.documentNumberstringNúmero do documento do pagador.
sender.documentTypestringTipo de documento (CPF ou CNPJ).
sender.namestringNome de registro 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.
recipientobjectObjeto que contém os dados do recebedor.
recipient.accountobjectObjeto que contém informações sobre a conta do recebedor.
recipient.account.branchstringNúmero da agência.
recipient.account.numberstringNúmero da conta.
recipient.account.typestringTipo de conta, o qual pode ser CHECKING para conta corrente, SALARY para conta salário, SAVINGS para conta poupança e PAYMENT para conta de pagamento.
recipient.bankobjectObjeto com os dados do banco recebedor.
recipient.bank.ispbstringISPB da instituição recebedora do pagamento.
recipient.bank.compestringCódigo do banco.
recipient.bank.namestringNome do banco.
recipient.documentNumberstringNúmero do documento do recebedor (CPF ou CNPJ).
recipient.documentTypestringTipo de documento (CPF ou CNPJ).
recipient.namestringNome do recebedor. Esse campo retornará o nome do documento de cadastro, e não o nome social.
statusstringSituação da devolução.
typestringTipo de transação, o qual pode ser CASH_OUT (pagamento/transferência) ou REFUND(devolução).
createdAtstringData de criação da transação, no formato ISO 8601 - UTC.
updatedAtstringData de atualização da transação, no formato ISO 8601 - UTC.
{
    "authenticationCode": "689b172-2992-48ee-b904-ac774c27089b",
    "amount": 1,
    "description": "1",
    "correlationId": "693bd23-3e80-485c-8edb-d1784930f834",
    "sender": {
       "account": {
          "branch": "0001",
          "number": "540108",
          "type": "CHECKING"
       },
       "bank": {
          "ispb": "13140088",
          "compe": "332",
          "name": "Acesso Soluções De Pagamento S.A."
       },
       "documentNumber": "09992220074",
       "documentType": "CPF",
       "name": "Maria Quitéria de Jesus"
    },
    "recipient": {
       "account": {
          "branch": "0001",
          "number": "15164",
          "type": "CHECKING"
       },
       "bank": {
          "ispb": "13140088",
          "compe": "332",
          "name": "Acesso Soluções De Pagamento S.A."
       },
       "documentNumber": "47742663023",
       "documentType": "CPF",
       "name": "Nísia Floresta"
    },
    "status": "CREATED",
    "createdAt": "2021-10-26T13:40:51.2434384Z",
    "updatedAt": "2021-10-26T13:40:51.4185601Z"
 }

👍

Dica

Para simular uma requisição nesse endpoint, acesse o API Reference.

Status da devolução

StatusDescrição
CREATEDTransação criada, não finalizada.
IN_PROCESSTransação em processo, não finalizada.
APPROVEDTransação aprovada, não finalizada.
REPROVEDTransação reprovada, não finalizada.
DONETransação concluída com sucesso.
UNDONEA transação não pôde ser concluída. O valor foi estornado.
CANCELEDA transação foi cancelada. O saldo não foi afetado.

Erros

Este endpoint pode retornar erros específicos, conforme a tabela a seguir:

Status codeCódigoDescrição
422REFUND_TRANSFER_NOT_COMPLETEDEsse authenticationCode já foi utilizado em outra devolução.
422REFUND_TRANSFER_NOT_COMPLETEDA devolução ainda está em processamento.
422INVALID_PIX_CASH_IN_STATUSStatus de Pix cash-in inválido.
422INVALID_PIX_CASH_IN_TYPETipo de Pix cash-in inválido.
422INVALID_REFUND_PERIODPeríodo de devolução inválido.
422INVALID_PIX_CASH_INPix cash-in inválido.
422NOT_FOUND_PIX_TRANSFERTransferência Pix não encontrada.
422INVALID_AUTHENTICATION_CODEO authenticationCode é inválido.

Recordamos que esta API também poderá retornar erros comuns entre todos os endpoints. Portanto, recomendamos a consulta da documentação de erros, onde é possível encontrar as mensagens comuns em inglês 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:

Nome do eventoDescrição
PIX_REFUND_WAS_RECEIVEDO valor devolvido foi recebido no core bancário Bankly.