fbpx

Solicita tu kit de integración

Ejemplo Cfdi 3.3 – Complemento INE

Updated on diciembre 29, 2020
Ejemplo C#

  
using System;
using USLib.Complementos.Comprobante.Ine;
namespace Cfdi.Complemento.Ine
{
class Program
{
static void Main()
{
USLib.FachadaCfdv33 usLib = new USLib.FachadaCfdv33();
//Configurar el núemero de decimales que se manejaran
//La libreria TRUNCA - NO REDONDEA
//Ejemplo: 1.123999 a 3 decimales resultado: 1.123
usLib.P00Setup(
numeroDecimalesEnTotales: 2, numeroDecimalesEnDetalle: 6, numeroDecimalesEnImpuestos: 6,
cerFile: @"D:DropboxCSD PruebasCSD_Pruebas_CFDI_MAG041126GT8CSD_Pruebas_CFDI_MAG041126GT8.cer",
keyFile: @"D:DropboxCSD PruebasCSD_Pruebas_CFDI_MAG041126GT8CSD_Pruebas_CFDI_MAG041126GT8.key",
passwordKey: "12345678a");
//NOTA: Si el campo es opcional se envía null o string vacio "" para omitirlo
usLib.P01DatosGenerales(
serie: "A", //Atributo opcional para precisar la serie para control interno del contribuyente. Este atributo acepta una cadena de caracteres.
folio: "12345", //Atributo opcional para control interno del contribuyente que expresa el folio del comprobante, acepta una cadena de caracteres.
fecha: DateTime.Now.ToString("s"), //Atributo requerido para la expresión de la fecha y hora de expedición del Comprobante Fiscal Digital por Internet. Se expresa en la forma AAAA-MM-DDThh:mm:ss y debe corresponder con la hora local donde se expide el comprobante.
formaPago: "01", //Atributo condicional para expresar la clave de la forma de pago de los bienes o servicios amparados por el comprobante. Si no se conoce la forma de pago este atributo se debe omitir.
condicionesDePago: "Contado", //Atributo condicional para expresar las condiciones comerciales aplicables para el pago del comprobante fiscal digital por Internet. Este atributo puede ser condicionado mediante atributos o complementos.
subTotal: "100.00", //Atributo requerido para representar la suma de los importes de los conceptos antes de descuentos e impuesto. No se permiten valores negativos.
descuento: "0.00", //Atributo condicional para representar el importe total de los descuentos aplicables antes de impuestos. No se permiten valores negativos. Se debe registrar cuando existan conceptos con descuento.
moneda: "MXN", //Atributo requerido para identificar la clave de la moneda utilizada para expresar los montos, cuando se usa moneda nacional se registra MXN. Conforme con la especificación ISO 4217.
tipoCambio: "1.00", //Atributo condicional para representar el tipo de cambio conforme con la moneda usada. Es requerido cuando la clave de moneda es distinta de MXN y de XXX. El valor debe reflejar el número de pesos mexicanos que equivalen a una unidad de la divisa señalada en el atributo moneda. Si el valor está fuera del porcentaje aplicable a la moneda tomado del catálogo c_Moneda, el emisor debe obtener del PAC que vaya a timbrar el CFDI, de manera no automática, una clave de confirmación para ratificar que el valor es correcto e integrar dicha clave en el atributo Confirmacion.
total: "116.00", //Atributo requerido para representar la suma del subtotal, menos los descuentos aplicables, más las contribuciones recibidas (impuestos trasladados - federales o locales, derechos, productos, aprovechamientos, aportaciones de seguridad social, contribuciones de mejoras) menos los impuestos retenidos. Si el valor es superior al límite que establezca el SAT en la Resolución Miscelánea Fiscal vigente, el emisor debe obtener del PAC que vaya a timbrar el CFDI, de manera no automática, una clave de confirmación para ratificar que el valor es correcto e integrar dicha clave en el atributo Confirmacion. No se permiten valores negativos.
tipoDeComprobante: "I", //Atributo requerido para expresar la clave del efecto del comprobante fiscal para el contribuyente emisor.
metodoPago: "PUE", //Atributo condicional para precisar la clave del método de pago que aplica para este comprobante fiscal digital por Internet, conforme al Artículo 29-A fracción VII incisos a y b del CFF.
lugarExpedicion: "85040", //Atributo requerido para incorporar el código postal del lugar de expedición del comprobante (domicilio de la matriz o de la sucursal).
confirmacion: ""
);
//Nodo requerido para expresar la información del contribuyente emisor del comprobante.
usLib.P03Emisor(
rfc: "MAG041126GT8", //Atributo requerido para registrar la Clave del Registro Federal de Contribuyentes correspondiente al contribuyente emisor del comprobante.
nombre: "EMCORSOFT SC", //Atributo opcional para registrar el nombre, denominación o razón social del contribuyente emisor del comprobante.
regimenFiscal: "601" //Atributo requerido para incorporar la clave del régimen del contribuyente emisor al que aplicará el efecto fiscal de este comprobante.
);
//Nodo requerido para precisar la información del contribuyente receptor del comprobante.
usLib.P04Receptor(
rfc: "USO110603I26", //Atributo requerido para precisar la Clave del Registro Federal de Contribuyentes correspondiente al contribuyente receptor del comprobante.
nombre: "UMBRALL SOFTWARE SA DE CV", //Atributo opcional para precisar el nombre, denominación o razón social del contribuyente receptor del comprobante.
residenciaFiscal: "", //Atributo condicional para registrar la clave del país de residencia para efectos fiscales del receptor del comprobante, cuando se trate de un extranjero, y que es conforme con la especificación ISO 3166-1 alpha-3. Es requerido cuando se incluya el complemento de comercio exterior o se registre el atributo NumRegIdTrib.
numRegIdTrib: "", //Atributo condicional para expresar el número de registro de identidad fiscal del receptor cuando sea residente en el extranjero. Es requerido cuando se incluya el complemento de comercio exterior.
usoCfdi: "G01" //Atributo requerido para expresar la clave del uso que dará a esta factura el receptor del CFDI.
);
//Nodo requerido para enlistar los conceptos cubiertos por el comprobante.
//Nodo para introducir la información detallada de un bien o servicio amparado en el comprobante.
//Puede agregar 1 o más
var c1 = usLib.P05ConceptosAgregar(
claveProdServ: "01010101", //Atributo requerido para expresar la clave del producto o del servicio amparado por el presente concepto. Es requerido y deben utilizar las claves del catálogo de productos y servicios, cuando los conceptos que registren por sus actividades correspondan con dichos conceptos.
noIdentificacion: "998877660011", //Atributo opcional para expresar el número de parte, identificador del producto o del servicio, la clave de producto o servicio, SKU o equivalente, propia de la operación del emisor, amparado por el presente concepto. Opcionalmente se puede utilizar claves del estándar GTIN.
cantidad: "1.00", //Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por el presente concepto.
claveUnidad: "H87", //Atributo requerido para precisar la clave de unidad de medida estandarizada aplicable para la cantidad expresada en el concepto. La unidad debe corresponder con la descripción del concepto.
unidad: "Pieza", //Atributo opcional para precisar la unidad de medida propia de la operación del emisor, aplicable para la cantidad expresada en el concepto. La unidad debe corresponder con la descripción del concepto.
descripcion: "CABLE NUMERO 5", //Atributo requerido para precisar la descripción del bien o servicio cubierto por el presente concepto.
valorUnitario: "100.00", //Atributo requerido para precisar el valor o precio unitario del bien o servicio cubierto por el presente concepto.
importe: "100.00", //Atributo requerido para precisar el importe total de los bienes o servicios del presente concepto. Debe ser equivalente al resultado de multiplicar la cantidad por el valor unitario expresado en el concepto. No se permiten valores negativos.
descuento: "0.00"
);
usLib.P05ConceptoAgregarImpuestoTraslado(baseCalculoImpuesto:
"100.00", impuesto: "002", tipoFactor: "Tasa", tasaOCuota:
"0.160000", importe: "16.00", concepto: c1);
//Impuestos
//Impuestos - Trasladados
usLib.P06ImpuestosTrasladosAgregar(
impuesto: "002", //Atributo requerido para señalar la clave del tipo de impuesto trasladado.
tipoFactor: "Tasa", //Atributo requerido para señalar la clave del tipo de factor que se aplica a la base del impuesto.
tasaOCuota: "0.160000", //Atributo requerido para señalar el valor de la tasa o cuota del impuesto que se traslada por los conceptos amparados en el comprobante.
importe: "16.00" //Atributo requerido para señalar la suma del importe del impuesto trasladado, agrupado por impuesto, TipoFactor y TasaOCuota. No se permiten valores negativos.
);
//INICO
//En este punto, se pueden incluir los complementos oficiales del SAT
//Complemento al Comprobante Fiscal Digital por Internet (CFDI) para incluir los datos que identifiquen el tipo de proceso al que van dirigidos los gastos que realizan los partidos o las Asociaciones Civiles.
var ine = new FachadaIne();
ine.P01Generales(
tipoProceso: INETipoProceso.Precampaña, //Atributo requerido para expresar el tipo de proceso de que se trate.
tipoComite: INETipoComite.DirectivoEstatal, //Atributo condicional para expresar el tipo de comité de que se trate.
tipoComiteEsp: false, //True para especificar el tipo de comite, False para omitir el campo en el Xml
idContabilidad: 0 //Atributo opcional para registrar la clave de contabilidad de aspirantes precandidatos, candidatos y concentradoras, si se trata de un tipo de proceso ordinario y un comité ejecutivo nacional. Para los otros casos, la clave de contabilidad se registra en el atributo ine:Entidad:Contabilidad:IdContabilidad.
);
//Nodo condicional para expresar los datos correspondientes a las entidades federativas en las que se va a aplicar el gasto.
ine.P02AgregarEntidad(
claveEntidad: t_ClaveEntidad.SON, //Atributo requerido para registrar la clave de la entidad a la que aplica el gasto.
ambito: INEEntidadAmbito.Federal, //Atributo condicional para registrar el tipo de ámbito de un proceso de tipo Campaña o Precampaña. Este atributo no se debe registrar para los procesos de tipo Ordinario.
ambitoEspecifica: true, //True para especificar el ambito, False para omitir el campo en el Xml
lstContabilidad: 0 //Nodo para expresar la clave de contabilidad de aspirantes precandidatos, candidatos y concentradoras. Incluir 1 o más valores separados por comas Ej. 0, 1, 2, 3
);
ine.P03Cerrar(cfd: usLib.Cfd);
//FIN
//Firmar el comprobante
//Este paso genera automáticamente la cadena original
usLib.P08GenerarSelloDigital();
var result = usLib.P09TimbrarDocumento(esPrueba: true, validacionPrevia: false, key: "");
if (result.OperacionExitosa)
{
var rfcProveedor = usLib.ResumenCfdv33.TfdRfcProvCertif;
var uuid = usLib.ResumenCfdv33.TfdUuid;
var fechaTimbrado = usLib.ResumenCfdv33.TfdFechaTimbrado;
var selloSat = usLib.ResumenCfdv33.TfdSelloSat;
var noCertificadoSat = usLib.ResumenCfdv33.TfdNoCertificadoSat;
var noCertificadoEmisor = usLib.CsdSerie;
var cadenaSat = usLib.ResumenCfdv33.TfdCadenaOriginal;
System.IO.File.WriteAllBytes(@"C:Wsdl" + usLib.ResumenCfdv33.TfdUuid + ".jpg", usLib.ResumenCfdv33.QrImagen);
Console.WriteLine("OK");
System.IO.File.WriteAllBytes(@"C:Wsdl" + usLib.ResumenCfdv33.TfdUuid + ".xml", result.XmlFile);
}
else
{
System.IO.File.WriteAllBytes(@"C:WsdlError.xml", result.XmlFile);
Console.WriteLine(result.MensajeError);
}
Console.ReadKey();
}
}
} 
Xml salida

  
<?xml version="1.0" encoding="utf-8"?>
<cfdi:Comprobante
xmlns:ine = "http://www.sat.gob.mx/ine"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd http://www.sat.gob.mx/ine http://www.sat.gob.mx/sitio_internet/cfd/ine/ine10.xsd http://www.sat.gob.mx/ine http://www.sat.gob.mx/sitio_internet/cfd/ine/ine10.xsd"
MetodoPago = "PUE"
TipoDeComprobante = "I"
Total = "116.00"
TipoCambio = "1"
Moneda = "MXN"
SubTotal = "100.00"
CondicionesDePago = "Contado"
Sello = "VUqjFDzPPsZD6M9IidWuLq57qBpGMBPUqyEkh5/spmsb75T9i2vdbfmWh2175GOfan8wlFF0+UxwMEA1LWhEjgcH5vazri0jjG2h1ShbcMqaHISekUJp091f+3EivpOND0W5sfYafz7hs8kFh4y93Otjwh2NS9/4MyZFa2llu/+JocdUQCeKlUbH9dOMInas0p/RH+SvKtvNUTskKhOX75ZFO7ITgsSw6Sh8p633N/urwBWZK+hYngrF6hbD8S/KE0FptC0mRixrVz3DamQ43z5b+PvhWnBXhV+74hO2jP+En3YtbKB0slMJYMxhzSJa8HMncHj2TLnKmnmYjNQNbg=="
NoCertificado = "20001000000300022755"
FormaPago = "01"
LugarExpedicion = "85040"
Fecha = "2018-01-30T18:23:41"
Folio = "12345"
Serie = "A"
Version = "3.3"
Certificado = "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"
xmlns:cfdi = "http://www.sat.gob.mx/cfd/3">
<cfdi:Emisor Rfc = "MAG041126GT8" Nombre = "EMCORSOFT SC" RegimenFiscal = "601"/>
<cfdi:Receptor Rfc = "USO110603I26" Nombre = "UMBRALL SOFTWARE SA DE CV" UsoCFDI = "G01"/>
<cfdi:Conceptos>
<cfdi:Concepto ClaveProdServ = "01010101" NoIdentificacion = "998877660011" Cantidad = "1.000000" ClaveUnidad = "H87" Unidad = "Pieza" Descripcion = "CABLE NUMERO 5" ValorUnitario = "100.000000" Importe = "100.000000">
<cfdi:Impuestos>
<cfdi:Traslados>
<cfdi:Traslado Base = "100.000000" Impuesto = "002" TipoFactor = "Tasa" TasaOCuota = "0.160000" Importe = "16.000000"/>
</cfdi:Traslados>
</cfdi:Impuestos>
</cfdi:Concepto>
</cfdi:Conceptos>
<cfdi:Impuestos TotalImpuestosTrasladados = "16.00">
<cfdi:Traslados>
<cfdi:Traslado Impuesto = "002" TipoFactor = "Tasa" TasaOCuota = "0.160000" Importe = "16.00"/>
</cfdi:Traslados>
</cfdi:Impuestos>
<cfdi:Complemento>
<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 = "1F6636D3-EA95-AAAA-AAAA-526444336600"
FechaTimbrado = "2018-01-30T19:23:42"
RfcProvCertif = "IAD121214B34"
SelloCFD = "VUqjFDzPPsZD6M9IidWuLq57qBpGMBPUqyEkh5/spmsb75T9i2vdbfmWh2175GOfan8wlFF0+UxwMEA1LWhEjgcH5vazri0jjG2h1ShbcMqaHISekUJp091f+3EivpOND0W5sfYafz7hs8kFh4y93Otjwh2NS9/4MyZFa2llu/+JocdUQCeKlUbH9dOMInas0p/RH+SvKtvNUTskKhOX75ZFO7ITgsSw6Sh8p633N/urwBWZK+hYngrF6hbD8S/KE0FptC0mRixrVz3DamQ43z5b+PvhWnBXhV+74hO2jP+En3YtbKB0slMJYMxhzSJa8HMncHj2TLnKmnmYjNQNbg=="
NoCertificadoSAT = "20001000000300022323"
SelloSAT = "Lrtz/vUSPygcr6+C5kklNPgMD232ZOgbOsTZfOkm3cVeM4wEC8WuXp+XICZ+O1FmBwmdXEhvjBIx35QLJdYgSJIIUix7NJQRMaoJO9NXuiFpdPmBn4jHPJryBkU+VNY1POida3KaVUiFqgsRGpCQPCtG/23punRp1tpUeodPlTkbrIxOO2b6HVu28N9el5CYADgx2RAiqJ76jKfwN0snilco+HefcAbf3vO0H0rdVeRmGZR4Upr8Qs4DSaPN1KZ7GLAbe4FHQk4v07vUNyJ9L1DMzuw6llR3bayOCmClHNhHFNtS80zPvhM0Q6nJWyleCLmnU8LOFT/OVlQw6+u1AA=="
xmlns:tfd = "http://www.sat.gob.mx/TimbreFiscalDigital"/>
<INE xmlns:xsd = "http://www.w3.org/2001/XMLSchema" Version = "1.1" TipoProceso = "Precampaña" xmlns = "http://www.sat.gob.mx/ine">
<Entidad ClaveEntidad = "SON" Ambito = "Federal">
<Contabilidad IdContabilidad = "0"/>
</Entidad>
</INE>
</cfdi:Complemento>
</cfdi:Comprobante> 

Estamos cerca de ti, ¡síguenos!
Y entérate de nuestras promociones

© emcor software todos los derechos reservados 2020.

Solicita tu

Kit de integración

Ingresa tus datos


Recibe nuestro kit de integración!, solo tienes que solicitarlo por medio de este formulario.