CODIGO EJEMPLO PARA GENERAR UN XML DE NOMINA CFDI 4.0 EN JAVA
public class EjemploNomina12 {
public EjemploNomina12() {}
public void ejecutar(){
Configuracion configXML = new Configuracion();
configXML.setLicencia("26f47f93f7a08083a7a53f3ac13bc98d"); //LICENCIA DEMO
configXML.setInfoSistema("SI");
configXML.setComprobanteTipo("NOMINA");
String so=System.getProperty("os.name");
if(so.contains("Linux"))
{
configXML.setRutaXML("/home/carlos/Documentos/xml/");
}
if(so.contains("Windows"))
{
configXML.setRutaXML("C:/proyectos_java/xml/");
}
configXML.setArchivoXML("ejemplo_nomina12.xml");
//CETIFICADOS CSD DE PRUEBAS
String KEY=System.getProperty("user.dir")+"/libcfdi40/pruebas/EKU9003173C9.key";
String CER=System.getProperty("user.dir")+"/libcfdi40/pruebas/EKU9003173C9.cer";
String CONTRASENA="12345678a";
configXML.setCer(CER);
configXML.setKey(KEY);
configXML.setContresena(CONTRASENA);
/*NODO COMPROBANTE*/
Comprobante comprobante = new Comprobante();
comprobante.setSerie("N");
comprobante.setFolio("1");
/*FORMATO DE FECHA*/
String FORMATER = "yyyy-MM-dd'T'HH:mm:ss";
Date date = new Date();
XMLGregorianCalendar fechaComprobante = Utilerias.getFechaXMLGregorian(date, FORMATER);
comprobante.setFecha(fechaComprobante);
comprobante.setSubTotal(new BigDecimal(2026.80).setScale(2, RoundingMode.HALF_UP));
comprobante.setTotal(new BigDecimal(1926.80).setScale(2, RoundingMode.HALF_UP));
String moneda="MXN";
comprobante.setMoneda(Utilerias.getMonedaComprobante(moneda));
String tipocomprobante="N";
comprobante.setTipoDeComprobante(Utilerias.getTipoDeComprobante(tipocomprobante));
String metododepago="PUE";
comprobante.setMetodoPago(Utilerias.getMetodoDePagoComprobante(metododepago));
comprobante.setDescuento(new BigDecimal(100.00).setScale(2, RoundingMode.HALF_UP));
comprobante.setTipoCambio(new BigDecimal(1).setScale(0, RoundingMode.HALF_UP));
comprobante.setLugarExpedicion("20000");
comprobante.setExportacion("01");
/*CFDI RELACIONADO*/
//CfdiRelacionado cfdiRelacionado = new CfdiRelacionado();
//cfdiRelacionado.setUUID("A39DA66B-52CA-49E3-879B-5C05185B0EF7");
/*CFDI RELACIONADOS*/
//CfdiRelacionados cfdiRelacionados = new CfdiRelacionados();
//cfdiRelacionados.setTipoRelacion("01");
//cfdiRelacionados.getCfdiRelacionado().add(cfdiRelacionado);
//comprobante.setCfdiRelacionados(cfdiRelacionados);
/*EMISOR*/
Emisor emisor = new Emisor();
emisor.setRfc("EKU9003173C9");
emisor.setRegimenFiscal("601");
emisor.setNombre("ESCUELA KEMPER URGATE");
comprobante.setEmisor(emisor);
/*RECEPTOR*/
Receptor receptor = new Receptor();
receptor.setNombre("INGRID XODAR JIMENEZ");
receptor.setRfc("XOJI740919U48");
receptor.setDomicilioFiscalReceptor("88965");
receptor.setRegimenFiscalReceptor("605");
String usoCFDI="CN01";
receptor.setUsoCFDI(Utilerias.getUsoCFDiComprobante(usoCFDI));
comprobante.setReceptor(receptor);
/*CONCEPTOS*/
Conceptos conceptos = new Conceptos();
/*CONCEPTO*/
Concepto concepto = new Concepto();
concepto.setClaveProdServ("84111505");
concepto.setClaveUnidad("ACT");
concepto.setCantidad(new BigDecimal(1));
concepto.setDescripcion("Pago de nómina");
concepto.setValorUnitario(new BigDecimal(2026.80).setScale(2, RoundingMode.HALF_UP));
concepto.setImporte(new BigDecimal(2026.80).setScale(2, RoundingMode.HALF_UP));
concepto.setObjetoImp("01");
concepto.setDescuento(new BigDecimal(100.00).setScale(2, RoundingMode.HALF_UP));
/*AGREGO EL NODO CONCEPTO AL NODO CONCEPTOS*/
conceptos.getConcepto().add(concepto);
concepto=null;
/*AGREGO CONCEPTOS AL NODO COMPROBANTE*/
comprobante.setConceptos(conceptos);
/**
* Complemento de nomina1.2
*
*/
Nomina nomina = new Nomina();
nomina.setVersion("1.2");
/* Manejo de fechas */
String FORMATER_FECHAS = "yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(FORMATER_FECHAS);
String fechaPago_ = "2016-10-31";
String fechaInicialPago_ ="2016-10-16";
String fechaFinalPago_="2016-10-31";
try {
Date dateFechaPagos = sdf.parse(fechaPago_);
Date dateFechaInicialPago= sdf.parse(fechaInicialPago_);
Date dateFechaFinalPago= sdf.parse(fechaFinalPago_);
XMLGregorianCalendar fechaPago = Utilerias.getFechaXMLGregorian(dateFechaPagos, FORMATER_FECHAS);
XMLGregorianCalendar fechaInicialPago = Utilerias.getFechaXMLGregorian(dateFechaInicialPago, FORMATER_FECHAS);
XMLGregorianCalendar fechaFinalPago = Utilerias.getFechaXMLGregorian(dateFechaFinalPago, FORMATER_FECHAS);
nomina.setFechaPago(fechaPago);
nomina.setFechaInicialPago(fechaInicialPago);
nomina.setFechaFinalPago(fechaFinalPago);
} catch (ParseException e) {
e.printStackTrace();
}
nomina.setNumDiasPagados(new BigDecimal(15));
String tipoNomina="O";
nomina.setTipoNomina(Utilerias.getTipoNominaComprobante(tipoNomina));
nomina.setTotalDeducciones(new BigDecimal(100.00).setScale(2, RoundingMode.HALF_UP));
nomina.setTotalOtrosPagos(new BigDecimal(0.0).setScale(2, RoundingMode.HALF_UP));
nomina.setTotalPercepciones(new BigDecimal(2026.80).setScale(2, RoundingMode.HALF_UP));
Nomina.Emisor nominaEmisor = new Nomina.Emisor();
nominaEmisor.setRegistroPatronal("5525665412");
nomina.setEmisor(nominaEmisor);
Nomina.Receptor nominaReceptor = new Nomina.Receptor();
nominaReceptor.setCurp("MACM770427MTSRRR00");
nominaReceptor.setTipoContrato("01");
nominaReceptor.setTipoRegimen("02");
nominaReceptor.setNumEmpleado("060");
nominaReceptor.setPeriodicidadPago("04");
String claveEntFed = "JAL";
nominaReceptor.setClaveEntFed(Utilerias.getClaveEntFedNominaComprobante(claveEntFed));
nominaReceptor.setNumSeguridadSocial("04078873454");
nominaReceptor.setBanco("021");
String fechaInicioRelacionLaboral_="2016-06-01";
try {
Date datefechaInicioRelacionLaboral = sdf.parse(fechaInicioRelacionLaboral_);
XMLGregorianCalendar fechaInicioRelacionLaboral = Utilerias.getFechaXMLGregorian(datefechaInicioRelacionLaboral, FORMATER_FECHAS);
nominaReceptor.setFechaInicioRelLaboral(fechaInicioRelacionLaboral);
} catch (ParseException e) {
e.printStackTrace();
}
nominaReceptor.setAntigüedad("P21W");
nominaReceptor.setPuesto("Desarrollador");
nominaReceptor.setSalarioBaseCotApor(new BigDecimal(435.50).setScale(2, RoundingMode.HALF_UP));
nominaReceptor.setSalarioDiarioIntegrado(new BigDecimal(435.50).setScale(2, RoundingMode.HALF_UP));
nominaReceptor.setRiesgoPuesto("2");
nomina.setReceptor(nominaReceptor);
/*PERCEPCIONES NOMINA*/
Percepciones percepciones = new Percepciones();
for(int i = 1; i <=5; i++)
{
Percepcion percepcion = new Percepcion();
percepcion.setTipoPercepcion("028");
percepcion.setClave("028");
percepcion.setConcepto("SUELDO");
percepcion.setImporteExento(new BigDecimal(0.00).setScale(2, RoundingMode.HALF_UP));
percepcion.setImporteGravado(new BigDecimal(405.36).setScale(2, RoundingMode.HALF_UP));
percepciones.getPercepcion().add(percepcion);
percepcion=null;
}
percepciones.setTotalExento(new BigDecimal(0.00).setScale(2, RoundingMode.HALF_UP));
percepciones.setTotalGravado(new BigDecimal(2026.80).setScale(2, RoundingMode.HALF_UP));
percepciones.setTotalSueldos(new BigDecimal(2026.80).setScale(2, RoundingMode.HALF_UP));
nomina.setPercepciones(percepciones);
Deducciones deducciones = new Deducciones();
for(int j=1 ; j <=5 ; j++)
{
Deduccion deduccion = new Deduccion();
deduccion.setTipoDeduccion("001");
deduccion.setClave("001");
deduccion.setConcepto("IMSS");
deduccion.setImporte(new BigDecimal(20.00).setScale(2, RoundingMode.HALF_UP));
deducciones.getDeduccion().add(deduccion);
deduccion=null;
}
//deducciones.setTotalImpuestosRetenidos(new BigDecimal(0.00).setScale(2, RoundingMode.HALF_UP));
deducciones.setTotalOtrasDeducciones(new BigDecimal(100.00).setScale(2, RoundingMode.HALF_UP));
nomina.setDeducciones(deducciones);
/* NODO OTROS PAGOS*/
OtrosPagos otrosPagos = new OtrosPagos();
for(int o=1 ; o <=5 ; o++)
{
OtroPago otroPago = new OtroPago();
otroPago.setTipoOtroPago("002" );
otroPago.setClave("002");
otroPago.setConcepto("SUBSIDIO AL EMPLEO");
otroPago.setImporte(new BigDecimal(0.00).setScale(2, RoundingMode.HALF_UP));
SubsidioAlEmpleo subsidioAlEmpleo = new SubsidioAlEmpleo();
subsidioAlEmpleo.setSubsidioCausado(new BigDecimal(0.00).setScale(2, RoundingMode.HALF_UP));
otroPago.setSubsidioAlEmpleo(subsidioAlEmpleo);
otrosPagos.getOtroPago().add(otroPago);
subsidioAlEmpleo=null;
otroPago=null;
}
nomina.setOtrosPagos(otrosPagos);
Comprobante.Complemento complemento = new Comprobante.Complemento();
complemento.getAny().add(nomina);
//comprobante.getComplemento().add(complemento); //AGREGAR COMPLEMENTO FORMA ANTERIOR
comprobante.setComplemento(complemento); //AGREGAR COMPLEMENTO
/*GENERAR XML*/
CrearXmlCFDi40 xml = new CrearXmlCFDi40(comprobante, configXML);
RespuestaGenerarXML res = xml.generarXMLCFDi40();
System.out.println("Ruta xml generado: "+res.getRutaArchivoXML());
System.out.println("Archivo XML en string: "+res.getArchivoXMLtexto());
System.out.println("Archivo XML en Base64: "+res.getArchivoXMLBase64());
}
}
public EjemploNomina12() {}
public void ejecutar(){
Configuracion configXML = new Configuracion();
configXML.setLicencia("26f47f93f7a08083a7a53f3ac13bc98d"); //LICENCIA DEMO
configXML.setInfoSistema("SI");
configXML.setComprobanteTipo("NOMINA");
String so=System.getProperty("os.name");
if(so.contains("Linux"))
{
configXML.setRutaXML("/home/carlos/Documentos/xml/");
}
if(so.contains("Windows"))
{
configXML.setRutaXML("C:/proyectos_java/xml/");
}
configXML.setArchivoXML("ejemplo_nomina12.xml");
//CETIFICADOS CSD DE PRUEBAS
String KEY=System.getProperty("user.dir")+"/libcfdi40/pruebas/EKU9003173C9.key";
String CER=System.getProperty("user.dir")+"/libcfdi40/pruebas/EKU9003173C9.cer";
String CONTRASENA="12345678a";
configXML.setCer(CER);
configXML.setKey(KEY);
configXML.setContresena(CONTRASENA);
/*NODO COMPROBANTE*/
Comprobante comprobante = new Comprobante();
comprobante.setSerie("N");
comprobante.setFolio("1");
/*FORMATO DE FECHA*/
String FORMATER = "yyyy-MM-dd'T'HH:mm:ss";
Date date = new Date();
XMLGregorianCalendar fechaComprobante = Utilerias.getFechaXMLGregorian(date, FORMATER);
comprobante.setFecha(fechaComprobante);
comprobante.setSubTotal(new BigDecimal(2026.80).setScale(2, RoundingMode.HALF_UP));
comprobante.setTotal(new BigDecimal(1926.80).setScale(2, RoundingMode.HALF_UP));
String moneda="MXN";
comprobante.setMoneda(Utilerias.getMonedaComprobante(moneda));
String tipocomprobante="N";
comprobante.setTipoDeComprobante(Utilerias.getTipoDeComprobante(tipocomprobante));
String metododepago="PUE";
comprobante.setMetodoPago(Utilerias.getMetodoDePagoComprobante(metododepago));
comprobante.setDescuento(new BigDecimal(100.00).setScale(2, RoundingMode.HALF_UP));
comprobante.setTipoCambio(new BigDecimal(1).setScale(0, RoundingMode.HALF_UP));
comprobante.setLugarExpedicion("20000");
comprobante.setExportacion("01");
/*CFDI RELACIONADO*/
//CfdiRelacionado cfdiRelacionado = new CfdiRelacionado();
//cfdiRelacionado.setUUID("A39DA66B-52CA-49E3-879B-5C05185B0EF7");
/*CFDI RELACIONADOS*/
//CfdiRelacionados cfdiRelacionados = new CfdiRelacionados();
//cfdiRelacionados.setTipoRelacion("01");
//cfdiRelacionados.getCfdiRelacionado().add(cfdiRelacionado);
//comprobante.setCfdiRelacionados(cfdiRelacionados);
/*EMISOR*/
Emisor emisor = new Emisor();
emisor.setRfc("EKU9003173C9");
emisor.setRegimenFiscal("601");
emisor.setNombre("ESCUELA KEMPER URGATE");
comprobante.setEmisor(emisor);
/*RECEPTOR*/
Receptor receptor = new Receptor();
receptor.setNombre("INGRID XODAR JIMENEZ");
receptor.setRfc("XOJI740919U48");
receptor.setDomicilioFiscalReceptor("88965");
receptor.setRegimenFiscalReceptor("605");
String usoCFDI="CN01";
receptor.setUsoCFDI(Utilerias.getUsoCFDiComprobante(usoCFDI));
comprobante.setReceptor(receptor);
/*CONCEPTOS*/
Conceptos conceptos = new Conceptos();
/*CONCEPTO*/
Concepto concepto = new Concepto();
concepto.setClaveProdServ("84111505");
concepto.setClaveUnidad("ACT");
concepto.setCantidad(new BigDecimal(1));
concepto.setDescripcion("Pago de nómina");
concepto.setValorUnitario(new BigDecimal(2026.80).setScale(2, RoundingMode.HALF_UP));
concepto.setImporte(new BigDecimal(2026.80).setScale(2, RoundingMode.HALF_UP));
concepto.setObjetoImp("01");
concepto.setDescuento(new BigDecimal(100.00).setScale(2, RoundingMode.HALF_UP));
/*AGREGO EL NODO CONCEPTO AL NODO CONCEPTOS*/
conceptos.getConcepto().add(concepto);
concepto=null;
/*AGREGO CONCEPTOS AL NODO COMPROBANTE*/
comprobante.setConceptos(conceptos);
/**
* Complemento de nomina1.2
*
*/
Nomina nomina = new Nomina();
nomina.setVersion("1.2");
/* Manejo de fechas */
String FORMATER_FECHAS = "yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(FORMATER_FECHAS);
String fechaPago_ = "2016-10-31";
String fechaInicialPago_ ="2016-10-16";
String fechaFinalPago_="2016-10-31";
try {
Date dateFechaPagos = sdf.parse(fechaPago_);
Date dateFechaInicialPago= sdf.parse(fechaInicialPago_);
Date dateFechaFinalPago= sdf.parse(fechaFinalPago_);
XMLGregorianCalendar fechaPago = Utilerias.getFechaXMLGregorian(dateFechaPagos, FORMATER_FECHAS);
XMLGregorianCalendar fechaInicialPago = Utilerias.getFechaXMLGregorian(dateFechaInicialPago, FORMATER_FECHAS);
XMLGregorianCalendar fechaFinalPago = Utilerias.getFechaXMLGregorian(dateFechaFinalPago, FORMATER_FECHAS);
nomina.setFechaPago(fechaPago);
nomina.setFechaInicialPago(fechaInicialPago);
nomina.setFechaFinalPago(fechaFinalPago);
} catch (ParseException e) {
e.printStackTrace();
}
nomina.setNumDiasPagados(new BigDecimal(15));
String tipoNomina="O";
nomina.setTipoNomina(Utilerias.getTipoNominaComprobante(tipoNomina));
nomina.setTotalDeducciones(new BigDecimal(100.00).setScale(2, RoundingMode.HALF_UP));
nomina.setTotalOtrosPagos(new BigDecimal(0.0).setScale(2, RoundingMode.HALF_UP));
nomina.setTotalPercepciones(new BigDecimal(2026.80).setScale(2, RoundingMode.HALF_UP));
Nomina.Emisor nominaEmisor = new Nomina.Emisor();
nominaEmisor.setRegistroPatronal("5525665412");
nomina.setEmisor(nominaEmisor);
Nomina.Receptor nominaReceptor = new Nomina.Receptor();
nominaReceptor.setCurp("MACM770427MTSRRR00");
nominaReceptor.setTipoContrato("01");
nominaReceptor.setTipoRegimen("02");
nominaReceptor.setNumEmpleado("060");
nominaReceptor.setPeriodicidadPago("04");
String claveEntFed = "JAL";
nominaReceptor.setClaveEntFed(Utilerias.getClaveEntFedNominaComprobante(claveEntFed));
nominaReceptor.setNumSeguridadSocial("04078873454");
nominaReceptor.setBanco("021");
String fechaInicioRelacionLaboral_="2016-06-01";
try {
Date datefechaInicioRelacionLaboral = sdf.parse(fechaInicioRelacionLaboral_);
XMLGregorianCalendar fechaInicioRelacionLaboral = Utilerias.getFechaXMLGregorian(datefechaInicioRelacionLaboral, FORMATER_FECHAS);
nominaReceptor.setFechaInicioRelLaboral(fechaInicioRelacionLaboral);
} catch (ParseException e) {
e.printStackTrace();
}
nominaReceptor.setAntigüedad("P21W");
nominaReceptor.setPuesto("Desarrollador");
nominaReceptor.setSalarioBaseCotApor(new BigDecimal(435.50).setScale(2, RoundingMode.HALF_UP));
nominaReceptor.setSalarioDiarioIntegrado(new BigDecimal(435.50).setScale(2, RoundingMode.HALF_UP));
nominaReceptor.setRiesgoPuesto("2");
nomina.setReceptor(nominaReceptor);
/*PERCEPCIONES NOMINA*/
Percepciones percepciones = new Percepciones();
for(int i = 1; i <=5; i++)
{
Percepcion percepcion = new Percepcion();
percepcion.setTipoPercepcion("028");
percepcion.setClave("028");
percepcion.setConcepto("SUELDO");
percepcion.setImporteExento(new BigDecimal(0.00).setScale(2, RoundingMode.HALF_UP));
percepcion.setImporteGravado(new BigDecimal(405.36).setScale(2, RoundingMode.HALF_UP));
percepciones.getPercepcion().add(percepcion);
percepcion=null;
}
percepciones.setTotalExento(new BigDecimal(0.00).setScale(2, RoundingMode.HALF_UP));
percepciones.setTotalGravado(new BigDecimal(2026.80).setScale(2, RoundingMode.HALF_UP));
percepciones.setTotalSueldos(new BigDecimal(2026.80).setScale(2, RoundingMode.HALF_UP));
nomina.setPercepciones(percepciones);
Deducciones deducciones = new Deducciones();
for(int j=1 ; j <=5 ; j++)
{
Deduccion deduccion = new Deduccion();
deduccion.setTipoDeduccion("001");
deduccion.setClave("001");
deduccion.setConcepto("IMSS");
deduccion.setImporte(new BigDecimal(20.00).setScale(2, RoundingMode.HALF_UP));
deducciones.getDeduccion().add(deduccion);
deduccion=null;
}
//deducciones.setTotalImpuestosRetenidos(new BigDecimal(0.00).setScale(2, RoundingMode.HALF_UP));
deducciones.setTotalOtrasDeducciones(new BigDecimal(100.00).setScale(2, RoundingMode.HALF_UP));
nomina.setDeducciones(deducciones);
/* NODO OTROS PAGOS*/
OtrosPagos otrosPagos = new OtrosPagos();
for(int o=1 ; o <=5 ; o++)
{
OtroPago otroPago = new OtroPago();
otroPago.setTipoOtroPago("002" );
otroPago.setClave("002");
otroPago.setConcepto("SUBSIDIO AL EMPLEO");
otroPago.setImporte(new BigDecimal(0.00).setScale(2, RoundingMode.HALF_UP));
SubsidioAlEmpleo subsidioAlEmpleo = new SubsidioAlEmpleo();
subsidioAlEmpleo.setSubsidioCausado(new BigDecimal(0.00).setScale(2, RoundingMode.HALF_UP));
otroPago.setSubsidioAlEmpleo(subsidioAlEmpleo);
otrosPagos.getOtroPago().add(otroPago);
subsidioAlEmpleo=null;
otroPago=null;
}
nomina.setOtrosPagos(otrosPagos);
Comprobante.Complemento complemento = new Comprobante.Complemento();
complemento.getAny().add(nomina);
//comprobante.getComplemento().add(complemento); //AGREGAR COMPLEMENTO FORMA ANTERIOR
comprobante.setComplemento(complemento); //AGREGAR COMPLEMENTO
/*GENERAR XML*/
CrearXmlCFDi40 xml = new CrearXmlCFDi40(comprobante, configXML);
RespuestaGenerarXML res = xml.generarXMLCFDi40();
System.out.println("Ruta xml generado: "+res.getRutaArchivoXML());
System.out.println("Archivo XML en string: "+res.getArchivoXMLtexto());
System.out.println("Archivo XML en Base64: "+res.getArchivoXMLBase64());
}
}
XML CFDI DE NOMINA GENERADO
<cfdi:Comprobante Version="4.0" Serie="N" Folio="1" Fecha="2022-08-16T12:43:14" Sello="JBxFMQ+B8VEVT9wSmG7LIkLs5wtY8HwzzOHWCSfB6UvdGc16Q9Vn7u72FyMSaOZ1+0cj6DrZeqaBPt2c9QRHugiqfWSR/fggvVrlyRCZFrjWYbd1ZmjsuPODc5IOGUvj3rdjkhCMfMdzEvaoCjRYYPfoTyXGjIjQvVhFQpQkh3+XKALAg4dQNpTDGUYMAzbhEYKZIpcR5S9d1NBhTSFBqlJEzte0W4ffa6ay7FW1CTKAZP+XuVnT/yMZdGZaltqjbTZRkmslycoug/+qlXpkHIMqF5h3H3c+f/N3vyrxwayRaTeeWfgMdHK2sPOLECeB+7VOG9cbNWo3eAjUE58m3w==" NoCertificado="30001000000400002434" Certificado="MIIFuzCCA6OgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDI0MzQwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNjE3MTk0NDE0WhcNMjMwNjE3MTk0NDE0WjCB4jEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gWElRQjg5MTExNlFFNDEeMBwGA1UEBRMVIC8gWElRQjg5MTExNk1HUk1aUjA1MR4wHAYDVQQLExVFc2N1ZWxhIEtlbXBlciBVcmdhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCN0peKpgfOL75iYRv1fqq+oVYsLPVUR/GibYmGKc9InHFy5lYF6OTYjnIIvmkOdRobbGlCUxORX/tLsl8Ya9gm6Yo7hHnODRBIDup3GISFzB/96R9K/MzYQOcscMIoBDARaycnLvy7FlMvO7/rlVnsSARxZRO8Kz8Zkksj2zpeYpjZIya/369+oGqQk1cTRkHo59JvJ4Tfbk/3iIyf4H/Ini9nBe9cYWo0MnKob7DDt/vsdi5tA8mMtA953LapNyCZIDCRQQlUGNgDqY9/8F5mUvVgkcczsIgGdvf9vMQPSf3jjCiKj7j6ucxl1+FwJWmbvgNmiaUR/0q4m2rm78lFAgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBCwUAA4ICAQBcpj1TjT4jiinIujIdAlFzE6kRwYJCnDG08zSp4kSnShjxADGEXH2chehKMV0FY7c4njA5eDGdA/G2OCTPvF5rpeCZP5Dw504RZkYDl2suRz+wa1sNBVpbnBJEK0fQcN3IftBwsgNFdFhUtCyw3lus1SSJbPxjLHS6FcZZ51YSeIfcNXOAuTqdimusaXq15GrSrCOkM6n2jfj2sMJYM2HXaXJ6rGTEgYmhYdwxWtil6RfZB+fGQ/H9I9WLnl4KTZUS6C9+NLHh4FPDhSk19fpS2S/56aqgFoGAkXAYt9Fy5ECaPcULIfJ1DEbsXKyRdCv3JY89+0MNkOdaDnsemS2o5Gl08zI4iYtt3L40gAZ60NPh31kVLnYNsmvfNxYyKp+AeJtDHyW9w7ftM0Hoi+BuRmcAQSKFV3pk8j51la+jrRBrAUv8blbRcQ5BiZUwJzHFEKIwTsRGoRyEx96sNnB03n6GTwjIGz92SmLdNl95r9rkvp+2m4S6q1lPuXaFg7DGBrXWC8iyqeWE2iobdwIIuXPTMVqQb12m1dAkJVRO5NdHnP/MpqOvOgLqoZBNHGyBg4Gqm4sCJHCxA1c8Elfa2RQTCk0tAzllL4vOnI1GHkGJn65xokGsaU4B4D36xh7eWrfj4/pgWHmtoDAYa8wzSwo2GVCZOs+mtEgOQB91/g==" SubTotal="2026.80" Descuento="100.00" Moneda="MXN" TipoCambio="1" Total="1926.80" TipoDeComprobante="N" Exportacion="01" MetodoPago="PUE" LugarExpedicion="20000" xsi:schemaLocation="http://www.sat.gob.mx/cfd/4 http://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd http://www.sat.gob.mx/nomina12 http://www.sat.gob.mx/sitio_internet/cfd/nomina/nomina12.xsd">
<cfdi:Emisor Rfc="EKU9003173C9" Nombre="ESCUELA KEMPER URGATE" RegimenFiscal="601"/>
<cfdi:Receptor Rfc="XOJI740919U48" Nombre="INGRID XODAR JIMENEZ" DomicilioFiscalReceptor="88965" RegimenFiscalReceptor="605" UsoCFDI="CN01"/>
<cfdi:Conceptos>
<cfdi:Concepto ClaveProdServ="84111505" Cantidad="1" ClaveUnidad="ACT" Descripcion="Pago de nómina" ValorUnitario="2026.80" Importe="2026.80" Descuento="100.00" ObjetoImp="01"/>
</cfdi:Conceptos>
<cfdi:Complemento>
<nomina12:Nomina Version="1.2" TipoNomina="O" FechaPago="2016-10-31" FechaInicialPago="2016-10-16" FechaFinalPago="2016-10-31" NumDiasPagados="15" TotalPercepciones="2026.80" TotalDeducciones="100.00" TotalOtrosPagos="0.00">
<nomina12:Emisor RegistroPatronal="5525665412"/>
<nomina12:Receptor Curp="MACM770427MTSRRR00" NumSeguridadSocial="04078873454" FechaInicioRelLaboral="2016-06-01" Antigüedad="P21W" TipoContrato="01" TipoRegimen="02" NumEmpleado="060" Puesto="Desarrollador" RiesgoPuesto="2" PeriodicidadPago="04" Banco="021" SalarioBaseCotApor="435.50" SalarioDiarioIntegrado="435.50" ClaveEntFed="JAL"/>
<nomina12:Percepciones TotalSueldos="2026.80" TotalGravado="2026.80" TotalExento="0.00">
<nomina12:Percepcion TipoPercepcion="028" Clave="028" Concepto="SUELDO" ImporteGravado="405.36" ImporteExento="0.00"/>
<nomina12:Percepcion TipoPercepcion="028" Clave="028" Concepto="SUELDO" ImporteGravado="405.36" ImporteExento="0.00"/>
<nomina12:Percepcion TipoPercepcion="028" Clave="028" Concepto="SUELDO" ImporteGravado="405.36" ImporteExento="0.00"/>
<nomina12:Percepcion TipoPercepcion="028" Clave="028" Concepto="SUELDO" ImporteGravado="405.36" ImporteExento="0.00"/>
<nomina12:Percepcion TipoPercepcion="028" Clave="028" Concepto="SUELDO" ImporteGravado="405.36" ImporteExento="0.00"/>
</nomina12:Percepciones>
<nomina12:Deducciones TotalOtrasDeducciones="100.00">
<nomina12:Deduccion TipoDeduccion="001" Clave="001" Concepto="IMSS" Importe="20.00"/>
<nomina12:Deduccion TipoDeduccion="001" Clave="001" Concepto="IMSS" Importe="20.00"/>
<nomina12:Deduccion TipoDeduccion="001" Clave="001" Concepto="IMSS" Importe="20.00"/>
<nomina12:Deduccion TipoDeduccion="001" Clave="001" Concepto="IMSS" Importe="20.00"/>
<nomina12:Deduccion TipoDeduccion="001" Clave="001" Concepto="IMSS" Importe="20.00"/>
</nomina12:Deducciones>
<nomina12:OtrosPagos>
<nomina12:OtroPago TipoOtroPago="002" Clave="002" Concepto="SUBSIDIO AL EMPLEO" Importe="0.00">
<nomina12:SubsidioAlEmpleo SubsidioCausado="0.00"/>
</nomina12:OtroPago>
<nomina12:OtroPago TipoOtroPago="002" Clave="002" Concepto="SUBSIDIO AL EMPLEO" Importe="0.00">
<nomina12:SubsidioAlEmpleo SubsidioCausado="0.00"/>
</nomina12:OtroPago>
<nomina12:OtroPago TipoOtroPago="002" Clave="002" Concepto="SUBSIDIO AL EMPLEO" Importe="0.00">
<nomina12:SubsidioAlEmpleo SubsidioCausado="0.00"/>
</nomina12:OtroPago>
<nomina12:OtroPago TipoOtroPago="002" Clave="002" Concepto="SUBSIDIO AL EMPLEO" Importe="0.00">
<nomina12:SubsidioAlEmpleo SubsidioCausado="0.00"/>
</nomina12:OtroPago>
<nomina12:OtroPago TipoOtroPago="002" Clave="002" Concepto="SUBSIDIO AL EMPLEO" Importe="0.00">
<nomina12:SubsidioAlEmpleo SubsidioCausado="0.00"/>
</nomina12:OtroPago>
</nomina12:OtrosPagos>
</nomina12:Nomina>
<tfd:TimbreFiscalDigital xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd" Version="1.1" UUID="f4b5c29b-75ad-40c5-8c65-f8a6b6cd35e0" FechaTimbrado="2022-08-16T12:44:06" RfcProvCertif="SPR190613I52" SelloCFD="JBxFMQ+B8VEVT9wSmG7LIkLs5wtY8HwzzOHWCSfB6UvdGc16Q9Vn7u72FyMSaOZ1+0cj6DrZeqaBPt2c9QRHugiqfWSR/fggvVrlyRCZFrjWYbd1ZmjsuPODc5IOGUvj3rdjkhCMfMdzEvaoCjRYYPfoTyXGjIjQvVhFQpQkh3+XKALAg4dQNpTDGUYMAzbhEYKZIpcR5S9d1NBhTSFBqlJEzte0W4ffa6ay7FW1CTKAZP+XuVnT/yMZdGZaltqjbTZRkmslycoug/+qlXpkHIMqF5h3H3c+f/N3vyrxwayRaTeeWfgMdHK2sPOLECeB+7VOG9cbNWo3eAjUE58m3w==" NoCertificadoSAT="30001000000400002495" SelloSAT="icAaSAXIq7/BGcuxC6wuDTmCIYSj4BYlLhBCdjMbuD7iWwgf/bMrdNb7ymvHntb22iuGK8hfXcABk5ndhS9ci25lvvBrTj2qmBlzltYAs1NR94o6fvQdNxFGo6bqnC5nFGTstD3J6ybY73Rg7eVdf4KVmnRwUmMV0tozGfhNYWosfdINkv8eHhGyR/np8UWfI3aHImRwaDHszg8tjPKI5JgqOe0CCs5BKAxcMrczgpcJVZVa9O8uN9CAvXhvkPoUWHdTQKT4I7p2UbHe58dq2f/CAberhjtSng6gXoF6+9j/LinaYpwjhSdGhERQviHlzUUvOH8dWlmvDeukc49QRw=="/>
</cfdi:Complemento>
</cfdi:Comprobante>
<cfdi:Emisor Rfc="EKU9003173C9" Nombre="ESCUELA KEMPER URGATE" RegimenFiscal="601"/>
<cfdi:Receptor Rfc="XOJI740919U48" Nombre="INGRID XODAR JIMENEZ" DomicilioFiscalReceptor="88965" RegimenFiscalReceptor="605" UsoCFDI="CN01"/>
<cfdi:Conceptos>
<cfdi:Concepto ClaveProdServ="84111505" Cantidad="1" ClaveUnidad="ACT" Descripcion="Pago de nómina" ValorUnitario="2026.80" Importe="2026.80" Descuento="100.00" ObjetoImp="01"/>
</cfdi:Conceptos>
<cfdi:Complemento>
<nomina12:Nomina Version="1.2" TipoNomina="O" FechaPago="2016-10-31" FechaInicialPago="2016-10-16" FechaFinalPago="2016-10-31" NumDiasPagados="15" TotalPercepciones="2026.80" TotalDeducciones="100.00" TotalOtrosPagos="0.00">
<nomina12:Emisor RegistroPatronal="5525665412"/>
<nomina12:Receptor Curp="MACM770427MTSRRR00" NumSeguridadSocial="04078873454" FechaInicioRelLaboral="2016-06-01" Antigüedad="P21W" TipoContrato="01" TipoRegimen="02" NumEmpleado="060" Puesto="Desarrollador" RiesgoPuesto="2" PeriodicidadPago="04" Banco="021" SalarioBaseCotApor="435.50" SalarioDiarioIntegrado="435.50" ClaveEntFed="JAL"/>
<nomina12:Percepciones TotalSueldos="2026.80" TotalGravado="2026.80" TotalExento="0.00">
<nomina12:Percepcion TipoPercepcion="028" Clave="028" Concepto="SUELDO" ImporteGravado="405.36" ImporteExento="0.00"/>
<nomina12:Percepcion TipoPercepcion="028" Clave="028" Concepto="SUELDO" ImporteGravado="405.36" ImporteExento="0.00"/>
<nomina12:Percepcion TipoPercepcion="028" Clave="028" Concepto="SUELDO" ImporteGravado="405.36" ImporteExento="0.00"/>
<nomina12:Percepcion TipoPercepcion="028" Clave="028" Concepto="SUELDO" ImporteGravado="405.36" ImporteExento="0.00"/>
<nomina12:Percepcion TipoPercepcion="028" Clave="028" Concepto="SUELDO" ImporteGravado="405.36" ImporteExento="0.00"/>
</nomina12:Percepciones>
<nomina12:Deducciones TotalOtrasDeducciones="100.00">
<nomina12:Deduccion TipoDeduccion="001" Clave="001" Concepto="IMSS" Importe="20.00"/>
<nomina12:Deduccion TipoDeduccion="001" Clave="001" Concepto="IMSS" Importe="20.00"/>
<nomina12:Deduccion TipoDeduccion="001" Clave="001" Concepto="IMSS" Importe="20.00"/>
<nomina12:Deduccion TipoDeduccion="001" Clave="001" Concepto="IMSS" Importe="20.00"/>
<nomina12:Deduccion TipoDeduccion="001" Clave="001" Concepto="IMSS" Importe="20.00"/>
</nomina12:Deducciones>
<nomina12:OtrosPagos>
<nomina12:OtroPago TipoOtroPago="002" Clave="002" Concepto="SUBSIDIO AL EMPLEO" Importe="0.00">
<nomina12:SubsidioAlEmpleo SubsidioCausado="0.00"/>
</nomina12:OtroPago>
<nomina12:OtroPago TipoOtroPago="002" Clave="002" Concepto="SUBSIDIO AL EMPLEO" Importe="0.00">
<nomina12:SubsidioAlEmpleo SubsidioCausado="0.00"/>
</nomina12:OtroPago>
<nomina12:OtroPago TipoOtroPago="002" Clave="002" Concepto="SUBSIDIO AL EMPLEO" Importe="0.00">
<nomina12:SubsidioAlEmpleo SubsidioCausado="0.00"/>
</nomina12:OtroPago>
<nomina12:OtroPago TipoOtroPago="002" Clave="002" Concepto="SUBSIDIO AL EMPLEO" Importe="0.00">
<nomina12:SubsidioAlEmpleo SubsidioCausado="0.00"/>
</nomina12:OtroPago>
<nomina12:OtroPago TipoOtroPago="002" Clave="002" Concepto="SUBSIDIO AL EMPLEO" Importe="0.00">
<nomina12:SubsidioAlEmpleo SubsidioCausado="0.00"/>
</nomina12:OtroPago>
</nomina12:OtrosPagos>
</nomina12:Nomina>
<tfd:TimbreFiscalDigital xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd" Version="1.1" UUID="f4b5c29b-75ad-40c5-8c65-f8a6b6cd35e0" FechaTimbrado="2022-08-16T12:44:06" RfcProvCertif="SPR190613I52" SelloCFD="JBxFMQ+B8VEVT9wSmG7LIkLs5wtY8HwzzOHWCSfB6UvdGc16Q9Vn7u72FyMSaOZ1+0cj6DrZeqaBPt2c9QRHugiqfWSR/fggvVrlyRCZFrjWYbd1ZmjsuPODc5IOGUvj3rdjkhCMfMdzEvaoCjRYYPfoTyXGjIjQvVhFQpQkh3+XKALAg4dQNpTDGUYMAzbhEYKZIpcR5S9d1NBhTSFBqlJEzte0W4ffa6ay7FW1CTKAZP+XuVnT/yMZdGZaltqjbTZRkmslycoug/+qlXpkHIMqF5h3H3c+f/N3vyrxwayRaTeeWfgMdHK2sPOLECeB+7VOG9cbNWo3eAjUE58m3w==" NoCertificadoSAT="30001000000400002495" SelloSAT="icAaSAXIq7/BGcuxC6wuDTmCIYSj4BYlLhBCdjMbuD7iWwgf/bMrdNb7ymvHntb22iuGK8hfXcABk5ndhS9ci25lvvBrTj2qmBlzltYAs1NR94o6fvQdNxFGo6bqnC5nFGTstD3J6ybY73Rg7eVdf4KVmnRwUmMV0tozGfhNYWosfdINkv8eHhGyR/np8UWfI3aHImRwaDHszg8tjPKI5JgqOe0CCs5BKAxcMrczgpcJVZVa9O8uN9CAvXhvkPoUWHdTQKT4I7p2UbHe58dq2f/CAberhjtSng6gXoF6+9j/LinaYpwjhSdGhERQviHlzUUvOH8dWlmvDeukc49QRw=="/>
</cfdi:Complemento>
</cfdi:Comprobante>
Buscas una forma de implementar la factura electronica de manera facil
solo llenando una plantilla de texto con los datos de la factura
o llenando un arreglo de datos con los datos de la factura
tenemos una libreria para generar el xml cfdi de una factura electronica
visita nuestra pagina web
https://factura.cfdi.red/
No hay comentarios:
Publicar un comentario