Pular para o conteúdo principal

Como consultar nota fiscal por parâmetro

A consulta de notas fiscais por parâmetro é uma funcionalidade que permite buscar notas fiscais eletrônicas (NF-e) com base em critérios específicos, como CNPJ do destinatário, status da nota, entre outros. Isso facilita a localização de notas fiscais específicas sem a necessidade de consultar uma a uma.

Outros passos

1. Pegar chave de autorização na plataforma.
2. Instalar e importar url no postman
3. Emitir nota fiscal de produto

1. Consultar notas fiscais de uma empresa

Para consultar as notas fiscais de uma empresa, utilizaremos a url abaixo.

GET: http://api.nfse.io/v2/companies/{companyId}/productinvoices?environment=test

Obs: Substitua {companyId} pela ID de sua empresa. O parâmetro {environment} não pode ser nulo, preencha-o com production ou test. Nesse tutorial usaremos o ambiente de teste.

Utilizaremos o método HTTP do tipo "GET", portanto, verifique no seu postman se está selecionado a opção corretamente.

  1. Clicar no botão "Send" (Enviar) para completar a requisição.
  2. Será retornado alguns dados e uma lista com as notas fiscais dessa empresa.

2. Consultar notas fiscais via elasticsearch

O Elasticsearch é um mecanismo de busca e análise de dados distribuído e open source para todos os tipos de dados, incluindo textuais, numéricos, geoespaciais, estruturados e não estruturados. Através dele, conseguiremos fazer buscas de notas fiscais por diversos tipos de parâmetros e dados.

Veja abaixo um exemplo simples de uma busca por notas fiscais pelo CNPJ do destinatário.

GET: http://api.nfse.io/v2/companies/{companyId}/productinvoices?environment=test&q=buyer.federalTaxNumber:8662968678

O parâmetro q, é onde passaremos a query string do elasticsearch.

Nesse caso, a query q=buyer.federalTaxNumber:8662968678 corresponde ao campo do JSON da nota fiscal que temos da API, como no exemplo abaixo.

{
"buyer": {
"name": "João",
"address": {
"city": {
"code": "3550308",
"name": "jundiai"
},
"state": "SP",
"district": "centro",
"street": "rua petronilha antunes",
"postalCode": "13207760",
"number": "204",
"country": "BRA"
},
"federalTaxNumber": 8662968678
},
"items": [{
"code": "2617",
"unitAmount": 9.98,
"quantity": 5,
"cfop": 5102,
"ncm": "47079000",
"codeGTIN": "SEM GTIN",
"codeTaxGTIN": "SEM GTIN",
"tax": {
"totalTax": 6,
"icms": {
"amount": 6,
"rate": 18,
"baseTax": 33.25,
"baseTaxSTReduction": "33.33",
"baseTaxModality": "3",
"cst": "20",
"origin": "0"
},
"pis": {
"amount": 0,
"rate": 0,
"baseTax": 0,
"cst": "06"
},
"cofins": {
"amount": 0,
"rate": 0,
"baseTax": 0,
"cst": "06"
}
},
"cest": "",
"description": "FEIJAO CAMIL 500G NF ENTRADA 1030099 14\/05\/2018"
}]
}

Se quiséssemos consultar as notas fiscais pelo nome do destinatário, faríamos a seguinte query:

q=buyer.name:"João"

Perceba que temos um leque bem amplo de possibilidades e com certeza você poderá implementar os filtros ideais para o seu negócio.

3. Sintaxe da string de consulta

A string de consulta é analisada em uma série de termos e operadores. Um termo pode ser uma única palavra - João ou Pedro - ou uma frase, entre aspas duplas - "João Pedro" - que procura todas as palavras na frase, na mesma ordem.

Os operadores permitem que você personalize a pesquisa. Veja abaixo as opções disponíveis.

Nomes dos campos

Você pode especificar campos para pesquisar na sintaxe da consulta:

  • onde o campo status contém Issued

q=status:Issued

  • onde o campo buyer.name contém João ou Pedro

q=buyer.name:(João OR Pedro)

  • onde o campo buyer.name contém exatamente a frase "João Pedro"

q=buyer.name:"João Pedro"

Intervalos

Intervalos podem ser especificados para compos do tipo date, numeric ou string.

  • Todos os dias de 2019

q=createdOn:[2019-01-01 TO 2019-12-31]

  • Números 1...5

q=number:[1 TO 5]

  • Números de 10 em diante

q=number:[10 TO *]

Combinações

Os operadores booleanos AND, OR e NOT (&&, || e !) também são suportados, mas cuidado, nesses casos os parênteses devem ser usados sempre que múltiplos operadores são usados juntos. Por exemplo:

q=status:(Issued OR Cancelled) AND buyer.name:(João OR Pedro) AND createdOn:[2020-01-01 TO 2020-01-31]

Esta consulta irá trazer todas as notas fiscais que foram emitidas ou canceladas, em que o campo do nome do destinatário contém o nome "João" ou "Pedro", no dia 01/01/2020 até 31/01/2020.

Para saber mais sobre "Query String", acesse a documentação do elasticsearch.