API para transmissão de registros no formato LEDI
1. Objetivo
Este documento apresenta as etapas necessárias para conseguir enviar registros no formato LEDI via API.
2. Geração da credencial
1. A geração das credenciais deve estar habilitada somente para as instalações que possuam HTTPS configurado.
2. A geração da credencial deve ser feita pelo Administrador Municipal no módulo "Transmissão de dados > Configurações". Sendo necessário informar os seguintes dados dos integradores:
- Para cadastro de "Pessoa física" o registro deve conter as seguintes informações da pessoa que será responsável pela integração: Nome, CPF, E-mail e Nome da credencial;
- Para cadastro de "Pessoa jurídica" o registro deve conter as seguintes informações da pessoa que será responsável pela integração: Nome, CNPJ, E-mail e Nome da credencial.
3. Após realizar o cadastro de um integrador o sistema deve gerar o usuário e a senha que serão utilizados na autenticação da API. Sendo o Administrador Municipal responsável por repassar essas informações para os integradores. Não deve ser possível recuperar um usuário e senha gerados previamente, caso o usuário e a senha sejam perdidos é necessário gerar outra credencial.
3. Endpoint, variáveis e respostas da API
4. A API possui dois endpoints disponíveis: "[url_instalacao]/api/recebimento/login" e "[url_instalacao]/api/v1/recebimento/ficha".
5. O endpoint "/api/recebimento/login" deve ser utilziado para realizar a autenticação do envio através da requisição do tipo POST. Sendo aceitas as variáveis "usuario" e "senha". As respostas possíveis são:
- Resposta de sucesso: a API deve retornar um cookie chamado "JSESSIONID". Esse cookie deve ser enviado em requisições futuras como forma de autenticação;
- Resposta de erro: deve ser retornado um código e mensagem do erro.
6. O endpoint "/api/v1/recebimento/ficha" deve ser utilizado para realizar o envio dos registros no formato LEDI através da requisição do tipo POST. Sendo aceito a variável ficha. O valor da variável deve ser um arquivo serializado em binário e o nome desse arquivo deve ser "uuid do registro eletrônico no formato LEDI" + ".esus". Segue um exemplo de ficha nomeada corretamente: "0000007-cfdd9b1b-2c4d-4759-b254-76564ec219f3.esus".
7. As respostas possíveis para o endpoint "/api/v1/recebimento/ficha" são:
- Respostas de sucesso: deve ser retornado o status 200;
- Resposta de erro: deve ser retornado um código e uma mensagem do erro. Informando quais informações devem ser corrigidas para que a ficha seja aceita.
8. Sugere-se que o erro retornado pela API seja armazenado pelo próprio integrador. Possibilitando assim correção de registros no formato LEDI que foram enviadas com erro.
4. Exemplos de requisição
Protótipo 1 - Requisição POST no endpoint de autenticação
Protótipo 2 - Requisição POST para envio de registros no formato LEDI
5. Fluxograma
9. O propósito desse fluxograma é facilitar a compreensão do funcionamento da API.
Fluxograma 1 - Fluxograma para facilitar a compreensão do funcionamento da API
6. Dicionário de dados
10. Relação de endpoint, tipos de requisição e parâmetros:
Endpoint | Tipo de requisição | Parâmetros | Observação |
---|---|---|---|
api/recebimento/login | POST | usuario | Utilizando o usuário fornecido nas credenciais geradas pelo PEC para a autenticação da API |
api/recebimento/login | POST | senha | Utilizando a senha fornecida nas credenciais geradas pelo PEC para a autenticação da API |
api/v1/recebimento/ficha | POST | ficha | Enviar o path dos modelos de informação do LEDI na requisição. O nome do arquivo deve ser “uuidDadoSerializado”, que está presente no modelo de informação |
11. Relação de endpoint e possíveis respostas:
Endpoint | Resposta | Observação |
---|---|---|
api/recebimento/login | 200 | Acesso autorizado. |
api/recebimento/login | 400 | Acesso negado, verificar credenciais utilizadas |
api/v1/recebimento/ficha | 200 | Envio realizado com sucesso |
api/v1/recebimento/ficha | 400 | Alguns dos registros no formato LEDI enviados possuem erros. Os registros no formato LEDI que apresentam erro e o respectivo erro são enviados na resposta da API |