
DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.
CARTA PORTE V3.1
ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03
.
Diferencias entre CFD (V2.0) y CFDI (V3.0)
- ramonzea
- Mensajes: 167
- Registrado: Mié Sep 15, 2010 12:23 am
Re: Diferencias entre CFD (V2.0) y CFDI (V3.0)
Muy bueno, pero las dudas? "SE PUBLICARA EN EL BLOG"
Cual BLOG?
Saludos.
Cual BLOG?
Saludos.
-
- Mensajes: 4
- Registrado: Jue Sep 23, 2010 9:42 pm
Re: Diferencias entre CFD (V2.0) y CFDI (V3.0)
Muchas gracias por el link de los XSD y los XSLT.... coincido en que no sabemos a que "BLOG" se refieren los del SAT...
Nosotros ya tenemos listo la mayoría de los requisitos para CFD, CFDI, QRCode, Cancelaciones CFDI... no es tan complicado.... pero hay que leer muy bien por que puede prestarse a muchas confusiones. Está pesimo que no haya un punto de contacto en el área de tecnología....
Hay un detalle en el XSD de las cancelaciones..... hay un elemento que se llama "SelloEmisor" que es de ds:SignatureType (especificación XML Digital Signature), estoy confundido acerca del nombre ya que la especificacion de w3c indica que el elemento se llama "Signature" de tipo enveloped.... si alguien tiene alguna observación a esto.. será bienvenida.....
Saludos.
Nosotros ya tenemos listo la mayoría de los requisitos para CFD, CFDI, QRCode, Cancelaciones CFDI... no es tan complicado.... pero hay que leer muy bien por que puede prestarse a muchas confusiones. Está pesimo que no haya un punto de contacto en el área de tecnología....
Hay un detalle en el XSD de las cancelaciones..... hay un elemento que se llama "SelloEmisor" que es de ds:SignatureType (especificación XML Digital Signature), estoy confundido acerca del nombre ya que la especificacion de w3c indica que el elemento se llama "Signature" de tipo enveloped.... si alguien tiene alguna observación a esto.. será bienvenida.....
Saludos.
- ramonzea
- Mensajes: 167
- Registrado: Mié Sep 15, 2010 12:23 am
Re: Diferencias entre CFD (V2.0) y CFDI (V3.0)
Bueno despues de 2 dias he avanzado mi modulito para interpretar el cfdv2.xsd y cfdv3.xsd, y despues de tanta lata me arroja el ejemplo completo de todos los datos que debe llevar la nueva CFDi, si en algo fallo espero me hagan saber.
El por que de este proceso? por que si se le ocurre al sat cambiar algo (que ocurre muy seguido
), con este proceso ya me ahorro mucha lata.
Saludos.
<?xml version="1.0" encoding="UTF-8"?> ; me faltan unos encabezdos que aun estoy analizando como interpretarlos.
<Comprobante Moneda="[Moneda]" TipoCambio="[TipoCambio]" certificado="[certificado]" condicionesDePago="[condicionesDePago]" descuento="[descuento]" fecha="[fecha]" folio="[folio]" formaDePago="[formaDePago]" metodoDePago="[metodoDePago]" motivoDescuento="[motivoDescuento]" noCertificado="[noCertificado]" sello="[sello]" serie="[serie]" subTotal="[subTotal]" tipoDeComprobante="[tipoDeComprobante]" total="[total]" version="3.0">
<Emisor nombre="[Emisor.nombre]" rfc="[Emisor.rfc]">
<DomicilioFiscal calle="[DomicilioFiscal.calle]" codigoPostal="[DomicilioFiscal.codigoPostal]" colonia="[DomicilioFiscal.colonia]" estado="[DomicilioFiscal.estado]" localidad="[DomicilioFiscal.localidad]" municipio="[DomicilioFiscal.municipio]" noExterior="[DomicilioFiscal.noExterior]" noInterior="[DomicilioFiscal.noInterior]" pais="[DomicilioFiscal.pais]" referencia="[DomicilioFiscal.referencia]"/>
<ExpedidoEn calle="[ExpedidoEn.calle]" codigoPostal="[ExpedidoEn.codigoPostal]" colonia="[ExpedidoEn.colonia]" estado="[ExpedidoEn.estado]" localidad="[ExpedidoEn.localidad]" municipio="[ExpedidoEn.municipio]" noExterior="[ExpedidoEn.noExterior]" noInterior="[ExpedidoEn.noInterior]" pais="[ExpedidoEn.pais]" referencia="[ExpedidoEn.referencia]"/>
</Emisor>
<Receptor nombre="[Receptor.nombre]" rfc="[Receptor.rfc]">
<Domicilio calle="[Domicilio.calle]" codigoPostal="[Domicilio.codigoPostal]" colonia="[Domicilio.colonia]" estado="[Domicilio.estado]" localidad="[Domicilio.localidad]" municipio="[Domicilio.municipio]" noExterior="[Domicilio.noExterior]" noInterior="[Domicilio.noInterior]" pais="[Domicilio.pais]" referencia="[Domicilio.referencia]"/>
</Receptor>
<Conceptos>
<Concepto cantidad="[cantidad]" descripcion="[descripcion]" importe="[importe]" noIdentificacion="[noIdentificacion]" unidad="[unidad]" valorUnitario="[valorUnitario]">
<InformacionAduanera aduana="[InformacionAduanera.aduana]" fecha="[InformacionAduanera.fecha]" numero="[InformacionAduanera.numero]"/>
<CuentaPredial numero="[CuentaPredial.numero]"/>
<ComplementoConcepto/>
<Parte cantidad="[Parte.cantidad]" descripcion="[Parte.descripcion]" importe="[Parte.importe]" noIdentificacion="[Parte.noIdentificacion]" unidad="[Parte.unidad]" valorUnitario="[Parte.valorUnitario]">
<InformacionAduanera aduana="[InformacionAduanera.aduana]" fecha="[InformacionAduanera.fecha]" numero="[InformacionAduanera.numero]"/>
</Parte>
</Concepto>
</Conceptos>
<Impuestos totalImpuestosRetenidos="[totalImpuestosRetenidos]" totalImpuestosTrasladados="[totalImpuestosTrasladados]">
<Retenciones>
<Retencion importe="[Retencion.importe]" impuesto="[Retencion.impuesto]"/>
</Retenciones>
<Traslados>
<Traslado importe="[Traslado.importe]" impuesto="[Traslado.impuesto]" tasa="[Traslado.tasa]"/>
</Traslados>
</Impuestos>
<Complemento/>
<Addenda/>
</Comprobante>
El por que de este proceso? por que si se le ocurre al sat cambiar algo (que ocurre muy seguido

Saludos.
<?xml version="1.0" encoding="UTF-8"?> ; me faltan unos encabezdos que aun estoy analizando como interpretarlos.
<Comprobante Moneda="[Moneda]" TipoCambio="[TipoCambio]" certificado="[certificado]" condicionesDePago="[condicionesDePago]" descuento="[descuento]" fecha="[fecha]" folio="[folio]" formaDePago="[formaDePago]" metodoDePago="[metodoDePago]" motivoDescuento="[motivoDescuento]" noCertificado="[noCertificado]" sello="[sello]" serie="[serie]" subTotal="[subTotal]" tipoDeComprobante="[tipoDeComprobante]" total="[total]" version="3.0">
<Emisor nombre="[Emisor.nombre]" rfc="[Emisor.rfc]">
<DomicilioFiscal calle="[DomicilioFiscal.calle]" codigoPostal="[DomicilioFiscal.codigoPostal]" colonia="[DomicilioFiscal.colonia]" estado="[DomicilioFiscal.estado]" localidad="[DomicilioFiscal.localidad]" municipio="[DomicilioFiscal.municipio]" noExterior="[DomicilioFiscal.noExterior]" noInterior="[DomicilioFiscal.noInterior]" pais="[DomicilioFiscal.pais]" referencia="[DomicilioFiscal.referencia]"/>
<ExpedidoEn calle="[ExpedidoEn.calle]" codigoPostal="[ExpedidoEn.codigoPostal]" colonia="[ExpedidoEn.colonia]" estado="[ExpedidoEn.estado]" localidad="[ExpedidoEn.localidad]" municipio="[ExpedidoEn.municipio]" noExterior="[ExpedidoEn.noExterior]" noInterior="[ExpedidoEn.noInterior]" pais="[ExpedidoEn.pais]" referencia="[ExpedidoEn.referencia]"/>
</Emisor>
<Receptor nombre="[Receptor.nombre]" rfc="[Receptor.rfc]">
<Domicilio calle="[Domicilio.calle]" codigoPostal="[Domicilio.codigoPostal]" colonia="[Domicilio.colonia]" estado="[Domicilio.estado]" localidad="[Domicilio.localidad]" municipio="[Domicilio.municipio]" noExterior="[Domicilio.noExterior]" noInterior="[Domicilio.noInterior]" pais="[Domicilio.pais]" referencia="[Domicilio.referencia]"/>
</Receptor>
<Conceptos>
<Concepto cantidad="[cantidad]" descripcion="[descripcion]" importe="[importe]" noIdentificacion="[noIdentificacion]" unidad="[unidad]" valorUnitario="[valorUnitario]">
<InformacionAduanera aduana="[InformacionAduanera.aduana]" fecha="[InformacionAduanera.fecha]" numero="[InformacionAduanera.numero]"/>
<CuentaPredial numero="[CuentaPredial.numero]"/>
<ComplementoConcepto/>
<Parte cantidad="[Parte.cantidad]" descripcion="[Parte.descripcion]" importe="[Parte.importe]" noIdentificacion="[Parte.noIdentificacion]" unidad="[Parte.unidad]" valorUnitario="[Parte.valorUnitario]">
<InformacionAduanera aduana="[InformacionAduanera.aduana]" fecha="[InformacionAduanera.fecha]" numero="[InformacionAduanera.numero]"/>
</Parte>
</Concepto>
</Conceptos>
<Impuestos totalImpuestosRetenidos="[totalImpuestosRetenidos]" totalImpuestosTrasladados="[totalImpuestosTrasladados]">
<Retenciones>
<Retencion importe="[Retencion.importe]" impuesto="[Retencion.impuesto]"/>
</Retenciones>
<Traslados>
<Traslado importe="[Traslado.importe]" impuesto="[Traslado.impuesto]" tasa="[Traslado.tasa]"/>
</Traslados>
</Impuestos>
<Complemento/>
<Addenda/>
</Comprobante>
-
- Mensajes: 6
- Registrado: Jue Jul 29, 2010 6:17 pm
Re: Diferencias entre CFD (V2.0) y CFDI (V3.0)
Para los CFDi tampoco vamos a necesitar el noAprobación y anoAprobacion incluidos en la V2.0 ¿es correcto?
En el complemento Timbrado Fiscal ¿cuales serían los nodos que debemos dejar vacios para que el SAT los llene? ¿Todos excepto la versión? o de esto aún no ha dicho nada el SAT.
Saludos.
En el complemento Timbrado Fiscal ¿cuales serían los nodos que debemos dejar vacios para que el SAT los llene? ¿Todos excepto la versión? o de esto aún no ha dicho nada el SAT.
Saludos.
- Dado
- Mensajes: 15980
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: Diferencias entre CFD (V2.0) y CFDI (V3.0)
Es correcto, me falto poner en el primer post que la V3.0 ya NO LLEVA noAprobacion ni anoAprobacion.link_zda escribió:Para los CFDi tampoco vamos a necesitar el noAprobación y anoAprobacion incluidos en la V2.0 ¿es correcto?
En el complemento Timbrado Fiscal ¿cuales serían los nodos que debemos dejar vacios para que el SAT los llene? ¿Todos excepto la versión? o de esto aún no ha dicho nada el SAT.
Saludos.
Esto es debido a que ahora el folio (llamado UUID) se lo pone el SAT al momento de timbrar.
No debes dejar ningun nodo vacio, lo que pasa es que el timbrado va a ser atravez de un "Complemento" que lleva 6 datos, ahi si supongo que dejas vacio el selloSAT :
Complemento Timbre Fiscal Digital :
Version - fijo a 1.0
UUID - Es como el "folio" de 36 caracteres
FechaTimbrado - este dato yo creo que si lo llena el SAT
SelloCFD - El sello del XML que calculaste antes de enviar tu comprobante a timbrar
noCertificadoSAT - el numero de serie del certificado que esta usando el SAT
selloSAT - idem...
Todavia no he llegado al envio-recepccion del timbre, se ve que es un poco complejo ya que hay que sellar digitalmente el XML luego "envolverlo" en el protocolo SOAP y despues esperar una respuesta.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 6
- Registrado: Jue Jul 29, 2010 6:17 pm
Re: Diferencias entre CFD (V2.0) y CFDI (V3.0)
Ok muchas gracias por el apoyo y jeje si se escucha algo complicado eso del envio-recepción del Timbrado
Saludos :p

Saludos :p
-
- Mensajes: 14
- Registrado: Lun Oct 18, 2010 12:00 am
Re: Diferencias entre CFD (V2.0) y CFDI (V3.0)
Estuve haciendo pruebas para el CFDI, pero veo que el ejemplo que publica el SAT no tiene en el xml la moneda y el tipo de cambio, no me esta validando la cadena original con el CSD del emisor, esta es mi cadena original:
Cadena original corregida (sigue sin validar)
Ya estoy usando SHA-1, alguien ha podido validar este CFDI de ejemplo, estoy omitiendo algo?
Saludos.
Cadena original corregida (sigue sin validar)
Código: Seleccionar todo
||3.0|2010-03-06T20:38:12|ingreso|PAGO EN UNA SOLA EXHIBICION|488.50|||488.50|PPL961114GZ1|PHARMA PLUS SA DE CV|AV. RIO MIXCOAC|No. 140|ACACIAS|BENITO JUAREZ|MEXICO, D.F.|Mexico|03240|AV. UNIVERSIDAD|1858|OXTOPULCO|DISTRITO FEDERAL|Mexico|03910|PEPJ8001019Q8|JUAN PEREZ PEREZ|AV UNIVERSIDAD|16 EDF 3|DPTO 101|COPILCO UNIVERSIDAD|COYOACAN|DISTRITO FEDERAL|Mexico|04360|1.0|CAPSULAS|VIBRAMICINA 100MG 10|244.00|244.00|1.0|BOTELLA|CLORUTO 500M|137.93|137.93|1.0|TABLETAS|SEDEPRON 250MG 10|84.50|84.50|IVA|0.00|0.00|IVA|16.00|22.07||
Saludos.
Última edición por ssjantonio el Lun Oct 18, 2010 10:16 pm, editado 1 vez en total.
-
- Mensajes: 372
- Registrado: Mié Ago 11, 2010 1:55 am
- Ubicación: México, D.F.
- Contactar:
Re: Diferencias entre CFD (V2.0) y CFDI (V3.0)
Hola...
Moneda y tipo de cambio son opcionales. ¿como estas haciendo la validación?
Saludos
Moneda y tipo de cambio son opcionales. ¿como estas haciendo la validación?
Saludos
Todo lo que no es dado es perdido
-
- Mensajes: 14
- Registrado: Lun Oct 18, 2010 12:00 am
Re: Diferencias entre CFD (V2.0) y CFDI (V3.0)
Este es mi codigo fuente para validar V2.0 y V3.0, la única diferencia es que cada uno de los comprobantes implementa la interfaz con sus métodos para generar la cadena original y para especificar el algoritmo de digestión:
Código: Seleccionar todo
public static bool ValidarComprobante(Generic.CFD.Core.IComprobante cfd, byte[] cerRawData)
{
X509Certificate cer;
cer = new X509Certificate(cerRawData);
string cerNum = Security.Crypto.GetCerNumber(cer);
if (cerNum != cfd.noCertificado)
throw new CFD.ExceptionUnexpectedCSD(string.Format("El certificado usado '{0}' no concuerda con el especificado '{1}'", cfd.noCertificado, cerNum));
//Generar la cadena en caso de que no haya sido generada antes
if (string.IsNullOrEmpty(cfd.cadenaOriginal))
cfd.cadenaOriginal = cfd.GenerarCadenaOriginal();
RSACryptoServiceProvider rsa = Security.Crypto.GetPublicKeyFromX509Certificate(cer);
if (rsa == null)
throw new CFD.ExceptionInvalidCSD("Certificado no válido");
byte[] bCadena = Encoding.UTF8.GetBytes(cfd.cadenaOriginal);
byte[] bSello = System.Convert.FromBase64String(cfd.sello);
try
{
//SHA1 para version 3.0
string hash = GetHashFunction(bSello);
//Solo para asegurarme que la función este funcionando correctamente
debug.Assert(cfd.version == "3.0" && hash == "SHA1");
//Verificar
return rsa.VerifyData(bCadena, System.Security.Cryptography.CryptoConfig.MapNameToOID(hash), bSello);
}
catch (Exception ex)
{
throw new CFD.ExceptionValidaCFD("Error al validar el sello", ex);
}
}
- Dado
- Mensajes: 15980
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: Diferencias entre CFD (V2.0) y CFDI (V3.0)
La validacion de CFDI (V3.0) tiene un problema grave, hay diferencias en la definicion de la cadena original.
Chequen este hilo y denme su opinion.
Chequen este hilo y denme su opinion.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!