Esta función valida 3 aspectos importantes de un CFDI:
La función valida adicionalmente el sello del timbre fiscal digital si se proporciona el archivo .CER del PAC que certificó el documento, el archivo CER del PAC se puede descargar desde el sitio web del SAT ubicado en:
https://portalsat.plataforma.sat.gob.mx/RecuperacionDeCertificados/
Se puede descarar ya sea por RFC o por número de certificado, obtener estos valores es muy sencillo ya que ambos se encuentran dentro del XML en el nodo <cfdi:TimbreFiscalDigital>, los atributos son NoCertificadoSAT y RfcProvCertif respectivamente.
Adicionalmente esta función realiza una conexión al servicio de verificación de documentos del SAT para revisar si el documento se encuentra en los registros del SAT.
Esta función solo valida que el documento se encuentre en el los registros del SAT, si desea mas información sobre el estado de un comprobante utilice la función VirtualXML_ConsultaEstadoCFDI().
- Valida el sello digital del documento usando el certificado del emisor que viene dentro del documento CFDI
- Opcionalmente valida el sello del timbre fiscal digital del documento emitido por el PAC, si se cuenta con el archivo .CER del PAC que certificó el documento.
- Realiza una verificación en el SAT de la existencia del CFDI en los registros del mismo.
La función valida adicionalmente el sello del timbre fiscal digital si se proporciona el archivo .CER del PAC que certificó el documento, el archivo CER del PAC se puede descargar desde el sitio web del SAT ubicado en:
https://portalsat.plataforma.sat.gob.mx/RecuperacionDeCertificados/
Se puede descarar ya sea por RFC o por número de certificado, obtener estos valores es muy sencillo ya que ambos se encuentran dentro del XML en el nodo <cfdi:TimbreFiscalDigital>, los atributos son NoCertificadoSAT y RfcProvCertif respectivamente.
Adicionalmente esta función realiza una conexión al servicio de verificación de documentos del SAT para revisar si el documento se encuentra en los registros del SAT.
Esta función solo valida que el documento se encuentre en el los registros del SAT, si desea mas información sobre el estado de un comprobante utilice la función VirtualXML_ConsultaEstadoCFDI().
Namespace: VirtualXML®
Aplicación: CFDI ver. 3.3
Sintaxis
Parametros
Xml
Tipo: System String
- Nombre del archivo XML que se desea validar, puede incluir la ruta del archivo dentro del disco.
- Tipo: System
String
Nombre del archivo de donde se guardará el resultado del proceso de validación.
- Tipo: System
String
Parametro opcional para indicar el nombre del archivo .CER del PAC que certificó el documento. Si se omite solo se realiza la validación del sello del CFDI, no del timbre fiscal digital. No se debe confundir este parámetro con el archivo .CER del emisor, no es el .CER del emisor, es el del Proveedor Autorizado de Certificación..
- CheckSAT
- Tipo: System
Ing
Parámetro opcional que sirve para indicar a la función que realice la verificación de existencia del documento en los registros del SAT. Sus posibles valores
- 0 = No valida la existencia del documento en el SAT,
- 1 = Valida la existencia en el SAT del documento
Valor retornado:
Tipo: Int32
Retorna un valor númerico cuyos posibles valores son: - >= 0: CFDI Válido
- < 0: CFDI Inválido o con error en la ejecución. Revise el archivo de bitácora para mas información sobre el problema.
Ejemplo
private void ValidaCFDI(String szXML)
{
// Definimos variable para el resultado de la validacion
int nResultadoValida ;
// Validamos el sello del XML, no el sello del timbre ni verificamos en el SAT la existencia del documento:
nResultadoValida = VirtualXML_ValidaCFDITimbrado( "factura001.xml", "Valida_Factura001.log","",0 );
// Validamos el sello del XML, el sello del timbre con el archivo .CER del PAC, pero no verificamos en el SAT la existencia del documento:
nResultadoValida = VirtualXML_ValidaCFDITimbrado( "factura002.xml", "Valida_Factura002.log","c:\certificados\100002345686.CER",0 );
// Validamos el sello del XML, el sello del timbre con el archivo .CER del PAC y verificamos en el SAT la existencia del documento:
nResultadoValida = VirtualXML_ValidaCFDITimbrado( "factura002.xml", "Valida_Factura002.log","c:\certificados\100002345686.CER",1 );
}
Veáse También:
VirtualXML_ConsultaEstadoCFDI