Funciones
DataSet CrearDataSet(string Complemento)
Recibe la variable Complemento con el nombre del complemento que se quiere timbrar
(pagos, educacion, donatarias, impuestoslocales, comercioexterior, ine, construccion)
Regresa un DataSet con la estructura de tablas que se necesita para llenar el XML de factura y algún complemento si se necesita
String SellarDocumento(DataSet dtsFactura, string Complemento)
Recibe un DataSet lleno con los valores necesarios para Timbrar una factura o una factura con complemento.
DataSet que se crea con la función CrearDataSet pero lleno con los valores del complemento
Recibe la variable Complemento con el nombre del complemento que se quiere timbrar
(pagos, educacion, donatarias, impuestoslocales, comercioexterior, ine, construccion)
Regresa un string con el XML serializado en Base64 listo para consumir la API
Valores
Variable Complemento puede tener los siguientes valores siempre en minúsculas.
- (vacío indica que la factura no tiene complemento)
- pagos
- educacion
- donatarias
- impuestoslocales
- comercioexterior
- ine
- construccion
DataSet contiene la estructura de las tablas para poder generar el XML de una factura
Tabla Cfdi contiene valores referentes al timbrado
FormaDePago | clave del catálogo c_FormaPago |
CondicionesDePago | Ej. 15 DIAS |
TipoDeComprobante | con valor del catálogo c_TipoDeComprobante |
MetodoDePago | código del catálogo c_MetodoPago |
LugarExpedicion | Código Postal del domicilio de la matriz o sucursal |
TipoRelacion | valor del catálogo c_TipoRelacion |
UsoCFDI | valor del catálogo c_UsoCfdi |
Tabla Documento tiene datos de la factura
Serie | Serie de la factura |
Folio | Folio de la factura |
FechaDocumento | con formato yyyy-MM-dd hh:mm:ss |
CodigoMoneda | con valor del catálogo c_Moneda |
SubImporte | (SubTotal) |
DescuentoIndividual | (Descuento) |
TipoCambio | decimal hasta con 6 decimales |
Total | Total con 2 decimales |
ImpuestosRetenciones | Total de impuestos Retenidos |
ImpuestosTrasladados | Total de impuestos trasladados |
Tabla CfdiRelacionados contiene solo los UUID de las facturas relacionadas
UUID | valor de UUID de cada factura relacionada a la que se quiere timbrar |
Tabla Emisor
Rfc |
|
RazonSocial |
|
RegimenFiscal | clave del catálogo c_RegimenFiscal |
ContrasenaCertificado | contraseña del certificado digital |
CertificadoDigital | certificado digital en byte[] (.cer) |
ClavePrivada | clave privada en byte[] (.key) |
Tabla Receptor
Rfc |
|
RazonSocial |
|
Pais | (ResidenciaFiscal) valor del catalogo c_Pais |
Tabla Conceptos contiene información relacionada a los artículos, lleva una fila por cada articulo
Codigo | usado para relacionar artículos, impuestos y otros datos en complementos (podría ser un Id) | |
CodigoBarras | (NoIdentificacion) | |
ClaveProdServ | con valor del catalogo c_ClaveProdServ | |
Cantidad |
| |
ClaveUnidad | valor del catalogo c_ClaveUnidad | |
UnidadMedida | descripción de Claveunidad | |
Descripcion |
| |
ValorUnitario |
| |
SubImporte |
| |
Descuentos |
| |
Tabla Traslados contiene la información de los impuestos trasladados de cada artículo por lo que es una fila por cada impuesto que tengan los artículos
CodigoArticulo | Codigo del articulo al que corresponde el impuesto |
Base | Cantidad a la que se le va a aplicar el impuesto |
Impuesto | Codigo del impuesto del catalogo c_Impuesto |
TipoFactor | Codigo del catalogo c_TipoFactor para saber si es Tasa, Cuota o Exento |
TasaOCuota | El valor de la Tasa o Cuota del impuesto asignado (ej. 16 para Iva) |
Importe | es el valor correspondiente a la Tasa o Cuota del impuesto respecto al Importe del articulo |
Tabla Retenciones es una fila por cada impuesto retenido que tengan los artículos
CodigoArticulo | Codigo del articulo al que corresponde el impuesto |
Base | Cantidad a la que se le va a aplicar el impuesto |
Impuesto | Codigo del impuesto del catalogo c_Impuesto |
TipoFactor | Codigo del catalogo c_TipoFactor para saber si es Tasa, Cuota o Exento |
TasaOCuota | El valor de la Tasa o Cuota del impuesto asignado (ej. 10.667 para Retención de Iva) |
Importe | es el valor correspondiente a la Tasa o Cuota del impuesto respecto al Importe del articulo |
Tabla ImpuestosTrasladados contiene información del Total de los impuestos trasladados por lo que solo es una fila
Impuesto | Codigo del impuesto del catalogo c_Impuesto |
TipoFactor | Codigo del catalogo c_TipoFactor para saber si es Tasa, Cuota o Exento |
TasaOCuota | El valor de la Tasa o Cuota del impuesto asignado |
Importe | Suma del importe de los artículos a los que se les asigno este impuesto |
Tabla ImpuestosRetenciones es el total de los impuestos retenidos y es una sola fila
Impuesto | Codigo del impuesto del catalogo c_Impuesto |
Importe | Suma del importe de los artículos a los que se les asigno este impuesto |
Complemento de Pagos
Se asignan los valores predeterminados a los nodos de la factura
Tabla Pagos
FechaAplicacion | (FechaPago) en formato yyyy-MM-dd hh:mm:ss |
FormatoPago | (FormaDePagoP) valor del catalogo c_FormaPago |
CodigoMoneda | (MonedaP) valor del catalogo c_Moneda |
TipoCambio | (TipoCambioP) |
Monto | el importe del pago |
NumOperacion | Num cheque, referencia, SPEI, etc., del pago |
NumeroCuentaOrdenante | (CtaOrdenante) con la que se realizó el pago |
NumeroCuentaBeneficiario | (CtaBeneficiario) donde se recibió el pago |
TipoCadPago | Clave del catalogo c_TipoCadenaPago cuando es SPEI |
CadPago | Cadena original del comprobante |
SelloPago | Sello digital del comprobante de pago |
Tabla Beneficiario
RFC | Es el RFC del banco del beneficiario (de la cuenta destino) |
Tabla Ordenante
RFC | el RFC del banco del Ordenante (de la cuenta origen) |
NombreBanco | el nombre del banco del ordenante |
Tabla DoctoRelacionado
IdDocumento | es el UUID del documento relacionado |
Serie |
|
Folio |
|
CodigoMoneda | (MonedaDR) |
TipoCambio | (TipoCambioDR) |
MetodoDePago | (MetodoDePagoDR) |
NumParcialidad | numero de la parcialidad que se aplica en este pago |
ImpSaldoAnt | el saldo que tiene la factura antes de este pago |
ImpPagado | importe que se aplica en este pago |
ImpSaldoInsoluto | es e l saldo que queda en la factura después de este pago |
Complemento Educacion
Tabla Educacion contiene información del complemento de Educación y lleva una fila por cada alumno en los artículos
CodigoArticulo | es el código del articulo al que se le asigna el complemento |
NombreAlumno |
|
CURP | CURP del alumno |
NivelEducativo | nivel educativo del alumno (Primaria, Secundaria, etc) |
AutRVOE |
|
RfcPago | RFC de quien paga la factura |
Complemento Donatarias
Tabla Donatarias
FechaAutorizacion |
|
NoAutorizacion |
|
Leyenda |
|
Complemento Impuestos Locales
Tabla ImpuestosLocales
TrasladoLocalTotal | la Tasa del impuesto que se aplica |
RetencionLocalTotal | la Tasa del impuesto que se aplica (ej. RTP del 3% se asigna 3) |
Tabla RetencionesLocales
RetencionLocal | es la Tasa del impuesto (ej. 3) |
RetencionLocalTotal | es el total de la Tasa del impuesto (ej. 3) |
NomImpLocal | el nombre del impuesto (ej. RTP) |
Tabla TrasladosLocales
TrasladoLocal | es la Tasa del impuesto |
TrasladoLocalTotal | es el total de la Tasa del impuesto |
NomImpLocal | el nombre del impuesto |
Complemento de Comercio Exterior
Tabla ComercioExterior
Motivotraslado |
|
TipoOperacion |
|
ClaveDePedimento |
|
CertificadoOrigen |
|
NumCertificadoOrigen |
|
NumExportadorConfiable |
|
Incoterm |
|
SubDivision |
|
TipoCambioUSD |
|
TotalUSD |
|
Tabla EmisorCE
Curp |
|
Calle |
|
NoExterior |
|
NoInterior |
|
Colonia | Codigo de la colonia |
Localidad |
|
Referencia |
|
Municipio |
|
Estado |
|
Pais |
|
CodigoPostal |
|
Tabla ReceptorCE
NumRegIdTrib | Código de 9 dígitos ej. 95076-4117 |
Calle |
|
NoExterior |
|
NoInterior |
|
Colonia |
|
Localidad |
|
Referencia |
|
Municipio |
|
EntidadFederativa |
|
Pais |
|
CodigoPostal |
|
Tabla Propietario solo cuando sea traslado
ResidenciaFiscalPropietario |
|
NumRegIdTribPropietario | Código de 9 dígitos ej. 95076-4117 |
Tabla DestinatarioCE solo cuando sea traslado
NumRegIdTribDestinatario | Código de 9 dígitos ej. 95076-4117 |
RazonSocialDestinatario |
|
CalleDestinatario |
|
NoExteriorDestinatario |
|
NoInteriorDestinatario |
|
ColoniaDestinatario |
|
LocalidadDestinatario |
|
ReferenciaDestinatario |
|
MunicipioDestinatario |
|
EstadoDestinatario |
|
PaisDestinatario |
|
CodigoPostalDestinatario |
|
Tabla Mercancias
NoIdentificacion |
|
FraccionArancelaria |
|
CantidadAduana |
|
UnidadAduana |
|
ValorUnitarioAduana |
|
ValorDolares | Valor en dólares del articulo (la suma de todos los artículos debe ser igual al TotalUSD) |
Tabla Descripciones
NoIdentificacion |
|
Marca |
|
Modelo |
|
SubModelo |
|
NumeroSerie |
|
Complemento INE
Tabla Ine
TipoProceso |
|
TipoComite |
|
IdContabilidadNacional |
|
Tabla EntidadIne
ClaveEntidad |
|
Ambito |
|
Tabla ContabilidadIne
ClaveEntidad |
|
IdContabilidadEstatal |
|
Complemento para Construcciones
Tabla Construccion
NumPerLicoAut |
|
Calle |
|
NoExterior |
|
NoInterior |
|
Colonia |
|
Localidad |
|
Referencia |
|
Municipio |
|
EntidadFederativa |
|
CodigoPostal |
|
Ejemplos
Primero agregar la dll en "References"
DataSet dtsFactura = new DataSet();
Opravy.Timbrado Tim = new Opravy.Timbrado();
dtsFactura = Tim.CrearDataSet(Complemento);
//Se llena el DatsaSet con los valores requeridos como se muestra en los ejemplos de mas abajo
//dtsFactura = LlenarDataSet(dtsFactura, Complemento, Tipo);
//el valor regresado de la función SellarDocumento esta serializado en B64
string XML = Tim.SellarDocumento(dtsFactura, Complemento);
byte[] cer = File.ReadAllBytes("F:\\Temp\\cer.cer");
byte[] key = File.ReadAllBytes("F:\\Temp\\key.key");
Factura con un solo articulo
dtsFactura.Tables["Cfdi"].Rows.Add("01","", "I", "PUE", "47600", "", "P01");
dtsFactura.Tables["Documento"].Rows.Add("A", "80", FechaActual, "MXN", "100", "0", "1", "116", "0", "16");
dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8", "Empresa de Prueba SA", "621", "12345678a", cer, key);
dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000", "VENTAS DE MOSTRADOR", "MX");
///por cada concepto agregar las tres tablas siguientes
dtsFactura.Tables["Conceptos"].Rows.Add("01", "01", "01010101", "1", "H87", "Pieza", "Articulo de prueba", "100", "100", "0");
dtsFactura.Tables["Traslados"].Rows.Add("01", "100", "002", "Tasa", "16", "16");
dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002", "Tasa", "16", "16");
Factura con IVA y IEPS
dtsFactura.Tables["Cfdi"].Rows.Add("01", "", "I", "PUE", "47600", "", "P01");
dtsFactura.Tables["Documento"].Rows.Add("A", "80", FechaActual, "MXN", "200", "0", "1", "250.56", "0", "50.56 ");
dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8", "Empresa de Prueba SA", "621", "12345678a", cer, key);
dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000", "VENTAS DE MOSTRADOR", "MX");
///por cada concepto agregar las tres tablas siguientes
dtsFactura.Tables["Conceptos"].Rows.Add("01", "01", "01010101", "1", "H87", "Pieza", "Articulo de prueba", "200", "200", "0");
dtsFactura.Tables["Traslados"].Rows.Add("01", "216", "002", "Tasa", "16", "34.56");
dtsFactura.Tables["Traslados"].Rows.Add("01", "200", "003", "Tasa", "8", "16");
dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002", "Tasa", "16", "34.56");
dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("003", "Tasa", "16", "16");
Factura con IVA Exento
dtsFactura.Tables["Cfdi"].Rows.Add("01", "", "I", "PUE", "47600", "", "P01");
dtsFactura.Tables["Documento"].Rows.Add("A", "80", FechaActual, "MXN", "100", "0", "1", "100", "0", "0");
dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8", "Empresa de Prueba SA", "621", "12345678a", cer, key);
dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000", "VENTAS DE MOSTRADOR", "MX");
///por cada concepto agregar las tres tablas siguientes
dtsFactura.Tables["Conceptos"].Rows.Add("01", "01", "01010101", "1", "H87", "Pieza", "Articulo de prueba", "100", "100", "0");
dtsFactura.Tables["Traslados"].Rows.Add("01", "100", "002", "Exento", "", "");
//solo se agrega al nodo impuestos en conceptos
//no se agrega al nodo impuestos
Factura con varios artículos
dtsFactura.Tables["Cfdi"].Rows.Add("01", "", "I", "PUE", "47600", "", "P01");
dtsFactura.Tables["Documento"].Rows.Add("A", "80", FechaActual, "MXN", "500", "0", "1", "564", "0", "64");
dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8", "Empresa de Prueba SA", "621", "12345678a", cer, key);
dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000", "VENTAS DE MOSTRADOR", "MX");
///por cada concepto agregar las tres tablas siguientes
dtsFactura.Tables["Conceptos"].Rows.Add("01", "01", "01010101", "1", "H87", "Pieza", "Articulo de prueba01", "100", "100", "0");
dtsFactura.Tables["Conceptos"].Rows.Add("02", "01", "01010101", "1", "H87", "Pieza", "Articulo de prueba02", "100", "100", "0");
dtsFactura.Tables["Conceptos"].Rows.Add("03", "01", "01010101", "1", "H87", "Pieza", "Articulo de prueba03", "100", "100", "0");
dtsFactura.Tables["Conceptos"].Rows.Add("04", "01", "01010101", "1", "H87", "Pieza", "Articulo de prueba04", "100", "100", "0");
dtsFactura.Tables["Conceptos"].Rows.Add("05", "01", "01010101", "1", "H87", "Pieza", "Articulo de prueba05", "100", "100", "0");
dtsFactura.Tables["Traslados"].Rows.Add("01", "100", "002", "Tasa", "16", "16");
dtsFactura.Tables["Traslados"].Rows.Add("02", "100", "002", "Tasa", "16", "16");
dtsFactura.Tables["Traslados"].Rows.Add("03", "100", "002", "Tasa", "16", "16");
dtsFactura.Tables["Traslados"].Rows.Add("04", "100", "002", "Tasa", "16", "16");
dtsFactura.Tables["Traslados"].Rows.Add("05", "100", "002", "Exento", "", "");
dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002", "Tasa", "16", "64");
Factura con IVA retenido de 10.667
dtsFactura.Tables["Cfdi"].Rows.Add("01", "", "I", "PUE", "47600", "", "P01");
dtsFactura.Tables["Documento"].Rows.Add("A", "80", FechaActual, "MXN", "100", "0", "1", "89.33", "10.67", "0");
dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8", "Empresa de Prueba SA", "621", "12345678a", cer, key);
dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000", "VENTAS DE MOSTRADOR", "MX");
///por cada concepto agregar las tres tablas siguientes
dtsFactura.Tables["Conceptos"].Rows.Add("01", "01", "01010101", "1", "H87", "Pieza", "Articulo de prueba", "100", "100", "0");
dtsFactura.Tables["Retenciones"].Rows.Add("01", "100", "002", "Tasa", "10.667", "10.67");
dtsFactura.Tables["ImpuestosRetenciones"].Rows.Add("002", "10.67");
Factura con un documento relacionado
dtsFactura.Tables["Cfdi"].Rows.Add("01", "", "I", "PUE", "47600", "04", "P01");
dtsFactura.Tables["Documento"].Rows.Add("A", "80", FechaActual, "MXN", "100", "0", "1", "116", "0", "16");
//un registro por cada documento relacionado
dtsFactura.Tables["CfdiRelacionados"].Rows.Add("341632f7-13be-4244-93f7-6b2aa65933c0");
dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8", "Empresa de Prueba SA", "621", "12345678a", cer, key);
dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000", "VENTAS DE MOSTRADOR", "MX");
///por cada concepto agregar las tres tablas siguientes
dtsFactura.Tables["Conceptos"].Rows.Add("01", "01", "01010101", "1", "H87", "Pieza", "Articulo de prueba", "100", "100", "0");
dtsFactura.Tables["Traslados"].Rows.Add("01", "100", "002", "Tasa", "16", "16");
dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002", "Tasa", "16", "16");
Nota de crédito
dtsFactura.Tables["Cfdi"].Rows.Add("01", "", "E", "PUE", "47600", "01", "P01");
dtsFactura.Tables["Documento"].Rows.Add("A", "80", FechaActual, "MXN", "100", "0", "1", "116", "0", "16");
//un registro por cada documento relacionado
dtsFactura.Tables["CfdiRelacionados"].Rows.Add("341632f7-13be-4244-93f7-6b2aa65933c0");
dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8", "Empresa de Prueba SA", "621", "12345678a", cer, key);
dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000", "VENTAS DE MOSTRADOR", "MX");
///por cada concepto agregar las tres tablas siguientes
dtsFactura.Tables["Conceptos"].Rows.Add("01", "01", "01010101", "1", "H87", "Pieza", "Articulo de prueba", "100", "100", "0");
dtsFactura.Tables["Traslados"].Rows.Add("01", "100", "002", "Tasa", "16", "16");
dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002", "Tasa", "16", "16");
Carta Porte
Los totales se registran en cero
dtsFactura.Tables["Cfdi"].Rows.Add("01", "", "T", "PUE", "47600", "", "P01");
dtsFactura.Tables["Documento"].Rows.Add("A", "80", FechaActual, "MXN", "0", "0", "1", "0", "0", "0");
dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8", "Empresa de Prueba SA", "621", "12345678a", cer, key);
dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000", "VENTAS DE MOSTRADOR", "MX");
///por cada concepto agregar las tres tablas siguientes
dtsFactura.Tables["Conceptos"].Rows.Add("01", "01", "01010101", "1", "H87", "Pieza", "Articulo de prueba", "100", "100", "0");
//en este tipo de documento no hay impuestos
Complemento de pagos
Se llena el articulo a algunos datos del documento con valores específicos
dtsFactura.Tables["Cfdi"].Rows.Add("", "", "P", "", "47600", "", "P01");
dtsFactura.Tables["Documento"].Rows.Add("P", "80", FechaActual, "XXX", "0", "0", "1", "0", "0", "0");
dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8", "Empresa de Prueba SA", "621", "12345678a", cer, key);
dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000", "VENTAS DE MOSTRADOR", "MX");
///por cada concepto agregar las tres tablas siguientes
dtsFactura.Tables["Conceptos"].Rows.Add("01", "01", "84111506", "1", "ACT", "Actividad", "Pago", "0", "0", "0");
////sin impuestos en estructura de documento
//complemento
dtsFactura.Tables["Pagos"].Rows.Add(FechaActual,"02","MXN","1", "100","", "253214585696521458", "01569874523215245", "","","","");
dtsFactura.Tables["Beneficiario"].Rows.Add("BNM840515VB1");
dtsFactura.Tables["Ordenante"].Rows.Add("BAF950102JP5", "BANCA AFIRME, SA");
dtsFactura.Tables["DoctoRelacionado"].Rows.Add("efa72fdc-9949-411d-a3c0-1d1729b0859b", "A", "150", "MXN","1", "PPD", "1", "150", "100", "50");
Complemento de educación
dtsFactura.Tables["Cfdi"].Rows.Add("01", "", "I", "PUE", "47600", "", "P01");
dtsFactura.Tables["Documento"].Rows.Add("A", "80", FechaActual, "MXN", "200", "0", "1", "232", "0", "32");
dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8", "Empresa de Prueba SA", "621", "12345678a", cer, key);
dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000", "VENTAS DE MOSTRADOR", "MX");
///por cada concepto agregar las tres tablas siguientes
dtsFactura.Tables["Conceptos"].Rows.Add("01", "01", "01010101", "1", "H87", "Pieza", "Colegiatura", "100", "100", "0");
dtsFactura.Tables["Traslados"].Rows.Add("01", "100", "002", "Tasa", "16", "16");
dtsFactura.Tables["Conceptos"].Rows.Add("02", "01", "01010101", "1", "H87", "Pieza", "Colegiatura", "100", "100", "0");
dtsFactura.Tables["Traslados"].Rows.Add("02", "100", "002", "Tasa", "16", "16");
dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002", "Tasa", "16", "32");
///por cada alumno se agrega un complemento
dtsFactura.Tables["Educacion"].Rows.Add("01","Jose de Jesus", "BADD110313HCMLNS09", "Primaria", "P98140032", "XAXX010101000");
dtsFactura.Tables["Educacion"].Rows.Add("02", "Pancho", "BADD110313HCMLNS09", "Primaria", "P98140032", "XAXX010101000");
Complemento de Donatarias
dtsFactura.Tables["Cfdi"].Rows.Add("01", "", "I", "PUE", "47600", "", "P01");
dtsFactura.Tables["Documento"].Rows.Add("A", "80", FechaActual, "MXN", "100", "0", "1", "116", "0", "16");
dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8", "Empresa de Prueba SA", "621", "12345678a", cer, key);
dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000", "VENTAS DE MOSTRADOR", "MX");
///por cada concepto agregar las tres tablas siguientes
dtsFactura.Tables["Conceptos"].Rows.Add("01", "01", "01010101", "1", "H87", "Pieza", "Articulo de prueba", "100", "100", "0");
dtsFactura.Tables["Traslados"].Rows.Add("01", "100", "002", "Tasa", "16", "16");
dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002", "Tasa", "16", "16");
dtsFactura.Tables["Donatarias"].Rows.Add("2021-10-10", "2135284596", "leyenda");
Complemento de impuestos locales
dtsFactura.Tables["Cfdi"].Rows.Add("01", "", "I", "PUE", "47600", "", "P01");
dtsFactura.Tables["Documento"].Rows.Add("A", "80", FechaActual, "MXN", "100", "0", "1", "113", "0", "16");dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8", "Empresa de Prueba SA", "621", "12345678a", cer, key);
dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000", "VENTAS DE MOSTRADOR", "MX");
///por cada concepto agregar las tres tablas siguientes
dtsFactura.Tables["Conceptos"].Rows.Add("01", "01", "01010101", "1", "H87", "Pieza", "Articulo de prueba", "100", "100", "0");
dtsFactura.Tables["Traslados"].Rows.Add("01", "100", "002", "Tasa", "16", "16");
dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002", "Tasa", "16", "16");
dtsFactura.Tables["ImpuestosLocales"].Rows.Add("0","3");
dtsFactura.Tables["RetencionesLocales"].Rows.Add("3","3","RTP");
//dtsFactura.Tables["TrasladosLocales"].Rows.Add("","","");
Complemento de comercio exterior
dtsFactura.Tables["Cfdi"].Rows.Add("99", "", "I", "PPD", "47600", "", "G03");
dtsFactura.Tables["Documento"].Rows.Add("A", "80", FechaActual, "USD", "780000", "0", "19.81", "904800", "0", "124800");
dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8", "Empresa de Prueba SA", "621", "12345678a", cer, key);
dtsFactura.Tables["Receptor"].Rows.Add("XEXX010101000", "VENTAS DE MOSTRADOR", "USA");
///por cada concepto agregar las tres tablas siguientes
dtsFactura.Tables["Conceptos"].Rows.Add("01", "12380", "01010101", "20000", "H87", "Pieza", "Articulo de prueba", "39", "780000", "0");
dtsFactura.Tables["Traslados"].Rows.Add("01", "780000", "002", "Tasa", "16", "124800");
dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002", "Tasa", "16", "124800");
dtsFactura.Tables["ComercioExterior"].Rows.Add("", "2", "A1", "0", "", "", "CFR", "0", "", "19.81", "40600");
dtsFactura.Tables["EmisorCE"].Rows.Add("BADD110313HCMLNS09", "Cesareo Gonzalez", "45", "", "2044", "08", "", "093", "JAL", "MEX", "47600");
dtsFactura.Tables["ReceptorCE"].Rows.Add("950764117", "800 Walker Street, Watsonville", "","","","","","","AL","USA", "95076-4117");
//dtsFactura.Tables["Propietario"].Rows.Add("", "");
//dtsFactura.Tables["DestinatarioCE"].Rows.Add("", "", "", "", "", "", "", "", "", "", "", "");
///Una mercancía por cada NoIdentificacion diferente en articulos
dtsFactura.Tables["Mercancias"].Rows.Add("12380", "0405909900", "20000", "01", "2.03", "40600");
///una, varias o ninguna descripción especifica por cada mercancia
dtsFactura.Tables["Descripciones"].Rows.Add("12380", "Marca01", "Modelo01", "", "1234567890");
Compemento INE
dtsFactura.Tables["Cfdi"].Rows.Add("01", "", "I", "PUE", "47600", "", "P01");
dtsFactura.Tables["Documento"].Rows.Add("A", "80", FechaActual, "MXN", "100", "0", "1", "116", "0", "16");
dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8", "Empresa de Prueba SA", "621", "12345678a", cer, key);
dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000", "VENTAS DE MOSTRADOR", "MX");
///por cada concepto agregar las tres tablas siguientes
dtsFactura.Tables["Conceptos"].Rows.Add("01", "01", "01010101", "1", "H87", "Pieza", "Articulo de prueba", "100", "100", "0");
dtsFactura.Tables["Traslados"].Rows.Add("01", "100", "002", "Tasa", "16", "16");
dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002", "Tasa", "16", "16");
dtsFactura.Tables["Ine"].Rows.Add( "Ordinario", "Ejecutivo Estatal", "");
dtsFactura.Tables["EntidadIne"].Rows.Add("JAL", "");
// dtsFactura.Tables["ContabilidadIne"].Rows.Add("JAL", "");
Complemento de construcciones
dtsFactura.Tables["Cfdi"].Rows.Add("01", "", "I", "PUE", "47600", "", "P01");
dtsFactura.Tables["Documento"].Rows.Add("A", "80", FechaActual, "MXN", "100", "0", "1", "116", "0", "16");
dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8", "Empresa de Prueba SA", "621", "12345678a", cer, key);
dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000", "VENTAS DE MOSTRADOR", "MX");
///por cada concepto agregar las tres tablas siguientes
dtsFactura.Tables["Conceptos"].Rows.Add("01", "01", "01010101", "1", "H87", "Pieza", "Articulo de prueba", "100", "100", "0");
dtsFactura.Tables["Traslados"].Rows.Add("01", "100", "002", "Tasa", "16", "16");
dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002", "Tasa", "16", "16");
dtsFactura.Tables["Construccion"].Rows.Add("12356489","cesareo gonzalez","55","","Centro","","","Tepatitlan","14","47600");
¿Le fue útil este artículo?
¡Qué bueno!
Gracias por sus comentarios
¡Sentimos mucho no haber sido de ayuda!
Gracias por sus comentarios
Comentarios enviados
Agradecemos su iniciativa, e intentaremos corregir el artículo