https://api.movidesk.com/public/v1
Pessoas
Observação: A senha criada para esta API deve conter pelo menos 8 dígitos.
URL: /persons Métodos: GET / POST / PATCH / DELETE
Layout
person
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
id | string | 64 | Campo Cód. Ref. Identificador único da pessoa. (Alfanumérico) | |
codeReferenceAdditional | string | 64 | Campo Cód. Ref. Adicional. Identificador não obrigatório, porém único da pessoa. (Alfanumérico) | |
isActive | bool | ✓ | Campo Pessoa habilitada. | |
personType | int | 1 | ✓ | Tipo da pessoa. Pessoa = 1, Empresa = 2, Departamento = 4. |
profileType | int | 1 | ✓ | Tipo do perfil. Agente = 1, Cliente = 2, Agente e Cliente = 3. |
accessProfile | string | 128 | * | Campo Perfil de acesso. Deve ser um perfil de acesso já cadastrado no Movidesk. Se informado um perfil de acesso inválido, o sistema retornará erro. *Campo obrigatório quando a pessoa é do perfil Agente. Se o perfil for Cliente e o campo não for informado, será setado o perfil de acesso padrão de cliente. |
corporateName | string | 128 | * | Razão social. *Campo obrigatório quando a pessoa é do tipo Empresa e o Nome fantasia não foi informado. |
businessName | string | 128 | ✓ | Nome fantasia para empresas ou Nome para pessoas e departamentos. |
businessBranch | string | 128 | Campo Ramo de atividade para pessoa do tipo Empresa. | |
cpfCnpj | string | 14 | CPF (11 dígitos) para pessoas, CNPJ (14 dígitos) para empresas e inexistente para departamentos. | |
userName | string | 64 | * | Campo usuário. Deve ser único por domínio. Campo obrigatório quando for informado um domínio para autenticação diferente que o Movidesk. |
password | string | 32 | Campo senha. O conteúdo da senha é somente para gravação e não pode ser obtido na consulta. | |
role | string | 128 | Cargo da pessoa. Se informado um cargo inexistente o mesmo será criado. | |
bossId | string | 64 | Id (Cod. Ref.) existente do superior hierárquico da pessoa. | |
bossName | string | 128 | Nome do superior hierárquico (somente leitura). | |
classification | string | 128 | Classificação da pessoa. Se informada uma classificação inexistente, a mesma será criada. | |
cultureId | string | 32 | * | Idioma da pessoa no padrão CultureCode da Microsoft. Exemplo para idioma português do Brasil: pt-BR. *Caso não seja informado, será utilizado o idioma do administrador do sistema. |
timeZoneId | string | 64 | * | Fuso horário da pessoa no padrão IANA. Exemplo para fuso horário de Brasília: America/Sao_Paulo. *Caso não seja informado, será utilizado o fuso horário do administrador do sistema. |
authenticateOn | string | max | Caso a autenticação em diretório estiver habilitada e a pessoa se autentica em um domínio diferente do Movidesk, deve ser informado o servidor e domínio já cadastrados no sistema. Ex: hostdomeuservidorad\dominiodomeuservidorad | |
createdDate | datetime UTC | Data da criação da pessoa. Deve ser menor ou igual a data atual. A data informada deve estar no formato UTC*. Se o campo não for informado, será populado com a data atual. Somente leitura após a criação. | ||
createdBy | string | 128 | Cod. Ref. da pessoa que criou a pessoa consultada. Campo somente leitura. | |
changedDate | datetime UTC | Data da ultima alteração da pessoa. Campo somente leitura. | ||
changedBy | string | 128 | Cod. Ref. da pessoa que alterou pela ultima vez a pessoa consultada. Campo somente leitura. | |
observations | string | max | Observações. | |
addresses | array | Lista com os endereços. ver documentação | ||
contacts | array | Lista com os contatos. ver documentação | ||
emails | array | Lista com os emails. ver documentação | ||
teams | array | * | Array de strings com o nome das equipes. *Quando o tipo de perfil da pessoa for Agente, é necessário informar ao menos uma equipe. | |
relationships | array | * | Lista com os relacionamentos da pessoa. Deve haver um único relacionamento por organização. * Pode ser obrigatório (caso esteja parametrizado para ser) quando o tipo da pessoa for Pessoa e o tipo de perfil for Cliente. ver documentação | |
customFieldValues | array | Lista com os valores dos campos adicionais do ticket. ver documentação | ||
atAssets | array | Lista com os valores dos Ativos. |
Pessoas » Endereços
person.addresses[n]
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
addressType | string | 128 | ✓ | Tipo do endereço (Comercial, Residencial, etc). Se informado um tipo inexistente, o mesmo será criado. |
country | string | 128 | Nome do pais. | |
postalCode | string | 32 | CEP. | |
state | string | 128 | Estado. | |
city | string | 128 | Cidade. | |
district | string | 128 | Bairro. | |
street | string | 128 | Nome da rua ex: Rua Joinville. | |
number | string | 32 | Número. | |
complement | string | 128 | Complemento ex: Sala 201. | |
reference | string | 128 | Ponto de referência ex: Próximo a universidade. | |
isDefault | bool | ✓ | Indicador se esse é o endereço principal da pessoa. Somente um endereço poderá ser o endereço principal. |
Pessoas » Contatos
person.contacts[n]
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
contactType | string | 128 | ✓ | Tipo do contato ex: (Telefone, Celular, Skype, etc). Se informado um tipo inexistente, o mesmo será criado. |
contact | string | 128 | ✓ | Descrição ex: (11) 9999-9999. |
isDefault | bool | ✓ | Indicador se esse é o contato principal da pessoa. Somente um contato poderá ser o contato principal. |
Pessoas » Emails
person.emails[n]
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
emailType | string | 128 | ✓ | Tipo do email Ex: (Pessoal, Profissional, etc). Se informado um tipo inexistente, o mesmo será criado. |
string | 128 | ✓ | E-mail da pessoa, deve ser válido. | |
isDefault | bool | ✓ | Indicador se esse é o e-mail principal da pessoa. Somente um e-mail poderá ser o endereço de e-mail principal. |
Pessoas » Organizações
person.relationships[n]
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
id | string | 64 | Id (Cod. ref.) existente da empresa ou departamento ao qual a pessoa pertence. Para informar hierarquia, deve ser seguido o padrão IdPai/IdFilho. Para configurar o contrato SLA e os serviços permitidos sem relacionar a pessoa a alguma organização, não informe esse parâmetro. | |
name | string | 128 | Descrição da hierarquia (Somente leitura). | |
slaAgreement | string | 128 | Contrato de SLA utilizado pelo cliente. Deve ser um contrato de SLA já cadastrado no Movidesk. Se informado um contrato de SLA inválido, o sistema retornará erro. | |
forceChildrenToHaveSomeAgreement | bool | ✓ | Se este valor for informado como verdadeiro, todas as pessoas ligadas a esta hierarquia obrigatoriamente terão o mesmo contrato de SLA. | |
allowAllServices | bool | * | Se este valor for verdadeiro, a pessoa terá acesso a todos os itens do catálogo de serviços. Caso contrário, deverão ser especificados os serviços para os quais a pessoa terá acesso. *Se este valor não for informado o mesmo será populado por padrão como verdadeiro. | |
includeInParents | bool | Se este valor for verdadeiro, será incluído esse relacionamento nas pessoas da organização pai e para desfazer será necessário remover manualmente esse relacionamento das pessoas da organização pai. | ||
loadChildOrganizations | bool | Se este valor for verdadeiro, serão incluídos relacionamentos com as organizações filhas da organização pai e para desfazer será necessário remover manualmente esses relacionamentos. | ||
services | array | * | Lista com os serviços que a pessoa terá acesso. *Obrigatório informar ao menos um serviço quando o campo allowAllServices for falso. ver documentação |
Pessoas » Organização » Serviços
person.relationships[n].services[n]
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
id | int | 10 | ✓ | Id (Código) do serviço. O mesmo pode ser obtido na consulta de serviços no website. |
name | string | 128 | Nome do serviço (Somente leitura). | |
copyToChildren | bool | * | Se este valor for verdadeiro, será incluído esse serviço para todas as pessoas ligadas a esta hierarquia. *Se este valor não for informado o mesmo será populado por padrão como verdadeiro. |
Pessoas » Campos adicionais
person.customfieldvalues[n]
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
customFieldId | int | 64 | ✓ | Id do campo adicional (pode ser obtido na listagem de campos adicionais no website). |
customFieldRuleId | int | 64 | ✓ | Id da regra de exibição dos campos adicionais (pode ser obtido na listagem de regras para exibição no website). |
line | int | 64 | ✓ | Número da linha da regra de exibição na tela do cadastro da pessoa. Quando a regra não permitir a adição de novas linhas deve ser informado o valor 1 e não devem ser repetidos valores de campos adicionais para o id da regra em conjunto com o id do campo. Para alterar o valor de um campo deve ser informada a linha em que ele se encontra. Os campos que estiverem na base de dados e não forem enviados no corpo da requisição serão excluídos. |
value | string | max | * | Valor texto do campo adicional. *Obrigatório quando o tipo do campo for: texto de uma linha, texto com várias linhas, texto HTML, expressão regular, numérico, data, hora, data e hora, e-mail, telefone ou URL. Os campos de data devem estar em horário *UTC e no formato YYYY-MM-DDThh:MM:ss.000Z e o campo hora deve ser informado juntamente com a data fixa "1991-01-01". O campo numérico deve estar no formato brasileiro, por exemplo "1.530,75". |
items | array | * | Lista de itens. *Obrigatório quando o tipo do campo for: lista de valores, lista de pessoas, lista de clientes, lista de agentes, seleção múltipla ou seleção única. Deve ser informado apenas um item se o campo adicional não permitir seleção múltipla. Quando o campo for arquivo, ele é somente leitura. ver documentação |
Pessoas » Campos adicionais » Itens
person.customfieldvalues.items[n]
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
personId | int | 64 | * | Id (Cod. ref.) da empresa, departamento ou pessoa. *Obrigatório quando o tipo do campo for lista de pessoas. |
clientId | int | 64 | * | Id (Cod. ref.) da empresa, departamento ou pessoa. *Obrigatório quando o tipo do campo for lista de clientes. |
team | string | 128 | * | Nome da equipe. *Obrigatório quando o tipo do campo lista de agentes (o personId pode ser informado para especificar o agente da equipe). |
customFieldItem | string | 256 | * | Nome do item do campo adicional. *Obrigatório quando o tipo do campo for: lista de valores, seleção múltipla ou seleção única. |
Pessoas » Ativos
person.atAssets[n]
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
Id | string | 64 | * | Campo Cód. Ref. Identificador único do ativo. (Alfanumérico) |
name | string | 64 | Nome do ativo | |
label | string | 64 |
Campo etiqueta (Alfanumérico) |
*UTC: O Tempo Universal Coordenado (do inglês Universal Time Coordinated) é o fuso horário de referência a partir do qual se calculam todas as outras zonas horárias do mundo. Ex: Se o seu fuso horário for o de Brasília (UTC-03:00) e o horário atual for 15h30, o horário UTC será 18h30.
Trabalhando com os dados
Para ter acesso aos dados é necessário que previamente seja gerada uma chave para a API
Para gerar uma chave para a API (token), acesse ao Movidesk, vá em Configurações / Conta / Parâmetros e na guia ambiente clique no botão "Gerar nova chave" caso ainda não tenha uma criada.
Você poderá repetir essa operação sempre que quiser gerar uma nova chave de acesso, mas lembre-se que ao gerar uma nova chave, todos os programas que utilizarem a chave antiga irão parar de funcionar.
Todo o fluxo de dados (Visualização/Inserção/Alteração) devem possuir o formato JSON conforme exemplo abaixo:
{ "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": "pt-BR",
"timeZoneId": "America/Sao_Paulo", "createdDate": "2014-12-17T18:00:43.3339728",
"observations": "Cadastro realizado via api de pessoas.", "addresses": [ { "addressType": "Comercial", "country": "Brasil", "postalCode": "89035200", "state": "Santa Catarina", "district": "Vila Nova", "street": "Rua Joinville", "number": "209", "complement": "Sala 201", "reference": "Próximo a FURB", "isDefault": true } ], "contacts": [ { "contactType": "Telefone comercial", "contact": "(47) 3035-4150", "isDefault": true }, { "contactType": "Telefone celular", "contact": "(47) 9999-9999", "isDefault": false } ], "emails": [ { "emailType": "Profissional", "email": "atendimento@movimentti.movidesk.com", "isDefault": true } ], "teams": [ "Administradores", "Consultoria" ], "relationships": [ { "id": "2113", "name": "Movimentti", "slaAgreement": "Contrato de SLA padrão", "forceChildrenToHaveSomeAgreement": false,
"allowAllServices": false,
"services": [
{
"id": 5706,
"name": "Suporte"
}
] } ],
"customFieldValues": [
{
"customFieldId": 3,
"customFieldRuleId": 2,
"line": 1,
"value": null,
"items": [
{
"personId": null,
"clientId": null,
"team": null,
"customFieldItem": "um"
}
]
},
{
"customFieldId": 1,
"customFieldRuleId": 1,
"line": 1,
"value": "texto via api",
"items": []
}
] }
Obtendo dados
Método GET
Obtendo uma única pessoa
GET: /persons
Parametros: id, token
Exemplo:
Obtendo a pessoa com o id 1
GET: https://api.movidesk.com/public/v1/persons?token=52ee6ca5-8639-422b-bafe-470013c11176&id=1
Retorno:
{ "id": "1",
"codeReferenceAdditional": "33B", "isActive": true, "personType": 1, "profileType": 3, "accessProfile": "Administradores", "businessName": "Movidesk", "corporateName": "Movimentti sistemas", "cpfCnpj": "012345678900", "userName": "admin", ... Demais colunas no formato do layout acima }
Obtendo uma lista de pessoas
GET: /persons
Parametros: token
Exemplo:
Obtendo uma lista de pessoas
GET: https://api.movidesk.com/public/v1/persons?token=52ee6ca5-8639-422b-bafe-470013c11176
Retorno:
[ { "id": "1",
"codeReferenceAdditional": "33B", "isActive": true, "personType": 2, "profileType": 3, "accessProfile": "Administradores", "businessName": "Movidesk", "corporateName": "Movimentti sistemas", "cpfCnpj": "012345678900", "userName": "admin", ... Demais colunas no formato do layout acima }, { "id": "2",
"codeReferenceAdditional": "34B", "isActive": true, "personType": 1, "profileType": 1, "accessProfile": "Clientes", "businessName": "Cliente A", "corporateName": "Cliente A", "cpfCnpj": "012345678901", "userName": "clienteA", ... Demais colunas no formato do layout acima } ... Demais itens da lista ]
Obtendo pessoas com filtros
GET: /persons
Para permitir e simplificar consultas com filtros, a API utiliza o protocolo aberto OData. Os filtros possíveis são:
Parametros: token
• $filter: a expressão especificada com esse filtro é avaliada para cada item do retorno da consulta e somente os itens em que o resultado da expressão for verdadeiro serão incluídos no retorno final;
• $orderby: permite que os itens do retorno da consulta sejam ordenados de forma ascendente (asc) ou descendente (desc). Se não for especificado asc ou desc, o padrão será asc;
• $top: permite especificar o número de itens que devem ser incluídos no retorno da consulta;
• $skip: permite especificar a quantidade de itens que devem ser ignorados e não incluídos no retorno da consulta;
• $select: permite especificar propriedades especificas dos itens que devem ser preenchidas no retorno da consulta;
• $expand: permite expandir as coleções filhas dos itens consultados.
Observação: cláusulas $select sempre são ignoradas quando estão dentro de um $expand. Ou seja, quando existe um $expand, a API retorna todos os parâmetros disponíveis no array, não é possível limitar.
Exemplos:
Obtendo lista de pessoas que sejam do tipo de perfil cliente:
GET: https://api.movidesk.com/public/v1/persons?token=52ee6ca5-8639-422b-bafe-470013c11176&$filter=profileType eq 2
Retorno:
[ { "id": "1",
"codeReferenceAdditional": "33B", "isActive": true, "personType": 2, "profileType": 2, "accessProfile": "Clientes", "businessName": "Cliente A", "corporateName": "Cliente A", "cpfCnpj": "012345678900", "userName": "clienteA", ... Demais colunas no formato do layout acima }, { "id": "2",
"codeReferenceAdditional": "34B", "isActive": true, "personType": 1, "profileType": 2, "accessProfile": "Clientes", "businessName": "Cliente B", "corporateName": "Cliente B", "cpfCnpj": "012345678901", "userName": "clienteB", ... Demais colunas no formato do layout acima } ... Demais itens da lista que possuam o profileType igual a 2 ]
Obtendo lista de pessoas que sejam do tipo cliente e ordenadas de forma descendente em relação ao id:
GET: https://api.movidesk.com/public/v1/persons?token=52ee6ca5-8639-422b-bafe-470013c11176&$filter=profileType eq 2&$orderby=id desc
Retorno:
[
{
"id": "2",
"codeReferenceAdditional": "34B",
"isActive": true, "personType": 1,
"profileType": 2, "accessProfile": "Clientes",
"businessName": "Cliente B",
"corporateName": "Cliente B",
"cpfCnpj": "012345678901",
"userName": "clienteB",
... Demais colunas no formato do layout acima },
{ "id": "1",
"codeReferenceAdditional": "33B", "isActive": true, "personType": 2, "profileType": 2, "accessProfile": "Clientes", "businessName": "Cliente A", "corporateName": "Cliente A", "cpfCnpj": "012345678900", "userName": "clienteA", ... Demais colunas no formato do layout acima } ... Demais itens da lista ordenados de forma descendente em relação ao id e que possuam o profileType igual a 2 ]
Obtendo lista de pessoas que sejam do tipo cliente, ordenadas de forma descendente em relação ao id e filtrando o retorno para obter apenas 100 pessoas, mas pulando as primeiras 100 (utilizado para paginação do retorno, no caso para obter a 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
Retorno:
[
{
"id": "102",
"codeReferenceAdditional": "134B",
"isActive": true,
"personType": 1,
"profileType": 2,
"accessProfile": "Clientes",
"businessName": "Cliente B",
"corporateName": "Cliente B",
"cpfCnpj": "012345678901",
"userName": "clienteB",
... Demais colunas no formato do layout acima },
{ "id": "101",
"codeReferenceAdditional": "133B", "isActive": true, "personType": 2, "profileType": 2, "accessProfile": "Clientes", "businessName": "Cliente A", "corporateName": "Cliente A", "cpfCnpj": "012345678900", "userName": "clienteA", ... Demais colunas no formato do layout acima } ... Demais 98 itens da lista ordenados de forma descendente em relação ao id e que possuam o profileType igual a 2 ]
Obtendo o id e o nome de pessoas que sejam do tipo cliente, ordenadas de forma descendente em relação ao id e filtrando o retorno para obter apenas 100 pessoas, mas pulando as primeiras 100 (utilizado para paginação do retorno, no caso para obter a 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
Retorno:
[
{
"id": "102",
"businessName": "Cliente B"
},
{ "id": "101", "businessName": "Cliente A" } ... Demais 98 itens da lista ordenados de forma descendente em relação ao id e que possuam o profileType igual a 2 ]
Obtendo o id, o nome, as organizações e os serviços permitidos das pessoas que sejam do tipo cliente, ordenadas de forma descendente em relação ao id e filtrando o retorno para obter apenas 100 pessoas, mas pulando as primeiras 100 (utilizado para paginação do retorno, no caso para obter a 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
Retorno:
[
{
"id": "102",
"businessName": "Cliente B",
"relationships": [ { "id": "2113", "name": "Movimentti", "slaAgreement": "Contrato de SLA padrão", "forceChildrenToHaveSomeAgreement": false, "allowAllServices": false, "services": [ { "id": 5706, "name": "Suporte" } ] } ]},
{ "id": "101", "businessName": "Cliente A", "relationships": [ { "slaAgreement": "Contrato de SLA padrão", "forceChildrenToHaveSomeAgreement": false, "allowAllServices": true, "services": [] } ]} } ... Demais 98 itens da lista ordenados de forma descendente em relação ao id e que possuam o profileType igual a 2
]
Obtendo as pessoas que contenham ao menos um e-mail 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')
Retorno:
[
{
"id": "102",
"businessName": "Cliente B",
... Demais propriedades da pessoa
"emails": [
{
"emailType": "Comercial",
"email": "email@movidesk.com",
"isDefault": true
},
{
"emailType": "Pessoal",
"email": "outro.email@movidesk.com",
"isDefault": false
}],
{ "id": "101", "businessName": "Cliente A",
... Demais propriedades da pessoa "emails": [
{
"emailType": "Comercial",
"email": "email@movidesk.com",
"isDefault": true
} ]} } ... Demais itens da lista que contenham um dos e-mails igual a "email@movidesk.com"
]
Inserindo dados
Método POST
POST: /persons
Parametros: token, returnAllProperties (valor default é false)
Headers: Content-Type: application/json
Corpo do post: {objeto JSON}
Exemplo:
POST: https://api.movidesk.com/public/v1/persons?token=52ee6ca5-8639-422b-bafe-470013c11176&returnAllProperties=false Headers: Content-Type: application/json RequestBody: { "id": "1",
"codRefAdditional": "33B", "isActive": true, "personType": 2, "profileType": 3, "accessProfile": "Administradores", "businessName": "Movidesk", "corporateName": "Movimentti sistemas", "cpfCnpj": "012345678900", "userName": "admin", ... Demais colunas no formato do layout acima }
Retorno: Status 200 e no corpo o id (código de referência) da pessoa inserida.
Inserindo organizações para uma pessoa
Método POST
POST: /persons/relationships
Parametros: token, id
Headers: Content-Type: application/json
Corpo do post: {objeto JSON}
Exemplo:
Incluindo relacionamento de pessoa de id 1 com organização de 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
}
] }
Retorno: Status 200
Atualizando dados
Método PATCH
Diferentemente da inserção de dados (POST) a atualização é efetuada de forma parcial. Sendo assim é necessário enviar ao servidor somente os dados que se deseja alterar.
Entretanto a alteração das listas (objetos filhos) sempre sobrescreve todos os itens da lista.
PATCH: /persons
Parametros: token, id
Headers: Content-Type: application/json
Corpo: {objeto JSON}
Exemplos:
Alterando o nome da pessoa com 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" }
Retorno: Status 200
No exemplo acima, é alterado somente o campo businessName, os demais campos permanecem inalterados
Removendo os emails da pessoa com 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": [] }
Retorno: Status 200
Como os emails estão em uma lista, no exemplo acima, todos os emails são removidos. Pois os valores informados na lista sempre sobrescrevem os valores previamente gravados.
Excluíndo pessoas
Método DELETE
DELETE: /persons
Parametros: token, id
Headers: Content-Type: application/json
Corpo o post: {objeto JSON}
Exemplos:
Excluindo a pessoa com id 1
DELETE: https://api.movidesk.com/public/v1/persons?token=52ee6ca5-8639-422b-bafe-470013c11176&id=1 Headers: Content-Type: application/json
Retorno: Status 200
Exemplo de código fonte na linguagem C# da chamada da API
Método POST
try
{
var pessoa = new
{
isActive = true
};
var json = JsonConvert.SerializeObject(pessoa);
var response = await SendAsync("https://api.movidesk.com/public/v1/persons?token=SEUTOKEN",
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();
}
}
}
No exemplo acima a inserção da pessoa não será realizada, pois existem vários erros no corpo da requisição. Os erros são detalhados na variável response e devem ser corrigidos seguindo essa documentação.