API e integraciones con CRM, Make y n8n
Conecta tu CRM o tu ERP con Sattotal usando claves de API: sincroniza clientes y proveedores de manera automática y segura
La API de Sattotal permite que otro programa —tu CRM, tu ERP, Make, n8n, Zapier o un script propio— lea y cree clientes y proveedores en tu organización sin que nadie tenga que importar un CSV manualmente. Se controla con claves de API que el administrador crea en Configuración → API, cada una con su propio nombre y con permisos por recurso, y que se pueden revocar en cualquier momento. Aquí encontrarás qué hace, cómo crear la clave, cómo llamar a la API y cómo armar una sincronización con Make paso a paso.
Integra tu CRM y tus automatizaciones
Cualquier herramienta que pueda hacer una solicitud HTTP (Make, n8n, Zapier, tu propio CRM o ERP) puede leer, crear y actualizar clientes y proveedores.
Claves con nombre propio y permisos
Una clave para cada integración y, dentro de cada clave, un permiso por recurso: puedes otorgar lectura de proveedores sin otorgar escritura de clientes. Puedes tener hasta 10 claves activas por organización.
Sincronización solo de lo que cambió
Con el parámetro actualizadoDesde solo se descargan los clientes o proveedores que cambiaron desde la última ejecución: ideal para un escenario que corre cada pocos minutos.
Segura desde el diseño
La clave se muestra una sola vez y se guarda cifrada de manera irreversible. Cada clave accede únicamente a los datos de su organización y se puede revocar al instante.
Quiénes pueden usarla
Las claves las crean y revocan los administradores de la organización. La API está incluida en los planes de pago (Basic, Pro y Enterprise) y durante el periodo de prueba; en el plan gratuito la pantalla muestra un candado con la opción de cambiar de plan. Una clave siempre actúa a nombre de la organización, no de una persona: no hereda los permisos de ningún técnico ni aparece como usuario dentro del equipo.
Cómo crear una clave de API
Ingresa a Configuración → API
Desde el menú lateral, entra a Configuración y abre la tarjeta «API». Verás la lista de claves de tu organización (activas y revocadas) y una tarjeta «Cómo conectar» con la URL base y un ejemplo.
Haz clic en «Nueva clave»
Asígnale un nombre que identifique la integración («CRM de la tienda», «Make», «n8n»). Así, si algún día tienes que revocarla, sabrás cuál es.
Selecciona los permisos
Marca los recursos que necesite la integración —Clientes, Proveedores o ambos— y para cada uno selecciona «Solo lectura» (consultar) o «Lectura y escritura» (consultar, crear, actualizar y archivar). Un recurso sin marcar es un recurso al que la clave no llega. Selecciona el mínimo que la integración necesite.
Copia la clave y resguárdala en tu herramienta
La clave completa (empieza con sat_) se muestra una sola vez. Cópiala con el botón y pégala en Make, n8n o tu CRM. Si la pierdes no hay forma de recuperarla: se revoca y se crea una nueva.
Configuración → API: listado de claves y una clave recién creada
CRM Make
sat_Ab3k…x9Zq
n8n
sat_Qm7t…p2Lk
Clave creada
sat_Ab3k9Zq2Xv8Lp1Mn4Rt7Wy0Cd5Fg6Hj3Kl8Sx9ZqCopiarEsta es la única vez que verás la clave completa. Si la pierdes, revócala y crea una nueva.
Qué permisos tiene una clave
Solo lectura
Puede listar y consultar ese recurso. Si intenta crear, modificar o archivar, recibe un error 403 con el código PERMISO_DENEGADO y el permiso que le hace falta.
Lectura y escritura
Además de consultar, puede crear, actualizar y archivar dentro de ese recurso. Es el permiso que requiere una sincronización en ambos sentidos.
Los permisos se otorgan por recurso
Los permisos son por recurso, y ya se notó: al agregar los proveedores, las claves que ya existían —todas de clientes— NO obtuvieron acceso a ellos. Hubo que marcarlo. Lo mismo va a pasar con cualquier recurso que se agregue después: una integración nunca ve más de lo que le otorgaste.
Cómo autenticarte
Envía la clave en cada solicitud, de servidor a servidor, en el encabezado Authorization: Bearer sat_…. Si tu herramienta no permite encabezados de autorización, también se acepta en el encabezado x-api-key. La URL base es la de tu Sattotal seguida de /api/v1 (la tienes lista para copiar en la pantalla de Configuración → API).
GET /api/v1/me Authorization: Bearer sat_Ab3k9…x9Zq
La API no tiene CORS a propósito: está pensada para servidores y herramientas de automatización, no para sitios web ni apps que corran en el navegador de tus clientes. Una clave nunca debe llegar a un navegador.
Qué puedes hacer (endpoints)
Todas las respuestas tienen la forma success + data (y pagination en las listas). A un cliente puedes pedirlo por su id o por su código (CLI-0007); a un proveedor, únicamente por su id.
| Método | Ruta | Para qué sirve | Permiso requerido |
|---|---|---|---|
| GET | /me | Devuelve tu organización y la clave con la que estás llamando. Úsalo para «probar la conexión» en Make o n8n. | Cualquier permiso |
| GET | /clientes | Lista paginada de clientes. Filtros: busqueda, tipo, activo y actualizadoDesde. Si no envías activo, devuelve también los archivados. | Lectura |
| POST | /clientes | Crea un cliente con las mismas reglas que el formulario (identificación fiscal según tu país, sin duplicados de identificación fiscal ni de email). | Escritura |
| GET | /clientes/{id} | Devuelve un cliente por su id o por su código. | Lectura |
| PATCH | /clientes/{id} | Actualiza únicamente los campos enviados. PUT se acepta como sinónimo. | Escritura |
| DELETE | /clientes/{id} | Archiva el cliente (activo = false). No borra nada y puede repetirse sin error. | Escritura |
| GET | /proveedores | Lista paginada de proveedores. Filtros: busqueda, activo, tipoProveedor, codigo y actualizadoDesde. Si no envías activo, devuelve también los archivados. | Lectura |
| POST | /proveedores | Crea un proveedor. Únicamente el nombre es obligatorio. Si ya hay otro con la misma identificación fiscal o el mismo nombre, responde 409 e incluye el id del existente. | Escritura |
| GET | /proveedores/{id} | Devuelve un proveedor a partir de su id. Aquí el código NO sirve: revisa el aviso que viene más abajo. | Lectura |
| PATCH | /proveedores/{id} | Actualiza únicamente los campos enviados. La lista de contactos se reemplaza completa. PUT se acepta como sinónimo. | Escritura |
| DELETE | /proveedores/{id} | Archiva el proveedor (activo = false). No borra nada y puede repetirse sin error. | Escritura |
| GET | /reparaciones | Lista paginada de órdenes, de la entrada más reciente a la más antigua. Filtros: cliente, estado, entradaDesde, entradaHasta y actualizadoDesde. | Lectura |
| GET | /reparaciones/{id} | Devuelve una orden por su id o por su número de orden. | Lectura |
| GET | /clientes/{id}/reparaciones | Las órdenes de un cliente (por su id o su código), con los mismos filtros. | Lectura |
| GET | /clientes/{id}/resumen | Resumen de actividad del cliente: cuántas reparaciones tiene (en total, abiertas y por estado), cuánto se le ha cotizado y cuándo vino por última vez. | Lectura |
Campos de un cliente
Los campos son los mismos que en la ficha del cliente: nombre y tipo (particular o empresa) son obligatorios; nif_cif, apellidos, razonSocial, email, telefono, telefonoSecundario, direccion (calle, numero, piso, codigoPostal, localidad, provincia, pais) y notas son opcionales. La identificación fiscal se guarda en mayúsculas y el email en minúsculas. En la respuesta todas las claves están siempre presentes, con null cuando no hay valor, para que el mapeo de campos en tu herramienta no falle. Atención con el nombre: nombre es el nombre de pila (o el nombre comercial si es una empresa) y el apellido va por separado, en apellidos, en plural.
Campos que la API no reconoce
Si el cuerpo incluye una clave que no existe (por ejemplo firstName en lugar de nombre, o apellido en singular en lugar de apellidos), la solicitud no se rechaza, pero ese dato no se guarda. Para que no pase inadvertido, la respuesta al crear y editar clientes incluye avisos.camposIgnorados con la lista de esas claves; las de la dirección llevan su ruta, como direccion.ciudad. Si aparece, revisa el mapeo de campos de tu integración. Los campos que devuelve la propia API (id, codigo, createdAt…) no generan aviso, así que puedes leer un cliente, modificarlo y enviarlo completo de vuelta.
POST /api/v1/clientes
{ "firstName": "Daniel", "nombre": "Florea", "tipo": "particular" }
201 Created
{
"success": true,
"data": { "nombre": "Florea", "apellidos": null, … },
"avisos": { "camposIgnorados": ["firstName"] }
}Ejemplo: cómo crear un cliente
Solicitud
POST /api/v1/clientes
Authorization: Bearer sat_Ab3k9…x9Zq
Content-Type: application/json
{
"nombre": "Daniel",
"apellidos": "Florea",
"tipo": "empresa",
"razonSocial": "Assista Tech SRL",
"nif_cif": "RO12345678",
"codigoPersonalizado": "801",
"email": "daniel@example.com",
"telefono": "+40 700 000 000",
"direccion": { "localidad": "București", "pais": "RO" }
}Respuesta (código 201)
{
"success": true,
"data": {
"id": "64b0…0001",
"codigo": "CLI-0042",
"codigoPersonalizado": "801",
"codigoVisible": "801",
"tipo": "empresa",
"nombre": "Daniel",
"apellidos": "Florea",
"razonSocial": "Assista Tech SRL",
"nif_cif": "RO12345678",
"email": "daniel@example.com",
"activo": true,
"createdAt": "2026-09-18T10:00:00.000Z",
"updatedAt": "2026-09-18T10:00:00.000Z"
}
}Proveedores
La API no se limita a los clientes: también expone el catálogo de proveedores, con los mismos cinco endpoints, los mismos códigos de error y la misma sincronización incremental. Se trata únicamente del catálogo: las compras y las facturas de proveedor permanecen donde estén hoy, en tu ERP o en Sattotal.
Campos de un proveedor
Solo nombre es obligatorio. Son opcionales codigo, cif, email, telefono, telefonoSecundario, web, direccion (en una sola línea; aquí no es un objeto como en clientes), ciudad, provincia, codigoPostal, pais, contactos, tipoProveedor (general, producto, servicio, logistica u otro), formaPago, plazoPago (en días; 0 significa de contado), cuentaCliente y notas. Cada contacto lleva nombre —obligatorio—, cargo, telefono, email y notas; los contactos no tienen identificador propio.
Cómo se actualiza la lista de contactos
La lista que mandas REEMPLAZA a la anterior. Si mandas una lista vacía, se eliminan todos los contactos; si no mandas la clave (o mandas null), quedan tal como estaban. Gracias a eso puedes leer un proveedor, cambiarle un campo y devolverlo completo sin efectos inesperados.
Solicitud
POST /api/v1/proveedores
Authorization: Bearer sat_Ab3k9…x9Zq
Content-Type: application/json
{
"nombre": "Distribuciones Norte",
"cif": "B12345678",
"tipoProveedor": "producto",
"plazoPago": 30,
"cuentaCliente": "C-4471",
"contactos": [
{ "nombre": "Ana Ruiz", "cargo": "Ventas", "email": "ana@norte.es" }
]
}Respuesta (código 201)
{
"success": true,
"data": {
"id": "64b0…0009",
"codigo": "PROV-004",
"nombre": "Distribuciones Norte",
"cif": "B12345678",
"tipoProveedor": "producto",
"plazoPago": 30,
"cuentaCliente": "C-4471",
"contactos": [
{ "nombre": "Ana Ruiz", "cargo": "Ventas",
"telefono": null, "email": "ana@norte.es", "notas": null }
],
"excluidoRecargoEquivalencia": false,
"activo": true,
"createdAt": "2026-09-19T08:00:00.000Z",
"updatedAt": "2026-09-19T08:00:00.000Z"
}
}Los datos bancarios no se exponen en la API
El IBAN y las cuentas bancarias del proveedor no se devuelven ni se aceptan, y es a propósito: si alguna clave se filtrara, no serviría para el fraude de cambio de cuenta, el más habitual con proveedores. Lo que sí se devuelve es cuentaCliente, que es TU número de cliente ante ese proveedor y con el que un ERP concilia sus compras.
El recargo de equivalencia solo se puede leer
El campo excluidoRecargoEquivalencia se devuelve y puedes reenviarlo con el mismo valor (para que puedas mandar el objeto completo), pero modificarlo por API responde 400: define si a tus compras con ese proveedor se les aplica el recargo, es decir, mueve la base imponible de tus facturas de compra. Se ajusta desde la ficha del proveedor. Fuera de España no produce ningún efecto.
El código de proveedor no sirve para localizarlo
A diferencia del código de cliente, el del proveedor (PROV-004) no es único: puede repetirse incluso dentro de tu propio taller. Por eso GET /proveedores/{id} acepta únicamente el id. Si tu ERP solo guarda el código, apóyate en el filtro de la lista: GET /proveedores?codigo=PROV-004 devuelve todos los que coincidan y tú decides cuál es.
Órdenes de reparación (solo lectura)
La API también permite consultar las órdenes de reparación: número de orden, estado, fechas, el equipo (tipo, marca, modelo, número de serie, IMEI) y la cotización. Es solo lectura: las órdenes se siguen creando y cambiando de estado desde Sattotal, que es donde se firman el comprobante de recepción y la entrega. La clave necesita el recurso Reparaciones marcado; las claves de clientes o proveedores no tienen acceso a ellas.
Campos de la orden
Cada orden trae numeroFicha, estado, prioridad, ubicacion, averiaDeclarada, diagnostico, las fechas del ciclo (entrada, inicio y fin del diagnóstico y de la reparación, aviso al cliente, entrega y ultimoCambioEstado, cuándo pasó a su estado actual), un resumen del cliente (id, codigo, codigoVisible, nombre, apellidos, razonSocial), el equipo (id, codigo, tipo, marca, modelo, numeroSerie, imei, color), la cotización (numero, total, estado, fechaEnvio y fechaRespuesta, o null si no tiene), el técnico asignado (solo su nombre) y plazoEntregaEstimado, el plazo que se le indicó al cliente en el comprobante de recepción. Nunca se exponen las notas internas, las firmas, las fotos, los documentos ni las contraseñas del equipo.
Solicitud
GET /api/v1/clientes/CLI-0042/reparaciones?estado=reparado Authorization: Bearer sat_Ab3k9…x9Zq
Respuesta (código 201)
{
"success": true,
"data": [{
"id": "64b0…0042",
"numeroFicha": "ORD-2026-0042",
"estado": "reparado",
"prioridad": "normal",
"averiaDeclarada": "No carga",
"diagnostico": "Conector de carga dañado",
"fechas": {
"entrada": "2026-09-20T09:00:00.000Z",
"finReparacion": "2026-09-22T17:30:00.000Z",
"entrega": null
},
"cliente": { "id": "64b0…0001", "codigoVisible": "801", "nombre": "Daniel" },
"dispositivo": {
"tipo": "movil", "marca": "Apple", "modelo": "iPhone 13",
"numeroSerie": "F2LXX0000", "imei": "356789012345678"
},
"presupuesto": { "numero": "PRES-2026-0010", "total": 89.9, "estado": "aprobado" },
"tecnico": { "nombre": "Andrei Popescu" },
"plazoEntregaEstimado": "3 días laborables"
}],
"pagination": { "total": 1, "page": 1, "limit": 25, "totalPages": 1 }
}Encuentra al cliente por el teléfono desde el que llama
Si tu CRM o tu conmutador abre la ficha del cliente al entrar una llamada, usa GET /clientes?telefono=<número>. Busca en el teléfono principal y en el secundario, sin importar cómo esté escrito: ignora espacios, guiones y el prefijo internacional de tu país (+52 o 0052). Así «55 1234 5678» encuentra a un cliente guardado como «+52 55-1234-5678». Se necesitan al menos 6 dígitos.
Resumen del cliente para tu CRM
GET /clientes/{id}/resumen devuelve en una sola llamada lo que suele mostrar un CRM en la ficha del cliente: totalReparaciones, reparacionesAbiertas (el equipo sigue en el taller), porEstado, totalPresupuestado y totalPresupuestosAprobados (en la moneda del taller, que viene en moneda), primeraReparacion, ultimaReparacion y ultimaActividad (el último cambio en cualquiera de sus órdenes). Necesita el recurso Reparaciones, igual que las órdenes.
Solicitud
GET /api/v1/clientes?telefono=0722 123 456
→ { "data": [{ "id": "64b0…0001", "codigoVisible": "801", "telefono": "+40 722 123 456", … }] }
GET /api/v1/clientes/801/resumen
{
"success": true,
"data": {
"cliente": { "id": "64b0…0001", "codigoVisible": "801" },
"moneda": "RON",
"totalReparaciones": 7,
"reparacionesAbiertas": 1,
"porEstado": { "entregado": 6, "en_reparacion": 1 },
"totalPresupuestosAprobados": 1240.5,
"ultimaReparacion": "2026-10-02T09:15:00.000Z",
"ultimaActividad": "2026-10-06T16:40:00.000Z",
…
}
}Sincroniza solo lo que cambió
No es necesario descargar todo en cada ejecución. Guarda en tu herramienta la fecha y hora de la última corrida y solicita únicamente los clientes o proveedores modificados desde entonces con el parámetro actualizadoDesde. La respuesta viene ordenada por fecha de modificación ascendente y con un criterio de desempate estable, así que puedes paginarla sin saltarte registros. Los archivados también aparecen (con activo = false), para que tu CRM pueda reflejar el archivado.
GET /api/v1/clientes?actualizadoDesde=2026-09-18T10:00:00Z&limit=100&page=1 Authorization: Bearer sat_Ab3k9…x9Zq
Primera ejecución
Recorre GET /clientes con limit=100 y page=1, 2, 3… hasta agotar totalPages. Guarda la hora de inicio.
Ejecuciones siguientes
Solicita GET /clientes?actualizadoDesde=<hora guardada> y procesa solo lo que llegue. Vuelve a guardar la hora de inicio de esta ejecución.
Vincula, no dupliques
Guarda el id de Sattotal junto al registro de tu CRM. Si al crear recibes un 409 DUPLICADO, la respuesta incluye existenteId: vincula ese registro en lugar de crear otro.
Paginación y filtros de búsqueda
Las listas aceptan page (desde 1) y limit (25 de forma predeterminada, 100 como máximo; si pides más se recorta a 100). El campo busqueda busca en nombre, apellidos, razón social, identificación fiscal, email, código y teléfono.
Códigos de error y cómo resolverlos
Todas las respuestas de error incluyen success: false, un texto orientativo y un code estable pensado para tomar decisiones por programa. Estos son los que puedes recibir:
NO_AUTORIZADOFalta la clave, tiene un formato que no es el nuestro o no existe. Revisa el encabezado Authorization.
CLAVE_REVOCADALa clave era válida, pero un administrador la revocó. Genera una nueva en Configuración → API y reemplázala en tu herramienta.
PLAN_REQUERIDOLa organización está en el plan gratuito. La API vuelve a funcionar en cuanto cambias a un plan de pago.
PERMISO_DENEGADOLa clave no cuenta con el permiso necesario para esa operación. La respuesta indica en ambitoRequerido cuál le falta: crea una clave que lo tenga.
NO_ENCONTRADONo existe ningún cliente ni proveedor con ese id en tu organización. Los de otras organizaciones nunca son visibles, y no se distingue «no existe» de «no es tuyo».
DUPLICADOYa existe un registro con ese dato: identificación fiscal o email en clientes; identificación fiscal, nombre o código en proveedores. La respuesta incluye campo y existenteId para que puedas vincularlo en lugar de crear otro.
VALIDACIONAlgún campo no pasa la validación (o el JSON está mal formado). En details viene el campo y el motivo, igual que en el formulario.
IDENTIFICADOR_FISCAL_REQUERIDOEse cliente necesita identificación fiscal: en tu país es obligatoria para el tipo de cliente enviado (por ejemplo, siempre para empresas).
RATE_LIMITDemasiadas solicitudes. Espera los segundos que indique el encabezado Retry-After y vuelve a intentar.
API_DESACTIVADALa API está desactivada temporalmente por mantenimiento. Vuelve a intentar más tarde.
Límites de uso
120 solicitudes por minuto por clave (más que suficiente para una sincronización periódica; frena un bucle accidental). 10 claves activas por organización. Las listas devuelven como máximo 100 registros por página. Si la organización está en el plan gratuito con el cupo mensual agotado, la creación de clientes se bloquea igual que en la aplicación.
Paso a paso: cómo sincronizar clientes con Make
Un escenario típico: cada 15 minutos, llevar a tu CRM los clientes y proveedores nuevos o modificados en Sattotal. En n8n es equivalente con el nodo HTTP Request y un nodo Schedule.
Genera la clave en Sattotal
Ve a Configuración → API → Nueva clave. Elige «Solo lectura» si únicamente vas a leer, o «Lectura y escritura» si también vas a crear clientes desde el CRM. Copia la clave.
Módulo HTTP «Make a request»
URL: tu URL base + /clientes. Método GET. Encabezado Authorization con el valor Bearer y tu clave. Marca «Parse response» para trabajar con el JSON.
Verifica la conexión
Antes que nada, ejecuta una vez una solicitud a /me: si devuelve tu organización y el nombre de la clave, la autenticación está correcta.
Agrega el filtro incremental
Guarda la fecha de la última ejecución en un Data store o en una variable y pásala como actualizadoDesde en la URL. Programa el escenario para que corra cada 15 minutos.
Mapea los campos a tu CRM
Itera data[] y mapea id, codigo, nombre, apellidos, email, telefono, nif_cif y direccion. Guarda el id de Sattotal en tu CRM para actualizar en lugar de duplicar.
Para crear clientes desde el CRM, agrega otro módulo HTTP con método POST a /clientes y el cuerpo JSON del cliente. Si recibes 409, usa existenteId para vincularlo.
Recomendaciones de seguridad
Una clave para cada integración
Así puedes revocar una sin afectar a las demás, y en la lista ves cuándo se usó cada una por última vez.
Jamás en el navegador ni en un repositorio público
Guárdala en el almacén de credenciales de tu herramienta (conexiones de Make, credenciales de n8n, variables de entorno). Si la subes a un repositorio o a un sitio web, considérala filtrada.
Si se filtra, revócala y crea otra
La revocación es inmediata: la clave anterior empieza a recibir 401 CLAVE_REVOCADA. Actualiza la nueva en tu herramienta y listo.
Especificación técnica (API)
La referencia técnica completa (rutas, parámetros, esquemas y códigos de error) está publicada en formato abierto en /api/v1/openapi.json, sin necesidad de clave. De forma predeterminada se muestra en español de España; agrega ?lang= con tu idioma para verla adaptada (por ejemplo /api/v1/openapi.json?lang=es-LA, o ?lang=en para tenerla en inglés). Puedes importarla en Postman, Insomnia, Make o n8n para tener todas las llamadas listas.
Preguntas frecuentes
Perdí la clave, ¿puedo volver a verla?
No. Solo se muestra al crearla y después se guarda de manera irreversible. Revócala en Configuración → API y crea una nueva.
¿Hay webhooks para que Sattotal le avise a mi CRM cuando algo cambia?
Todavía no. La forma recomendada es consultar periódicamente con el parámetro actualizadoDesde, que devuelve solo lo que cambió.
¿A qué datos da acceso la API?
Clientes y proveedores: listar, crear, consultar, actualizar y archivar. Los permisos son por recurso, así que una clave creada antes de que existieran los proveedores no llega a ellos hasta que un administrador se los marque. Además, las órdenes de reparación en solo lectura (estado, fechas, equipo y cotización), con su propio permiso.
¿Puedo eliminar un cliente por API?
No, únicamente archivarlo (activo = false), igual que en la aplicación. Aplica tanto a clientes como a proveedores. Un registro archivado sigue apareciendo en la sincronización para que tu CRM lo pueda reflejar.
¿La API está incluida en el plan gratuito?
No. Está incluida en Basic, Pro y Enterprise y durante el periodo de prueba. En el plan gratuito puedes seguir viendo y revocando las claves que ya creaste.
Solo me llega el apellido del cliente, ¿por qué no se guarda el nombre?
Casi siempre es el mapeo de campos: el nombre de pila debe ir en nombre y el apellido en apellidos. Si tu herramienta envía el nombre con otra clave (firstName, name, apellido…), la API la descarta y te lo indica en avisos.camposIgnorados de la respuesta. Corrige el mapeo y vuelve a enviar el cliente con un PATCH.
¿Puedo encontrar al cliente con el número desde el que me está llamando?
Sí. Solicita GET /api/v1/clientes?telefono= con el número tal como te llega: no importa que traiga prefijo internacional, espacios o guiones, y también busca en el teléfono secundario. Con su id puedes solicitar después sus órdenes (/clientes/{id}/reparaciones) y su resumen (/clientes/{id}/resumen).
