Método: https://oms.tpl.com.br/api/put/create_ticket

Objetivo: Cria um novo chamado (ticket) no Zoho Desk vinculado ao cliente autenticado. Aceita dois formatos de payload: formulário dinâmico (com layoutId/departmentId) ou formulário tradicional (com titulo/descricao/departamento_id/categoria_id). Para facilitar o envio, utilize o endpoint get/ticket_fields_department que retorna um template JSON pronto, bastando preencher os campos. Também permite envio de anexos em base64 junto ao chamado.
          
            
Método: PUT ou POST
URL: https://oms.tpl.com.br/api/put/create_ticket

Autenticação
Token base64 gerado pelo endpoint /api/get/auth (campo "auth")

Template pronto
Utilize o endpoint get/ticket_fields_department informando o nome ou ID do departamento desejado.
Ele retorna um campo "template" com o JSON pronto para envio neste endpoint, incluindo departmentId, layoutId, contactId e todos os campos customizados (cf) do departamento.
Basta copiar o template, preencher os campos subject, description, priority, category e os custom fields, e enviar para este endpoint.

JSON de Envio (Formulário Dinâmico - com layout)
{
"auth": "TOKEN_BASE64",
"subject": "Assunto do chamado",
"description": "Descrição detalhada do chamado",
"departmentId": "123456789",
"departmentName": "TECNOLOGIA",
"layoutId": "987654321",
"priority": "Medium",
"status": "Open",
"category": "Nome da Categoria",
"cf": {
"cf_numero_do_pedido": "12345",
"cf_numero_da_nota_fiscal": "67890",
"cf_campo_customizado": "valor"
},
"anexos": [
{
"nome_arquivo": "documento.pdf",
"tipo_arquivo": "application/pdf",
"arquivo_base64": "JVBERi0xLjQK..."
}
]
}

Obs: departmentId pode ser omitido se departmentName for informado.
Obs: layoutId pode ser omitido (será buscado automaticamente o layout padrão do departamento).
Obs: Para obter o template pronto com todos os campos do departamento, use get/ticket_fields_department.

JSON de Envio (Formulário Tradicional - sem layout)
{
"auth": "TOKEN_BASE64",
"titulo": "Assunto do chamado",
"descricao": "Descrição detalhada",
"departamento_id": "123456789",
"categoria_id": "Nome da Categoria",
"prioridade": "Medium",
"nome": "Nome do Contato",
"email": "contato@empresa.com",
"telefone": "11999999999",
"empresa": "Nome da Empresa",
"observacoes": "Observações adicionais"
}

Campos obrigatórios (tradicional): titulo, descricao, departamento_id, categoria_id
Campos obrigatórios (dinâmico): subject, description + (departmentId ou departmentName)

JSON de Retorno (Sucesso - HTTP 200/201)
{
"success": true,
"ticket_id": "123456789012345678",
"ticket_number": "12345",
"numero_pedido": "12345",
"numero_nf": "67890",
"message": "Chamado criado com sucesso"
}

JSON de Retorno (Erro)
HTTP 400:
{ "success": false, "error": "Campo obrigatório ausente: subject" }

HTTP 401:
{ "success": false, "error": "Credenciais inválidas" }

HTTP 403:
{ "success": false, "error": "Cliente bloqueado" }

HTTP 405:
{ "success": false, "error": "Método não permitido" }

HTTP 500:
{ "success": false, "error": "Erro ao criar chamado no Zoho" }