Como consultar nota fiscal por parâmetro
Ao final desse tutorial, você será capaz de:
1. Buscar notas fiscais de uma empresa
2. Buscar notas fiscais na API por parâmetros (elasticsearch query string)
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.
-
Clicar no botão "Send" (Enviar) para completar a requisição.
-
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émIssued
q=status:Issued
- onde o campo
buyer.name
contémJoão
ouPedro
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.