curl --request GET \
--url https://api.example.com/payment/evidence \
--header 'x-hub-signature: <api-key>'import requests
url = "https://api.example.com/payment/evidence"
headers = {"x-hub-signature": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-hub-signature': '<api-key>'}};
fetch('https://api.example.com/payment/evidence', 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.example.com/payment/evidence",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-hub-signature: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/payment/evidence"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-hub-signature", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/payment/evidence")
.header("x-hub-signature", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/payment/evidence")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-hub-signature"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"results": [
{
"checkoutId": "<string>",
"createdAt": "<string>",
"amount": 123,
"itbis": 123,
"metadata": "<string>",
"statementDescriptor": "<string>",
"cardHolder": {
"name": "<string>",
"email": "<string>"
},
"payment": {
"azulOrderId": "<string>",
"authorizationCode": "<string>",
"rrn": "<string>",
"ticket": "<string>",
"lotNumber": "<string>",
"transactionDateTime": "<string>",
"maskedPan": "<string>"
},
"threeDSecure": {
"serverTransactionId": "<string>",
"acsTransactionId": "<string>",
"status": "<string>"
},
"timeline": [
{
"fromStatus": "<string>",
"toStatus": "<string>",
"stepName": "<string>",
"isoCode": "<string>",
"statusMessage": "<string>",
"createdAt": "<string>"
}
],
"clientRequests": [
{
"ipAddress": "<string>",
"country": "<string>",
"city": "<string>",
"networkProvider": "<string>",
"userAgent": "<string>",
"acceptLanguage": "<string>",
"phase": "pay",
"createdAt": "<string>"
}
]
}
]
}{
"message": "<string>"
}Look up chargeback evidence for a payment
Resolves the payments matching the Azul references a chargeback notice cites or the payment id this service delivered in the payment webhook, and returns, for each one, the purchase details, the cardholder identity sent to Azul, the status timeline and every browser-originated request recorded for the checkout. At least one reference must be supplied.
curl --request GET \
--url https://api.example.com/payment/evidence \
--header 'x-hub-signature: <api-key>'import requests
url = "https://api.example.com/payment/evidence"
headers = {"x-hub-signature": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-hub-signature': '<api-key>'}};
fetch('https://api.example.com/payment/evidence', 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.example.com/payment/evidence",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-hub-signature: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/payment/evidence"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-hub-signature", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/payment/evidence")
.header("x-hub-signature", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/payment/evidence")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-hub-signature"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"results": [
{
"checkoutId": "<string>",
"createdAt": "<string>",
"amount": 123,
"itbis": 123,
"metadata": "<string>",
"statementDescriptor": "<string>",
"cardHolder": {
"name": "<string>",
"email": "<string>"
},
"payment": {
"azulOrderId": "<string>",
"authorizationCode": "<string>",
"rrn": "<string>",
"ticket": "<string>",
"lotNumber": "<string>",
"transactionDateTime": "<string>",
"maskedPan": "<string>"
},
"threeDSecure": {
"serverTransactionId": "<string>",
"acsTransactionId": "<string>",
"status": "<string>"
},
"timeline": [
{
"fromStatus": "<string>",
"toStatus": "<string>",
"stepName": "<string>",
"isoCode": "<string>",
"statusMessage": "<string>",
"createdAt": "<string>"
}
],
"clientRequests": [
{
"ipAddress": "<string>",
"country": "<string>",
"city": "<string>",
"networkProvider": "<string>",
"userAgent": "<string>",
"acceptLanguage": "<string>",
"phase": "pay",
"createdAt": "<string>"
}
]
}
]
}{
"message": "<string>"
}Authorizations
HMAC-SHA256 hex digest keyed with the shared secret: over the raw request body for POST requests, or over the query string (the characters after "?") for GET requests. The signed query string is the one the WHATWG URL parser serializes, so a query built with URLSearchParams and appended unchanged verifies, while a hand-assembled query must be percent-encoded the same way.
Query Parameters
Authorization code Azul returned for the sale
"OK3627"
Order identifier Azul assigned to the sale. A chargeback notice prints it as "No. de Secuencia", padded with leading zeros to ten digits; leading zeros are ignored.
"44892547"
Retrieval reference number Azul returned for the sale
"2026041100000044892547"
Identifier this service assigned to the payment and delivered in the payment webhook
"3f2504e0-4f89-41d3-9a0c-0305e82c3301"
Response
Evidence packets for the matching payments
One packet per matching payment, most recently captured first
Show child attributes
Show child attributes