curl --request GET \
--url https://tapipay-facade.homo.tapila.cloud/debts \
--header 'x-api-key: <api-key>' \
--header 'x-authorization-token: <api-key>'import requests
url = "https://tapipay-facade.homo.tapila.cloud/debts"
headers = {
"x-api-key": "<api-key>",
"x-authorization-token": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-api-key': '<api-key>', 'x-authorization-token': '<api-key>'}
};
fetch('https://tapipay-facade.homo.tapila.cloud/debts', 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://tapipay-facade.homo.tapila.cloud/debts",
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-api-key: <api-key>",
"x-authorization-token: <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://tapipay-facade.homo.tapila.cloud/debts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("x-authorization-token", "<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://tapipay-facade.homo.tapila.cloud/debts")
.header("x-api-key", "<api-key>")
.header("x-authorization-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://tapipay-facade.homo.tapila.cloud/debts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
request["x-authorization-token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"debtId": "debt_COLE-OCT-00042",
"externalRequestId": "<string>",
"status": "PENDING",
"amount": 123,
"amountPaid": 123,
"currency": "MXN",
"dueDate": "2023-12-25",
"allowOverduePayment": true,
"allowPartialPayments": true,
"autopay": true,
"createdAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"paymentMethods": [
"CASH"
],
"paymentUrl": "<string>",
"contact": {
"contactId": "<string>",
"externalClientId": "<string>",
"createdInline": true
},
"product": {
"productId": "<string>",
"name": "<string>",
"active": true,
"createdInline": true
}
}
],
"meta": {
"page": 2,
"limit": 250,
"total": 1,
"hasMore": true
},
"requestId": "<string>"
}Listar deudas
Devuelve tus deudas con filtros y paginación, de la más reciente a la más antigua. El listado no incluye deudas canceladas: para leerlas usa GET /debts/.
curl --request GET \
--url https://tapipay-facade.homo.tapila.cloud/debts \
--header 'x-api-key: <api-key>' \
--header 'x-authorization-token: <api-key>'import requests
url = "https://tapipay-facade.homo.tapila.cloud/debts"
headers = {
"x-api-key": "<api-key>",
"x-authorization-token": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-api-key': '<api-key>', 'x-authorization-token': '<api-key>'}
};
fetch('https://tapipay-facade.homo.tapila.cloud/debts', 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://tapipay-facade.homo.tapila.cloud/debts",
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-api-key: <api-key>",
"x-authorization-token: <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://tapipay-facade.homo.tapila.cloud/debts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("x-authorization-token", "<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://tapipay-facade.homo.tapila.cloud/debts")
.header("x-api-key", "<api-key>")
.header("x-authorization-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://tapipay-facade.homo.tapila.cloud/debts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
request["x-authorization-token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"debtId": "debt_COLE-OCT-00042",
"externalRequestId": "<string>",
"status": "PENDING",
"amount": 123,
"amountPaid": 123,
"currency": "MXN",
"dueDate": "2023-12-25",
"allowOverduePayment": true,
"allowPartialPayments": true,
"autopay": true,
"createdAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"paymentMethods": [
"CASH"
],
"paymentUrl": "<string>",
"contact": {
"contactId": "<string>",
"externalClientId": "<string>",
"createdInline": true
},
"product": {
"productId": "<string>",
"name": "<string>",
"active": true,
"createdInline": true
}
}
],
"meta": {
"page": 2,
"limit": 250,
"total": 1,
"hasMore": true
},
"requestId": "<string>"
}Autorizaciones
API key del API Gateway de Tapi. Requerida en todas las operaciones. Distinta por ambiente (desarrollo, homologación, producción).
Token TAPI JWT. Requerido en todas las operaciones. Se envía sin prefijo "Bearer". Ej: x-authorization-token: eyJhbGci...
Parámetros de consulta
Filtrar por estado. Valor inválido devuelve 400. Como el listado no incluye canceladas, CANCELLED siempre devuelve una lista vacía.
PENDING, PARTIALLY_PAID, PAID, OVERDUE, CANCELLED Filtrar por deudor
Filtrar por llave externa (deuda única)
Filtrar por lote o suscripción de origen
Inicio del rango de creación. Acepta fecha (YYYY-MM-DD) o date-time RFC 3339; otro formato devuelve 400. Una fecha sola cubre el día UTC completo desde 00:00:00.000Z. Un date-time se convierte a UTC y la precisión del filtro es diaria (se incluye el día UTC completo que lo contiene). Un createdAtFrom futuro sin createdAtTo devuelve una lista vacía.
"2026-09-24"
Fin del rango de creación, inclusivo. Acepta fecha (YYYY-MM-DD) o date-time RFC 3339; otro formato devuelve 400. Una fecha sola incluye el día UTC completo hasta 23:59:59.999Z, así que createdAtFrom y createdAtTo con la misma fecha devuelven las de ese día. Un date-time se convierte a UTC con precisión diaria (se incluye el día UTC que lo contiene; exactamente a las 00:00:00Z no incluye ese día). Sin createdAtTo, el rango llega hasta hoy. createdAtFrom posterior a createdAtTo devuelve 400 (createdAtFrom must be earlier than or equal to createdAtTo.).
"2026-09-24"
Monto mínimo en pesos (mayor o igual a 0, hasta 2 decimales; si no, 400)
x >= 0Monto máximo en pesos (mayor o igual a 0, hasta 2 decimales). Menor a minAmount devuelve 400.
x >= 0x >= 11 <= x <= 500Respuesta
Lista de deudas

