Pular para conteúdo

Emissão de NFS-e em Lote

O InvoiCy permite enviar vários RPS de NFS-e em uma única requisição, evitando uma chamada à API por documento. Esse envio em lote reduz o número de requisições, agiliza a integração de grandes volumes e mantém o mesmo processo de autenticação e os mesmos layouts de emissão utilizados no envio individual.

A montagem do lote depende da integração utilizada (JSON ou XML), pois cada um agrupa os documentos em um nível diferente da estrutura. As seções a seguir detalham as duas formas.

Estrutura do lote

O ponto de atenção mais importante é que o nível de agrupamento muda conforme o formato:

FORMATO ENVELOPE DO LOTE NÍVEL DE REPETIÇÃO COMO ADICIONAR MAIS DOCUMENTOS
JSON Array raiz [...] Objeto Documento Adicionar um novo objeto { "Documento": { ... } } ao array
XML Elemento Envio Grupo RPS Adicionar um novo RPS dentro do mesmo Envio

Ou seja: no JSON, cada RPS vai dentro do seu próprio envelope Documento e o lote é o array desses envelopes. No XML, todos os RPS compartilham um único envelope <Envio>.

Os exemplos abaixo estão reduzidos para destacar a estrutura do lote. Os arquivos completos e prontos para uso estão disponíveis no repositório de integração:

O conteúdo completo de cada RPS (grupos Prestador, ListaItens, Servico, Tomador, IBSCBS etc.) segue o Layout de envio do módulo NFS-e.

Envio em JSON

No formato JSON, o lote é um array na raiz do corpo da requisição. Cada elemento do array é um objeto Documento independente, com um único RPS em sua lista RPS.

[
    {
        "Documento": {
            "ModeloDocumento": "NFSE",
            "Versao": 1.00,
            "RPS": [
                {
                    "RPSNumero": 5472,
                    "RPSSerie": "770",
                    "RPSTipo": 1,
                    "dEmis": "2026-07-21T10:11:37",
                    "dCompetencia": "2026-07-21T10:11:37",
                    "tpAmb": 2,
                    "Status": 1,
                    "Prestador": {
                        "CNPJ_prest": "99999999999999",
                        "xNome": "MIGRATE",
                        "IM": "99999999999999"
                    }
                }
                ...
            ]
        }
    },
    {
        "Documento": {
            "ModeloDocumento": "NFSE",
            "Versao": 1.00,
            "RPS": [
                {
                    "RPSNumero": 5474,
                    "RPSSerie": "770",
                    "RPSTipo": 1
                }
                ...
            ]
        }
    }
]

Para incluir mais documentos no lote, adicione um novo objeto { "Documento": { ... } } ao array, separando-o do anterior por vírgula. Cada objeto deve conter seus próprios dados de RPS.

Envio em XML

No formato XML, o lote é um único elemento <Envio>. Cada documento adicional é representado por um novo grupo <RPS> dentro do mesmo envelope.

<Envio>
    <ModeloDocumento>NFSE</ModeloDocumento>
    <Versao>1.00</Versao>
    <RPS>
        <RPSNumero>5477</RPSNumero>
        <RPSSerie>770</RPSSerie>
        <RPSTipo>1</RPSTipo>
        <dEmis>2026-07-21T10:33:37</dEmis>
        <dCompetencia>2026-07-21T00:00:00</dCompetencia>
        <tpAmb>2</tpAmb>
        <Status>1</Status>
        <Prestador>
            <CNPJ_prest>99999999999999</CNPJ_prest>
            <xNome>MIGRATE</xNome>
            <IM>99999999999999</IM>
        </Prestador>
        ...
    </RPS>
    <RPS>
        <RPSNumero>5478</RPSNumero>
        <RPSSerie>770</RPSSerie>
        <RPSTipo>1</RPSTipo>
        ...
    </RPS>
</Envio>

Para incluir mais documentos no lote, adicione um novo grupo <RPS> dentro do mesmo <Envio>.

Processamento e retorno do lote

O processamento é feito por documento: cada RPS enviado é validado e autorizado de forma independente, e o retorno traz o resultado individual de cada um. Por isso, cada RPS deve ter numeração própria (RPSNumero), respeitando a série informada em RPSSerie.

Um documento rejeitado não invalida os demais do lote. A exceção são os municípios com envio sequencial, em que a ordem dos documentos e o tratamento de rejeições seguem as regras descritas em Emissão Sequencial de RPS.