GET
customers:read/api/public/v1/customersParámetros
limitNúmero máximo de elementos por página. Por defecto 50, máximo 200.
cursorCursor opaco para continuar desde la respuesta anterior.
modifiedSinceIncluye registros creados o modificados después de esta fecha, interpretada en el timezone del tenant.
sortOrden de los resultados. Antepón - para orden descendente.
code-codebusinessName-businessNametaxIdentifier-taxIdentifiercreatedAt-createdAtmodifiedAt-modifiedAtcodeCódigo exacto.
taxIdentifierIdentificador fiscal.
activeFiltra por estado activo.
searchBúsqueda textual.
Respuesta
200Página de clientes.
PublicCustomer
Cliente
Representación pública de un cliente.
PropiedadTipoDescripción
idobligatoriouuidIdentificador interno estable.codestring | nullCódigo del proveedor.businessNameobligatoriostringRazón social.commercialNamestring | nullNombre comercial.taxIdentifierstring | nullIdentificador fiscal.activeobligatoriobooleanEstado activo.createdAtobligatoriodate-timeFecha de creación.modifiedAtobligatoriodate-timeÚltima modificación.concurrencyTokenobligatoriostringToken opaco de concurrencia.Ejemplo JSON
{
"id": "a4c7603a-8c87-46c8-a3f5-09fbbe79f82e",
"code": "CLI-001",
"businessName": "Cliente SL",
"commercialName": "Cliente",
"taxIdentifier": "B87654321",
"active": true,
"createdAt": "2026-10-10T12:00:00",
"modifiedAt": "2026-10-10T12:00:00",
"concurrencyToken": "ct_customer_example"
}Ejemplo de respuesta
{
"items": [
{
"id": "a4c7603a-8c87-46c8-a3f5-09fbbe79f82e",
"code": "CLI-001",
"businessName": "Cliente SL",
"commercialName": "Cliente",
"taxIdentifier": "B87654321",
"active": true,
"createdAt": "2026-10-10T12:00:00",
"modifiedAt": "2026-10-10T12:00:00",
"concurrencyToken": "ct_customer_example"
}
],
"nextCursor": "eyJ2ZXJzaW9uIjoxLCJvZmZzZXQiOjUwfQ",
"hasMore": true
}Errores
400Solicitud incorrectaapplication/json401Autenticación inválida o no proporcionadaapplication/json403Permisos insuficientesapplication/json404Recurso no encontradoapplication/json409Conflicto con el estado actualapplication/json410Recurso ya no disponibleapplication/json422Error de validaciónapplication/json429Límite de solicitudes excedidoapplication/jsonVer modelo de error
PublicApiError
Error de API
Formato estable de los errores públicos.
PropiedadTipoDescripción
statusobligatoriointegerCódigo HTTP.codeobligatoriostringCódigo estable para tratamiento automático.messageobligatoriostringMensaje legible.correlationIdobligatoriostringIdentificador para soporte y trazabilidad.currentConcurrencyTokenstring | nullToken actual cuando existe un conflicto.validationErrorsobject<string,string[]>Errores agrupados por campo.Ejemplo JSON
{
"status": 422,
"code": "validation_error",
"message": "The request is invalid.",
"correlationId": "01J9EXAMPLE",
"validationErrors": {
"unitCode": [
"The unit does not exist."
]
}
}