API Inbox. 1.5

Prev Next

Versão atualizada da API do Inbox. Por gentileza atualizar para essa versão.

#API do DT Ticket (v1.5)

Endereço base

Todos os endereços referenciados neste documento tem como base a seguinte URL:

https://api.directtalk.com.br/1.5/ticket

A API do Ticket é servida somente sob HTTPS. Para garantir a privacidade das informações, HTTP não criptografado não é suportado.

Autenticação/Autorização

A Hi Platform irá fornecer um usuário e uma senha de acesso exclusivo
para o uso da API. Saiba mais.
A autenticação da API será feita utilizando o protocolo Basic.

Vamos descrever brevemente o como autenticar usando o protocolo Basic.

Considere hipoteticamente que o usuário da API passado é usuarioApi e a senha é senhaApi.

Primeiro, calcule um token da seguinte forma:

  • Concatene o usuário e a senha separado por :. No nosso exemplo usuarioApi:senhaApi;
  • Codifique o resultado acima utilizando o formato Base64. No nosso exemplo o exemplo o resultado (token) dessa operação é dXN1YXJpb0FwaTpzZW5oYUFwaQ==.

O token deve ser passado em todas as requisições através do header HTTP Authorization. O valor do header é a junção do esquema de autenticação (no caso Basic) com o token previamente enviado, separados por um espaço em branco. Exemplo:

Authorization: Basic dXN1YXJpb0FwaTpzZW5oYUFwaQ==

Caso o token de autenticação seja inválido, o acesso será negado e um status code HTTP 401 (Unauthorized) será devolvido. Caso, tente acessar com um usuário e senha válidos da Hi Platform, mas que não seja um usuário da API o acesso será negado e um status code HTTP 403 (Forbidden) será devolvido.

Cabeçalhos comuns a todas as operações

As requisições para a API do Ticket devem possuir os seguintes cabeçalhos:

Header Valor
Authorization Basic [basic authentication token]
Content-Type application/json
Accept application/json

Cotas de consumo

O cliente que usar essa API estará sujeito a um limite na quantidade de requisições que poderá enviar em um dado período de tempo. Essa prática é conhecida como Rate Limiting e é utilizada para garantir a qualidade do serviço.

A cada 'X' minutos (variável conforme o escopo solicitado) o cliente tem direito a fazer um determinado número de requisições (também variável conforme o escopo). Passado o tempo especificado, o limite é reiniciado.

O consumo do limite pode variar conforme o escopo e deve ser acompanhado pelos seguintes http headers:

  • X-Rate-Limit-Limit: informa o total de requisições permitidas dentro de uma janela de X minutos.
  • X-Rate-Limit-Remaining: informa quantas requisições para API ainda são permitidas dentro da janela de X minutos corrente. Se uma requisição for feita após esse valor retornar 0, a API retornará o HTTP status code 429 (Too many connections.).
  • X-Rate-Limit-Reset: devolve o número de segundos disponíveis na janela atual.

Escopos de rate limiting

Nome Limite de requisições Janela de tempo (em minutos)
Padrão 100 5

Importante: Certifique-se de checar o escopo de rate limiting no resumo de cada operação.

Paginação

Determinadas operações podem potencialmente retornar muitos registros. Nestes casos os resultados serão sempre paginados e os seguintes parâmetros opcionais são suportados através de query string:

  • pageNumber: Número da página desejada. Se esse parâmetro não for passado ou for maior do que a quantidade de páginas disponíveis, será assumido que a busca é da página 1;
  • pageSize: Quantidade máxima de registros por página. Deve ser um número entre 10 e 1000. Se esse parâmetro não for passado, será assumido o valor 1000;

Para auxiliar na navegação nos resultados retornados, as operações que requerem paginação devolverão os seguintes cabeçalhos HTTP:

X-Pagination-TotalResult: Total de resultados.
X-Pagination-TotalPages: Total de páginas.
Link: <https://api.directtalk.com.br/1.5/ticket/...\>; rel="First", 
      <https://api.directtalk.com.br/1.5/ticket/...\>; rel="Previous", 
      <https://api.directtalk.com.br/1.5/ticket/...\>; rel="Next", 
      <https://api.directtalk.com.br/1.5/ticket/...\>; rel="Last"

É importante notar que a existência dos links está sujeita ao contexto atual. Por exemplo: se a página atual for a primeira, então o link Previous não estará disponível.

Importante: Certifique-se de checar a paginação no resumo de cada operação.

Retornos comuns para todas as operações em caso de erro

##### Cabeçalhos

Header Valor
Content-Type application/json

##### Códigos HTTP

HTTP status code Descrição
400 Erro no "formato" da requisição conforme o requisito de cada operação.
401 O header authorization está ausente ou seu conteúdo não pode ser validado contra o serviço de autenticação.
403 As credenciais existem mas são inválidas para uso da API.
429 A cota de consumo foi excedida na janela atual, conforme descrito na seção sobre cotas de consumo.
500 Erro interno não especificado.

##### Corpo

	{
		"messages": [
						"descrição do erro",
						"descrição do erro",
						"..."
					]
	}

# Sobre o formato de datas
Nessa API, a fim de evitar problemas com formatos de campos do tipo Data (via parâmetro de requisição ou em payloads das requisições), convencionou-se utilizar o formato de data conhecido como EPOCH ou Unix Time (https://en.wikipedia.org/wiki/Unix_time), onde a data é representada por uma sequência numérica.

# Mudanças da versão

Histórico de mudanças que foram realizadas na v1.5

Data Mudança
12/08/21 [Departamentalização]
01/09/21 [Escolher conta de saída (email)]
04/01/22 [Incluido possibilidade para incluir CC e CCO na criação do ticket]
15/03/22 [Retornando a data de reabertura do ticket]
14/04/22 [Retornar campos customizados para operação]

# Sub-Recursos

Departamentos

  • GET /departments [(listar departamentos ativos)]

Grupos

Tipos

Estados

Usuários

Contas de email cadastradas

Campos Customizados

Tickets

Alterações

Comentários

Anexos

Monitoramento

Webhook

Entregando os dados

  • Por questões de segurança, os clientes do webhook receberão via POST um “id do payload” que lhes permitirá realizar uma chamada autenticada na operação /webhook/payloads/{id}, para recuperar o payload específico.

Algumas observações

  • O POST do lado do cliente deve suportar application/json;
  • O POST do lado do cliente não deve ser autenticado;
  • O POST do lado do cliente deve responder em até 500 milisegundos;
  • Um id de payload “vive” apenas durante 24 horas ou até que seja recuperado;

Webhook Endpoints

Webhook - Listar as assinaturas de um tipo específico

# Listar departamentos ativos

Retorna os departamentos ativos para a operação que possui o produto Inbox configurado

##### Resumo

Informação Valor
Método HTTP GET
URL /departments
Escopo de rate limiting Padrão
Paginação Não se aplica

RESPOSTA

##### Cabeçalhos em caso de erro (além dos comuns a todas as operações)

Header Valor
HTTP status code 400 (Operação não departamentalizada)

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	{
		[
			{
				"id":"...",
			 	"name":"..."
			},
			...
		]
	}

Voltar para os sub-recursos afetados

# Listar grupos ativos

Retorna os grupos ativos para a operação

##### Resumo

Informação Valor
Método HTTP GET
URL /groups
Escopo de rate limiting Padrão
Paginação Requerido

REQUISIÇÃO

##### Parâmetros obrigatórios (caso operação possua departamentos, caso contrário não precisa ser informado)

  • departmentId: Id do departamento, lista todos os grupos associados a esse departamento.

##### Formato

  • O departmentId informado deve ser um GUID válido.

RESPOSTA

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	{
		[
			{
				"id":"...",
			 	"name":"..."
			},
			...
		]
	}

Voltar para todos os Sub-Recursos

# Listar tipos ativos

Retorna os tipos ativos existentes para a operação

##### Resumo

Informação Valor
Método HTTP GET
URL /types
Escopo de rate limiting Padrão
Paginação Requerido

REQUISIÇÃO

##### Parâmetros obrigatórios (caso operação possua departamentos, caso contrário não precisa ser informado)

  • departmentId: Id do departamento, lista todos os grupos associados a esse departamento.

##### Formato

  • O departmentId informado deve ser um GUID válido.

RESPOSTA

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	{
		[
			{
				"id":"...",
			 	"name":"..."
			},
			...
		]
	}

Voltar para todos os sub-recursos

# Listar estados

Retorna os possíveis estados para os tickets existentes

##### Resumo

Informação Valor
Método HTTP GET
URL /states
Escopo de rate limiting Padrão
Paginação Não requerido

RESPOSTA

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	{
		[
			{
				"id":"...",
			 	"name":"..."
			},
			...
		]
	}

Voltar para todos os sub-recursos

# Filtrar usuários

Lista os usuários ativos para a operação, habilitados no Inbox.
Essa requisição permite também filtrar usuários com acessos a grupos (quando o vínculo é feito através da plataforma Supervisor)

##### Resumo

Informação Valor
Método HTTP GET
URL /users
Escopo de rate limiting Padrão
Paginação Requerido

REQUISIÇÃO

##### Parâmetros obrigatórios (caso operação possua departamentos, caso contrário não precisa ser informado)

  • departmentId: Id do departamento, lista todas as contas de email associados a esse departamento.

##### Parâmetros opcionais

  • groupId: Id do grupo, quando informado, lista todos os usuários associados ao grupo.

##### Formato

  • O departmentId informado deve ser um GUID válido.
  • O groupId informado deve ser um GUID válido.

RESPOSTA

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	{
		[
			{
				"id":"...",
			 	"name":"..."
			},
			...
		]
	}

Voltar para todos os sub-recursos

# Listar Contas Email

Lista as contas de email associadas ao Inbox para a operação.

##### Resumo

Informação Valor
Método HTTP GET
URL /mailaccounts
Escopo de rate limiting Padrão
Paginação Não se aplica

REQUISIÇÃO

##### Parâmetros obrigatórios (caso operação possua departamentos, caso contrário não precisa ser informado)

  • departmentId: Id do departamento, lista todas as contas de email associados a esse departamento.

##### Parâmetros opcionais

  • includeInactives: Quando informado como true, retorna também as contas que estão inativas

##### Formato

  • O departmentId informado deve ser um GUID válido.
  • O includeInactives informado deve ser um boolean válido.

RESPOSTA

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	{
		[
			{
				"id": "...",
				"accountAddress": "...",
				"accountName": "...",
				"group": {
							"id": "...",
							"name": "..."
						},
				"type": {
							"id": "...",
							"name": "..."
						},
				"active": "..."
			},
			...
		]
	}

Voltar para todos os sub-recursos

# Obter Campos Customizados

Retorna os campos do formulário padrão para a operação/departamento.
Esses campos podem ser usados nas chamadas de criação de ticket, de inserir identificações e ao filtrar tickets.

##### Resumo

Informação Valor
Método HTTP GET
URL /customforms
Escopo de rate limiting Padrão
Paginação Não se aplica

REQUISIÇÃO

##### Parâmetros obrigatórios (caso operação possua departamentos, caso contrário não precisa ser informado)

  • departmentId: Id do departamento

##### Formato

  • Quando informado, o departmentId informado deve ser um GUID válido.

RESPOSTA

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	{
		[
			{
				"name": "...",
				"description": "...",
				"required": "..."				
			},
			...
		]
	}

Voltar para todos os sub-recursos

# Criar um novo ticket

##### Resumo

Informação Valor
Método HTTP POST
URL /tickets
Escopo de rate limiting Padrão
Paginação Não se aplica

REQUISIÇÃO

##### Corpo

{
	"creator": "...",
	"subject": "...",
	"description": "...",
	"type": "...",
	"group": "...",
	"state": "...",
	"deadline": 1,
	"responsible":"...",
	"externaldata": [
						{
							"datatype":0,
							"key":"...",
							"value":"..."
						}
					],
	"identifications": [
						{
							"key":"...",
							"value":"..."
						}
					]
}
  • creator: Identificador do usuário que está criando o ticket.
  • subject: Assunto.
  • description: Descrição.
  • type: Identificador do tipo.
  • group: Identificador do grupo.
  • state: Identificador estado.
  • deadline: (opcional) Data correspondente ao prazo, no formato epoch. Quando não informada, o prazo será determinado pelo tipo.
  • responsible: (opcional) Identificador do usuário que é responsável pelo ticket.
  • externaldata: (opcional) Informações adicionais que serão incluídas no ticket.
  • datatype: Identificador do tipo de informação. Trataremos os tipos 0 - Email, 1 - ConsumerName, 2 - Bot e 3 - GenericIdentification
    • key: Chave da informação que será incluída
    • value: Valor da informação que será incluída.
  • identifications: (opcional) Chaves de identificação - devem coincidir com os campos customizados da operação (para saber os campos possíveis, usar a chamada /customforms).
    • key: nome do campo do formulário de campos customizados (Variavel do campo)
    • value: Valor da informação que será incluída.

##### Formato

  • O usuário criador deve ser informado e existir.
  • O assunto deve ser informado e ter até 200 caracteres.
  • A descrição deve ser informada e ter até 1600 caracteres.
  • O tipo deve ser informado e existir.
  • O grupo deve ser informado e existir.
  • O estado deve ser informado e existir.
  • O estado não deve fechar o ticket.
  • O prazo (quando informado) deve ser válido.
  • O usuário responsável (quando informado) deve existir.
  • O usuário responsável (quando informado) deve fazer parte do grupo.
  • Identifications: se o nome do campo não coincidir com os campos do formulário customizado (Variavel do campo) a informação será descartada.

RESPOSTA

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 201
Location https://api.directtalk.com.br/1.0/ticket/tickets/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX

##### Corpo em caso de sucesso

	{
		"ticketId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX"
	}

Voltar para todos os sub-recursos

# Criar um novo ticket por email

##### Resumo

Informação Valor
Método HTTP POST
URL /tickets/mail
Escopo de rate limiting Padrão
Paginação Não se aplica

REQUISIÇÃO

##### Corpo

{
	"subject": "...",
	"description": "...",
	"type": "...",
	"group": "...",
	"state": "...",
	"deadline": 1,
	"responsible":"...",
	"emailConsumer": "...",
	"nameConsumer": "...",
	"accountMail": "...",
	"identifications": 
					[
						{
							"key":"...",
							"value":"..."
						}
					]
	"CC": 
					[
						{
							"...","...",...,"..."
							
						}
					]
	"CCO": 
					[
						{							
							"...","...",...,"..."
						}
					]
}
  • subject: Assunto.
  • description: Descrição.
  • type: Identificador do tipo.
  • group: Identificador do grupo.
  • state: Identificador estado.
  • deadline: (opcional) Data correspondente ao prazo, no formato epoch. Quando não informada, o prazo será determinado pelo tipo.
  • responsible: (opcional) Identificador do usuário que é responsável pelo ticket.
  • emailConsumer: email do consumidor.
  • nameConsumer: nome do consumidor.
  • accountMail: Identificador da conta de email que deverá ser utilizada para enviar as mensagens para o consumidor.
  • identifications: (opcional) Chaves de identificação - devem coincidir com os campos customizados da operação (para saber os campos possíveis, usar a chamada /customforms).
    • key: Nome do campo do formulário de campos customizados (Variável do campo)
    • value: Valor da informação que será incluída.
  • CC: lista de emails para serem adicionados como cópia.
  • CCO: lista de emails para serem adicionados cópia oculta.

##### Formato

  • O assunto deve ser informado e ter até 200 caracteres.
  • A descrição deve ser informada e ter até 1600 caracteres.
  • O tipo deve ser informado e existir.
  • O grupo deve ser informado e existir.
  • O estado deve ser informado e existir.
  • O estado não deve fechar o ticket.
  • O prazo (quando informado) deve ser válido.
  • O usuário responsável (quando informado) deve existir.
  • O usuário responsável (quando informado) deve fazer parte do grupo.
  • Identifications: se o nome do campo não coincidir com os campos do formulário customizado (Variável do campo) a informação será descartada.
  • CC e CCO: Os emails devem seguir os padroes RFC 5322 e RFC 5321

RESPOSTA

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 201
Location https://api.directtalk.com.br/1.0/ticket/tickets/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX

##### Corpo em caso de sucesso

	{
		"ticketId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX"
	}

Voltar para todos os sub-recursos

# Alterar um ticket

##### Resumo

Informação Valor
Método HTTP PUT
URL /tickets/{id}
Escopo de rate limiting Padrão
Paginação Não se aplica

REQUISIÇÃO

##### Corpo

{
	"user": "...",
	"subject": "...",
	"description": "...",
	"type": "...",
	"group": "...",
	"state": "...",
	"deadline": 1,
	"responsible":"..."
}
  • user: Identificador do usuário que está alterando o ticket.
  • subject: Assunto.
  • description: Descrição.
  • type: Identificador do tipo.
  • group: Identificador do grupo.
  • state: Identificador estado.
  • deadline: (opcional) Data correspondente ao prazo, no formato epoch.
  • responsible: (opcional) Identificador do usuário que é responsável pelo ticket.

##### Formato

  • O usuário da alteração deve ser informado e existir.
  • O assunto deve ser informado e ter até 200 caracteres.
  • A descrição deve ser informada e ter até 1600 caracteres.
  • O tipo deve ser informado e existir.
  • O grupo deve ser informado e existir.
  • O estado deve ser informado e existir.
  • O estado não deve encerrar o ticket.
  • O prazo (quando informado) deve ser válido.
  • O usuário responsável (quando informado) deve existir.
  • O usuário responsável (quando informado) deve fazer parte do grupo.

RESPOSTA

##### Cabeçalhos em caso de erro (além dos comuns a todas as operações)

Header Valor
HTTP status code 404 (ticket não existe)
HTTP status code 409 (ticket já fechado)

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

Voltar para todos os sub-recursos

# Inserir identificações

##### Resumo

Informação Valor
Método HTTP POST
URL /tickets/{id}/identifications
Escopo de rate limiting Padrão
Paginação Não se aplica

Observação: É através desta requisição que sao realizadas alterações nos formulários do Inbox, logo deve ser realizada apenas após a criação do ticket.

REQUISIÇÃO

##### Parâmetros opcionais

  • scopeId: Id do tipo (se o tipo for informado, o formulário alterado será o formulario do tipo e não o padrão)

##### Corpo

{
	"user": "...",
	"identifications": 
		[
			{
				"key":"...",
				"value":"..."
			}
		]
}
  • user: Identificador do usuário que está alterando o ticket.
  • identifications: Chaves de identificação - devem coincidir com os campos customizados da operação (para saber os campos possíveis, usar a chamada /customforms).
    • key: Nome do campo do formulário de campos customizados (Variável do campo)
    • value: Valor da informação que será incluída.

##### Formato

  • O usuário da alteração deve ser informado e existir.
  • identifications deve ser informado
  • O id do tipo quando informado, deve ser um GUID válido.

RESPOSTA

##### Cabeçalhos em caso de erro (além dos comuns a todas as operações)

Header Valor
HTTP status code 404 (ticket não existe)
HTTP status code 400 (ticket já fechado, e/ou
				    ocorreu erro ao salvar o formulário, nesse caso o objeto de retorno trará as mensagens)

##### Corpo em caso de erro

	{
		"messages": "..."
	}

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

Voltar para todos os sub-recursos

# Fechar um ticket

##### Resumo

Informação Valor
Método HTTP PATCH
URL /tickets/{id}?state=close
Escopo de rate limiting Padrão
Paginação Não se aplica

REQUISIÇÃO

##### Corpo

{
	"user": "..."
}
  • user: Identificação do usuário que está fechando o ticket.

##### Formato

  • O usuário deve ser informado e existir.

RESPOSTA

##### Cabeçalhos em caso de erro (além dos comuns a todas as operações)

Header Valor
HTTP status code 404 (ticket não existe)
HTTP status code 409 (ticket já fechado)

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

Voltar para todos os sub-recursos

# Reabrir um ticket

##### Resumo

Informação Valor
Método HTTP PATCH
URL /tickets/{id}?state=reopen
Escopo de rate limiting Padrão
Paginação Não se aplica

REQUISIÇÃO

##### Corpo

{
	"user": "..."
}
  • user: Identificação do usuário que está reabrindo o ticket.

##### Formato

  • O usuário deve ser informado e existir.

RESPOSTA

##### Cabeçalhos em caso de erro (além dos comuns a todas as operações)

Header Valor
HTTP status code 404 (ticket não existe)
HTTP status code 409 (ticket já aberto)

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

Voltar para todos os sub-recursos

# Filtrar tickets

##### Resumo

Informação Valor
Método HTTP GET
URL /tickets
Escopo de rate limiting Padrão
Paginação Requerido

REQUISIÇÃO

##### Parâmetros obrigatórios (caso operação possua departamentos, caso contrário não precisa ser informado)

  • departmentId: Id do departamento, lista tickets associados a esse departamento.

##### Parâmetros opcionais

  • userId: Identificador do usuário. Quando informado, considera o escopo do usuário para localizar um ticket.
  • groupId: Identificador do grupo. Se houver mais de um, deve ser separado por vírgula.
  • typeId: Identificador do tipo. Se houver mais de um, deve ser separado por vírgula.
  • stateId: Identificador do estado. Se houver mais de um, deve ser separado por vírgula.
  • responsibleId: Identificador do usuário responsável. Se houver mais de um, deve ser separado por vírgula.
  • creatorId: Identificador do usuário criador. Se houver mais de um, deve ser separado por vírgula.
  • startDate: Data/hora inicial para busca, no formato epoch.
  • endDate: Data/hora final para busca, no formato epoch.
  • dateInfo: Parâmetro que informa sobre qual data o intervalo definido pelos parâmetros startDate e endDate dizem respeito. Esse parâmetro suporta duas opções:
    • createDate (padrão)
    • endDate
  • sort: Informação pela qual se deseja ordenar o resultado:
    • number (padrão quando não informado)
    • subject
    • deadline
  • desc: Quando informado, ordena de forma decrescente.
  • externaldata: quando informado busca por tickets que tenham as chaves externas conforme informado. Deverá ser informado qual chave e seu valor separados por | (pipe). Se houver mais de um, deve ser separado por ponto e vírgula. Chaves que podem ser consultadas: email e receipt. Exemplo: email|teste@directtalk.com.br;receipt|0D9I8R7E6C
  • customformsdata: quando informado busca por tickets que tenham os dados de identificação informados. Deverá ser informado qual chave e seu valor separados por | (pipe). Se houver mais de um, deve ser separado por ponto e vírgula. Para saber quais chaves podem ser utilizadas, usar a chamada /customforms (valor do campo name).

##### Formato

  • O departmentId informado deve ser um GUID válido.
  • O userId informado deve ser um GUID válido.
  • O(s) groupId informado(s) deve(m) ser GUID(s) válido(s).
  • O(s) typeId informado(s) deve(m) ser GUID(s) válido(s).
  • O(s) stateId informado(s) deve(m) ser GUID(s) válido(s).
  • O(s) responsibleId informado(s) deve(m) ser GUID(s) válido(s).
  • O(s) creatorId informado(s) deve(m) ser GUID(s) válido(s).
  • O valor informado para deadline deve estar entre os valores suportados.
  • O valor informado para sort deve estar entre os valores suportados.
  • O período informado por startDate e endDate deve ser válido.
  • O período informado deve ter no máximo 31 dias.
  • dateInfo só deve ser informado quando houver um período.
  • O valor informado para dateInfo deve estar entre os valores suportados.

RESPOSTA

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	{
		[
			{
				"id":"...",
				"number": "...",
			 	"subject":"...",
				"description": "...",
				"type": {
							"id":"...",
							"name":"..."
						},
				"group": {
							"id":"...",
							"name":"..."
						},
				"state": {
							"id":"...",
							"name":"..."
						},
				"deadline": 1,
				"reopenDate": 1,
				"responsible":	{
									"id":"...",
									"name":"..."
								},
				"creationDate": "...",
				"creationUser":	{
									"id":"...",
									"name":"..."
								},
				"lastChangeUser":{
									"id":"...",
									"name":"..."
								},
				"endDate": 1,
				"lastChangeDate": 1,
				"formAnswers":	[
								{
									"question":"...",
									"answer":"...",
                                    "defaultForm": true/false,
								}
                            ]
            },
			...
		]
	}
  • id: GUID que representa o identificador do ticket.
  • number: Número do ticket (gerado automaticamente para facilitar localização).
  • subject: Assunto.
  • description: Descrição.
  • type: Tipo.
  • group: Grupo.
  • state: Estado.
  • deadline: Prazo, no formato epoch.
  • reopenDate: Data de reabertura, no formato epoch.
  • responsible: (pode ser nulo) Responsável.
  • creationDate: Data de criação, no formato epoch.
  • creationUser: Usuário que criou o ticket.
  • endDate: (pode ser nulo) Data de encerramento, no formato epoch.
  • lastChangeUser: Usuário que fez a ultima alterção no ticket.
  • lastChangeDate: Data da ultima alteração, no formato epoch.

Voltar para todos os sub-recursos

# Buscar tickets

##### Resumo

Informação Valor
Método HTTP GET
URL /tickets/search
Escopo de rate limiting Padrão
Paginação Requerido

REQUISIÇÃO

##### Parâmetros obrigatórios (caso operação possua departamentos, caso contrário não precisa ser informado)

  • departmentId: Id do departamento, lista tickets associados a esse departamento.

##### Parâmetros obrigatórios

  • text: Valor a ser buscado. A pesquisa é efetuada no campo assunto e na descrição. Pode ser informado um endereço de email (para busca pelo cliente), ou até um texto entre aspas (") para busca exata do texto.

##### Parâmetros opcionais

  • userId: Identificador do usuário. Quando informado, considera o escopo do usuário para localizar um ticket.

##### Formato

  • O departmentId informado deve ser um GUID válido.
  • O userId informado deve ser um GUID válido.
  • O text a ser buscado deve ser preenchido e ter mais de 3 caracteres.

RESPOSTA

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	{
		[
			{
				"id":"...",
				"number": "...",
			 	"subject":"...",
				"description": "...",
				"type": {
							"id":"...",
							"name":"..."
						},
				"group": {
							"id":"...",
							"name":"..."
						},
				"state": {
							"id":"...",
							"name":"..."
						},
				"deadline": 1,
				"reopenDate": 1,
				"responsible":	{
									"id":"...",
									"name":"..."
								},
				"creationDate": "...",
				"creationUser":	{
									"id":"...",
									"name":"..."
								},
				"lastChangeUser":{
									"id":"...",
									"name":"..."
								},
				"endDate": 1,
				"lastChangeDate": 1
			},
			...
		]
	}
  • id: GUID que representa o identificador do ticket.
  • number: Número do ticket (gerado automaticamente para facilitar localização).
  • subject: Assunto.
  • description: Descrição.
  • type: Tipo.
  • group: Grupo.
  • state: Estado.
  • deadline: Prazo, no formato epoch.
  • reopenDate: Data de reabertura, no formato epoch.
  • responsible: (pode ser nulo) Responsável.
  • creationDate: Data de criação, no formato epoch.
  • creationUser: Usuário que criou o ticket.
  • endDate: (pode ser nulo) Data de encerramento, no formato epoch.
  • lastChangeUser: Usuário que fez a ultima alterção no ticket.
  • lastChangeDate: Data da ultima alteração, no formato epoch.

Voltar para todos os sub-recursos

# Consultar um ticket

##### Resumo

Informação Valor
Método HTTP GET
URL /tickets/{id}
Escopo de rate limiting Padrão
Paginação Não se aplica

REQUISIÇÃO

##### Parâmetros opcionais

  • userId: Identificador do usuário. Quando informado, considera o escopo do usuário para localizar um ticket.

##### Formato

  • O userId informado deve ser um GUID válido.

RESPOSTA

##### Cabeçalhos em caso de erro (além dos comuns a todas as operações)

Header Valor
HTTP status code 404 (ticket não existe)

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	{
		"id":"...",
		"number": "...",
	 	"subject":"...",
		"description": "...",
		"type": {
					"id":"...",
					"name":"..."
				},
		"group": {
					"id":"...",
					"name":"..."
				},
		"state": {
					"id":"...",
					"name":"..."
				},
		"deadline": 1,
		"reopenDate":1,
		"responsible":	{
							"id":"...",
							"name":"..."
						},
		"creationDate": "...",
		"creationUser": {
						"id":"...",
						"name":"..."
					  },
		"lastChangeUser":{
							"id":"...",
							"name":"..."
						},
		"endDate": 1,
		"lastChangeDate": 1
	}
  • id: GUID que representa o identificador do ticket.
  • number: Número do ticket (gerado automaticamente para facilitar localização).
  • subject: Assunto.
  • description: Descrição.
  • type: Tipo.
  • group: Grupo.
  • state: Estado.
  • deadline: Prazo, no formato epoch.
  • reopenDate: Data de reabertura, no formato epoch.
  • responsible: (pode ser nulo) Responsável.
  • creationDate: Data de criação, no formato epoch.
  • creationUser: Usuário que criou o ticket.
  • endDate: (pode ser nulo) Data de encerramento, no formato epoch.
  • lastChangeUser: Usuário que fez a ultima alterção no ticket.
  • lastChangeDate: Data da ultima alteração, no formato epoch.

Voltar para todos os sub-recursos

# Consultar as classificações de um ticket

##### Resumo

Informação Valor
Método HTTP GET
URL /tickets/{id}/classifications
Escopo de rate limiting Padrão
Paginação Requerido

RESPOSTA

##### Cabeçalhos em caso de erro (além dos comuns a todas as operações)

Header Valor
HTTP status code 404 (ticket não existe)

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	[
		"...",
		"...",
		"..."
	]

Voltar para todos os sub-recursos

# Consultar as respostas de campos customizados de um ticket

##### Resumo

Informação Valor
Método HTTP GET
URL /tickets/{id}/forms
Escopo de rate limiting Padrão
Paginação Requerido

RESPOSTA

##### Cabeçalhos em caso de erro (além dos comuns a todas as operações)

Header Valor
HTTP status code 404 (ticket não existe)

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	[
		{
			"question": "...",
			"answer": "...",
			"defaultForm": true/false,
		},
		{
			"question": "...",
			"answer": "...",
			"defaultForm": true/false,
		}
	]
  • question: String Campo que descreve pergunta do formulário.
  • answer: String Resposta do formulário.
  • defaultForm: True/False Identifica a qual tipo de formulário a pergunta faz parte (true - identifica formulário padrão e false: formulário por tipo)
    Voltar para todos os sub-recursos

# Listar alterações do ticket

##### Resumo

Informação Valor
Método HTTP GET
URL /tickets/{id}/changes
Escopo de rate limiting Padrão
Paginação Requerido

REQUISIÇÃO

##### Parâmetros opcionais

  • userId: Identificador do usuário. Quando informado, considera o escopo do usuário para localizar um ticket.

##### Formato

  • O userId informado deve ser um GUID válido.

RESPOSTA

##### Cabeçalhos em caso de erro (além dos comuns a todas as operações)

Header Valor
HTTP status code 404 (ticket não existe)

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	{
		[
			{
				"id": "...",
				"date": 1,
				"user": {
							"id":"...",
							"name":"..."
						},
				"details":	[
								{
									"information":"...",
									"value":"..."
								},
								...
							]
				},
				...
		]
	}
  • id: GUID que representa o identificador do conjunto de alterações.
  • date: Data do conjunto de alterações, no formato epoch.
  • user: Usuário que efetuou as alterações.
  • details: Lista com ao menos uma alteração:
    • information: Informação alterada.
    • oldValue: Valor antes da alteração.

Voltar para todos os sub-recursos

# Adicionar um comentário em um ticket

##### Resumo

Informação Valor
Método HTTP POST
URL /tickets/{id}/comments
Escopo de rate limiting Padrão
Paginação Não se aplica

REQUISIÇÃO

##### Corpo

{
	"creator": "...",
	"content": "...",
	"public": true,
	"mailAccountSenderId": "..."
}
  • creator: Identificador do usuário que fez o comentário.
  • content: Comentário.
  • public: Identifica se o comentário é público (true) ou privado (false).
  • mailAccountSenderId: (opcional) Identificador da conta (email) de sáida, caso comentário público.

##### Formato

  • O usuário criador deve ser informado e existir.
  • O comentário deve ser informado e ter até 2000 caracteres.
  • O identificador da conta (email) de sáida deve ser um GUID existente e válido.

RESPOSTA

##### Cabeçalhos em caso de erro (além dos comuns a todas as operações)

Header Valor
HTTP status code 400 (conta (email) de sáida não existe/inválida)
HTTP status code 404 (ticket não existe)
HTTP status code 409 (ticket já fechado)

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 201

Voltar para todos os sub-recursos

# Listar comentários de um ticket

##### Resumo

Informação Valor
Método HTTP GET
URL /tickets/{id}/comments
Escopo de rate limiting Padrão
Paginação Requerido

REQUISIÇÃO

##### Parâmetros opcionais

  • userId: Identificador do usuário. Quando informado, considera o escopo do usuário para localizar um ticket.

##### Formato

  • O userId informado deve ser um GUID válido.

RESPOSTA

##### Cabeçalhos em caso de erro (além dos comuns a todas as operações)

Header Valor
HTTP status code 404 (ticket não existe)

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	{
		[
			{
				"id":"...",
				"date": 1,
				"user": {
							"id":"...",
							"name":"..."
						},
			 	"content":"..."
				"public": true
			},
			...
		]
	}
  • id: GUID que representa o identificador do comentário.
  • date: Data do comentário, no formato epoch.
  • user: Usuário que efetuou o comentário.
  • content: Comentário propriamente dito.
  • public: Identifica se o comentário é publico (true) ou privado (false)

Voltar para todos os sub-recursos

# Listar comentários públicos de um ticket

##### Resumo

Informação Valor
Método HTTP GET
URL /tickets/{id}/comments/public
Escopo de rate limiting Padrão
Paginação Requerido

REQUISIÇÃO

##### Parâmetros opcionais

  • userId: Identificador do usuário. Quando informado, considera o escopo do usuário para localizar um ticket.

##### Formato

  • O userId informado deve ser um GUID válido.

RESPOSTA

##### Cabeçalhos em caso de erro (além dos comuns a todas as operações)

Header Valor
HTTP status code 404 (ticket não existe)

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	{
		[
			{
				"id":"...",
				"date": 1,
				"user": {
							"id":"...",
							"name":"..."
						},
			 	"content":"..."
				"public": true
			},
			...
		]
	}
  • id: GUID que representa o identificador do comentário.
  • date: Data do comentário, no formato epoch.
  • user: Usuário que efetuou o comentário.
  • content: Comentário propriamente dito.
  • public: Identifica se o comentário é publico (true) ou privado (false)

Voltar para todos os sub-recursos

# Listar comentários privados de um ticket

##### Resumo

Informação Valor
Método HTTP GET
URL /tickets/{id}/comments/private
Escopo de rate limiting Padrão
Paginação Requerido

REQUISIÇÃO

##### Parâmetros opcionais

  • userId: Identificador do usuário. Quando informado, considera o escopo do usuário para localizar um ticket.

##### Formato

  • O userId informado deve ser um GUID válido.

RESPOSTA

##### Cabeçalhos em caso de erro (além dos comuns a todas as operações)

Header Valor
HTTP status code 404 (ticket não existe)

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	{
		[
			{
				"id":"...",
				"date": 1,
				"user": {
							"id":"...",
							"name":"..."
						},
			 	"content":"..."
				"public": true
			},
			...
		]
	}
  • id: GUID que representa o identificador do comentário.
  • date: Data do comentário, no formato epoch.
  • user: Usuário que efetuou o comentário.
  • content: Comentário propriamente dito.
  • public: Identifica se o comentário é publico (true) ou privado (false)

Voltar para todos os sub-recursos

# Adicionar um anexo em um ticket

##### Resumo

Informação Valor
Método HTTP POST
URL /tickets/{id}/attachments?userid={userid}&publicAttach={public}
Escopo de rate limiting Padrão
Paginação Não se aplica

REQUISIÇÃO

Header Valor Descrição
Content-Type multipart/form-data; boundary=xxxxxxxxxx o post deve usar enctype="multipart/form-data" no form

O arquivo deve estabelecer seu nome e tipo no "part" (vide RFC-1867). Preferencialmente deve ser codificado em base64 para a transferência - nesse caso, a informação também é adicionada ao "part" (vide RFC1521). Ex.:

#!
--Boundary_XXXXXXXXX
Content-Transfer-Encoding: BASE64
Content-Type: text/plain
Content-Disposition: form-data; filename="nome do arquivo.txt"; name="file"

SXNzbyDDqSB1bSB0ZXN0ZS4=
--Boundary_XXXXXXXXX--

##### Parâmetros

  • userId: Identificador do usuário que está adicionando o anexo.
  • publicAttach: Identifica se o anexo é publico (true) ou privado (false)

##### Formato

  • O userId informado deve ser um GUID válido.

RESPOSTA

##### Cabeçalhos em caso de erro (além dos comuns a todas as operações)

Header Valor
HTTP status code 404 (ticket não existe)
HTTP status code 409 (ticket já fechado)

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 201

Voltar para todos os sub-recursos

# Listar anexos de um ticket

##### Resumo

Informação Valor
Método HTTP GET
URL /tickets/{id}/attachments
Escopo de rate limiting Padrão
Paginação Requerido

REQUISIÇÃO

##### Parâmetros opcionais

  • userId: Identificador do usuário. Quando informado, considera o escopo do usuário para localizar um ticket.

##### Formato

  • O userId informado deve ser um GUID válido.

RESPOSTA

##### Cabeçalhos em caso de erro (além dos comuns a todas as operações)

Header Valor
HTTP status code 404 (ticket não existe)

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	{
		[
		    {
		      "id": "...",
		      "name": "...",
		      "url": "...",
		      "mimeType": "...",
		      "length": 1,
		      "humanReadableLength": "...",
			  "public": ...
		    },
			...
    	]
	}
  • id: GUID que representa o identificador do anexo.
  • name: Nome do arquivo.
  • url: URL para baixar o anexo.
  • mimeType: Mime type correspondente ao tipo do arquivo.
  • length: Tamanho do arquivo em bytes.
  • humanReadableLength: Tamanho do arquivo tratado para facilitar a leitura.
  • public: Identifica se o anexo é publico (true) ou privado (false)

Voltar para todos os sub-recursos

# Listar anexos públicos de um ticket

##### Resumo

Informação Valor
Método HTTP GET
URL /tickets/{id}/attachments/public
Escopo de rate limiting Padrão
Paginação Requerido

REQUISIÇÃO

##### Parâmetros opcionais

  • userId: Identificador do usuário. Quando informado, considera o escopo do usuário para localizar um ticket.

##### Formato

  • O userId informado deve ser um GUID válido.

RESPOSTA

##### Cabeçalhos em caso de erro (além dos comuns a todas as operações)

Header Valor
HTTP status code 404 (ticket não existe)

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	{
		[
		    {
		      "id": "...",
		      "name": "...",
		      "url": "...",
		      "mimeType": "...",
		      "length": 1,
		      "humanReadableLength": "...",
			  "public": ...
		    },
			...
    	]
	}
  • id: GUID que representa o identificador do anexo.
  • name: Nome do arquivo.
  • url: URL para baixar o anexo.
  • mimeType: Mime type correspondente ao tipo do arquivo.
  • length: Tamanho do arquivo em bytes.
  • humanReadableLength: Tamanho do arquivo tratado para facilitar a leitura.
  • public: Identifica se o anexo é publico (true) ou privado (false)

Voltar para todos os sub-recursos

# Listar anexos privados de um ticket

##### Resumo

Informação Valor
Método HTTP GET
URL /tickets/{id}/attachments/private
Escopo de rate limiting Padrão
Paginação Requerido

REQUISIÇÃO

##### Parâmetros opcionais

  • userId: Identificador do usuário. Quando informado, considera o escopo do usuário para localizar um ticket.

##### Formato

  • O userId informado deve ser um GUID válido.

RESPOSTA

##### Cabeçalhos em caso de erro (além dos comuns a todas as operações)

Header Valor
HTTP status code 404 (ticket não existe)

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	{
		[
		    {
		      "id": "...",
		      "name": "...",
		      "url": "...",
		      "mimeType": "...",
		      "length": 1,
		      "humanReadableLength": "...",
			  "public": ...
		    },
			...
    	]
	}
  • id: GUID que representa o identificador do anexo.
  • name: Nome do arquivo.
  • url: URL para baixar o anexo.
  • mimeType: Mime type correspondente ao tipo do arquivo.
  • length: Tamanho do arquivo em bytes.
  • humanReadableLength: Tamanho do arquivo tratado para facilitar a leitura.
  • public: Identifica se o anexo é publico (true) ou privado (false)

Voltar para todos os sub-recursos

# Baixar um anexo de um ticket

##### Resumo

Informação Valor
Método HTTP GET
URL /tickets/{id}/attachments/{attachmentId}/content
Escopo de rate limiting Padrão
Paginação Não se aplica

REQUISIÇÃO

##### Parâmetros opcionais

  • userId: Identificador do usuário. Quando informado, considera o escopo do usuário para localizar um ticket.

##### Formato

  • O userId informado deve ser um GUID válido.

RESPOSTA

##### Cabeçalhos em caso de erro (além dos comuns a todas as operações)

Header Valor
HTTP status code 404 (ticket não existe)

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200
Content-Type {mime-type} do arquivo
Content-Length {length} do arquivo
Last-Modified {last-modified} do arquivo

Voltar para todos os sub-recursos

# Monitoria de tickets por grupos

Consulta de tickets de forma sumarizada, por grupo, levando em consideração os parâmetros informados

##### Resumo

Informação Valor
Método HTTP GET
URL **/ticket/monitoring/groups
Escopo de rate limiting Padrão

REQUISIÇÃO

##### Parâmetros obrigatórios (caso operação possua departamentos, caso contrário não precisa ser informado)

  • departmentId: Id do departamento, lista todas a monitoria de tickets por grupos associados a esse departamento.

##### Parâmetros opcionais

  • groupId: Identificador do grupo. Se houver mais de um, deve ser separado por vírgula.
  • typeId: Identificador do tipo. Se houver mais de um, deve ser separado por vírgula.
  • stateId: Identificador do estado. Se houver mais de um, deve ser separado por vírgula.
  • startDate: Data/hora inicial para busca, no formato epoch.
  • endDate: Data/hora final para busca, no formato epoch.

##### Formato

  • O departmentId informado deve ser um GUID válido.
  • O(s) groupId informado(s) deve(m) ser GUID(s) válido(s).
  • O(s) typeId informado(s) deve(m) ser GUID(s) válido(s).
  • O(s) stateId informado(s) deve(m) ser GUID(s) válido(s).
  • O período informado por startDate e endDate deve ser válido.
  • O período informado deve ter no máximo 31 dias.

RESPOSTA

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	[
	    {
	        "groupId": "...",
	        "groupName": "...",
	        "value": 1
	    },
    	   ...
]
  • groupId: GUID que representa o identificador do grupo.
  • groupName: Nome do Grupo.
  • value: Quantidade de tickets.

Voltar para todos os sub-recursos

# Monitoria de tickets por estados

Consulta de tickets de forma sumarizada, por estado, levando em consideração os parâmetros informados

##### Resumo

Informação Valor
Método HTTP GET
URL **/ticket/monitoring/states
Escopo de rate limiting Padrão

REQUISIÇÃO

##### Parâmetros obrigatórios (caso operação possua departamentos, caso contrário não precisa ser informado)

  • departmentId: Id do departamento, lista todas a monitoria de tickets associados a esse departamento.

##### Parâmetros opcionais

  • groupId: Identificador do grupo. Se houver mais de um, deve ser separado por vírgula.
  • typeId: Identificador do tipo. Se houver mais de um, deve ser separado por vírgula.
  • stateId: Identificador do estado. Se houver mais de um, deve ser separado por vírgula.
  • startDate: Data/hora inicial para busca, no formato epoch.
  • endDate: Data/hora final para busca, no formato epoch.

##### Formato

  • O departmentId informado deve ser um GUID válido.
  • O(s) groupId informado(s) deve(m) ser GUID(s) válido(s).
  • O(s) typeId informado(s) deve(m) ser GUID(s) válido(s).
  • O(s) stateId informado(s) deve(m) ser GUID(s) válido(s).
  • O período informado por startDate e endDate deve ser válido.
  • O período informado deve ter no máximo 31 dias.

RESPOSTA

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	[
	    {
	        "stateId": "...",
	        "stateName": "...",
	        "value": 1
	    },
    	   ...
]
  • stateId: GUID que representa o identificador do estado.
  • stateName: Nome do Estado.
  • value: Quantidade de tickets.

Voltar para todos os sub-recursos

# Monitoria de tickets por tipos

Consulta de tickets de forma sumarizada, por tipo, levando em consideração os parâmetros informados

##### Resumo

Informação Valor
Método HTTP GET
URL **/ticket/monitoring/types
Escopo de rate limiting Padrão

REQUISIÇÃO

##### Parâmetros obrigatórios (caso operação possua departamentos, caso contrário não precisa ser informado)

  • departmentId: Id do departamento, lista todas a monitoria de tickets por tipos associados a esse departamento.

##### Parâmetros opcionais

  • groupId: Identificador do grupo. Se houver mais de um, deve ser separado por vírgula.
  • typeId: Identificador do tipo. Se houver mais de um, deve ser separado por vírgula.
  • stateId: Identificador do estado. Se houver mais de um, deve ser separado por vírgula.
  • startDate: Data/hora inicial para busca, no formato epoch.
  • endDate: Data/hora final para busca, no formato epoch.

##### Formato

  • O departmentId informado deve ser um GUID válido.
  • O(s) groupId informado(s) deve(m) ser GUID(s) válido(s).
  • O(s) typeId informado(s) deve(m) ser GUID(s) válido(s).
  • O(s) stateId informado(s) deve(m) ser GUID(s) válido(s).
  • O período informado por startDate e endDate deve ser válido.
  • O período informado deve ter no máximo 31 dias.

RESPOSTA

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	[
	    {
	        "typeId": "...",
	        "typeName": "...",
	        "value": 1
	    },
    	   ...
]
  • typeId: GUID que representa o identificador do tipo.
  • typeName: Nome do Tipo.
  • value: Quantidade de tickets.

Voltar para todos os sub-recursos

# Monitoria de tickets por volumetria

Consulta de tickets de forma sumarizada, abertos e fechados no dia, levando em consideração os parâmetros informados

##### Resumo

Informação Valor
Método HTTP GET
URL **/ticket/monitoring/volumetry
Escopo de rate limiting Padrão

REQUISIÇÃO

##### Parâmetros obrigatórios (caso operação possua departamentos, caso contrário não precisa ser informado)

  • departmentId: Id do departamento, lista todas a monitoria de tickets associados a esse departamento.

##### Parâmetros obrigatórios (geral)

  • startDate: Data/hora inicial para busca, no formato epoch.
  • endDate: Data/hora final para busca, no formato epoch.

##### Parâmetros opcionais

  • groupId: Identificador do grupo. Se houver mais de um, deve ser separado por vírgula.
  • typeId: Identificador do tipo. Se houver mais de um, deve ser separado por vírgula.
  • stateId: Identificador do estado. Se houver mais de um, deve ser separado por vírgula.

##### Formato

  • O departmentId informado deve ser um GUID válido.
  • O(s) groupId informado(s) deve(m) ser GUID(s) válido(s).
  • O(s) typeId informado(s) deve(m) ser GUID(s) válido(s).
  • O(s) stateId informado(s) deve(m) ser GUID(s) válido(s).
  • O período informado por startDate e endDate deve ser válido.
  • O período informado deve ter no máximo 31 dias.

RESPOSTA

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	[
	    {
            "date": 1,
            "opened": 2,
            "closed": 3
        },
    	   ...
]
  • date: Data da informação, no formato epoch.
  • opened: Quantidade de tickets abertos na data.
  • closed: Quantidade de tickets fechados na data.

Voltar para todos os sub-recursos

# Webhook - Criar assinatura

Cria uma assinatura de webhook

Informação Valor
Método HTTP POST
URL **/webhooks
Escopo de rate limiting Padrão

REQUISIÇÃO

##### Corpo

{
	"typeName": "...",
	"subscriptionUrl": "..."
}
  • typeName: Tipo da assinatura
  • subscriptionUrl: Url da API onde serão enviadas as notificações.

##### Formato

  • A subscriptionUrl tem que ser válida.
  • o typeName tem que ser create ou update

RESPOSTA

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	{
		"id":"...",
		"typeName":"...",
		"url":"..."
	}
  • id: GUID que representa o identificador da assinatura.
  • typeName: nome do tipo do log, pode ser create ou update.
  • url url de assinatura cadastrada (onde vai ser feita a requisição).

Voltar para todos os Sub-Recursos

# Webhook - Listar as assinaturas

Lista as assinaturas de webhook cadastradas para a operação

Informação Valor
Método HTTP GET
URL **/webhooks?type={type}
Escopo de rate limiting Padrão

RESPOSTA

##### Cabeçalhos em caso de erro

Header Valor
HTTP status code 404 (assinatura não encontrada)

##### Corpo em caso de erro

	
	{
		"Message": "subscription not found"
	}
	

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	
	[
		{
			"id":"...",
			"typeName":"...",
			"url":"..."
		},
		...
	]
	

Voltar para todos os Sub-Recursos

# Webhook - Listar as assinaturas de um tipo específico

Lista as assinaturas de webhook cadastradas para a operação e tipo informado

Informação Valor
Método HTTP GET
URL **/webhooks
Escopo de rate limiting Padrão

RESPOSTA

##### Parâmetros obrigatórios

  • type: O tipo precisa ser create ou update.

##### Cabeçalhos em caso de erro

Header Valor
HTTP status code 404 (assinatura não encontrada)

##### Corpo em caso de erro

	
	{
		"Message": "subscription not found"
	}
	

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	[
		{
			"id":"...",
			"typeName":"...",
			"url":"..."
		},
		...
	]

Voltar para todos os Sub-Recursos

# Webhook - Listar os detalhes de uma assinatura

Consulta os detalhes de uma assinatura de webhook

Informação Valor
Método HTTP GET
URL **/webhooks/{id}
Escopo de rate limiting Padrão

RESPOSTA

##### Cabeçalhos em caso de erro

Header Valor
HTTP status code 404 (assinatura não encontrada)

##### Corpo em caso de erro

	
	{
		"Message": "subscription not found"
	}
	

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	
	{
		"id":"...",
		"typeName":"...",
		"url":"..."
	}
	

Voltar para todos os Sub-Recursos

# Webhook - Atualizar uma assinatura existente

Atualiza as informações para uma assinatura de webhook

Informação Valor
Método HTTP PUT
URL **/webhooks/{id}
Escopo de rate limiting Padrão

REQUISIÇÃO

##### Corpo

{
	"subscriptionUrl": "..."
}

##### Formato

  • A subscriptionUrl tem que ser válida.

RESPOSTA

##### Cabeçalhos em caso de erro

Header Valor
HTTP status code 404 (assinatura não encontrada)

##### Corpo em caso de erro

	
	{
		"Message": "subscription not found"
	}
	

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	{
		"id":"...",
		"typeName":"...",
		"url":"..."
	}

Voltar para todos os Sub-Recursos

# Webhook - Excluir uma assinatura existente

Exclui uma assinatura de webhook existente

Informação Valor
Método HTTP DELETE
URL **/webhooks/delete/{id}
Escopo de rate limiting Padrão

RESPOSTA

##### Cabeçalhos em caso de erro

Header Valor
HTTP status code 404 (assinatura não encontrada)

##### Corpo em caso de erro

	
	{
		"Message": "subscription not found"
	}
	

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 204

Voltar para todos os Sub-Recursos

# Webhook - Retornar os eventos de log de uma determinada assinatura

Obtem os logs das informações enviadas para uma assinatura de webhook

Informação Valor
Método HTTP GET
URL **/webhooks/{id}/logs
Escopo de rate limiting Padrão

RESPOSTA

##### Cabeçalhos em caso de erro

Header Valor
HTTP status code 404 (assinatura não encontrada)

##### Corpo em caso de erro

	
	{
		"Message": "subscription not found"
	}
	

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	
	[
		{
			"id":"...",
			"typeName":"...",
			"responseId":"...",
			"logDate":"...",
			"typeLog":"...",
			"subscriptionUrl":"...",
			"logDetail":"..."
		},
		...
	]
	
  • id: GUID que representa o identificador do log.
  • typeName: nome do tipo do log, pode ser create ou update.
  • responseId: resposta que foi retornada na requisição.
  • logDate Data de criação do log, no formato epoch.
  • typeLog tipo do log, pode ser success ou error.
  • subscriptionUrl url de assinatura cadastrada.
  • logDetail detalhes do log.

Voltar para todos os Sub-Recursos

# Webhook - Retornar um payload específico

Retorna os dados de uma notificação específica de webhook

Informação Valor
Método HTTP GET
URL **/webhooks/payloads/{id}
Escopo de rate limiting Padrão

##### Cabeçalhos em caso de erro

Header Valor
HTTP status code 404 (assinatura não encontrada)

##### Corpo em caso de erro

	
	{
		"Message": "subscription not found"
	}
	

RESPOSTA - Assinatura do tipo create

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	
	{
        "Id":"...",
        "Number": "...",
        "Subject":"...",
        "Description": "...",
        "Type": {
                    "Id":"...",
                    "Name":"..."
                },
        "Group": {
                    "Id":"...",
                    "Name":"..."
                },
        "State": {
                    "Id":"...",
                    "Name":"..."
                },
        "Deadline": 1,
        "Responsible":  {
                            "Id":"...",
                            "Name":"..."
                        },
        "CreationDate": "...",
        "CreationUser": {
                        "Id":"...",
                        "Name":"..."
                      },
        "EndDate": 1		
    }
	

RESPOSTA - Assinatura do tipo update

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

	
	{
        "Id":"...",
        "Number": "...",
        "Subject":"...",
        "Description": "...",
        "Type": {
                    "Id":"...",
                    "Name":"..."
                },
        "Group": {
                    "Id":"...",
                    "Name":"..."
                },
        "State": {
                    "Id":"...",
                    "Name":"..."
                },
        "Deadline": 1,
        "Responsible":  {
                            "Id":"...",
                            "Name":"..."
                        },
        "CreationDate": "...",
        "EndDate": 1,
		"UpdateDate": 1,
		"UserUpdate": {
				"Id":"...",
				"Name":"..."
			},
		"UpdateDetails":  [
					{
						"Information":"...",
						"Value":"...",
						"InformationType":"...",
						"isPublic":false
					},
					...
				]		
    }
	
  • Id: GUID que representa o identificador do ticket.
  • Number: Número do ticket (gerado automaticamente para facilitar localização).
  • Subject: Assunto.
  • Description: Descrição.
  • Type: Tipo.
  • Group: Grupo.
  • State: Estado.
  • Deadline: Prazo, no formato epoch.
  • Responsible: (pode ser nulo) Responsável.
  • CreationDate: Data de criação, no formato epoch.
  • EndDate: (pode ser nulo) Data de encerramento, no formato epoch.
  • UpdateDate: (pode ser nulo) Data de atualização, no formato epoch.
  • UserUpdate: (pode ser nulo) Detalhes da atualização do usuário.
  • UpdateDetails: (pode ser nulo) Detalhes da atualização do ticket.
  • InformationType: poderá ter um dos seguintes valores: GenericInfo, Attachment ou Comment
  • isPublic: indica, caso comentário ou anexo, se é publico ou privado

Voltar para todos os Sub-Recursos

Artigos relacionados:

Gestão de usuários de API