Documentación › Emisión de NF-e
Productos y motor fiscal
Registro de productos validado en la tabla oficial y el cálculo de los tributos de la NF-e con regla y fuente de cada valor.
Registro de productos
POST /v1/produtos registra el producto de la empresa con su código (SKU). La
validación ocurre en el registro, no en la nota:
| Rechazo | Tabla oficial |
|---|---|
ncm_inexistente, ncm_fora_de_vigencia |
Nomenclatura vigente del Siscomex (Resolução Gecex nº 926/2026) |
cest_inexistente, cest_incompativel_ncm |
Convênio ICMS 142/18, texto consolidado del CONFAZ |
gtin_invalido, gtin_digito_invalido, gtin_prefixo_invalido |
Reglas GS1 de dígito verificador y prefijos reservados |
La homologación de la SEFAZ llega a autorizar NCM inexistentes; la producción rechaza la nota. Por eso el registro lo verifica antes. Cada tabla viene de una fuente oficial, con la fecha de la copia y el SHA-256 del archivo de origen.
El GTIN también se consulta en el Cadastro Centralizado de GTIN de la SEFAZ, con el
certificado de la empresa: si la SEFAZ conoce el GTIN con otro NCM, el registro se
rechaza con gtin_ncm_divergente. Lo que la SEFAZ devolvió queda en gtin_sefaz.
Un GTIN que la SEFAZ no conoce, o una consulta fuera de servicio, no impide el registro.
La nota guarda una copia del producto tal como estaba en la emisión: cambiar el producto después no cambia la nota emitida.
Perfil fiscal y aprobación
El perfil fiscal del producto indica el tratamiento de ICMS (tributado,
base_reduzida, isento, nao_tributado, imune, st_retida, st_substituto), el de PIS/COFINS
(tributado, monofasico, aliquota_zero, outros) y el CST y la clasificación del
IBS/CBS. El de la empresa (PUT /v1/nfe/perfil-fiscal/{empresa_id}) indica el régimen de
PIS/COFINS, si es contribuyente del IPI y, en el Simples, la alícuota de crédito del
mes (CSOSN 101). No se calcula nada sin un perfil aprobado por una persona de la empresa
o de la oficina contable: POST /v1/produtos/{codigo}/aprovacao-perfil y
POST /v1/nfe/perfil-fiscal/{empresa_id}/aprovacao graban quién aprobó y cuándo.
Cambiar un campo fiscal borra la aprobación.
Sandbox con registro propio. La clave sdr_test_ registra, modifica y aprueba
productos y perfiles en un registro separado, solo suyo: nada de lo que graba aparece
para la clave de producción, y no ve ni cambia el registro de producción. Así se puede
probar el modo calcular completo sin tocar lo que emite de verdad. El campo
ambiente del producto indica a qué registro pertenece.
Termo de Acordo de mayorista (Bahia)
Para el mayorista acreditado en el Decreto 7.799/2000, graba la acreditación en el
perfil de la empresa (termo_acordo con número, ítem del Anexo Único y vigencia) y
marca termo_acordo: true en los productos alcanzados. El motor aplica la reducción de
41,176% de la base (CST 20) solo donde el decreto alcanza: vigencia de la acreditación,
salida interna para contribuyente inscrito en Bahia o persona jurídica no
contribuyente (art. 1º y §3º), venta o bonificación, mercancía en la alícuota general
(art. 5º), sin ST (art. 4º), excepto papel higiénico (art. 2º-A). Fuera de eso, la
nota sale sin la reducción y el motivo viene en ajustes (termo_acordo_nao_aplicado).
Las condiciones del período (porcentaje de salidas para contribuyentes, facturación,
transferencias) son de la acreditación: quien aprueba el perfil declara que se cumplen.
ICMS-ST
- Reventa con ST retenida anteriormente (CST 60 / CSOSN 500): los campos de ST
retenida salen de las notas de compra que Sudrel ya captura, por el vínculo del producto
con el ítem de compra (
POST /v1/produtos/{codigo}/vinculos-entrada, por GTIN, por el código del proveedor o manual), de las últimas adquisiciones y proporcionales a la cantidad que sale (Convênio ICMS 142/18, cláusula décima quinta, §3º). Sin vínculo, envíast_retidoen el ítem; sin ninguno de los dos, la nota sale como la informes, con aviso enajustes. - Sustituto en la venta interna (
st_substituto): ICMS10 (o ICMS70 con reducción), MVA del Anexo 1 del RICMS/BA y alícuota interna. La venta a consumidor final no tiene operación subsecuente y sale como ICMS00. Un ítem del Anexo 1 que pide verificación, con FECP o con MVA ajustada queda fuera de la cobertura. - La ST interestatal queda fuera de la cobertura.
7% para ME/EPP (Bahia)
En la venta interna del fabricante a ME o EPP optante del Simples inscrita en
Bahia, la alícuota es 7% y el beneficio va como descuento expreso en la nota (Lei
7.014/96, art. 16, I, "c", y §1º): el motor calcula el descuento, lo pone en vDesc y
lo explica en infAdProd. El tamaño del destinatario viene de lo que informes en
destinatario.optante_simples; sin eso, de la consulta de CNPJ, con la fuente en
ajustes (nfe_destinatario_porte_consulta_cnpj). Lo que informas prevalece.
PIS/COFINS y el ICMS en la base
El perfil de la empresa tiene exclui_icms_base_pis_cofins (predeterminado true, Tema 69 del
STF): la base del PIS/COFINS sale sin el ICMS destacado y, en la reventa con ST, sin el
ICMS-ST retenido. Con false, el ICMS queda en la base, que es la opción conservadora de
quien todavía no aplica la exclusión.
Operaciones
operacao resuelve CFOP, finalidad y naturaleza: venda,
venda_consumidor_final, remessa (con subtipo: conserto, demonstracao,
industrializacao u outras), transferencia, bonificacao y devolucao (con
chave_referenciada y subtipo comercializacao o industrializacao).
Qué calcula el motor
| Tributo | Cobertura |
|---|---|
| ICMS | Sudrel activa la regla de la UF del emisor cuando la empresa entra, en minutos y sin acción tuya. Bahia ya viene con el conjunto completo, descrito aquí: operación interna, o interestatal con destinatario contribuyente (12%, o 4% para importados). Simples: CSOSN 101 (con el crédito del mes), 102, 103, 300 y 500 (con la ST retenida de las entradas). Régimen normal: CST 00, 20 (reducciones objetivas de la base legal de BA y Termo de Acordo de mayorista), 40, 41, 60 (con la ST retenida de las entradas), 10 y 70 (ST del sustituto en la venta interna) y 7% para ME/EPP, con el FECP de BA. |
| IPI | Contribuyente del IPI, producción propia, alícuota de la TIPI. En el Simples, sin destaque. |
| PIS/COFINS | Régimen acumulativo o no acumulativo, base sin el ICMS destacado (o con él, según el perfil de la empresa) y sin el ICMS-ST retenido; alícuota cero. En el Simples, CST 49 sin destaque. |
| IBS/CBS | Régimen normal, por la calculadora oficial de la Receita. |
Nunca un valor adivinado. Lo que el motor todavía no resuelve responde 422
fora_de_cobertura, con la lista fora_de_cobertura (ítem, tributo y motivo), y la
nota puede seguir en modo informado, que atiende todas las UF. Quien necesite el
cálculo por Sudrel en ese caso habla con soporte: la regla entra en minutos.
Ejemplos: ST interestatal, DIFAL, emisor de una UF cuya regla Sudrel está por activar, venta interna del fabricante a contribuyente cuyo tamaño ni tú ni
la consulta de CNPJ informaron (Bahia tiene 7% para ME/EPP), PIS/COFINS de
reventa con ICMS-ST sin el valor retenido en las entradas y monofásico.
Si la calculadora oficial del IBS/CBS no responde, el fora_de_cobertura viene con
temporario: true y retentavel: true: inténtalo de nuevo.
Modo conferir
La nota sale con TUS valores, y cada diferencia vuelve en ajustes con
acao: "divergente" y la regla nfe_conferencia_divergencia. Con
recusar_divergencias: true en el perfil de la empresa, la nota con diferencias se rechaza
con 422 conferencia_divergente y la lista divergencias.
Rutas de esta sección, con prueba en la página
- GET/v1/produtos · Lista los productos
- POST/v1/produtos · Registra un producto
- GET/v1/produtos/{codigo} · Consulta un producto por el código
- PATCH/v1/produtos/{codigo} · Modifica un producto
- POST/v1/produtos/{codigo}/aprovacao-perfil · Aprueba el perfil fiscal del producto
- GET/v1/produtos/{codigo}/vinculos-entrada · Lista los vínculos del producto con las compras
- POST/v1/produtos/{codigo}/vinculos-entrada · Vincula el producto a las compras
- DELETE/v1/produtos/{codigo}/vinculos-entrada/{id} · Elimina un vínculo
- GET/v1/nfe/perfil-fiscal/{empresa_id} · Perfil fiscal de la empresa
- PUT/v1/nfe/perfil-fiscal/{empresa_id} · Graba el perfil fiscal de la empresa
- POST/v1/nfe/perfil-fiscal/{empresa_id}/aprovacao · Aprueba el perfil fiscal de la empresa