Saltar al contenido principal

Clientes — Crear y Actualizar

Crea clientes nuevos y actualiza los existentes con actualizaciones parciales.


Crear cliente​

POST/apidev/v1/clients
PermisoAPICLI_CLIENTS_WRITE
Límite de solicitudes10 solicitudes/min
Alta o actualización según external_code

Los clientes son únicos por external_code dentro de tu compañía. Si ya existe un cliente con ese mismo external_code, la solicitud no crea un duplicado: devuelve ese cliente existente, con created: false en la respuesta.

Cuando hay coincidencia, solo se actualizan name y zip_code con los valores que mandaste. El resto de los campos del cliente existente queda intacto — para cambiar los demás, encadená un Actualizar cliente con el id que te devolvió.

Si omitís external_code, se usa el name del cliente (en mayúsculas) como código externo — así que volver a dar de alta el mismo nombre también cae sobre el cliente existente.

Cuerpo de la solicitud​

CampoTipoRequeridoMáxDescripción
namestringSí200Nombre para mostrar del cliente.
external_codestringNo120Identificador del sistema externo.
statusstringNo10Estado del cliente.
documentstringNo60Número de documento.
document_typenumberNo—Identificador del tipo de documento.
business_namestringNo200Razón social.
tax_idstringNo60Número de identificación fiscal.
phonestringNo60Número de teléfono.
mobilestringNo60Teléfono móvil.
emailstringNo200Dirección de correo electrónico.
notesstringNo1000Notas de texto libre.
image_urlstringNo500URL de la imagen.
streetstringNo200Nombre de la calle.
door_numberstringNo20Número de puerta.
apartmentstringNo20Apartamento o unidad.
cornerstringNo200Esquina.
zip_codestringNo20Código postal.
latitudenumberNo—Coordenada de latitud.
longitudenumberNo—Coordenada de longitud.
country_idstringNo30ID del país.
department_idstringNo30ID del departamento.

Ejemplos de código​

curl -s -X POST "https://$TENANT/apidev/v1/clients" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT" \
-H "Content-Type: application/json" \
-d '{
"name": "Regional Distributors",
"business_name": "Regional Distributors S.A.",
"tax_id": "219900005018",
"email": "info@regionaldist.com",
"phone": "+59821009876",
"street": "Bvar. Artigas",
"door_number": "567",
"country_id": "1",
"department_id": "10"
}'

Campos de respuesta​

CampoTipoDescripción
idstringIdentificador único del cliente — el id del cliente nuevo, o el del cliente existente cuando la solicitud coincidió con uno por external_code.
createdbooleantrue cuando se creó un cliente nuevo; false cuando se actualizó uno existente con el mismo external_code.

Respuesta de ejemplo​

{
"success": true,
"data": {
"id": "982710394857200005",
"created": true
}
}

Actualizar cliente​

Actualiza un cliente existente. Solo se modifican los campos incluidos; los campos omitidos permanecen sin cambios. Enviá null para limpiar un campo que admita nulos.

Consultá Actualizaciones parciales para el patrón general.

PUT/apidev/v1/clients/{id}
PermisoAPICLI_CLIENTS_WRITE
Límite de solicitudes10 solicitudes/min

Parámetros de ruta​

ParámetroTipoRequeridoDescripción
idstringSíIdentificador único del cliente.

Cuerpo de la solicitud​

Se aceptan todos los campos de Crear cliente (ninguno requerido). Incluí solo los campos que quieras modificar.

Ejemplos de código​

curl -s -X PUT "https://$TENANT/apidev/v1/clients/982710394857200005" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT" \
-H "Content-Type: application/json" \
-d '{
"email": "new-info@regionaldist.com",
"phone": "+59821005555",
"notes": "Updated primary contact"
}'

Respuesta de ejemplo​

{
"success": true,
"data": {
"id": "982710394857200005",
"updated_fields": ["email", "phone", "notes"]
},
"meta": {}
}

Errores​

CódigoHTTPDescripción
VALIDATION_ERROR400Parámetros inválidos.
UNAUTHORIZED401tenant / Authorization / X-API-Key ausente, inválido o expirado
FORBIDDEN403El usuario no tiene el permiso requerido.
NOT_FOUND404Recurso no encontrado (endpoint de actualización).
RATE_LIMITED429Se superaron 10 solicitudes/min.
INTERNAL_ERROR500Error inesperado del servidor.