{"info":{"_postman_id":"d0f73bd3-1b27-4547-a23e-a33ec6f2b76e","name":"MOAPI","description":"<html><head></head><body><p>MOAPI - API MOAVI para acesso rápido aos dados recentes de indicadores como desvios e IQE.</p>\n<p><strong>Antes de começar a utilizar estes endpoints:</strong></p>\n<ol>\n<li><p>Contate-nos que para seu usuário seja criado e configurado.</p>\n</li>\n<li><p>Você receberá um e-mail com sua senha temporária, e deve fixar outra permanente.</p>\n</li>\n<li><p>Esta será então utilizada no endpoint '/usr-pwd-authenticate' para obter tokens...</p>\n</li>\n<li><p>....que habilitarão acesso aos dados de sua companhia!</p>\n</li>\n</ol>\n<p><strong>RECOMENDAÇÃO IMPORTANTE:</strong></p>\n<p>Sugerimos um intervalo de 30 segundos para obter a segunda página (se for o caso) após a primeira request em um mesmo endpoint. <strong>Em particular, para endpoints de saldos de horas por colaborador (\"/plan-banco-*-*-colaborador\"), sugerimos 1 minuto e meio (1min 30s) de intervalo mínimo.</strong> Isso acontece porque:</p>\n<ul>\n<li><p>O banco de dados pode levar mais tempo para processar resultados numerosos.</p>\n</li>\n<li><p>Também, como nosso timeout é de 29s, você, o consumidor, pode implementar um mecanismo simples de <em>retry</em> para não se esquecer de pegar a página 1 - que, no pior caso, já estará em cache nesta nova requisição!</p>\n</li>\n</ul>\n<p>Desenvolvedor responsável:<br>Rafael Costa</p>\n<p><a href=\"https://mailto:rafael.costa@moavi.com.br\">rafael.costa@moavi.com.br</a></p>\n<p>Tel/WhatsApp: (11) 4113-9240</p>\n<p><a href=\"http://www.moavi.com.br\">www.moavi.com.br</a></p>\n<img src=\"https://content.pstmn.io/6db5226a-42f4-4bd4-94f5-4aa198118810/bG9nby1tb2FwaS1hc3NpbmF0dXJhLTIwMHB4LWxhcmd1cmEucG5n\"></body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"8889055","collectionId":"d0f73bd3-1b27-4547-a23e-a33ec6f2b76e","publishedId":"2sBXwtr9zL","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"A8A8A8","highlight":"0B9DF7"},"publishDate":"2026-06-17T20:11:37.000Z"},"item":[{"name":"usr-pwd-authenticate","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"172eb6f8-8390-4f13-b2ee-e7393330c755"}},{"listen":"prerequest","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"055f8a66-a60b-48b7-b0d3-b8d55314167a"}}],"id":"7a8ee6a3-7a38-4904-918c-336e6b7053b9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\": \"<seu-username>\",\r\n    \"password\": \"<seu-password>\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/usr-pwd-authenticate","description":"<h1 id=\"autenticação-com-usuário-e-senha\">Autenticação com Usuário e Senha</h1>\n<p>Este endpoint é usado para autenticar um usuário com senha. O objetivo é a obtenção de um IdToken (com vida útil de 1h) e do RefreshToken (30 dias) associado para renovar o IdToken de maneira segura em '/usr-refresh-authenticate'</p>\n<h2 id=\"requisição\">Requisição</h2>\n<p>Método: <code>POST</code></p>\n<h4 id=\"corpo-da-requisição\">Corpo da Requisição</h4>\n<ul>\n<li><p><code>username</code> (string, obrigatório): O nome de usuário.</p>\n</li>\n<li><p><code>password</code> (string, obrigatório): A senha do usuário.</p>\n</li>\n</ul>\n<h2 id=\"resposta\">Resposta</h2>\n<h4 id=\"campos-da-resposta\">Campos da Resposta</h4>\n<ul>\n<li><p><code>statusCode</code> (number): O código de status HTTP da resposta.</p>\n</li>\n<li><p><code>message</code> (string): Uma mensagem relacionada à resposta.</p>\n</li>\n<li><p><code>AccessToken</code> (string): Token de acesso do usuário Cognito.</p>\n</li>\n<li><p><code>IdToken</code> (string): O token de identificação. <strong>Este deve ser fornecido no header 'moapi-token' para acessar os endpoints de indicadores!</strong></p>\n</li>\n<li><p><code>RefreshToken</code> (string): O token de atualização. Este deverá utilizado em '/usr-refresh-get-token' para obter novos IdToken's de maneira mais segura, evitando o tráfego do user password.</p>\n</li>\n<li><p><code>ExpiresIn</code> (number): O tempo de expiração em segundos para o IdToken. Padronizado para 3600 (1h).</p>\n</li>\n<li><p><code>headers</code> (object): O cabeçalho da resposta, definindo o tipo de conteúdo. <strong>Omitido dos exemplos por simplicidade.</strong></p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["usr-pwd-authenticate"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"f4ff3ecd-46c6-4b59-9c8f-673f0c75b334","name":"200-sucesso","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\": \"<seu-username>\",\r\n    \"password\": \"<seu-password>\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/usr-pwd-authenticate"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"message\": \"Authentication was successful!\",\n    \"AccessToken\": \"<seu-AccessToken>\",\n    \"IdToken\": \"<seu-IdToken>\",\n    \"RefreshToken\": \"<seu-RefreshToken>\",\n    \"ExpiresIn\": 3600,\n    \"headers\": {\n        \"Content-Type\": \"application/json\"\n    }\n}"},{"id":"d83ed91b-fda1-4a37-96f3-2b2f33857d58","name":"401-auth-fail","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\": \"<seu-username>\",\r\n    \"password\": \"<password-errado>\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/usr-pwd-authenticate"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 401,\n    \"message\": \"Authentication failed\",\n    \"headers\": {\n        \"Content-Type\": \"application/json\"\n    }\n}"}],"_postman_id":"7a8ee6a3-7a38-4904-918c-336e6b7053b9"},{"name":"usr-refresh-authenticate","id":"b1cdea80-2c0a-4836-a944-ebeb39df650a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"username\": \"<seu-username>\",\r\n  \"refresh_token\": \"<seu-RefreshToken>\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/usr-refresh-authenticate","description":"<p>Este endpoint é utilizado para atualizar e autenticar o token de acesso do usuário.</p>\n<h2 id=\"payload\">Payload</h2>\n<ul>\n<li><p><code>username</code> (string): O nome de usuário para autenticação.</p>\n</li>\n<li><p><code>refresh_token</code> (string): O token de atualização para renovar o acesso. Este deve ser obtido após uma requisição bem-sucedida em '/usr-pwd-authenticate', em cuja resposta virá no campo \"RefreshToken\".</p>\n</li>\n</ul>\n<h2 id=\"resposta\">Resposta</h2>\n<p>A resposta, se bem-sucedida, terá um status code 200 e um corpo no formato JSON com os seguintes campos:</p>\n<ul>\n<li><p><code>statusCode</code> (number): Código de status da resposta.</p>\n</li>\n<li><p><code>message</code> (string): Mensagem de resposta.</p>\n</li>\n<li><p><code>IdToken</code> (string): Token de identificação. <strong>Este deve ser fornecido no header 'moapi-token' para obter os indicadores!</strong></p>\n</li>\n<li><p><code>AccessToken</code> (string): Token de acesso.</p>\n</li>\n</ul>\n<p>Em caso de erro, o status 401 será devolvido e o JSON somente virá com os campos \"statusCode\" e \"message\".</p>\n","urlObject":{"protocol":"https","path":["usr-refresh-authenticate"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"09cfbf92-0d89-4499-aa35-072b28229724","name":"200-sucesso","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"username\": \"<seu-username>\",\r\n  \"refresh_token\": \"<seu-RefreshToken>\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/usr-refresh-authenticate"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"message\": \"Authentication successful!\",\n    \"IdToken\": \"<seu-IdToken>\",\n    \"AccessToken\": \"<seu-AccessToken>\"\n}"},{"id":"3fac2023-fa11-433e-ac4e-091064e32e0e","name":"401-auth-fail","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"username\": \"<seu-username>\",\r\n  \"refresh_token\": \"\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/usr-refresh-authenticate"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 401,\n    \"message\": \"Authentication failed: couldn't get id or access token!\"\n}"}],"_postman_id":"b1cdea80-2c0a-4836-a944-ebeb39df650a"},{"name":"absenteismo-dia-cluster","id":"8d85b35c-0f46-43e2-a525-9cb7ec1b071c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/absenteismo-dia-cluster","description":"<h1 id=\"post-absenteismo-dia-cluster\"><strong>POST</strong> <code>/absenteismo-dia-cluster</code></h1>\n<p>Fornece <strong>taxas de absenteísmo</strong> agregadas <strong>por dia</strong> e <strong>por cluster</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Retornar a taxa de absenteísmo diária de cada cluster em determinado intervalo.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong><br />• Limite de <strong>372 dias</strong> por consulta (≈ 12 × 31).<br />• Valores devolvidos como <em>fração</em> (ex.: <code>0.123</code> → 12,3 %).  </p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/absenteismo-dia-cluster</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <strong>obrigatório</strong> <code>moapi-token</code>.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data_ini</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data inicial no formato <code>AAAA-MM-DD</code> (2017 – 2100).</td>\n</tr>\n<tr>\n<td><code>data_fim</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data final no formato <code>AAAA-MM-DD</code> (2017 – 2100).</td>\n</tr>\n<tr>\n<td><code>lista_nomes_clusters</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Nomes de clusters. Para <strong>todos</strong>, use <code>[\"*\"]</code>. Não pode estar vazia.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página dos resultados (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-03-31\",\n  \"lista_nomes_clusters\": [\"cluster_A\", \"cluster_B\"],\n  \"pag\": 1\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP (200, 400, etc.).</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto breve sobre sucesso/falha.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes do erro (se houver).</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Última página disponível.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td>Lista de listas: <code>[cluster, data, absenteismo]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <strong><code>200 OK</code></strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"nome_cluster\", \"data\", \"absenteismo\"],\n    [\"cluster_A\", \"2024-01-01\", \"0.0450\"],\n    [\"cluster_A\", \"2024-01-02\", \"0.0512\"],\n    [\"cluster_B\", \"2024-01-01\", \"0.0398\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 373 dias, excedendo assim o limite deste endpoint (Doze meses cheios (372 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[detalhes da validação]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"401--token-expirado\"><code>401 – Token Expirado</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"The incoming token has expired\"\n}\n</code></pre>\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes internos]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["absenteismo-dia-cluster"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"8d85b35c-0f46-43e2-a525-9cb7ec1b071c"},{"name":"absenteismo-dia-colaborador","id":"17f89c0a-803a-446a-9322-121382d9a14b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/absenteismo-dia-colaborador","description":"<h1 id=\"post-absenteismo-dia-colaborador\"><strong>POST</strong> <code>/absenteismo-dia-colaborador</code></h1>\n<p>Retorna o <strong>status de absenteísmo</strong> (ex: 'Presente', 'Falta Injustificada') <strong>por dia</strong> e <strong>por colaborador</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Obter o status de absenteísmo diário para cada matrícula solicitada.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong><br />• Limite de <strong>10 dias corridos</strong>.<br />• Lista <code>[\"*\"]</code> devolve todos os colaboradores.</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/absenteismo-dia-colaborador</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> <strong>obrigatório</strong>.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data_ini</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data inicial <code>AAAA-MM-DD</code>.</td>\n</tr>\n<tr>\n<td><code>data_fim</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data final <code>AAAA-MM-DD</code>.</td>\n</tr>\n<tr>\n<td><code>lista_matriculas_colaboradores</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Matrículas desejadas ou <code>[\"*\"]</code> para todas.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página dos resultados (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data_ini\": \"2024-03-10\",\n  \"data_fim\": \"2024-03-15\",\n  \"lista_matriculas_colaboradores\": [\"matr456\", \"matrABC\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto de status.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes do erro.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Página final.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[matricula, data, status_absenteismo]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <strong><code>200 OK</code></strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"matricula\", \"data\", \"absenteismo\"],\n    [\"matr456\", \"2024-03-10\", \"Presente\"],\n    [\"matr456\", \"2024-03-11\", \"Falta Injustificada\"],\n    [\"matrABC\", \"2024-03-10\", \"Presente\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Se o intervalo entre <code>data_ini</code> e <code>data_fim</code> exceder o limite de <strong>10 dias</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 12 dias, excedendo assim o limite deste endpoint (Dez dias corridos (10 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Algum campo fora do esperado (formato de data inválido, lista vazia, item numérico em vez de string etc.).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[instance.lista_matriculas_colaboradores is not of a type(s) array]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"message\": \"The incoming token has expired\" }\n</code></pre>\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes internos]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["absenteismo-dia-colaborador"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"17f89c0a-803a-446a-9322-121382d9a14b"},{"name":"absenteismo-dia-filial","id":"7147a83f-1600-48ea-8d2c-e98fd6caaa3f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/absenteismo-dia-filial","description":"<h1 id=\"post-absenteismo-dia-filial\"><strong>POST</strong> <code>/absenteismo-dia-filial</code></h1>\n<p>Fornece <strong>taxa de absenteísmo</strong> por <strong>dia</strong> e <strong>filial</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Retornar a taxa de absenteísmo diária por filial dentro de um período.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong> limite de <strong>62 dias</strong> por consulta.</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/absenteismo-dia-filial</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> obrigatório.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data_ini</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data inicial <code>AAAA-MM-DD</code>.</td>\n</tr>\n<tr>\n<td><code>data_fim</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data final <code>AAAA-MM-DD</code>.</td>\n</tr>\n<tr>\n<td><code>lista_cods_filiais</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Códigos de filial. <code>[\"*\"]</code> para todas.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data_ini\": \"2024-06-01\",\n  \"data_fim\": \"2024-06-30\",\n  \"lista_cods_filiais\": [\"0001\", \"0015\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto curto.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Última página.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[filial_cod, data, absenteismo]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <code>200 OK</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"filial_cod\", \"data\", \"absenteismo\"],\n    [\"0001\", \"2024-06-10\", \"0.055\"],\n    [\"0015\", \"2024-06-10\", \"0.021\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Quando o intervalo entre <code>data_ini</code> e <code>data_fim</code> ultrapassa <strong>62 dias</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 70 dias, excedendo assim o limite deste endpoint (Dois meses cheios (62 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Qualquer violação de formato ou regra de validação (data inválida, lista vazia, etc.).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[{\\\"validation\\\":\\\"minItems\\\",\\\"code\\\":\\\"array_too_small\\\",\\\"message\\\":\\\"Array must contain at least 1 element(s)\\\",\\\"path\\\":[\\\"lista_cods_filiais\\\"]}]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"The incoming token has expired\"\n}\n</code></pre>\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"Falha na conexao com o banco de dados.\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["absenteismo-dia-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"7147a83f-1600-48ea-8d2c-e98fd6caaa3f"},{"name":"absenteismo-mes-cluster","id":"92851dec-6580-466c-a789-09b2db831402","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/absenteismo-mes-cluster","description":"<h1 id=\"post-absenteismo-mes-cluster\"><strong>POST</strong> <code>/absenteismo-mes-cluster</code></h1>\n<p>Devolve o <strong>absenteísmo</strong> por <strong>mês</strong> e <strong>cluster</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Retornar o absenteísmo mensal por cluster.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong> intervalo máximo de <strong>dois anos cheios (730 dias)</strong>.</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/absenteismo-mes-cluster</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> obrigatório.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>mes_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês inicial <code>MM</code> ou inteiro <code>1–12</code>.</td>\n</tr>\n<tr>\n<td><code>ano_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano inicial <code>AAAA</code> (≥ 2017).</td>\n</tr>\n<tr>\n<td><code>mes_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês final <code>MM</code> ou inteiro <code>1–12</code>.</td>\n</tr>\n<tr>\n<td><code>ano_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano final <code>AAAA</code> (≥ 2017).</td>\n</tr>\n<tr>\n<td><code>lista_nomes_clusters</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Nomes ou <code>[\"*\"]</code> para todos.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2023,\n  \"mes_fim\": 12,\n  \"ano_fim\": 2023,\n  \"lista_nomes_clusters\": [\"cluster_alfa\", \"cluster_beta\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto de status.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Página final.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[nome_cluster, ano, mes, absenteismo]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <code>200 OK</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"nome_cluster\", \"ano\", \"mes\", \"absenteismo\"],\n    [\"cluster_alfa\", \"2023\", \"1\", \"0.0455\"],\n    [\"cluster_alfa\", \"2023\", \"2\", \"0.0480\"],\n    [\"cluster_beta\", \"2023\", \"1\", \"0.0510\"],\n    [\"cluster_beta\", \"2023\", \"2\", \"0.0523\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Quando o intervalo entre <code>(mes_ini, ano_ini)</code> e <code>(mes_fim, ano_fim)</code> excede <strong>730 dias</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 762 dias, excedendo assim o limite deste endpoint (Dois anos cheios (730 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Violação de formato, valor fora de faixa (mês &gt; 12, ano &lt; 2017), lista vazia, item duplicado, etc.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[{\\\"validation\\\":\\\"regex\\\",\\\"code\\\":\\\"invalid_string\\\",\\\"message\\\":\\\"String does not match pattern: ^(201[7-9]|20[2-9][0-9]|21[01][0-7])$\\\",\\\"path\\\":[\\\"ano_ini\\\"]}]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{ \"message\": \"The incoming token has expired\" }\n</code></pre>\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"Ocorreu um erro interno ao consultar os dados de absenteísmo.\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["absenteismo-mes-cluster"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"92851dec-6580-466c-a789-09b2db831402"},{"name":"absenteismo-mes-colaborador","id":"640c2362-260b-4f7f-87bb-62b977fb7720","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/absenteismo-mes-colaborador","description":"<h1 id=\"post-absenteismo-mes-colaborador\"><strong>POST</strong> <code>/absenteismo-mes-colaborador</code></h1>\n<p>Retorna <strong>absenteísmo</strong> por <strong>mês</strong> e <strong>colaborador</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Consultar a quantidade de absenteísmo mensal por matrícula.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong> limite: <strong>Um mês cheio (31 dias)</strong>.</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/absenteismo-mes-colaborador</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> obrigatório.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>mes_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês inicial <code>MM</code> ou <code>1–12</code>.</td>\n</tr>\n<tr>\n<td><code>ano_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano inicial ≥ 2017.</td>\n</tr>\n<tr>\n<td><code>mes_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês final.</td>\n</tr>\n<tr>\n<td><code>ano_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano final.</td>\n</tr>\n<tr>\n<td><code>lista_matriculas_colaboradores</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Matrículas. Mínimo 1 item, sem valores repetidos.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"mes_ini\": 1,\n  \"ano_ini\": 2024,\n  \"mes_fim\": 1,\n  \"ano_fim\": 2024,\n  \"lista_matriculas_colaboradores\": [\"matr456\", \"matr789\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto de status.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Página final.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[matricula, ano, mes, absenteismo]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <code>200 OK</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"matricula\", \"ano\", \"mes\", \"absenteismo\"],\n    [\"matr456\", \"2024\", \"1\", \"2\"],\n    [\"matr789\", \"2024\", \"1\", \"0\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Quando o intervalo entre <code>(mes_ini, ano_ini)</code> e <code>(mes_fim, ano_fim)</code> resulta em <strong>mais de 31 dias equivalentes</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 62 dias, excedendo assim o limite desta requisicao (Um mês cheio (31 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<blockquote>\n<p><em>A mensagem acima é apenas ilustrativa; o número de dias retornados varia conforme o período solicitado.</em></p>\n</blockquote>\n<hr />\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Campo fora do padrão, valor fora da faixa permitida (mês <code>&gt; 12</code>, ano <code>&lt; 2017</code>, lista vazia, item não-string, duplicado etc.).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[detalhes do erro de validacao]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<hr />\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"message\": \"The incoming token has expired\" }\n</code></pre>\n<hr />\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes internos]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["absenteismo-mes-colaborador"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"640c2362-260b-4f7f-87bb-62b977fb7720"},{"name":"absenteismo-mes-filial","id":"1b25a996-ee6b-440e-9db4-1505f4ae112c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/absenteismo-mes-filial","description":"<h1 id=\"post-absenteismo-mes-filial\"><strong>POST</strong> <code>/absenteismo-mes-filial</code></h1>\n<p>Retorna <strong>taxas de absenteísmo</strong> por <strong>mês</strong> e <strong>filial</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Obter a taxa de absenteísmo mensal por filial.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong> intervalo máximo de <strong>12 meses</strong> (≈ 372 dias).</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/absenteismo-mes-filial</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> obrigatório.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>mes_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês inicial.</td>\n</tr>\n<tr>\n<td><code>ano_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano inicial.</td>\n</tr>\n<tr>\n<td><code>mes_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês final.</td>\n</tr>\n<tr>\n<td><code>ano_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano final.</td>\n</tr>\n<tr>\n<td><code>lista_cods_filiais</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Códigos ou <code>[\"*\"]</code>.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2023,\n  \"mes_fim\": 12,\n  \"ano_fim\": 2023,\n  \"lista_cods_filiais\": [\"0002\", \"0025\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto breve.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Página final.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[filial_cod, ano, mes, absenteismo]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <code>200 OK</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"filial_cod\", \"ano\", \"mes\", \"absenteismo\"],\n    [\"0002\", \"2023\", \"1\", \"0.0512\"],\n    [\"0025\", \"2023\", \"1\", \"0.0489\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Quando o intervalo entre <code>(mes_ini, ano_ini)</code> e <code>(mes_fim, ano_fim)</code> ultrapassar <strong>12 meses (≈ 372 dias)</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 398 dias, excedendo assim o limite deste endpoint (Doze meses cheios (372 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<blockquote>\n<p><em>O número de dias exibido na mensagem varia conforme a requisição; o exemplo acima é ilustrativo.</em></p>\n</blockquote>\n<hr />\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Qualquer campo fora do esperado (mês &gt; 12, ano &lt; 2017, lista vazia ou contendo valores de tipo errado, etc.).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": 1,\n  \"ano_ini\": 2015,\n  \"mes_fim\": 1,\n  \"ano_fim\": 2016,\n  \"lista_cods_filiais\": [\"0001\"]\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[detalhes do erro de validacao]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<hr />\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{ \"message\": \"The incoming token has expired\" }\n</code></pre>\n<hr />\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes internos]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["absenteismo-mes-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"1b25a996-ee6b-440e-9db4-1505f4ae112c"},{"name":"carga-trab-dia-cluster","id":"2d73eb5f-6110-4ce2-98b2-73864ad6940f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/carga-trab-dia-cluster","description":"<h1 id=\"post-carga-trab-dia-cluster\"><strong>POST</strong> <code>/carga-trab-dia-cluster</code></h1>\n<p>Fornece a <strong>carga de trabalho</strong> agregada <strong>por dia</strong> e <strong>por cluster</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Retornar a carga de trabalho diária de cada cluster em determinado intervalo.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong><br />• Limite de <strong>372 dias</strong> por consulta (≈ 12 × 31).  </p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/carga-trab-dia-cluster</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <strong>obrigatório</strong> <code>moapi-token</code>.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data_ini</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data inicial no formato <code>AAAA-MM-DD</code> (2017 – 2100).</td>\n</tr>\n<tr>\n<td><code>data_fim</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data final no formato <code>AAAA-MM-DD</code> (2017 – 2100).</td>\n</tr>\n<tr>\n<td><code>lista_nomes_clusters</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Nomes de clusters. Para <strong>todos</strong>, use <code>[\"*\"]</code>. Não pode estar vazia.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página dos resultados (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-03-31\",\n  \"lista_nomes_clusters\": [\"cluster_A\", \"cluster_B\"],\n  \"pag\": 1\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP (200, 400, etc.).</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto breve sobre sucesso/falha.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes do erro (se houver).</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Última página disponível.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td>Lista de listas: <code>[cluster, data, carga_trabalho]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <strong><code>200 OK</code></strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"nome_cluster\", \"data\", \"carga_trabalho\"],\n    [\"cluster_A\", \"2024-01-01\", \"1543.21\"],\n    [\"cluster_A\", \"2024-01-02\", \"1601.50\"],\n    [\"cluster_B\", \"2024-01-01\", \"987.65\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 373 dias, excedendo assim o limite deste endpoint (Doze meses cheios (372 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[detalhes da validação]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"401--token-expirado\"><code>401 – Token Expirado</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"message\": \"The incoming token has expired\" }\n</code></pre>\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes internos]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["carga-trab-dia-cluster"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"2d73eb5f-6110-4ce2-98b2-73864ad6940f"},{"name":"carga-trab-dia-filial","id":"79f64a10-da90-496d-b52f-b08ea8f221c0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/carga-trab-dia-filial","description":"<h1 id=\"post-carga-trab-dia-filial\"><strong>POST</strong> <code>/carga-trab-dia-filial</code></h1>\n<p>Fornece a <strong>carga de trabalho</strong> por <strong>dia</strong> e <strong>filial</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Retornar a carga de trabalho diária por filial dentro de um período.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong> limite de <strong>62 dias</strong> por consulta.</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/carga-trab-dia-filial</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> obrigatório.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data_ini</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data inicial <code>AAAA-MM-DD</code>.</td>\n</tr>\n<tr>\n<td><code>data_fim</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data final <code>AAAA-MM-DD</code>.</td>\n</tr>\n<tr>\n<td><code>lista_cods_filiais</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Códigos de filial. Pelo menos um deve ser fornecido.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"data_ini\": \"2024-05-01\",\n  \"data_fim\": \"2024-05-31\",\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto curto.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Última página.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[filial_cod, data, carga_trabalho]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <code>200 OK</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"filial_cod\", \"data\", \"carga_trabalho\"],\n    [\"0001\", \"2024-05-15\", \"8.5\"],\n    [\"0002\", \"2024-05-15\", \"12.0\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Quando o intervalo entre <code>data_ini</code> e <code>data_fim</code> ultrapassa <strong>62 dias</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 92 dias, excedendo assim o limite deste endpoint (Dois meses cheios (62 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Qualquer violação de formato ou regra de validação (data inválida, lista vazia, item numérico onde devia ser string etc.).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[detalhes do erro de validacao]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"message\": \"The incoming token has expired\"\n}\n</code></pre>\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes internos]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["carga-trab-dia-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"79f64a10-da90-496d-b52f-b08ea8f221c0"},{"name":"carga-trab-mes-cluster","id":"7b0700a9-9c99-4b68-a26f-b8300c30ca8d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/carga-trab-mes-cluster","description":"<h1 id=\"post-carga-trab-mes-cluster\"><strong>POST</strong> <code>/carga-trab-mes-cluster</code></h1>\n<p>Devolve <strong>carga de trabalho</strong> por <strong>mês</strong> e <strong>cluster</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Retornar a carga de trabalho mensal por cluster.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong> intervalo máximo de <strong>dois anos cheios (730 dias)</strong>.</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/carga-trab-mes-cluster</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> obrigatório.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>mes_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês inicial <code>MM</code> ou inteiro <code>1–12</code>.</td>\n</tr>\n<tr>\n<td><code>ano_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano inicial <code>AAAA</code> (≥ 2017).</td>\n</tr>\n<tr>\n<td><code>mes_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês final <code>MM</code> ou inteiro <code>1–12</code>.</td>\n</tr>\n<tr>\n<td><code>ano_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano final <code>AAAA</code> (≥ 2017).</td>\n</tr>\n<tr>\n<td><code>lista_nomes_clusters</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Nomes ou <code>[\"*\"]</code> para todos.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2023,\n  \"mes_fim\": 12,\n  \"ano_fim\": 2023,\n  \"lista_nomes_clusters\": [\"cluster_A\", \"cluster_B\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto de status.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Página final.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[nome_cluster, ano, mes, carga_trabalho]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <code>200 OK</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"nome_cluster\", \"ano\", \"mes\", \"carga_trabalho\"],\n    [\"cluster_A\", \"2023\", \"1\", \"150.75\"],\n    [\"cluster_A\", \"2023\", \"2\", \"165.20\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Quando o intervalo entre <code>(mes_ini, ano_ini)</code> e <code>(mes_fim, ano_fim)</code> excede <strong>730 dias</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 762 dias, excedendo assim o limite deste endpoint (Dois anos cheios (730 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Violação de formato, valor fora de faixa (mês &gt; 12, ano &lt; 2017), lista vazia, item duplicado, etc.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[{\\\"validation\\\":\\\"regex\\\",\\\"code\\\":\\\"invalid_string\\\",\\\"message\\\":\\\"String does not match pattern: ^(201[7-9]|20[2-9][0-9]|21[01][0-7])$\\\",\\\"path\\\":[\\\"ano_ini\\\"]}]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"message\": \"The incoming token has expired\"\n}\n</code></pre>\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"Ocorreu uma falha interna no servidor.\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["carga-trab-mes-cluster"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"7b0700a9-9c99-4b68-a26f-b8300c30ca8d"},{"name":"carga-trab-mes-filial","id":"734b54cf-c5ea-46bb-a349-6d3b665aa241","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/carga-trab-mes-filial","description":"<h1 id=\"post-carga-trab-mes-filial\"><strong>POST</strong> <code>/carga-trab-mes-filial</code></h1>\n<p>Retorna <strong>carga de trabalho</strong> por <strong>mês</strong> e <strong>filial</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Obter a carga de trabalho mensal por filial.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong> intervalo máximo de <strong>12 meses</strong> (≈ 372 dias).</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/carga-trab-mes-filial</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> obrigatório.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>mes_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês inicial.</td>\n</tr>\n<tr>\n<td><code>ano_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano inicial.</td>\n</tr>\n<tr>\n<td><code>mes_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês final.</td>\n</tr>\n<tr>\n<td><code>ano_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano final.</td>\n</tr>\n<tr>\n<td><code>lista_cods_filiais</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Códigos ou <code>[\"*\"]</code>.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2023,\n  \"mes_fim\": 3,\n  \"ano_fim\": 2023,\n  \"lista_cods_filiais\": [\"0001\", \"0005\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto breve.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Página final.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[filial_cod, ano, mes, carga_trabalho]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <code>200 OK</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"filial_cod\", \"ano\", \"mes\", \"carga_trabalho\"],\n    [\"0001\", \"2023\", \"1\", \"1540.50\"],\n    [\"0005\", \"2023\", \"1\", \"1890.00\"],\n    [\"0001\", \"2023\", \"2\", \"1495.25\"],\n    [\"0005\", \"2023\", \"2\", \"1910.75\"],\n    [\"0001\", \"2023\", \"3\", \"1610.00\"],\n    [\"0005\", \"2023\", \"3\", \"1855.50\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Quando o intervalo entre <code>(mes_ini, ano_ini)</code> e <code>(mes_fim, ano_fim)</code> ultrapassar <strong>12 meses (≈ 372 dias)</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2022,\n  \"mes_fim\": 1,\n  \"ano_fim\": 2023,\n  \"lista_cods_filiais\": [\"0001\"]\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 396 dias, excedendo assim o limite deste endpoint (Doze meses cheios (372 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<blockquote>\n<p><em>O número de dias exibido na mensagem varia conforme a requisição; o exemplo acima é ilustrativo.</em></p>\n</blockquote>\n<hr />\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Qualquer campo fora do esperado (mês &gt; 12, ano &lt; 2017, lista vazia ou contendo valores de tipo errado, etc.).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": \"13\",\n  \"ano_ini\": 2023,\n  \"mes_fim\": 12,\n  \"ano_fim\": 2023,\n  \"lista_cods_filiais\": [\"0001\"]\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[{\\\"instancePath\\\":\\\"/mes_ini\\\",\\\"schemaPath\\\":\\\"#/properties/mes_ini/anyOf/0/pattern\\\",\\\"keyword\\\":\\\"pattern\\\",\\\"params\\\":{\\\"pattern\\\":\\\"^(0[1-9]|1[0-2])$\\\"},\\\"message\\\":\\\"must match pattern \\\\\\\"^(0[1-9]|1[0-2])$\\\\\\\"\\\"},{\\\"instancePath\\\":\\\"/mes_ini\\\",\\\"schemaPath\\\":\\\"#/properties/mes_ini/anyOf/1/maximum\\\",\\\"keyword\\\":\\\"maximum\\\",\\\"params\\\":{\\\"comparison\\\":\\\"&lt;=\\\",\\\"limit\\\":12},\\\"message\\\":\\\"must be &lt;= 12\\\"},{\\\"instancePath\\\":\\\"/mes_ini\\\",\\\"schemaPath\\\":\\\"#/properties/mes_ini/anyOf\\\",\\\"keyword\\\":\\\"anyOf\\\",\\\"params\\\":{},\\\"message\\\":\\\"must match a schema in anyOf\\\"}]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<hr />\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{ \"message\": \"The incoming token has expired\" }\n</code></pre>\n<hr />\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"Falha na conexao com o banco de dados.\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["carga-trab-mes-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"734b54cf-c5ea-46bb-a349-6d3b665aa241"},{"name":"contratacoes-dia-filial","id":"46a718af-3618-425b-940f-91f5e98021b0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"data_ini\": \"2026-07-01\",\n    \"data_fim\": \"2026-07-15\",\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/contratacoes-dia-filial","description":"<p>Janela máxima: 62 dias. Síncrono. Vagas de contratação da escala que VALIDAMENTE rege cada data, separadas por status; colunas mutuamente exclusivas por data.</p>\n<p>Janela toda anterior à primeira escala Ativa vem VAZIA (por desenho).</p>\n<p>Colunas: filial_cod, data, contratacoes_escala_ativa, contratacoes_escala_agendada.</p>\n","urlObject":{"protocol":"https","path":["contratacoes-dia-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"f2a14c95-9f84-4af5-97f5-603a8618be77","name":"200-sucesso","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"data_ini\": \"2026-07-01\",\n    \"data_fim\": \"2026-07-15\",\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/contratacoes-dia-filial","description":"Janela maxima: 62 dias. Sincrono. Vagas de contratacao da escala que VALIDAMENTE rege cada data, separadas por status; colunas mutuamente exclusivas por data. Janela toda anterior a' 1a escala Ativa vem VAZIA (por design). Colunas: filial_cod, data, contratacoes_escala_ativa, contratacoes_escala_agendada."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"filial_cod\",\n            \"data\",\n            \"contratacoes_escala_ativa\",\n            \"contratacoes_escala_agendada\"\n        ],\n        [\n            \"0001\",\n            \"2026-07-05\",\n            \"2\",\n            \"0\"\n        ],\n        [\n            \"0002\",\n            \"2026-08-03\",\n            \"0\",\n            \"3\"\n        ]\n    ]\n}"},{"id":"f5fa841c-53d0-4737-9cc7-42a5518e99c6","name":"400-janela-excede-limite","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"data_ini\": \"2026-07-01\",\n    \"data_fim\": \"2026-07-15\",\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/contratacoes-dia-filial","description":"Janela maxima: 62 dias. Sincrono. Vagas de contratacao da escala que VALIDAMENTE rege cada data, separadas por status; colunas mutuamente exclusivas por data. Janela toda anterior a' 1a escala Ativa vem VAZIA (por design). Colunas: filial_cod, data, contratacoes_escala_ativa, contratacoes_escala_agendada."},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Requisicao mal-formada.\",\n    \"erro\": \"O periodo inserido contempla 92 dias, excedendo assim o limite desta requisicao (62 dias)!\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"}],"_postman_id":"46a718af-3618-425b-940f-91f5e98021b0"},{"name":"contratacoes-mes-filial","id":"fc831977-3609-4c56-a9b5-df95689d9fe8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"mes_ini\": \"06\",\n    \"ano_ini\": 2026,\n    \"mes_fim\": \"07\",\n    \"ano_fim\": 2026,\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/contratacoes-mes-filial","description":"<p>Janela máxima: 372 dias. Síncrono. Conta VAGAS distintas no mes, não vaga-dia. Colunas: filial_cod, ano, mes, contratacoes_escala_ativa, contratacoes_escala_agendada.</p>\n","urlObject":{"protocol":"https","path":["contratacoes-mes-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"940907a5-c50a-484f-b8a3-0d6d70cfc5cc","name":"200-sucesso","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"mes_ini\": \"06\",\n    \"ano_ini\": 2026,\n    \"mes_fim\": \"07\",\n    \"ano_fim\": 2026,\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/contratacoes-mes-filial","description":"Janela maxima: 372 dias. Sincrono. Conta VAGAS distintas no mes, nao vaga-dia. Colunas: filial_cod, ano, mes, contratacoes_escala_ativa, contratacoes_escala_agendada."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"filial_cod\",\n            \"ano\",\n            \"mes\",\n            \"contratacoes_escala_ativa\",\n            \"contratacoes_escala_agendada\"\n        ],\n        [\n            \"0001\",\n            \"2026\",\n            \"7\",\n            \"2\",\n            \"0\"\n        ]\n    ]\n}"},{"id":"2766d82d-0ba2-456d-b29e-856d3f2b38b9","name":"400-janela-excede-limite","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"mes_ini\": \"06\",\n    \"ano_ini\": 2026,\n    \"mes_fim\": \"07\",\n    \"ano_fim\": 2026,\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/contratacoes-mes-filial","description":"Janela maxima: 372 dias. Sincrono. Conta VAGAS distintas no mes, nao vaga-dia. Colunas: filial_cod, ano, mes, contratacoes_escala_ativa, contratacoes_escala_agendada."},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Requisicao mal-formada.\",\n    \"erro\": \"O periodo inserido contempla 402 dias, excedendo assim o limite desta requisicao (372 dias)!\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"}],"_postman_id":"fc831977-3609-4c56-a9b5-df95689d9fe8"},{"name":"desvios-dia-cluster","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"02bec7a1-142a-47f1-9f2b-ab24992dbdf5"}}],"id":"49f8b439-9baa-4fbd-94f1-f2b393d0afb6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-11-07\",\r\n  \"lista_nomes_clusters\": []\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-cluster","description":"<h1 id=\"desvios-por-dia-e-cluster\">Desvios por dia e cluster</h1>\n<p>Fornece desvios percentuais agregados por dia e discriminados por cluster.</p>\n<h2 id=\"payload-de-requisição\">Payload de requisição</h2>\n<p>O usuário deve fornecer datas inicial (\"data_ini\") e final (\"data_fim\") em formato \"AAAA-MM-DD\".</p>\n<p>O número total de dias correspondentes (\"daterange\") não pode exceder 12 meses cheios (12*31 dias).</p>\n<p>Em \"lista_nomes_clusters\" espera-se uma lista contendo strings que correspondam a nomes de clusters cadastrados na MOAVI. <strong>Para que dados de todos clusters sejam retornados, o input deve ser \"<strong>lista_nomes_clusters</strong>\": [\"*\"]</strong></p>\n<p>Se houver necessidade de paginação, em requisições posteriores o usuário deve incluir no body a chave \"pag\" com um inteiro positivo.</p>\n<h2 id=\"corpo-da-resposta\">Corpo da resposta</h2>\n<ul>\n<li><p>\"mensagem\" conterá uma <em><strong>string</strong></em> que informa brevemente sobre sucesso ou fracasso da request. Algumas requisições podem resultar em avisos neste campo.</p>\n</li>\n<li><p>\"erro\", se aplicável, trará <em><strong>string</strong></em> detalhando o motivo de fracasso da requisição. Se não, retorna como <em><strong>null</strong></em></p>\n</li>\n<li><p>\"ultimaPag\", fornece a página (<em><strong>integer</strong></em>) do último lote de resultados. Em casos de erro, por exemplo, retorna como <em><strong>null</strong></em>.</p>\n</li>\n<li><p>\"statusCode\" informa o código HTTP da resposta, um <em><strong>integer</strong></em>.</p>\n</li>\n<li><p>\"resultados\", se não <em>null</em>, trata-se de uma lista de listas. As listas internas sempre tem 3 elementos, cada, todos <em><strong>string</strong></em>.</p>\n<ul>\n<li><p>A primeira lista aninhada é sempre [\"nome_cluster\", \"data\", \"desvio\"].</p>\n</li>\n<li><p>As demais conterão <em><strong>strings</strong></em> com valores respectivos, ex: [\"cluster1\", \"2024-06-11\", \"0.123\"] significaria que no dia 11 de junho de 2024, o cluster \"cluster1\" performou com \"0.123\" (12,3%) de desvios.</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["desvios-dia-cluster"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"55a2580c-d089-4ace-a9f7-b53dd8ccd6ac","name":"200-sucesso-com-aviso","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-01-01\",\r\n  \"lista_nomes_clusters\": [\"*\", \"123\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-cluster"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Cuidado! A lista passada foi lista_nomes_clusters=['*', '123']. Estamos ignorando a entrada avulsa e buscando por todas entradas.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"nome_cluster\",\n            \"data\",\n            \"desvio\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-01\",\n            \"0.3117\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-02\",\n            \"0.3410\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-03\",\n            \"0.2978\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-04\",\n            \"0.3364\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-05\",\n            \"0.3438\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-06\",\n            \"0.3349\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-07\",\n            \"0.2531\"\n        ],\n        [\n            \"cluster2\",\n            \"2024-01-01\",\n            \"0.3923\"\n        ],\n        [\n            \"cluster2\",\n            \"2024-01-02\",\n            \"0.3077\"\n        ],\n        [\n            \"cluster2\",\n            \"2024-01-03\",\n            \"0.2756\"\n        ],\n        [\n            \"cluster2\",\n            \"2024-01-04\",\n            \"0.2795\"\n        ],\n        [\n            \"cluster2\",\n            \"2024-01-05\",\n            \"0.2915\"\n        ],\n        [\n            \"cluster2\",\n            \"2024-01-06\",\n            \"0.2902\"\n        ],\n        [\n            \"cluster2\",\n            \"2024-01-07\",\n            \"0.2538\"\n        ]\n    ]\n\n}\n"},{"id":"65a958d6-a708-46c0-84d3-127ce6dc0216","name":"200-sucesso-completo","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-01-07\",\r\n  \"lista_nomes_clusters\": [\"cluster1\", \"cluster2\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-cluster"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"nome_cluster\",\n            \"data\",\n            \"desvio\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-01\",\n            \"0.3117\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-02\",\n            \"0.3410\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-03\",\n            \"0.2978\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-04\",\n            \"0.3364\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-05\",\n            \"0.3438\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-06\",\n            \"0.3349\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-07\",\n            \"0.2531\"\n        ],\n        [\n            \"cluster2\",\n            \"2024-01-01\",\n            \"0.3923\"\n        ],\n        [\n            \"cluster2\",\n            \"2024-01-02\",\n            \"0.3077\"\n        ],\n        [\n            \"cluster2\",\n            \"2024-01-03\",\n            \"0.2756\"\n        ],\n        [\n            \"cluster2\",\n            \"2024-01-04\",\n            \"0.2795\"\n        ],\n        [\n            \"cluster2\",\n            \"2024-01-05\",\n            \"0.2915\"\n        ],\n        [\n            \"cluster2\",\n            \"2024-01-06\",\n            \"0.2902\"\n        ],\n        [\n            \"cluster2\",\n            \"2024-01-07\",\n            \"0.2538\"\n        ]\n    ]\n\n}\n"},{"id":"6b260b99-3d0b-4551-b349-05e685acf979","name":"400-erro-excesso-de-dias","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2023-01-01\",\r\n  \"data_fim\": \"2024-01-08\",\r\n  \"lista_nomes_clusters\": [\"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-cluster"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Requisicao mal-formada.\",\n    \"erro\": \"O periodo inserido contempla 373 dias, excedendo assim o limite deste endpoint (372 dias)!\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"11676d02-2b16-4cfb-9d44-b776d2b8de24","name":"400-lista_nomes_clusters-deve-conter-apenas-strings","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2023-01-01\",\r\n  \"data_fim\": \"2023-01-02\",\r\n  \"lista_nomes_clusters\": [\"*\", 123]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-cluster"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[instance type (integer) does not match any allowed primitive type (allowed: [\\\"string\\\"])]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"a667f0e9-96b5-47fd-9b3c-f2d8b17d9baa","name":"400-lista_nomes_clusters-vazia","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-11-07\",\r\n  \"lista_nomes_clusters\": []\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-cluster"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[array is too short: must have at least 1 elements but instance has 0 elements]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"0b9c3436-59e6-4f6e-97ae-0bc3c0857744","name":"500-mes-invalido","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-13-07\",\r\n  \"lista_nomes_clusters\": [\"cluster1\"]\r\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://moapi.escalamoavi.com.br/desvios-dia-cluster?","protocol":"https","host":["moapi","escalamoavi","com","br"],"path":["desvios-dia-cluster"],"query":[{"key":null,"value":null}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 500,\n    \"mensagem\": \"Problema ao checar a amplitude de data. Verifique sua requisição!\",\n    \"erro\": \"time data '2024-13-07' does not match format '%Y-%m-%d'\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"}],"_postman_id":"49f8b439-9baa-4fbd-94f1-f2b393d0afb6"},{"name":"desvios-dia-colaborador","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"819c21bd-7fc6-4367-8145-036ad084d164"}},{"listen":"prerequest","script":{"packages":{},"type":"text/javascript","id":"bf4133ac-4749-4dbf-9ef3-0887f7ee51fe"}}],"id":"0b193b47-37f0-4a56-8389-29c3e8d35b4f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-11-101\",\r\n  \"data_fim\": \"2024-01-11\",\r\n  \"lista_matriculas_colaboradores\": [\"1\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-colaborador","description":"<h1 id=\"desvios-por-dia-e-colaborador\">Desvios por dia e colaborador</h1>\n<p>Fornece desvios <em><strong>absolutos</strong></em> (isto é, número de ocorrências) agregados por dia e discriminados por colaborador através da matrícula deste.</p>\n<h2 id=\"payload-de-requisição\">Payload de requisição</h2>\n<p>O usuário deve fornecer datas inicial (\"data_ini\") e final (\"data_fim\") em formato \"AAAA-MM-DD\".</p>\n<p>O número total de dias correspondentes (\"daterange\") deve ser, atualmente, no máximo <em><strong>1500/n_colabs</strong></em> em que n_colabs é o número de colaboradores solicitados.</p>\n<p>Em \"lista_matriculas_colaboradores\" espera-se uma lista contendo strings que correspondam a matrículas de colaboradors cadastrados na MOAVI. <strong>Para que dados de todos colaboradores sejam retornados, o input deve ser \"<strong>lista_matriculas_colaboradores</strong>\": [\"*\"]</strong></p>\n<p>Se houver necessidade de paginação, em requisições posteriores o usuário deve incluir no body a chave \"pag\" com um inteiro positivo.</p>\n<h2 id=\"corpo-da-resposta\">Corpo da resposta</h2>\n<ul>\n<li><p>\"mensagem\" conterá uma <em><strong>string</strong></em> que informa brevemente sobre sucesso ou fracasso da request. Algumas requisições podem resultar em avisos neste campo.</p>\n</li>\n<li><p>\"erro\", se aplicável, trará <em><strong>string</strong></em> detalhando o motivo de fracasso da requisição. Se não, retorna como <em><strong>null</strong></em></p>\n</li>\n<li><p>\"ultimaPag\", fornece a página (<em><strong>integer</strong></em>) do último lote de resultados. Em casos de erro, por exemplo, retorna como <em><strong>null</strong></em>.</p>\n</li>\n<li><p>\"statusCode\" informa o código HTTP da resposta, um <em><strong>integer</strong></em>.</p>\n</li>\n<li><p>\"resultados\", se não <em>null</em>, trata-se de uma lista de listas. As listas internas sempre tem 3 elementos, cada, todos <em><strong>string</strong></em>.</p>\n<ul>\n<li><p>A primeira lista aninhada é sempre [\"matricula\", \"data\", \"n_desvios\"].</p>\n</li>\n<li><p>As demais conterão <em><strong>strings</strong></em> com valores respectivos, ex: [\"1234\", \"2024-06-11\", \"2\"] significaria que no dia 11 de junho de 2024, houve 2 desvios nas batidas do colaborador com matrícula \"1234\".</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["desvios-dia-colaborador"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"8b9656c6-6b2e-4d1b-9458-12215749acca","name":"200-sucesso-completo","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-01-10\",\r\n  \"lista_matriculas_colaboradores\": [\"matricula-1\", \"matricula-2\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-colaborador"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"matricula\",\n            \"data\",\n            \"desvio\"\n        ],\n        [\n            \"matricula-1\",\n            \"2024-01-01\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-1\",\n            \"2024-01-02\",\n            \"None\"\n        ],\n        [\n            \"matricula-1\",\n            \"2024-01-03\",\n            \"None\"\n        ],\n        [\n            \"matricula-1\",\n            \"2024-01-04\",\n            \"0.2500\"\n        ],\n        [\n            \"matricula-1\",\n            \"2024-01-05\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-1\",\n            \"2024-01-06\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-1\",\n            \"2024-01-07\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-1\",\n            \"2024-01-08\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-1\",\n            \"2024-01-09\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-1\",\n            \"2024-01-10\",\n            \"None\"\n        ],\n        [\n            \"matricula-2\",\n            \"2024-01-01\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-2\",\n            \"2024-01-02\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-2\",\n            \"2024-01-03\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-2\",\n            \"2024-01-04\",\n            \"None\"\n        ],\n        [\n            \"matricula-2\",\n            \"2024-01-05\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-2\",\n            \"2024-01-06\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-2\",\n            \"2024-01-07\",\n            \"None\"\n        ],\n        [\n            \"matricula-2\",\n            \"2024-01-08\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-2\",\n            \"2024-01-09\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-2\",\n            \"2024-01-10\",\n            \"0.0000\"\n        ]\n    ]\n}"},{"id":"8bbcad51-89d0-4730-b5b8-0822e44a8c83","name":"200-sucesso-parcial","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-01-10\",\r\n  \"lista_matriculas_colaboradores\": [\"matricula-1\", \"matricula-2\", \"123\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-colaborador"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"matricula\",\n            \"data\",\n            \"desvio\"\n        ],\n        [\n            \"matricula-1\",\n            \"2024-01-01\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-1\",\n            \"2024-01-02\",\n            \"None\"\n        ],\n        [\n            \"matricula-1\",\n            \"2024-01-03\",\n            \"None\"\n        ],\n        [\n            \"matricula-1\",\n            \"2024-01-04\",\n            \"0.2500\"\n        ],\n        [\n            \"matricula-1\",\n            \"2024-01-05\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-1\",\n            \"2024-01-06\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-1\",\n            \"2024-01-07\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-1\",\n            \"2024-01-08\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-1\",\n            \"2024-01-09\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-1\",\n            \"2024-01-10\",\n            \"None\"\n        ],\n        [\n            \"matricula-2\",\n            \"2024-01-01\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-2\",\n            \"2024-01-02\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-2\",\n            \"2024-01-03\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-2\",\n            \"2024-01-04\",\n            \"None\"\n        ],\n        [\n            \"matricula-2\",\n            \"2024-01-05\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-2\",\n            \"2024-01-06\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-2\",\n            \"2024-01-07\",\n            \"None\"\n        ],\n        [\n            \"matricula-2\",\n            \"2024-01-08\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-2\",\n            \"2024-01-09\",\n            \"0.0000\"\n        ],\n        [\n            \"matricula-2\",\n            \"2024-01-10\",\n            \"0.0000\"\n        ]\n    ]\n}"},{"id":"71d8bf85-cc8e-4c05-be57-19d2c4a99224","name":"200-sucesso-sem-dados","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-01-10\",\r\n  \"lista_matriculas_colaboradores\": [\"abobrinha\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-colaborador"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 0,\n    \"resultados\": [\n        [\n            \"matricula\",\n            \"data\",\n            \"desvio\"\n        ]\n    ]\n}"},{"id":"f2f6bdac-bbb2-4027-b0f7-1e2c62b5fd31","name":"400-limite-dias","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-01-11\",\r\n  \"lista_matriculas_colaboradores\": [\"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-colaborador"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Requisicao mal-formada.\",\n    \"erro\": \"O periodo inserido contempla 11 dias, excedendo assim o limite deste endpoint (10 dias)!\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"081b9114-930b-4f8d-9716-15e3493a56c3","name":"401-token-expirou","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-01-11\",\r\n  \"lista_matriculas_colaboradores\": [123]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-colaborador"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"The incoming token has expired\"\n}"},{"id":"6ec7a788-152a-4792-a407-46d96f149f55","name":"400-lista_matriculas_colaboradores-deve-conter-apenas-strings","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-01-11\",\r\n  \"lista_matriculas_colaboradores\": [123]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-colaborador"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[instance type (integer) does not match any allowed primitive type (allowed: [\\\"string\\\"])]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"ab129e54-5ccd-4fb0-b69e-63288905c4ea","name":"400-lista_matriculas_colaboradores-vazia","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-01-11\",\r\n  \"lista_matriculas_colaboradores\": []\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-colaborador"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[array is too short: must have at least 1 elements but instance has 0 elements]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"714e1f30-503e-4e14-b032-7c6b936611c3","name":"500-dia-invalido","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-11-101\",\r\n  \"data_fim\": \"2024-01-11\",\r\n  \"lista_matriculas_colaboradores\": [\"1\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-colaborador"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 500,\n    \"mensagem\": \"Problema ao checar amplitude de data. Verifique sua requisicao!\",\n    \"erro\": \"unconverted data remains: 1\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"}],"_postman_id":"0b193b47-37f0-4a56-8389-29c3e8d35b4f"},{"name":"desvios-dia-filial","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"5461748a-3f5b-4c8e-81ff-1a5cf9207c4a"}}],"id":"d974ef3b-b3ab-4e31-81a9-16b75aa5a881","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-02-01\",\r\n  \"lista_cods_filiais\": [\"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-filial","description":"<h1 id=\"desvios-por-dia-e-filial\">Desvios por dia e filial</h1>\n<p>Fornece desvios por dia e por filial.</p>\n<h2 id=\"payload-de-requisição\">Payload de requisição</h2>\n<p>O usuário deve fornecer datas inicial (\"data_ini\") e final (\"data_fim\") em formato \"AAAA-MM-DD\".</p>\n<p>O número total de dias correspondentes (\"daterange\") não pode exceder 62 dias - dois meses cheios.</p>\n<p>Em \"lista_cods_filiais\" espera-se uma lista contendo strings ou inteiros que correspondam a códigos de filiais cadastradas na MOAVI. <strong>Para que dados de todas filiais sejam retornados, o input deve ser \"lista_cods_filiais\": [\"*\"]</strong></p>\n<p>Se houver necessidade de paginação, em requisições posteriores o usuário deve incluir no body a chave \"pag\" com um inteiro positivo.</p>\n<h2 id=\"corpo-da-resposta\">Corpo da resposta</h2>\n<ul>\n<li><p>\"mensagem\" conterá uma <em><strong>string</strong></em> <strong><code>que</code></strong> informa brevemente sobre sucesso ou fracasso da request. Algumas requisições podem resultar em avisos neste campo.</p>\n</li>\n<li><p>\"erro\", se aplicável, trará <em><strong>string</strong></em> detalhando o motivo de fracasso da requisição. Se não, retorna como <em><strong>null</strong></em></p>\n</li>\n<li><p>\"ultimaPag\", fornece a página (<em><strong>integer</strong></em>) do último lote de resultados. Em casos de erro, por exemplo, retorna como <em><strong>null</strong></em>.</p>\n</li>\n<li><p>\"statusCode\" informa o código HTTP da resposta, um <em><strong>integer</strong></em>.</p>\n</li>\n<li><p>\"resultados\", se não <em>null</em>, trata-se de uma lista de listas. As listas internas sempre tem 3 elementos, cada, todos <em><strong>string</strong></em>.</p>\n<ul>\n<li><p>A primeira lista aninhada é sempre [\"filial_cod\", \"data\", \"desvio\"].</p>\n</li>\n<li><p>As demais conterão <em><strong>strings</strong></em> com valores respectivos, ex: [\"0001\", \"2024-06-11\", \"0.123\"] significaria que no dia 11 de junho de 2024, a filial \"0001\" performou com \"0.123\" (12,3%) de desvios.</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["desvios-dia-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"50a15cfd-60c9-4ef4-b25e-e9cdffbca6ae","name":"200-sucesso-com-aviso","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 8,\r\n  \"data_ini\": \"2023-04-01\",\r\n  \"data_fim\": \"2023-06-01\",\r\n  \"lista_cods_filiais\": [\"1\", \"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-filial"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Cuidado! A lista passada foi lista_cods_filiais=['1', '*']. Estamos ignorando o código avulso e buscando por todas filiais.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"filial_cod\",\n            \"data\",\n            \"desvio\"\n        ],\n        [\n            \"0207\",\n            \"2023-05-27\",\n            \"0.1739\"\n        ],\n        [\n            \"0211\",\n            \"2023-05-27\",\n            \"0.6842\"\n        ],\n        [\n            \"0217\",\n            \"2023-05-27\",\n            \"0.6538\"\n        ],\n        [\n            \"0220\",\n            \"2023-05-27\",\n            \"0.5000\"\n        ],\n        [\n            \"0222\",\n            \"2023-05-27\",\n            \"0.2609\"\n        ],\n        [\n            \"0245\",\n            \"2023-05-27\",\n            \"0.4815\"\n        ],\n        [\n            \"0246\",\n            \"2023-05-27\",\n            \"0.6071\"\n        ],\n        [\n            \"0255\",\n            \"2023-05-27\",\n            \"0.3415\"\n        ],\n        [\n            \"0262\",\n            \"2023-05-27\",\n            \"0.1000\"\n        ],\n        [\n            \"0267\",\n            \"2023-05-27\",\n            \"0.0400\"\n        ],\n        [\n            \"0273\",\n            \"2023-05-27\",\n            \"0.5882\"\n        ],\n        [\n            \"0275\",\n            \"2023-05-27\",\n            \"0.2059\"\n        ],\n        [\n            \"0281\",\n            \"2023-05-27\",\n            \"0.4000\"\n        ],\n        [\n            \"0284\",\n            \"2023-05-27\",\n            \"0.7500\"\n        ],\n        [\n            \"0289\",\n            \"2023-05-27\",\n            \"0.2333\"\n        ],\n        [\n            \"0292\",\n            \"2023-05-27\",\n            \"0.7188\"\n        ],\n        [\n            \"0297\",\n            \"2023-05-27\",\n            \"0.5333\"\n        ],\n        [\n            \"0298\",\n            \"2023-05-27\",\n            \"0.5571\"\n        ],\n        [\n            \"0302\",\n            \"2023-05-27\",\n            \"0.5660\"\n        ],\n        [\n            \"0304\",\n            \"2023-05-27\",\n            \"0.3882\"\n        ]\n    ]\n}"},{"id":"383da964-fdd5-42f0-8507-0f992e95a778","name":"200-sucesso-completo","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2023-04-01\",\r\n  \"data_fim\": \"2023-06-01\",\r\n  \"lista_cods_filiais\": [\"1\"]\r\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://moapi.escalamoavi.com.br/desvios-dia-filial","protocol":"https","host":["moapi","escalamoavi","com","br"],"path":["desvios-dia-filial"],"query":[{"key":"","value":null,"disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"filial_cod\",\n            \"data\",\n            \"desvio\"\n        ],\n        [\n            \"0207\",\n            \"2023-05-27\",\n            \"0.1739\"\n        ],\n        [\n            \"0211\",\n            \"2023-05-27\",\n            \"0.6842\"\n        ],\n        [\n            \"0217\",\n            \"2023-05-27\",\n            \"0.6538\"\n        ],\n        [\n            \"0220\",\n            \"2023-05-27\",\n            \"0.5000\"\n        ],\n        [\n            \"0222\",\n            \"2023-05-27\",\n            \"0.2609\"\n        ],\n        [\n            \"0245\",\n            \"2023-05-27\",\n            \"0.4815\"\n        ],\n        [\n            \"0246\",\n            \"2023-05-27\",\n            \"0.6071\"\n        ],\n        [\n            \"0255\",\n            \"2023-05-27\",\n            \"0.3415\"\n        ],\n        [\n            \"0262\",\n            \"2023-05-27\",\n            \"0.1000\"\n        ],\n        [\n            \"0267\",\n            \"2023-05-27\",\n            \"0.0400\"\n        ],\n        [\n            \"0273\",\n            \"2023-05-27\",\n            \"0.5882\"\n        ],\n        [\n            \"0275\",\n            \"2023-05-27\",\n            \"0.2059\"\n        ],\n        [\n            \"0281\",\n            \"2023-05-27\",\n            \"0.4000\"\n        ],\n        [\n            \"0284\",\n            \"2023-05-27\",\n            \"0.7500\"\n        ],\n        [\n            \"0289\",\n            \"2023-05-27\",\n            \"0.2333\"\n        ],\n        [\n            \"0292\",\n            \"2023-05-27\",\n            \"0.7188\"\n        ],\n        [\n            \"0297\",\n            \"2023-05-27\",\n            \"0.5333\"\n        ],\n        [\n            \"0298\",\n            \"2023-05-27\",\n            \"0.5571\"\n        ],\n        [\n            \"0302\",\n            \"2023-05-27\",\n            \"0.5660\"\n        ],\n        [\n            \"0304\",\n            \"2023-05-27\",\n            \"0.3882\"\n        ]\n    ]\n}"},{"id":"2b4e0b22-800b-4dc4-a036-3d1105f95bfc","name":"400-data-invalida","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"203-04-01\",\r\n  \"data_fim\": \"2023-06-01\",\r\n  \"lista_cods_filiais\": [\"1\", \"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[ECMA 262 regex \\\"^20(1[789]|2[0-9]|[3-9][0-9])|(2100)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$\\\" does not match input string \\\"203-04-01\\\"]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"e046724e-b0ca-41b4-a414-3dd8b40dc46f","name":"400-erro-excesso-de-dias","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2023-04-01\",\r\n  \"data_fim\": \"2023-07-01\",\r\n  \"lista_cods_filiais\": [\"1\", \"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Requisicao mal-formada.\",\n    \"erro\": \"O periodo inserido contempla 92 dias, excedendo assim o limite deste endpoint (62 dias)!\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"06e9175c-7cca-43ac-b500-b61f66c36a45","name":"400-lista_cods_filiais-invalido","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2023-04-01\",\r\n  \"data_fim\": \"2023-07-01\",\r\n  \"lista_cods_filiais\": null\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[instance type (null) does not match any allowed primitive type (allowed: [\\\"array\\\"])]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"1cb68893-ecb3-4b43-8cf7-97bde5e96103","name":"500-mes-invalido","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2023-13-01\",\r\n  \"data_fim\": \"2023-06-01\",\r\n  \"lista_cods_filiais\": [\"1\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-dia-filial"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 500,\n    \"mensagem\": \"Problema ao checar amplitude de data. Verifique sua requisicao!\",\n    \"erro\": \"time data '2023-13-01' does not match format '%Y-%m-%d'\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"}],"_postman_id":"d974ef3b-b3ab-4e31-81a9-16b75aa5a881"},{"name":"desvios-mes-cluster","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"018452c4-2e13-47fc-a3ad-243db1df6998"}}],"id":"2ace129b-f6ac-44b1-946e-39590797881e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"7\",\r\n  \"ano_ini\": 2023,\r\n  \"mes_fim\": 10,\r\n  \"ano_fim\": \"2024\",\r\n  \"lista_nomes_clusters\": [\"cluster23\", \"cluster42\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-cluster","description":"<h1 id=\"desvios-por-mês-e-cluster\">Desvios por mês e cluster</h1>\n<p>Fornece desvios percentuais agregados por mês e discriminados por cluster.</p>\n<p><strong>Corpo da Requisição</strong></p>\n<ul>\n<li><p><strong>mes_ini</strong> (string ou integer): O mês inicial deve ser uma string no formato \"MM\" ou um número inteiro entre 1-12.</p>\n</li>\n<li><p><strong>ano_ini</strong> (string ou integer): O ano inicial deve ser uma string no formato \"AAAA\" ou um número inteiro entre 2017 e 2100.</p>\n</li>\n<li><p><strong>mes_fim</strong> (string ou integer): O mês final deve ser uma string no formato \"MM\" ou um número inteiro entre 1-12 após o mês inicial.</p>\n</li>\n<li><p><strong>ano_fim</strong> (string ou integer): O ano final deve ser uma string no formato \"AAAA\" ou um número inteiro entre 2017 e 2100.</p>\n<ul>\n<li><strong>OBSERVAÇÃO:</strong> O número máximo de dias correspondentes corresponde a 24 meses cheios - 31*24 dias.</li>\n</ul>\n</li>\n<li><p><strong>lista_nomes_clusters:</strong> array de strings, ou informe <em><strong>\"lista_nomes_clusters\": [\"*\"]</strong></em> para solicitar dados de todos clusters.</p>\n</li>\n<li><p><strong>OPCIONAL pag</strong> (integer): O número da página dos resultados. Só tem utilidade se consultas paginadas forem necessárias.</p>\n</li>\n</ul>\n<p><strong>Resposta</strong></p>\n<ul>\n<li><p><strong>statusCode</strong> (integer): O código de status da resposta.</p>\n</li>\n<li><p><strong>mensagem</strong> (string): Qualquer mensagem relevante.</p>\n</li>\n<li><p><strong>erro</strong> (null): Informações de erro, se houver.</p>\n</li>\n<li><p><strong>ultimaPag</strong> (integer): O número da última página com dados referentes à consulta em questão. Se consultas subsequentes forem necessárias para buscar todos os dados, ultimaPag&gt;1.</p>\n</li>\n<li><p><strong>resultados</strong> (array de arrays): Os dados resultantes.</p>\n<ul>\n<li><p>A primeira lista aninhada é sempre [\"nome_cluster\", \"ano\", \"mes\", \"desvios\"].</p>\n</li>\n<li><p>As demais conterão <em><strong>strings</strong></em> com valores respectivos, ex: [\"cluster14\", \"2024\", \"3\", \"0.01\"] significaria que no mês de março do ano 2024, \"cluster14\" apresentou desvios em 1% na média.</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["desvios-mes-cluster"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"d5376329-877b-49ea-9ca5-4ccd99fe37e8","name":"200-sucesso-com-aviso","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2023,\r\n  \"mes_fim\": 1,\r\n  \"ano_fim\": \"2023\",\r\n  \"lista_nomes_clusters\": [\"*\", \"cluster3\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-cluster"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Cuidado! A lista passada foi lista_nomes_clusters=['*', 'cluster3']. Estamos ignorando a entrada avulsa e buscando por todas entradas.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"nome_cluster\",\n            \"ano\",\n            \"mes\",\n            \"desvio\"\n        ],\n        [\n            \"Cluster 1\",\n            \"2023\",\n            \"1\",\n            \"0.2908\"\n        ],\n        [\n            \"Cluster 2\",\n            \"2023\",\n            \"1\",\n            \"0.3327\"\n        ],\n        [\n            \"Cluster 3\",\n            \"2023\",\n            \"1\",\n            \"0.4614\"\n        ],\n        [\n            \"Cluster 4\",\n            \"2023\",\n            \"1\",\n            \"0.3491\"\n        ],\n        [\n            \"Cluster 5\",\n            \"2023\",\n            \"1\",\n            \"0.3460\"\n        ],\n        [\n            \"Cluster 6\",\n            \"2023\",\n            \"1\",\n            \"0.4188\"\n        ],\n        [\n            \"Cluster 7\",\n            \"2023\",\n            \"1\",\n            \"0.4191\"\n        ],\n        [\n            \"Cluster 8\",\n            \"2023\",\n            \"1\",\n            \"0.4602\"\n        ]\n    ]\n}\n"},{"id":"d835f2db-8dc1-4831-877e-d5dee321be30","name":"200-sucesso-completo","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2022,\r\n  \"mes_fim\": 12,\r\n  \"ano_fim\": \"2023\",\r\n  \"lista_nomes_clusters\": [\"cluster1\", \"cluster2\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-cluster"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"nome_cluster\",\n            \"ano\",\n            \"mes\",\n            \"desvio\"\n        ],\n        [\n            \"Cluster 1\",\n            \"2023\",\n            \"1\",\n            \"0.2908\"\n        ],\n        [\n            \"Cluster 2\",\n            \"2023\",\n            \"1\",\n            \"0.3327\"\n        ],\n        [\n            \"Cluster 3\",\n            \"2023\",\n            \"1\",\n            \"0.4614\"\n        ],\n        [\n            \"Cluster 4\",\n            \"2023\",\n            \"1\",\n            \"0.3491\"\n        ],\n        [\n            \"Cluster 5\",\n            \"2023\",\n            \"1\",\n            \"0.3460\"\n        ],\n        [\n            \"Cluster 6\",\n            \"2023\",\n            \"1\",\n            \"0.4188\"\n        ],\n        [\n            \"Cluster 7\",\n            \"2023\",\n            \"1\",\n            \"0.4191\"\n        ],\n        [\n            \"Cluster 8\",\n            \"2023\",\n            \"1\",\n            \"0.4602\"\n        ]\n    ]\n}\n"},{"id":"b7312abf-6ec8-4957-ae3b-fa04871bfa9a","name":"400-erro-excesso-dias","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2023,\r\n  \"mes_fim\": 1,\r\n  \"ano_fim\": \"2025\",\r\n  \"lista_nomes_clusters\": [\"*\", \"cluster3\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-cluster"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Requisicao mal-formada.\",\n    \"erro\": \"O periodo inserido contempla 762 dias, excedendo assim o limite desta requisicao (744 dias)!\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"b6346dae-388c-4cb7-a6fb-c066e42f952d","name":"400-ano-deve-estar-entre-2017-e-2100","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 202,\r\n  \"mes_fim\": 1,\r\n  \"ano_fim\": \"2025\",\r\n  \"lista_nomes_clusters\": [\"cluster42\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-cluster"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[instance failed to match at least one required schema among 2]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"2620db74-6611-48a4-b3b5-3b17f74ebd11","name":"400-ano-string-deve-ter-formato-AAAA","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2018,\r\n  \"mes_fim\": 1,\r\n  \"ano_fim\": \"205\",\r\n  \"lista_nomes_clusters\": [\"cluster2\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-cluster"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[instance failed to match at least one required schema among 2]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"76993edd-91da-4bd1-9e08-5029e9b85d9a","name":"400-mes-se-inteiro-deve-ser-valido_entre-1-e-12","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2017,\r\n  \"mes_fim\": 13,\r\n  \"ano_fim\": \"2025\",\r\n  \"lista_nomes_clusters\": [\"cluster3\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-cluster"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[instance failed to match at least one required schema among 2]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"c81ddb93-aac5-4c15-9f07-f7b412dd857e","name":"400-mes-se-inteiro-deve-ter-formato-MM-e-estar-entre-01-e-12","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"7\",\r\n  \"ano_ini\": 2023,\r\n  \"mes_fim\": 10,\r\n  \"ano_fim\": \"2024\",\r\n  \"lista_nomes_clusters\": [\"cluster23\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-cluster"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[instance failed to match at least one required schema among 2]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"}],"_postman_id":"2ace129b-f6ac-44b1-946e-39590797881e"},{"name":"desvios-mes-colaborador","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"a0ab33ff-3e23-4167-8f60-7a329490be93"}}],"id":"0a5940ad-b71f-4ffc-a307-f8807cab4131","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"06\",\r\n  \"ano_ini\": 2024,\r\n  \"mes_fim\": 6,\r\n  \"ano_fim\": \"2024\",\r\n  \"lista_matriculas_colaboradores\": [\"1234\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-colaborador","description":"<h1 id=\"desvios-por-mês-e-colaborador\">Desvios por mês e colaborador</h1>\n<p>Fornece valores <em><strong>absolutos</strong></em> dos desvios, agregados por mês e discriminados por matrícula de colaboradores.</p>\n<p><strong>Corpo da Requisição</strong></p>\n<ul>\n<li><p><strong>mes_ini</strong> (string ou integer): O mês inicial deve ser uma string no formato \"MM\" ou um número inteiro entre 1-12.</p>\n</li>\n<li><p><strong>ano_ini</strong> (string ou integer): O ano inicial deve ser uma string no formato \"AAAA\" ou um número inteiro entre 2017 e 2100.</p>\n</li>\n<li><p><strong>mes_fim</strong> (string ou integer): O mês final deve ser uma string no formato \"MM\" ou um número inteiro entre 1-12 após o mês inicial.</p>\n</li>\n<li><p><strong>ano_fim</strong> (string ou integer): O ano final deve ser uma string no formato \"AAAA\" ou um número inteiro entre 2017 e 2100.</p>\n<ul>\n<li><strong>OBSERVAÇÃO:</strong> O número total de dias correspondentes deve ser, atualmente, no máximo <strong>15000/n_colabs</strong> em que \"n_colabs\" é o número de colaboradores solicitados.</li>\n</ul>\n</li>\n<li><p><strong>lista_matriculas_colaboradores:</strong> array de strings, ou informe <em><strong>\"</strong></em><strong>lista_matriculas_colaboradores</strong><em><strong>\": [\"*\"]</strong></em> para solicitar dados de todos colaboradores.</p>\n</li>\n<li><p><strong>OPCIONAL pag</strong> (integer): O número da página dos resultados. Só tem utilidade se consultas paginadas forem necessárias.</p>\n</li>\n</ul>\n<p><strong>Resposta</strong></p>\n<ul>\n<li><p><strong>statusCode</strong> (integer): O código de status da resposta.</p>\n</li>\n<li><p><strong>mensagem</strong> (string): Qualquer mensagem relevante.</p>\n</li>\n<li><p><strong>erro</strong> (null): Informações de erro, se houver.</p>\n</li>\n<li><p><strong>ultimaPag</strong> (integer): O número da última página com dados referentes à consulta em questão. Se consultas subsequentes forem necessárias para buscar todos os dados, ultimaPag&gt;1.</p>\n</li>\n<li><p><strong>resultados</strong> (array de arrays): Os dados resultantes.</p>\n<ul>\n<li><p>A primeira lista aninhada é sempre [\"matricula\", \"ano\", \"mes\", \"n_desvios\"].</p>\n</li>\n<li><p>As demais conterão <em><strong>strings</strong></em> com valores respectivos, ex: [\"matricula23\", \"2022\", \"4\", \"5\"] significaria que no mês de abril de 2022, o colaborador de matrícula \"matricula23\" acumulou 5 desvios.</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["desvios-mes-colaborador"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"30784be0-0d55-4172-8a75-f5e896a77e91","name":"200-sucesso-completo","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"12\",\r\n  \"ano_ini\": 2023,\r\n  \"mes_fim\": 12,\r\n  \"ano_fim\": \"2023\",\r\n  \"lista_matriculas_colaboradores\": [\"matricula1\", \"matricula5\", \"matricula3\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-colaborador"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"matricula\",\n            \"ano\",\n            \"mes\",\n            \"desvio\"\n        ],\n        [\n            \"matricula1\",\n            \"2023\",\n            \"12\",\n            \"0.2212\"\n        ],\n        [\n            \"matricula3\",\n            \"2023\",\n            \"12\",\n            \"0.2941\"\n        ],\n        [\n            \"matricula5\",\n            \"2023\",\n            \"12\",\n            \"0.0800\"\n        ]\n    ]\n}"},{"id":"11c6a632-cf96-4df1-bc53-fdc15b15d79c","name":"200-sucesso-parcial","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"12\",\r\n  \"ano_ini\": 2023,\r\n  \"mes_fim\": 12,\r\n  \"ano_fim\": \"2023\",\r\n  \"lista_matriculas_colaboradores\": [\"matricula1\", \"matricula5\", \"matricula3\", \"123\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-colaborador"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"matricula\",\n            \"ano\",\n            \"mes\",\n            \"desvio\"\n        ],\n        [\n            \"matricula1\",\n            \"2023\",\n            \"12\",\n            \"0.2212\"\n        ],\n        [\n            \"matricula3\",\n            \"2023\",\n            \"12\",\n            \"0.2941\"\n        ],\n        [\n            \"matricula5\",\n            \"2023\",\n            \"12\",\n            \"0.0800\"\n        ]\n    ]\n}"},{"id":"f6c5a664-1727-4f62-b827-36d5d519e975","name":"200-sucesso-parcial--nenhum-resultado","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"eyJraWQiOiJGVkpuRzMwXC85cG9KV2twZ3E3QlJNcHEzZW5OTWxpWUpwN2NcL3ZcL3hNUUhZPSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI5NDU4ZDQ0OC05MDAxLTcwMTYtNGYwZS0yMWI5MjNkMmY1MDIiLCJjb2duaXRvOmdyb3VwcyI6WyJtb2FwaS1pbmRpY2F0b3JzIl0sImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xX1B6NkxqRno3VCIsImNvZ25pdG86dXNlcm5hbWUiOiJvbmVhYm92ZWFsbCIsIm9yaWdpbl9qdGkiOiI4NDQyOWVhOS1iZTMxLTQ1OTMtYTBjOC03YjA1YTk2MzNjNWQiLCJjb2duaXRvOnJvbGVzIjpbImFybjphd3M6aWFtOjozOTA1ODY5NjcxNDM6cm9sZVwvbW9hcGlJbmRpY2F0b3JzUm91dGVHYXRld2F5QWNjZXNzIl0sImF1ZCI6Ijd1aWJrdWlrODlxOTc3bzYxNWsycDk3cnBuIiwiZXZlbnRfaWQiOiJlZWY5ZGUxNi05ZjRjLTQ3MGEtYjcxZC01NzA3NDg3MmIxZDMiLCJ0b2tlbl91c2UiOiJpZCIsImF1dGhfdGltZSI6MTcxODMyODEwMiwibmlja25hbWUiOiJvbmVhYm92ZWFsbCIsImV4cCI6MTcxODM5ODY1MywiaWF0IjoxNzE4Mzk1MDUzLCJqdGkiOiI5MWYwODA3Ny1lNDRmLTQ5OGQtOGY0My0xYTczNDgwOWFkNjIiLCJlbWFpbCI6InJhZmFlbC5jb3N0YUBtb2F2aS5jb20uYnIifQ.e8b4pE3mGjGAs6nrC8YCbYN8v60L-Tlk34SvAjA7mpJavkq2gbrR69HN4VEsVR0jCANkRGdtYTL-QxqqDf1ATnnkB0S_-Rb2v0yFyVshKpbh1gCIQVVDspBr_okPHr_2XpuybzasYAt2VgmuulAIF9vb101qQspTxo5VfD4fywAN7IK0WBEQUM0DNDwW-f6_1ehFpqKEsJgCla17n-21Rg1JnYkSxrRH0Unc3WZgdGRDG1Ae-0bQiFDwjUP1fsqVOmB6zJwNbkFWxoDNYHm3pnx_WY_SQbpAWVC_1AZRpxclCDY_0mkvzBVFwxdsXQOHNnAqf4TziPlCgaHGWRAslQ"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2024,\r\n  \"mes_fim\": 1,\r\n  \"ano_fim\": \"2024\",\r\n  \"lista_matriculas_colaboradores\": [\"\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-colaborador"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 14 Jun 2024 20:01:55 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"146"},{"key":"Connection","value":"keep-alive"},{"key":"x-amzn-RequestId","value":"f07bff43-3f1c-4511-b5cf-b4a2f4d4d29e"},{"key":"x-amz-apigw-id","value":"ZX4z-GowoAMEOIA="},{"key":"X-Amzn-Trace-Id","value":"Root=1-666ca1b2-2688b02768a5cecc31a9a1bd;Parent=6462f1554c6ff80d;Sampled=0;lineage=bb58b8d6:0"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 0,\n    \"resultados\": [\n        [\n            \"matricula\",\n            \"ano\",\n            \"mes\",\n            \"desvio\"\n        ]\n    ]\n}"},{"id":"cf74960a-0ebc-405c-990f-0912a60ec373","name":"400-erro-excesso-de-dias","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"eyJraWQiOiJGVkpuRzMwXC85cG9KV2twZ3E3QlJNcHEzZW5OTWxpWUpwN2NcL3ZcL3hNUUhZPSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI5NDU4ZDQ0OC05MDAxLTcwMTYtNGYwZS0yMWI5MjNkMmY1MDIiLCJjb2duaXRvOmdyb3VwcyI6WyJtb2FwaS1pbmRpY2F0b3JzIl0sImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xX1B6NkxqRno3VCIsImNvZ25pdG86dXNlcm5hbWUiOiJvbmVhYm92ZWFsbCIsIm9yaWdpbl9qdGkiOiI4NDQyOWVhOS1iZTMxLTQ1OTMtYTBjOC03YjA1YTk2MzNjNWQiLCJjb2duaXRvOnJvbGVzIjpbImFybjphd3M6aWFtOjozOTA1ODY5NjcxNDM6cm9sZVwvbW9hcGlJbmRpY2F0b3JzUm91dGVHYXRld2F5QWNjZXNzIl0sImF1ZCI6Ijd1aWJrdWlrODlxOTc3bzYxNWsycDk3cnBuIiwiZXZlbnRfaWQiOiJlZWY5ZGUxNi05ZjRjLTQ3MGEtYjcxZC01NzA3NDg3MmIxZDMiLCJ0b2tlbl91c2UiOiJpZCIsImF1dGhfdGltZSI6MTcxODMyODEwMiwibmlja25hbWUiOiJvbmVhYm92ZWFsbCIsImV4cCI6MTcxODM5MDk0MSwiaWF0IjoxNzE4Mzg3MzQxLCJqdGkiOiJkNTYyM2ZiMy1mODRkLTRmYWUtYWRjMi1kZjdhZDY5NDc3YTMiLCJlbWFpbCI6InJhZmFlbC5jb3N0YUBtb2F2aS5jb20uYnIifQ.MGfjmBt0jcYHP2mmOxKXZUguj7D8a4AWR5HEhee-IG1vyYC3E2957NRzavomyYkqz4AZR6zfrd7vZbUQGWToJWwsMXmr36nn0pXHLw8aGMKMBRggw82x39IVMzw856JBeO2sRvK5rsWfp8jiiNJM9BbqnTFGotCpxgx2kg5on4HV4DBEWpnx0jYJl3NaGqiOsPdOhc85aWC8wcTfuP-ViKRQ2gOlSnwIpiHMolNu68pQXcSiUbhD3vbuIecaGgPHGyB0IM2qJOHA4WvzpsOpnslIh2uipfWsAQmwzJTigKr2iA2Jh_bUtkdNOQOSUGWgl-kbpsxykBZ19yuW12R1wg"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"12\",\r\n  \"ano_ini\": 2023,\r\n  \"mes_fim\": 1,\r\n  \"ano_fim\": \"2024\",\r\n  \"lista_matriculas_colaboradores\": [\"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-colaborador"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Requisicao mal-formada.\",\n    \"erro\": \"O periodo inserido contempla 62 dias, excedendo assim o limite desta requisicao (31 dias)!\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"75068cc5-d9ce-4226-9de5-941ab35d5e91","name":"400-ano-deve-estar-entre-2017-e-2100","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2016,\r\n  \"mes_fim\": 1,\r\n  \"ano_fim\": \"2024\",\r\n  \"lista_matriculas_colaboradores\": [\"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-colaborador"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[instance failed to match at least one required schema among 2]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"16320142-edbb-473a-ae9e-2baffbd344af","name":"400-ano-string-deve-ter-formato-AAAA","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2024,\r\n  \"mes_fim\": 1,\r\n  \"ano_fim\": \"02024\",\r\n  \"lista_matriculas_colaboradores\": [\"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-colaborador"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[instance failed to match at least one required schema among 2]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"6f4a6bd8-1a59-49be-a72e-a7ec42a96207","name":"400-lista_matriculas_colaboradores-nao-pode-ser-vazia","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2024,\r\n  \"mes_fim\": 1,\r\n  \"ano_fim\": \"2024\",\r\n  \"lista_matriculas_colaboradores\": []\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-colaborador"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[array is too short: must have at least 1 elements but instance has 0 elements]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"3bd8cc79-0119-4ec1-8c8e-fd7eec6c8eda","name":"400-lista_matriculas_colaboradores-nao-aceita-entradas-inteiras","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2024,\r\n  \"mes_fim\": 1,\r\n  \"ano_fim\": \"2024\",\r\n  \"lista_matriculas_colaboradores\": [421]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-colaborador"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[instance type (integer) does not match any allowed primitive type (allowed: [\\\"string\\\"])]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"}],"_postman_id":"0a5940ad-b71f-4ffc-a307-f8807cab4131"},{"name":"desvios-mes-filial","id":"8c5db0fa-06bc-48b9-b590-ce9a18f6eeef","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2023,\r\n  \"mes_fim\": 12,\r\n  \"ano_fim\": 2023,\r\n  \"lista_cods_filiais\": [12, \"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-filial","description":"<h1 id=\"desvios-por-mes-e-filial\">Desvios por mes e filial</h1>\n<p>Este endpoint é usado para recuperar desvios médios percentuais com base em parâmetros específicos relacionados a meses e anos para uma determinada filial.</p>\n<p><strong>Corpo da Requisição</strong></p>\n<ul>\n<li><p><strong>mes_ini</strong> (string ou integer): O mês inicial deve ser uma string no formato \"MM\" ou um número inteiro entre 1-12.</p>\n</li>\n<li><p><strong>ano_ini</strong> (string ou integer): O ano inicial deve ser uma string no formato \"AAAA\" ou um número inteiro entre 2017 e 2100.</p>\n</li>\n<li><p><strong>mes_fim</strong> (string ou integer): O mês final deve ser uma string no formato \"MM\" ou um número inteiro entre 1-12 após o mês inicial.</p>\n</li>\n<li><p><strong>ano_fim</strong> (string ou integer): O ano final deve ser uma string no formato \"AAAA\" ou um número inteiro entre 2017 e 2100.</p>\n<ul>\n<li><strong>OBSERVAÇÃO:</strong> O número total de dias correspondentes não pode exceder 12 meses cheios - 31*12 dias.</li>\n</ul>\n</li>\n<li><p><strong>lista_cods_filiais:</strong> array de strings, inteiros ou informe <em><strong>\"</strong></em><strong>lista_cods_filiais</strong><em><strong>\": [\"*\"]</strong></em> para solicitar dados de todas filiais.</p>\n</li>\n<li><p><strong>OPCIONAL pag</strong> (integer): O número da página dos resultados. Só tem utilidade se consultas paginadas forem necessárias.</p>\n</li>\n</ul>\n<p><strong>Resposta</strong></p>\n<ul>\n<li><p><strong>statusCode</strong> (integer): O código de status da resposta.</p>\n</li>\n<li><p><strong>mensagem</strong> (string): Qualquer mensagem relevante.</p>\n</li>\n<li><p><strong>erro</strong> (null): Informações de erro, se houver.</p>\n</li>\n<li><p><strong>ultimaPag</strong> (integer): O número da última página com dados referentes à consulta em questão. Se consultas subsequentes forem necessárias para buscar todos os dados, ultimaPag&gt;1.</p>\n</li>\n<li><p><strong>resultados</strong> (array de arrays): Os dados resultantes.</p>\n<ul>\n<li><p>A primeira lista aninhada é sempre [\"filial_cod\", \"ano\", \"mes\", \"desvio\"].</p>\n</li>\n<li><p>As demais conterão <em><strong>strings</strong></em> com valores respectivos, ex: [\"1184\", \"2024\", \"4\", \"0.1111\"] significaria que no mês de abril de 2024, a filial \"1184\" acumulou desvios com uma média de 11,11%.</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["desvios-mes-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"d6acfbd6-a499-4c4c-9c6a-d84d9041a64b","name":"200-sucesso-com-aviso","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2023,\r\n  \"mes_fim\": 12,\r\n  \"ano_fim\": 2023,\r\n  \"lista_cods_filiais\": [12, \"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-filial"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Cuidado! A lista passada foi lista_cods_filiais=[12, '*']. Estamos ignorando o código avulso e buscando por todas filiais.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"filial_cod\",\n            \"ano\",\n            \"mes\",\n            \"desvio\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"1\",\n            \"0.1807\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"2\",\n            \"0.1602\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"3\",\n            \"0.1564\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"4\",\n            \"0.1289\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"5\",\n            \"0.1147\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"6\",\n            \"0.1845\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"7\",\n            \"0.1239\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"8\",\n            \"0.1062\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"9\",\n            \"0.1252\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"10\",\n            \"0.1222\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"11\",\n            \"0.1685\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"12\",\n            \"0.1964\"\n        ],\n        [\n            \"0025\",\n            \"2023\",\n            \"1\",\n            \"0.2927\"\n        ],\n        [\n            \"0025\",\n            \"2023\",\n            \"2\",\n            \"0.2825\"\n        ],\n        [\n            \"0025\",\n            \"2023\",\n            \"3\",\n            \"0.4120\"\n        ]\n    ]\n}"},{"id":"51391e14-5ab2-4083-8202-12a1a89823d7","name":"200-sucesso-completo","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2023,\r\n  \"mes_fim\": 12,\r\n  \"ano_fim\": 2023,\r\n  \"lista_cods_filiais\": [\"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-filial"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 2,\n    \"resultados\": [\n        [\n            \"filial_cod\",\n            \"ano\",\n            \"mes\",\n            \"desvio\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"1\",\n            \"0.1807\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"2\",\n            \"0.1602\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"3\",\n            \"0.1564\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"4\",\n            \"0.1289\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"5\",\n            \"0.1147\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"6\",\n            \"0.1845\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"7\",\n            \"0.1239\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"8\",\n            \"0.1062\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"9\",\n            \"0.1252\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"10\",\n            \"0.1222\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"11\",\n            \"0.1685\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"12\",\n            \"0.1964\"\n        ],\n        [\n            \"0025\",\n            \"2023\",\n            \"1\",\n            \"0.2927\"\n        ],\n        [\n            \"0025\",\n            \"2023\",\n            \"2\",\n            \"0.2825\"\n        ],\n        [\n            \"0025\",\n            \"2023\",\n            \"3\",\n            \"0.4120\"\n        ]\n    ]\n}"},{"id":"2b525ce3-de72-4888-b80f-068151578da7","name":"400-erro-excesso-de-dias","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2023,\r\n  \"mes_fim\": 1,\r\n  \"ano_fim\": 2024,\r\n  \"lista_cods_filiais\": [\"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://moapi.escalamoavi.com.br/desvios-mes-filial?","protocol":"https","host":["moapi","escalamoavi","com","br"],"path":["desvios-mes-filial"],"query":[{"key":null,"value":null}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Requisição malformada.\",\n    \"erro\": \"O período inserido contempla 396 dias, excedendo, assim, o limite deste endpoint (372 dias)!\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"4a58671d-c136-499c-a310-048abbbab30b","name":"400-mes-invalido","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2023,\r\n  \"mes_fim\": 13,\r\n  \"ano_fim\": 2023,\r\n  \"lista_cods_filiais\": [\"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[instance failed to match at least one required schema among 2]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"8e2b2a66-976d-4111-99c9-362d92022258","name":"400-lista_cods_filiais-invalida","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2023,\r\n  \"mes_fim\": 1,\r\n  \"ano_fim\": 2024,\r\n  \"lista_cods_filiais\": \"*\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/desvios-mes-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[instance type (string) does not match any allowed primitive type (allowed: [\\\"array\\\"])]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"}],"_postman_id":"8c5db0fa-06bc-48b9-b590-ce9a18f6eeef"},{"name":"escalas-criadas-ciclo-filial","id":"1e6b6f09-074a-4603-b390-cae9d915aafc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"data_ini\": \"2026-08-01\",\n    \"data_fim\": \"2026-08-31\",\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/escalas-criadas-ciclo-filial","description":"<p>Janela máxima: 62 dias. Síncrono. Responde: \"montou a escala do PROXIMO ciclo, e foi pessoa ou sistema?\"</p>\n<p>Janela recomendada: o mês seguinte inteiro (define o dia-1 e a primeira segunda-feira avaliados).</p>\n<p>Filial sem ciclo do seu regime na janela é OMITIDA (nao e' 'nao_criou').</p>\n<p>Colunas: filial_cod, regime, ciclo_ini, status_criacao.</p>\n","urlObject":{"protocol":"https","path":["escalas-criadas-ciclo-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"db294140-f5f4-4e4f-ad60-97ea94a209ba","name":"200-sucesso","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"data_ini\": \"2026-08-01\",\n    \"data_fim\": \"2026-08-31\",\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/escalas-criadas-ciclo-filial","description":"Janela maxima: 62 dias. Sincrono. A pergunta do Dashboard: montou a escala do PROXIMO ciclo, e foi pessoa ou sistema? Janela recomendada: o mes seguinte inteiro (define o dia-1 e a 1a segunda avaliados). Filial sem ciclo do seu regime na janela e' OMITIDA (nao e' 'nao_criou'). Colunas: filial_cod, regime, ciclo_ini, status_criacao."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"filial_cod\",\n            \"regime\",\n            \"ciclo_ini\",\n            \"status_criacao\"\n        ],\n        [\n            \"0001\",\n            \"mensal\",\n            \"2026-08-01\",\n            \"ja_criou\"\n        ],\n        [\n            \"0002\",\n            \"semanal\",\n            \"2026-08-03\",\n            \"nao_criou\"\n        ]\n    ]\n}"},{"id":"07d22383-26ec-4e20-95cd-ae8f0d12129b","name":"400-janela-excede-limite","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"data_ini\": \"2026-08-01\",\n    \"data_fim\": \"2026-08-31\",\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://moapi.escalamoavi.com.br/escalas-criadas-ciclo-filial?","protocol":"https","host":["moapi","escalamoavi","com","br"],"path":["escalas-criadas-ciclo-filial"],"query":[{"key":null,"value":null}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Requisição malformada.\",\n    \"erro\": \"O período inserido contempla 92 dias, excedendo, assim, o limite desta requisição (62 dias)!\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"}],"_postman_id":"1e6b6f09-074a-4603-b390-cae9d915aafc"},{"name":"esquecimentos-dia-cluster","id":"5cc78891-17e1-437c-ba63-a981e88bc0d7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/esquecimentos-dia-cluster","description":"<h1 id=\"post-esquecimentos-dia-cluster\"><strong>POST</strong> <code>/esquecimentos-dia-cluster</code></h1>\n<p>Fornece <strong>esquecimentos</strong> agregados <strong>por dia</strong> e <strong>por cluster</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Retornar a contagem de esquecimentos diários de cada cluster em determinado intervalo.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong><br />• Limite de <strong>372 dias</strong> por consulta (≈ 12 × 31).  </p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/esquecimentos-dia-cluster</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <strong>obrigatório</strong> <code>moapi-token</code>.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data_ini</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data inicial no formato <code>AAAA-MM-DD</code> (2017 – 2100).</td>\n</tr>\n<tr>\n<td><code>data_fim</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data final no formato <code>AAAA-MM-DD</code> (2017 – 2100).</td>\n</tr>\n<tr>\n<td><code>lista_nomes_clusters</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Nomes de clusters. Para <strong>todos</strong>, use <code>[\"*\"]</code>. Não pode estar vazia.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página dos resultados (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-03-31\",\n  \"lista_nomes_clusters\": [\"cluster_alpha\", \"cluster_beta\"],\n  \"pag\": 1\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP (200, 400, etc.).</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto breve sobre sucesso/falha.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes do erro (se houver).</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Última página disponível.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td>Lista de listas: <code>[cluster, data, esquecimentos]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <strong><code>200 OK</code></strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"nome_cluster\", \"data\", \"esquecimentos\"],\n    [\"cluster_alpha\", \"2024-01-01\", \"5\"],\n    [\"cluster_alpha\", \"2024-01-02\", \"8\"],\n    [\"cluster_beta\", \"2024-01-01\", \"12\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 373 dias, excedendo assim o limite deste endpoint (Doze meses cheios (372 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[{\\\"validation\\\":\\\"minItems\\\",\\\"code\\\":\\\"min_items\\\",\\\"message\\\":\\\"Array must have at least 1 item\\\",\\\"path\\\":[\\\"lista_nomes_clusters\\\"]}]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"401--token-expirado\"><code>401 – Token Expirado</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"message\": \"The incoming token has expired\" }\n</code></pre>\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"An internal server error occurred.\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["esquecimentos-dia-cluster"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"5cc78891-17e1-437c-ba63-a981e88bc0d7"},{"name":"esquecimentos-dia-colaborador","id":"943ad695-28c1-488a-8c4b-b4b942149ef9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/esquecimentos-dia-colaborador","description":"<h1 id=\"post-esquecimentos-dia-colaborador\"><strong>POST</strong> <code>/esquecimentos-dia-colaborador</code></h1>\n<p>Retorna <strong>esquecimentos absolutos</strong> (quantidade) <strong>por dia</strong> e <strong>por colaborador</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Obter o número de esquecimentos diários para cada matrícula solicitada.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong><br />• Limite: <strong>10 dias</strong> corridos.<br />• Lista <code>[\"*\"]</code> devolve todos os colaboradores.</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/esquecimentos-dia-colaborador</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> <strong>obrigatório</strong>.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data_ini</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data inicial <code>AAAA-MM-DD</code>.</td>\n</tr>\n<tr>\n<td><code>data_fim</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data final <code>AAAA-MM-DD</code>.</td>\n</tr>\n<tr>\n<td><code>lista_matriculas_colaboradores</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Matrículas desejadas ou <code>[\"*\"]</code> para todas.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página dos resultados (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"data_ini\": \"2024-03-01\",\n  \"data_fim\": \"2024-03-05\",\n  \"lista_matriculas_colaboradores\": [\"matr456\", \"matrABC\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto de status.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes do erro.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Página final.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[matricula, data, n_esquecimentos]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <strong><code>200 OK</code></strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"matricula\", \"data\", \"esquecimentos\"],\n    [\"matr456\", \"2024-03-01\", \"1\"],\n    [\"matr456\", \"2024-03-02\", \"0\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Se o intervalo entre <code>data_ini</code> e <code>data_fim</code> exceder o limite de <strong>10 dias</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 12 dias, excedendo assim o limite deste endpoint (Dez dias corridos (10 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Algum campo fora do esperado (formato de data inválido, lista vazia, item numérico em vez de string etc.).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[instance type (integer) does not match any allowed primitive type (allowed: [\\\"string\\\"])]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n    \"message\": \"The incoming token has expired\"\n}\n</code></pre>\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes internos]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["esquecimentos-dia-colaborador"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"943ad695-28c1-488a-8c4b-b4b942149ef9"},{"name":"esquecimentos-dia-filial","id":"2e543b55-ee9f-404c-90b8-ced71b834e1b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/esquecimentos-dia-filial","description":"<h1 id=\"post-esquecimentos-dia-filial\"><strong>POST</strong> <code>/esquecimentos-dia-filial</code></h1>\n<p>Fornece a contagem de <strong>esquecimentos</strong> por <strong>dia</strong> e <strong>filial</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Retornar a contagem de esquecimentos diários por filial dentro de um período.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong> limite de <strong>62 dias</strong> por consulta.</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/esquecimentos-dia-filial</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> obrigatório.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data_ini</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data inicial <code>AAAA-MM-DD</code>.</td>\n</tr>\n<tr>\n<td><code>data_fim</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data final <code>AAAA-MM-DD</code>.</td>\n</tr>\n<tr>\n<td><code>lista_cods_filiais</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Códigos de filial. <code>[\"*\"]</code> para todas.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data_ini\": \"2024-06-01\",\n  \"data_fim\": \"2024-06-30\",\n  \"lista_cods_filiais\": [\"0010\", \"0055\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto curto.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Última página.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[filial_cod, data, esquecimentos]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <code>200 OK</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"filial_cod\", \"data\", \"esquecimentos\"],\n    [\"0010\", \"2024-06-15\", \"8\"],\n    [\"0055\", \"2024-06-15\", \"3\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Quando o intervalo entre <code>data_ini</code> e <code>data_fim</code> ultrapassa <strong>62 dias</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 70 dias, excedendo assim o limite deste endpoint (Dois meses cheios (62 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Qualquer violação de formato ou regra de validação (data inválida, lista vazia, item numérico onde devia ser string etc.).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[detalhes do erro de validacao]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"message\": \"The incoming token has expired\" }\n</code></pre>\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes internos]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["esquecimentos-dia-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"2e543b55-ee9f-404c-90b8-ced71b834e1b"},{"name":"esquecimentos-mes-cluster","id":"2bd5da74-7029-4955-ae8e-011606023e2a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/esquecimentos-mes-cluster","description":"<h1 id=\"post-esquecimentos-mes-cluster\"><strong>POST</strong> <code>/esquecimentos-mes-cluster</code></h1>\n<p>Devolve <strong>esquecimentos</strong> por <strong>mês</strong> e <strong>cluster</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Retornar a contagem de esquecimentos mensal por cluster.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong> intervalo máximo de <strong>dois anos cheios</strong> (730 dias).</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/esquecimentos-mes-cluster</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> obrigatório.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>mes_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês inicial <code>MM</code> ou inteiro <code>1–12</code>.</td>\n</tr>\n<tr>\n<td><code>ano_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano inicial <code>AAAA</code> (≥ 2017).</td>\n</tr>\n<tr>\n<td><code>mes_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês final <code>MM</code> ou inteiro <code>1–12</code>.</td>\n</tr>\n<tr>\n<td><code>ano_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano final <code>AAAA</code> (≥ 2017).</td>\n</tr>\n<tr>\n<td><code>lista_nomes_clusters</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Nomes ou <code>[\"*\"]</code> para todos.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2023,\n  \"mes_fim\": 12,\n  \"ano_fim\": 2023,\n  \"lista_nomes_clusters\": [\"cluster_A\", \"cluster_B\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto de status.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Página final.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[nome_cluster, ano, mes, esquecimentos]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <code>200 OK</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"nome_cluster\", \"ano\", \"mes\", \"esquecimentos\"],\n    [\"cluster_A\", \"2023\", \"1\", \"15\"],\n    [\"cluster_A\", \"2023\", \"2\", \"22\"],\n    [\"cluster_B\", \"2023\", \"1\", \"8\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Quando o intervalo entre <code>(mes_ini, ano_ini)</code> e <code>(mes_fim, ano_fim)</code> excede <strong>730 dias</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 762 dias, excedendo assim o limite deste endpoint (Dois anos cheios (730 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Violação de formato, valor fora de faixa (mês &gt; 12, ano &lt; 2017), lista vazia, item duplicado, etc.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[detalhes do erro de validacao]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"message\": \"The incoming token has expired\"\n}\n</code></pre>\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes internos]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["esquecimentos-mes-cluster"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"2bd5da74-7029-4955-ae8e-011606023e2a"},{"name":"esquecimentos-mes-colaborador","id":"dd920e58-0cde-4a94-9d3f-79ba4127ce2b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/esquecimentos-mes-colaborador","description":"<h1 id=\"post-esquecimentos-mes-colaborador\"><strong>POST</strong> <code>/esquecimentos-mes-colaborador</code></h1>\n<p>Retorna a quantidade de <strong>esquecimentos</strong> por <strong>mês</strong> e <strong>colaborador</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Consultar a quantidade de esquecimentos mensais por matrícula.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong> limite: <strong>Um mês cheio (31 dias)</strong>.</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/esquecimentos-mes-colaborador</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> obrigatório.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>mes_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês inicial <code>MM</code> ou <code>1–12</code>.</td>\n</tr>\n<tr>\n<td><code>ano_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano inicial ≥ 2017.</td>\n</tr>\n<tr>\n<td><code>mes_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês final.</td>\n</tr>\n<tr>\n<td><code>ano_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano final.</td>\n</tr>\n<tr>\n<td><code>lista_matriculas_colaboradores</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Matrículas ou <code>[\"*\"]</code>.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"mes_ini\": 5,\n  \"ano_ini\": 2024,\n  \"mes_fim\": 5,\n  \"ano_fim\": 2024,\n  \"lista_matriculas_colaboradores\": [\"matr456\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto de status.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Página final.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[matricula, ano, mes, n_esquecimentos]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <code>200 OK</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"matricula\", \"ano\", \"mes\", \"esquecimentos\"],\n    [\"matr456\", \"2024\", \"5\", \"2\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Quando o intervalo entre <code>(mes_ini, ano_ini)</code> e <code>(mes_fim, ano_fim)</code> resulta em <strong>mais de 31 dias equivalentes</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": 1,\n  \"ano_ini\": 2024,\n  \"mes_fim\": 3,\n  \"ano_fim\": 2024,\n  \"lista_matriculas_colaboradores\": [\"matr456\"]\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 91 dias, excedendo assim o limite desta requisicao (Um mês cheio (31 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<hr />\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Campo fora do padrão, valor fora da faixa permitida (mês <code>&gt; 12</code>, ano <code>&lt; 2017</code>, lista vazia, item não-string, duplicado etc.).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": 1,\n  \"ano_ini\": 2024,\n  \"mes_fim\": 1,\n  \"ano_fim\": 2024,\n  \"lista_matriculas_colaboradores\": []\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[detalhes do erro de validacao]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<hr />\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{ \"message\": \"The incoming token has expired\" }\n</code></pre>\n<hr />\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": 5,\n  \"ano_ini\": 2024,\n  \"mes_fim\": 5,\n  \"ano_fim\": 2024,\n  \"lista_matriculas_colaboradores\": [\"matr456\"]\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes internos]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["esquecimentos-mes-colaborador"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"dd920e58-0cde-4a94-9d3f-79ba4127ce2b"},{"name":"esquecimentos-mes-filial","id":"0c743758-205f-4b87-8067-c6c4fe6b3fe5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/esquecimentos-mes-filial","description":"<h1 id=\"post-esquecimentos-mes-filial\"><strong>POST</strong> <code>/esquecimentos-mes-filial</code></h1>\n<p>Retorna <strong>esquecimentos</strong> por <strong>mês</strong> e <strong>filial</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Obter os esquecimentos mensais por filial.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong> intervalo máximo de <strong>12 meses</strong> (≈ 372 dias).</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/esquecimentos-mes-filial</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> obrigatório.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>mes_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês inicial.</td>\n</tr>\n<tr>\n<td><code>ano_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano inicial.</td>\n</tr>\n<tr>\n<td><code>mes_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês final.</td>\n</tr>\n<tr>\n<td><code>ano_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano final.</td>\n</tr>\n<tr>\n<td><code>lista_cods_filiais</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Códigos ou <code>[\"*\"]</code>.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2023,\n  \"mes_fim\": 12,\n  \"ano_fim\": 2023,\n  \"lista_cods_filiais\": [\"0001\", \"0005\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto breve.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Página final.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[filial_cod, ano, mes, esquecimentos]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <code>200 OK</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"filial_cod\", \"ano\", \"mes\", \"esquecimentos\"],\n    [\"0001\", \"2023\", \"1\", \"15\"],\n    [\"0005\", \"2023\", \"1\", \"8\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Quando o intervalo entre <code>(mes_ini, ano_ini)</code> e <code>(mes_fim, ano_fim)</code> ultrapassar <strong>12 meses (≈ 372 dias)</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 398 dias, excedendo assim o limite deste endpoint (Doze meses cheios (372 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<blockquote>\n<p><em>O número de dias exibido na mensagem varia conforme a requisição; o exemplo acima é ilustrativo.</em></p>\n</blockquote>\n<hr />\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Qualquer campo fora do esperado (mês &gt; 12, ano &lt; 2017, lista vazia ou contendo valores de tipo errado, etc.).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[detalhes do erro de validacao]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<hr />\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"message\": \"The incoming token has expired\" }\n</code></pre>\n<hr />\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes internos]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["esquecimentos-mes-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"0c743758-205f-4b87-8067-c6c4fe6b3fe5"},{"name":"infracoes-dia-cluster","id":"924294d9-d285-4d32-b7b4-e22373fd702c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/infracoes-dia-cluster","description":"<h1 id=\"post-infracoes-dia-cluster\"><strong>POST</strong> <code>/infracoes-dia-cluster</code></h1>\n<p>Fornece <strong>contagens de infrações</strong> agregadas <strong>por dia</strong> e <strong>por cluster</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Retornar a contagem diária de cada tipo de infração por cluster em determinado intervalo.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong><br />• Limite de <strong>372 dias</strong> por consulta (≈ 12 × 31).</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/infracoes-dia-cluster</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <strong>obrigatório</strong> <code>moapi-token</code>.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data_ini</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data inicial no formato <code>AAAA-MM-DD</code> (2017 – 2100).</td>\n</tr>\n<tr>\n<td><code>data_fim</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data final no formato <code>AAAA-MM-DD</code> (2017 – 2100).</td>\n</tr>\n<tr>\n<td><code>lista_nomes_clusters</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Nomes de clusters. Para <strong>todos</strong>, use <code>[\"*\"]</code>. Não pode estar vazia.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página dos resultados (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"data_ini\": \"2024-02-01\",\n  \"data_fim\": \"2024-02-15\",\n  \"lista_nomes_clusters\": [\"cluster_A\", \"cluster_B\"],\n  \"pag\": 1\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP (200, 400, etc.).</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto breve sobre sucesso/falha.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes do erro (se houver).</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Última página disponível.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td>Lista de listas. A primeira é o cabeçalho: <code>['nome_cluster', 'data', 'interjornada', 'estouro_6x1', 'estouro_dom', 'hora_extra_2h', 'turno_acima_6h', 'intervalo_abaixo_1h']</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <strong><code>200 OK</code></strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"nome_cluster\", \"data\", \"interjornada\", \"estouro_6x1\", \"estouro_dom\", \"hora_extra_2h\", \"turno_acima_6h\", \"intervalo_abaixo_1h\"],\n    [\"cluster_A\", \"2024-02-01\", \"5\", \"2\", \"0\", \"10\", \"1\", \"3\"],\n    [\"cluster_A\", \"2024-02-02\", \"3\", \"1\", \"0\", \"8\", \"0\", \"1\"],\n    [\"cluster_B\", \"2024-02-01\", \"0\", \"0\", \"1\", \"4\", \"2\", \"5\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"data_ini\": \"2023-01-01\",\n  \"data_fim\": \"2024-01-08\",\n  \"lista_nomes_clusters\": [\"*\"]\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 373 dias, excedendo assim o limite deste endpoint (Doze meses cheios (372 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-31\",\n  \"lista_nomes_clusters\": []\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[detalhes da validação]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"401--token-expirado\"><code>401 – Token Expirado</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{ \"message\": \"The incoming token has expired\" }\n</code></pre>\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes internos]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["infracoes-dia-cluster"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"924294d9-d285-4d32-b7b4-e22373fd702c"},{"name":"infracoes-dia-colaborador","id":"804d3ff8-68b4-4f49-9469-c1c553d4c2bb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/infracoes-dia-colaborador","description":"<h1 id=\"post-infracoes-dia-colaborador\"><strong>POST</strong> <code>/infracoes-dia-colaborador</code></h1>\n<p>Retorna <strong>infrações</strong> (quantidade) <strong>por dia</strong> e <strong>por colaborador</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Obter o número de infrações diárias para cada matrícula solicitada.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong><br />• Limite fixo: <strong>10 dias corridos</strong>.<br />• Lista <code>[\"*\"]</code> devolve todos os colaboradores.</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/infracoes-dia-colaborador</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> <strong>obrigatório</strong>.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data_ini</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data inicial <code>AAAA-MM-DD</code>.</td>\n</tr>\n<tr>\n<td><code>data_fim</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data final <code>AAAA-MM-DD</code>.</td>\n</tr>\n<tr>\n<td><code>lista_matriculas_colaboradores</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Matrículas desejadas ou <code>[\"*\"]</code> para todas.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página dos resultados (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data_ini\": \"2024-02-01\",\n  \"data_fim\": \"2024-02-09\",\n  \"lista_matriculas_colaboradores\": [\"matr456\", \"matrABC\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto de status.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes do erro.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Página final.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td>Array de resultados. O cabeçalho é <code>['matricula', 'data', 'interjornada', 'estouro_6x1', 'estouro_dom', 'hora_extra_2h', 'turno_acima_6h', 'intervalo_abaixo_1h']</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <strong><code>200 OK</code></strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"matricula\", \"data\", \"interjornada\", \"estouro_6x1\", \"estouro_dom\", \"hora_extra_2h\", \"turno_acima_6h\", \"intervalo_abaixo_1h\"],\n    [\"matr456\", \"2024-02-01\", \"0\", \"1\", \"0\", \"0\", \"0\", \"0\"],\n    [\"matr456\", \"2024-02-02\", \"1\", \"0\", \"0\", \"0\", \"0\", \"0\"],\n    [\"matrABC\", \"2024-02-01\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Se o intervalo entre <code>data_ini</code> e <code>data_fim</code> exceder o limite de <strong>10 dias corridos</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 15 dias, excedendo assim o limite deste endpoint (Dez dias corridos (10 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Algum campo fora do esperado (formato de data inválido, lista vazia, item numérico em vez de string etc.).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[instance type (integer) does not match any allowed primitive type (allowed: [\\\"string\\\"])]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"message\": \"The incoming token has expired\" }\n</code></pre>\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes internos]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["infracoes-dia-colaborador"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"804d3ff8-68b4-4f49-9469-c1c553d4c2bb"},{"name":"infracoes-dia-filial","id":"dc95ff49-f503-445f-99a4-d859589e0ae4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/infracoes-dia-filial","description":"<h1 id=\"post-infracoes-dia-filial\"><strong>POST</strong> <code>/infracoes-dia-filial</code></h1>\n<p>Fornece <strong>contagem de infrações</strong> por <strong>dia</strong> e <strong>filial</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Retornar a contagem de diversas infrações trabalhistas, por dia e filial, dentro de um período.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong> limite de <strong>62 dias</strong> por consulta.</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/infracoes-dia-filial</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> obrigatório.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data_ini</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data inicial <code>AAAA-MM-DD</code>.</td>\n</tr>\n<tr>\n<td><code>data_fim</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data final <code>AAAA-MM-DD</code>.</td>\n</tr>\n<tr>\n<td><code>lista_cods_filiais</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Códigos de filial. <code>[\"*\"]</code> para todas.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"data_ini\": \"2024-04-01\",\n  \"data_fim\": \"2024-04-30\",\n  \"lista_cods_filiais\": [\"0001\", \"0005\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto curto.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Última página.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td>Array de resultados. O 1º item é o cabeçalho: <code>['filial_cod', 'data', 'interjornada', 'estouro_6x1', 'estouro_dom', 'hora_extra_2h', 'turno_acima_6h', 'intervalo_abaixo_1h']</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <code>200 OK</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"filial_cod\", \"data\", \"interjornada\", \"estouro_6x1\", \"estouro_dom\", \"hora_extra_2h\", \"turno_acima_6h\", \"intervalo_abaixo_1h\"],\n    [\"0001\", \"2024-04-10\", \"1\", \"0\", \"0\", \"2\", \"1\", \"0\"],\n    [\"0005\", \"2024-04-12\", \"0\", \"1\", \"0\", \"0\", \"0\", \"1\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Quando o intervalo entre <code>data_ini</code> e <code>data_fim</code> ultrapassa <strong>62 dias</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-04-01\",\n  \"lista_cods_filiais\": [\"0001\"]\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 91 dias, excedendo assim o limite deste endpoint (Dois meses cheios (62 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Qualquer violação de formato ou regra de validação (data inválida, lista vazia, etc.).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"data_ini\": \"2024-03-01\",\n  \"data_fim\": \"2024-03-31\",\n  \"lista_cods_filiais\": []\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[detalhes do erro de validacao]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{ \"message\": \"The incoming token has expired\" }\n</code></pre>\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes internos]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["infracoes-dia-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"dc95ff49-f503-445f-99a4-d859589e0ae4"},{"name":"infracoes-mes-cluster","id":"9e83b0ab-8c30-44bd-a9bb-705859555c1f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/infracoes-mes-cluster","description":"<h1 id=\"post-infracoes-mes-cluster\"><strong>POST</strong> <code>/infracoes-mes-cluster</code></h1>\n<p>Devolve <strong>contagem de infrações</strong> por <strong>mês</strong> e <strong>cluster</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Retornar a contagem de infrações mensais por cluster.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong> intervalo máximo de <strong>dois anos cheios</strong> (730 dias).</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/infracoes-mes-cluster</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> obrigatório.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>mes_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês inicial <code>MM</code> ou inteiro <code>1–12</code>.</td>\n</tr>\n<tr>\n<td><code>ano_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano inicial <code>AAAA</code> (≥ 2017).</td>\n</tr>\n<tr>\n<td><code>mes_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês final <code>MM</code> ou inteiro <code>1–12</code>.</td>\n</tr>\n<tr>\n<td><code>ano_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano final <code>AAAA</code> (≥ 2017).</td>\n</tr>\n<tr>\n<td><code>lista_nomes_clusters</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Nomes ou <code>[\"*\"]</code> para todos.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": \"03\",\n  \"ano_fim\": 2024,\n  \"lista_nomes_clusters\": [\"cluster_A\", \"cluster_B\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto de status.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Página final.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[nome_cluster, ano, mes, interjornada, estouro_6x1, estouro_dom, hora_extra_2h, turno_acima_6h, intervalo_abaixo_1h]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <code>200 OK</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"nome_cluster\", \"ano\", \"mes\", \"interjornada\", \"estouro_6x1\", \"estouro_dom\", \"hora_extra_2h\", \"turno_acima_6h\", \"intervalo_abaixo_1h\"],\n    [\"cluster_A\", \"2024\", \"1\", \"5\", \"2\", \"0\", \"10\", \"8\", \"3\"],\n    [\"cluster_A\", \"2024\", \"2\", \"4\", \"1\", \"1\", \"12\", \"7\", \"4\"],\n    [\"cluster_B\", \"2024\", \"1\", \"10\", \"8\", \"1\", \"15\", \"11\", \"9\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Quando o intervalo entre <code>(mes_ini, ano_ini)</code> e <code>(mes_fim, ano_fim)</code> excede <strong>730 dias</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 762 dias, excedendo assim o limite deste endpoint (Dois anos cheios (730 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Violação de formato, valor fora de faixa (mês &gt; 12, ano &lt; 2017), lista vazia, item duplicado, etc.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[detalhes do erro de validacao]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"message\": \"The incoming token has expired\" }\n</code></pre>\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes internos]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["infracoes-mes-cluster"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"9e83b0ab-8c30-44bd-a9bb-705859555c1f"},{"name":"infracoes-mes-colaborador","id":"fe293102-436a-4b27-bc9d-28df10cc1931","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/infracoes-mes-colaborador","description":"<h1 id=\"post-infracoes-mes-colaborador\"><strong>POST</strong> <code>/infracoes-mes-colaborador</code></h1>\n<p>Retorna <strong>infrações</strong> por <strong>mês</strong> e <strong>colaborador</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Consultar a quantidade de infrações mensais por matrícula.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong> limite: <strong>Um mês cheio (31 dias)</strong>.</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/infracoes-mes-colaborador</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> obrigatório.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>mes_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês inicial <code>MM</code> ou <code>1–12</code>.</td>\n</tr>\n<tr>\n<td><code>ano_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano inicial ≥ 2017.</td>\n</tr>\n<tr>\n<td><code>mes_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês final.</td>\n</tr>\n<tr>\n<td><code>ano_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano final.</td>\n</tr>\n<tr>\n<td><code>lista_matriculas_colaboradores</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Matrículas ou <code>[\"*\"]</code>. Não pode ser vazia.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"mes_ini\": 1,\n  \"ano_ini\": 2024,\n  \"mes_fim\": 1,\n  \"ano_fim\": 2024,\n  \"lista_matriculas_colaboradores\": [\"matr456\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto de status.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Página final.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[matricula, ano, mes, interjornada, estouro_6x1, estouro_dom, hora_extra_2h, turno_acima_6h, intervalo_abaixo_1h]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <code>200 OK</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\n      \"matricula\",\n      \"ano\",\n      \"mes\",\n      \"interjornada\",\n      \"estouro_6x1\",\n      \"estouro_dom\",\n      \"hora_extra_2h\",\n      \"turno_acima_6h\",\n      \"intervalo_abaixo_1h\"\n    ],\n    [\n      \"matr456\",\n      \"2024\",\n      \"1\",\n      \"2\",\n      \"0\",\n      \"1\",\n      \"5\",\n      \"0\",\n      \"3\"\n    ]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Quando o intervalo entre <code>(mes_ini, ano_ini)</code> e <code>(mes_fim, ano_fim)</code> resulta em <strong>mais de 31 dias equivalentes</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": 1,\n  \"ano_ini\": 2024,\n  \"mes_fim\": 3,\n  \"ano_fim\": 2024,\n  \"lista_matriculas_colaboradores\": [\"matr456\"]\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido excede o limite desta requisicao (Um mês cheio (31 dias)).\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<hr />\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Campo fora do padrão, valor fora da faixa permitida (mês <code>&gt; 12</code>, ano <code>&lt; 2017</code>, lista vazia, item não-string, duplicado etc.).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": 1,\n  \"ano_ini\": 2024,\n  \"mes_fim\": 1,\n  \"ano_fim\": 2024,\n  \"lista_matriculas_colaboradores\": []\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[{\\\"instancePath\\\":\\\"/lista_matriculas_colaboradores\\\",\\\"schemaPath\\\":\\\"#/properties/lista_matriculas_colaboradores/minItems\\\",\\\"keyword\\\":\\\"minItems\\\",\\\"params\\\":{\\\"limit\\\":1},\\\"message\\\":\\\"must NOT have fewer than 1 items\\\"}]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<hr />\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": 1,\n  \"ano_ini\": 2024,\n  \"mes_fim\": 1,\n  \"ano_fim\": 2024,\n  \"lista_matriculas_colaboradores\": [\"matr456\"]\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{ \"message\": \"The incoming token has expired\" }\n</code></pre>\n<hr />\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": 1,\n  \"ano_ini\": 2024,\n  \"mes_fim\": 1,\n  \"ano_fim\": 2024,\n  \"lista_matriculas_colaboradores\": [\"matr456\"]\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"Erro interno do servidor.\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["infracoes-mes-colaborador"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"fe293102-436a-4b27-bc9d-28df10cc1931"},{"name":"infracoes-mes-filial","id":"b3720163-0cfa-489d-a86a-616236f9d6ff","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/infracoes-mes-filial","description":"<h1 id=\"post-infracoes-mes-filial\"><strong>POST</strong> <code>/infracoes-mes-filial</code></h1>\n<p>Retorna <strong>contagem de infrações</strong> por <strong>mês</strong> e <strong>filial</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Obter a contagem de infrações mensais por filial.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong> intervalo máximo de <strong>12 meses</strong> (≈ 372 dias).</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/infracoes-mes-filial</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> obrigatório.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>mes_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês inicial (1-12).</td>\n</tr>\n<tr>\n<td><code>ano_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano inicial (a partir de 2017).</td>\n</tr>\n<tr>\n<td><code>mes_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês final (1-12).</td>\n</tr>\n<tr>\n<td><code>ano_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano final (a partir de 2017).</td>\n</tr>\n<tr>\n<td><code>lista_cods_filiais</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Códigos das filiais.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2023,\n  \"mes_fim\": 2,\n  \"ano_fim\": 2023,\n  \"lista_cods_filiais\": [\"0001\", \"0005\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto breve.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Página final.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[filial_cod, ano, mes, interjornada, estouro_6x1, estouro_dom, hora_extra_2h, turno_acima_6h, intervalo_abaixo_1h]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <code>200 OK</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"filial_cod\", \"ano\", \"mes\", \"interjornada\", \"estouro_6x1\", \"estouro_dom\", \"hora_extra_2h\", \"turno_acima_6h\", \"intervalo_abaixo_1h\"],\n    [\"0001\", \"2023\", \"1\", \"5\", \"2\", \"0\", \"10\", \"1\", \"3\"],\n    [\"0005\", \"2023\", \"1\", \"3\", \"1\", \"1\", \"8\", \"0\", \"5\"],\n    [\"0001\", \"2023\", \"2\", \"8\", \"0\", \"0\", \"12\", \"3\", \"2\"],\n    [\"0005\", \"2023\", \"2\", \"2\", \"2\", \"0\", \"7\", \"1\", \"1\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Quando o intervalo entre <code>(mes_ini, ano_ini)</code> e <code>(mes_fim, ano_fim)</code> ultrapassar <strong>12 meses (≈ 372 dias)</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2022,\n  \"mes_fim\": \"02\",\n  \"ano_fim\": 2023,\n  \"lista_cods_filiais\": [\"0001\"]\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 398 dias, excedendo assim o limite deste endpoint (Doze meses cheios (372 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<blockquote>\n<p><em>O número de dias exibido na mensagem varia conforme a requisição; o exemplo acima é ilustrativo.</em></p>\n</blockquote>\n<hr />\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Qualquer campo fora do esperado (mês &gt; 12, ano &lt; 2017, lista vazia ou contendo valores de tipo errado, etc.).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[detalhes do erro de validacao]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<hr />\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{ \"message\": \"The incoming token has expired\" }\n</code></pre>\n<hr />\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2023,\n  \"mes_fim\": 2,\n  \"ano_fim\": 2023,\n  \"lista_cods_filiais\": [\"0001\", \"0005\"]\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes internos]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["infracoes-mes-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"b3720163-0cfa-489d-a86a-616236f9d6ff"},{"name":"infracoes-plan-dia-filial","id":"70957491-3416-47f4-8a10-5ab522977f53","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"data_ini\": \"2026-07-01\",\n    \"data_fim\": \"2026-07-15\",\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/infracoes-plan-dia-filial","description":"<p>Janela máxima: 62 dias. ASSINCRONO (resultados=null na primeira chamada; re-buscar).</p>\n<p>3 métricas planejadas (não as 6 do realizado acima).</p>\n<p>Filial sem escala montada é OMITIDA; com escala e sem infracao = 0.</p>\n<p>Colunas: filial_cod, data, interjornada, estouro_6x1, estouro_dom.</p>\n","urlObject":{"protocol":"https","path":["infracoes-plan-dia-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"1876f2ae-8d2c-4732-abf8-877cd71ef02f","name":"200-sucesso","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"data_ini\": \"2026-07-01\",\n    \"data_fim\": \"2026-07-15\",\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/infracoes-plan-dia-filial","description":"Janela maxima: 62 dias. ASSINCRONO (resultados=null na 1a chamada; re-buscar). 3 metricas planejadas (nao as 6 do realizado). Filial sem escala montada e' OMITIDA; com escala e sem infracao = 0. Colunas: filial_cod, data, interjornada, estouro_6x1, estouro_dom."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"filial_cod\",\n            \"data\",\n            \"interjornada\",\n            \"estouro_6x1\",\n            \"estouro_dom\"\n        ],\n        [\n            \"0001\",\n            \"2026-07-05\",\n            \"2\",\n            \"1\",\n            \"0\"\n        ],\n        [\n            \"0002\",\n            \"2026-07-05\",\n            \"0\",\n            \"0\",\n            \"0\"\n        ]\n    ]\n}"},{"id":"95fe5c33-5d50-4bb3-a202-220a222001f9","name":"200-async-em-processamento (1a chamada)","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"data_ini\": \"2026-07-01\",\n    \"data_fim\": \"2026-07-15\",\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/infracoes-plan-dia-filial","description":"Janela maxima: 62 dias. ASSINCRONO (resultados=null na 1a chamada; re-buscar). 3 metricas planejadas (nao as 6 do realizado). Filial sem escala montada e' OMITIDA; com escala e sem infracao = 0. Colunas: filial_cod, data, interjornada, estouro_6x1, estouro_dom."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": null\n}"},{"id":"4e23eeed-464e-4ad5-a0e9-2688531ca9ab","name":"400-janela-excede-limite","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"data_ini\": \"2026-07-01\",\n    \"data_fim\": \"2026-07-15\",\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/infracoes-plan-dia-filial","description":"Janela maxima: 62 dias. ASSINCRONO (resultados=null na 1a chamada; re-buscar). 3 metricas planejadas (nao as 6 do realizado). Filial sem escala montada e' OMITIDA; com escala e sem infracao = 0. Colunas: filial_cod, data, interjornada, estouro_6x1, estouro_dom."},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Requisicao mal-formada.\",\n    \"erro\": \"O periodo inserido contempla 92 dias, excedendo assim o limite desta requisicao (62 dias)!\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"}],"_postman_id":"70957491-3416-47f4-8a10-5ab522977f53"},{"name":"infracoes-plan-mes-filial","id":"c4b489f7-9f12-4630-b837-2cc0854f6516","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"mes_ini\": \"06\",\n    \"ano_ini\": 2026,\n    \"mes_fim\": \"07\",\n    \"ano_fim\": 2026,\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/infracoes-plan-mes-filial","description":"<p>Janela máxima: 372 dias. ASSINCRONO (resultados=null na primeira chamada; re-buscar).</p>\n<p>3 métricas planejadas.</p>\n<p>Omissao = sem escala montada.</p>\n<p>Colunas: filial_cod, ano, mes, interjornada, estouro_6x1, estouro_dom.</p>\n","urlObject":{"protocol":"https","path":["infracoes-plan-mes-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"377c524e-fc90-4f22-981e-034bcc77857e","name":"200-sucesso","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"mes_ini\": \"06\",\n    \"ano_ini\": 2026,\n    \"mes_fim\": \"07\",\n    \"ano_fim\": 2026,\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/infracoes-plan-mes-filial","description":"Janela maxima: 372 dias. ASSINCRONO (resultados=null na 1a chamada; re-buscar). 3 metricas planejadas. Omissao = sem escala montada. Colunas: filial_cod, ano, mes, interjornada, estouro_6x1, estouro_dom."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"filial_cod\",\n            \"ano\",\n            \"mes\",\n            \"interjornada\",\n            \"estouro_6x1\",\n            \"estouro_dom\"\n        ],\n        [\n            \"0001\",\n            \"2026\",\n            \"7\",\n            \"14\",\n            \"6\",\n            \"2\"\n        ]\n    ]\n}"},{"id":"ae3eee48-5c0f-4a40-8b98-877263c40553","name":"200-async-em-processamento (1a chamada)","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"mes_ini\": \"06\",\n    \"ano_ini\": 2026,\n    \"mes_fim\": \"07\",\n    \"ano_fim\": 2026,\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/infracoes-plan-mes-filial","description":"Janela maxima: 372 dias. ASSINCRONO (resultados=null na 1a chamada; re-buscar). 3 metricas planejadas. Omissao = sem escala montada. Colunas: filial_cod, ano, mes, interjornada, estouro_6x1, estouro_dom."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": null\n}"},{"id":"66e812d6-4cd8-472b-a879-7618949f0c0b","name":"400-janela-excede-limite","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"mes_ini\": \"06\",\n    \"ano_ini\": 2026,\n    \"mes_fim\": \"07\",\n    \"ano_fim\": 2026,\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/infracoes-plan-mes-filial","description":"Janela maxima: 372 dias. ASSINCRONO (resultados=null na 1a chamada; re-buscar). 3 metricas planejadas. Omissao = sem escala montada. Colunas: filial_cod, ano, mes, interjornada, estouro_6x1, estouro_dom."},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Requisicao mal-formada.\",\n    \"erro\": \"O periodo inserido contempla 402 dias, excedendo assim o limite desta requisicao (372 dias)!\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"}],"_postman_id":"c4b489f7-9f12-4630-b837-2cc0854f6516"},{"name":"iqes-dia-cluster","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"91e72564-5f31-4508-8a22-72b6d77de8ed"}}],"id":"df3cad7f-9326-4bd0-80be-445d60fdd035","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2023-01-01\",\r\n  \"data_fim\": \"2023-02-01\",\r\n  \"lista_nomes_clusters\": [\"cluster5\", \"cluster3\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-dia-cluster","description":"<h1 id=\"iqes-por-dia-e-cluster\">IQEs por dia e cluster</h1>\n<p>Fornece IQEs agregados por dia e discriminados por cluster.</p>\n<h2 id=\"payload-de-requisição\">Payload de requisição</h2>\n<p>O usuário deve fornecer datas inicial (\"data_ini\") e final (\"data_fim\") em formato \"AAAA-MM-DD\".</p>\n<p>O número total de dias correspondentes (\"daterange\") não pode exceder 12 meses cheios (12*31 dias).</p>\n<p>Em \"lista_nomes_clusters\" espera-se uma lista contendo strings que correspondam a nomes de clusters cadastrados na MOAVI. <strong>Para que dados de todos clusters sejam retornados, o input deve ser \"<strong>lista_nomes_clusters</strong>\": [\"*\"]</strong></p>\n<p>Se houver necessidade de paginação, em requisições posteriores o usuário deve incluir no body a chave \"pag\" com um inteiro positivo.</p>\n<h2 id=\"corpo-da-resposta\">Corpo da resposta</h2>\n<ul>\n<li><p>\"mensagem\" conterá uma <em><strong>string</strong></em> que informa brevemente sobre sucesso ou fracasso da request. Algumas requisições podem resultar em avisos neste campo.</p>\n</li>\n<li><p>\"erro\", se aplicável, trará <em><strong>string</strong></em> detalhando o motivo de fracasso da requisição. Se não, retorna como <em><strong>null</strong></em></p>\n</li>\n<li><p>\"ultimaPag\", fornece a página (<em><strong>integer</strong></em>) do último lote de resultados. Em casos de erro, por exemplo, retorna como <em><strong>null</strong></em>.</p>\n</li>\n<li><p>\"statusCode\" informa o código HTTP da resposta, um <em><strong>integer</strong></em>.</p>\n</li>\n<li><p>\"resultados\", se não <em>null</em>, trata-se de uma lista de listas. As listas internas sempre tem 3 elementos, cada, todos <em><strong>string</strong></em>.</p>\n<ul>\n<li><p>A primeira lista aninhada é sempre [\"nome_cluster\", \"data\", \"iqe\"].</p>\n</li>\n<li><p>As demais conterão <em><strong>strings</strong></em> com valores respectivos, ex: [\"cluster1\", \"2024-06-11\", \"0.83\"] significaria que no dia 11 de junho de 2024, o cluster \"cluster1\" performou com \"0.813\" (81,3%) de IQE.</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["iqes-dia-cluster"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"67270fdc-1d8f-45a5-b127-48f88d719e6c","name":"200-sucesso-completo","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-12-31\",\r\n  \"lista_nomes_clusters\": [\"cluster2\", \"cluster1\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-dia-cluster"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"nome_cluster\",\n            \"data\",\n            \"iqe\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-01\",\n            \"0.961053\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-02\",\n            \"0.866842\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-03\",\n            \"0.865789\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-04\",\n            \"0.848421\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-05\",\n            \"0.863158\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-06\",\n            \"0.896316\"\n        ]\n    ]\n}"},{"id":"2e63dc33-80a5-4683-8814-cd226860f304","name":"200-sucesso-com-aviso","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-01-01\",\r\n  \"lista_nomes_clusters\": [\"*\",\"cluster1\", \"cluster2\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-dia-cluster"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Cuidado! A lista passada foi lista_nomes_clusters=['*', 'cluster1', 'cluster2']. Estamos ignorando a entrada avulsa e buscando por todas entradas.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"nome_cluster\",\n            \"data\",\n            \"iqe\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-01\",\n            \"0.961053\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-02\",\n            \"0.866842\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-03\",\n            \"0.865789\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-04\",\n            \"0.848421\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-05\",\n            \"0.863158\"\n        ],\n        [\n            \"cluster1\",\n            \"2024-01-06\",\n            \"0.896316\"\n        ]\n    ]\n}"},{"id":"028dd840-56be-4100-b608-c67bb5f9e495","name":"400-erro-excesso-de-dias","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2023-01-01\",\r\n  \"data_fim\": \"2024-02-01\",\r\n  \"lista_nomes_clusters\": [\"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-dia-cluster"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Requisicao mal-formada.\",\n    \"erro\": \"O periodo inserido contempla 397 dias, excedendo assim o limite desta requisicao (372 dias)!\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"d2452849-3a0e-42f1-bf43-5b5397fb8345","name":"400-lista_nomes_clusters-nao-aceita-entradas-inteiras","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2023-01-01\",\r\n  \"data_fim\": \"2023-02-01\",\r\n  \"lista_nomes_clusters\": [123, \"cluster3\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-dia-cluster"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[instance type (integer) does not match any allowed primitive type (allowed: [\\\"string\\\"])]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"a4f88386-1a1f-4bfe-90a4-071c3b5442ab","name":"500-dia-deve-ser-valido","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-01-41\",\r\n  \"lista_nomes_clusters\": [\"cluster1\", \"cluster2\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-dia-cluster"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 500,\n    \"mensagem\": \"Problema ao checar amplitude de data. Verifique sua requisicao!\",\n    \"erro\": \"unconverted data remains: 1\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"}],"_postman_id":"df3cad7f-9326-4bd0-80be-445d60fdd035"},{"name":"iqes-dia-filial","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"267c900b-5284-4992-a283-58a63dce6db8"}}],"id":"45a5abc9-31f6-44ec-8190-29e202daae77","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-04-01\",\r\n  \"data_fim\": \"2024-05-31\",\r\n  \"lista_cods_filiais\": [\"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-dia-filial","description":"<h1 id=\"iqes-por-dia-e-filial\">IQEs por dia e filial</h1>\n<p>Fornece os IQES por dia e por filial.</p>\n<h2 id=\"payload-de-requisição\">Payload de requisição</h2>\n<p>O usuário deve fornecer datas inicial (\"data_ini\") e final (\"data_fim\") em formato \"AAAA-MM-DD\".</p>\n<p>O número total de dias correspondentes (\"daterange\") não pode exceder 62 dias - dois meses cheios.</p>\n<p>Em \"lista_cods_filiais\" espera-se uma lista contendo strings ou inteiros que correspondam a códigos de filiais cadastradas na MOAVI. <strong>Para que dados de todas filiais sejam retornados, o input deve ser \"lista_cods_filiais\": [\"*\"]</strong></p>\n<p>Se houver necessidade de paginação, em requisições posteriores o usuário deve incluir no body a chave \"pag\" com um inteiro positivo.</p>\n<h2 id=\"corpo-da-resposta\">Corpo da resposta</h2>\n<ul>\n<li><p>\"mensagem\" conterá uma <em><strong>string</strong></em> <strong><code>que</code></strong> informa brevemente sobre sucesso ou fracasso da request. Algumas requisições podem resultar em avisos neste campo.</p>\n</li>\n<li><p>\"erro\", se aplicável, trará <em><strong>string</strong></em> detalhando o motivo de fracasso da requisição. Se não, retorna como <em><strong>null</strong></em></p>\n</li>\n<li><p>\"ultimaPag\", fornece a página (<em><strong>integer</strong></em>) do último lote de resultados. Em casos de erro, por exemplo, retorna como <em><strong>null</strong></em>.</p>\n</li>\n<li><p>\"statusCode\" informa o código HTTP da resposta, um <em><strong>integer</strong></em>.</p>\n</li>\n<li><p>\"resultados\", se não <em>null</em>, trata-se de uma lista de listas. As listas internas sempre tem 3 elementos, cada, todos <em><strong>string</strong></em>.</p>\n<ul>\n<li><p>A primeira lista aninhada é sempre [\"filial_cod\", \"data\", \"iqe\"].</p>\n</li>\n<li><p>As demais conterão <em><strong>strings</strong></em> com valores respectivos, ex: [\"0001\", \"2024-06-11\", \"0.976\"] significaria que no dia 11 de junho de 2024, a filial \"0001\" performou com \"0.976\" (97,6%) de IQE médio.</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["iqes-dia-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"e9556f4f-ff4d-4f47-94ff-e79179b45528","name":"200-sucesso-com-aviso","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2023-04-01\",\r\n  \"data_fim\": \"2023-06-01\",\r\n  \"lista_cods_filiais\": [\"2\", \"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-dia-filial"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Cuidado! A lista passada foi lista_cods_filiais=['2', '*']. Estamos ignorando o código avulso e buscando por todas filiais.\",\n    \"erro\": null,\n    \"ultimaPag\": 8,\n    \"resultados\": [\n        [\n            \"filial_cod\",\n            \"data\",\n            \"iqe\"\n        ],\n        [\n            \"0002\",\n            \"2023-04-01\",\n            \"0.83\"\n        ],\n        [\n            \"0025\",\n            \"2023-04-01\",\n            \"0.84\"\n        ],\n        [\n            \"0039\",\n            \"2023-04-01\",\n            \"0.89\"\n        ],\n        [\n            \"0070\",\n            \"2023-04-01\",\n            \"0.81\"\n        ],\n        [\n            \"0389\",\n            \"2023-04-01\",\n            \"0.91\"\n        ],\n        [\n            \"0810\",\n            \"2023-04-01\",\n            \"0.88\"\n        ],\n        [\n            \"0063\",\n            \"2023-04-01\",\n            \"0.81\"\n        ],\n        [\n            \"0072\",\n            \"2023-04-01\",\n            \"0.97\"\n        ],\n        [\n            \"0100\",\n            \"2023-04-01\",\n            \"0.92\"\n        ],\n        [\n            \"0119\",\n            \"2023-04-01\",\n            \"0.91\"\n        ],\n        [\n            \"0122\",\n            \"2023-04-01\",\n            \"0.79\"\n        ],\n        [\n            \"0139\",\n            \"2023-04-01\",\n            \"0.86\"\n        ],\n        [\n            \"0149\",\n            \"2023-04-01\",\n            \"0.96\"\n        ],\n        [\n            \"0155\",\n            \"2023-04-01\",\n            \"0.87\"\n        ],\n        [\n            \"0162\",\n            \"2023-04-01\",\n            \"0.89\"\n        ],\n        [\n            \"0185\",\n            \"2023-04-01\",\n            \"0.84\"\n        ],\n        [\n            \"0186\",\n            \"2023-04-01\",\n            \"0.82\"\n        ],\n        [\n            \"0202\",\n            \"2023-04-01\",\n            \"0.83\"\n        ],\n        [\n            \"0210\",\n            \"2023-04-01\",\n            \"1.0\"\n        ],\n        [\n            \"0345\",\n            \"2023-04-01\",\n            \"0.89\"\n        ],\n        [\n            \"0348\",\n            \"2023-04-01\",\n            \"0.83\"\n        ],\n        [\n            \"0396\",\n            \"2023-04-01\",\n            \"0.83\"\n        ],\n        [\n            \"0492\",\n            \"2023-04-01\",\n            \"0.85\"\n        ],\n        [\n            \"0499\",\n            \"2023-04-01\",\n            \"0.94\"\n        ]\n    ]\n}"},{"id":"e5ecbf29-0396-40b0-945b-13697254953b","name":"200-sucesso-completo","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2023-04-01\",\r\n  \"data_fim\": \"2023-06-01\",\r\n  \"lista_cods_filiais\": [\"04\", 2, \"123\", 42]\r\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://moapi.escalamoavi.com.br/iqes-dia-filial","protocol":"https","host":["moapi","escalamoavi","com","br"],"path":["iqes-dia-filial"],"query":[{"key":"","value":null,"disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200, \n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"filial_cod\",\n            \"data\",\n            \"iqe\"\n        ],\n        [\n            \"0002\",\n            \"2023-04-01\",\n            \"0.83\"\n        ],\n        [\n            \"0025\",\n            \"2023-04-01\",\n            \"0.84\"\n        ],\n        [\n            \"0039\",\n            \"2023-04-01\",\n            \"0.89\"\n        ],\n        [\n            \"0070\",\n            \"2023-04-01\",\n            \"0.81\"\n        ],\n        [\n            \"0389\",\n            \"2023-04-01\",\n            \"0.91\"\n        ],\n        [\n            \"0810\",\n            \"2023-04-01\",\n            \"0.88\"\n        ],\n        [\n            \"0063\",\n            \"2023-04-01\",\n            \"0.81\"\n        ],\n        [\n            \"0072\",\n            \"2023-04-01\",\n            \"0.97\"\n        ],\n        [\n            \"0100\",\n            \"2023-04-01\",\n            \"0.92\"\n        ],\n        [\n            \"0119\",\n            \"2023-04-01\",\n            \"0.91\"\n        ],\n        [\n            \"0122\",\n            \"2023-04-01\",\n            \"0.79\"\n        ],\n        [\n            \"0139\",\n            \"2023-04-01\",\n            \"0.86\"\n        ],\n        [\n            \"0149\",\n            \"2023-04-01\",\n            \"0.96\"\n        ],\n        [\n            \"0155\",\n            \"2023-04-01\",\n            \"0.87\"\n        ],\n        [\n            \"0162\",\n            \"2023-04-01\",\n            \"0.89\"\n        ],\n        [\n            \"0185\",\n            \"2023-04-01\",\n            \"0.84\"\n        ],\n        [\n            \"0186\",\n            \"2023-04-01\",\n            \"0.82\"\n        ],\n        [\n            \"0202\",\n            \"2023-04-01\",\n            \"0.83\"\n        ],\n        [\n            \"0210\",\n            \"2023-04-01\",\n            \"1.0\"\n        ],\n        [\n            \"0345\",\n            \"2023-04-01\",\n            \"0.89\"\n        ],\n        [\n            \"0348\",\n            \"2023-04-01\",\n            \"0.83\"\n        ],\n        [\n            \"0396\",\n            \"2023-04-01\",\n            \"0.83\"\n        ],\n        [\n            \"0492\",\n            \"2023-04-01\",\n            \"0.85\"\n        ],\n        [\n            \"0499\",\n            \"2023-04-01\",\n            \"0.94\"\n        ]\n    ]\n}"},{"id":"22dbdc11-098d-4cf1-9262-2add79038db6","name":"400-data-invalida","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"203-04-01\",\r\n  \"data_fim\": \"2023-06-01\",\r\n  \"lista_cods_filiais\": [\"1\", \"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-dia-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[ECMA 262 regex \\\"^20(1[789]|2[0-9]|[3-9][0-9])|(2100)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$\\\" does not match input string \\\"203-04-01\\\"]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"70a414dc-3a1e-4b78-8b4e-ae9d999ce249","name":"400-erro-excesso-de-dias","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2023-04-01\",\r\n  \"data_fim\": \"2023-07-01\",\r\n  \"lista_cods_filiais\": [\"1\", \"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-dia-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Requisicao mal-formada.\",\n    \"erro\": \"O periodo inserido contempla 92 dias, excedendo assim o limite deste endpoint (62 dias)!\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"910c06f1-66cd-4126-a3ed-675bf3c77fa2","name":"400-lista_cods_filiais-invalida","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2023-04-01\",\r\n  \"data_fim\": \"2023-07-01\",\r\n  \"lista_cods_filiais\": null\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-dia-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[instance type (null) does not match any allowed primitive type (allowed: [\\\"array\\\"])]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"}],"_postman_id":"45a5abc9-31f6-44ec-8190-29e202daae77"},{"name":"iqes-mes-cluster","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"2fb06bac-22b2-4625-9bb2-537fd234a1c1"}}],"id":"097d9cd0-60f6-44e7-956c-d71fb6f4341e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2024,\r\n  \"mes_fim\": 12,\r\n  \"ano_fim\": \"2024\",\r\n  \"lista_nomes_clusters\": [\"cluster1\", \"123\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-mes-cluster","description":"<h1 id=\"iqes-por-mês-e-cluster\">IQEs por mês e cluster</h1>\n<p>Este endpoint é usado para recuperar dados de IQE com base em parâmetros específicos relacionados a meses e anos para um determinado cluster.</p>\n<p><strong>Corpo da Requisição</strong></p>\n<ul>\n<li><p><strong>mes_ini</strong> (string ou integer): O mês inicial deve ser uma string no formato \"MM\" ou um número inteiro entre 1-12.</p>\n</li>\n<li><p><strong>ano_ini</strong> (string ou integer): O ano inicial deve ser uma string no formato \"AAAA\" ou um número inteiro entre 2017 e 2100.</p>\n</li>\n<li><p><strong>mes_fim</strong> (string ou integer): O mês final deve ser uma string no formato \"MM\" ou um número inteiro entre 1-12 após o mês inicial.</p>\n</li>\n<li><p><strong>ano_fim</strong> (string ou integer): O ano final deve ser uma string no formato \"AAAA\" ou um número inteiro entre 2017 e 2100.</p>\n<ul>\n<li><strong>OBSERVAÇÃO:</strong> O número total de dias correspondentes não pode exceder 24 meses cheios - 31*24 dias.</li>\n</ul>\n</li>\n<li><p><strong>lista_nomes_clusters:</strong> array de strings, ou informe <em><strong>\"lista_nomes_clusters\": [\"*\"]</strong></em> para solicitar dados de todos clusters.</p>\n</li>\n<li><p><strong>OPCIONAL pag</strong> (integer): O número da página dos resultados. Só tem utilidade se consultas paginadas forem necessárias.</p>\n</li>\n</ul>\n<p><strong>Resposta</strong></p>\n<ul>\n<li><p><strong>statusCode</strong> (integer): O código de status da resposta.</p>\n</li>\n<li><p><strong>mensagem</strong> (string): Qualquer mensagem relevante.</p>\n</li>\n<li><p><strong>erro</strong> (null): Informações de erro, se houver.</p>\n</li>\n<li><p><strong>ultimaPag</strong> (integer): O número da última página com dados referentes à consulta em questão. Se consultas subsequentes forem necessárias para buscar todos os dados, ultimaPag&gt;1.</p>\n</li>\n<li><p><strong>resultados</strong> (array de arrays): Os dados resultantes.</p>\n<ul>\n<li><p>A primeira lista aninhada é sempre [\"nome_cluster\", \"ano\", \"mes\", \"iqe\"].</p>\n</li>\n<li><p>As demais conterão <em><strong>strings</strong></em> com valores respectivos, ex: [\"cluster7\", \"2023\", \"10\", \"0.2112\"] significaria que no mês de outubro de 2023, o cluster \"cluster7\" performou com um valor médio de 21,12% em seu IQE.</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["iqes-mes-cluster"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"c891907a-3d88-443e-b047-070f0af370a0","name":"200-sucesso-completo","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2022,\r\n  \"mes_fim\": 12,\r\n  \"ano_fim\": \"2023\",\r\n  \"lista_nomes_clusters\": [\"cluster1\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-mes-cluster"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"nome_cluster\",\n            \"ano\",\n            \"mes\",\n            \"iqe\"\n        ],\n        [\n            \"cluster1\",\n            \"2022\",\n            \"7\",\n            \"0.900968\"\n        ],\n        [\n            \"cluster1\",\n            \"2022\",\n            \"8\",\n            \"0.876452\"\n        ],\n        [\n            \"cluster1\",\n            \"2022\",\n            \"9\",\n            \"0.878333\"\n        ],\n        [\n            \"cluster1\",\n            \"2022\",\n            \"10\",\n            \"0.883226\"\n        ],\n        [\n            \"cluster1\",\n            \"2022\",\n            \"11\",\n            \"0.934333\"\n        ],\n        [\n            \"cluster1\",\n            \"2022\",\n            \"12\",\n            \"0.985161\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"1\",\n            \"0.964516\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"2\",\n            \"0.966429\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"3\",\n            \"0.949355\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"4\",\n            \"0.945\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"5\",\n            \"0.897034\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"6\",\n            \"0.877222\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"7\",\n            \"0.864221\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"8\",\n            \"0.875951\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"9\",\n            \"0.874111\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"10\",\n            \"0.857278\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"11\",\n            \"0.876625\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"12\",\n            \"0.863185\"\n        ]\n    ]\n}"},{"id":"23610429-4707-4ca7-a685-4cf0a4e5b986","name":"200-sucesso-com-aviso","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2022,\r\n  \"mes_fim\": 12,\r\n  \"ano_fim\": \"2023\",\r\n  \"lista_nomes_clusters\": [\"Luana Campagnolo\", \"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://moapi.escalamoavi.com.br/iqes-mes-cluster?","protocol":"https","host":["moapi","escalamoavi","com","br"],"path":["iqes-mes-cluster"],"query":[{"key":null,"value":null}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Cuidado! A lista informada foi lista_nomes_clusters=['cluster1', '*']. Estamos ignorando a entrada avulsa e buscando todas as entradas.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"nome_cluster\",\n            \"ano\",\n            \"mes\",\n            \"iqe\"\n        ],\n        [\n            \"cluster1\",\n            \"2022\",\n            \"7\",\n            \"0.900968\"\n        ],\n        [\n            \"cluster1\",\n            \"2022\",\n            \"8\",\n            \"0.876452\"\n        ],\n        [\n            \"cluster1\",\n            \"2022\",\n            \"9\",\n            \"0.878333\"\n        ],\n        [\n            \"cluster1\",\n            \"2022\",\n            \"10\",\n            \"0.883226\"\n        ],\n        [\n            \"cluster1\",\n            \"2022\",\n            \"11\",\n            \"0.934333\"\n        ],\n        [\n            \"cluster1\",\n            \"2022\",\n            \"12\",\n            \"0.985161\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"1\",\n            \"0.964516\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"2\",\n            \"0.966429\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"3\",\n            \"0.949355\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"4\",\n            \"0.945\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"5\",\n            \"0.897034\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"6\",\n            \"0.877222\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"7\",\n            \"0.864221\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"8\",\n            \"0.875951\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"9\",\n            \"0.874111\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"10\",\n            \"0.857278\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"11\",\n            \"0.876625\"\n        ],\n        [\n            \"cluster1\",\n            \"2023\",\n            \"12\",\n            \"0.863185\"\n        ]\n    ]\n}"},{"id":"ed43133f-b0f9-4c05-821d-af32ef2b61d6","name":"200-sucesso-parcial","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2022,\r\n  \"mes_fim\": 12,\r\n  \"ano_fim\": \"2023\",\r\n  \"lista_nomes_clusters\": [\"cluster1\", \"123\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-mes-cluster"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"nome_cluster\",\n            \"ano\",\n            \"mes\",\n            \"iqe\"\n        ],\n        [\n            \"cluster1\",\n            \"2022\",\n            \"7\",\n            \"0.900968\"\n        ],\n        [\n            \"cluster1\",\n            \"2022\",\n            \"8\",\n            \"0.876452\"\n        ],\n        [\n            \"cluster1\",\n            \"2022\",\n            \"9\",\n            \"0.878333\"\n        ],\n        [\n            \"cluster1\",\n            \"2022\",\n            \"10\",\n            \"0.883226\"\n        ],\n        [\n            \"cluster1\",\n            \"2022\",\n            \"11\",\n            \"0.934333\"\n        ],\n        [\n            \"cluster1\",\n            \"2022\",\n            \"12\",\n            \"0.985161\"\n        ],\n       [\n            \"cluster1\",\n            \"2023\",\n            \"12\",\n            \"0.863185\"\n        ]\n    ]\n}"},{"id":"c8d3bc77-620d-4745-98ce-4bdf1bf8b25d","name":"400-ano-deve-ser-2017-ou-posterior","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 202,\r\n  \"mes_fim\": 12,\r\n  \"ano_fim\": \"2023\",\r\n  \"lista_nomes_clusters\": [\"Luana Campagnolo\", \"123\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-mes-cluster"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[instance failed to match at least one required schema among 2]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"3cfe5377-97d6-4c9a-ad19-41652929321c","name":"400-excesso-de-dias","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2021,\r\n  \"mes_fim\": 12,\r\n  \"ano_fim\": \"2024\",\r\n  \"lista_nomes_clusters\": [\"cluster1\", \"cluster2\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-mes-cluster"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Requisicao mal-formada.\",\n    \"erro\": \"O periodo inserido contempla 1461 dias, excedendo assim o limite deste endpoint (744 dias)!\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"5920d2a6-e003-4d81-ae4d-38fc544208fe","name":"400-se-mes-string-deve-ter-formato-MM","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"eyJraWQiOiJGVkpuRzMwXC85cG9KV2twZ3E3QlJNcHEzZW5OTWxpWUpwN2NcL3ZcL3hNUUhZPSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI5NDU4ZDQ0OC05MDAxLTcwMTYtNGYwZS0yMWI5MjNkMmY1MDIiLCJjb2duaXRvOmdyb3VwcyI6WyJtb2FwaS1pbmRpY2F0b3JzIl0sImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xX1B6NkxqRno3VCIsImNvZ25pdG86dXNlcm5hbWUiOiJvbmVhYm92ZWFsbCIsIm9yaWdpbl9qdGkiOiI4NDQyOWVhOS1iZTMxLTQ1OTMtYTBjOC03YjA1YTk2MzNjNWQiLCJjb2duaXRvOnJvbGVzIjpbImFybjphd3M6aWFtOjozOTA1ODY5NjcxNDM6cm9sZVwvbW9hcGlJbmRpY2F0b3JzUm91dGVHYXRld2F5QWNjZXNzIl0sImF1ZCI6Ijd1aWJrdWlrODlxOTc3bzYxNWsycDk3cnBuIiwiZXZlbnRfaWQiOiJlZWY5ZGUxNi05ZjRjLTQ3MGEtYjcxZC01NzA3NDg3MmIxZDMiLCJ0b2tlbl91c2UiOiJpZCIsImF1dGhfdGltZSI6MTcxODMyODEwMiwibmlja25hbWUiOiJvbmVhYm92ZWFsbCIsImV4cCI6MTcxODMzNjY4NCwiaWF0IjoxNzE4MzMzMDg0LCJqdGkiOiI1ZDRhOWJmOC1iMTc1LTQwMjgtODUxZi1lOTdkODBkNWU1MjciLCJlbWFpbCI6InJhZmFlbC5jb3N0YUBtb2F2aS5jb20uYnIifQ.h1zeQ5fpA4_rVs_jv2_aEn41FJ46GNzYEDV8pFhaqVzie6Whe1G4aT57rBJ79wo5vqRKIotVnI5uHJpysfi6imgZUQ6e-z0KeIlvKEooMfk8_PdzQVcUvQA1Ipl_vBlaR2LvNHBmrxeF2Lbfc4_IpthoziadiuW0EY9Me91qf_CSlxx0LDZ4qBkJVa9wzYX5_PS-CwRlgIWvO-kQjqWLvX7bT3izNxW-ZDXlG_8UyPWDukDqsX1H_dqRVrvcLUY9Yv2dAsYTBQJmbYL22FycZlZvkUaEDZgg0N72kV_fwKRvzqhLraozrRhaQk0QNNbwtm8zOPzPMnXf_YlEFNrX2Q"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"1\",\r\n  \"ano_ini\": 2021,\r\n  \"mes_fim\": 12,\r\n  \"ano_fim\": \"2024\",\r\n  \"lista_nomes_clusters\": [\"Luana Campagnolo\", \"123\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-mes-cluster"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"170"},{"key":"Connection","value":"keep-alive"},{"key":"Date","value":"Fri, 14 Jun 2024 03:36:26 GMT"},{"key":"x-amzn-RequestId","value":"c18907bc-9772-4236-a0ea-9f2c0877ee3b"},{"key":"x-amzn-ErrorType","value":"BadRequestException"},{"key":"x-amz-apigw-id","value":"ZVodLEAYoAMETLg="},{"key":"X-Amzn-Trace-Id","value":"Root=1-666bbaba-5524c4af15db8e72396c36dc"},{"key":"X-Cache","value":"Error from cloudfront"},{"key":"Via","value":"1.1 24d78a59d537e88caa95647eaadfe050.cloudfront.net (CloudFront)"},{"key":"X-Amz-Cf-Pop","value":"GRU1-P4"},{"key":"X-Amz-Cf-Id","value":"sWO_C0McrSOrLOpl0G4DjTpApgn-CMQ4fq9mXb3KuSDvpGDLAinaiw=="}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[instance failed to match at least one required schema among 2]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"8ec5f65b-f4f1-4500-943e-f8a5dc8cfa9b","name":"400-data-inicial-nao-pode-ser-posterior-a-final","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2024,\r\n  \"mes_fim\": 11,\r\n  \"ano_fim\": \"2023\",\r\n  \"lista_nomes_clusters\": [\"cluster1\", \"123\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-mes-cluster"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Requisicao mal-formada.\",\n    \"erro\": \"A data de inicio deve ser anterior ou igual a data final para consulta!\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"}],"_postman_id":"097d9cd0-60f6-44e7-956c-d71fb6f4341e"},{"name":"iqes-mes-filial","id":"8dd208a0-6bf3-4ea6-ba1d-15fde066603e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"MM\" ou inteiro entre 1-12,\r\n  \"ano_ini\": \"AAAA\" ou integer (AAAA), entre 2017 e 2100,\r\n  \"mes_fim\": \"MM\" ou inteiro entre 1-12 posterior a \"mes_ini\",\r\n  \"ano_fim\": \"AAAA\" ou integer (AAAA), entre 2017 e 2100,\r\n  \"lista_cods_filiais\": lista com strings, numeros ou \\\"*\\\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-mes-filial","description":"<p>Este endpoint é usado para recuperar dados de IQE com base em parâmetros específicos relacionados a meses e anos para uma determinada filial.</p>\n<p><strong>Corpo da Requisição</strong></p>\n<ul>\n<li><p><strong>mes_ini</strong> (string ou integer): O mês inicial deve ser uma string no formato \"MM\" ou um número inteiro entre 1-12.</p>\n</li>\n<li><p><strong>ano_ini</strong> (string ou integer): O ano inicial deve ser uma string no formato \"AAAA\" ou um número inteiro entre 2017 e 2100.</p>\n</li>\n<li><p><strong>mes_fim</strong> (string ou integer): O mês final deve ser uma string no formato \"MM\" ou um número inteiro entre 1-12 após o mês inicial.</p>\n</li>\n<li><p><strong>ano_fim</strong> (string ou integer): O ano final deve ser uma string no formato \"AAAA\" ou um número inteiro entre 2017 e 2100.</p>\n<ul>\n<li><strong>OBSERVAÇÃO:</strong> O número total de dias correspondentes não pode exceder 12 meses cheios - 31*12 dias.</li>\n</ul>\n</li>\n<li><p><strong>lista_cods_filiais:</strong> array de strings, inteiros, ou \"*<em>\"</em> para solicitar dados de todas filiais.</p>\n</li>\n<li><p><strong>OPCIONAL pag</strong> (integer): O número da página dos resultados. Só tem utilidade se consultas paginadas forem necessárias.</p>\n</li>\n</ul>\n<p><strong>Resposta</strong></p>\n<ul>\n<li><p><strong>statusCode</strong> (integer): O código de status da resposta.</p>\n</li>\n<li><p><strong>mensagem</strong> (string): Qualquer mensagem relevante.</p>\n</li>\n<li><p><strong>erro</strong> (null): Informações de erro, se houver.</p>\n</li>\n<li><p><strong>ultimaPag</strong> (integer): O número da última página com dados referentes à consulta em questão. Se consultas subsequentes forem necessárias para buscar todos os dados, ultimaPag&gt;1.</p>\n</li>\n<li><p><strong>resultados</strong> (array de arrays): Os dados resultantes.</p>\n<ul>\n<li><p>A primeira lista aninhada é sempre [\"filial_cod\", \"ano\", \"mes\", \"iqe\"].</p>\n</li>\n<li><p>As demais conterão <em><strong>strings</strong></em> com valores respectivos, ex: [\"1916\", \"2024\", \"6\", \"0.6942\"] significaria que no mês de junho de 2024, a filial \"1916\" performou com um valor médio de 69,42% em seu IQE.</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["iqes-mes-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"97fc9c4c-6c64-4d3c-a507-521b1bb3958e","name":"200-sucesso-com-aviso","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": \"2023\",\r\n  \"mes_fim\": \"06\",\r\n  \"ano_fim\": 2023,\r\n  \"lista_cods_filiais\": [12, \"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-mes-filial"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Cuidado! A lista passada foi lista_cods_filiais=[12, '*']. Estamos ignorando o código avulso e buscando por todas filiais.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"filial_cod\",\n            \"ano\",\n            \"mes\",\n            \"iqe\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"1\",\n            \"0.885806\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"2\",\n            \"0.8775\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"3\",\n            \"0.892903\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"4\",\n            \"0.881\"\n        ]\n    ]\n}"},{"id":"7893d572-ba53-401c-8c57-fb46c3fa198d","name":"200-sucesso-completo","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": 3,\r\n  \"ano_ini\": \"2023\",\r\n  \"mes_fim\": \"06\",\r\n  \"ano_fim\": 2023,\r\n  \"lista_cods_filiais\": [1, 3, 5, \"7\", \"08\", \"009\", \"0010\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-mes-filial"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"filial_cod\",\n            \"ano\",\n            \"mes\",\n            \"iqe\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"1\",\n            \"0.885806\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"2\",\n            \"0.8775\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"3\",\n            \"0.892903\"\n        ],\n        [\n            \"0002\",\n            \"2023\",\n            \"4\",\n            \"0.881\"\n        ]\n    ]\n}"},{"id":"49a4878f-3d23-43d5-bb08-bd83ac78ceb4","name":"200-sucesso-parcial","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": 3,\r\n  \"ano_ini\": \"2023\",\r\n  \"mes_fim\": \"06\",\r\n  \"ano_fim\": 2023,\r\n  \"lista_cods_filiais\": [1, 3, \"00005\", \"7\", \"08\", \"009\", \"0010\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-mes-filial"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"filial_cod\",\n            \"ano\",\n            \"mes\",\n            \"iqe\"\n        ],\n        [\n            \"0003\",\n            \"2023\",\n            \"3\",\n            \"0.914516\"\n        ],\n        [\n            \"0003\",\n            \"2023\",\n            \"4\",\n            \"0.862333\"\n        ],\n        [\n            \"0003\",\n            \"2023\",\n            \"5\",\n            \"0.868065\"\n        ],\n        [\n            \"0003\",\n            \"2023\",\n            \"6\",\n            \"0.852\"\n        ]\n    ]\n}"},{"id":"afb349ee-0d0c-4d77-a68c-7c5d82d167b8","name":"400-ano-deve-ser-2017-ou-posterior","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": 3,\r\n  \"ano_ini\": \"2016\",\r\n  \"mes_fim\": \"06\",\r\n  \"ano_fim\": 2023,\r\n  \"lista_cods_filiais\": [1, 3, \"00005\", \"7\", \"08\", \"009\", \"0010\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-mes-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[instance failed to match at least one required schema among 2]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"4262b0ce-6f50-4f87-96d8-99653d190a77","name":"400-erro-excesso-de-dias","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": 11,\r\n  \"ano_ini\": \"2022\",\r\n  \"mes_fim\": \"12\",\r\n  \"ano_fim\": 2023,\r\n  \"lista_cods_filiais\": [1, 3, \"00005\", \"7\", \"08\", \"009\", \"0010\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-mes-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Requisicao mal-formada.\",\n    \"erro\": \"O periodo inserido contempla 426 dias, excedendo assim o limite deste endpoint (372 dias)!\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"3ffde33a-1be4-4075-a97a-3f8c04ab4436","name":"400-se-mes-string-deve-ter-dois-digitos","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"mes_ini\": \"01\",\r\n  \"ano_ini\": 2023,\r\n  \"mes_fim\": \"6\",\r\n  \"ano_fim\": 2023,\r\n  \"lista_cods_filiais\": [12, \"*\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/iqes-mes-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[instance failed to match at least one required schema among 2]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"}],"_postman_id":"8dd208a0-6bf3-4ea6-ba1d-15fde066603e"},{"name":"justificativas-dia-cluster","id":"21a11047-f42c-4c48-aa83-a42ea1bf6b81","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/justificativas-dia-cluster","description":"<h1 id=\"post-justificativas-dia-cluster\"><strong>POST</strong> <code>/justificativas-dia-cluster</code></h1>\n<p>Fornece <strong>justificativas</strong> agregadas <strong>por dia</strong> e <strong>por cluster</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Retornar as justificativas diárias de cada cluster em determinado intervalo.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong><br />• Limite de <strong>372 dias</strong> por consulta (≈ 12 × 31).  </p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/justificativas-dia-cluster</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <strong>obrigatório</strong> <code>moapi-token</code>.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data_ini</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data inicial no formato <code>AAAA-MM-DD</code> (2017 – 2100).</td>\n</tr>\n<tr>\n<td><code>data_fim</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data final no formato <code>AAAA-MM-DD</code> (2017 – 2100).</td>\n</tr>\n<tr>\n<td><code>lista_nomes_clusters</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Nomes de clusters. Para <strong>todos</strong>, use <code>[\"*\"]</code>. Não pode estar vazia.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página dos resultados (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-03-31\",\n  \"lista_nomes_clusters\": [\"cluster_A\", \"cluster_B\"],\n  \"pag\": 1\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP (200, 400, etc.).</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto breve sobre sucesso/falha.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes do erro (se houver).</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Última página disponível.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td>Lista de listas: <code>[cluster, data, justificativas]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <strong><code>200 OK</code></strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"nome_cluster\", \"data\", \"justificativas\"],\n    [\"cluster_A\", \"2024-01-15\", \"Manutencao programada na regiao.\"],\n    [\"cluster_A\", \"2024-01-16\", \"Interrupcao de fornecimento pela concessionaria.\"],\n    [\"cluster_B\", \"2024-02-10\", \"Feriado local.\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 373 dias, excedendo assim o limite deste endpoint (Doze meses cheios (372 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[detalhes da validação]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"401--token-expirado\"><code>401 – Token Expirado</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"message\": \"The incoming token has expired\" }\n</code></pre>\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes internos]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["justificativas-dia-cluster"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"21a11047-f42c-4c48-aa83-a42ea1bf6b81"},{"name":"justificativas-dia-colaborador","id":"9980e9ec-7859-4102-8d2e-f306e6ce5169","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/justificativas-dia-colaborador","description":"<h1 id=\"post-justificativas-dia-colaborador\"><strong>POST</strong> <code>/justificativas-dia-colaborador</code></h1>\n<p>Retorna <strong>justificativas</strong> (quantidade) <strong>por dia</strong> e <strong>por colaborador</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Obter o número de justificativas diárias para cada matrícula solicitada.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong><br />• Limite: <strong>10 dias corridos</strong>.<br />• Lista <code>[\"*\"]</code> devolve todos os colaboradores.</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/justificativas-dia-colaborador</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> <strong>obrigatório</strong>.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data_ini</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data inicial <code>AAAA-MM-DD</code>.</td>\n</tr>\n<tr>\n<td><code>data_fim</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data final <code>AAAA-MM-DD</code>.</td>\n</tr>\n<tr>\n<td><code>lista_matriculas_colaboradores</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Matrículas desejadas ou <code>[\"*\"]</code> para todas.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página dos resultados (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"data_ini\": \"2024-03-01\",\n  \"data_fim\": \"2024-03-08\",\n  \"lista_matriculas_colaboradores\": [\"matr456\", \"matrABC\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto de status.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes do erro.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Página final.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[matricula, data, n_justificativas]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <strong><code>200 OK</code></strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"matricula\", \"data\", \"justificativas\"],\n    [\"matr456\", \"2024-03-01\", \"1\"],\n    [\"matr456\", \"2024-03-02\", \"0\"],\n    [\"matrABC\", \"2024-03-01\", \"1\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Se o intervalo entre <code>data_ini</code> e <code>data_fim</code> exceder o limite de <strong>10 dias corridos</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 15 dias, excedendo assim o limite deste endpoint (Dez dias corridos (10 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Algum campo fora do esperado (formato de data inválido, lista vazia, item numérico em vez de string etc.).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[instance.lista_matriculas_colaboradores[0] is not of a type(s) string]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{ \"message\": \"The incoming token has expired\" }\n</code></pre>\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes internos]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["justificativas-dia-colaborador"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"9980e9ec-7859-4102-8d2e-f306e6ce5169"},{"name":"justificativas-dia-filial","id":"794bb1fe-2173-4f8c-833c-c809c32cd4da","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/justificativas-dia-filial","description":"<h1 id=\"post-justificativas-dia-filial\"><strong>POST</strong> <code>/justificativas-dia-filial</code></h1>\n<p>Fornece <strong>justificativas textuais</strong> por <strong>dia</strong> e <strong>filial</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Retornar as justificativas textuais diárias por filial dentro de um período.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong> limite de <strong>62 dias</strong> por consulta.</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/justificativas-dia-filial</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> obrigatório.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data_ini</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data inicial <code>AAAA-MM-DD</code>.</td>\n</tr>\n<tr>\n<td><code>data_fim</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data final <code>AAAA-MM-DD</code>.</td>\n</tr>\n<tr>\n<td><code>lista_cods_filiais</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Códigos de filial. <code>[\"*\"]</code> para todas. Mínimo de 1 item.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number | string</code></td>\n<td>Não</td>\n<td>Página (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"data_ini\": \"2024-04-01\",\n  \"data_fim\": \"2024-04-30\",\n  \"lista_cods_filiais\": [\"0001\", \"0005\"],\n  \"pag\": 1\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto curto.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes do erro.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Última página de resultados.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[filial_cod, data, justificativas]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <code>200 OK</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"filial_cod\", \"data\", \"justificativas\"],\n    [\"0001\", \"2024-04-10\", \"Feriado municipal e sistema fora do ar.\"],\n    [\"0005\", \"2024-04-15\", \"Equipe em treinamento externo.\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Quando o intervalo entre <code>data_ini</code> e <code>data_fim</code> ultrapassa <strong>62 dias</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 70 dias, excedendo assim o limite deste endpoint (Dois meses cheios (62 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Qualquer violação de formato ou regra de validação (data inválida, lista vazia, tipo de dado incorreto etc.).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[{\\\"validation\\\":\\\"minItems\\\",\\\"code\\\":\\\"too_small\\\",\\\"message\\\":\\\"Array must contain at least 1 element(s)\\\",\\\"path\\\":[\\\"lista_cods_filiais\\\"]}]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"message\": \"The incoming token has expired\"\n}\n</code></pre>\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"Falha na conexao com o banco de dados.\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["justificativas-dia-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"794bb1fe-2173-4f8c-833c-c809c32cd4da"},{"name":"justificativas-mes-cluster","id":"6295076b-770d-4bb4-8185-88c729c6fe00","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/justificativas-mes-cluster","description":"<h1 id=\"post-justificativas-mes-cluster\"><strong>POST</strong> <code>/justificativas-mes-cluster</code></h1>\n<p>Devolve <strong>justificativas</strong> por <strong>mês</strong> e <strong>cluster</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Retornar as justificativas mensais por cluster.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong> intervalo máximo de <strong>dois anos cheios</strong> (730 dias).</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/justificativas-mes-cluster</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> obrigatório.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>mes_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês inicial <code>MM</code> ou inteiro <code>1–12</code>.</td>\n</tr>\n<tr>\n<td><code>ano_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano inicial <code>AAAA</code> (≥ 2017).</td>\n</tr>\n<tr>\n<td><code>mes_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês final <code>MM</code> ou inteiro <code>1–12</code>.</td>\n</tr>\n<tr>\n<td><code>ano_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano final <code>AAAA</code> (≥ 2017).</td>\n</tr>\n<tr>\n<td><code>lista_nomes_clusters</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Nomes ou <code>[\"*\"]</code> para todos.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2022,\n  \"mes_fim\": 12,\n  \"ano_fim\": 2022,\n  \"lista_nomes_clusters\": [\"cluster_A\", \"cluster_B\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto de status.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Página final.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[nome_cluster, ano, mes, justificativas]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <code>200 OK</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"nome_cluster\", \"ano\", \"mes\", \"justificativas\"],\n    [\"cluster_A\", \"2022\", \"4\", \"Manutencao programada na regiao\"],\n    [\"cluster_A\", \"2022\", \"5\", \"Feriado prolongado impactou a leitura\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Quando o intervalo entre <code>(mes_ini, ano_ini)</code> e <code>(mes_fim, ano_fim)</code> excede <strong>730 dias</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2020,\n  \"mes_fim\": \"02\",\n  \"ano_fim\": 2022,\n  \"lista_nomes_clusters\": [\"cluster_A\"]\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 762 dias, excedendo assim o limite deste endpoint (Dois anos cheios (730 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Violação de formato, valor fora de faixa (mês &gt; 12, ano &lt; 2017), lista vazia, item duplicado, etc.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": \"1\",\n  \"ano_ini\": 2023,\n  \"mes_fim\": \"13\",\n  \"ano_fim\": 2023,\n  \"lista_nomes_clusters\": [\"cluster_A\", \"cluster_A\"]\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[{\\\"validation\\\":\\\"pattern\\\",\\\"code\\\":\\\"invalid_string\\\",\\\"message\\\":\\\"Invalid string value. Expected a value matching the pattern /^(0[1-9]|1[0-2])$/\\\",\\\"path\\\":[\\\"mes_fim\\\"]},{\\\"validation\\\":\\\"uniqueItems\\\",\\\"code\\\":\\\"not_unique\\\",\\\"message\\\":\\\"Array must not contain duplicate elements\\\",\\\"path\\\":[\\\"lista_nomes_clusters\\\"]}]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2023,\n  \"mes_fim\": \"01\",\n  \"ano_fim\": 2023,\n  \"lista_nomes_clusters\": [\"cluster_C\"]\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"message\": \"The incoming token has expired\"\n}\n</code></pre>\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2023,\n  \"mes_fim\": \"03\",\n  \"ano_fim\": 2023,\n  \"lista_nomes_clusters\": [\"*\"]\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"Falha na conexao com o banco de dados.\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["justificativas-mes-cluster"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"6295076b-770d-4bb4-8185-88c729c6fe00"},{"name":"justificativas-mes-colaborador","id":"d04a5953-4236-4ff2-955a-0a437517cb8e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/justificativas-mes-colaborador","description":"<h1 id=\"post-justificativas-mes-colaborador\"><strong>POST</strong> <code>/justificativas-mes-colaborador</code></h1>\n<p>Retorna <strong>justificativas totais</strong> por <strong>mês</strong> e <strong>colaborador</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Consultar a quantidade de justificativas mensais por matrícula.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong> limite: <strong>Um mês cheio (31 dias)</strong>.</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/justificativas-mes-colaborador</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> obrigatório.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>mes_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês inicial <code>MM</code> ou <code>1–12</code>.</td>\n</tr>\n<tr>\n<td><code>ano_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano inicial ≥ 2017.</td>\n</tr>\n<tr>\n<td><code>mes_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês final.</td>\n</tr>\n<tr>\n<td><code>ano_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano final.</td>\n</tr>\n<tr>\n<td><code>lista_matriculas_colaboradores</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Lista de matrículas. Mínimo de 1 item.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": 1,\n  \"ano_ini\": 2024,\n  \"mes_fim\": 1,\n  \"ano_fim\": 2024,\n  \"lista_matriculas_colaboradores\": [\"matr456\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto de status.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Página final.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[matricula, ano, mes, justificativas]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <code>200 OK</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"matricula\", \"ano\", \"mes\", \"justificativas\"],\n    [\"matr456\", \"2024\", \"1\", \"8\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Quando o intervalo entre <code>(mes_ini, ano_ini)</code> e <code>(mes_fim, ano_fim)</code> resulta em <strong>mais de 31 dias equivalentes</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": 1,\n  \"ano_ini\": 2024,\n  \"mes_fim\": 3,\n  \"ano_fim\": 2024,\n  \"lista_matriculas_colaboradores\": [\"matr456\"]\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 60 dias, excedendo assim o limite desta requisicao (Um mês cheio (31 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<hr />\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Campo fora do padrão, valor fora da faixa permitida (mês <code>&gt; 12</code>, ano <code>&lt; 2017</code>, lista vazia, item não-string, duplicado etc.).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_REQUEST\">{\n  \"mes_ini\": 1,\n  \"ano_ini\": 2024,\n  \"mes_fim\": 1,\n  \"ano_fim\": 2024,\n  \"lista_matriculas_colaboradores\": []\n}\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[{\\\"instancePath\\\":\\\"/lista_matriculas_colaboradores\\\",\\\"schemaPath\\\":\\\"#/properties/lista_matriculas_colaboradores/minItems\\\",\\\"keyword\\\":\\\"minItems\\\",\\\"params\\\":{\\\"limit\\\":1},\\\"message\\\":\\\"must NOT have fewer than 1 items\\\"}]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<hr />\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"message\": \"The incoming token has expired\"\n}\n</code></pre>\n<hr />\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-EXAMPLE_RESPONSE\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"Internal Server Error\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["justificativas-mes-colaborador"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"d04a5953-4236-4ff2-955a-0a437517cb8e"},{"name":"justificativas-mes-filial","id":"8931c62f-5f47-402d-b946-cf9b57021432","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{}"},"url":"https://moapi.escalamoavi.com.br/justificativas-mes-filial","description":"<h1 id=\"post-justificativas-mes-filial\"><strong>POST</strong> <code>/justificativas-mes-filial</code></h1>\n<p>Retorna <strong>justificativas</strong> por <strong>mês</strong> e <strong>filial</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Obter as justificativas mensais por filial.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong> intervalo máximo de <strong>12 meses</strong> (≈ 372 dias).</p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/justificativas-mes-filial</code><br /><strong>Método</strong>: <code>POST</code><br /><strong>Cabeçalho</strong>: <code>moapi-token</code> obrigatório.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>mes_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês inicial.</td>\n</tr>\n<tr>\n<td><code>ano_ini</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano inicial.</td>\n</tr>\n<tr>\n<td><code>mes_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Mês final.</td>\n</tr>\n<tr>\n<td><code>ano_fim</code></td>\n<td><code>string | int</code></td>\n<td>Sim</td>\n<td>Ano final.</td>\n</tr>\n<tr>\n<td><code>lista_cods_filiais</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Lista com códigos das filiais.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>string | number | null</code></td>\n<td>Não</td>\n<td>Página (default <code>1</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"mes_ini\": \"03\",\n  \"ano_ini\": 2023,\n  \"mes_fim\": 10,\n  \"ano_fim\": 2023,\n  \"lista_cods_filiais\": [\"0010\", \"0015\"]\n}\n</code></pre>\n<hr />\n<h2 id=\"corpo-da-resposta\"><strong>Corpo da Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código HTTP.</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto breve.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string | null</code></td>\n<td>Detalhes.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number | null</code></td>\n<td>Página final.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array | null</code></td>\n<td><code>[filial_cod, ano, mes, justificativas]</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200-ok\"><strong>Exemplo</strong> de Resposta <code>200 OK</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"filial_cod\", \"ano\", \"mes\", \"justificativas\"],\n    [\"0010\", \"2023\", \"3\", \"Aumento de demanda sazonal.\"],\n    [\"0015\", \"2023\", \"3\", \"Obras na regiao impactaram o fluxo de clientes.\"]\n  ]\n}\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400--excesso-de-dias\"><code>400 – Excesso de Dias</code></h3>\n<p>Quando o intervalo entre <code>(mes_ini, ano_ini)</code> e <code>(mes_fim, ano_fim)</code> ultrapassar <strong>12 meses (≈ 372 dias)</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 425 dias, excedendo assim o limite deste endpoint (Doze meses cheios (372 dias))!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<blockquote>\n<p><em>O número de dias exibido na mensagem varia conforme a requisição; o exemplo acima é ilustrativo.</em></p>\n</blockquote>\n<hr />\n<h3 id=\"400--erro-de-schema\"><code>400 – Erro de Schema</code></h3>\n<p>Qualquer campo fora do esperado (mês &gt; 12, ano &lt; 2017, lista vazia ou contendo valores de tipo errado, etc.).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[{\\\"validation\\\":\\\"minItems\\\",\\\"code\\\":\\\"too_small\\\",\\\"message\\\":\\\"Array must contain at least 1 element(s)\\\",\\\"path\\\":[\\\"lista_cods_filiais\\\"]}]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n<hr />\n<h3 id=\"401--token-expirado-ou-inválido\"><code>401 – Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"message\": \"The incoming token has expired\" }\n</code></pre>\n<hr />\n<h3 id=\"500--erro-interno\"><code>500 – Erro Interno</code></h3>\n<p>Falha inesperada no servidor.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"Internal Server Error\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n</code></pre>\n","urlObject":{"protocol":"https","path":["justificativas-mes-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"8931c62f-5f47-402d-b946-cf9b57021432"},{"name":"plan-banco-mais-dia-colaborador","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"e2ed3bff-c43f-4882-8870-4b92fa3dd0fd"}},{"listen":"prerequest","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"aadad7f3-8877-496c-9326-118ae547fd22"}}],"id":"716e1682-bead-4fa4-ac12-6d4c10ec53e0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-01-07\",\r\n  \"lista_matriculas_colaboradores\": [\"matricula123\", \"matriculaXYZ\"]\r\n}"},"url":"https://moapi.escalamoavi.com.br/plan-banco-mais-dia-colaborador","description":"<h1 id=\"post-plan-banco-mais-dia-colaborador\"><strong>POST</strong> <code>/plan-banco-mais-dia-colaborador</code></h1>\n<p>Fornece <strong>horas a mais</strong> planejadas por <strong>dia</strong> e colaborador.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Retornar as horas a mais planejadas, agregadas por dia e discriminadas por colaborador.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong><br /><strong>- assim como nos outros endpoints \"/plan-banco*\" os valores de saldo estão em minutos!</strong><br /><strong>- existe um limite de 10 dias corridos para obtenção dos lotes de dados.</strong> </p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/plan-banco-mais-dia-colaborador</code></p>\n<p><strong>Método</strong>: <code>POST</code></p>\n<p><strong>Cabeçalho</strong>: É <strong>obrigatório</strong> usar <code>moapi-token</code> com token válido.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data_ini</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data inicial no formato <code>AAAA-MM-DD</code> (ano de 2017 a 2100).</td>\n</tr>\n<tr>\n<td><code>data_fim</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data final no formato <code>AAAA-MM-DD</code> (ano de 2017 a 2100).</td>\n</tr>\n<tr>\n<td><code>lista_matriculas_colaboradores</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Matrículas cujas horas a mais são desejadas. Para <strong>todas</strong>, usar [\"*\"].  <br />Não pode estar vazia nem conter duplicados.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página dos resultados. Se omitido, assume <code>1</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo\"><strong>Exemplo</strong>:</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_matriculas_colaboradores\": [\"matricula123\", \"matriculaXYZ\"]\n}\n\n</code></pre>\n<hr />\n<h2 id=\"resposta\"><strong>Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código de status HTTP (ex: 200, 400, 401, 500).</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto breve sobre sucesso ou falha.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string</code> ou <code>null</code></td>\n<td>Em caso de erro, traz a descrição. Se não houver erro, retorna <code>null</code> ou vazio.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number</code> ou <code>null</code></td>\n<td>Página do último lote de resultados, se houver paginação. Caso haja erro, tende a <code>null</code>.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array</code> ou <code>null</code></td>\n<td>Em sucesso, retorna lista de listas: <code>[\"matricula\", \"data\", \"horas_mais\"]</code> + linhas de dados.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-sucesso-200\"><strong>Exemplo de Sucesso</strong> <strong><code>200</code></strong>:</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"matricula\", \"data\", \"horas_mais\"],\n    [\"matricula123\", \"2024-01-01\", \"360\"],\n    [\"matricula123\", \"2024-01-02\", \"420\"],\n    [\"matriculaXYZ\", \"2024-01-01\", \"300\"],\n    [\"matriculaXYZ\", \"2024-01-02\", \"480\"]\n  ]\n}\n\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400---excesso-de-dias\"><code>400 - Excesso de Dias</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla X dias, excedendo assim o limite deste endpoint!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n\n</code></pre>\n<h3 id=\"400---erro-de-schema\"><code>400 - Erro de Schema</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[detalhes do erro de validacao]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n\n</code></pre>\n<h3 id=\"401---token-expirado-ou-invalido\"><code>401 - Token Expirado ou Invalido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"The incoming token has expired\"\n}\n\n</code></pre>\n<h3 id=\"500---erro-interno\"><code>500 - Erro Interno</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes do erro interno]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["plan-banco-mais-dia-colaborador"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"9f4e9f8c-361f-4992-8c6b-268670596d83","name":"200-sucesso-exemplo","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_matriculas_colaboradores\": [\"matricula123\", \"matriculaXYZ\"]\n}"},"url":"https://moapi.escalamoavi.com.br/plan-banco-mais-dia-colaborador"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"matricula\", \"data\", \"horas_mais\"],\n    [\"matricula123\", \"2024-01-01\", \"360\"],\n    [\"matricula123\", \"2024-01-02\", \"420\"],\n    [\"matriculaXYZ\", \"2024-01-01\", \"300\"],\n    [\"matriculaXYZ\", \"2024-01-02\", \"480\"]\n  ]\n}"},{"id":"5f5f3276-2b21-4936-a0cb-5340afc98433","name":"400-excesso-dias","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-02-20\",\n  \"lista_matriculas_colaboradores\": [\"*\"]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://moapi.escalamoavi.com.br/plan-banco-mais-dia-colaborador?","protocol":"https","host":["moapi","escalamoavi","com","br"],"path":["plan-banco-mais-dia-colaborador"],"query":[{"key":null,"value":null}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisição malformada.\",\n  \"erro\": \"O período inserido contempla 50 dias, excedendo, assim, o limite deste endpoint (30 dias)!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"},{"id":"d3b138b5-57d3-451a-965a-04a69083af5e","name":"400-schema-invalido","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-AB\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_matriculas_colaboradores\": []\n}"},"url":"https://moapi.escalamoavi.com.br/plan-banco-mais-dia-colaborador"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[instance failed to match at least one required schema among 2]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"},{"id":"fff3278d-5899-42a5-8004-d6961c298f11","name":"401-token-expirou","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":""}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_matriculas_colaboradores\": [\"matricula1\"]\n}"},"url":"https://moapi.escalamoavi.com.br/plan-banco-mais-dia-colaborador"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"The incoming token has expired\"\n}"},{"id":"b0d81fd4-cc47-4d3d-ae33-13d2fad975ad","name":"500-erro-interno","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_matriculas_colaboradores\": [\"matricula1\"]\n}"},"url":"https://moapi.escalamoavi.com.br/plan-banco-mais-dia-colaborador"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[mensagem interna de erro]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"}],"_postman_id":"716e1682-bead-4fa4-ac12-6d4c10ec53e0"},{"name":"plan-banco-mais-dia-filial","id":"0c5a5451-fcbd-48b3-bae3-133836097ecf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-mais-dia-filial","description":"<h1 id=\"horas-a-mais-planejadas-por-dia-e-filial\">Horas a Mais Planejadas por Dia e Filial</h1>\n<p>Este endpoint retorna as horas \"a mais\" planejadas por dia e filial, baseadas no banco de horas.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong><br /><strong>- assim como nos outros endpoints \"/plan-banco*\" os valores de saldo estão em minutos!</strong><br /><strong>- existe um limite de 10 dias corridos para obtenção dos lotes de dados.</strong> </p>\n</blockquote>\n<p><strong>Método:</strong> <code>POST</code></p>\n<p><strong>Cabeçalho da Requisição:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>moapi-token: &lt;seu-IdToken&gt;\n\n</code></pre><p><strong>Parâmetros da Requisição:</strong></p>\n<ul>\n<li><p><strong><code>pag</code></strong>: (Integer, opcional) Número da página para paginação. Usado para grandes conjuntos de resultados. Valor padrão: 1.</p>\n</li>\n<li><p><strong><code>data_ini</code></strong>: (String, obrigatório) Data inicial no formato \"AAAA-MM-DD\". Anos aceitos de 2017 a 2100.</p>\n</li>\n<li><p><strong><code>data_fim</code></strong>: (String, obrigatório) Data final no formato \"AAAA-MM-DD\". Anos aceitos de 2017 a 2100.</p>\n</li>\n<li><p><strong><code>lista_cods_filiais</code></strong>: (Array de Strings, obrigatório) Lista de códigos de filial. Para todas as filiais, use [\"*\"]</p>\n</li>\n</ul>\n<p><strong>Observações:</strong></p>\n<ul>\n<li><p>Os códigos de filial na <code>lista_cods_filiais</code> devem ser strings.</p>\n</li>\n<li><p>O endpoint utiliza paginação para grandes conjuntos de dados. Use o parâmetro <code>pag</code> para acessar as demais páginas.</p>\n</li>\n<li><p>Assegure-se de que o <code>moapi-token</code> fornecido no cabeçalho seja válido e não esteja expirado.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["plan-banco-mais-dia-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"5b0f9158-34f7-4cc5-8508-c225c093e91b","name":"200-sucesso","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-mais-dia-filial"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"filial_cod\", \"data\", \"horas_mais\"],\n    [\"0001\", \"2024-01-01\", \"480\"],\n    [\"0001\", \"2024-01-02\", \"420\"],\n    [\"0002\", \"2024-01-01\", \"510\"],\n    [\"0002\", \"2024-01-02\", \"450\"]\n    // ... mais resultados\n  ]\n}"},{"id":"41c5fb93-572d-41fc-9a11-07f9df1f5447","name":"400-requisicao-malformada","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-12\",\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-mais-dia-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisição malformada.\",\n  \"erro\": \"O periodo inserido contempla X dias, excedendo assim o limite deste endpoint (Y dias)!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"},{"id":"2887c5c6-043a-48a1-96a6-11b7797efca0","name":"400-requisicao-malformada-schema","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-011-01\",\n  \"data_fim\": \"20224-301-07\",\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-mais-dia-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[descrição do erro de schema]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"11da1bec-6702-41f1-b883-d12b3d21dc8b","name":"401-nao-autorizado","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":""}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-mais-dia-filial"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"unauthorized\"\n}"},{"id":"8baf67ed-708d-4d76-93a2-3a8c1d0d1fb0","name":"500-erro-interno","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-mais-dia-filial"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisição.\",\n  \"erro\": \"[descrição do erro]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"}],"_postman_id":"0c5a5451-fcbd-48b3-bae3-133836097ecf"},{"name":"plan-banco-mais-mes-colaborador","id":"39c97a38-498e-4e72-aad4-aa773f533e2d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": 12,\n  \"ano_fim\": \"2024\",\n  \"lista_matriculas_colaboradores\": [\"*\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-mais-mes-colaborador","description":"<h1 id=\"post-plan-banco-mais-mes-colaborador\"><strong>POST</strong> <code>/plan-banco-mais-mes-colaborador</code></h1>\n<p>Fornece as <strong>horas a mais</strong> planejadas, agregadas por <strong>mês</strong> e <strong>colaborador</strong>.</p>\n<hr />\n<h3 id=\"objetivo\"><strong>Objetivo</strong></h3>\n<p>Retornar a soma das horas a mais planejadas para cada colaborador, mês a mês, com base no banco de horas.</p>\n<blockquote>\n<p><strong>IMPORTANTE</strong>: assim como nos outros endpoints /plan-banco*, os valores de saldo aqui também estão em <strong>minutos</strong>. </p>\n</blockquote>\n<p><strong>URL</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>https://moapi.escalamoavi.com.br/plan-banco-mais-mes-colaborador\n\n</code></pre><p><strong>Método</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST\n\n</code></pre><p><strong>Cabeçalho</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>moapi-token: &lt;seu-IdToken&gt;\n\n</code></pre><hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Número da página dos resultados. Se omitido, assume <code>1</code>. Útil apenas se houver paginação.</td>\n</tr>\n<tr>\n<td><code>mes_ini</code></td>\n<td>`string</td>\n<td>int`</td>\n<td>Sim</td>\n</tr>\n<tr>\n<td><code>ano_ini</code></td>\n<td>`string</td>\n<td>int`</td>\n<td>Sim</td>\n</tr>\n<tr>\n<td><code>mes_fim</code></td>\n<td>`string</td>\n<td>int`</td>\n<td>Sim</td>\n</tr>\n<tr>\n<td><code>ano_fim</code></td>\n<td>`string</td>\n<td>int`</td>\n<td>Sim</td>\n</tr>\n<tr>\n<td><code>lista_matriculas_colaboradores</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Matrículas cujas horas a mais são desejadas. Para <strong>todas</strong>, usar [\"*\"].  <br />Não pode estar vazia nem conter duplicados.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"pag\": 1,\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": 12,\n  \"ano_fim\": \"2024\",\n  \"lista_matriculas_colaboradores\": [\"123\", \"456\"]\n}\n\n</code></pre>\n<hr />\n<h2 id=\"resposta\"><strong>Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código de status HTTP (ex: 200, 400, 401, 500).</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto breve sobre sucesso ou falha.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td>`string</td>\n<td>null`</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td>`number</td>\n<td>null`</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td>`array</td>\n<td>null`</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200---sucesso\"><strong>Exemplo</strong> de Resposta <strong><code>200 - Sucesso</code></strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"matricula\", \"ano\", \"mes\", \"horas_mais\"],\n    [\"colab1\", \"2024\", \"1\", \"480\"],\n    [\"colab1\", \"2024\", \"2\", \"420\"],\n    [\"colab2\", \"2024\", \"1\", \"360\"],\n    [\"colab2\", \"2024\", \"2\", \"300\"]\n  ]\n}\n\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400---excesso-de-dias\"><code>400 - Excesso de Dias</code></h3>\n<p>Se o período entre <code>(mes_ini, ano_ini)</code> e <code>(mes_fim, ano_fim)</code> extrapolar o limite suportado.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla X dias, excedendo assim o limite deste endpoint!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n\n</code></pre>\n<h3 id=\"400---erro-de-schema\"><code>400 - Erro de Schema</code></h3>\n<p>Se algum campo estiver fora do formato esperado (ex. <code>mes_fim = 13</code> ou <code>ano_fim = 1900</code>).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[detalhes do erro de validacao]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n\n</code></pre>\n<h3 id=\"401---token-expirado-ou-inválido\"><code>401 - Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"The incoming token has expired\"\n}\n\n</code></pre>\n<h3 id=\"500---erro-interno\"><code>500 - Erro Interno</code></h3>\n<p>Problema interno no servidor ao processar a requisição.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes do erro interno]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["plan-banco-mais-mes-colaborador"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"39c97a38-498e-4e72-aad4-aa773f533e2d"},{"name":"plan-banco-mais-mes-filial","id":"827336dc-ae1d-4044-920f-e99554d335a7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": \"12\",\n  \"ano_fim\": 2024,\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-mais-mes-filial","description":"<h1 id=\"horas-a-mais-planejadas-por-mês-e-filial\">Horas a Mais Planejadas por Mês e Filial</h1>\n<p>Este endpoint retorna as horas \"a mais\" planejadas, agregadas por mês e filial, com base nos dados do banco de horas.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong><br /><strong>- assim como nos outros endpoints \"/plan-banco*\" os valores de saldo estão em minutos!</strong> </p>\n</blockquote>\n<p><strong>Método:</strong> <code>POST</code></p>\n<p><strong>Cabeçalho da Requisição:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>moapi-token: &lt;seu-IdToken&gt;\n\n</code></pre><p><strong>Parâmetros da Requisição:</strong></p>\n<ul>\n<li><p><strong><code>pag</code></strong>: (Integer, opcional) Número da página para paginação. Usado para grandes conjuntos de resultados. Valor padrão: 1.</p>\n</li>\n<li><p><strong><code>mes_ini</code></strong>: (String, obrigatório) Mês inicial no formato \"MM\".</p>\n</li>\n<li><p><strong><code>ano_ini</code></strong>: (Integer, obrigatório) Ano inicial (AAAA).</p>\n</li>\n<li><p><strong><code>mes_fim</code></strong>: (String, obrigatório) Mês final no formato \"MM\".</p>\n</li>\n<li><p><strong><code>ano_fim</code></strong>: (Integer, obrigatório) Ano final (AAAA).</p>\n</li>\n<li><p><strong><code>lista_cods_filiais</code></strong>: (Array de Strings, obrigatório) Lista de códigos de filial. Para todas as filiais, use [\"*\"].</p>\n</li>\n</ul>\n<p><strong>Observações:</strong></p>\n<ul>\n<li><p>Os códigos de filial na <code>lista_cods_filiais</code> devem ser strings.</p>\n</li>\n<li><p>O endpoint utiliza paginação para grandes conjuntos de dados. Use o parâmetro <code>pag</code> para acessar as demais páginas.</p>\n</li>\n<li><p>Assegure-se de que o <code>moapi-token</code> fornecido no cabeçalho seja válido e não esteja expirado.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["plan-banco-mais-mes-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"ab2b27b6-741c-4e15-8628-20090a5a4db4","name":"200-sucesso","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": \"12\",\n  \"ano_fim\": 2024,\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-mais-mes-filial"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"filial_cod\", \"ano\", \"mes\", \"horas_mais\"],\n    [\"0001\", \"2024\", \"01\", \"2400\"],\n    [\"0001\", \"2024\", \"02\", \"2100\"],\n    [\"0002\", \"2024\", \"01\", \"2550\"],\n    [\"0002\", \"2024\", \"02\", \"2250\"]\n    // ... mais resultados\n  ]\n}"},{"id":"aeaec9fa-ffc5-407d-9e8c-a727eb13cf5d","name":"400-requisicao-malformada","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"mes_ini\": \"13\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": \"12\",\n  \"ano_fim\": 2024,\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-mais-mes-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisição malformada.\",\n  \"erro\": \"Mês inválido.\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"},{"id":"00fbeefc-3294-427c-9083-bf59d034c7ca","name":"401-nao-autorizado","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":""}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": \"12\",\n  \"ano_fim\": 2024,\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-mais-mes-filial"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"unauthorized\"\n}"},{"id":"c5557fc5-83d2-4d57-bb77-d3dc6b828118","name":"500-erro-interno","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": \"12\",\n  \"ano_fim\": 2024,\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-mais-mes-filial"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisição.\",\n  \"erro\": \"[descrição do erro]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"}],"_postman_id":"827336dc-ae1d-4044-920f-e99554d335a7"},{"name":"plan-banco-menos-dia-colaborador","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"dfb26416-047b-4c28-87ad-cfc6c89e607e"}},{"listen":"prerequest","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"3132ef90-f2ae-4565-bfd9-a75e5ec80aa0"}}],"id":"092dff6f-71b2-430d-b5dd-e28ae0d52918","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-01-07\",\r\n  \"lista_matriculas_colaboradores\": [\"matricula123\", \"matriculaXYZ\"]\r\n}"},"url":"https://moapi.escalamoavi.com.br/plan-banco-menos-dia-colaborador","description":"<h1 id=\"post-plan-banco-menos-dia-colaborador\"><strong>POST</strong> <code>/plan-banco-menos-dia-colaborador</code></h1>\n<p>Fornece <strong>horas a menos</strong> planejadas por <strong>dia</strong> e colaborador.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Retornar o saldo de horas a menos planejadas, agregadas por dia e discriminadas por colaborador.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong><br /><strong>- assim como nos outros endpoints \"/plan-banco*\" os valores de saldo estão em minutos!</strong><br /><strong>- existe um limite de 10 dias corridos para obtenção dos lotes de dados.</strong> </p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/plan-banco-menos-dia-colaborador</code></p>\n<p><strong>Método</strong>: <code>POST</code></p>\n<p><strong>Cabeçalho</strong>: É <strong>obrigatório</strong> usar <code>moapi-token</code> com token válido.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data_ini</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data inicial no formato <code>AAAA-MM-DD</code> (ano de 2017 a 2100).</td>\n</tr>\n<tr>\n<td><code>data_fim</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data final no formato <code>AAAA-MM-DD</code> (ano de 2017 a 2100).</td>\n</tr>\n<tr>\n<td><code>lista_matriculas_colaboradores</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Matrículas cujas horas a menos são desejadas. Para <strong>todas</strong>, usar [\"*\"].  <br />Não pode estar vazia nem conter duplicados.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página dos resultados. Se omitido, assume <code>1</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo\"><strong>Exemplo</strong>:</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_matriculas_colaboradores\": [\"matricula123\", \"matriculaXYZ\"]\n}\n\n</code></pre>\n<hr />\n<h2 id=\"resposta\"><strong>Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código de status HTTP (ex: 200, 400, 401, 500).</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto breve sobre sucesso ou falha.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string</code> ou <code>null</code></td>\n<td>Em caso de erro, traz a descrição. Se não houver erro, retorna <code>null</code> ou vazio.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number</code> ou <code>null</code></td>\n<td>Página do último lote de resultados, se houver paginação. Caso haja erro, tende a <code>null</code>.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array</code> ou <code>null</code></td>\n<td>Em sucesso, retorna lista de listas: <code>[\"matricula\", \"data\", \"horas_menos\"]</code> + linhas de dados.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-sucesso-200\"><strong>Exemplo de Sucesso</strong> <strong><code>200</code></strong>:</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"matricula\", \"data\", \"horas_menos\"],\n    [\"matricula123\", \"2024-01-01\", \"-60\"],\n    [\"matricula123\", \"2024-01-02\", \"-120\"],\n    [\"matriculaXYZ\", \"2024-01-01\", \"-30\"],\n    [\"matriculaXYZ\", \"2024-01-02\", \"-90\"]\n  ]\n}\n\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400---excesso-de-dias\"><code>400 - Excesso de Dias</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla X dias, excedendo assim o limite deste endpoint!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n\n</code></pre>\n<h3 id=\"400---erro-de-schema\"><code>400 - Erro de Schema</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[detalhes do erro de validacao]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n\n</code></pre>\n<h3 id=\"401---token-expirado-ou-invalido\"><code>401 - Token Expirado ou Invalido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"The incoming token has expired\"\n}\n\n</code></pre>\n<h3 id=\"500---erro-interno\"><code>500 - Erro Interno</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes do erro interno]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["plan-banco-menos-dia-colaborador"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"5a971192-d456-48b0-8458-226c945c7da4","name":"200-sucesso-exemplo","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_matriculas_colaboradores\": [\"matricula123\", \"matriculaXYZ\"]\n}"},"url":"https://moapi.escalamoavi.com.br/plan-banco-menos-dia-colaborador"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"matricula\", \"data\", \"horas_menos\"],\n    [\"matricula123\", \"2024-01-01\", \"-60\"],\n    [\"matricula123\", \"2024-01-02\", \"-120\"],\n    [\"matriculaXYZ\", \"2024-01-01\", \"-30\"],\n    [\"matriculaXYZ\", \"2024-01-02\", \"-90\"]\n  ]\n}"},{"id":"1393b957-421f-49cc-9007-bb57d15bc7e7","name":"400-excesso-dias","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-02-20\",\n  \"lista_matriculas_colaboradores\": [\"*\"]\n}"},"url":"https://moapi.escalamoavi.com.br/plan-banco-menos-dia-colaborador"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 50 dias, excedendo assim o limite deste endpoint!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"},{"id":"c91dfbbc-95f6-48ef-9be4-f416fafe73f2","name":"400-schema-invalido","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-AB\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_matriculas_colaboradores\": []\n}"},"url":"https://moapi.escalamoavi.com.br/plan-banco-menos-dia-colaborador"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[instance failed to match at least one required schema among 2]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"},{"id":"b7d22190-ccba-49b9-a55a-ab83f9e91c59","name":"401-token-expirou","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":""}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_matriculas_colaboradores\": [\"matricula1\"]\n}"},"url":"https://moapi.escalamoavi.com.br/plan-banco-menos-dia-colaborador"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"The incoming token has expired\"\n}"},{"id":"0d722a85-376c-49cc-931e-531d444a3da2","name":"500-erro-interno","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_matriculas_colaboradores\": [\"matricula1\"]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://moapi.escalamoavi.com.br/plan-banco-menos-dia-colaborador?","protocol":"https","host":["moapi","escalamoavi","com","br"],"path":["plan-banco-menos-dia-colaborador"],"query":[{"key":null,"value":null}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisição.\",\n  \"erro\": \"[detalhes do erro interno]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"}],"_postman_id":"092dff6f-71b2-430d-b5dd-e28ae0d52918"},{"name":"plan-banco-menos-dia-filial","id":"148c8c7c-0d88-4e31-9ddc-2488e9f16a39","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-menos-dia-filial","description":"<h1 id=\"horas-a-menos-planejadas-por-dia-e-filial\">Horas a Menos Planejadas por Dia e Filial</h1>\n<p>Este endpoint retorna as horas \"a menos\" planejadas por dia e filial, baseadas no banco de horas.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong><br /><strong>- assim como nos outros endpoints \"/plan-banco*\" os valores de saldo estão em minutos!</strong><br /><strong>- existe um limite de 10 dias corridos para obtenção dos lotes de dados.</strong> </p>\n</blockquote>\n<p><strong>Método:</strong> <code>POST</code></p>\n<p><strong>Cabeçalho da Requisição:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>moapi-token: &lt;seu-IdToken&gt;\n\n</code></pre><p><strong>Parâmetros da Requisição:</strong></p>\n<ul>\n<li><p><strong><code>pag</code></strong>: (Integer, opcional) Número da página para paginação. Usado para grandes conjuntos de resultados. Valor padrão: 1.</p>\n</li>\n<li><p><strong><code>data_ini</code></strong>: (String, obrigatório) Data inicial no formato \"AAAA-MM-DD\". Anos aceitos de 2017 a 2100.</p>\n</li>\n<li><p><strong><code>data_fim</code></strong>: (String, obrigatório) Data final no formato \"AAAA-MM-DD\". Anos aceitos de 2017 a 2100.</p>\n</li>\n<li><p><strong><code>lista_cods_filiais</code></strong>: (Array de Strings, obrigatório) Lista de códigos de filial. Para todas as filiais, use [\"*\"].</p>\n</li>\n</ul>\n<p><strong>Observações:</strong></p>\n<ul>\n<li><p>Os códigos de filial na <code>lista_cods_filiais</code> devem ser strings.</p>\n</li>\n<li><p>O endpoint utiliza paginação para grandes conjuntos de dados. Use o parâmetro <code>pag</code> para acessar as demais páginas.</p>\n</li>\n<li><p>Assegure-se de que o <code>moapi-token</code> fornecido no cabeçalho seja válido e não esteja expirado.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["plan-banco-menos-dia-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"30e65778-d1c3-439c-b004-3d277270d1a9","name":"200-sucesso","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-menos-dia-filial"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"filial_cod\", \"data\", \"horas_menos\"],\n    [\"0001\", \"2024-01-01\", \"-60\"],\n    [\"0001\", \"2024-01-02\", \"-120\"],\n    [\"0002\", \"2024-01-01\", \"-30\"],\n    [\"0002\", \"2024-01-02\", \"-90\"]\n    // ... mais resultados\n  ]\n}"},{"id":"220dc31f-179a-4657-942e-c34567e98197","name":"400-requisicao-malformada","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-13-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-menos-dia-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisição malformada.\",\n  \"erro\": \"Data inválida.\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"},{"id":"aba12edd-f7b3-4f22-836f-841be4a7e67b","name":"400-requisicao-malformada-schema","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"202-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_cods_filiais\": [1, 2]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-menos-dia-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[descrição do erro de schema]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"ec233d29-1cfe-4668-bfb1-a1331cb6b15c","name":"401-nao-autorizado","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":""}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-menos-dia-filial"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"unauthorized\"\n}"},{"id":"7003fa55-6cac-474e-a30c-4567ec82a9b5","name":"500-erro-interno","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-menos-dia-filial"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisição.\",\n  \"erro\": \"[descrição do erro]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"}],"_postman_id":"148c8c7c-0d88-4e31-9ddc-2488e9f16a39"},{"name":"plan-banco-menos-mes-colaborador","id":"89836a62-d8b9-46d3-9043-973a427c1dfd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": 12,\n  \"ano_fim\": 2024,\n  \"lista_matriculas_colaboradores\": [\"*\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-menos-mes-colaborador","description":"<h1 id=\"post-plan-banco-menos-mes-colaborador\"><strong>POST</strong> <code>/plan-banco-menos-mes-colaborador</code></h1>\n<p>Fornece as <strong>horas a menos</strong> planejadas, agregadas por <strong>mês</strong> e <strong>colaborador</strong>.</p>\n<hr />\n<h3 id=\"objetivo\"><strong>Objetivo</strong></h3>\n<p>Retornar a soma das horas a menos planejadas para cada colaborador, mês a mês, com base no banco de horas.</p>\n<blockquote>\n<p><strong>IMPORTANTE</strong>: assim como nos outros endpoints /plan-banco*, os valores de saldo aqui também estão em <strong>minutos</strong>. </p>\n</blockquote>\n<p><strong>URL</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>https://moapi.escalamoavi.com.br/plan-banco-menos-mes-colaborador\n\n</code></pre><p><strong>Método</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST\n\n</code></pre><p><strong>Cabeçalho</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>moapi-token: &lt;seu-IdToken&gt;\n\n</code></pre><hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Número da página dos resultados. Se omitido, assume <code>1</code>. Útil apenas se houver paginação.</td>\n</tr>\n<tr>\n<td><code>mes_ini</code></td>\n<td>`string</td>\n<td>int`</td>\n<td>Sim</td>\n</tr>\n<tr>\n<td><code>ano_ini</code></td>\n<td>`string</td>\n<td>int`</td>\n<td>Sim</td>\n</tr>\n<tr>\n<td><code>mes_fim</code></td>\n<td>`string</td>\n<td>int`</td>\n<td>Sim</td>\n</tr>\n<tr>\n<td><code>ano_fim</code></td>\n<td>`string</td>\n<td>int`</td>\n<td>Sim</td>\n</tr>\n<tr>\n<td><code>lista_matriculas_colaboradores</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Matrículas cujas horas a menos são desejadas. Para <strong>todas</strong>, usar [\"*\"].  <br />Não pode estar vazia nem conter duplicados.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"pag\": 1,\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": 12,\n  \"ano_fim\": \"2024\",\n  \"lista_matriculas_colaboradores\": [\"999\", \"1234\"]\n}\n\n</code></pre>\n<hr />\n<h2 id=\"resposta\"><strong>Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código de status HTTP (ex: 200, 400, 401, 500).</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto breve sobre sucesso ou falha.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td>`string</td>\n<td>null`</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td>`number</td>\n<td>null`</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td>`array</td>\n<td>null`</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200---sucesso\"><strong>Exemplo</strong> de Resposta <strong><code>200 - Sucesso</code></strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"matricula\", \"ano\", \"mes\", \"horas_menos\"],\n    [\"colab1\", \"2024\", \"1\", \"-480\"],\n    [\"colab1\", \"2024\", \"2\", \"-420\"],\n    [\"colab2\", \"2024\", \"1\", \"-360\"],\n    [\"colab2\", \"2024\", \"2\", \"-300\"]\n  ]\n}\n\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400---excesso-de-dias\"><code>400 - Excesso de Dias</code></h3>\n<p>Se o período entre <code>(mes_ini, ano_ini)</code> e <code>(mes_fim, ano_fim)</code> extrapolar o limite suportado.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla X dias, excedendo assim o limite deste endpoint!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n\n</code></pre>\n<h3 id=\"400---erro-de-schema\"><code>400 - Erro de Schema</code></h3>\n<p>Se algum campo estiver fora do formato esperado (ex. <code>mes_fim = 13</code> ou <code>ano_fim = 1900</code>).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[detalhes do erro de validacao]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n\n</code></pre>\n<h3 id=\"401---token-expirado-ou-inválido\"><code>401 - Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"The incoming token has expired\"\n}\n\n</code></pre>\n<h3 id=\"500---erro-interno\"><code>500 - Erro Interno</code></h3>\n<p>Problema interno no servidor ao processar a requisição.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes do erro interno]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["plan-banco-menos-mes-colaborador"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"89836a62-d8b9-46d3-9043-973a427c1dfd"},{"name":"plan-banco-menos-mes-filial","id":"2115c36a-39e4-411c-9e91-b2960c817c00","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": \"12\",\n  \"ano_fim\": 2024,\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-menos-mes-filial","description":"<h1 id=\"horas-a-menos-planejadas-por-mês-e-filial\">Horas a Menos Planejadas por Mês e Filial</h1>\n<p>Este endpoint retorna as horas \"a menos\" planejadas, agregadas por mês e filial, com base nos dados do banco de horas.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong><br /><strong>- assim como nos outros endpoints \"/plan-banco*\" os valores de saldo estão em minutos!</strong> </p>\n</blockquote>\n<p><strong>Método:</strong> <code>POST</code></p>\n<p><strong>Cabeçalho da Requisição:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>moapi-token: &lt;seu-IdToken&gt;\n\n</code></pre><p><strong>Parâmetros da Requisição:</strong></p>\n<ul>\n<li><p><strong><code>pag</code></strong>: (Integer, opcional) Número da página para paginação. Usado para grandes conjuntos de resultados. Valor padrão: 1.</p>\n</li>\n<li><p><strong><code>mes_ini</code></strong>: (String ou Integer, obrigatório) Mês inicial no formato \"MM\" ou um número inteiro representando o mês.</p>\n</li>\n<li><p><strong><code>ano_ini</code></strong>: (String ou Integer, obrigatório) Ano inicial no formato \"AAAA\" ou um número inteiro representando o ano.</p>\n</li>\n<li><p><strong><code>mes_fim</code></strong>: (String ou Integer, obrigatório) Mês final no formato \"MM\" ou um número inteiro representando o mês.</p>\n</li>\n<li><p><strong><code>ano_fim</code></strong>: (String ou Integer, obrigatório) Ano final no formato \"AAAA\" ou um número inteiro representando o ano.</p>\n</li>\n<li><p><strong><code>lista_cods_filiais</code></strong>: (Array de Strings, obrigatório) Lista de códigos de filial. Para todas as filiais, use [\"*\"].</p>\n</li>\n</ul>\n<p><strong>Observações:</strong></p>\n<ul>\n<li><p>Os códigos de filial na <code>lista_cods_filiais</code> devem ser strings.</p>\n</li>\n<li><p>O endpoint utiliza paginação para grandes conjuntos de dados. Use o parâmetro <code>pag</code> para acessar as demais páginas.</p>\n</li>\n<li><p>Assegure-se de que o <code>moapi-token</code> fornecido no cabeçalho seja válido e não esteja expirado.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["plan-banco-menos-mes-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"9ccd9d92-c297-474e-bb33-1687333ae47a","name":"200-sucesso-string","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": \"12\",\n  \"ano_fim\": 2024,\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-menos-mes-filial"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"filial_cod\", \"ano\", \"mes\", \"horas_menos\"],\n    [\"0001\", \"2024\", \"01\", \"-300\"],\n    [\"0001\", \"2024\", \"02\", \"-420\"],\n    [\"0002\", \"2024\", \"01\", \"-150\"],\n    [\"0002\", \"2024\", \"02\", \"-270\"]\n    // ... mais resultados\n  ]\n}"},{"id":"ccc083d5-c771-4a8e-93b8-0c45125d05ab","name":"200-sucesso-integer","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"mes_ini\": 1,\n  \"ano_ini\": 2024,\n  \"mes_fim\": 12,\n  \"ano_fim\": 2024,\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-menos-mes-filial"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"filial_cod\", \"ano\", \"mes\", \"horas_menos\"],\n    [\"0001\", \"2024\", \"01\", \"-300\"],\n    [\"0001\", \"2024\", \"02\", \"-420\"],\n    [\"0002\", \"2024\", \"01\", \"-150\"],\n    [\"0002\", \"2024\", \"02\", \"-270\"]\n  ]\n}"},{"id":"6e63f886-9d4f-4552-a5b4-ac3d6ced0689","name":"400-requisicao-malformada","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": \"13\",\n  \"ano_fim\": 2024,\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-menos-mes-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisição malformada.\",\n  \"erro\": \"Mês inválido.\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"},{"id":"b71a1e89-69c4-42bf-a2ed-7794988d6494","name":"401-nao-autorizado","originalRequest":{"method":"POST","header":[{"key":"","value":""}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": \"12\",\n  \"ano_fim\": 2024,\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-menos-mes-filial"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"unauthorized\"\n}"},{"id":"1d56cabd-2074-4548-bdc5-069bf1d4a7c1","name":"500-erro-interno","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": \"12\",\n  \"ano_fim\": 2024,\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-menos-mes-filial"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisição.\",\n  \"erro\": \"[descrição do erro]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"}],"_postman_id":"2115c36a-39e4-411c-9e91-b2960c817c00"},{"name":"plan-banco-saldo-dia-colaborador","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"f954565a-9d0b-409b-b470-495ccf4248c3"}},{"listen":"prerequest","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"7e492292-1b2e-485b-aef0-b5d3def766fd"}}],"id":"30d1bf35-350a-465c-a653-ee41a1882866","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-01-07\",\r\n  \"lista_matriculas_colaboradores\": [\"matricula123\", \"matriculaXYZ\"]\r\n}"},"url":"https://moapi.escalamoavi.com.br/plan-banco-saldo-dia-colaborador","description":"<h1 id=\"post-plan-banco-saldo-dia-colaborador\"><strong>POST</strong> <code>/plan-banco-saldo-dia-colaborador</code></h1>\n<p>Fornece o <strong>saldo planejado</strong> (do banco de horas) por <strong>dia</strong> e colaborador.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Retornar o saldo diário planejado do banco de horas, organizado por dia e discriminado por colaborador.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong><br /><strong>- assim como nos outros endpoints \"/plan-banco*\" os valores de saldo estão em minutos!</strong><br /><strong>- existe um limite de 10 dias corridos para obtenção dos lotes de dados.</strong> </p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/plan-banco-saldo-dia-colaborador</code></p>\n<p><strong>Método</strong>: <code>POST</code></p>\n<p><strong>Cabeçalho</strong>: É <strong>obrigatório</strong> usar <code>moapi-token</code> com token válido.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data_ini</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data inicial no formato <code>AAAA-MM-DD</code> (ano de 2017 a 2100).</td>\n</tr>\n<tr>\n<td><code>data_fim</code></td>\n<td><code>string</code></td>\n<td>Sim</td>\n<td>Data final no formato <code>AAAA-MM-DD</code> (ano de 2017 a 2100).</td>\n</tr>\n<tr>\n<td><code>lista_matriculas_colaboradores</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Matrículas cujos saldos são desejados. Para <strong>todas</strong>, usar [\"*\"].  <br />Não pode estar vazia nem conter duplicados.</td>\n</tr>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Página dos resultados. Se omitido, assume <code>1</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo\"><strong>Exemplo</strong>:</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_matriculas_colaboradores\": [\"matricula123\", \"matriculaXYZ\"]\n}\n\n</code></pre>\n<hr />\n<h2 id=\"resposta\"><strong>Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código de status HTTP (ex: 200, 400, 401, 500).</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto breve sobre sucesso ou falha.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td><code>string</code> ou <code>null</code></td>\n<td>Em caso de erro, traz a descrição. Se não houver erro, retorna <code>null</code> ou vazio.</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td><code>number</code> ou <code>null</code></td>\n<td>Página do último lote de resultados, se houver paginação. Caso haja erro, tende a <code>null</code>.</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td><code>array</code> ou <code>null</code></td>\n<td>Em sucesso, retorna lista de listas: <code>[\"matricula\", \"data\", \"saldo_horas\"]</code> + linhas de dados.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-sucesso-200\"><strong>Exemplo de Sucesso</strong> <strong><code>200</code></strong>:</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"matricula\", \"data\", \"saldo_horas\"],\n    [\"matricula123\", \"2024-01-01\", \"300\"],\n    [\"matricula123\", \"2024-01-02\", \"420\"],\n    [\"matriculaXYZ\", \"2024-01-01\", \"-60\"],\n    [\"matriculaXYZ\", \"2024-01-02\", \"-10\"]\n  ]\n}\n\n</code></pre>\n<blockquote>\n<p>Observação: o campo <code>saldo_horas</code> pode vir em forma de valor positivo ou negativo, representando o saldo para cada dia. </p>\n</blockquote>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400---excesso-de-dias\"><code>400 - Excesso de Dias</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla X dias, excedendo assim o limite deste endpoint!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n\n</code></pre>\n<h3 id=\"400---erro-de-schema\"><code>400 - Erro de Schema</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[detalhes do erro de validacao]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n\n</code></pre>\n<h3 id=\"401---token-expirado-ou-invalido\"><code>401 - Token Expirado ou Invalido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"The incoming token has expired\"\n}\n\n</code></pre>\n<h3 id=\"500---erro-interno\"><code>500 - Erro Interno</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes do erro interno]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["plan-banco-saldo-dia-colaborador"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"eaba6a74-09bc-4e0e-9eb7-cdf483c2d29b","name":"200-sucesso-exemplo","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_matriculas_colaboradores\": [\"matricula123\", \"matriculaXYZ\"]\n}"},"url":"https://moapi.escalamoavi.com.br/plan-banco-saldo-dia-colaborador"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"matricula\", \"data\", \"saldo_horas\"],\n    [\"matricula123\", \"2024-01-01\", \"300\"],\n    [\"matricula123\", \"2024-01-02\", \"420\"],\n    [\"matriculaXYZ\", \"2024-01-01\", \"-60\"],\n    [\"matriculaXYZ\", \"2024-01-02\", \"-10\"]\n  ]\n}"},{"id":"2e1b29c5-cd81-4878-a40a-1d63ae21f201","name":"400-excesso-dias","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-02-20\",\n  \"lista_matriculas_colaboradores\": [\"*\"]\n}"},"url":"https://moapi.escalamoavi.com.br/plan-banco-saldo-dia-colaborador"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla 50 dias, excedendo assim o limite deste endpoint!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"},{"id":"97544ce8-663b-4756-b4a0-3136c5f9b383","name":"400-schema-invalido","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-AB\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_matriculas_colaboradores\": []\n}"},"url":"https://moapi.escalamoavi.com.br/plan-banco-saldo-dia-colaborador"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[instance failed to match at least one required schema among 2]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"},{"id":"2561778c-91aa-416a-bd0c-85c0a98ec754","name":"401-token-expirou","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":""}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_matriculas_colaboradores\": [\"matricula1\"]\n}"},"url":"https://moapi.escalamoavi.com.br/plan-banco-saldo-dia-colaborador"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"The incoming token has expired\"\n}"},{"id":"196a5fb2-82d7-4730-880b-4ddbf7284467","name":"500-erro-interno","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_matriculas_colaboradores\": [\"matricula1\"]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://moapi.escalamoavi.com.br/plan-banco-saldo-dia-colaborador?","protocol":"https","host":["moapi","escalamoavi","com","br"],"path":["plan-banco-saldo-dia-colaborador"],"query":[{"key":null,"value":null}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisição.\",\n  \"erro\": \"[detalhes do erro interno]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"}],"_postman_id":"30d1bf35-350a-465c-a653-ee41a1882866"},{"name":"plan-banco-saldo-dia-filial","id":"8a1521dc-1672-4544-a375-cdeea9ca4d77","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-saldo-dia-filial","description":"<h1 id=\"saldo-planejado-do-banco-de-horas-por-dia-e-filial\">Saldo Planejado do Banco de Horas por Dia e Filial</h1>\n<p>Este endpoint retorna o saldo planejado do banco de horas por dia e filial.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong><br /><strong>- assim como nos outros endpoints \"/plan-banco*\" os valores de saldo estão em minutos!</strong><br /><strong>- existe um limite de 10 dias corridos para obtenção dos lotes de dados.</strong> </p>\n</blockquote>\n<p><strong>Método:</strong> <code>POST</code></p>\n<p><strong>Cabeçalho da Requisição:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>moapi-token: &lt;seu-IdToken&gt;\n\n</code></pre><p><strong>Parâmetros da Requisição:</strong></p>\n<ul>\n<li><p><strong><code>pag</code></strong>: (Integer, opcional) Número da página para paginação. Usado para grandes conjuntos de resultados. Valor padrão: 1.</p>\n</li>\n<li><p><strong><code>data_ini</code></strong>: (String, obrigatório) Data inicial no formato \"AAAA-MM-DD\".</p>\n</li>\n<li><p><strong><code>data_fim</code></strong>: (String, obrigatório) Data final no formato \"AAAA-MM-DD\".</p>\n</li>\n<li><p><strong><code>lista_cods_filiais</code></strong>: (Array de Strings, obrigatório) Lista de códigos de filial. Para todas as filiais, use [\"*\"].</p>\n</li>\n</ul>\n<p><strong>Observações:</strong></p>\n<ul>\n<li><p>Os códigos de filial na <code>lista_cods_filiais</code> devem ser strings.</p>\n</li>\n<li><p>O endpoint utiliza paginação para grandes conjuntos de dados. Use o parâmetro <code>pag</code> para acessar as demais páginas.</p>\n</li>\n<li><p>Assegure-se de que o <code>moapi-token</code> fornecido no cabeçalho seja válido e não esteja expirado.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["plan-banco-saldo-dia-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"1bb91b82-2d09-47d4-9ed5-ae8f8400622e","name":"200-sucesso","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-saldo-dia-filial"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"filial_cod\", \"data\", \"saldo_horas\"],\n    [\"0001\", \"2024-01-01\", \"420\"],\n    [\"0001\", \"2024-01-02\", \"360\"],\n    [\"0002\", \"2024-01-01\", \"450\"],\n    [\"0002\", \"2024-01-02\", \"390\"]\n  ]\n}"},{"id":"6a5ab5af-3ddc-4b60-b8e4-dddd92002b07","name":"400-requisicao-malformada","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2023-12-31\",\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-saldo-dia-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisição malformada.\",\n  \"erro\": \"Data final anterior à data inicial.\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"},{"id":"781fd2c6-5fd7-4ff5-a1df-ba6d33ff00c5","name":"401-nao-autorizado","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":""}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-saldo-dia-filial"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"unauthorized\"\n}"},{"id":"caec9c71-f85f-419c-bc7a-f69f27be0e69","name":"500-erro-interno","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"data_ini\": \"2024-01-01\",\n  \"data_fim\": \"2024-01-07\",\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-saldo-dia-filial"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisição.\",\n  \"erro\": \"[descrição do erro]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"}],"_postman_id":"8a1521dc-1672-4544-a375-cdeea9ca4d77"},{"name":"plan-banco-saldo-mes-colaborador","id":"a6524257-261d-49c8-8b52-76e190bba0ad","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": \"12\",\n  \"ano_fim\": 2024,\n  \"lista_matriculas_colaboradores\": [\"matricula1\", \"matricula2\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-saldo-mes-colaborador","description":"<h1 id=\"post-plan-banco-saldo-mes-colaborador\"><strong>POST</strong> <code>/plan-banco-saldo-mes-colaborador</code></h1>\n<p>Fornece o <strong>saldo planejado</strong> (positivo ou negativo) do banco de horas, <strong>agregado por mês</strong> e <strong>colaborador</strong>.</p>\n<hr />\n<h2 id=\"objetivo\"><strong>Objetivo</strong></h2>\n<p>Retornar o saldo planejado do banco de horas, agrupado por mês para cada colaborador.</p>\n<blockquote>\n<p><strong>IMPORTANTE</strong>:<br /><strong>- assim como nos outros endpoints</strong> /plan-banco*, os valores são retornados em <strong>minutos</strong>. </p>\n</blockquote>\n<p><strong>URL</strong>: <code>https://moapi.escalamoavi.com.br/plan-banco-saldo-mes-colaborador</code></p>\n<p><strong>Método</strong>: <code>POST</code></p>\n<p><strong>Cabeçalho</strong>: É <strong>obrigatório</strong> usar <code>moapi-token</code> com token válido.</p>\n<hr />\n<h2 id=\"corpo-da-requisição\"><strong>Corpo da Requisição</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Obrigatório?</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>pag</code></td>\n<td><code>number</code></td>\n<td>Não</td>\n<td>Número da página dos resultados. Se omitido, assume <code>1</code>. Útil apenas se houver paginação.</td>\n</tr>\n<tr>\n<td><code>mes_ini</code></td>\n<td>`string</td>\n<td>int`</td>\n<td>Sim</td>\n</tr>\n<tr>\n<td><code>ano_ini</code></td>\n<td>`string</td>\n<td>int`</td>\n<td>Sim</td>\n</tr>\n<tr>\n<td><code>mes_fim</code></td>\n<td>`string</td>\n<td>int`</td>\n<td>Sim</td>\n</tr>\n<tr>\n<td><code>ano_fim</code></td>\n<td>`string</td>\n<td>int`</td>\n<td>Sim</td>\n</tr>\n<tr>\n<td><code>lista_matriculas_colaboradores</code></td>\n<td><code>string[]</code></td>\n<td>Sim</td>\n<td>Matrículas cujos saldos são desejados. Para <strong>todas</strong>, usar [\"*\"].  <br />Não pode estar vazia, nem conter duplicados.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-requisição\"><strong>Exemplo</strong> de Requisição</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"pag\": 1,\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": 12,\n  \"ano_fim\": \"2024\",\n  \"lista_matriculas_colaboradores\": [\"matriculaX\", \"matriculaY\"]\n}\n\n</code></pre>\n<hr />\n<h2 id=\"resposta\"><strong>Resposta</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>number</code></td>\n<td>Código de status HTTP (ex: 200, 400, 401, 500).</td>\n</tr>\n<tr>\n<td><code>mensagem</code></td>\n<td><code>string</code></td>\n<td>Texto breve sobre sucesso ou falha.</td>\n</tr>\n<tr>\n<td><code>erro</code></td>\n<td>`string</td>\n<td>null`</td>\n</tr>\n<tr>\n<td><code>ultimaPag</code></td>\n<td>`number</td>\n<td>null`</td>\n</tr>\n<tr>\n<td><code>resultados</code></td>\n<td>`array</td>\n<td>null`</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"exemplo-de-resposta-200---sucesso\"><strong>Exemplo</strong> de Resposta <strong><code>200 - Sucesso</code></strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"matricula\", \"ano\", \"mes\", \"saldo_horas\"],\n    [\"matr123\", \"2024\", \"1\", \"180\"],\n    [\"matr123\", \"2024\", \"2\", \"60\"],\n    [\"matr123\", \"2024\", \"3\", \"-30\"],\n    [\"matrXYZ\", \"2024\", \"1\", \"0\"],\n    [\"matrXYZ\", \"2024\", \"2\", \"-150\"],\n    [\"matrXYZ\", \"2024\", \"3\", \"-120\"]\n  ]\n}\n\n</code></pre>\n<hr />\n<h2 id=\"possíveis-erros\"><strong>Possíveis Erros</strong></h2>\n<h3 id=\"400---excesso-de-dias\"><code>400 - Excesso de Dias</code></h3>\n<p>Se o intervalo entre <code>(mes_ini, ano_ini)</code> e <code>(mes_fim, ano_fim)</code> exceder o limite.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisicao mal-formada.\",\n  \"erro\": \"O periodo inserido contempla X dias, excedendo assim o limite deste endpoint!\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n\n</code></pre>\n<h3 id=\"400---erro-de-schema\"><code>400 - Erro de Schema</code></h3>\n<p>Caso algum campo esteja fora do esperado, como <code>mes_fim = 13</code>, <code>ano_ini</code> &lt; 2017, etc.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 400,\n  \"mensagem\": \"Invalid request body\",\n  \"erro\": \"[detalhes do erro de validacao]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n\n</code></pre>\n<h3 id=\"401---token-expirado-ou-inválido\"><code>401 - Token Expirado ou Inválido</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"The incoming token has expired\"\n}\n\n</code></pre>\n<h3 id=\"500---erro-interno\"><code>500 - Erro Interno</code></h3>\n<p>Erro interno do servidor ao processar a requisição.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisicao.\",\n  \"erro\": \"[detalhes do erro interno]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["plan-banco-saldo-mes-colaborador"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[],"_postman_id":"a6524257-261d-49c8-8b52-76e190bba0ad"},{"name":"plan-banco-saldo-mes-filial","id":"d78f372c-860c-42b7-bacf-e68999beeae1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": \"12\",\n  \"ano_fim\": 2024,\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-saldo-mes-filial","description":"<h1 id=\"saldo-planejado-do-banco-de-horas-por-mês-e-filial\">Saldo Planejado do Banco de Horas por Mês e Filial</h1>\n<p>Este endpoint retorna o saldo planejado do banco de horas, agregado por mês e filial.</p>\n<p><strong>IMPORTANTE: assim como nos outros endpoints \"/plan-banco*\" os valores de saldo estão em minutos!</strong></p>\n<p><strong>Método:</strong> <code>POST</code></p>\n<p><strong>Cabeçalho da Requisição:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>moapi-token: &lt;seu-IdToken&gt;\n\n</code></pre><p><strong>Parâmetros da Requisição:</strong></p>\n<ul>\n<li><p><strong><code>pag</code></strong>: (Integer, opcional) Número da página para paginação. Usado para grandes conjuntos de resultados. Valor padrão: 1.</p>\n</li>\n<li><p><strong><code>mes_ini</code></strong>: (String ou Integer, obrigatório) Mês inicial no formato \"MM\" ou um número inteiro representando o mês.</p>\n</li>\n<li><p><strong><code>ano_ini</code></strong>: (String ou Integer, obrigatório) Ano inicial no formato \"AAAA\" ou um número inteiro representando o ano.</p>\n</li>\n<li><p><strong><code>mes_fim</code></strong>: (String ou Integer, obrigatório) Mês final no formato \"MM\" ou um número inteiro representando o mês.</p>\n</li>\n<li><p><strong><code>ano_fim</code></strong>: (String ou Integer, obrigatório) Ano final no formato \"AAAA\" ou um número inteiro representando o ano.</p>\n</li>\n<li><p><strong><code>lista_cods_filiais</code></strong>: (Array de Strings, obrigatório) Lista de códigos de filial. Para todas as filiais, use [\"*\"].</p>\n</li>\n</ul>\n<p><strong>Observações:</strong></p>\n<ul>\n<li><p>Os códigos de filial na <code>lista_cods_filiais</code> devem ser strings.</p>\n</li>\n<li><p>O endpoint utiliza paginação para grandes conjuntos de dados. Use o parâmetro <code>pag</code> para acessar as demais páginas.</p>\n</li>\n<li><p>Assegure-se de que o <code>moapi-token</code> fornecido no cabeçalho seja válido e não esteja expirado.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["plan-banco-saldo-mes-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"7b623ff1-0f03-452e-85b1-7aa1c2e36307","name":"200-sucesso-string","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": \"12\",\n  \"ano_fim\": 2024,\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-saldo-mes-filial"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"filial_cod\", \"ano\", \"mes\", \"saldo_horas\"],\n    [\"0001\", \"2024\", \"01\", \"2100\"],\n    [\"0001\", \"2024\", \"02\", \"1680\"],\n    [\"0002\", \"2024\", \"01\", \"2400\"],\n    [\"0002\", \"2024\", \"02\", \"1980\"]\n  ]\n}"},{"id":"8f2ffc81-fbcd-4876-8c81-07623a747de6","name":"200-sucesso-integer","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"mes_ini\": 1,\n  \"ano_ini\": 2024,\n  \"mes_fim\": 12,\n  \"ano_fim\": 2024,\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-saldo-mes-filial"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 200,\n  \"mensagem\": \"Dados obtidos com sucesso.\",\n  \"erro\": null,\n  \"ultimaPag\": 1,\n  \"resultados\": [\n    [\"filial_cod\", \"ano\", \"mes\", \"saldo_horas\"],\n    [\"0001\", \"2024\", \"01\", \"2100\"],\n    [\"0001\", \"2024\", \"02\", \"1680\"],\n    [\"0002\", \"2024\", \"01\", \"2400\"],\n    [\"0002\", \"2024\", \"02\", \"1980\"]\n  ]\n}"},{"id":"b2064ec0-bbe0-459c-97ab-6c9ec053c697","name":"400-requisicao-malformada","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": \"13\",\n  \"ano_fim\": 2024,\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-saldo-mes-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 400,\n  \"mensagem\": \"Requisição malformada.\",\n  \"erro\": \"Mês inválido.\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"},{"id":"bdcad80b-73b0-4388-9910-80148a5c2024","name":"401-nao-autorizado","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":""}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": \"12\",\n  \"ano_fim\": 2024,\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-saldo-mes-filial"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"unauthorized\"\n}"},{"id":"837466cc-f76e-4a95-bfb7-d32a04a5ccb4","name":"500-erro-interno","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n  \"pag\": 1,\n  \"mes_ini\": \"01\",\n  \"ano_ini\": 2024,\n  \"mes_fim\": \"12\",\n  \"ano_fim\": 2024,\n  \"lista_cods_filiais\": [\"0001\", \"0002\"]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/plan-banco-saldo-mes-filial"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"statusCode\": 500,\n  \"mensagem\": \"Erro ao processar a requisição.\",\n  \"erro\": \"[descrição do erro]\",\n  \"ultimaPag\": null,\n  \"resultados\": null\n}"}],"_postman_id":"d78f372c-860c-42b7-bacf-e68999beeae1"},{"name":"ql-escala-dia-filial","id":"f58ea0e6-7743-4dec-9fc6-8fd87e0325b5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"data_ini\": \"2026-07-01\",\n    \"data_fim\": \"2026-07-15\",\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/ql-escala-dia-filial","description":"<p>Janela máxima: 62 dias. ASSINCRONO. Headcount da escala vigente: conta PESSOAS (funcionário), separando regulares de vagas de contratação.</p>\n<p>Colunas: filial_cod, data, colaboradores_regulares, colaboradores_contratacao.</p>\n","urlObject":{"protocol":"https","path":["ql-escala-dia-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"4d2bc1c8-d72f-44a9-a9d4-f3660b39c337","name":"200-sucesso","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"data_ini\": \"2026-07-01\",\n    \"data_fim\": \"2026-07-15\",\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/ql-escala-dia-filial","description":"Janela maxima: 62 dias. ASSINCRONO. Headcount da escala vigente: conta PESSOAS (funcionario), separando regulares de vagas de contratacao. Colunas: filial_cod, data, colaboradores_regulares, colaboradores_contratacao."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"filial_cod\",\n            \"data\",\n            \"colaboradores_regulares\",\n            \"colaboradores_contratacao\"\n        ],\n        [\n            \"0001\",\n            \"2026-07-05\",\n            \"47\",\n            \"3\"\n        ]\n    ]\n}"},{"id":"dc6e7f69-1a5c-4b99-80d2-76647f4d3647","name":"200-async-em-processamento (1a chamada)","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"data_ini\": \"2026-07-01\",\n    \"data_fim\": \"2026-07-15\",\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/ql-escala-dia-filial","description":"Janela maxima: 62 dias. ASSINCRONO. Headcount da escala vigente: conta PESSOAS (funcionario), separando regulares de vagas de contratacao. Colunas: filial_cod, data, colaboradores_regulares, colaboradores_contratacao."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": null\n}"},{"id":"0dcdb98e-fa48-4d06-99c6-e2f1c6325114","name":"400-janela-excede-limite","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"data_ini\": \"2026-07-01\",\n    \"data_fim\": \"2026-07-15\",\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/ql-escala-dia-filial","description":"Janela maxima: 62 dias. ASSINCRONO. Headcount da escala vigente: conta PESSOAS (funcionario), separando regulares de vagas de contratacao. Colunas: filial_cod, data, colaboradores_regulares, colaboradores_contratacao."},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Requisicao mal-formada.\",\n    \"erro\": \"O periodo inserido contempla 92 dias, excedendo assim o limite desta requisicao (62 dias)!\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"}],"_postman_id":"f58ea0e6-7743-4dec-9fc6-8fd87e0325b5"},{"name":"ql-escala-mes-filial","id":"69160609-9786-44af-98c7-c2ec76ff2f37","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"mes_ini\": \"06\",\n    \"ano_ini\": 2026,\n    \"mes_fim\": \"07\",\n    \"ano_fim\": 2026,\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/ql-escala-mes-filial","description":"<p>Janela máxima: 372 dias. ASSINCRONO. Conta PESSOAS distintas no mes.</p>\n<p>Colunas: filial_cod, ano, mes, colaboradores_regulares, colaboradores_contratacao.</p>\n","urlObject":{"protocol":"https","path":["ql-escala-mes-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"c6b701bc-5687-45ec-b59f-ac2d5fe5610a","name":"200-sucesso","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"mes_ini\": \"06\",\n    \"ano_ini\": 2026,\n    \"mes_fim\": \"07\",\n    \"ano_fim\": 2026,\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/ql-escala-mes-filial","description":"Janela maxima: 372 dias. ASSINCRONO. Conta PESSOAS distintas no mes (trocar de escala no meio do mes nao duplica). Colunas: filial_cod, ano, mes, colaboradores_regulares, colaboradores_contratacao."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"filial_cod\",\n            \"ano\",\n            \"mes\",\n            \"colaboradores_regulares\",\n            \"colaboradores_contratacao\"\n        ],\n        [\n            \"0001\",\n            \"2026\",\n            \"7\",\n            \"47\",\n            \"3\"\n        ]\n    ]\n}"},{"id":"599798a4-d6bd-42da-82e3-55546b26c230","name":"200-async-em-processamento (1a chamada)","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"mes_ini\": \"06\",\n    \"ano_ini\": 2026,\n    \"mes_fim\": \"07\",\n    \"ano_fim\": 2026,\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/ql-escala-mes-filial","description":"Janela maxima: 372 dias. ASSINCRONO. Conta PESSOAS distintas no mes (trocar de escala no meio do mes nao duplica). Colunas: filial_cod, ano, mes, colaboradores_regulares, colaboradores_contratacao."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": null\n}"},{"id":"79babf54-7cc4-4d8a-81e7-7df0a1359879","name":"400-janela-excede-limite","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\n    \"pag\": 1,\n    \"mes_ini\": \"06\",\n    \"ano_ini\": 2026,\n    \"mes_fim\": \"07\",\n    \"ano_fim\": 2026,\n    \"lista_cods_filiais\": [\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/ql-escala-mes-filial","description":"Janela maxima: 372 dias. ASSINCRONO. Conta PESSOAS distintas no mes (trocar de escala no meio do mes nao duplica). Colunas: filial_cod, ano, mes, colaboradores_regulares, colaboradores_contratacao."},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Requisicao mal-formada.\",\n    \"erro\": \"O periodo inserido contempla 402 dias, excedendo assim o limite desta requisicao (372 dias)!\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"}],"_postman_id":"69160609-9786-44af-98c7-c2ec76ff2f37"},{"name":"resumo-periodo-filial","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"86fe5302-7783-45b6-a4d5-35a5acdf5a74"}}],"id":"b94b27ea-86f4-41f8-8497-b0ca24edde81","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-01-31\",\r\n  \"lista_cods_filiais\": [\r\n    \"*\"\r\n  ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/resumo-periodo-filial","description":"<h1 id=\"resumo-por-período-e-filial\">Resumo por Período e Filial</h1>\n<p>Fornece um resumo consolidado de indicadores operacionais por filial para um período. Ideal para diagnósticos rápidos de saúde operacional sem precisar cruzar múltiplos endpoints.</p>\n<blockquote>\n<p><strong>IMPORTANTE:</strong>\nEste é um endpoint de <strong>invocação assíncrona</strong>. O processamento pode levar mais de 29s para filiais numerosas. Sugerimos <strong>1 minuto e meio (1min 30s) de intervalo mínimo</strong> entre a primeira e a segunda requisição (com a mesma payload). No pior caso, a página 1 já estará em cache nesta nova requisição!</p>\n</blockquote>\n<h2 id=\"payload-de-requisição\">Payload de requisição</h2>\n<p>O usuário deve fornecer datas inicial (\"data_ini\") e final (\"data_fim\") em formato \"AAAA-MM-DD\".</p>\n<p>O número total de dias correspondentes (\"daterange\") não pode exceder <strong>62 dias</strong>.</p>\n<p>Em \"lista_cods_filiais\" espera-se uma lista contendo strings que correspondam a códigos de filiais cadastradas na MOAVI. <strong>Para que dados de todas as filiais sejam retornados, o input deve ser \"lista_cods_filiais\": [\"*\"]</strong></p>\n<p>Se houver necessidade de paginação, em requisições posteriores o usuário deve incluir no body a chave \"pag\" com um inteiro positivo.</p>\n<h2 id=\"corpo-da-resposta\">Corpo da resposta</h2>\n<ul>\n<li><p>\"mensagem\" conterá uma <em><strong>string</strong></em> que informa brevemente sobre sucesso ou fracasso da request. Algumas requisições podem resultar em avisos neste campo.</p>\n</li>\n<li><p>\"erro\", se aplicável, trará <em><strong>string</strong></em> detalhando o motivo de fracasso da requisição. Se não, retorna como <em><strong>null</strong></em></p>\n</li>\n<li><p>\"ultimaPag\", fornece a página (<em><strong>integer</strong></em>) do último lote de resultados. Em casos de erro, por exemplo, retorna como <em><strong>null</strong></em>.</p>\n</li>\n<li><p>\"statusCode\" informa o código HTTP da resposta, um <em><strong>integer</strong></em>.</p>\n</li>\n<li><p>\"resultados\", se não <em>null</em>, trata-se de uma lista de listas. As listas internas sempre têm 5 elementos cada, todos <em><strong>string</strong></em>.</p>\n<ul>\n<li><p>A primeira lista aninhada é sempre [\"filial_cod\", \"qtd_acessos_30_dias\", \"ultimo_acesso\", \"diagnostico\", \"carga_trabalho\"].</p>\n</li>\n<li><p>As demais conterão <em><strong>strings</strong></em> com valores respectivos. Por exemplo: [\"001\", \"120\", \"2024-01-31\", \"Normal\", \"44.0\"] significaria que a filial \"001\" teve 120 acessos nos últimos 30 dias, com último acesso em 31/01/2024, diagnóstico \"Normal\" e 44 horas de carga de trabalho no período consultado.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"valores-possíveis-de-diagnostico\">Valores possíveis de \"diagnostico\"</h3>\n<ul>\n<li><p><strong>\"Normal\"</strong>: operação dentro dos parâmetros esperados.</p>\n</li>\n<li><p><strong>\"Alerta\"</strong>: indicadores em nível de atenção — recomenda-se verificação.</p>\n</li>\n<li><p><strong>\"Critico\"</strong>: indicadores fora do aceitável — requer ação imediata.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["resumo-periodo-filial"],"host":["moapi","escalamoavi","com","br"],"query":[],"variable":[]}},"response":[{"id":"b4db02b9-4093-4efd-88c8-ce95008d9fab","name":"200-sucesso-completo","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-01-31\",\r\n  \"lista_cods_filiais\": [\r\n    \"filial-001\",\r\n    \"filial-002\"\r\n  ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/resumo-periodo-filial"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Dados obtidos com sucesso.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"filial_cod\",\n            \"qtd_acessos_30_dias\",\n            \"ultimo_acesso\",\n            \"diagnostico\",\n            \"carga_trabalho\"\n        ],\n        [\n            \"001\",\n            \"120\",\n            \"2024-01-31\",\n            \"Normal\",\n            \"44.0\"\n        ],\n        [\n            \"002\",\n            \"87\",\n            \"2024-01-30\",\n            \"Alerta\",\n            \"38.5\"\n        ]\n    ]\n}"},{"id":"243871dc-820d-49fe-b1c1-6c7c55e98a21","name":"200-sucesso-com-aviso","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-01-07\",\r\n  \"lista_cods_filiais\": [\r\n    \"*\",\r\n    \"001\"\r\n  ]\r\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://moapi.escalamoavi.com.br/resumo-periodo-filial?","protocol":"https","host":["moapi","escalamoavi","com","br"],"path":["resumo-periodo-filial"],"query":[{"key":null,"value":null}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"mensagem\": \"Cuidado! A lista informada foi lista_cods_filiais=['*', '001']. Estamos ignorando a entrada avulsa e buscando todas as entradas.\",\n    \"erro\": null,\n    \"ultimaPag\": 1,\n    \"resultados\": [\n        [\n            \"filial_cod\",\n            \"qtd_acessos_30_dias\",\n            \"ultimo_acesso\",\n            \"diagnostico\",\n            \"carga_trabalho\"\n        ],\n        [\n            \"001\",\n            \"120\",\n            \"2024-01-07\",\n            \"Normal\",\n            \"44.0\"\n        ],\n        [\n            \"002\",\n            \"87\",\n            \"2024-01-06\",\n            \"Alerta\",\n            \"38.5\"\n        ],\n        [\n            \"003\",\n            \"45\",\n            \"2024-01-05\",\n            \"Critico\",\n            \"52.0\"\n        ]\n    ]\n}"},{"id":"2877ee25-fc35-473d-9ce2-26940b0ceeef","name":"400-erro-excesso-de-dias","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-03-05\",\r\n  \"lista_cods_filiais\": [\r\n    \"*\"\r\n  ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/resumo-periodo-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Requisicao mal-formada.\",\n    \"erro\": \"O periodo inserido contempla 64 dias, excedendo assim o limite deste endpoint (62 dias)!\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"770eb98b-e5e3-4fb0-9b95-4336b750bca4","name":"400-lista_cods_filiais-deve-conter-apenas-strings","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-01-10\",\r\n  \"lista_cods_filiais\": [\r\n    \"*\",\r\n    123\r\n  ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/resumo-periodo-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[instance type (integer) does not match any allowed primitive type (allowed: [\\\"string\\\"])]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"313136a8-f00b-48ec-9e9c-0b0665d8e35d","name":"400-lista_cods_filiais-vazia","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-01-10\",\r\n  \"lista_cods_filiais\": []\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/resumo-periodo-filial"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"mensagem\": \"Invalid request body\",\n    \"erro\": \"[array is too short: must have at least 1 elements but instance has 0 elements]\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"},{"id":"5d4f6248-6974-424c-b8e5-bdbbe7e8e2a7","name":"500-mes-invalido","originalRequest":{"method":"POST","header":[{"key":"moapi-token","value":"<seu-IdToken>"}],"body":{"mode":"raw","raw":"{\r\n  \"pag\": 1,\r\n  \"data_ini\": \"2024-01-01\",\r\n  \"data_fim\": \"2024-13-01\",\r\n  \"lista_cods_filiais\": [\r\n    \"*\"\r\n  ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://moapi.escalamoavi.com.br/resumo-periodo-filial"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 500,\n    \"mensagem\": \"Problema ao checar amplitude de data. Verifique sua requisicao!\",\n    \"erro\": \"time data '2024-13-01' does not match format '%Y-%m-%d'\",\n    \"ultimaPag\": null,\n    \"resultados\": null\n}"}],"_postman_id":"b94b27ea-86f4-41f8-8497-b0ca24edde81"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"3533e247-67b6-4b0b-92e3-530b468b8f5d"}},{"listen":"test","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"8663f23f-4388-44bc-9da0-359179615885"}}]}