API do Movidesk - Pessoas
43 min
Criado por Reinaldo Martins Thoma em 15/07/2016 13:13
Atualizado por Vinicius Modesto em 25/08/2026 14:56
Importante: Nossas API's possuem um limite de 10 requisições por minuto para garantir um comportamento saudável no seu uso. Caso você tenha um cenário específico que precise aumentar o uso, entre em contato com o nosso time de atendimento para análise de viabilidade. Saiba mais sobre horários e limites das API's
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

PropriedadeTipoTamanhoObrigatórioDescrição
idstring64 Campo Cód. Ref. Identificador único da pessoa (Alfanumérico). Somente leitura após a criação.
codeReferenceAdditionalstring64 Campo Cód. Ref. Adicional. Identificador não obrigatório, porém único da pessoa. (Alfanumérico)
isActivebool ✓Campo Pessoa habilitada.
personTypeint1✓Tipo da pessoa. Pessoa = 1, Empresa = 2, Departamento = 4.
profileTypeint1✓Tipo do perfil. Agente = 1, Cliente = 2, Agente e Cliente = 3.
accessProfilestring128*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.
corporateNamestring128*Razão social. *Campo obrigatório quando a pessoa é do tipo Empresa e o Nome fantasia não foi informado.
businessNamestring128✓Nome fantasia para empresas ou Nome para pessoas e departamentos.
businessBranchstring128 Campo Ramo de atividade para pessoa do tipo Empresa.
cpfCnpjstring14 CPF (11 dígitos) para pessoas, CNPJ (14 dígitos) para empresas e inexistente para departamentos.
userNamestring64* 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.
passwordstring64 Campo senha. O conteúdo da senha é somente para gravação e não pode ser obtido na consulta. 
O campo senha precisa ter: 
  • Ter entre 12 e 64 caracteres;
  • Possuir maiúsculas e minúsculas;
  • Possuir algum caractere especial ([ ] { } ( ) @ ? ! # $ % & * ");
  • Ser diferente do nome de usuário;
  • Ser diferente das últimas 10 senhas.
rolestring128 Cargo da pessoa. Se informado um cargo inexistente o mesmo será criado.
bossIdstring64 Id (Cod. Ref.) existente do superior hierárquico da pessoa. 
bossNamestring128 Nome do superior hierárquico (somente leitura).
classificationstring128 Classificação da pessoa. Se informada uma classificação inexistente, a mesma será criada.
cultureIdstring32*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.
timeZoneIdstring64*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.
authenticateOnstringmax 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
createdDatedatetime 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.
createdBystring128 Cod. Ref. da pessoa que criou a pessoa consultada. Campo somente leitura.
changedDatedatetime UTC  Data da ultima alteração da pessoa. Campo somente leitura.
changedBystring128 Cod. Ref. da pessoa que alterou pela ultima vez a pessoa consultada. Campo somente leitura.
observationsstringmax Observações.
addressesarray  Lista com os endereços. ver documentação
contactsarray  Lista com os contatos. ver documentação
emailsarray  Lista com os emails. ver documentação
teamsarray *Array de strings com o nome das equipes. *Quando o tipo de perfil da pessoa for Agente, é necessário informar ao menos uma equipe.
relationshipsarray * 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
customFieldValuesarray  Lista com os valores dos campos adicionais do ticket. ver documentação
atAssetsarray  Lista com os valores dos Ativos.
Atenção: As APIs do Movidesk podem levar alguns minutos para replicar tickets, usuários e outros registros sejam eles novos e/ou modificados. Por isso, é possível que eles não apareçam nos resultados da pesquisa imediatamente. 

Pessoas » Endereços

person.addresses[n]

PropriedadeTipoTamanhoObrigatórioDescrição
addressTypestring128✓Tipo do endereço (Comercial, Residencial, etc). Se informado um tipo inexistente, o mesmo será criado.
countrystring128 Nome do pais.
postalCodestring32 CEP.
statestring128 Estado.
citystring128 Cidade.
districtstring128 Bairro.
streetstring128 Nome da rua ex: Rua Joinville.
numberstring32 Número.
complementstring128 Complemento ex: Sala 201.
referencestring128 Ponto de referência ex: Próximo a universidade.
isDefaultbool ✓Indicador se esse é o endereço principal da pessoa. Somente um endereço poderá ser o endereço principal. 

Pessoas » Contatos

person.contacts[n]

PropriedadeTipoTamanhoObrigatórioDescrição
contactTypestring128✓Tipo do contato ex: (Telefone, Celular, Skype, etc). Se informado um tipo inexistente, o mesmo será criado.
contactstring128✓Descrição ex: (11) 9999-9999.
isDefaultbool ✓Indicador se esse é o contato principal da pessoa. Somente um contato poderá ser o contato principal.  

Pessoas » Emails

person.emails[n]

PropriedadeTipoTamanhoObrigatórioDescrição
emailTypestring128✓Tipo do email Ex: (Pessoal, Profissional, etc). Se informado um tipo inexistente, o mesmo será criado.
emailstring128✓E-mail da pessoa, deve ser válido.
isDefaultbool ✓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]

PropriedadeTipoTamanhoObrigatórioDescrição
idstring64 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.
namestring128 Descrição da hierarquia (Somente leitura).
slaAgreementstring128 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.
forceChildrenToHaveSomeAgreementbool ✓Se este valor for informado como verdadeiro, todas as pessoas ligadas a esta hierarquia obrigatoriamente terão o mesmo contrato de SLA.
allowAllServicesbool *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.
includeInParentsbool  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.
loadChildOrganizationsbool  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.
servicesarray *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]

PropriedadeTipoTamanhoObrigatórioDescrição
idint10✓Id (Código) do serviço. O mesmo pode ser obtido na consulta de serviços no website.
namestring128 Nome do serviço (Somente leitura).
copyToChildrenbool *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]

PropriedadeTipoTamanhoObrigatórioDescrição
customFieldIdint64✓Id do campo adicional (pode ser obtido na listagem de campos adicionais no website).
customFieldRuleIdint64✓Id da regra de exibição dos campos adicionais (pode ser obtido na listagem de regras para exibição no website).
lineint64✓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.
valuestringmax *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".
itemsarray * 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]

PropriedadeTipoTamanhoObrigatórioDescrição
personIdint64*Id (Cod. ref.) da empresa, departamento ou pessoa. *Obrigatório quando o tipo do campo for lista de pessoas.
clientIdint64*Id (Cod. ref.) da empresa, departamento ou pessoa. *Obrigatório quando o tipo do campo for lista de clientes.
teamstring128*Nome da equipe. *Obrigatório quando o tipo do campo lista de agentes (o personId pode ser informado para especificar o agente da equipe).
customFieldItemstring256*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]

PropriedadeTipoTamanhoObrigatórioDescrição
Idstring64*Campo Cód. Ref. Identificador único do ativo.  (Alfanumérico)
namestring64 Nome do ativo
labelstring64 

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
Parametros: token

Para permitir e simplificar consultas com filtros, a API utiliza o protocolo aberto OData. Os filtros possíveis são:
• $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",
  "codeRefAdditional": "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.

Dê uma avaliação para este artigo
Últimos artigos visitados