Reembolso de Pix-In
Devolução de recebimento de uma cobrança - QR Code
No fluxo do PIX Cobrança, pode ser necessário efetuar o reembolso de alguma cobrança recebida, ou seja, devolver o valor de um QR Code ao pagador da transação.
É possível realizá-lo através do endpoint de reembolso, disponibilizado na aplicação.
Usado para:
- Efetuar o reembolso total de um pagamento de QR Code recebido;
Como efetuar um reembolso:
ENDPOINT: https://kaizen.bt-staging.app/pix-service/wallets/:walletId/transactions/refund
Esse endpoint utiliza o método POST.
Modelo de requisição:
curl --location 'https://kaizen.bt-develop.app/pix-service/wallets/f259d2f8-006e-44cc-a016-f15dc206144a/transactions/refund' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN \
--data '{
"type": "CLIENT_EXTERNAL_ID",
"value": "COBNJOVTR75yGQK5cwCGMBY36MB",
"priority": "high",
"amount": 2.05,
"reason": "BE08",
"reasonInfo": "(INFO INTERNA) Frase de motivo do envio da devolução",
"infoBetweenUsers": "(INFO COMPARTILHADA) estorno de pagamento via externalId:COBNJOVTR75yGQK5cwCGMBY36MB"
}'
Parâmetros de requisição:
Campos | Descrição |
---|---|
walletID | - Wallet do Cliente/emissora do QR Code |
Modelo de requisição:
{
"type": "CLIENT_EXTERNAL_ID", //CLIENT_EXTERNAL_ID | END_TO_END_ID
"value": "{{externalId}}",
"priority": "high",
"amount": {{amount}},
"reason": "BE08",
"reasonInfo": " (INFO INTERNA) Frase de motivo do envio da devolução",
"infoBetweenUsers": "(INFO COMPARTILHADA) estorno de pagamento"
}
Descrição dos campos:
- Campos em negrito, são obrigatórios.
campo | tipo | descrição |
---|---|---|
type | ENUM(CLIENT_EXTERNAL_ID | END_TO_END_ID) | - Tipo de identificador da transação a ser reembolsada (END_TO_END_ID ou CLIENT_EXTERNAL_ID) |
value | string | - Valor do identificador declarado no campo type |
amount | number | - valor a ser reembolsado |
reason | ENUM(BE08 | FR01 | MD06 |SL02) | - código de devolução Bacen |
reasonInfo | string(100) | - Campo livre para descrição - neste campo os dados não são compartilhados com os membros da trasnação, ficando somente registrada no BD interno do produto |
infoBetweenUsers | string(100) | - Campo livre para descrição - neste campo os dados são compartilhados com os membros da transação |
infoBetweenUsers
este campo é equivalente ao "anotações PIX" conhecido no mercado de meios de pagamento
Motivos de devolução
código | descrição |
---|---|
BE08 | (Erro Bancário): Esta devolução ocorre devido a um erro cometido pelo banco durante a transação. |
FR01 | (Suspeita de Fraude): Essa devolução acontece quando há suspeita de atividade fraudulenta na transação. |
MD06 | (Solicitada pelo Cliente): Nesse caso, a devolução é solicitada pelo próprio cliente final da transação. |
SL02 | (Erro no Pix Saque ou Pix Troco): Esta devolução é relacionada a um erro que ocorreu durante uma transação de Pix Saque ou Pix Troco, resultando na devolução do valor em dinheiro. |
Modelo de resposta:
{
"id": "9199c580-2360-4d47-b2f0-c0a87fe524bb",
"createdAt": "2023-04-06T20:09:11.625Z",
"type": "deposit_refund",
"amount": "0.21",
"wallet": {
"id": "ddfbfcd1-d094-4136-a908-ee489e694c6e",
"createdAt": "2022-09-20T14:24:29.109Z",
"updatedAt": null,
"deletedAt": null,
"client": "7d8d40b2-28db-4e6c-abe8-f0ee2520b3c0",
"clientId": "7d8d40b2-28db-4e6c-abe8-f0ee2520b3c0",
"accountId": "92bc81ae-f7bf-4437-ad58-9dd61b1ff4c4",
"additionalData": {},
"status": "ready",
"ispb": "03311443",
"bankBranch": "0001",
"bankNumber": "10000052202",
"isPixoleto": false,
"limitValuePixOut": "100"
},
"externalTransactionId": "5b856657-0584-48c1-9d55-428357496364",
"derivativeId": "7e6499bb-6134-463e-af0c-a96dba17b25a",
"clientExternalId": "COBcgjdXAUPh99Nsix1vw3rTToX",
"endToEndId": "E32778350202304062009u8woyCbXD9i",
"source": {
"type": "corporate",
"taxId": "92949282000196",
"account": {
"ispb": "03311443",
"type": "payment",
"bankBranch": "0001",
"bankNumber": "10000052202"
}
},
"destination": {
"name": "Kiana Fay",
"type": "personal",
"taxId": "72974107214",
"account": {
"ispb": "32778350",
"type": "checking",
"bankBranch": "0001",
"bankNumber": "49695269"
}
},
"states": [
{
"id": "c1054c0b-c6c8-474c-a4e4-1d64f936c249",
"createdAt": "2023-04-06T20:09:11.635Z",
"additionalData": {},
"status": "pending"
}
],
"status": "pending"
}
{
"status": 400,
"message": "Insufficient Balance for refund, refund left: 1.45. Value requested was 900000",
"details": {},
"stackId": "7a0f9d6e-7987-4ebe-8471-65a2e9d252ee",
"stack": false
}
Descrição dos campos:
Campo | Descrição |
---|---|
id | ID da transação reembolsada |
createdAt | Data e hora do reembolso |
source | Wallet de origem do reembolso/ Wallet que recebeu o pagamento |
destination | Conta bancária que irá receber a devolução |
type | Tipo de transação executada |
amount | Valor do reembolso/devolução |
derivativeId | ID da transação original PIX-In |
status | Status atual da transação (ver lista abaixo) |
endToEndId | End-to-end da transação originária da devolução |
Status de Refund de PIX IN (Refund OUT)
As transações de Refund OUT possuem vários status, e esses são replicados de maneira cronológica através do campo "createdAt". Ou seja, dependendo do momento em que essa transação for consultada, um status atual será demonstrado:
- pending - aguardando confirmação (Bacen) da requisição - (status inicial)
- success - transação executada com sucesso - (status final)
- failed - transação não executada por falha - (status final)
Updated over 1 year ago