Actualizar un contacto de un tercero

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ámetroUbicaciónTipoRequeridoDescripción
third_party_codeURLtextoSíCódigo del tercero al que pertenece el contacto. No distingue mayúsculas de minúsculas.
id_contactbodyenteroSíId único del contacto del tercero.

Parámetros de entrada — Opcionales

ParámetroTipoRequeridoDescripción
activebooleanoNoEstado 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_nametexto (máx. 50)NoNombre del contacto. No puede ser vacío ni null. Debe ser único dentro del tercero.
contact_emailtexto (máx. 200)NoCorreo electrónico del contacto. Debe ser único en la compañía, sin distinguir mayúsculas de minúsculas ni espacios.
branch_codetextoNoCódigo de la sucursal del contacto. Debe existir como sucursal del tercero. No puede ser vacío ni null.
roletexto (máx. 100)NoCargo del contacto. No puede ser vacío ni null.
telephonetexto (máx. 50)NoTeléfono del contacto.
moviltexto (máx. 50)NoMóvil del contacto.
skypetexto (máx. 50)NoUsuario de Skype del contacto.
linkedintexto (máx. 50)NoURL 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

POSTGETPUT
OperaciónCrea un contactoConsulta contactosActualiza parcialmente un contacto
Identificación del contactoNo aplica (se crea uno nuevo)Por código del tercero (opcional)Por id_contact dentro del tercero de la URL
Campos modificablesTodos los datos del contacto al crearloNo aplicaSolo los campos enviados en el body
Permite modificar activeNoNo (solo permite filtrar y consultar)Sí, es el único que lo permite

Parámetros de salida

ParámetroTipoDescripción
successbooleanoResultado de la operación.
messagetextoMensaje de la operación.
totalenteroTotal de registros.
dataobjetoContacto actualizado, con los mismos campos que devuelve la consulta de contactos (GET), incluido active.

Errores

CódigoCausa
400Error 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.
401Token inválido o ausente.
404El tercero, el contacto (por ejemplo, un contacto que pertenece a otro tercero o a otra compañía) o la sucursal no existen.
409El correo electrónico o el nombre del contacto ya existen; o se intenta deshabilitar un contacto con dependencias activas (ERROR_CONTACT_HAS_ACTIVE_DEPENDENCIES).
500Error 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

{
  "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)

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)

{
  "success": false,
  "message": "404",
  "data": "[{\"ERROR\": \"id_contact is not found for this third party\"}]",
  "total": 0
}

Response — contacto con dependencias activas (409)

{
  "success": false,
  "message": "409",
  "data": "[{\"ERROR\": \"ERROR_CONTACT_HAS_ACTIVE_DEPENDENCIES\"}]",
  "total": 0
}
Path Params
string
required
Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here!