Saltar al contenido principal

GET /v1/clients

Devuelve los clientes de tu empresa, ordenados por nombre (A→Z).

Sirve para recuperar el id de un cliente que ya creaste sin tener que guardarlo tú — por ejemplo, antes de emitir una venta exonerada.

Solicitud

curl "https://integration.contadito.com/v1/clients?page=1&limit=50" \
-H "Authorization: Bearer $CONTADITO_API_KEY"
ParámetroUbicaciónTipoReq.Notas
pagequerynumberNoPágina, empezando en 1. Requiere también limit.
limitquerynumberNoClientes por página. Requiere también page.
información

La paginación es opcional, pero es todo o nada

Sin page ni limit se devuelven todos los clientes de tu empresa. La paginación solo se aplica cuando mandas los dos: si mandas únicamente page, se ignora y recibes la lista completa igual.

Ambos deben ser enteros mayores o iguales a 1. Un 0, un negativo o un valor no numérico da 400 VALIDATION_FAILED.

Respuesta 200

{
"clients": [
{
"id": 1042,
"clientName": "Servicios Digitales S. de R.L.",
"email": "facturacion@cliente.hn",
"legalId": "08011999123456",
"phone": "+504 9999-9999",
"address": "Tegucigalpa, Honduras",
"createdAt": "2026-08-10T15:04:05.000Z"
},
{
"id": 1108,
"clientName": "Zapatería La Buena S.A.",
"email": "compras@labuena.hn",
"legalId": null,
"phone": null,
"address": null,
"createdAt": "2026-08-11T09:12:00.000Z"
}
],
"count": 2
}
CampoTipoDescripción
clientsarrayLos clientes de esta página. Cada elemento tiene la misma forma que la respuesta de POST /v1/clients.
countnumberTotal de clientes de tu empresa, no el tamaño de esta página.
aviso

count es el total, no lo que viene en clients

Con ?page=1&limit=50 sobre 380 clientes, clients trae 50 y count trae 380. Ese es el número que usas para calcular cuántas páginas hay: Math.ceil(count / limit).

La respuesta es un objeto, no un arreglo suelto, justamente para poder agregar metadatos de paginación más adelante sin romper el contrato.

Alcance de la consulta

La consulta se limita en SQL a la empresa de tu API key: devuelve tus clientes y no recibe ningún parámetro para cambiar ese alcance.

Errores

HTTPcodeCausa
400VALIDATION_FAILEDpage o limit no es un entero ≥ 1.
401MISSING_API_KEY / INVALID_API_KEYCredencial ausente o inválida.
403INTEGRATION_NOT_ENABLEDLa empresa no tiene la integración habilitada.

Ver el catálogo completo de errores.

Recorrer todas las páginas

async function todosLosClientes(limit = 100) {
const clientes = [];
let page = 1;

for (;;) {
const res = await fetch(
`${BASE}/v1/clients?page=${page}&limit=${limit}`,
{headers: {Authorization: `Bearer ${process.env.CONTADITO_API_KEY}`}},
);
const {clients, count} = await res.json();

clientes.push(...clients);
if (clientes.length >= count || clients.length === 0) return clientes;
page++;
}
}
consejo

No lo llames antes de cada factura

Este endpoint no filtra por RTN ni por nombre: te devuelve la lista. Si la usas para resolver un cliente en cada venta, estás bajando todo el padrón por factura.

Lo correcto: guarda el id de Contadito junto a tu propio id de cliente cuando lo creas, y usa este endpoint para la carga inicial, para reconciliar, o para recuperarte de un id perdido. El filtrado hazlo de tu lado.