Panel de Control
API Facturador Electronico • NevadaSunCloud • © 2026
◎ Estado del Sistema
API Online
117h 36m 18s
Uptime
BETA
SUNAT
1.1.0
Version
2026-07-16
Build
15
Endpoints
Entorno DESARROLLO — SUNAT Beta activo • La guardia SUNAT_ForzarBeta=true asegura que ningun documento llega a SUNAT produccion aunque la empresa tenga nEmpProduccion=1 en BD.
⚡ Accesos Rapidos
GET Transacciones ↗ GET Empresas ↗
Endpoints
Base: https://dev.facturadorapi.nevadasuncloud.com/servicio/ • Respuestas en JSON
📝 Transaccion — Operaciones principales
POST
Transaccion/Guardar
Guarda 1 documento y envia a SUNAT. Body: entidad Transaccion completa con LstTransaccionDetalle.
POST
Transaccion/GuardarMasivo
Guarda lista de documentos en BD sin enviar a SUNAT (carga masiva).
GET
Transaccion
Lista todas las transacciones registradas.
GET
Transaccion/Consultar/{ruc}/{serie}/{num}
Consulta documento especifico por RUC emisor + serie + numero.
GET
Transaccion/ConsultarEstado/{ruc}/{serie}/{num}
Retorna el estado electronico actual (int). Ver tabla de codigos.
GET
Transaccion/ConsultaPortal
Listado paginado para el Portal NSC. Requiere X-Portal-Service-Key; filtra por empresas, estado, fechas, serie y número.
GET
Transaccion/DetallePortal/{ruc}/{serie}/{num}
Detalle protegido para el Portal. Usa la clave funcional RUC emisor + serie + número.
⚡ Transaccion — Operaciones SUNAT
POST
Transaccion/ReenviarPortal
Reenvío protegido para el Portal. Body: { ruc, serie, numero }; requiere X-Portal-Service-Key y acepta estados pendientes o con error.
GET
Transaccion/ReenviarSunat/{ruc}/{serie}/{num}
Endpoint existente de compatibilidad. Las integraciones nuevas deben usar ReenviarPortal.
GET
Transaccion/AnularSunat/{ruc}/{serie}/{num}
Genera y envia la baja/comunicacion de baja a SUNAT segun tipo de documento.
GET
Transaccion/ConsultarTicket/{ruc}/{ticket}
Consulta el ticket devuelto por SUNAT para resumenes de boletas o bajas pendientes.
GET
Transaccion/EnviarCorreoCliente/{ruc}/{serie}/{num}
Genera el PDF del documento y lo envia al email del cliente.
🏛 Empresa
GET
Empresa
Lista todas las empresas emisoras registradas.
POST
Empresa/Guardar
Crea o actualiza datos de una empresa emisora (RUC, certificado, credenciales SOL, ruta).
📋 Codigos de retorno
0
Guardado en BD, pendiente SUNAT
1
Enviado y aceptado por SUNAT
2
Enviado + PDF generado
-1
Error al procesar
Contrato de la API
JSON de request para POST Transaccion/Guardar por tipo de documento. Validado contra el XML de SUNAT UBL 2.1.
⚠ Nota sobre Transaccion_Id
El campo Transaccion_Id que envias desde ProductOne NO se usa como clave primaria en la BD del Facturador. El SP pa_GuardarTransaccion omite ese campo en el INSERT — el Facturador genera su propio IDENTITY autoincrementado.
El vinculo entre ProductOne y Facturador es por RUC + Serie + Numero, no por ID. Puedes enviar cualquier valor en Transaccion_Id; se recomienda poner el ID de ProductOne como referencia en los logs.
📄 JSON por tipo de documento
Factura Electronica — codigo SUNAT 01. El cliente DEBE ser persona juridica (RUC 11 digitos). sCliTipoDocumentoSunat="6" obligatorio.
{
  "Transaccion_Id": 5330,            // referencia ProductOne (NO es el ID del Facturador)
  "TipoDocumento_Id": 1,           // 1 = Factura
  "sTDoCodigoSunat": "01",         // codigo SUNAT catalogo 01
  "sTraSerie": "F001",            // prefijo F obligatorio para facturas
  "sTraNumero": "31",
  "sTraRUCEmpresa": "20607266868",
  "Empresa_Id": 1,               // ID en BD del Facturador
  "Moneda_Id": 1,               // 1=Soles 2=Dolares
  "sMonDescripcion": "SOLES",
  "dTraFecha": "2026-07-12T00:00:00",
  "nTraImporteTotal": 1180.00,
  "nTraSubTotalSinIGV": 1000.00,
  "nTraMontoIGV": 180.00,
  "nTraEsGratuito": 0,
  "sCliente": "EMPRESA CLIENTE S.A.C.",
  "sCliNroIdentidad": "20123456789",  // RUC 11 digitos
  "sCliTipoDocumentoSunat": "6",  // 6=RUC OBLIGATORIO en facturas
  "sCliDomicilioFiscal": "AV. REPUBLICA DE PANAMA 3647, SURQUILLO",
  "sCliPaisBreve": "PE",
  "sTraTextoQR": "20607266868|01|F001|31|180.00|1180.00|2026-7-12|6|20123456789|",
  "sTraEmail": "contabilidad@empresa.com",
  "sTraObservaciones": "ORDEN DE COMPRA N 001",
  "nTipoDocRelacionado": 0,      // 0 = sin doc relacionado
  "sSerieNumeroRelacionado": "",
  "nTraTieneDetraccion": 0,
  "LstTransaccionDetalle": [{
    "Transaccion_Id": 5330,
    "sProNombre": "SERVICIO DE CONSULTORIA",
    "nTDeCantidad": 1.00,
    "nTDePrecio": 1180.00,
    "nTDeBase": 1000.00,
    "nTDeIGV": 180.00,
    "nTDeSubtotal": 1180.00,
    "nTDeEstadoIGV": 1,       // 1=Gravado
    "sUMeCodigoSunat": "ZZ",    // ZZ=servicio NIU=unidad
    "sUMeDescripcion": "SERVICIO"
  }],
  "LstFormaPago": []
}
Boleta de Venta — codigo SUNAT 03. Para consumidor final. Puede ser DNI, CE, o 00000000 para anonimo.
{
  "Transaccion_Id": 5328,
  "TipoDocumento_Id": 2,
  "sTDoCodigoSunat": "03",
  "sTraSerie": "B001",           // prefijo B para boletas
  "sTraNumero": "331",
  "sTraRUCEmpresa": "20607266868",
  "Empresa_Id": 1,
  "Moneda_Id": 1,
  "sMonDescripcion": "SOLES",
  "dTraFecha": "2026-07-12T00:00:00",
  "nTraImporteTotal": 45.00,
  "nTraSubTotalSinIGV": 38.14,
  "nTraMontoIGV": 6.86,
  "nTraEsGratuito": 0,
  "sCliente": "VICTOR ARTURO NIEVE MAQUI",
  "sCliNroIdentidad": "42636221",  // DNI 8 digitos
  "sCliTipoDocumentoSunat": "1", // 1=DNI | 0=anonimo con 00000000
  "sCliPaisBreve": "PE",
  "sTraTextoQR": "20607266868|03|B001|331|6.86|45.00|2026-7-12|1|42636221|",
  "sTraEmail": "cliente@gmail.com",
  "nTipoDocRelacionado": 0,
  "sSerieNumeroRelacionado": "",
  "LstTransaccionDetalle": [{
    "Transaccion_Id": 5328,
    "sProNombre": "TELEVISOR LED 75 SONY",
    "nTDeCantidad": 1.00,  "nTDePrecio": 50.00,
    "nTDeBase": 38.14,  "nTDeIGV": 6.86,  "nTDeSubtotal": 45.00,
    "nTDeEstadoIGV": 1,  "sUMeCodigoSunat": "NIU",  "sUMeDescripcion": "UNIDAD"
  }],
  "LstFormaPago": []
}
Nota de Credito — codigo SUNAT 07. Anula o descuenta un comprobante emitido. SIEMPRE debe referenciar el doc original con nTipoDocRelacionado y sSerieNumeroRelacionado. Serie: FC01 (NC de factura) o BC01 (NC de boleta).
{
  "Transaccion_Id": 5331,
  "TipoDocumento_Id": 3,
  "sTDoCodigoSunat": "07",
  "sTraSerie": "FC01",          // FC=NC de factura, BC=NC de boleta
  "sTraNumero": "1",
  "sTraRUCEmpresa": "20607266868",
  "Empresa_Id": 1,
  "Moneda_Id": 1,
  "sMonDescripcion": "SOLES",
  "dTraFecha": "2026-07-12T00:00:00",
  "nTraImporteTotal": 1180.00,   // monto a descontar
  "nTraSubTotalSinIGV": 1000.00,
  "nTraMontoIGV": 180.00,
  "nTraEsGratuito": 0,
  "sCliente": "EMPRESA CLIENTE S.A.C.",
  "sCliNroIdentidad": "20123456789",
  "sCliTipoDocumentoSunat": "6",
  "sCliPaisBreve": "PE",
  "nCReCodigoSunat": "01",       // Catalogo 9 SUNAT: 01=anulacion 02=error RUC 07=devolucion...
  "sCategoriaReclamo": "DEVOLUCION POR ERROR",
  "nTipoDocRelacionado": 1,    // TipoDocumento_Id del doc original: 1=Factura
  "sSerieNumeroRelacionado": "F001-31", // serie-numero del doc original
  "sTraTextoQR": "20607266868|07|FC01|1|180.00|1180.00|2026-7-12|6|20123456789|",
  "sTraObservaciones": "DEVOLUCION TOTAL FACTURA F001-31",
  "LstTransaccionDetalle": [{
    "Transaccion_Id": 5331,
    "sProNombre": "DEVOLUCION SERVICIO DE CONSULTORIA",
    "nTDeCantidad": 1.00,  "nTDePrecio": 1180.00,
    "nTDeBase": 1000.00,  "nTDeIGV": 180.00,  "nTDeSubtotal": 1180.00,
    "nTDeEstadoIGV": 1,  "sUMeCodigoSunat": "ZZ",  "sUMeDescripcion": "SERVICIO"
  }],
  "LstFormaPago": []
}
Nota de Debito — codigo SUNAT 08. Para cargos adicionales sobre un comprobante existente. Serie: FD01 (ND de factura) o BD01 (ND de boleta).
{
  "Transaccion_Id": 5332,
  "TipoDocumento_Id": 4,
  "sTDoCodigoSunat": "08",
  "sTraSerie": "FD01",          // FD=ND de factura, BD=ND de boleta
  "sTraNumero": "1",
  "sTraRUCEmpresa": "20607266868",
  "Empresa_Id": 1,
  "Moneda_Id": 1,
  "sMonDescripcion": "SOLES",
  "dTraFecha": "2026-07-12T00:00:00",
  "nTraImporteTotal": 50.00,
  "nTraSubTotalSinIGV": 42.37,
  "nTraMontoIGV": 7.63,
  "nTraEsGratuito": 0,
  "sCliente": "EMPRESA CLIENTE S.A.C.",
  "sCliNroIdentidad": "20123456789",
  "sCliTipoDocumentoSunat": "6",
  "sCliPaisBreve": "PE",
  "nCReCodigoSunat": "02",       // Catalogo 10 SUNAT: 01=mora 02=penalidad 03=otros...
  "sCategoriaReclamo": "PENALIDAD POR INCUMPLIMIENTO",
  "nTipoDocRelacionado": 1,    // doc original: 1=Factura
  "sSerieNumeroRelacionado": "F001-31",
  "sTraTextoQR": "20607266868|08|FD01|1|7.63|50.00|2026-7-12|6|20123456789|",
  "sTraObservaciones": "PENALIDAD SEGUN CONTRATO",
  "LstTransaccionDetalle": [{
    "Transaccion_Id": 5332,
    "sProNombre": "PENALIDAD POR INCUMPLIMIENTO",
    "nTDeCantidad": 1.00,  "nTDePrecio": 50.00,
    "nTDeBase": 42.37,  "nTDeIGV": 7.63,  "nTDeSubtotal": 50.00,
    "nTDeEstadoIGV": 1,  "sUMeCodigoSunat": "ZZ",  "sUMeDescripcion": "SERVICIO"
  }],
  "LstFormaPago": []
}
Guia de Remision — codigo SUNAT 09. Documento de traslado de bienes. Requiere todos los campos de traslado. Serie: T001.
{
  "Transaccion_Id": 5333,
  "TipoDocumento_Id": 7,
  "sTDoCodigoSunat": "09",
  "sTraSerie": "T001",
  "sTraNumero": "1",
  "sTraRUCEmpresa": "20607266868",
  "Empresa_Id": 1,
  "Moneda_Id": 1,
  "sMonDescripcion": "SOLES",
  "dTraFecha": "2026-07-12T00:00:00",
  "nTraImporteTotal": 500.00,
  "nTraSubTotalSinIGV": 423.73,
  "nTraMontoIGV": 76.27,
  "nTraEsGratuito": 0,
  "sCliente": "EMPRESA DESTINATARIA S.A.C.",
  "sCliNroIdentidad": "20987654321",
  "sCliTipoDocumentoSunat": "6",
  "sCliPaisBreve": "PE",
  // ---- CAMPOS OBLIGATORIOS DE TRASLADO ----
  "sTraCodigoMotivoTraslado": "01",     // Cat.20: 01=venta 02=compra 04=traslado entre establecimientos
  "sTraMotivoTraslado": "VENTA",
  "sTraCodigoUnidadMedidaTraslado": "KGM", // unidad de peso
  "nTraPesoBrutoGuiaTraslado": 10.00,
  "sTraCodigoModalidadTraslado": "02",   // Cat.18: 01=publico 02=privado
  "dTraFechaTraslado": "2026-07-12T00:00:00",
  "sTraRUCTransportistaTraslado": "20607266868", // RUC del transportista (propio si es privado)
  "sTraNombreTransportistaTraslado": "NEVADASUNCLOUD S.A.C.",
  "sTraPlacaVehiculoTraslado": "ABC-123",
  "sTraDNIConductorTraslado": "42636221",
  "sTraCodigoUbigeoPuntoPartidaTraslado": "130101", // ubigeo origen (Trujillo)
  "sTraDireccionPuntoPartidaTraslado": "AV. ESPANA 1234, TRUJILLO",
  "sTraCodigoUbigeoPuntoLlegadaTraslado": "150101", // ubigeo destino (Lima)
  "sTraDireccionPuntoLlegadaTraslado": "AV. JAVIER PRADO 4200, LIMA",
  "sTraTextoQR": "20607266868|09|T001|1|76.27|500.00|2026-7-12|6|20987654321|",
  "nTipoDocRelacionado": 0,
  "sSerieNumeroRelacionado": "",
  "LstTransaccionDetalle": [{
    "Transaccion_Id": 5333,
    "sProNombre": "TELEVISOR LED 75 SONY",
    "nTDeCantidad": 2.00,  "nTDePrecio": 295.00,
    "nTDeBase": 423.73,  "nTDeIGV": 76.27,  "nTDeSubtotal": 500.00,
    "nTDeEstadoIGV": 1,  "sUMeCodigoSunat": "NIU",  "sUMeDescripcion": "UNIDAD"
  }],
  "LstFormaPago": []
}
📋 Campos de la entidad Transaccion
CampoTipoDescripcion
Transaccion_IdintReferencia ProductOne. NO es PK en Facturador (IDENTITY propio)
TipoDocumento_IdintREQ1=Factura 2=Boleta 3=NC 4=ND 7=GR
Empresa_IdintREQID de la empresa en BD Facturador (tabla Empresa)
Moneda_Idint1=Soles 2=Dolares
sTraRUCEmpresastringREQRUC de 11 digitos del emisor
sTraSeriestringREQF001 factura, B001 boleta, FC01 NC-fact, BC01 NC-boleta, T001 GR
sTraNumerostringREQCorrelativo numerico sin padding
sTDoCodigoSunatstringREQ01=Factura 03=Boleta 07=NC 08=ND 09=GR
sMonDescripcionstringREQ"SOLES" o "DOLARES"
dTraFechaDateTimeREQFecha de emision ISO 8601
nTraImporteTotaldecimalREQTotal del documento (base + IGV)
nTraSubTotalSinIGVdecimalBase imponible sin IGV
nTraMontoIGVdecimalMonto total de IGV
nTraEsGratuitoint0=con valor economico 1=gratuito
sTraObservacionesstringTexto libre impreso en el PDF
sTraEmailstringEmails separados por ; para envio PDF
CampoTipoDescripcion
sClientestringREQNombre o razon social del receptor
sCliNroIdentidadstringREQDNI (8 dig) o RUC (11 dig). "00000000" para anonimo en boletas
sCliTipoDocumentoSunatstringREQ0=anonimo 1=DNI 4=CE 6=RUC 7=Pasaporte. FACTURAS: SIEMPRE 6
sCliDomicilioFiscalstringDireccion fiscal del receptor
sCliPaisBrevestringCodigo pais ISO: PE
CampoTipoDescripcion
nTraEstadoTransaccionElectronicaint0=Pendiente 1=Enviado 2=PDF 3=Email -1=Error
sTraCodigoRespuestaSunatstringCodigo CDR de SUNAT
sTraRespuestaValidacionstringMensaje de respuesta de SUNAT
sTraNroTicketstringTicket para consultar resumen de boletas/bajas
sTraTextoQRstringREQRUC|tipo|serie|num|igv|total|fecha|tipoCli|numCli|
nCReCodigoSunatstringMotivo NC (Catalogo 9) o ND (Catalogo 10)
sCategoriaReclamostringDescripcion del motivo NC/ND
nTipoDocRelacionadointTipoDocumento_Id del doc original (NC/ND: REQ)
sSerieNumeroRelacionadostringSerie-Numero del doc relacionado (NC/ND: REQ)
nTraTieneDetraccionint0=No 1=Si tiene detraccion
nTraICBPERint1=Aplica ICBPER (bolsas plasticas)
Array LstTransaccionDetalle[] — al menos 1 item requerido.
CampoTipoDescripcion
Transaccion_IdintREQReferencia ProductOne (igual que la cabecera)
sProNombrestringREQDescripcion del producto/servicio
nTDeCantidaddecimalREQCantidad
nTDePreciodecimalREQPrecio unitario con IGV
nTDeBasedecimalREQBase imponible sin IGV
nTDeIGVdecimalREQIGV de la linea
nTDeSubtotaldecimalREQSubtotal de la linea
nTDeEstadoIGVintREQ1=Gravado 2=Exonerado 3=Inafecto
sUMeCodigoSunatstringREQNIU=unidad ZZ=servicio KGM=kg HUR=hora
▶ Probar la API
Ejecuta peticiones reales contra https://dev.facturadorapi.nevadasuncloud.com/servicio/. Los datos de prueba son del entorno DESARROLLO.
▶ Tester interactivo
URL de la peticion
https://dev.facturadorapi.nevadasuncloud.com/servicio/Empresa
Respuesta
// La respuesta aparecera aqui...
📋 Datos de prueba disponibles (entorno DESARROLLO)
TipoRUCSerieNumeroEstado
Boleta20607266868B001327ENVIADO SUNAT
Factura20607266868F10048ENVIADO SUNAT
Flujo de Envio a SUNAT
Proceso completo desde ProductOne Backend hasta la respuesta de SUNAT.
▶ Pasos del flujo
1
ProductOne Backend → POST Transaccion/Guardar
SQLTransaccionManager.GuardarFacturacionElectronica() — llamada async void (fire & forget). El backend ya respondio al frontend antes de este punto.
// async void = fire & forget, no bloquea al usuario
dynamic valor = await _APIFacturador.Post(URI + "Transaccion/Guardar", json);
int result = Convert.ToInt32(valor); // 0=BD, 1=SUNAT, -1=error
2
Persistencia en BD del Facturador
TransaccionNeg.GuardarAsync()TransaccionAdo.Guardar() inserta en tablas Transaccion + TransaccionDetalle + FormaPago.
3
Seleccion del endpoint SUNAT
Campo nEmpProduccion de la empresa decide el endpoint. La guardia SUNAT_ForzarBeta=true esta activa.
if (nEmpProduccion == 1) // → https://e-factura.sunat.gob.pe (PRODUCCION)
else                    // → https://e-beta.sunat.gob.pe    (BETA) ← activo ahora
4
Generacion XML UBL 2.1 + firma digital
DocumentoElectronico.cs construye el XML. Se firma con certificado .p12 de la empresa y se comprime en ZIP con nombre oficial SUNAT.
5
Llamada SOAP a SUNAT
Credenciales SOL (sEmpUsuarioFE / sEmpPasswordFE). Facturas: CDR inmediato. Boletas/bajas: ticket que se consulta luego con ConsultarTicket.
6
CDR → actualizar estado → retornar al Backend
SUNAT devuelve CDR (ZIP/XML). Se descomprime, valida y actualiza nTraEstadoTransaccionElectronica. Se retorna codigo entero a ProductOne que actualiza su propia BD.
0
BD ok, SUNAT pendiente
1
SUNAT aceptado
2
SUNAT + PDF
-1
Error
Configuracion
Valores activos desde Web.config > appSettings. Reiniciar el proceso para aplicar cambios.
⚙ Entorno activo
Ambiente
DESARROLLO
SUNAT_ForzarBeta
true
Version
v1.1.0
Build Date
2026-07-16
Endpoint SUNAT activo
https://e-beta.sunat.gob.pe:443/ol-ti-itcpfegem-beta/billService
Base URL API
https://dev.facturadorapi.nevadasuncloud.com/servicio/
📊 Para cambiar a Produccion
<add key="Ambiente"         value="PRODUCCION"  />
<add key="SUNAT_ForzarBeta"  value="false"        />
<add key="AppVersion"        value="1.0.2"        />
<add key="BuildDate"         value="2026-07-12"   />
<!-- Tambien descomentar connectionString de produccion -->
Consulta de Datos
Registros en tiempo real desde la BD del Facturador. Los datos se cargan al entrar a esta seccion.
🏛 Empresas registradas
IDRUCNombreRuta FEProdOSEJSON
Cargando...
📝 Transacciones
TipoSerie-NúmEmpresaClienteDoc. ClienteTotalFechaEstado FECód. SUNATRespuestaAcciones
Haz click en Filtrar para cargar datos
↻ Reenvio / Consulta Masiva
1. Empresa:
2. Documentos (Serie-Numero, uno por linea o separados por coma):
3. Accion:
Logs del Sistema
Ruta: C:\FMSAC_DOC_ELECTRONICO\Log
No se encontraron archivos de log en C:\FMSAC_DOC_ELECTRONICO\Log. Es normal en entornos nuevos — el log se crea cuando ocurre el primer evento.
✓ Copiado!