A continuación se muestra un ejemplo de factura nómina12 CFDI4 en C# SDK
Ejemplo de factura nómina12 CFDI4 en C# SDK
MFSDK sdk;
sdk = new MFSDK();
sdk.Iniciales.Add("MODOINI", "DIVISOR");
sdk.Iniciales.Add("RESPUESTA_UTF8", "SI");
sdk.Iniciales.Add("complemento", "nomina12");
sdk.Iniciales.Add("version_cfdi", "4.0");
sdk.Iniciales.Add("cfdi", "c:/sdk2/timbrados/ejemplo_factura_nomina12_cfdi4.xml");
sdk.Iniciales.Add("xml_debug", "c:/sdk2/timbrados/ejemplo_factura_nomina12_cfdi4_debug.xml");
sdk.Iniciales.Add("validacion_local", "NO");
//#NODO [conceptos]
MFObject conceptos = new MFObject("conceptos");
//#NODO [conceptos/0]
MFObject conceptos_0 = new MFObject("0");
conceptos_0["cantidad"] = "1";
conceptos_0["ObjetoImp"] = "01";
conceptos_0["Descuento"] = "32.00";
conceptos_0["valorunitario"] = "1225.00";
conceptos_0["importe"] = "1225.00";
conceptos_0["ClaveProdServ"] = "84111505";
conceptos_0["ClaveUnidad"] = "ACT";
conceptos_0["descripcion"] = "Pago de nómina";
//#NODO [emisor]
MFObject emisor = new MFObject("emisor");
emisor["RegimenFiscal"] = "603";
emisor["rfc"] = "EKU9003173C9";
emisor["nombre"] = "ESCUELA KEMPER URGATE";
//#NODO [conf]
MFObject conf = new MFObject("conf");
conf["pass"] = "12345678a";
conf["cer"] = "c:/sdk2/certificados/EKU9003173C9.cer.pem";
conf["key"] = "c:/sdk2/certificados/EKU9003173C9.key.pem";
//#NODO [PAC]
MFObject PAC = new MFObject("PAC");
PAC["usuario"] = "DEMO700101XXX";
PAC["pass"] = "DEMO700101XXX";
PAC["produccion"] = "NO";
//#NODO [receptor]
MFObject receptor = new MFObject("receptor");
receptor["RegimenFiscalReceptor"] = "605";
receptor["DomicilioFiscalReceptor"] = "27054";
receptor["UsoCFDI"] = "G01";
receptor["nombre"] = "MIGUEL ANGEL SOSA HERNANDEZ";
receptor["rfc"] = "SOHM7509289MA";
//#NODO [factura]
MFObject factura = new MFObject("factura");
factura["Exportacion"] = "01";
factura["descuento"] = "32.00";
factura["folio"] = "01010";
factura["total"] = "1193.00";
factura["subtotal"] = "1225.00";
factura["LugarExpedicion"] = "56330";
factura["fecha_expedicion"] = "AUTO";
factura["moneda"] = "MXN";
factura["tipocomprobante"] = "N";
factura["serie"] = "NOMO";
factura["metodo_pago"] = "PUE";
//#NODO [nomina12]
MFObject nomina12 = new MFObject("nomina12");
nomina12["TotalOtrosPagos"] = "0.00";
nomina12["FechaInicialPago"] = "2019-12-30";
nomina12["FechaPago"] = "2020-01-03";
nomina12["FechaFinalPago"] = "2020-01-05";
nomina12["NumDiasPagados"] = "7";
nomina12["TotalDeducciones"] = "32.00";
nomina12["TotalPercepciones"] = "1225.00";
nomina12["TipoNomina"] = "O";
//#NODO [nomina12/OtrosPagos]
MFObject nomina12_OtrosPagos = new MFObject("OtrosPagos");
//#NODO [nomina12/OtrosPagos/0]
MFObject nomina12_OtrosPagos_0 = new MFObject("0");
nomina12_OtrosPagos_0["Importe"] = "0.00";
nomina12_OtrosPagos_0["TipoOtroPago"] = "002";
nomina12_OtrosPagos_0["Clave"] = "012";
nomina12_OtrosPagos_0["Concepto"] = "Subsidio para el empleado";
//#NODO [nomina12/OtrosPagos/0/SubsidioAlEmpleo]
MFObject nomina12_OtrosPagos_0_SubsidioAlEmpleo = new MFObject("SubsidioAlEmpleo");
nomina12_OtrosPagos_0_SubsidioAlEmpleo["SubsidioCausado"] = "0.00";
nomina12_OtrosPagos_0.AgregaSubnodo(nomina12_OtrosPagos_0_SubsidioAlEmpleo);
nomina12_OtrosPagos.AgregaSubnodo(nomina12_OtrosPagos_0);
//#NODO [nomina12/Emisor]
MFObject nomina12_Emisor = new MFObject("Emisor");
nomina12_Emisor["RegistroPatronal"] = "5525665412";
nomina12_Emisor["RfcPatronOrigen"] = "AAA010101AAA";
//#NODO [nomina12/Percepciones]
MFObject nomina12_Percepciones = new MFObject("Percepciones");
nomina12_Percepciones["TotalExento"] = "0.00";
nomina12_Percepciones["TotalGravado"] = "1225.00";
nomina12_Percepciones["TotalSueldos"] = "1225.00";
//#NODO [nomina12/Percepciones/0]
MFObject nomina12_Percepciones_0 = new MFObject("0");
nomina12_Percepciones_0["ImporteExento"] = "0.00";
nomina12_Percepciones_0["TipoPercepcion"] = "001";
nomina12_Percepciones_0["Clave"] = "001";
nomina12_Percepciones_0["ImporteGravado"] = "1225.00";
nomina12_Percepciones_0["Concepto"] = "Sueldos, Salarios Rayas y Jornales";
nomina12_Percepciones.AgregaSubnodo(nomina12_Percepciones_0);
//#NODO [nomina12/Deducciones]
MFObject nomina12_Deducciones = new MFObject("Deducciones");
nomina12_Deducciones["TotalImpuestosRetenidos"] = "1.80";
nomina12_Deducciones["TotalOtrasDeducciones"] = "30.20";
//#NODO [nomina12/Deducciones/0]
MFObject nomina12_Deducciones_0 = new MFObject("0");
nomina12_Deducciones_0["TipoDeduccion"] = "001";
nomina12_Deducciones_0["Clave"] = "001";
nomina12_Deducciones_0["Importe"] = "30.20";
nomina12_Deducciones_0["Concepto"] = "ISR";
nomina12_Deducciones.AgregaSubnodo(nomina12_Deducciones_0);
//#NODO [nomina12/Deducciones/1]
MFObject nomina12_Deducciones_1 = new MFObject("1");
nomina12_Deducciones_1["Importe"] = "1.80";
nomina12_Deducciones_1["TipoDeduccion"] = "002";
nomina12_Deducciones_1["Clave"] = "002";
nomina12_Deducciones_1["Concepto"] = "Seguridad social";
nomina12_Deducciones.AgregaSubnodo(nomina12_Deducciones_1);
//#NODO [nomina12/Receptor]
MFObject nomina12_Receptor = new MFObject("Receptor");
nomina12_Receptor["TipoContrato"] = "01";
nomina12_Receptor["TipoRegimen"] = "02";
nomina12_Receptor["RiesgoPuesto"] = "2";
nomina12_Receptor["PeriodicidadPago"] = "04";
nomina12_Receptor["Banco"] = "021";
nomina12_Receptor["NumEmpleado"] = "060";
nomina12_Receptor["CuentaBancaria"] = "1234567890";
nomina12_Receptor["NumSeguridadSocial"] = "04078873454";
nomina12_Receptor["FechaInicioRelLaboral"] = "2016-06-01";
nomina12_Receptor["SalarioBaseCotApor"] = "435.50";
nomina12_Receptor["SalarioDiarioIntegrado"] = "435.50";
nomina12_Receptor["Curp"] = "CACF880922HJCMSR03";
nomina12_Receptor["Puesto"] = "Desarrollador";
nomina12_Receptor["ClaveEntFed"] = "JAL";
nomina12_Receptor["Antiguedad"] = "P21W";
//#Agrega Nodos
sdk.AgregaObjeto(PAC);
sdk.AgregaObjeto(conf);
sdk.AgregaObjeto(factura);
sdk.AgregaObjeto(emisor);
sdk.AgregaObjeto(receptor);
conceptos.AgregaSubnodo(conceptos_0);
sdk.AgregaObjeto(conceptos);
nomina12.AgregaSubnodo(nomina12_Emisor);
nomina12.AgregaSubnodo(nomina12_Receptor);
nomina12.AgregaSubnodo(nomina12_Percepciones);
nomina12.AgregaSubnodo(nomina12_Deducciones);
nomina12.AgregaSubnodo(nomina12_OtrosPagos);
sdk.AgregaObjeto(nomina12);
//#Ejecuta KIT
SDKRespuesta respuesta = sdk.Timbrar(@"C:\sdk2\timbrar32.bat", @"C:\sdk2\timbrados\", "factura", false);
//Muestra el archivo ini
//textBox1.Text = sdk.Ini;
//Muestra la respuesta de timbrado
//textBox2.Text = respuesta.RespuestaOriginalSDK;
// Se notifica que el SDK se ejecutó
string mensaje = string.Format("Código: {0}\r\nMensaje: {1}", respuesta.Codigo_MF_Numero, respuesta.Codigo_MF_Texto);
MessageBox.Show(this, mensaje, Application.ProductName, MessageBoxButtons.OK, respuesta.Codigo_MF_Numero == "0" ? MessageBoxIcon.Information : MessageBoxIcon.Warning);