curl --request POST \
--url https://api.public.firebanking.com.br/api/pix/refund-in/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"refundValue": 50,
"reason": "Cliente solicitou devolução",
"externalId": "D123456789"
}
'import requests
url = "https://api.public.firebanking.com.br/api/pix/refund-in/{id}"
payload = {
"refundValue": 50,
"reason": "Cliente solicitou devolução",
"externalId": "D123456789"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
refundValue: 50,
reason: 'Cliente solicitou devolução',
externalId: 'D123456789'
})
};
fetch('https://api.public.firebanking.com.br/api/pix/refund-in/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.public.firebanking.com.br/api/pix/refund-in/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'refundValue' => 50,
'reason' => 'Cliente solicitou devolução',
'externalId' => 'D123456789'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.public.firebanking.com.br/api/pix/refund-in/{id}"
payload := strings.NewReader("{\n \"refundValue\": 50,\n \"reason\": \"Cliente solicitou devolução\",\n \"externalId\": \"D123456789\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.public.firebanking.com.br/api/pix/refund-in/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"refundValue\": 50,\n \"reason\": \"Cliente solicitou devolução\",\n \"externalId\": \"D123456789\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.public.firebanking.com.br/api/pix/refund-in/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"refundValue\": 50,\n \"reason\": \"Cliente solicitou devolução\",\n \"externalId\": \"D123456789\"\n}"
response = http.request(request)
puts response.read_body{
"transactionId": "789",
"externalId": "D123456789",
"status": "PENDING",
"refundValue": 50,
"providerTransactionId": "7ef4fc3f-a187-495e-857c-e84d70612761",
"generateTime": "2024-01-15T10:30:00.000Z"
}Solicitar estorno de pagamento recebido (Refund-In)
Requer token Bearer no header Authorization. Solicita a devolução de um pagamento PIX recebido. O estorno pode ser parcial ou total, desde que dentro do prazo de 89 dias.
curl --request POST \
--url https://api.public.firebanking.com.br/api/pix/refund-in/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"refundValue": 50,
"reason": "Cliente solicitou devolução",
"externalId": "D123456789"
}
'import requests
url = "https://api.public.firebanking.com.br/api/pix/refund-in/{id}"
payload = {
"refundValue": 50,
"reason": "Cliente solicitou devolução",
"externalId": "D123456789"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
refundValue: 50,
reason: 'Cliente solicitou devolução',
externalId: 'D123456789'
})
};
fetch('https://api.public.firebanking.com.br/api/pix/refund-in/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.public.firebanking.com.br/api/pix/refund-in/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'refundValue' => 50,
'reason' => 'Cliente solicitou devolução',
'externalId' => 'D123456789'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.public.firebanking.com.br/api/pix/refund-in/{id}"
payload := strings.NewReader("{\n \"refundValue\": 50,\n \"reason\": \"Cliente solicitou devolução\",\n \"externalId\": \"D123456789\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.public.firebanking.com.br/api/pix/refund-in/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"refundValue\": 50,\n \"reason\": \"Cliente solicitou devolução\",\n \"externalId\": \"D123456789\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.public.firebanking.com.br/api/pix/refund-in/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"refundValue\": 50,\n \"reason\": \"Cliente solicitou devolução\",\n \"externalId\": \"D123456789\"\n}"
response = http.request(request)
puts response.read_body{
"transactionId": "789",
"externalId": "D123456789",
"status": "PENDING",
"refundValue": 50,
"providerTransactionId": "7ef4fc3f-a187-495e-857c-e84d70612761",
"generateTime": "2024-01-15T10:30:00.000Z"
}Autorizações
Enter JWT token
Parâmetros de caminho
ID da transação original a ser estornada
"123"
Corpo
Valor a ser estornado em reais (pode ser parcial). Deve ser menor ou igual ao valor disponível para estorno
x >= 0.0150
Motivo do estorno (opcional)
"Cliente solicitou devolução"
ID externo para identificação da devolução. Na API BACEN, corresponde ao parâmetro 'id' da URL
"D123456789"
Resposta
Solicitação de estorno realizada com sucesso
ID da transação de estorno gerada
"789"
ID externo da transação de estorno
"D123456789"
Status atual da transação de estorno
PENDING, CONFIRMED, ERROR "PENDING"
Valor do estorno em reais
50
ID da transação no provedor (usado para correlação com webhooks)
"7ef4fc3f-a187-495e-857c-e84d70612761"
Data/hora de geração da transação de estorno (ISO 8601)
"2024-01-15T10:30:00.000Z"