Gestión de Contactos
CREAR O ACTUALIZAR CONTACTOS DE CLIENTE
Sección titulada «CREAR O ACTUALIZAR CONTACTOS DE CLIENTE»CABECERA
Sección titulada «CABECERA»Endpoint para registrar o actualizar contactos (socios) de un cliente. Si un contacto con el mismo nombre ya existe, se actualiza; si no existe, se inserta como nuevo. Este endpoint solo funciona para clientes.
Endpoint: /api/persona/socio
- POST - Para crear contactos
- PUT - Para actualizar contactos
JSON de Ejemplo (Payload)
Sección titulada «JSON de Ejemplo (Payload)»{ "fl_cliente": 1, "cliente_synergy_id": "1234", "contactos": [ { "nombre": "María González", "telefono": "987654321", "email": "maria@ejemplo.com", "otros": "Gerente de Compras" }, { "nombre": "Carlos Ruiz", "telefono": "965432187", "email": "carlos@ejemplo.com", "otros": "Supervisor de Logística" } ]}Validaciones Detalladas
Sección titulada «Validaciones Detalladas»Campos Principales
Sección titulada «Campos Principales»| Atributo | Valor Esperado | Tipo de dato | Requisito | Longitud |
|---|---|---|---|---|
| fl_cliente | Debe ser 1 (este endpoint solo funciona para clientes) | Integer | obligatorio | 1 exacto |
| cliente_synergy_id | Identificador único del cliente en Synergy | String | obligatorio | 1 hasta 30 |
| contactos | Array de objetos con información de contactos | Array | obligatorio | mínimo 1 |
Estructura de Cada Contacto (Objeto dentro del Array)
Sección titulada «Estructura de Cada Contacto (Objeto dentro del Array)»| Atributo | Valor Esperado | Tipo de dato | Requisito | Longitud |
|---|---|---|---|---|
| nombre | Nombre completo del contacto | String | obligatorio | 1 hasta 100 |
| telefono | Número de teléfono del contacto | String | obligatorio | 9 hasta 15 |
| Email del contacto (debe ser válido) | String | opcional | 1 hasta 100 | |
| otros | Información adicional del contacto (cargo, área, etc.) | String | opcional | 1 hasta 100 |
RESPUESTA EXITOSA
Sección titulada «RESPUESTA EXITOSA»Código HTTP 201
Sección titulada «Código HTTP 201»{ "codigo_http": 201, "estado": "success", "titanic_id": 123, "contactos_insertados": 1, "contactos_actualizados": 1, "total_procesados": 2, "mensaje": "Contactos del cliente procesados correctamente"}POSIBLES ERRORES DE VALIDACIÓN
Sección titulada «POSIBLES ERRORES DE VALIDACIÓN»1. Método HTTP No Permitido - Código 405
Sección titulada «1. Método HTTP No Permitido - Código 405»Escenario: Se utiliza un método diferente a POST o PUT
{ "codigo_http": 405, "estado": "method_not_allowed", "mensaje": "Método no permitido. Use POST o PUT."}2. Error de Validación de Campos - Código 400
Sección titulada «2. Error de Validación de Campos - Código 400»Escenario: Los datos enviados no cumplen con las reglas de validación
{ "codigo_http": 400, "estado": "validation_error", "mensaje": "Error en la validación", "detalles": { "fl_cliente": "El campo fl_cliente es requerido", "cliente_synergy_id": "El campo cliente_synergy_id es requerido", "contactos": "El campo contactos es requerido" }}3. Solo Funciona para Clientes - Código 400
Sección titulada «3. Solo Funciona para Clientes - Código 400»Escenario: El flag fl_cliente no es 1
{ "codigo_http": 400, "estado": "validation_error", "mensaje": "Este endpoint solo funciona para clientes (fl_cliente debe ser 1)"}4. Contactos No es un Array - Código 400
Sección titulada «4. Contactos No es un Array - Código 400»Escenario: El campo contactos no es un array o está vacío
{ "codigo_http": 400, "estado": "validation_error", "mensaje": "El campo contactos debe ser un array con al menos un contacto"}5. Error en Validación de Contacto Específico - Código 400
Sección titulada «5. Error en Validación de Contacto Específico - Código 400»Escenario: Un contacto del array no cumple con las validaciones
{ "codigo_http": 400, "estado": "validation_error", "mensaje": "Error en la validación del contacto índice 0", "detalles": { "nombre": "El campo nombre es requerido", "telefono": "El campo telefono debe tener entre 9 y 15 caracteres", "email": "El campo email debe ser un email válido" }}6. Cliente No Encontrado - Código 404
Sección titulada «6. Cliente No Encontrado - Código 404»Escenario: No se encontró el cliente con el cliente_synergy_id proporcionado
{ "codigo_http": 404, "estado": "not_found", "mensaje": "Cliente no encontrado con el cliente_synergy_id proporcionado"}