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. |
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á. |
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
Para permitir y simplificar consultas con filtros, la API utiliza el protocolo abierto OData. Los filtros posibles son:
Parámetros: token
• $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.