Devolução
beta scopes: events.read pix.cashout.create
Após uma transação cash-in (recebimento), o recebedor pode devolver ao pagador o total do valor recebido ou parte dele.
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 depois desse período, será preciso realizar um Pix cash-out convencional.
Etapas
Consulta de eventos
Ao iniciar o processo de devolução, é preciso ter em mãos o valor do campo depositTransactionId
, gerado no evento referente ao Pix cash-in.
Para recuperar esse valor, utilize o endpoint de consulta de eventos.
Endpoint
Para consumo deste endpoint, preencha os seguintes campos obrigatórios no path da requisição:
x-correlation-id
: informe um GUID v4, gerado randomicamente. A cada requisição, deve-se gerar um novo GUID v4;branch
: informe a agência da conta recebedora da qual se deseja obter o evento;account
: conta recebedora;includeDetails
: inclua esse campo com o valor "true" para obter o objetodata
no corpo da resposta com os detalhes do evento.
Importante
No header da requisição é obrigatório informar o campo
x-correlation-id
com um Guid.
Opcionalmente, insira no path os seguintes campos:
page
: indique o número da página que deseja visualizar;pageSize
: especifique a quantidade de eventos retornados por páginas (máximo de 100 itens);beginDateTime
: insira a data de início dos eventos que deseja consultar no formato AAAA-MM-DD. Utilize esse campo em conjunto com oendDateTime
para filtrar eventos por um range de datas;endDateTime
: insira a data final dos eventos que deseja consultar (formato AAAA-MM-DD);
--request GET
--url 'https://api-mtls.sandbox.bankly.com.br/events?branch={{branchNumber}}&account={{accountNumber}}&page={{pageNumber}}&pageSize={{eventsPerPage}}&includeDetails={{true}}&beginDateTime={{AAAA-MM-DD}}&endDateTime={{AAAA-MM-DD}}&cardProxy={{cardProxyNumber}}' \
--header 'Accept: application/json' \
--header 'api-version: 1.0' \
--header 'x-correlation-id: {{correlationId}}' \
Retorno
O valor do campo depositTransactionId
retornado nessa requisição será utilizado para o preenchimento do campo authenticationCode
no endpoint de devolução.
Importante
O campo
depositTransactionId
retornará apenas nos eventos cujo camponame
seja igual a "PIX_CASH_IN_ACCOUNT".
{
"aggregateId": "PIX_TRANSACTION_ID_96000a91-75aa-4989-935f-e94de7608fe4",
"type": "TRANSACTION",
"category": "EletronicTransfers",
"documentNumber": "36436846816",
"bankBranch": "0001",
"bankAccount": "219568",
"amount": 1,
"index": "cash-in",
"name": "PIX_CASH_IN_ACCOUNT",
"timestamp": "2021-10-25T14:36:00+00:00",
"data": {
"TotalRefundedAmount": 1,
"DepositTransactionId": "96000a91-75aa-4989-935f-e94de7608fe4",
"ControlNumber": null,
"TransactionAmount": 1,
"ClearingAmount": 1,
"OverLimitAmount": 0,
"AddressKey": null,
"Description": "DESCRIÇÃO",
"Channel": "INTERNAL_SPI",
"EndToEndId": null,
"PixTransactionId": "00000000-0000-0000-0000-000000000000",
"SenderAccount": {
"Agency": "0001",
"Account": "187470",
"Document": "12345678902",
"IspbNumber": "13140088",
"Name": "Peter Parker"
},
"RecipientAccount": {
"Agency": "0001",
"Account": "219568",
"Document": "12345678900",
"IspbNumber": "13140088",
"Name": "Carol Denvers"
},
"IsPixDeposit": true,
"CorrelationId": null,
"Document": "36436846816",
"CompanyKey": "SDB2_BANKLYDELIVERY",
"EventDateTime": "2021-10-25T14:36:00.039+00:00"
},
"status": "ACTIVE"
}
Requisição de devolução
Após realizar a consulta de eventos, você estará apto a fazer a requisição no nosso serviço de devolução.
Endpoint
Para consumo do endpoint de devolução, preencha os seguintes campos obrigatórios:
x-correlation-id
: informe um GUID v4, gerado randomicamente. A cada requisição, deve-se gerar um novo GUID v4;account
: dados da conta que recebeu a transação original;branch
: número da agência;number
: número da conta;type
: informe o tipo de conta. "CHECKING" para conta-corrente, "SALARY" para conta-salário, "SAVINGS" para conta-poupança e "PAYMENT" para conta de pagamento;
authenticationCode
: informe o valor retornado no campodepositTransactionId
do endpoint de consulta de eventos;amount
: 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. Importante: o valor máximo a ser devolvido obrigatoriamente é o valor total da transação recebida.refundCode
: os possíveis códigos são:- BE08: devolução de pagamento instantâneo devido a erro do PSP;
- FR01: devolução de pagamento motivada por fundada suspeita de fraude;
- MD06: devolução de pagamento instantâneo solicitada pelo usuário recebedor pagamento original;
- SL02: devolução motivada por um erro relacionado ao saque Pix.
Opcionalmente, insira mais detalhes sobre o motivo da devolução nos campos refundReason
e description
.
--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": "187470",
"type": "PAYMENT"
},
"authenticationCode": "79bb6e53-6869-42c6-be15-2dba237f306b",
"amount": 30,
"refundCode": "MD06",
"refundReason": "1",
"description": "{{refundDescription}}"
}'
Retorno
O sucesso retornará o status code 202, e o “status” do retorno será CREATED.
{
"authenticationCode": "689b1722-2992-48ee-b904-ac774c27089b",
"amount": 1,
"description": "1",
"correlationId": "6923bd23-3e80-485c-8edb-d1784930f834",
"sender": {
"documentType": "CPF",
"account": {
"branch": "0001",
"number": "219568",
"type": "CHECKING"
},
"bank": {
"ispb": "13140088",
"compe": "332",
"name": "Acesso Soluções De Pagamento S.A."
},
"documentNumber": "12345678900",
"name": "Carol Denvers"
},
"recipient": {
"documentType": "CPF",
"account": {
"branch": "0001",
"number": "187470",
"type": "CHECKING"
},
"bank": {
"ispb": "13140088",
"compe": "332",
"name": "Acesso Soluções De Pagamento S.A."
},
"documentNumber": "12345678902",
"name": "Peter Parker"
},
"status": "CREATED",
"createdAt": "2021-10-26T13:40:51.2434384Z",
"updatedAt": "2021-10-26T13:40:51.4185601Z"
}
Erros
Status code | Código | Descrição |
---|---|---|
422 | REFUND_TRANSFER_NOT_COMPLETED | Esse authenticationCode já foi utilizado em outra devolução. |
422 | REFUND_TRANSFER_NOT_COMPLETED | A devolução ainda está em processamento. |
422 | INVALID_PIX_CASH_IN_STATUS | Status de Pix cash-in inválido. |
422 | INVALID_PIX_CASH_IN_TYPE | Tipo de Pix cash-in inválido. |
422 | INVALID_REFUND_PERIOD | Período de devolução inválido. |
422 | INVALID_PIX_CASH_IN | Pix cash-in inválido. |
422 | NOT_FOUND_PIX_TRANSFER | Transferência Pix não encontrada. |
422 | INVALID_AUTHENTICATION_CODE | O authenticationCode é inválido. |
Updated 12 months ago