Pular para o conteúdo principal

Paginação

Os métodos list() retornam um Nfe\Util\ListResponse com os itens hidratados em ->data e os metadados de paginação em ->page. Não há iterador auto-paginante — para avançar, chame list() de novo com a próxima página ou o próximo cursor.

Nfe\Util\ListResponse

Tem dois membros públicos:

  • ->data — o array de DTOs hidratados (list<T>).
  • ->page — um Nfe\Util\ListPage com os metadados de paginação.
$page = $nfe->serviceInvoices->list($companyId, ['pageIndex' => 1, 'pageCount' => 50]);

foreach ($page->data as $invoice) {
echo $invoice->id, PHP_EOL;
}

$ids = array_map(fn($i) => $i->id, $page->data);

Nfe\Util\ListPage

Os endpoints da NFE.io paginam em uma de duas formas, e cada recurso preenche apenas a metade relevante (a outra fica null):

  • Por página->pageIndex / ->pageCount.
  • Por cursor->startingAfter / ->endingBefore.

->total é opcional e pode aparecer em qualquer uma das formas.

pageIndex é 1-based

O primeiro índice de página é 1, não 0 — em serviceInvoices, consumerInvoices, companies e taxCodes. Pedir pageIndex => 0 não retorna a primeira página.

Qual recurso usa qual forma

RecursoForma de paginação
serviceInvoices->list()por página (pageIndex 1-based / pageCount)
consumerInvoices->list()por página
companies->list()por página (+ listAll() client-side)
taxCodes->list*()por página (pageCount máx. 50; resposta própria)
productInvoices->list()por cursor (startingAfter / limit) — environment obrigatório
stateTaxes->list()por cursor

Por página: serviceInvoices

$page = $nfe->serviceInvoices->list($companyId, [
'pageIndex' => 1,
'pageCount' => 50,
]);

// Próxima página:
$page2 = $nfe->serviceInvoices->list($companyId, [
'pageIndex' => 2,
'pageCount' => 50,
]);

serviceInvoices também aceita filtros de data como issuedBegin e issuedEnd nas mesmas opções.

Por cursor: productInvoices

environment é obrigatório

Em productInvoices->list(), o argumento $options é obrigatório (não tem default) e precisa conter environment — uma string "Production" ou "Test" (o ambiente da SEFAZ).

$page = $nfe->productInvoices->list($companyId, [
'environment' => 'Production',
'limit' => 50,
]);

// Avance usando o cursor da página anterior:
$next = $nfe->productInvoices->list($companyId, [
'environment' => 'Production',
'startingAfter' => $page->page->startingAfter,
'limit' => 50,
]);

Auto-paginação client-side: companies->listAll()

companies oferece um helper que percorre todas as páginas por você e devolve um array simples:

$todas = $nfe->companies->listAll(); // array<Company>
taxCodes retorna um tipo próprio

Os métodos de taxCodes retornam TaxCodePaginatedResponse (com currentPage, totalPages, totalCount e items) em vez de ListResponse — veja o cookbook de códigos fiscais.

Próximos passos

NFE.io

A NFE.io é uma empresa de tecnologia que fornece soluções para automatizar e simplificar a emissão e gestão de notas fiscais eletrônicas. Com suas ferramentas, as empresas podem economizar tempo e reduzir erros, aumentando a eficiência e precisão do processo de emissão de notas fiscais.

Um dos principais cases de sucesso da NFE.io é a implementação da solução na empresa de transporte Rodonaves. Com a automatização da emissão e gestão de notas fiscais eletrônicas, a Rodonaves conseguiu reduzir em até 80% o tempo gasto nesse processo, o que se traduziu em uma significativa melhoria na eficiência operacional. Além disso, a empresa também conseguiu eliminar erros e atrasos na emissão de notas fiscais, o que melhorou a relação com seus clientes e aumentou a confiança dos órgãos fiscais.

Outro exemplo é a implementação da NFE.io na empresa de comércio eletrônico, a Loja Integrada. Com a automatização da emissão de notas fiscais, a Loja Integrada conseguiu aumentar a velocidade de emissão de notas em até 10 vezes, o que permitiu que a empresa atendesse a uma maior quantidade de clientes e, consequentemente, aumentar as suas vendas.

Além desses exemplos, a NFE.io também tem outros cases de sucesso com empresas de setores como indústria, construção, varejo e serviços, mostrando a versatilidade e eficácia da sua solução.

Em resumo, a NFE.io é uma empresa de tecnologia que oferece soluções para automatizar e simplificar a emissão e gestão de notas fiscais eletrônicas, ajudando as empresas a economizar tempo e reduzir erros, melhorando a eficiência e precisão do processo. Com cases de sucesso em diferentes setores, a NFE.io tem se destacado como uma empresa líder em automação fiscal.