Documentación › Emisión de NFC-e
Emisión de NFC-e
NFC-e (modelo 65) por la API: cajas, cálculo por Sudrel, código QR, cupón de 80 mm y cancelación en 30 minutos.
Todas las UF. La emisión funciona en cualquier estado: Sudrel prepara la UF de tu empresa en minutos, a partir del registro, sin acción tuya. Donde el texto cita Bahia, es la UF de los ejemplos y de las reglas ya detalladas.
La NFC-e es la nota del comercio minorista: venta presencial a consumidor final, dentro de la UF.
En Sudrel es otro modelo de la misma emisión de la NF-e: mismo certificado,
mismo diseño 4.00, mismas garantías (el número se reserva en la misma transacción
que crea la nota, la clave nunca cambia, y una nota que pudo haber llegado a la SEFAZ solo
se resuelve consultando la clave). El sandbox (sdr_test_) emite de verdad en la
homologación de la SEFAZ, sin valor fiscal; la clave sdr_live_ emite en producción.
Antes de la primera NFC-e
- Caja. Toda NFC-e sale de una caja, y cada caja tiene su serie (0 a 889,
única en la empresa). Regístrala en
POST /v1/caixascon el identificador que usa tu sistema (LOJA1-CX02). El sandbox tiene sus propias cajas. - Productos y perfil fiscal. En modo
calcular(el predeterminado de la NFC-e) Sudrel calcula los tributos por el producto registrado; consulta Productos y motor fiscal. - CSC (opcional). El código QR sale en la versión 3, que no usa el Código de
Segurança do Contribuinte. Si la SEFAZ de la UF rechaza la versión 3 (rechazo 407),
Sudrel rehace la nota en la versión 2, que necesita el CSC: regístralo en
PUT /v1/nfce/csc/{empresa_id}(id_cscycsc, como los entregó la SEFAZ). El CSC se guarda cifrado y nunca vuelve en una respuesta ni en un log. - Preparación.
GET /v1/nfce/prontidao/{empresa_id}indica qué falta, ítem por ítem. La lista de ítems crece con las próximas fases.
La venta
POST /v1/nfce
Idempotency-Key: CUPOM-000123
Prefer: wait=15
{
"empresa_id": "0b7e6a52-3c1d-4f8e-9a20-5d4c3b2a1f00",
"referencia": "CUPOM-000123",
"caixa": "LOJA1-CX02",
"itens": [{ "produto": "CAM-1", "quantidade": 2, "valor_unitario": 39.90 }],
"pagamentos": [{ "forma": "dinheiro", "valor": 100 }]
}
La respuesta viene en la misma llamada: 201 con la NFC-e autorizada, el qr_code, la
url_consulta, el troco (lo que los pagos exceden del total, calculado) y los
enlaces del cupón. La Idempotency-Key es obligatoria: la caja repite la solicitud
cuando la red cae, y Sudrel devuelve la misma nota en lugar de emitir otra.
modo:calcular(predeterminado),informado(los tributos de cada ítem vienen listos, como en la NF-e) oconferir.consumidor:{ "documento", "nome", "email" }, opcional. En BA es obligatorio a partir de R$ 500,00 (RICMS/BA, art. 107-D, § 2º): sin él, la venta vuelve con 422nfce_consumidor_obrigatorioantes de cualquier número.- Tarjeta y Pix llevan el grupo de la tarjeta: sin
cartao, sale como POS sin integración; con"cartao": { "integrado": true, "cnpj_credenciadora", "autorizacao" }, el TEF.
Sudrel verifica las reglas del modelo 65 antes de enviar y responde con el campo y la regla: CFOP (5101, 5102, 5103, 5104, 5115, 5405, 5656, 5667), CST del ICMS (00, 20, 40, 41, 60) y CSOSN (102, 103, 300, 400, 500) con el CFOP que corresponde, sin IPI, sin flete y solo venta presencial.
Cupón
GET /v1/nfce/{id}/danfe devuelve el DANFE NFC-e de 80 mm en PDF, en el diseño del
Manual de Padrões DANFE NFC-e e QR Code (v6.0), con el código QR y el mensaje de
homologación cuando corresponde. Con ?formato=texto, el mismo cupón en 48 columnas
para impresora térmica (el código QR va como el texto del qr_code, que la impresora
dibuja). POST /v1/nfce/{id}/envio envía el cupón y el XML por e-mail al consumidor.
Cancelación
POST /v1/nfce/{id}/cancelamento, con justificativa de 15 a 255 caracteres, hasta
cancelavel_ate: 30 minutos después de la autorización en BA (RICMS/BA, art. 107-H, I).
Fuera del plazo la respuesta es 422 cancelamento_fora_do_prazo, con el camino que
da la legislación de la UF; en BA no existe cancelación extemporánea de NFC-e. La
cancelación tiene su propia cola, separada de la emisión: un pico de ventas no retrasa
una cancelación.
Estados y eventos
Los mismos estados de la NF-e (autorizada, rejeitada, denegada, cancelada,
descartada, transmitindo, aguardando_confirmacao). Webhooks: NFCE_AUTORIZADA,
NFCE_REJEITADA, NFCE_DENEGADA, NFCE_CANCELADA, NFCE_DESCARTADA,
NFCE_DESCARTE_PROXIMO y NFCE_ENVIO_PAUSADO, con la NFC-e completa en dados. Las
listas de estados y de eventos crecen: trata los valores desconocidos sin fallar.
NFC-e y NF-e están separadas en la API: GET /v1/nfe no lista NFC-e, y
GET /v1/nfce/{id} no encuentra NF-e, aun con el id correcto. La referencia y la
Idempotency-Key son únicas por modelo.
Fuentes: MOC 7.0 (Anexo I, reglas del modelo 65), Manual de Padrões DANFE NFC-e e QR Code v6.0, NT 2025.001 v1.03 (QR Code versión 3), RICMS/BA (Decreto 13.780/2012).
Rutas de esta sección, con prueba en la página
- GET/v1/nfce · Lista las NFC-e
- POST/v1/nfce · Emite una NFC-e (modelo 65)
- POST/v1/nfce/previas · Valida y muestra el XML sin emitir
- GET/v1/nfce/prontidao/{empresa_id} · ¿La empresa está lista para emitir NFC-e?
- GET/v1/nfce/csc/{empresa_id} · Si la empresa tiene CSC registrado
- PUT/v1/nfce/csc/{empresa_id} · Graba (o cambia) el CSC de la empresa
- DELETE/v1/nfce/csc/{empresa_id} · Elimina el CSC de la empresa
- GET/v1/nfce/inutilizacoes · Inutilizaciones de números de NFC-e
- GET/v1/nfce/{id} · Consulta una NFC-e
- GET/v1/nfce/{id}/xml · XML autorizado (nfeProc, con el código QR)
- GET/v1/nfce/{id}/danfe · Cupón (DANFE NFC-e) de 80 mm
- POST/v1/nfce/{id}/cancelamento · Cancela una NFC-e autorizada
- POST/v1/nfce/{id}/descarte · Desiste de una NFC-e rechazada (o que no salió)
- POST/v1/nfce/{id}/envio · Envía el cupón al consumidor por e-mail
- GET/v1/caixas · Lista las cajas de NFC-e
- POST/v1/caixas · Registra una caja
- GET/v1/caixas/{id} · Consulta una caja
- PATCH/v1/caixas/{id} · Modifica una caja