API de Movidesk - Personas
39 min
Creado por Reinaldo Martins Thoma en 15/07/2016 13:13
Actualizado por Leonora Garcia Alves en 06/05/2025 18:17
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

PropiedadTipoTamañoObligatorioDescripción
idstring64 Campo 'Cód. Ref.': Identificador único de la persona (alfanumérico). Sólo lectura después de la creación.
codeReferenceAdditionalstring64 Campo Cód. Ref. Adicional. Identificador no obligatorio, pero único de la persona.  (Alfanumérico)
isActivebool Campo Persona habilitada.
personTypeint1Tipo de persona. Persona = 1, Empresa = 2, Departamento = 4.
profileTypeint1Tipo de perfil. Agente = 1, Cliente = 2, Agente y Cliente = 3.
accessProfilestring128*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.
corporateNamestring128*Razón social. *Campo obligatorio cuando la persona es de tipo Empresa y no se ha informado el Nombre comercial.
businessNamestring128Nombre comercial para empresas o Nombre para personas y departamentos.
businessBranchstring128 Campo Ramo de actividad para persona de tipo Empresa.
cpfCnpjstring14 CPF (11 dígitos) para personas, CNPJ (14 dígitos) para empresas y inexistente para departamentos.
userNamestring64Campo usuario. Debe ser único por dominio. Campo obligatorio cuando se informa un dominio para autenticación diferente de Movidesk.
passwordstring32 Campo contraseña. El contenido de la contraseña es solo para grabación y no puede obtenerse en la consulta.
rolestring128 Cargo de la persona. Si se informa un cargo inexistente, este será creado.
bossIdstring64 
bossIdstring64 Id (Cod. Ref.) existente del superior jerárquico de la persona. 
bossNamestring128 Nombre del superior jerárquico (solo lectura).
classificationstring128 Clasificación de la persona. Si se informa una clasificación inexistente, será creada.
cultureIdstring32*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.
timeZoneIdstring64*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.
authenticateOnstringmax 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
createdDatedatetime 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.
createdBystring128 Cod. Ref. de la persona que creó la persona consultada. Campo de solo lectura.
changedDatedatetime UTC  Fecha de la última modificación de la persona. Campo de solo lectura.
changedBystring128 Cod. Ref. de la persona que realizó la última modificación en la persona consultada. Campo de solo lectura.
observationsstringmax Observaciones.
addressesarray  Lista con las direcciones. ver documentación
contactsarray  Lista con los contactos. ver documentación
emailsarray  Lista con los correos electrónicos. ver documentación
teamsarray *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.
relationshipsarray 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
customFieldValuesarray  Lista con los valores de los campos adicionales del ticket. ver documentación
atAssetsarray  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]

PropiedadTipoTamañoObligatorioDescripción
addressTypestring128Tipo de dirección (Comercial, Residencial, etc). Si se ingresa un tipo inexistente, se creará automáticamente.
countrystring128 Nombre del país.
postalCodestring32 Código postal.
statestring128 Estado.
ciudadstring128 Ciudad.
distritostring128 Barrio.
callestring128 Nombre de la calle ej: Calle Joinville.
númerostring32 Número.
complementostring128 Complemento ej: Sala 201.
referenciastring128 Punto de referencia ej: Cerca de la universidad.
esDefaultbool 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]

PropiedadTipoTamañoObligatorioDescripción
contactTypestring128Tipo de contacto ej: (Teléfono, Móvil, Skype, etc). Si se informa un tipo inexistente, se creará.
contactstring128Descripción ej: (11) 9999-9999.
isDefaultbool 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]

PropiedadTipoTamañoObligatorioDescripción
emailTypestring128Tipo de correo electrónico Ej: (Personal, Profesional, etc). Si se informa un tipo inexistente, se creará.
emailstring128Correo electrónico de la persona, debe ser válido.
isDefaultbool 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]

PropiedadTipoTamañoObligatorioDescripción
idstring64 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.
namestring128 Descripción de la jerarquía (Solo lectura).
slaAgreementstring128 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.
forceChildrenToHaveSomeAgreementbool Si este valor se informa como verdadero, todas las personas vinculadas a esta jerarquía tendrán obligatoriamente el mismo contrato SLA.
allowAllServicesbool *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.
includeInParentsbool  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.
loadChildOrganizationsbool  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.
servicesarray *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]

PropiedadTipoTamañoObligatorioDescripción
idint10Id (Código) del servicio. Este puede obtenerse en la consulta de servicios en el sitio web.
namestring128 Nombre del servicio (Solo lectura).
copyToChildrenbool *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]

PropiedadTipoTamañoObligatorioDescripción
customFieldIdint64Id del campo adicional (se puede obtener en la lista de campos adicionales en el sitio web).
customFieldRuleIdint64Id de la regla de visualización de campos adicionales (se puede obtener en la lista de reglas para visualización en el sitio web).
lineint64Nú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.
valuestringmax *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".
itemsarray 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]

PropiedadTipoTamañoObligatorioDescripción
personIdint64*Id (Cod. ref.) de la empresa, departamento o persona. *Obligatorio cuando el tipo de campo sea lista de personas.
clientIdint64*Id (Cod. ref.) de la empresa, departamento o persona. *Obligatorio cuando el tipo de campo sea lista de clientes.
teamstring128*Nombre del equipo. *Obligatorio cuando el tipo de campo sea lista de agentes (el personId puede ser informado para especificar el agente del equipo).
customFieldItemstring256*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]

PropiedadTipoTamañoObligatorioDescripción
Idstring64*Campo Cod. Ref. Identificador único del activo. (Alfanumérico)
namestring64 Nombre del activo
labelstring64 

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