Listar solicitações de um pedido
curl --request GET \
--url https://api.example.com/api/v1/external/fiscal/numberingimport requests
url = "https://api.example.com/api/v1/external/fiscal/numbering"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/v1/external/fiscal/numbering', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/external/fiscal/numbering",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/external/fiscal/numbering"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/v1/external/fiscal/numbering")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/external/fiscal/numbering")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"items": [
{
"fiscalRequestId": "9afef543-56ce-4911-a92e-5908366fa980",
"orderCode": "EC-K004-42-1786579046934",
"countryCode": "EC",
"requestStatus": "GENERATED",
"documentStatus": "AUTHORIZED",
"document": {
"documentType": "SALE_INVOICE",
"documentNumber": "005-004-000000045"
},
"failure": null
},
{
"fiscalRequestId": "c1d9e0a2-77b4-4f10-9f3e-2b0c5d6a1e88",
"orderCode": "EC-K004-42-1786579046934",
"countryCode": "EC",
"requestStatus": "GENERATED",
"documentStatus": "AUTHORIZED",
"document": {
"documentType": "CREDIT_NOTE",
"documentNumber": "005-004-000000046",
"compensates": { "documentNumber": "005-004-000000045" }
},
"failure": null
}
]
}
}
{
"success": true,
"data": { "items": [] }
}
API
Listar solicitações de um pedido
Busca solicitações de numeração por código do pedido, chave de acesso ou estado. Um pedido pode ter mais de um documento.
GET
/
api
/
v1
/
external
/
fiscal
/
numbering
Listar solicitações de um pedido
curl --request GET \
--url https://api.example.com/api/v1/external/fiscal/numberingimport requests
url = "https://api.example.com/api/v1/external/fiscal/numbering"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/v1/external/fiscal/numbering', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/external/fiscal/numbering",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/external/fiscal/numbering"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/v1/external/fiscal/numbering")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/external/fiscal/numbering")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"items": [
{
"fiscalRequestId": "9afef543-56ce-4911-a92e-5908366fa980",
"orderCode": "EC-K004-42-1786579046934",
"countryCode": "EC",
"requestStatus": "GENERATED",
"documentStatus": "AUTHORIZED",
"document": {
"documentType": "SALE_INVOICE",
"documentNumber": "005-004-000000045"
},
"failure": null
},
{
"fiscalRequestId": "c1d9e0a2-77b4-4f10-9f3e-2b0c5d6a1e88",
"orderCode": "EC-K004-42-1786579046934",
"countryCode": "EC",
"requestStatus": "GENERATED",
"documentStatus": "AUTHORIZED",
"document": {
"documentType": "CREDIT_NOTE",
"documentNumber": "005-004-000000046",
"compensates": { "documentNumber": "005-004-000000045" }
},
"failure": null
}
]
}
}
{
"success": true,
"data": { "items": [] }
}
Retorna
O tenant sai da chave. Você só vê solicitações da sua própria conta.
items[] com o mesmo contrato que
POST /numbering, um por solicitação.
É um array e não um objeto por um motivo concreto: um pedido pode ter dois
documentos — a nota e o cancelamento que a compensa. Se você assumir que há
apenas um, no dia em que uma venda for cancelada vai ler o documento errado.
Este é o que você usa quando perdeu a resposta. O
orderCode é a única coisa
que você certamente tem em mãos: foi você quem o escolheu antes de numerar. O
fiscalRequestId fomos nós que devolvemos, então se a rede caiu você não o tem.Autenticação
| Header | x-api-key: pk_live_… |
| Scope | fiscal:write |
Parâmetros de consulta
string
O código do pedido com o qual se numerou. É o filtro que você vai usar 99% das
vezes.
string
Chave de acesso do órgão (
claveAcceso no Equador). Serve para o caminho
inverso: você tem o número impresso num ticket e quer saber de qual pedido saiu.string
Filtra por como terminou o ato de numerar. Um de:
REQUESTED, GENERATED,
PENDING, FAILED_RETRYABLE, FAILED_FINAL, UNAVAILABLE.string
Filtra pelo veredito do órgão. Um de:
PENDING, AUTHORIZED, REJECTED,
CANCELLED.integer
padrão:"1"
Página, começando em 1.
integer
padrão:"20"
Resultados por página. Entre 1 e 100.
Para conciliar, não filtre por
documentStatus. Uma venda cuja numeração
falhou nunca chega a ter veredito do órgão, então filtrar por AUTHORIZED a
deixa fora do relatório — e é justamente a que precisa ser olhada. Filtre por
orderCode e ramifique do seu lado por requestStatus.Resposta
{
"success": true,
"data": {
"items": [
{
"fiscalRequestId": "9afef543-56ce-4911-a92e-5908366fa980",
"orderCode": "EC-K004-42-1786579046934",
"countryCode": "EC",
"requestStatus": "GENERATED",
"documentStatus": "AUTHORIZED",
"document": {
"documentType": "SALE_INVOICE",
"documentNumber": "005-004-000000045"
},
"failure": null
},
{
"fiscalRequestId": "c1d9e0a2-77b4-4f10-9f3e-2b0c5d6a1e88",
"orderCode": "EC-K004-42-1786579046934",
"countryCode": "EC",
"requestStatus": "GENERATED",
"documentStatus": "AUTHORIZED",
"document": {
"documentType": "CREDIT_NOTE",
"documentNumber": "005-004-000000046",
"compensates": { "documentNumber": "005-004-000000045" }
},
"failure": null
}
]
}
}
{
"success": true,
"data": { "items": [] }
}
Um pedido que não foi numerado retorna
items: [], não um 404. Não é erro:
é a resposta correta para “quais documentos este pedido tem?” quando não tem
nenhum.Erros
| Código | Quando |
|---|---|
400 | Nenhum filtro utilizável, ou um valor fora do enum |
401 | A API key falta, não existe ou está revogada |
403 | A key não tem o scope fiscal:write |
Relacionado
- Solicitar numeração fiscal — o
POSTque a cria - Consultar uma solicitação — quando você tem o
fiscalRequestId - Guia de integração fiscal — o fluxo completo ponta a ponta

