API do Movidesk - Pessoas
43 min
Criado por Reinaldo Martins Thoma em 15/07/2016 13:13
Atualizado por Thiago Tamanini em 28/07/2022 11:53
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

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.
email 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
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",
"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.

Este artigo foi útil para você?
Últimos artigos visitados