Skip to content

Exportando relatórios de contratos

Este documento descreve como extrair o relatório geral de contratos da sua organização através da API.

Relatório geral

O relatório geral de contratos é um arquivo XLSX que contém todos os contratos da organização, incluindo dados básicos (datas de vigência, status, valor, participantes) e os campos personalizados (informações) de cada contrato.

Para extraí-lo, utilize a query Report_extractContractsReport. A query não recebe parâmetros e exige permissão de administrador da organização — portanto, o token utilizado precisa ter sido gerado por um usuário administrador (veja Token de autenticação).

Retorno

A query retorna um objeto que pode ser de dois tipos:

Sucesso (Report_ExtractContractsReport_Output_Success)

PropriedadeTipoDescrição
urlToDownloadFileStringURL assinada para download do arquivo XLSX. Expira em 1 hora após a geração.

Falha (Report_ExtractContractsReport_Output_Failures)

PropriedadeTipoDescrição
failuresArrayArray contendo informações sobre a falha
graphql
query {
  result: Report_extractContractsReport {
    ... on Report_ExtractContractsReport_Output_Success {
      urlToDownloadFile
    }
    ... on Report_ExtractContractsReport_Output_Failures {
      failures {
        ... on Error {
          message
        }
      }
    }
  }
}
js
async function extractContractsReport() {
  const response = await fetch('https://core-api.linte.com/graphql', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'key': '<seu-token>'
    },
    body: JSON.stringify({
      query: `
        query {
          result: Report_extractContractsReport {
            ... on Report_ExtractContractsReport_Output_Success {
              urlToDownloadFile
            }
            ... on Report_ExtractContractsReport_Output_Failures {
              failures {
                ... on Error {
                  message
                }
              }
            }
          }
        }
      `
    })
  });

  const result = await response.json();
  console.log(result);
}

extractContractsReport();
python
import requests

def extract_contracts_report():
    response = requests.post(
        'https://core-api.linte.com/graphql',
        headers={
            'Content-Type': 'application/json',
            'key': '<seu-token>'
        },
        json={
            'query': '''
                query {
                  result: Report_extractContractsReport {
                    ... on Report_ExtractContractsReport_Output_Success {
                      urlToDownloadFile
                    }
                    ... on Report_ExtractContractsReport_Output_Failures {
                      failures {
                        ... on Error {
                          message
                        }
                      }
                    }
                  }
                }
            '''
        }
    )

    print(response.json())

if __name__ == '__main__':
    extract_contracts_report()

Estrutura do arquivo gerado

O arquivo é um XLSX com uma única aba chamada report. As colunas seguem a ordem abaixo:

ColunaDescriçãoTipo
IDID/código do contratoString (ex.: VIV-000123)
CategoriaIndica se é um contrato Principal ou um Aditivo*String
TipoTipo do contratoString
Criado emData de criação do contratoData (DD/MM/YYYY)
Criado porNome do usuário que criou o contratoString
Início da vigênciaData de início da vigênciaData (DD/MM/YYYY) ou Indeterminado
Fim da vigênciaData de fim da vigênciaData (DD/MM/YYYY) ou Indeterminado
ID do contrato principalQuando for aditivo, ID do contrato principal*String
Área solicitanteÁrea solicitanteString
ValorValor do contratoNúmero
Criado a partir da demandaID da demanda que originou o contrato (se aplicável)String
StatusStatus atual do contratoString
Categoria do statusCategoria do statusString
ParticipantesLista de participantes do contratoString
Grupos participantesLista de grupos participantesString

*As colunas Categoria e ID do contrato principal aparecem apenas quando a feature flag de aditivos contratuais está habilitada para a organização.

INFO

Após as colunas padrão, o relatório inclui automaticamente uma coluna por campo personalizado (informação) existente nos contratos. Campos com sub-campos (filhos) aparecem agrupados logo após o campo pai.

WARNING

A urlToDownloadFile retornada é temporária e expira em 1 hora. Por isso, em integrações automatizadas (ex.: ferramentas de BI), sempre chame a query novamente a cada atualização para obter uma URL fresca antes de baixar o arquivo.