Descargar el PDF del comprobante desde el link de seguimiento (público)
curl --request GET \
--url https://api.qbank.cl/platform/v1/public/track/{code}/receipt.pdfimport requests
url = "https://api.qbank.cl/platform/v1/public/track/{code}/receipt.pdf"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.qbank.cl/platform/v1/public/track/{code}/receipt.pdf', 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.qbank.cl/platform/v1/public/track/{code}/receipt.pdf",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.qbank.cl/platform/v1/public/track/{code}/receipt.pdf"
req, _ := http.NewRequest("GET", url, nil)
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.qbank.cl/platform/v1/public/track/{code}/receipt.pdf")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qbank.cl/platform/v1/public/track/{code}/receipt.pdf")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body"<string>"{
"error": "not_found",
"message": "this tracking link does not correspond to any transaction issued by this platform"
}{
"error": "too_many_attempts",
"message": "too many requests; wait a moment and retry"
}Descargar el PDF del comprobante desde el link de seguimiento (público)
Endpoint PÚBLICO (sin credenciales) que genera el PDF del comprobante al vuelo con el mismo renderer de los endpoints autenticados, en el idioma pedido (lang=es|en|zh; el chino se dibuja con la fuente Noto Sans SC). Mismo código firmado del tracker JSON. Las respuestas llevan X-Robots-Tag: noindex y Cache-Control: no-store. Comparte el rate limit por IP.
GET
/
v1
/
public
/
track
/
{code}
/
receipt.pdf
Descargar el PDF del comprobante desde el link de seguimiento (público)
curl --request GET \
--url https://api.qbank.cl/platform/v1/public/track/{code}/receipt.pdfimport requests
url = "https://api.qbank.cl/platform/v1/public/track/{code}/receipt.pdf"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.qbank.cl/platform/v1/public/track/{code}/receipt.pdf', 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.qbank.cl/platform/v1/public/track/{code}/receipt.pdf",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.qbank.cl/platform/v1/public/track/{code}/receipt.pdf"
req, _ := http.NewRequest("GET", url, nil)
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.qbank.cl/platform/v1/public/track/{code}/receipt.pdf")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qbank.cl/platform/v1/public/track/{code}/receipt.pdf")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body"<string>"{
"error": "not_found",
"message": "this tracking link does not correspond to any transaction issued by this platform"
}{
"error": "too_many_attempts",
"message": "too many requests; wait a moment and retry"
}Última modificación el 10 de septiembre de 2026