Acciones
#Clientes
La API permite consultar, crear, actualizar y desactivar clientes. Usa los identificadores id devueltos por Trowel; no admite identificadores externos.
#Operaciones
Las consultas requieren customers:read. Las mutaciones requieren customers:write.
GET /api/public/v1/customers
GET /api/public/v1/customers/{id}
POST /api/public/v1/customers
PUT /api/public/v1/customers/{id}
DELETE /api/public/v1/customers/{id}?concurrencyToken={concurrencyToken}
El listado admite code, taxIdentifier, active, search, modifiedSince, limit, cursor y sort.
#Crear y actualizar
Para crear un cliente:
{
"code": "CLI-001",
"businessName": "Construcciones Norte SL",
"commercialName": "Construcciones Norte",
"taxIdentifier": "B12345678",
"active": true
}
La creación devuelve 201 con el cliente, su id y su concurrencyToken. businessName es obligatorio.
Para actualizar, envía todos los campos editables y el último concurrencyToken recibido:
{
"code": "CLI-001",
"businessName": "Construcciones Norte SL",
"commercialName": "Construcciones Norte",
"taxIdentifier": "B12345678",
"active": true,
"concurrencyToken": "<token de la última lectura o escritura>"
}
Si el cliente ha cambiado desde la última lectura, la API devuelve 409 CustomerConcurrencyConflict e incluye el token actual en currentConcurrencyToken.
Los códigos y NIF duplicados devuelven 409 CustomerCodeAlreadyExists o 409 CustomerTaxIdentifierAlreadyExists. La API no enlaza automáticamente una empresa existente.
#Desactivar
DELETE no borra la empresa. Desactiva el cliente y devuelve 204. Debes enviar el último concurrencyToken como parámetro de consulta. Un cliente inexistente o que no sea de tipo cliente devuelve 404 CustomerNotFound.
