Conheças as soluções Webmania® para o seu negócio. Teste grátis as nossas soluções*
Conversar no WhatsApp*Teste grátis para novos clientes. Consulte condições e serviços disponíveis.
Utilize a REST API da Webmania® para consultar, armazenar e realizar o download dos documentos fiscais recebidos pelo CNPJ da sua empresa.
Todas as requisições na API devem ser realizadas em ambiente criptografado HTTPS através da URL https://api.webmaniabr.com/
. O prefixo /2/gestao-documentos-fiscais
deve ser adicionado na URL em todas as requisições.
A tabela abaixo lista todos os endpoints disponíveis na API:
Endpoint | HTTP Verb | Função |
---|---|---|
/empresas | POST | Cadastrar uma nova empresa |
/documentos | POST | Listar ou exportar documentos fiscais |
/documentos/{uuid}/eventos | POST | Registrar evento para um documento |
/empresas/{empresa_uuid}/municipios-nfse | POST | Cadastrar monitoramento para município (NFS-e) |
/documentos/{uuid} | GET | Buscar documento pelo UUID |
/empresas | GET | Listar todas as empresas cadastradas |
/empresas/{uuid} | GET | Buscar empresa pelo UUID |
/municipios-nfse | GET | Listar municípios disponíveis para NFS-e |
/empresas/{empresa_uuid}/municipios-nfse | GET | Listar municípios monitorados da empresa |
/empresas/{uuid} | PUT | Atualizar dados de uma empresa |
/empresas/{empresa_uuid}/municipios-nfse/{uuid} | PUT | Atualizar credenciais do município (NFS-e) |
/empresas/{empresa_uuid}/municipios-nfse/{uuid} | DELETE | Remover monitoramento do município (NFS-e) |
Sempre envie o corpo da requisição no formato JSON
, e o cabeçalho Content-Type
deve estar definido como application/json
.
A resposta da API estará sempre no formato JSON
, o padrão da estrutura da resposta está disponível nesta seção da documentação.
Para acessar os recursos da API, é necessário autenticar as requisições por meio do cabeçalho HTTP (HTTP headers). A autenticação deve ser feita utilizando o cabeçalho Authorization
, no seguinte formato:
Authorization: Bearer {Access-Token}
O Access-Token
pode ser obtido no painel da Webmania® e deve ser incluído em todas as requisições.
Mantenha suas credenciais em segurança. Nunca publique o Access Token no código-fonte do site, aplicativo ou sistema onde ele possa ser facilmente acessado por terceiros.
Para aplicativos móveis (iOS e Android), recomendamos que a consulta à API seja realizada no servidor (back-end). O código-fonte do aplicativo deve apenas enviar a requisição enquanto o processamento da consulta deve ocorrer no seu servidor.
Todas as respostas da API seguem um padrão e estão no formato JSON
, garantindo clareza e facilidade de interpretação.
A tabela abaixo apresenta os códigos de status HTTP que a API pode retornar com suas respectivas descrições. Esses códigos indicam o resultado da operação solicitada e ajudam a entender se a requisição foi bem-sucedida ou se ocorreu alguma falha.
Código | Significado | Sucesso | Descrição |
---|---|---|---|
200 | OK | A requisição foi processada com sucesso e os dados foram retornados. | |
400 | Bad Request | A requisição está incorreta ou possui parâmetros inválidos no corpo (body) da requisição. | |
401 | Unauthorized | Falha na autenticação. Verifique o token de acesso enviado. | |
403 | Forbidden | Acesso negado. Não possui permissão para realizar a operação. |
Exemplo de resposta para uma requisição com erro:
{
"error": "Parâmetro inválido: cnpj. O valor ABCD não é um CNPJ válido."
}
Para que a sua plataforma se mantenha sempre atualizada, a Webmania disponibiliza as notificações automáticas sempre que novos documentos fiscais forem identificados e respectivos eventos forem registrados.
Cada documento fiscal e evento possui um número único de identificação chamado de UUID. Este número deve ser utilizado para recepcionar e identificar as requisições para atualizar as informações no seu banco de dados.
No momento que realizado o cadastro ou atualizado a empresa, caso tenha informado o parâmetro url_notificacao
, será enviado o retorno no formato POST para a URL especificada contendo no corpo os parâmetros tipo_notificacao
, data
e documento
.
Parâmetro | Tipo | Descrição |
---|---|---|
tipo_notificacao | número | Tipo da notificação1 - Documentos fiscais |
data | objeto | Informações do documento fiscal ou eventoObjeto do evento de acordo com o modelo do documento fiscal. Saiba mais |
documento | objeto | Documento relacionado ao evento geradoObjeto do documento de acordo com o modelo. Saiba mais |
A requisição via POST é realizada no formato application/json
:
-X POST \
-header "Content-type: application/json" \
Segue exemplo do retorno via JSON:
{
"tipo_notificacao": 2,
"data": {
"uuid": "00000000-0000-0000-0000-000000000000",
"documento_uuid": "00000000-0000-0000-0000-000000000000",
"protocolo": "0000000000000000",
"registrado_em": "2025-06-02 13:17:00",
"tipo_evento": 110112,
"descricao_evento": "Encerramento",
"cnpj_autor": "00000000000000",
"cpf_autor": "00000000000",
"resumo": false,
"data_encerramento": "2025-06-02 13:15:00",
"cidade_encerramento": "XXXXXXXX",
"uf_encerramento": "XX",
"log": {}
},
"documento": {
"uuid": "00000000-0000-0000-0000-000000000000",
"empresa_uuid": "00000000-0000-0000-0000-000000000000",
"modelo": "mdfe",
"status": "encerrado",
"categoria": "citadas",
"data_emissao": "2025-02-03 08:43:00",
"numero": 500,
...
}
}
Importante: Configuração obrigatória para gerenciar os documentos fiscais.
A API de Gestão de Documentos Fiscais funciona por meio do monitoramento automático dos documentos recebidos pelo CNPJ ou CPF das empresas cadastradas. Sem o cadastro dessas empresas, não é possível acessar os documentos fiscais.
Para cadastrar uma empresa, são necessários os seguintes dados:
Esta seção explica como gerenciar empresas na API, incluindo o cadastro, a listagem, a consulta e a atualização. O gerenciamento de empresas é essencial para o correto funcionamento da API.
Para listar as empresas cadastradas, envie uma requisição no método GET para a URL /empresas
, incluindo na URL a query string page
, que representa o número da página que deseja acessar, e o parâmetro per_page
, que define a quantidade de registros retornados por página.
curl -X GET \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
https://api.webmaniabr.com/2/gestao-documentos-fiscais/empresas?page=1&per_page=50
A resposta da requisição será um objeto JSON contendo o parâmetro data
, que é um array de objetos. Cada objeto representa uma empresa com as seguintes informações:
Parâmetro | Tipo | Descrição |
---|---|---|
uuid | string | Identificador único da empresa (UUID). |
cnpj Pessoa Jurídica | string | CNPJ da empresa. |
razao_social Pessoa Jurídica | string | Razão Social da empresa. |
cpf Pessoa Física | string | CPF da empresa. |
nome_completo Pessoa Física | string | Nome da empresa. |
endereco | objeto | Endereço da empresa. |
modelos_download | array | Modelos de documentos fiscais selecionados para download. nfe |
ambiente_download | número | Ambiente de download dos documentos fiscais. 1 - Produção |
certificado_status | número | Status do Certificado Digital A1 1 - Ativo |
certificado_vencimento | string | Data de vencimento do Certificado Digital A1, se estiver ativo. Formato: YYYY-MM-DD HH:mm:ss |
Parâmetro | Tipo | Descrição |
---|---|---|
logradouro | string | Logradouro do endereço. |
numero | string | Número do endereço. |
complemento | string | Complemento do endereço. |
bairro | string | Bairro do endereço. |
cep | string | CEP do endereço. |
municipio | string | Município da empresa. |
codigo_municipio | número | Código do município da empresa. |
estado | string | Estado da empresa. |
codigo_estado | número | Código do estado da empresa. |
pais | string | País da empresa. |
codigo_pais | número | Código do país da empresa. |
Exemplo de retorno da listagem de todas as empresas:
{
"data": [
{
"id": "00000000-0000-0000-0000-000000000000",
"cnpj": "00.000.000/0000-00",
"razao_social": "Empresa 1",
"endereco": {
"logradouro": "Rua 12",
"numero": "10",
"complemento": "Bloco 0 Apt. 000",
"bairro": "Setor A0",
"cep": "00000-000",
"municipio": "São Paulo",
"codigo_municipio": 3550308,
"estado": "SP",
"codigo_estado": 35,
"pais": "Brasil",
"codigo_pais": 1058
},
"certificado_status": 1,
"certificado_vencimento": "2025-12-01 14:00:00"
},
{
"id": "00000000-0000-0000-0000-000000000000",
"cnpj": "00.000.000/0000-00",
"razao_social": "Empresa 2",
"endereco": {
"logradouro": "Rua 20",
"numero": "5",
"complemento": "Bloco 0 Apt. 000",
"bairro": "Setor A0",
"cep": "00000-000",
"municipio": "São Paulo",
"codigo_municipio": 3550308,
"estado": "SP",
"codigo_estado": 35,
"pais": "Brasil",
"codigo_pais": 1058
},
"certificado_status": 1,
"certificado_vencimento": "2025-11-01 12:00:00"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 50,
"total": 2
}
}
Para consultar uma empresa específica, é possível informar o identificador único (UUID) diretamente no endpoint /empresas/{uuid}
.
curl -X GET \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
https://api.webmaniabr.com/2/gestao-documentos-fiscais/empresas/00000000-0000-0000-0000-000000000000
Exemplo de retorno da consulta de uma empresa específica:
{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"cnpj": "00.000.000/0000-00",
"razao_social": "Empresa 1",
"endereco": {
"logradouro": "Rua 12",
"numero": "10",
"complemento": "Bloco 0 Apt. 000",
"bairro": "Setor A0",
"cep": "00000-000",
"municipio": "São Paulo",
"codigo_municipio": 3550308,
"estado": "SP",
"codigo_estado": 35,
"pais": "Brasil",
"codigo_pais": 1058
},
"certificado_status": 1,
"certificado_vencimento": "2025-12-01 14:00:00"
}
}
Ao cadastrar uma empresa, o sistema inicia automaticamente a consulta e armazenamento dos documentos fiscais recebidos no modelo NF-e (Nota Fiscal Eletrônica) para o CNPJ ou CPF informado. Para habilitar a consulta de outros modelos, é necessário especificá-los no parâmetro modelos_download
.
modelos_download
, o processo de download ocorre automaticamente.modelos_download
, é necessário configurar o monitoramento: Para cadastrar uma empresa, envie uma requisição do tipo POST para a URL /empresas
, incluindo no corpo da requisição os seguintes parâmetros:
Parâmetro | Obrigatório | Tipo | Descrição |
---|---|---|---|
cnpj Pessoa Jurídica | string | CNPJ da empresa.00.000.000/0000-00 | |
razao_social Pessoa Jurídica | string | Razão Social da empresa. | |
cpf Pessoa Física | string | CPF da empresa.000.000.000-00 | |
nome_completo Pessoa Física | string | Nome da empresa. | |
cep | string | CEP do endereço da empresa. | |
certificado_base64 | Base64 Encode | Certificado Digital A1. Saiba mais | |
certificado_senha | string | Senha do Certificado Digital A1. | |
modelos_download | array | Modelos de documentos fiscais. OBS: O modelo NF-e é padrão. nfse | |
ambiente_download | número | Ambiente de download dos documentos fiscais. Observação: O sistema realiza o download e monitoramento dos documentos fiscais apenas no ambiente selecionado. É possível alternar entre os ambientes a qualquer momento. 1 - Produção (padrão) |
Segue abaixo exemplo para cadastrar uma empresa:
curl -X POST \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"cnpj": "00.000.000/0000-00",
"razao_social": "Empresa 1",
"cep": "00000-000",
"certificado_base64": "...",
"certificado_senha": "abc12345",
}' \
https://api.webmaniabr.com/2/gestao-documentos-fiscais/empresas
A resposta da requisição terá o parâmetro data
, que será um objeto contendo as informações da empresa cadastrada:
{
"message": "Empresa cadastrada com sucesso.",
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"cnpj": "00.000.000/0000-00",
"razao_social": "Empresa 1",
"endereco": {
"logradouro": "Rua 12",
"numero": "10",
"complemento": "Bloco 0 Apt. 000",
"bairro": "Setor A0",
"cep": "00000-000",
"municipio": "São Paulo",
"codigo_municipio": 3550308,
"estado": "SP",
"codigo_estado": 35,
"pais": "Brasil",
"codigo_pais": 1058
},
"certificado_status": 1,
"certificado_vencimento": "2025-12-01 14:00:00"
}
}
Para atualizar uma empresa, envie uma requisição do tipo PUT para a URL /empresas/{uuid}
, incluindo no corpo da requisição (body) apenas os parâmetros que deseja atualizar.
curl -X PUT \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"certificado_base64": "...",
"certificado_senha": "abc12345",
}' \
https://api.webmaniabr.com/2/gestao-documentos-fiscais/empresas/00000000-0000-0000-0000-000000000000
Parâmetro | Obrigatório | Tipo | Descrição |
---|---|---|---|
cnpj Pessoa Jurídica | string | CNPJ da empresa.00.000.000/0000-00 | |
razao_social Pessoa Jurídica | string | Razão Social da empresa. | |
cpf Pessoa Física | string | CPF da empresa.000.000.000-00 | |
nome_completo Pessoa Física | string | Nome da empresa. | |
cep | string | CEP do endereço da empresa. | |
certificado_base64 | Base64 Encode | Certificado Digital A1. Saiba mais | |
certificado_senha | string | Senha do Certificado Digital A1.Obrigatório caso seja informado o parâmetro certificado_base64 | |
modelos_download | array | Modelos de documentos fiscais selecionados para download. Observação: O download do modelo NF-e sempre será realizado de forma padrão. No entanto, os seguintes modelos também podem ser selecionados: nfse | |
ambiente_download | número | Ambiente de download dos documentos fiscais. Observação: O sistema realiza o download e monitoramento dos documentos fiscais apenas no ambiente selecionado. É possível alternar entre os ambientes a qualquer momento. 1 - Produção (padrão) |
A resposta da requisição conterá o parâmetro data
, que será um objeto com as informações da empresa atualizada. Segue exemplo:
{
"message": "Empresa atualizada com sucesso.",
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"cnpj": "00.000.000/0000-00",
"razao_social": "Empresa 1",
"endereco": {
"logradouro": "Rua 12",
"numero": "10",
"complemento": "Bloco 0 Apt. 000",
"bairro": "Setor A0",
"cep": "00000-000",
"municipio": "São Paulo",
"codigo_municipio": 3550308,
"estado": "SP",
"codigo_estado": 35,
"pais": "Brasil",
"codigo_pais": 1058
},
"certificado_status": 1,
"certificado_vencimento": "2025-12-01 14:00:00"
}
}
Após cadastrar uma empresa, é possível configurar o monitoramento de NFS-e para os municípios que exigem credenciais adicionais.
Por que essa configuração é necessária?
Download automático usando apenas o certificado digital da empresa.
Exemplos: São Paulo, Rio de Janeiro
Requerem login e senha do portal da prefeitura para download.
Exemplos: Osasco, Porto Alegre
Como funciona?
GET /municipios-nfse
Todos os endpoints desta seção são específicos por empresa: /empresas/{empresa_uuid}/municipios-nfse
Antes de configurar o monitoramento, verifique quais municípios estão disponíveis e se precisam de credenciais adicionais.
GET /municipios-nfse
Exemplo de requisição:
curl -X GET \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
https://api.webmaniabr.com/2/gestao-documentos-fiscais/municipios-nfse
Caso queira consultar a disponibilidade de apenas um município específico, pode ser enviado o parâmetro codigo_ibge
na URL como parâmetro de consulta (query string).
A resposta da requisição terá o parâmetro data
que será um array de objetos, onde cada objeto corresponderá a um município que está integrado e disponível para realizar download de NFS-e.
Parâmetro | Tipo | Descrição |
---|---|---|
municipio | string | Nome do município |
uf | string | Sigla do estado |
codigo_ibge | string | Código IBGE do município |
nativo | boolean | Indica se o município é nativo (true) ou não nativo (false) |
certificado | boolean | Indica se requer certificado digital para acesso |
login_senha | boolean | Indica se requer login e senha para acesso |
cadastro_prefeitura | boolean | Indica se requer cadastro na prefeitura |
domicilio_fiscal_municipio | boolean | Indica se requer domicílio fiscal no município |
multiplos_servicos | boolean | Indica se suporta múltiplos serviços por nota |
{
"data": [
{
"municipio": "São Paulo",
"uf": "SP",
"codigo_ibge": "3550308",
"nativo": true,
"certificado": true,
"login_senha": false,
"cadastro_prefeitura": false,
"domicilio_fiscal_municipio": false,
"multiplos_servicos": false
},
{
"municipio": "Osasco",
"uf": "SP",
"codigo_ibge": "3534401",
"nativo": false,
"certificado": false,
"login_senha": true,
"cadastro_prefeitura": false,
"domicilio_fiscal_municipio": false,
"multiplos_servicos": false
}
]
}
Lista todos os municípios configurados para monitoramento de NFS-e da empresa. A API retorna apenas os municípios não nativos cadastrados com credenciais.
A paginação de registros está disponível para esta funcionalidade. Os parâmetros page
e per_page
devem ser enviados na URL como parâmetros de consulta (query string).
curl -X GET \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-d '{}' \
https://api.webmaniabr.com/2/gestao-documentos-fiscais/empresas/00000000-0000-0000-0000-000000000000/municipios-nfse?page=1&per_page=50
{
"data": [
{
"uuid": "00000000-0000-0000-0000-000000000000",
"municipio": "Osasco",
"uf": "SP",
"codigo_ibge": "3534401",
"login": "Login123"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 50,
"total": 1
}
}
Cadastra as credenciais de acesso para um município não nativo, permitindo o download automático de NFS-e. Use este endpoint após verificar que o município requer login/senha.
Parâmetro | Obrigatório | Tipo | Descrição |
---|---|---|---|
codigo_ibge | string | Código IBGE do municípioEx: 3534401 | |
login | string | Login de acesso ao portal da prefeitura | |
senha | string | Senha de acesso ao portal da prefeitura |
curl -X POST \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"codigo_ibge": "3534401",
"login": "Login123",
"senha": "Senha123"
}' \
https://api.webmaniabr.com/2/gestao-documentos-fiscais/empresas/00000000-0000-0000-0000-000000000000/municipios-nfse
Para atualizar as informações de um município que está sendo monitorado, envie uma requisição PUT
para o endpoint /empresas/{empresa_uuid}/municipios-nfse/{uuid}
.
Parâmetro | Obrigatório | Tipo | Descrição |
---|---|---|---|
login | string | Novo login de acesso ao portal da prefeitura | |
senha | string | Nova senha de acesso ao portal da prefeitura |
curl -X PUT \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"login": "Login456",
"senha": "Senha456"
}' \
https://api.webmaniabr.com/2/gestao-documentos-fiscais/empresas/00000000-0000-0000-0000-000000000000/municipios-nfse/00000000-0000-0000-0000-000000000000
Remove o monitoramento de NFS-e para um município específico. As notas já baixadas permanecem no sistema, mas o sistema não monitorará mais novas notas.
curl -X DELETE \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
https://api.webmaniabr.com/2/gestao-documentos-fiscais/empresas/00000000-0000-0000-0000-000000000000/municipios-nfse/00000000-0000-0000-0000-000000000000
{
"msg": "O download de notas para o município Osasco - SP foi interrompido com sucesso."
}
Esta seção abrange todas as operações relacionadas aos documentos fiscais na API. Aqui você encontrará informações sobre os modelos disponíveis, categorias, como listar e buscar documentos específicos.
A API suporta os seguintes modelos de documentos fiscais:
A API trabalha com 4 modelos principais de documentos fiscais eletrônicos:
Modelo | Código | Descrição |
---|---|---|
NF-e | nfe | Nota Fiscal Eletrônica - Documento fiscal de venda de produtos |
NFS-e | nfse | Nota Fiscal de Serviço Eletrônica - Documento fiscal de prestação de serviços |
MDF-e | mdfe | Manifesto Eletrônico de Documentos Fiscais - Documento de transporte de cargas |
CT-e | cte | Conhecimento de Transporte Eletrônico - Documento fiscal de prestação de serviço de transporte |
Os documentos fiscais são organizados em categorias baseadas no papel da empresa no documento:
Categoria | Código | Descrição |
---|---|---|
Emitidas | emitidas | Documentos onde a empresa é a emitente |
Recebidas | recebidas | Documentos onde a empresa é destinatária, tomadora ou recebedora |
Citadas | citadas | Documentos onde a empresa é mencionada mas não é emitente nem destinatária principal |
A API de Gestão de Documentos Fiscais realiza a consulta automática de documentos fiscais recebidos pelo CNPJ/CPF das empresas assim que a empresa é cadastrada.
Ao identificar novos documentos fiscais, a API realiza o download automático dos arquivos XML correspondentes, garantindo que as informações estejam sempre atualizadas e disponíveis.
O processo de consulta ocorre de forma periódica a cada hora. Essa é uma limitação da própria Sefaz/Prefeituras. Portanto, pode demorar até uma hora para que um documento recebido pelo CNPJ/CPF da empresa esteja disponível na API.
A tabela abaixo lista as condições de participação da empresa no documento fiscal para que o sistema realize o download:
Tipo | Descrição | |
---|---|---|
Emitente | ❌ | O sistema não realiza o download do documento fiscal quando a empresa é a própria emitente. A legislação determina que o emitente deve armazenar por 5 anos o XML do documento emitido. |
Destinatário | ✅ | O sistema realiza o download da versão completa do XML do documento quando a empresa manifesta o recebimento. A Webmania realiza automaticamente a manifestação como "Ciência da Operação" se o documento estiver dentro do prazo de 10 dias após a emissão. Caso contrário, será necessário realizar a manifestação manualmente. Saiba mais |
Transportador | ✅ | O sistema realiza o download da versão completa do XML quando a empresa está informada como transportador no documento fiscal, indicado no grupo X03 do XML. |
Terceiros | ✅ | O sistema realiza o download da versão completa do XML quando o CNPJ/CPF da empresa está indicado na tag autXML do documento fiscal. |
Para buscar um documento específico, é possível informar o identificador único (UUID) diretamente no endpoint: /documentos/{uuid}
.
Exemplo de requisição para buscar um documento específico:
curl -X GET \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
https://api.webmaniabr.com/2/gestao-documentos-fiscais/documentos/00000000-0000-0000-0000-000000000000
A resposta retornará as informações completas do documento solicitado no parâmetro data
.
Ao consultar individualmente um documento pelo UUID, o parâmetro docs
também estará na resposta da requisição, contendo os seguintes campos:
O campo xml
é retornado como texto puro, pronto para ser salvo ou processado. No entanto, o campo pdf
estará comprimido para reduzir o tamanho da resposta e também codificado em Base64 para garantir compatibilidade com JSON. Portanto, para acessar o PDF é necessário realizar os seguintes passos:
$base64 = $response['docs']['pdf']; // String em Base64 da resposta
$gzippedContent = base64_decode($base64); // Decodificar string
$pdfContent = gzdecode($gzippedContent); // Descompactar Gzip
file_put_contents('documento.pdf', $pdfContent); // Salvar arquivo PDF
const fs = require('fs');
const zlib = require('zlib');
const base64 = response.docs.pdf; // String em Base64 da resposta
const gzippedBuffer = Buffer.from(base64, 'base64'); // Decodificar a string
zlib.gunzip(gzippedBuffer, (err, pdfBuffer) => { // Descompactar Gzip
if (!err) {
fs.writeFileSync('documento.pdf', pdfBuffer); // Salvar arquivo PDF
}
});
Para listar os documentos fiscais, envie a requisição no método POST para a URL /documentos
.
A paginação está disponível na listagem dos documentos fiscais, mais informações sobre como utilizar este recurso estão disponíveis aqui.
A tabela abaixo lista os parâmetros que devem ser enviados no corpo (body) da requisição.
Parâmetro | Obrigatório | Tipo | Descrição |
---|---|---|---|
modelo | string | Modelo do Documento Fiscal: nfe |
Exemplo de requisição para listar os documentos fiscais:
curl -X POST \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"modelo": "nfe"
}' \
https://api.webmaniabr.com/2/gestao-documentos-fiscais/documentos
A resposta da requisição terá o parâmetro data
, que será um array de objetos contendo as seguintes informações dos documentos fiscais:
Parâmetro | Tipo | Descrição |
---|---|---|
id | string | Identificador único do documento (UUID). |
empresa_id | string | Identificador único (UUID) da empresa vinculada ao documento. |
modelo | string | Modelo do documento.nfe |
data_emissao | string | Data de emissão.Formato: YYYY-MM-DD HH:mm:ss |
chave | string | Chave de acesso. |
serie | número | Série do documento. |
numero | número | Número do documento. |
status | string | Status do documento. aprovado |
valor | número | Valor do documento.0.00 |
finalidade | número | Finalidade do documento. 1 - Normal |
operacao | número | Tipo de operação. 0 - Entrada |
ncm | array | NCM dos produtos. |
cfop | array | CFOP da operação. |
{
"data": [
{
"uuid": "00000000-0000-0000-0000-000000000000",
"empresa_uuid": "00000000-0000-0000-0000-000000000000",
"modelo": "nfe",
"status": "aprovado",
"categoria": "recebidas",
"data_emissao": "2025-02-27 13:17:00",
"numero": 200,
"serie": 1,
"chave": "00000000000000000000000000000000000000000000",
"valor": 6200,
"operacao": 0,
"finalidade": 1,
"cfop": ["2909"],
"emitente": {
"cnpj": "00000000000000",
"razao_social": "XXXXXXX XXXXXXXXXX XXXXX",
"ie": "000000000000",
"uf": "SP"
},
"totais": {
"icms_bc": 0,
"icms_valor": 0,
"icms_st_bc": 0,
"icms_st_valor": 0,
"valor_produtos": 6700,
"valor_frete": 0
},
"docs": {
"xml": "https://api.webmaniabr.com/2/gestao-documentos-fiscais/documentos/00000000-0000-0000-0000-000000000000/xml",
"pdf": "https://api.webmaniabr.com/2/gestao-documentos-fiscais/documentos/00000000-0000-0000-0000-000000000000/pdf"
}
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 50,
"total": 1
}
}
Os filtros permitem personalizar as consultas de documentos fiscais, garantindo que você obtenha exatamente os registros desejados de maneira eficiente.
Os parâmetros responsáveis por filtrar os registros devem ser enviados no corpo (body) da requisição, e variam conforme o modelo de documento que está sendo consultado.
A tabela abaixo lista todos os parâmetros disponíveis para cada modelo:
Parâmetro | Obrigatório | Tipo | Descrição |
---|---|---|---|
modelo | string | Modelo do documento fiscal. nfe | |
empresa_uuid | string | Identificador único (UUID) da empresa vinculada ao documento. | |
categoria | string | Categoria dos documentos. emitidas | |
data_inicial | string | Data de emissão inicial.Formato: YYYY-MM-DD | |
data_final | string | Data de emissão final.Formato: YYYY-MM-DD | |
chave | string | Chave de acesso. | |
serie | número | Série do documento. | |
numero | número | Número do documento. | |
status | string | Status do documento. aprovado | |
finalidade | número | Finalidade do documento. 1 - Normal | |
operacao | número | Tipo de operação. 0 - Entrada | |
ncm | string | NCM do produto.00000000 | |
cfop | string | CFOP da operação.0000 | |
pesquisa | string | Pesquisa por campos de texto do documento: A pesquisa do texto informado é realizada nos seguintes campos: |
Exemplo de utilização dos filtros:
{
"modelo": "nfe",
"data_inicial": "2024-12-01",
"data_final": "2024-12-31",
"status": "aprovado",
"pesquisa": "Venda"
}
Os relatórios permitem exportar o XML, ou visualizar as informações em planilha Excel ou CSV dos registros, facilitando a análise, gerenciamento e o controle dos documentos fiscais.
Para realizar a exportação, envie a requisição no método POST para a URL /documentos
.
A tabela abaixo lista os parâmetros que devem ser enviados no corpo (body) da requisição:
Parâmetro | Obrigatório | Tipo | Descrição |
---|---|---|---|
modelo | string | Modelo do Documento Fiscal: nfe | |
relatorio | string | Relatório a ser exportado: xml | |
url_notificacao | string | URL para envio da notificação após a exportação ser concluída. Saiba mais |
Os filtros também podem ser utilizados na exportação de relatórios para selecionar os registros desejados, a lista com todos os filtros disponíveis pode ser encontrada aqui.
Exemplo de requisição para solicitar a exportação de um relatório:
curl -X POST \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"modelo": "nfe",
"relatorio": "xml",
"url_notificacao": "http://meudominio.com/retorno.php",
"data_inicial": "2024-12-01",
"data_final": "2024-12-31",
"finalidade": 4, // Notas de devolução
}' \
https://api.webmaniabr.com/2/gestao-documentos-fiscais/consulta
A resposta da requisição terá o parâmetro data
, que será um objeto contendo as informações do relatório gerado, exemplo:
{
"message": "Relatório criado com sucesso. A exportação está sendo executada em segundo plano.",
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"relatorio": "xml",
"modelo": "nfe",
"status": "processando",
"processado": 0, // Progresso da exportação
"total": 120 // Total de registros encontrados
}
}
A exportação dos relatórios é executada em segundo plano e o tempo para finalizar a exportação pode variar dependendo do volume de dados e dos filtros aplicados.
Ao executar a mesma requisição na API, o parâmetro processado
é alterado para que seja acompanhado o progresso da exportação,
recomendamos que as requisições sejam realizadas em um intervalo de no mínimo 5 segundos.
Ao concluir a exportação, o parâmetro status
é alterado para concluido
e serão adicionados os parâmetros url
com o link para download do relatório e
o parâmetro expira_em
com a data de expiração do relatório.
Exemplo de retorno após a exportação ser concluída:
{
"message": "Relatório exportado com sucesso.",
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"relatorio": "xml",
"modelo": "nfe",
"status": "concluido",
"processado": 120,
"total": 120,
"url": "https://api.webmaniabr.com/2/gestao-documentos-fiscais/relatorios/00000000-0000-0000-0000-000000000000",
"expira_em": "2024-12-31 15:20:10",
}
}
Caso tenha informado o parâmetro url_notificacao
, o retorno também será enviado no formato POST para a URL especificada.
A Manifestação do Destinatário é um conjunto de eventos que permitem que o destinatário da NF-e possa apontar a sua participação comercial descrita no documento fiscal, confirmando e controlando as operações e informações prestadas pelo seu fornecedor, que é o emissor do documento.
Para realizar a manifestação, envie a requisição no método POST para a URL /documentos/{id}/eventos
, onde {id}
corresponde ao identificador único (UUID) do documento fiscal que será manifestado.
A tabela abaixo lista os parâmetros que devem ser enviados no corpo (body) da requisição:
Parâmetro | Obrigatório | Tipo | Descrição |
---|---|---|---|
evento | número | Código do evento que será realizado.1 - Manifestação do Destinatário | |
manifestacao | número | Participação comercial do destinatário na nota fiscal. 1 - Confirmação da Operação | |
justificativa | string | *Deve ser enviado somente se a manifestação for 3 - Operação não realizada |
Exemplo de requisição para realizar a manifestação:
curl -X POST \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"evento": 1,
"manifestacao": 1 // Confirmação da operação
}' \
https://api.webmaniabr.com/2/gestao-documentos-fiscais/documentos/00000000-0000-0000-0000-000000000000/eventos
A resposta da requisição terá o parâmetro data
, que será um objeto contendo as seguintes informações do evento gerado:
Parâmetro | Tipo | Descrição |
---|---|---|
uuid | string | Número único de identificação (UUID) do evento gerado. |
documento_uuid | string | Número único de identificação (UUID) do documento fiscal vinculado ao evento gerado. |
registrado_em | string | Data de registro do evento. Formato: YYYY-MM-DD HH:mm:ss |
evento | número | Código do evento gerado. 1 - Manifestação do Destinatário |
manifestacao | número | Código da manifestação realizada. 1 - Confirmação da Operação |
log | objeto | Log de retorno da Sefaz/Prefeitura. |
Exemplo de retorno:
{
"message": "Evento registrado com sucesso.",
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"documento_id": "00000000-0000-0000-0000-000000000000",
"registrado_em": "2024-12-15 12:56:40",
"evento": 1,
"manifestacao": 1,
"log": {}
}
}
Para listar todos os eventos vinculados a um documento fiscal, envie uma requisição GET para o endpoint /documentos/{uuid}/eventos
.
GET /documentos/{uuid}/eventos
curl -X GET \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
https://api.webmaniabr.com/2/gestao-documentos-fiscais/documentos/00000000-0000-0000-0000-000000000000/eventos
A resposta da requisição terá o parâmetro data
que será um array de objetos, onde cada objeto corresponderá a um evento do documento fiscal.
💡 Registrar eventos de manifestação: Para manifestar participação em documentos fiscais (confirmação, ciência, desconhecimento, operação não realizada), utilize o endpoint específico.
Evento | Tipo | Objetivo |
---|---|---|
Carta de correção | 110110 | Corrigir erros no documento fiscal sem a necessidade de cancelar e reemitir o documento |
Cancelamento | 110111 | Anular o documento fiscal autorizado quando a operação não se concretizar |
Confirmação da operação | 210200 | Destinatário do documento fiscal confirmar que a operação ocorreu conforme descrito no documento |
Ciência da operação | 210210 | Destinatário apenas declarar ter conhecimento da emissão do documento fiscal |
Desconhecimento da operação | 210220 | Destinatário informar que não reconhece a operação descrita no documento fiscal |
Operação não realizada | 210240 | Destinatário informar que a operação não foi realizada |
Registro de autorização de CT-e | 610600 | Indicar que houve aprovação de um CT-e em que a NF-e está referenciada |
Registro de cancelamento de CT-e | 610601 | Indicar que houve cancelamento de um CT-e em que a NF-e está referenciada |
Comprovante de entrega de CT-e | 610130 | Comprovar a entrega das mercadorias transportadas por um CT-e em que a NF-e está referenciada |
Registro de autorização de MDF-e | 610614 | Indicar que houve aprovação de um MDF-e em que a NF-e está referenciada |
Registro de cancelamento de MDF-e | 610615 | Indicar que houve cancelamento de um MDF-e em que a NF-e está referenciada |
Registro de passagem automático | 510630 | Registrar automaticamente a passagem de um veículo em pedágios transportando mercadorias documentadas em um MDF-e em que a NF-e está referenciada |
Registro de passagem em posto fiscal | 610500 | Registrar a passagem das mercadorias transportadas em um posto fiscal |
Registro de passagem propagado | 610514 | Registrar passagem em postos fiscais das mercadorias transportadas documentadas em um MDF-e, que possui um CT-e referenciando a NF-e |
📄 Exemplos JSON de Retorno: Cada evento retorna uma estrutura específica. Para ver exemplos detalhados, consulte a documentação oficial ou utilize o endpoint de busca de eventos após registrar uma manifestação.
POST /documentos/{uuid}/eventos
Evento | Valor do Parâmetro | Documentos Suportados |
---|---|---|
Cancelamento | cancelamento | NF-e, NFC-e, CT-e, MDF-e |
Carta de Correção | carta_correcao | NF-e, NFC-e |
Encerramento | encerramento | MDF-e |
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
tipo | string | Tipo do evento: cancelamento , carta_correcao ou encerramento | |
justificativa | string | Justificativa do evento (mínimo 15 caracteres) | |
protocolo_autorizacao | string | Protocolo de autorização (obrigatório para cancelamento) | |
correcao | string | Texto da correção (obrigatório para carta de correção) | |
data_encerramento | string | Data do encerramento no formato YYYY-MM-DD (obrigatório para encerramento de MDF-e) | |
codigo_municipio | string | Código do município de encerramento (obrigatório para encerramento de MDF-e) | |
uf | string | UF de encerramento (obrigatório para encerramento de MDF-e) |
{
"tipo": "cancelamento",
"justificativa": "Erro na digitação dos dados do produto",
"protocolo_autorizacao": "135200000000000"
}
{
"tipo": "carta_correcao",
"justificativa": "Correção de dados do cliente",
"correcao": "O endereço correto do cliente é Rua ABC, 123"
}
{
"tipo": "encerramento",
"justificativa": "Encerramento da operação de transporte",
"data_encerramento": "2025-01-15",
"codigo_municipio": "3550308",
"uf": "SP"
}
{
"message": "Evento registrado com sucesso",
"protocolo": "135200000000001",
"data_evento": "2025-01-15T14:30:00.000000Z"
}
Para realizar a manifestação do destinatário em documentos fiscais (NF-e), envie uma requisição no método POST
para o endpoint /documentos/{uuid}/eventos
, onde {uuid}
corresponde ao identificador único (UUID) do documento fiscal que será manifestado.
POST /documentos/{uuid}/eventos
Parâmetro | Obrigatório | Tipo | Descrição |
---|---|---|---|
evento | número | Tipo do evento de manifestação1 - Manifestação do Destinatário | |
manifestacao | número | Tipo de manifestação: 1 - Confirmação da Operação |
curl -X POST \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"evento": 1,
"manifestacao": 1 // Confirmação da operação
}' \
https://api.webmaniabr.com/2/gestao-documentos-fiscais/documentos/00000000-0000-0000-0000-000000000000/eventos
{
"uuid": "00000000-0000-0000-0000-000000000000",
"documento_uuid": "00000000-0000-0000-0000-000000000000",
"registrado_em": "2024-12-15 12:56:40",
"evento": 1,
"manifestacao": 1,
"log": {}
}
A manifestação do destinatário é obrigatória para ter acesso ao XML completo de NF-e recebidas. A WebmaniaBR realiza automaticamente a manifestação como "Ciência da Operação" para documentos dentro do prazo de 10 dias após a emissão.
A API oferece filtros avançados para refinamento das consultas de documentos.
Você pode filtrar documentos por período usando os parâmetros de data:
{
"data_inicio": "2025-01-01",
"data_fim": "2025-01-31"
}
{
"data_inicio": "2025-01-08",
"data_fim": "2025-01-15"
}
Combine múltiplos filtros para consultas mais específicas:
{
"modelos": ["nfe"],
"categorias": ["emitidas"],
"status": ["aprovado"],
"data_inicio": "2025-01-01",
"data_fim": "2025-01-31"
}
{
"modelos": ["nfe", "nfce", "cte", "mdfe"],
"status": ["cancelado"],
"data_inicio": "2025-01-01",
"data_fim": "2025-01-31"
}
{
"cnpj_cpf": "00000000000000",
"categorias": ["emitidas", "recebidas"]
}
Selecione um ou mais modelos de documentos para filtrar
Filtre por documentos emitidos, recebidos ou citados
Consulte documentos por seu status atual
Defina períodos específicos para suas consultas
Para realizar a exportação de relatórios dos documentos fiscais, envie uma requisição POST para o endpoint /documentos
.
📋 Filtros disponíveis: Os filtros de documentos fiscais podem ser utilizados nesta funcionalidade. Saiba mais sobre filtros.
Para exportar os dados em formato CSV, adicione o parâmetro formato
na requisição:
{
"modelos": ["nfe"],
"data_inicio": "2025-01-01",
"data_fim": "2025-01-31",
"formato": "csv"
}
A resposta incluirá um link para download do arquivo CSV:
{
"download_url": "https://api.webmaniabr.com/downloads/documentos_2025_01.csv",
"expires_at": "2025-01-16T00:00:00.000000Z"
}
Para grandes volumes de dados, use a exportação em lote:
{
"modelos": ["nfe", "nfce", "cte", "mdfe"],
"data_inicio": "2025-01-01",
"data_fim": "2025-12-31",
"formato": "zip",
"incluir_xml": true,
"incluir_pdf": true
}
O sistema processará a requisição e enviará um e-mail quando o arquivo estiver pronto.
Para realizar a exportação de relatórios dos documentos fiscais, envie uma requisição POST
para o endpoint /documentos
.
POST /documentos
A tabela abaixo lista os parâmetros que devem ser enviados no corpo (body) da requisição:
Parâmetro | Obrigatório | Tipo | Descrição |
---|---|---|---|
modelo | string | Modelo do Documento Fiscal: nfe | |
relatorio | string | Tipo de relatório: xml - Arquivo compactado com os XMLs | |
url_notificacao | string | URL para notificação quando o relatório estiver pronto.A URL receberá um POST com o status da exportação | |
... | vários | Filtros adicionais conforme seção de Filtros para cada modelo. |
Os filtros de documentos fiscais podem ser utilizados nesta funcionalidade, a seção de Filtros lista os filtros disponíveis para cada modelo.
curl -X POST \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"modelo": "nfe",
"relatorio": "xml",
"url_notificacao": "http://meudominio.com/retorno.php",
"data_inicial": "2024-12-01",
"data_final": "2024-12-31",
"finalidade": 4
}' \
https://api.webmaniabr.com/2/gestao-documentos-fiscais/documentos
A resposta da requisição será um objeto contendo as informações do relatório gerado:
{
"uuid": "00000000-0000-0000-0000-000000000000",
"relatorio": "xml",
"modelo": "nfe",
"status": "processando",
"processado": 0,
"total": 120
}
A exportação dos relatórios é executada em segundo plano e o tempo para finalizar a exportação pode variar dependendo do volume de dados e dos filtros aplicados. Ao executar a mesma requisição na API, o parâmetro processado
é atualizado para que seja acompanhado o progresso da exportação.
Ao concluir a exportação, o parâmetro status
é alterado para concluido
e serão adicionados os parâmetros url
com o link para download do relatório e o parâmetro expira_em
com a data de expiração do relatório.
{
"uuid": "00000000-0000-0000-0000-000000000000",
"relatorio": "xml",
"modelo": "nfe",
"status": "concluido",
"processado": 120,
"total": 120,
"url": "https://api.webmaniabr.com/2/gestao-documentos-fiscais/documentos/relatorios/00000000-0000-0000-0000-000000000000",
"expira_em": "2024-12-31 15:20:10"
}
Observação: Caso tenha informado o parâmetro url_notificacao
na requisição do relatório, o retorno acima também será enviado no formato POST
para a URL especificada.
Para realizar a manifestação, envie a requisição no método POST
para o endpoint /documentos/{uuid}/eventos
, onde {uuid}
corresponde ao identificador único (UUID) do documento fiscal que será manifestado.
POST /documentos/{uuid}/eventos
A tabela abaixo lista os parâmetros que devem ser enviados no corpo (body) da requisição:
Parâmetro | Obrigatório | Tipo | Descrição |
---|---|---|---|
evento | número | Tipo de evento: 1 - Manifestação do destinatário | |
manifestacao | número | Tipo de manifestação: 1 - Confirmação da operação |
curl -X POST \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"evento": 1,
"manifestacao": 1
}' \
https://api.webmaniabr.com/2/gestao-documentos-fiscais/documentos/00000000-0000-0000-0000-000000000000/eventos
A resposta da requisição será um objeto contendo as seguintes informações do evento gerado:
{
"uuid": "00000000-0000-0000-0000-000000000000",
"documento_uuid": "00000000-0000-0000-0000-000000000000",
"registrado_em": "2024-12-15 12:56:40",
"evento": 1,
"manifestacao": 1,
"log": {}
}
O servidores da Webmania estão localizados na Amazon AWS, líder global em cloud computing, na região us-east-1 (Leste dos EUA) com ponto de presença em sa-east-1 (São Paulo). Manter a sua estrutura perto de algumas das duas localidades, garante um menor tempo de resposta nas requisições na API.
Utilizamos uma infraestrutura na Amazon AWS anycast de alta disponibilidade, o que significa que ao se comunicar com API da Webmania a requisição será redirecionada para o servidor mais próximo da sua localidade. As requisições dos endpoints são gerenciados através de IPs estáticos, caso necessite autorize no firewall a comunicação com os IPs abaixo.
IPs estáticos de entrada:A Webmania® aplica um limite de solicitações por segundo e total requisições por mês de acordo com o plano escolhido, calculado com a soma das solicitações do lado do cliente e do lado do servidor. Se o aplicativo exceder o limite inicial, apresentará falhas.
https://webmaniabr.com/api/
retorne 403 Erro Forbidden entre em contato para liberarmos o IP do seu servidor.