{
  "info": {
    "name": "API Gototem Partner (v1)",
    "description": "Coleção gerada do contrato da API Gototem Partner. Antes de enviar, preencha a variável api_key com a chave que o suporte da Gototem entregou. Envie primeiro a consulta das opções: os ids do corpo de exemplo do chamado são ilustrativos e têm de ser trocados pelos que ela devolver. A coleção chama a API de verdade: um chamado enviado por ela é aberto no help desk. Só as rotas que já estão no ar.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{api_key}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "base_url",
      "value": "https://api.gototem.com.br",
      "description": "Endereço da API. Já vem com o de produção."
    },
    {
      "key": "api_key",
      "value": "",
      "description": "A chave que o suporte da Gototem entregou. Começa com gtes_."
    }
  ],
  "item": [
    {
      "name": "Chamados",
      "item": [
        {
          "name": "O que o seu sistema pode escolher ao abrir um chamado",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1/api-external-system/help-desk-ticket-options",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "api-external-system",
                "help-desk-ticket-options"
              ]
            },
            "description": "Escopo: `help-desk-ticket.create`.\n\nLista as empresas, as categorias liberadas para o seu sistema (com o tipo de cada uma), as\nprioridades, os níveis de suporte e as naturezas. O `id` da empresa vai em `company`, o da\ncategoria em `category`, o da prioridade em `priority`, o do nível em `support_level` e o\n`identifier` da natureza em `nature`. Os ids mudam entre homologação e produção (os do exemplo\nsão ilustrativos): leia-os daqui, nunca os fixe no código.\n\nGuarde a resposta em cache por algumas horas e consulte de novo ao receber\n`category_fallback`, `priority_fallback` ou `invalid_nature`."
          },
          "response": [
            {
              "name": "Resposta 200",
              "originalRequest": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{base_url}}/v1/api-external-system/help-desk-ticket-options",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "api-external-system",
                    "help-desk-ticket-options"
                  ]
                },
                "description": "Escopo: `help-desk-ticket.create`.\n\nLista as empresas, as categorias liberadas para o seu sistema (com o tipo de cada uma), as\nprioridades, os níveis de suporte e as naturezas. O `id` da empresa vai em `company`, o da\ncategoria em `category`, o da prioridade em `priority`, o do nível em `support_level` e o\n`identifier` da natureza em `nature`. Os ids mudam entre homologação e produção (os do exemplo\nsão ilustrativos): leia-os daqui, nunca os fixe no código.\n\nGuarde a resposta em cache por algumas horas e consulte de novo ao receber\n`category_fallback`, `priority_fallback` ou `invalid_nature`."
              },
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"companies\": [\n    {\n      \"id\": \"gototem\",\n      \"name\": \"Gototem\"\n    },\n    {\n      \"id\": \"melhoretec\",\n      \"name\": \"Melhoretec\"\n    }\n  ],\n  \"categories\": [\n    {\n      \"id\": 3,\n      \"name\": \"Falha na impressora\",\n      \"description\": null,\n      \"default\": false,\n      \"default_priority_id\": 1,\n      \"type\": {\n        \"id\": 3,\n        \"name\": \"Problema\",\n        \"description\": \"Algo que funcionava parou de funcionar ou funciona errado.\"\n      }\n    },\n    {\n      \"id\": 7,\n      \"name\": \"Ajustes em cardápios\",\n      \"description\": \"Pedido para incluir, alterar ou remover produtos, preços ou opcionais do cardápio. Não use quando algo parou de funcionar.\",\n      \"default\": true,\n      \"default_priority_id\": 3,\n      \"type\": {\n        \"id\": 1,\n        \"name\": \"Solicitação de Serviço\",\n        \"description\": \"O cliente pede algo novo ou uma alteração; nada está quebrado.\"\n      }\n    }\n  ],\n  \"priorities\": [\n    {\n      \"id\": 1,\n      \"name\": \"Crítica\",\n      \"description\": \"A loja não consegue vender. Use só quando a operação estiver parada.\",\n      \"level\": 1,\n      \"response_time_hours\": 1\n    },\n    {\n      \"id\": 3,\n      \"name\": \"Normal\",\n      \"description\": null,\n      \"level\": 3,\n      \"response_time_hours\": 8\n    }\n  ],\n  \"support_levels\": [\n    {\n      \"id\": 1,\n      \"name\": \"Nível 1\",\n      \"description\": \"Primeiro atendimento: dúvidas de uso, orientação e problemas que o suporte resolve com os procedimentos padrão. Use na maioria dos chamados.\"\n    },\n    {\n      \"id\": 2,\n      \"name\": \"Nível 2\",\n      \"description\": \"Análise técnica especializada: falha que se repete ou que o primeiro atendimento já tentou resolver sem sucesso, erro do sistema ou de integração. Use só quando a conversa mostrar isso.\"\n    }\n  ],\n  \"natures\": [\n    {\n      \"identifier\": \"hardware\",\n      \"name\": \"Hardware\"\n    },\n    {\n      \"identifier\": \"implementation\",\n      \"name\": \"Implantação\"\n    },\n    {\n      \"identifier\": \"software\",\n      \"name\": \"Software\"\n    }\n  ]\n}"
            }
          ]
        },
        {
          "name": "Abre um chamado no help desk",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"external_id\": \"conv-8841\",\n  \"company\": \"gototem\",\n  \"description\": \"Cliente relata que o totem não imprime o cupom.\",\n  \"category\": 3,\n  \"priority\": 3,\n  \"support_level\": 1,\n  \"nature\": \"hardware\",\n  \"requester\": {\n    \"name\": \"Maria Souza\",\n    \"contact\": \"maria@loja.com.br\"\n  },\n  \"cnpj\": \"12.345.678/0001-90\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/v1/api-external-system/help-desk-ticket",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "api-external-system",
                "help-desk-ticket"
              ]
            },
            "description": "Escopo: `help-desk-ticket.create`.\n\nO `external_id` identifica o reenvio: o mesmo `external_id` devolve o chamado que já existe\n(200, `duplicate: true`, como foi criado), nunca um segundo; o corpo do reenvio ainda é\nvalidado (os 422 valem). O registro do `external_id` é por sistema: a rota direta e o webhook\ndo mesmo sistema o compartilham, e ele não expira.\n\n`category`, `priority` e `support_level` nunca recusam o chamado: valor desconhecido, não\nliberado ou de tipo errado é trocado pelo padrão, com aviso em `warnings`; o que foi gravado\nvem em `applied`."
          },
          "response": [
            {
              "name": "Resposta 201",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"external_id\": \"conv-8841\",\n  \"company\": \"gototem\",\n  \"description\": \"Cliente relata que o totem não imprime o cupom.\",\n  \"category\": 3,\n  \"priority\": 3,\n  \"support_level\": 1,\n  \"nature\": \"hardware\",\n  \"requester\": {\n    \"name\": \"Maria Souza\",\n    \"contact\": \"maria@loja.com.br\"\n  },\n  \"cnpj\": \"12.345.678/0001-90\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/v1/api-external-system/help-desk-ticket",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "api-external-system",
                    "help-desk-ticket"
                  ]
                },
                "description": "Escopo: `help-desk-ticket.create`.\n\nO `external_id` identifica o reenvio: o mesmo `external_id` devolve o chamado que já existe\n(200, `duplicate: true`, como foi criado), nunca um segundo; o corpo do reenvio ainda é\nvalidado (os 422 valem). O registro do `external_id` é por sistema: a rota direta e o webhook\ndo mesmo sistema o compartilham, e ele não expira.\n\n`category`, `priority` e `support_level` nunca recusam o chamado: valor desconhecido, não\nliberado ou de tipo errado é trocado pelo padrão, com aviso em `warnings`; o que foi gravado\nvem em `applied`."
              },
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"ticket\": \"I-12345A\",\n  \"id\": \"aGVsbG8td29ybGQ\",\n  \"duplicate\": false,\n  \"warnings\": [],\n  \"applied\": {\n    \"category_id\": 3,\n    \"priority_id\": 3,\n    \"support_level\": 1,\n    \"nature\": \"hardware\",\n    \"company\": \"gototem\"\n  }\n}"
            }
          ]
        },
        {
          "name": "Abre um chamado pelo webhook do seu sistema",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"external_id\": \"conv-8842\",\n  \"company\": \"gototem\",\n  \"description\": \"Cliente relata que o totem não imprime o cupom.\",\n  \"category\": 3,\n  \"priority\": 3,\n  \"support_level\": 1,\n  \"nature\": \"hardware\",\n  \"requester\": {\n    \"name\": \"Maria Souza\",\n    \"contact\": \"maria@loja.com.br\"\n  },\n  \"cnpj\": \"12.345.678/0001-90\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/v1/api-external-system/webhook/:system",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "api-external-system",
                "webhook",
                ":system"
              ],
              "variable": [
                {
                  "key": "system",
                  "value": "",
                  "description": "O identificador do seu sistema (letras minúsculas, números, `-` e `_`, até 40 caracteres)"
                }
              ]
            },
            "description": "Escopo: `help-desk-ticket.create`.\n\nO mesmo chamado da rota direta, para quando o seu sistema envia por webhook. `{system}` é o\nidentificador do seu sistema, informado pelo suporte da Gototem junto com a chave. Nesta\nversão o webhook também exige a chave no cabeçalho `Authorization` e o corpo segue o mesmo\nformato da rota direta, com as mesmas respostas (inclusive `applied`). Qualquer\n`Content-Type` é aceito. O teto de 65.536 bytes (413) vale antes da chave, como nas outras\nrotas; o formato do corpo (`invalid_body`) só é conferido depois dela. Com `Content-Type` JSON,\ncorpo que não é objeto nem lista JSON recebe 400 em `application/problem+json`, sem `code`.\n\nIdentificador desconhecido, ou a chave de outro sistema, recebe 401 `unauthorized`.\nIdentificador fora do padrão (maiúscula, acento, outro caractere ou mais de 40 caracteres)\nnão é rota: recebe o 404 `not_found`."
          },
          "response": [
            {
              "name": "Resposta 201",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"external_id\": \"conv-8842\",\n  \"company\": \"gototem\",\n  \"description\": \"Cliente relata que o totem não imprime o cupom.\",\n  \"category\": 3,\n  \"priority\": 3,\n  \"support_level\": 1,\n  \"nature\": \"hardware\",\n  \"requester\": {\n    \"name\": \"Maria Souza\",\n    \"contact\": \"maria@loja.com.br\"\n  },\n  \"cnpj\": \"12.345.678/0001-90\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/v1/api-external-system/webhook/:system",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "api-external-system",
                    "webhook",
                    ":system"
                  ],
                  "variable": [
                    {
                      "key": "system",
                      "value": "",
                      "description": "O identificador do seu sistema (letras minúsculas, números, `-` e `_`, até 40 caracteres)"
                    }
                  ]
                },
                "description": "Escopo: `help-desk-ticket.create`.\n\nO mesmo chamado da rota direta, para quando o seu sistema envia por webhook. `{system}` é o\nidentificador do seu sistema, informado pelo suporte da Gototem junto com a chave. Nesta\nversão o webhook também exige a chave no cabeçalho `Authorization` e o corpo segue o mesmo\nformato da rota direta, com as mesmas respostas (inclusive `applied`). Qualquer\n`Content-Type` é aceito. O teto de 65.536 bytes (413) vale antes da chave, como nas outras\nrotas; o formato do corpo (`invalid_body`) só é conferido depois dela. Com `Content-Type` JSON,\ncorpo que não é objeto nem lista JSON recebe 400 em `application/problem+json`, sem `code`.\n\nIdentificador desconhecido, ou a chave de outro sistema, recebe 401 `unauthorized`.\nIdentificador fora do padrão (maiúscula, acento, outro caractere ou mais de 40 caracteres)\nnão é rota: recebe o 404 `not_found`."
              },
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"ticket\": \"I-12345A\",\n  \"id\": \"aGVsbG8td29ybGQ\",\n  \"duplicate\": false,\n  \"warnings\": [],\n  \"applied\": {\n    \"category_id\": 3,\n    \"priority_id\": 3,\n    \"support_level\": 1,\n    \"nature\": \"hardware\",\n    \"company\": \"gototem\"\n  }\n}"
            }
          ]
        }
      ]
    }
  ]
}
