put
https://app.fracttal.com/api/third_parties_contacts//
Permite actualizar parcialmente un contacto existente de un tercero, incluido su estado (habilitado o deshabilitado). Solo se modifican los campos que se envían en el body.
Uso general — sin add-on específico.
PUT https://app.fracttal.com/api/third_parties_contacts/{third_party_code}/Parámetros de entrada — Requeridos
| Parámetro | Ubicación | Tipo | Requerido | Descripción |
|---|---|---|---|---|
third_party_code | URL | texto | Sí | Código del tercero al que pertenece el contacto. No distingue mayúsculas de minúsculas. |
id_contact | body | entero | Sí | Id único del contacto del tercero. |
Parámetros de entrada — Opcionales
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
active | booleano | No | Estado del contacto: true lo habilita y false lo deshabilita. Solo se acepta si la compañía tiene habilitada la opción de contactos habilitados. Si se envía null, se ignora. |
contact_name | texto (máx. 50) | No | Nombre del contacto. No puede ser vacío ni null. Debe ser único dentro del tercero. |
contact_email | texto (máx. 200) | No | Correo electrónico del contacto. Debe ser único en la compañía, sin distinguir mayúsculas de minúsculas ni espacios. |
branch_code | texto | No | Código de la sucursal del contacto. Debe existir como sucursal del tercero. No puede ser vacío ni null. |
role | texto (máx. 100) | No | Cargo del contacto. No puede ser vacío ni null. |
telephone | texto (máx. 50) | No | Teléfono del contacto. |
movil | texto (máx. 50) | No | Móvil del contacto. |
skype | texto (máx. 50) | No | Usuario de Skype del contacto. |
linkedin | texto (máx. 50) | No | URL de LinkedIn del contacto. |
Reglas de la actualización
- Es una actualización parcial: un campo que no se envía en el body no se modifica.
- El contacto se busca dentro del tercero indicado en la URL.
- Un body sin ningún campo actualizable responde con error
400. - No es posible cambiar el código del tercero ni mover el contacto a otro tercero.
- Todas las validaciones se realizan antes de guardar: si la petición es rechazada, el contacto no queda con cambios parciales.
- Al deshabilitar un contacto (
active: false), el último colaborador asociado a ese contacto queda inactivo. - No se puede deshabilitar un contacto que es responsable o forma parte de la condición de una regla activa del automatizador; la petición responde con error
409.
Diferencias entre POST, GET y PUT de contactos
POST | GET | PUT | |
|---|---|---|---|
| Operación | Crea un contacto | Consulta contactos | Actualiza parcialmente un contacto |
| Identificación del contacto | No aplica (se crea uno nuevo) | Por código del tercero (opcional) | Por id_contact dentro del tercero de la URL |
| Campos modificables | Todos los datos del contacto al crearlo | No aplica | Solo los campos enviados en el body |
Permite modificar active | No | No (solo permite filtrar y consultar) | Sí, es el único que lo permite |
Parámetros de salida
| Parámetro | Tipo | Descripción |
|---|---|---|
success | booleano | Resultado de la operación. |
message | texto | Mensaje de la operación. |
total | entero | Total de registros. |
data | objeto | Contacto actualizado, con los mismos campos que devuelve la consulta de contactos (GET), incluido active. |
Errores
| Código | Causa |
|---|---|
400 | Error de validación del body: contact_name o role vacíos o null; branch_code vacío; un valor supera la longitud máxima del campo (el mensaje indica cuál); el body no incluye ningún campo actualizable; id_contact ausente, no numérico o decimal; active distinto de true o false, o enviado en una compañía que no tiene habilitada la opción de contactos habilitados. |
401 | Token inválido o ausente. |
404 | El tercero, el contacto (por ejemplo, un contacto que pertenece a otro tercero o a otra compañía) o la sucursal no existen. |
409 | El correo electrónico o el nombre del contacto ya existen; o se intenta deshabilitar un contacto con dependencias activas (ERROR_CONTACT_HAS_ACTIVE_DEPENDENCIES). |
500 | Error no controlado. |
Ejemplo
Request
PUT https://app.fracttal.com/api/third_parties_contacts/PROV-01/Request body
{
"id_contact": 100,
"contact_email": "[email protected]",
"telephone": "+57 300 123 4567",
"active": false
}Response 200
200{
"success": true,
"message": "200",
"data": {
"id": 100,
"id_company": 1001,
"id_third_party": 25,
"third_parties_code": "PROV-01",
"third_parties_name": "Proveedor Ejemplo S.A.",
"contact_name": "Ana Pérez",
"contact_email": "[email protected]",
"branch_name": "Sede principal",
"branch_code": "SUC-01",
"role": "Jefe de compras",
"telephone": "+57 300 123 4567",
"movil": "+57 300 765 4321",
"skype": "ana.perez",
"linkedin": "https://www.linkedin.com/in/ana-perez",
"active": false
},
"total": 1
}Response — body sin campos actualizables (400)
400)Request body:
{
"id_contact": 100
}Response:
{
"success": false,
"message": "400",
"data": "[{\"ERROR\": \"At least one field to update is required\"}]",
"total": 0
}Response — contacto de otro tercero (404)
404){
"success": false,
"message": "404",
"data": "[{\"ERROR\": \"id_contact is not found for this third party\"}]",
"total": 0
}Response — contacto con dependencias activas (409)
409){
"success": false,
"message": "409",
"data": "[{\"ERROR\": \"ERROR_CONTACT_HAS_ACTIVE_DEPENDENCIES\"}]",
"total": 0
}