API de Movidesk - Personas
44 min
Creado por Reinaldo Martins Thoma en 15/07/2016 13:13
Actualizado por Karine Moreira en 24/09/2024 16:31
Importante: Nuestras API's tienen un límite de 10 solicitudes por minuto para garantizar un uso saludable. Si tienes un escenario específico que requiere aumentar el uso, contacta a nuestro equipo de soporte para un análisis de viabilidad. Aprende más sobre horarios y límites de las API's
https://api.movidesk.com/public/v1

Personas

 

Observación: La contraseña creada para esta API debe contener al menos 8 dígitos.

 

  URL:    /persons
  Métodos: GET / POST / PATCH / DELETE

Diseño

persona

Propiedad Tipo Tamaño Obligatorio Descripción
id string 64   Campo Cód. Ref. Identificador único de la persona.  (Alfanumérico)
codeReferenceAdditional string 64   Campo Cód. Ref. Adicional. Identificador no obligatorio, pero único de la persona.  (Alfanumérico)
isActive bool   Campo Persona habilitada.
personType int 1 Tipo de persona. Persona = 1, Empresa = 2, Departamento = 4.
profileType int 1 Tipo de perfil. Agente = 1, Cliente = 2, Agente y Cliente = 3.
accessProfile string 128 * Campo Perfil de acceso. Debe ser un perfil de acceso ya registrado en Movidesk. Si se ingresa un perfil de acceso inválido, el sistema devolverá un error. *Campo obligatorio cuando la persona tiene el perfil de Agente. Si el perfil es Cliente y no se informa este campo, se asignará el perfil de acceso predeterminado para clientes.
corporateName string 128 * Razón social. *Campo obligatorio cuando la persona es de tipo Empresa y no se ha informado el Nombre comercial.
businessName string 128 Nombre comercial para empresas o Nombre para personas y departamentos.
businessBranch string 128   Campo Ramo de actividad para persona de tipo Empresa.
cpfCnpj string 14   CPF (11 dígitos) para personas, CNPJ (14 dígitos) para empresas y inexistente para departamentos.
userName string 64 Campo usuario. Debe ser único por dominio. Campo obligatorio cuando se informa un dominio para autenticación diferente de Movidesk.
password string 32   Campo contraseña. El contenido de la contraseña es solo para grabación y no puede obtenerse en la consulta.
role string 128   Cargo de la persona. Si se informa un cargo inexistente, este será creado.
bossId string 64  
bossId string 64   Id (Cod. Ref.) existente del superior jerárquico de la persona. 
bossName string 128   Nombre del superior jerárquico (solo lectura).
classification string 128   Clasificación de la persona. Si se informa una clasificación inexistente, será creada.
cultureId string 32 * Idioma de la persona en el estándar CultureCode de Microsoft. Ejemplo para el idioma portugués de Brasil: pt-BR. *Si no se informa, se utilizará el idioma del administrador del sistema.
timeZoneId string 64 * Zona horaria de la persona en el estándar IANA. Ejemplo para la zona horaria de Brasilia: America/Sao_Paulo. *Si no se informa, se utilizará la zona horaria del administrador del sistema.
authenticateOn string max   Si la autenticación en directorio está habilitada y la persona se autentica en un dominio diferente de Movidesk, se debe informar el servidor y dominio ya registrados en el sistema. Ej: hostdomeuservidorad\dominiodomeuservidorad
createdDate datetime UTC     Fecha de creación de la persona. Debe ser menor o igual a la fecha actual. La fecha proporcionada debe estar en formato UTC*. Si no se proporciona el campo, será rellenado con la fecha actual. Solo lectura después de la creación.
createdBy string 128   Cod. Ref. de la persona que creó la persona consultada. Campo de solo lectura.
changedDate datetime UTC     Fecha de la última modificación de la persona. Campo de solo lectura.
changedBy string 128   Cod. Ref. de la persona que realizó la última modificación en la persona consultada. Campo de solo lectura.
observations string max   Observaciones.
addresses array     Lista con las direcciones. ver documentación
contacts array     Lista con los contactos. ver documentación
emails array     Lista con los correos electrónicos. ver documentación
teams array   * Array de cadenas con el nombre de los equipos. *Cuando el tipo de perfil de la persona es Agente, es necesario proporcionar al menos un equipo.
relationships array   Lista con las relaciones de la persona. Debe haber una única relación por organización. *Puede ser obligatorio (si está parametrizado para serlo) cuando el tipo de persona es Persona y el perfil es Cliente. ver documentación
customFieldValues array     Lista con los valores de los campos adicionales del ticket. ver documentación
atAssets array     Lista con los valores de los Activos.
Atención: Las APIs de Movidesk pueden tardar algunos minutos en replicar tickets, usuarios y otros registros, ya sean nuevos o modificados. Por lo tanto, es posible que no aparezcan en los resultados de la búsqueda inmediatamente.

Personas » Direcciones

person.addresses[n]

Propiedad Tipo Tamaño Obligatorio Descripción
addressType string 128 Tipo de dirección (Comercial, Residencial, etc). Si se ingresa un tipo inexistente, se creará automáticamente.
country string 128   Nombre del país.
postalCode string 32   Código postal.
state string 128   Estado.
ciudad string 128   Ciudad.
distrito string 128   Barrio.
calle string 128   Nombre de la calle ej: Calle Joinville.
número string 32   Número.
complemento string 128   Complemento ej: Sala 201.
referencia string 128   Punto de referencia ej: Cerca de la universidad.
esDefault bool   Indicador si esta es la dirección principal de la persona. Solo una dirección podrá ser la dirección principal. 

Personas » Contactos

person.contacts[n]

Propiedad Tipo Tamaño Obligatorio Descripción
contactType string 128 Tipo de contacto ej: (Teléfono, Móvil, Skype, etc). Si se informa un tipo inexistente, se creará.
contact string 128 Descripción ej: (11) 9999-9999.
isDefault bool   Indicador si este es el contacto principal de la persona. Solo un contacto podrá ser el contacto principal.  

Personas » Correos Electrónicos

person.emails[n]

Propiedad Tipo Tamaño Obligatorio Descripción
emailType string 128 Tipo de correo electrónico Ej: (Personal, Profesional, etc). Si se informa un tipo inexistente, se creará.
email string 128 Correo electrónico de la persona, debe ser válido.
isDefault bool   Indicador si este es el correo electrónico principal de la persona. Solo un correo electrónico podrá ser el principal. 

Personas » Organizaciones

person.relationships[n]

Propiedad Tipo Tamaño Obligatorio Descripción
id string 64   Id (Código de referencia) existente de la empresa o departamento al cual pertenece la persona. Para informar jerarquía, debe seguir el patrón IdPadre/IdHijo. Para configurar el contrato SLA y los servicios permitidos sin relacionar a la persona con alguna organización, no informe este parámetro.
name string 128   Descripción de la jerarquía (Solo lectura).
slaAgreement string 128   Contrato SLA utilizado por el cliente. Debe ser un contrato SLA ya registrado en Movidesk. Si se informa un contrato SLA inválido, el sistema devolverá un error.
forceChildrenToHaveSomeAgreement bool   Si este valor se informa como verdadero, todas las personas vinculadas a esta jerarquía tendrán obligatoriamente el mismo contrato SLA.
allowAllServices bool   * Si este valor es verdadero, la persona tendrá acceso a todos los elementos del catálogo de servicios. De lo contrario, deben especificarse los servicios a los que la persona tendrá acceso. *Si este valor no se proporciona, se llenará por defecto como verdadero.
includeInParents bool     Si este valor es verdadero, se incluirá esta relación en las personas de la organización principal y, para deshacerlo, será necesario eliminar manualmente esta relación de las personas de la organización principal.
loadChildOrganizations bool     Si este valor es verdadero, se incluirán relaciones con las organizaciones hijas de la organización principal y, para deshacerlo, será necesario eliminar manualmente estas relaciones.
services array   * Lista de los servicios a los que la persona tendrá acceso. *Es obligatorio proporcionar al menos un servicio cuando el campo allowAllServices sea falso. ver documentación

Personas » Organización » Servicios

person.relationships[n].services[n]

Propiedad Tipo Tamaño Obligatorio Descripción
id int 10 Id (Código) del servicio. Este puede obtenerse en la consulta de servicios en el sitio web.
name string 128   Nombre del servicio (Solo lectura).
copyToChildren bool   * Si este valor es verdadero, se incluirá este servicio para todas las personas asociadas a esta jerarquía. *Si este valor no se proporciona, se asumirá por defecto como verdadero.

Personas » Campos adicionales

person.customfieldvalues[n]

Propiedad Tipo Tamaño Obligatorio Descripción
customFieldId int 64 Id del campo adicional (se puede obtener en la lista de campos adicionales en el sitio web).
customFieldRuleId int 64 Id de la regla de visualización de campos adicionales (se puede obtener en la lista de reglas para visualización en el sitio web).
line int 64 Número de la línea de la regla de visualización en la pantalla de registro de la persona. Cuando la regla no permita la adición de nuevas líneas, se debe ingresar el valor 1 y no deben repetirse valores de campos adicionales para el id de la regla junto con el id del campo. Para cambiar el valor de un campo, se debe especificar la línea en la que se encuentra. Los campos que estén en la base de datos y no se envíen en el cuerpo de la solicitud serán eliminados.
value string max  * Valor de texto del campo adicional. *Obligatorio cuando el tipo de campo sea: texto de una línea, texto con varias líneas, texto HTML, expresión regular, numérico, fecha, hora, fecha y hora, correo electrónico, teléfono o URL. Los campos de fecha deben estar en horario *UTC y en el formato YYYY-MM-DDThh:MM:ss.000Z, y el campo hora debe ser informado junto con la fecha fija "1991-01-01". El campo numérico debe estar en el formato brasileño, por ejemplo "1.530,75".
items array   Lista de ítems. *Obligatorio cuando el tipo de campo sea: lista de valores, lista de personas, lista de clientes, lista de agentes, selección múltiple o selección única. Debe informarse solo un ítem si el campo adicional no permite selección múltiple. Cuando el campo sea de archivo, es solo lectura. ver documentación

Personas » Campos adicionales » Ítems

person.customfieldvalues.items[n]

Propiedad Tipo Tamaño Obligatorio Descripción
personId int 64 * Id (Cod. ref.) de la empresa, departamento o persona. *Obligatorio cuando el tipo de campo sea lista de personas.
clientId int 64 * Id (Cod. ref.) de la empresa, departamento o persona. *Obligatorio cuando el tipo de campo sea lista de clientes.
team string 128 * Nombre del equipo. *Obligatorio cuando el tipo de campo sea lista de agentes (el personId puede ser informado para especificar el agente del equipo).
customFieldItem string 256 * Nombre del ítem del campo adicional. *Obligatorio cuando el tipo de campo sea: lista de valores, selección múltiple o selección única.

Personas » Activos

person.atAssets[n]

Propiedad Tipo Tamaño Obligatorio Descripción
Id string 64 * Campo Cod. Ref. Identificador único del activo. (Alfanumérico)
name string 64   Nombre del activo
label string 64  

Campo etiqueta (Alfanumérico)

*UTC: El Tiempo Universal Coordinado (del inglés Universal Time Coordinated) es la zona horaria de referencia a partir de la cual se calculan todas las demás zonas horarias del mundo. Ej: Si tu zona horaria es la de Brasilia (UTC-03:00) y la hora actual es 15:30, la hora UTC será 18:30.

Trabajando con los datos

Para acceder a los datos es necesario generar previamente una clave para la API

Para generar una clave para la API (token), accede a Movidesk, ve a Configuraciones / Cuenta / Parámetros y en la pestaña ambiente haz clic en el botón "Generar nueva clave" si aún no tienes una creada.
Podrás repetir esta operación siempre que quieras generar una nueva clave de acceso, pero recuerda que al generar una nueva clave, todos los programas que utilicen la clave antigua dejarán de funcionar.

Todo el flujo de datos (Visualización/Inserción/Modificación) debe tener el formato JSON conforme al siguiente ejemplo:

{ "id": "1", "codeReferenceAdditional": "33B", "isActive": true, "personType": 1, "profileType": 3, "accessProfile": "Administradores", "businessName": "Movidesk", "corporateName": "Movimentti sistemas", "cpfCnpj": "012345678900", "userName": "admin", "password": null, "role": null, "bossId": null, "classification": null, "cultureId": "es-ES", "timeZoneId": "America/Sao_Paulo", "createdDate": "2014-12-17T18:00:43.3339728", "observations": "Registro realizado a través de la API de personas.", "addresses": [ { "addressType": "Comercial", "country": "Brasil", "postalCode": "89035200", "state": "Santa Catarina", "district": "Vila Nova", "street": "Rua Joinville", "number": "209", "complement": "Sala 201", "reference": "Cerca de FURB", "isDefault": true } ], "contacts": [ { "contactType": "Teléfono comercial", "contact": "(47) 3035-4150", "isDefault": true }, { "contactType": "Teléfono celular", "contact": "(47) 9999-9999", "isDefault": false } ], "emails": [ { "emailType": "Profesional", "email": "atendimento@movimentti.movidesk.com", "isDefault": true } ], "teams": [ "Administradores", "Consultoría" ], "relationships": [ { "id": "2113", "name": "Movimentti", "slaAgreement": "Contrato de SLA estándar", "forceChildrenToHaveSomeAgreement": false, "allowAllServices": false, "services": [ { "id": 5706, "name": "Soporte" } ] } ], "customFieldValues": [ { "customFieldId": 3, "customFieldRuleId": 2, "line": 1, "value": null, "items": [ { "personId": null, "clientId": null, "team": null, "customFieldItem": "uno" } ] }, { "customFieldId": 1, "customFieldRuleId": 1, "line": 1, "value": "texto vía API", "items": [] } ] }

Obteniendo datos

Método GET

Obteniendo una única persona

GET: /persons
 Parámetros: id, token

Ejemplo:

Obteniendo la persona con el id 1

GET: https://api.movidesk.com/public/v1/persons?token=52ee6ca5-8639-422b-bafe-470013c11176&id=1

Respuesta:

  {
    "id": "1",
    "codeReferenceAdditional": "33B",
    "isActive": true,
    "personType": 1,
    "profileType": 3,
    "accessProfile": "Administradores",
    "businessName": "Movidesk",
    "corporateName": "Movimentti sistemas",
    "cpfCnpj": "012345678900",
    "userName": "admin",
    ... Otras columnas en el formato del diseño anterior
  }

Obteniendo una lista de personas

GET: /persons
 Parámetros: token

Ejemplo:

Obteniendo una lista de personas

GET: https://api.movidesk.com/public/v1/persons?token=52ee6ca5-8639-422b-bafe-470013c11176

Respuesta:

  [
    {
      "id": "1",
      "codeReferenceAdditional": "33B",
      "isActive": true,
      "personType": 2,
      "profileType": 3,
      "accessProfile": "Administradores",
      "businessName": "Movidesk",
      "corporateName": "Movimentti sistemas",
      "cpfCnpj": "012345678900",
      "userName": "admin",
      ... Otras columnas en el formato del diseño anterior
    },
    {
      "id": "2",
      "codeReferenceAdditional": "34B",
      "isActive": true,
      "personType": 1,
      "profileType": 1,
      "accessProfile": "Clientes",
      "businessName": "Cliente A",
      "corporateName": "Cliente A",
      "cpfCnpj": "012345678901",
      "userName": "clienteA",
      ... Otras columnas en el formato del diseño anterior
    }
    ... Otros ítems de la lista 
  ]

 

Obteniendo personas con filtros

GET: /persons
Parámetros: token

Para permitir y simplificar consultas con filtros, la API utiliza el protocolo abierto OData. Los filtros posibles son:
• $filter: la expresión especificada con este filtro se evalúa para cada ítem del resultado de la consulta y solo los ítems en los que el resultado de la expresión sea verdadero serán incluidos en el resultado final;
• $orderby: permite que los ítems del resultado de la consulta se ordenen de forma ascendente (asc) o descendente (desc). Si no se especifica asc o desc, el valor predeterminado será asc;
• $top: permite especificar el número de ítems que deben ser incluidos en el resultado de la consulta;
• $skip: permite especificar la cantidad de ítems que deben ser ignorados y no incluidos en el resultado de la consulta;
• $select: permite especificar propiedades específicas de los ítems que deben ser llenadas en el resultado de la consulta;
• $expand: permite expandir las colecciones secundarias de los ítems consultados.

Nota: las cláusulas $select siempre se ignoran cuando están dentro de un $expand. Es decir, cuando existe un $expand, la API devuelve todos los parámetros disponibles en el array, no es posible limitar.

Ejemplos:

Obteniendo lista de personas que sean del tipo de perfil cliente:

GET: https://api.movidesk.com/public/v1/persons?token=52ee6ca5-8639-422b-bafe-470013c11176&$filter=profileType eq 2

Respuesta:
[
    {
      "id": "1",
      "codeReferenceAdditional": "33B",
      "isActive": true,
      "personType": 2,
      "profileType": 2,
      "accessProfile": "Clientes",
      "businessName": "Cliente A",
      "corporateName": "Cliente A",
      "cpfCnpj": "012345678900",
      "userName": "clienteA",
      ... Otras columnas en el formato del diseño anterior
    },
    {
      "id": "2",
      "codeReferenceAdditional": "34B",
      "isActive": true,
      "personType": 1,
      "profileType": 2,
      "accessProfile": "Clientes",
      "businessName": "Cliente B",
      "corporateName": "Cliente B",
      "cpfCnpj": "012345678901",
      "userName": "clienteB",
      ... Otras columnas en el formato del diseño anterior
    }
    ... Otros ítems de la lista que tengan profileType igual a 2
  ]


Obteniendo lista de personas que sean del tipo cliente y ordenadas de forma descendente respecto al id:

GET: https://api.movidesk.com/public/v1/persons?token=52ee6ca5-8639-422b-bafe-470013c11176&$filter=profileType eq 2&$orderby=id desc

Respuesta:
[
    { 
      "id": "2",
      "codeReferenceAdditional": "34B",
      "isActive": true, "personType": 1,
      "profileType": 2, "accessProfile": "Clientes",
      "businessName": "Cliente B",
      "corporateName": "Cliente B",
      "cpfCnpj": "012345678901",
      "userName": "clienteB",
       ... Otras columnas en el formato del diseño anterior },    
    {
      "id": "1",
      "codeReferenceAdditional": "33B",
      "isActive": true,
      "personType": 2,
      "profileType": 2,
      "accessProfile": "Clientes",
      "businessName": "Cliente A",
      "corporateName": "Cliente A",
      "cpfCnpj": "012345678900",
      "userName": "clienteA",
      ... Otras columnas en el formato del diseño anterior
    }    
    ... Otros ítems de la lista ordenados de forma descendente respecto al id y que tengan profileType igual a 2
  ]

 

Obteniendo una lista de personas que sean del tipo cliente, ordenadas de forma descendente respecto al id y filtrando el resultado para obtener solo 100 personas, pero omitiendo las primeras 100 (utilizado para la paginación del resultado, en este caso para obtener la segunda página):

GET: https://api.movidesk.com/public/v1/persons?token=52ee6ca5-8639-422b-bafe-470013c11176&$filter=profileType eq 2&$orderby=id desc&$top=100&$skip=100

Respuesta:
[
    { 
      "id": "102",
      "codeReferenceAdditional": "134B",
      "isActive": true, 
      "personType": 1,
      "profileType": 2, 
      "accessProfile": "Clientes",
      "businessName": "Cliente B",
      "corporateName": "Cliente B",
      "cpfCnpj": "012345678901",
      "userName": "clienteB",
       ... Otras columnas en el formato del diseño anterior },    
    {
      "id": "101",
      "codeReferenceAdditional": "133B",
      "isActive": true,
      "personType": 2,
      "profileType": 2,
      "accessProfile": "Clientes",
      "businessName": "Cliente A",
      "corporateName": "Cliente A",
      "cpfCnpj": "012345678900",
      "userName": "clienteA",
      ... Otras columnas en el formato del diseño anterior
    }    
    ... Otros 98 ítems de la lista ordenados de forma descendente respecto al id y que tengan profileType igual a 2
  ]


Obteniendo el id y el nombre de personas que sean del tipo cliente, ordenadas de forma descendente respecto al id y filtrando el resultado para obtener solo 100 personas, pero omitiendo las primeras 100 (utilizado para la paginación del resultado, en este caso para obtener la segunda página):

GET: https://api.movidesk.com/public/v1/persons?token=52ee6ca5-8639-422b-bafe-470013c11176&$select=businessName,id&$filter=profileType eq 2&$orderby=id desc&$top=100&$skip=100

Respuesta:
[
    { 
      "id": "102", 
      "businessName": "Cliente B"
    },    
    {
      "id": "101",     
      "businessName": "Cliente A"    
    }    
    ... Otros 98 ítems de la lista ordenados de forma descendente respecto al id y con profileType igual a 2
  ]

 

Obteniendo el id, el nombre, las organizaciones y los servicios permitidos de las personas que sean del tipo cliente, ordenadas de forma descendente respecto al id y filtrando el resultado para obtener solo 100 personas, pero omitiendo las primeras 100 (utilizado para la paginación del resultado, en este caso para obtener la segunda página):

GET: https://api.movidesk.com/public/v1/persons?token=52ee6ca5-8639-422b-bafe-470013c11176&$select=businessName,id&$expand=relationships($expand=services)&$filter=profileType eq 2&$orderby=id desc&$top=100&$skip=100

Respuesta:
[
    { 
      "id": "102", 
      "businessName": "Cliente B",  
      "relationships": [
      {
        "id": "2113",
        "name": "Movimentti",
        "slaAgreement": "Contrato de SLA estándar",
        "forceChildrenToHaveSomeAgreement": false,
        "allowAllServices": false,
        "services": [
         {
           "id": 5706,
           "name": "Soporte"
         }
       ]
      }
    ]},    
    {
      "id": "101",     
      "businessName": "Cliente A",  
      "relationships": [
      {     
        "slaAgreement": "Contrato de SLA estándar",
        "forceChildrenToHaveSomeAgreement": false,
        "allowAllServices": true,
        "services": []
      }
    ]}
    }    
    ... Otros 98 ítems de la lista ordenados de forma descendente respecto al id y con profileType igual a 2
]

 

Obteniendo las personas que contengan al menos un correo electrónico igual a "email@movidesk.com":

GET: https://api.movidesk.com/public/v1/persons?token=52ee6ca5-8639-422b-bafe-470013c11176&$filter=Emails/any(e: e/email eq 'email@movidesk.com')

Respuesta:
[
    { 
      "id": "102", 
      "businessName": "Cliente B",  
      ... Otras propiedades de la persona  
      "emails": [
      {
       "emailType": "Comercial",
       "email": "email@movidesk.com",
       "isDefault": true
      },
      {
       "emailType": "Personal",
       "email": "otro.email@movidesk.com",
       "isDefault": false
      }],    
    {
      "id": "101",     
      "businessName": "Cliente A",
      ... Otras propiedades de la persona  
      "emails": [
      {
       "emailType": "Comercial",
       "email": "email@movidesk.com",
       "isDefault": true
      }
    ]}
    }    
    ... Otros ítems de la lista que contengan uno de los correos electrónicos igual a "email@movidesk.com"
]

 


Insertando datos

Método POST

POST: /persons
 Parámetros: token, returnAllProperties (valor por defecto es false)
 Headers: Content-Type: application/json
 Cuerpo del post: {objeto JSON}

Ejemplo:
POST: https://api.movidesk.com/public/v1/persons?token=52ee6ca5-8639-422b-bafe-470013c11176&returnAllProperties=false
Headers: Content-Type: application/json
RequestBody:
{
  "id": "1",
  "codeRefAdditional": "33B",
  "isActive": true,
  "personType": 2,
  "profileType": 3,
  "accessProfile": "Administradores",
  "businessName": "Movidesk",
  "corporateName": "Movimentti sistemas",
  "cpfCnpj": "012345678900",
  "userName": "admin",
  ... Otras columnas en el formato del layout anterior
}

Respuesta: Estado 200 y en el cuerpo el id (código de referencia) de la persona insertada.

 

Insertando organizaciones para una persona

Método POST

POST: /persons/relationships
 Parámetros: token, id
 Headers: Content-Type: application/json
 Cuerpo del post: {objeto JSON}

Ejemplo:

Incluyendo la relación de la persona con id 1 con la organización con id 123

POST: https://api.movidesk.com/public/v1/persons/relationships?token=52ee6ca5-8639-422b-bafe-470013c11176&id=1
Headers: Content-Type: application/json
RequestBody:
{
  "relationships": [
        {
             "id": "123",
             "allowAllServices": true
        }
  ]
}

Respuesta: Estado 200 

 


Actualizando datos

Método PATCH

A diferencia de la inserción de datos (POST), la actualización se realiza de forma parcial. Por lo tanto, es necesario enviar al servidor solo los datos que se desean modificar.

Sin embargo, la modificación de listas (objetos hijos) siempre sobrescribe todos los ítems de la lista.

PATCH: /persons
 Parámetros: token, id
 Headers: Content-Type: application/json
 Cuerpo: {objeto JSON}

Ejemplos:

Modificando el nombre de la persona con id 1

PATCH: https://api.movidesk.com/public/v1/persons?token=52ee6ca5-8639-422b-bafe-470013c11176&id=1
Headers: Content-Type: application/json
RequestBody:
{
  "businessName": "Movidesk"
}

Respuesta: Estado 200

En el ejemplo anterior, solo se modifica el campo businessName, los demás campos permanecen inalterados

Eliminando los correos electrónicos de la persona con id 1

PATCH: https://api.movidesk.com/public/v1/persons?token=52ee6ca5-8639-422b-bafe-470013c11176&id=1
Headers: Content-Type: application/json
RequestBody:
{
  "emails": []
}

Respuesta: Estado 200

Dado que los correos electrónicos están en una lista, en el ejemplo anterior, todos los correos electrónicos se eliminan. Esto ocurre porque los valores proporcionados en la lista siempre sobrescriben los valores previamente almacenados.


Eliminando personas

Método DELETE


DELETE: /persons
Parámetros: token, id
Headers: Content-Type: application/json
Cuerpo del post: {objeto JSON}

Ejemplos:

Eliminando la persona con id 1

DELETE: https://api.movidesk.com/public/v1/persons?token=52ee6ca5-8639-422b-bafe-470013c11176&id=1
Headers: Content-Type: application/json

Respuesta: Estado 200

 


Ejemplo de código fuente en lenguaje C# para la llamada a la API

Método POST

try
{
   var persona = new
   {
     isActive = true
   };
   var json = JsonConvert.SerializeObject(persona);

   var response = await SendAsync("https://api.movidesk.com/public/v1/persons?token=TUTOKEN",
   json, "POST", "application/json"); 
}
catch (WebException ex)
{
   var response = new StreamReader(ex.Response.GetResponseStream()).ReadToEnd();
}

public static async Task<string> SendAsync(string uri, string content, string method, string contentType)
{
  var req = WebRequest.Create(uri);
  req.ContentType = contentType;
  req.Method = method;

  using (var stream = await req.GetRequestStreamAsync())
  using (var streamWriter = new StreamWriter(stream))
  {
    await streamWriter.WriteAsync(content);
  }

  var httpResponse = (HttpWebResponse)await req.GetResponseAsync();
  using (var stream = httpResponse.GetResponseStream())
  {
    if (stream == null)
       return null;

    using (var streamReader = new StreamReader(stream))
    { 
       return await streamReader.ReadToEndAsync();
    }
  }
}

En el ejemplo anterior, la inserción de la persona no se realizará, ya que existen varios errores en el cuerpo de la solicitud. Los errores están detallados en la variable response y deben corregirse siguiendo esta documentación.

¿Te ha útil este artículo?
Vistos recientemente