---
title: "Corrige linhas e emite de novo"
method: POST
path: "/v1/lotes/{id}/reprocessamento"
tags: ["Emissão em lote"]
---

# Corrige linhas e emite de novo

`POST /v1/lotes/{id}/reprocessamento`

## Request

- Base URL: `https://api.sudrel.com.br/api`
- URL: `https://api.sudrel.com.br/api/v1/lotes/{id}/reprocessamento`
- Auth: HTTP bearer

Cada item corrige campos de uma linha (os mesmos campos de
`POST /v1/nfse`) e manda emitir de novo. Só aceita linha com erro de
validação, `rejeitada`, ou `falha_transmissao` com
`falha.dps_enviada = "nao"`. Com `"desconhecido"`, a DPS pode ter virado
nota e reemitir duplicaria: confira no Emissor Nacional antes
(`dps_possivelmente_enviada`). Linha autorizada, cancelada ou em
transmissão nunca é tocada (`linha_nao_reprocessavel`). A referência, a
empresa e o modelo da linha não mudam.

Reprocessar é decisão sua de transmitir agora: vale como confirmação na
trava de competência.

## Path parameters

- `id` string, required

## Request body

- object
  - `itens` object[], required
    - `linha` integer, required
    - `campos` NfseEntrada: O mesmo conjunto de campos da planilha de emissão, em JSON. Só `tomador.documento` e `valor` são sempre obrigatórios; `descricao` e `codigo_nacional` vêm da configuração da empresa quando omitidos. Campo desconhecido é erro (422 `campo_desconhecido`).
      - `empresa_id` string: Empresa emissora. Dispensado quando a chave de API é restrita a uma empresa.
      - `referencia` string: Seu identificador para esta nota (pedido, contrato). Único por empresa; repetido é 409 com o id da nota existente.
      - `modelo` string: Nome ou id de um modelo de emissão salvo no painel. Preenche descrição, código de serviço e competência quando não enviados.
      - `substituicao` object: Esta nota SUBSTITUI uma NFS-e autorizada (grupo `subst` da DPS). Informe `nfse_id` (nota emitida pela Sudrel) ou `chave_acesso` (NFS-e emitida em outro sistema, do mesmo prestador). Veja "Substituir uma NFS-e" acima. Só em `POST /v1/nfse`: o lote recusa (`substituicao_fora_do_lote`).
        - `nfse_id` string: Id da nota a substituir (de `GET /v1/nfse`).
        - `chave_acesso` string: Ou a chave de acesso da NFS-e a substituir, 50 dígitos.
        - `codigo_motivo` '01' | '02' | '03' | '04' | '05' | '99', required: 01 desenquadramento do Simples Nacional; 02 enquadramento no Simples Nacional; 03 inclusão retroativa de imunidade ou isenção; 04 exclusão retroativa de imunidade ou isenção; 05 rejeição da NFS-e pelo tomador ou intermediário; 99 outros.
        - `motivo` string: Descrição do motivo. Obrigatória com `codigo_motivo` 99 (E0078).
      - `tomador` object, required
        - `documento` string, required: CPF (11 dígitos) ou CNPJ (14 posições, numérico ou alfanumérico), com ou sem pontuação.
        - `razao_social` string: Obrigatório para CPF. Para CNPJ, consultamos automaticamente.
        - `email` string: Obrigatório só quando o sistema do município da empresa precisa dele para cancelar a nota (hoje, o WebISS). Nos outros casos, opcional; quando vier, o PDF da nota vai para ele.
        - `endereco` object: Para CPF, opcional: CPF e nome bastam, menos quando o serviço tributa no domicílio do tomador (o `cIndOp` aponta para o endereço dele, ou mão de obra, 17.05.01), e aí a validação devolve `tomador_endereco_obrigatorio`. Quando vier, CEP e número vão juntos e o resto sai do CEP. Para CNPJ, não precisa.
          - `cep` string
          - `numero` string
          - `complemento` string
          - `municipio` string: Só para sobrescrever o município resolvido. Nome com UF ou código IBGE.
      - `valor` string, required: Texto decimal com ponto, sem separador de milhar. Número JSON é recusado (422 `tipo_invalido`).
      - `servico` object
        - `descricao` string
        - `codigo_nacional` string: Código de tributação nacional (cTribNac), 6 dígitos.
        - `competencia` string: AAAA-MM. Padrão, o mês atual.
        - `nbs` string: Código NBS do serviço (9 dígitos, com ou sem pontos), declarado junto do IBS e da CBS. Tem de ser um dos admitidos para o código de serviço (veja `GET /v1/servicos/{codigo}/nbs`); cada NBS leva a sua classificação tributária. Padrão: o NBS padrão da empresa, e na falta dele o padrão da tabela oficial.
        - `obra` ObraEntrada: Dados da obra (grupo `serv/obra` da DPS). Obrigatório nos códigos de construção civil (E0370) e proibido nos demais, menos o 99.01.01 (E0372). Identifique a obra por UM destes: `cno`, `cib` ou `endereco` (CEP e número); com mais de um, vai o CNO, depois o CIB. O município da obra é o local da prestação: vem do CEP, quando há CEP, ou de `municipio`.
          - `cno` string: Número da obra no Cadastro Nacional de Obras (ou CEI), com ou sem máscara.
          - `cib` string: Código do Cadastro Imobiliário Brasileiro do imóvel, 8 caracteres.
          - `inscricao_imobiliaria` string: Inscrição imobiliária fiscal (a do IPTU), opcional.
          - `endereco` object: Rua e bairro vêm do CEP.
            - `cep` string
            - `numero` string
            - `complemento` string
          - `municipio` string: Nome com UF (`Salvador - BA`) ou código IBGE. Dispensado quando o CEP foi informado; com os dois, têm de concordar (E0380).
      - `retencoes` object: O que o TOMADOR retém.
        - `iss` boolean: ISS retido pelo tomador.
        - `pis` Tributo: Informe o valor OU a alíquota. Com a alíquota, calculamos o valor sobre o valor do serviço.
          - `valor` string: Texto decimal com ponto, sem separador de milhar. Número JSON é recusado (422 `tipo_invalido`).
          - `aliquota` string: Percentual como texto, com ponto e sem "%".
        - `cofins` Tributo: Informe o valor OU a alíquota. Com a alíquota, calculamos o valor sobre o valor do serviço.
          - `valor` string: Texto decimal com ponto, sem separador de milhar. Número JSON é recusado (422 `tipo_invalido`).
          - `aliquota` string: Percentual como texto, com ponto e sem "%".
        - `csll` Tributo: Informe o valor OU a alíquota. Com a alíquota, calculamos o valor sobre o valor do serviço.
          - `valor` string: Texto decimal com ponto, sem separador de milhar. Número JSON é recusado (422 `tipo_invalido`).
          - `aliquota` string: Percentual como texto, com ponto e sem "%".
        - `irrf` Tributo: Informe o valor OU a alíquota. Com a alíquota, calculamos o valor sobre o valor do serviço.
          - `valor` string: Texto decimal com ponto, sem separador de milhar. Número JSON é recusado (422 `tipo_invalido`).
          - `aliquota` string: Percentual como texto, com ponto e sem "%".
        - `inss` Tributo: Informe o valor OU a alíquota. Com a alíquota, calculamos o valor sobre o valor do serviço.
          - `valor` string: Texto decimal com ponto, sem separador de milhar. Número JSON é recusado (422 `tipo_invalido`).
          - `aliquota` string: Percentual como texto, com ponto e sem "%".
      - `apuracao_propria` object: PIS/COFINS da apuração da SUA empresa (não é retenção).
        - `pis` Tributo: Informe o valor OU a alíquota. Com a alíquota, calculamos o valor sobre o valor do serviço.
          - `valor` string: Texto decimal com ponto, sem separador de milhar. Número JSON é recusado (422 `tipo_invalido`).
          - `aliquota` string: Percentual como texto, com ponto e sem "%".
        - `cofins` Tributo: Informe o valor OU a alíquota. Com a alíquota, calculamos o valor sobre o valor do serviço.
          - `valor` string: Texto decimal com ponto, sem separador de milhar. Número JSON é recusado (422 `tipo_invalido`).
          - `aliquota` string: Percentual como texto, com ponto e sem "%".
      - `iss` object
        - `aliquota` string: Percentual como texto, com ponto e sem "%".

## Response `200`

Resultado por linha. Linha aceita vem no formato de `itens`; linha
recusada vem com `recusado: true` e o motivo em `erros`.

- object
  - `dados` union[]
    - union
      - ItemLote
        - `linha` integer: Linha da planilha (cabeçalho = 1) ou posição no array JSON (a partir de 1).
        - `referencia` string, nullable
        - `nfse_id` string, nullable
        - `status` 'transmitindo' | 'autorizada' | 'rejeitada' | 'cancelada' | 'falha_transmissao' | 'descartada' | 'aguardando_confirmacao' | 'com_erro_validacao' | 'aguardando_emissao' | 'ja_existente'
        - `numero` string, nullable
        - `chave_acesso` string, nullable
        - `erros` ErroCampo[]
          - `type` string: `https://sudrel.com.br/docs/erros/<codigo>`. Não vem nos itens de `erros` do 422 de `POST /v1/lotes`.
          - `codigo` string: Estável: programe em cima dele.
          - `codigo_oficial` string, nullable: Regra do Sistema Nacional antecipada, quando houver (ex.: E0202).
          - `campo` string, nullable: JSON Pointer no payload.
          - `mensagem` string
          - `correcao` string, nullable
          - `retentavel` boolean: Repetir a MESMA requisição pode dar certo?
        - `ajustes` Ajuste[]
          - `campo` string: JSON Pointer.
          - `acao` 'preenchido' | 'omitido' | 'derivado' | 'exigido'
          - `motivo` string
          - `regra` string: Identificador estável da regra.
        - `divergente` boolean: Só em `ja_existente`: o conteúdo da linha difere da nota que já existe.
        - `status_nfse` string: Só em `ja_existente`: o status atual da nota que já existe.
      - object
        - `linha` integer
        - `recusado` boolean
        - `erros` ErroCampo[]
          - `type` string: `https://sudrel.com.br/docs/erros/<codigo>`. Não vem nos itens de `erros` do 422 de `POST /v1/lotes`.
          - `codigo` string: Estável: programe em cima dele.
          - `codigo_oficial` string, nullable: Regra do Sistema Nacional antecipada, quando houver (ex.: E0202).
          - `campo` string, nullable: JSON Pointer no payload.
          - `mensagem` string
          - `correcao` string, nullable
          - `retentavel` boolean: Repetir a MESMA requisição pode dar certo?

## Other responses

- `401`: `nao_autenticado`: chave de API ausente, inválida ou revogada.
- `404`: `lote_nao_encontrado`.
- `422`: `validacao`: `itens_obrigatorios` ou `lote_acima_do_limite` (mais de 5.000).
- `429`: `limite_de_requisicoes` (`retentavel: true`): 120 requisições por minuto por chave, janela fixa de 60 s. Sem `Retry-After`: espere a virada do minuto e repita a MESMA requisição (com a mesma `Idempotency-Key`).

---

[API](https://skmtc.dev/sudrel/apis/api-publica-sudrel-nfs-e-nf-e-e-ct-e.md) · [All operations](https://skmtc.dev/sudrel/apis/api-publica-sudrel-nfs-e-nf-e-e-ct-e/llms.txt) · [OpenAPI document](https://skmtc.dev/sudrel/apis/api-publica-sudrel-nfs-e-nf-e-e-ct-e/revisions/efd7baba9e37?raw)
