SunatEmitirCPE
Descripción
Sección titulada «Descripción»Emite un Comprobante de Pago Electrónico (CPE) ante SUNAT: factura (código 01) o boleta (código 03). El nodo arma el XML en formato UBL 2.1, lo firma digitalmente dentro de las UBLExtensions, lo empaqueta en un ZIP y lo envía por SOAP (operación sendBill) a SUNAT o al OSE configurado en la credencial. Al finalizar, lee el CDR (Constancia de Recepción) que indica si el comprobante fue aceptado, observado o rechazado.
La boleta también puede reportarse de forma consolidada con el nodo de resumen diario. Este nodo la envía de manera individual, algo válido en ambiente beta o para bajo volumen de emisión.
Configuración
Sección titulada «Configuración»| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| credentials_id | credentials | Sí | Credencial SUNAT (certificado + usuario SOL) |
| cpe | json | No | Comprobante en JSON: tipo (01 factura, 03 boleta), serie, número, receptor, items (con valorUnitario sin IGV). Si se deja vacío se usan los datos de entrada del nodo anterior. El emisor sale de la credencial. |
Credenciales
Sección titulada «Credenciales»Este módulo requiere una credencial de tipo sunat con los siguientes campos:
- Certificado (.p12): certificado digital del emisor
- Contraseña del certificado
- RUC del emisor (11 dígitos)
- Usuario SOL y Clave SOL: credenciales de Clave SOL de SUNAT
- Modo: directo (a SUNAT) u OSE (Operador de Servicios Electrónicos)
- URL del OSE, si el modo es OSE
- Entorno: beta (pruebas) o production (producción)
{ "id": "F001-125", "tipo": "01", "serie": "F001", "numero": 125, "estado": "accepted", "codigo": "0", "descripcion": "La Factura numero F001-125, ha sido aceptada", "notas": [], "total": 118, "igv": 18, "hash": "AbCdEf123...", "xml": "...", "cdrXml": "..."}Ejemplo de Uso
Sección titulada «Ejemplo de Uso»{ "credentials_id": "cred-sunat-prod", "cpe": { "tipo": "01", "serie": "F001", "numero": 125, "receptor": { "tipoDoc": "6", "numDoc": "20123456789", "razonSocial": "Cliente SAC" }, "items": [ { "descripcion": "Servicio de consultoria", "cantidad": 1, "valorUnitario": 100, "igv": 18 } ] }}- El comprobante queda válido recién cuando el CDR devuelve estado accepted (o observed). Si SUNAT lo rechaza, el nodo termina en error.
- El IGV se calcula al 18% sobre el valor unitario sin impuesto.
- El XML firmado se persiste en la base antes de enviarlo, para poder auditarlo o reintentar aunque falle el envío.
- Para boletas de alto volumen conviene usar SunatResumenBoletas en lugar de emitirlas una por una.
Nodos Relacionados
Sección titulada «Nodos Relacionados»- SunatEmitirNota - Emitir nota de crédito o débito
- SunatRepresentación - Generar la representación impresa con QR
- SunatResumenBoletas - Reportar boletas por resumen diario