Cancela un folio fiscal en los registros del SAT
de acuerdo a las reglas de cancelación vigentes a partir del 1 de
Noviembre de 2018.
Esta función valida los 3 posibles estados de un comprobante antes de realizar el proceso de cancelación (Cancelable, Cancelable con aceptación y No Cancelable).
Namespace: VirtualXML® Esta función valida los 3 posibles estados de un comprobante antes de realizar el proceso de cancelación (Cancelable, Cancelable con aceptación y No Cancelable).
Aplicación: CFDI 3.3
Sintaxis
Parametros
- szUsuario
- Tipo: System String
Nombre del usuario VirtualPAC
- szRfcEmisor
- Tipo: System String
RFC del emisor del CFDI que queremos cancelar
- szRfcReceptor
- Tipo: System String
RFC del receptor del CFDI que queremos cancelar
- szTotal
- Tipo: System String
Importe del total del CFDI a cancelar
- szUuid
- Tipo: System String
UUID del CFDI a cancelar
- szCert
- Tipo: System String
Nombre y ruta donde se encuentra el archivo .CER
- szKey
- Tipo: System String
Nombre y ruta donde se encuentra el archivo .KEY
- szPwd
- Tipo: System String
Password del archivo .KEY
- szResult
- Tipo: System String
Nombre y ruta de un archivo de salida donde obtendremos el resultado de la cancelación proveniente del SAT. Este archivo es muy importante ya que muestra detalles importantes cuando un CFDI no ha podido ser cancelado o bien cuando se ha solicitado la cancelación al emisor por medio del buzon fiscal. Si se especifica la extensión ".INI" en el nombre de este archivo se obtendrán los resultados en el formato de un archivo INI, si se especifica cualquier otra extensión o bien se omite la extensión la información se presentará como un texto normal.
- Tipo: System
String
Nombre y ruta de un archivo de salida donde obtendremos la bitácora del proceso de cancelación, Su función es similar a la del archivo VirtualXML.LOG, es decir, proporcionar información sobre los pasos seguidos durante el proceso de cancelación y su uso será unicamente para reportar al equipo de desarrollo de VirtualXML posibles fallas en el proceso de cancelación.
Valor retornado:
Tipo: Int32
Retorna un valor númerico que nos indicará el resultado de la
cancelación, es importante que además de obtener el número resultado
del proceso de cancelación revisemos el archivo de resultados para mas
información sobre el resultado de la cancelación. Los posibles valores
de retorno son:- 1 - El CFDI no es cancelable directamente, es decir, requiere autorización por parte del receptor y se ha solicitado al mismo la autorización para cancelación mediante el BUZON TRIBUTARIO del SAT. El CFDI que se desea cancelar pasará al estado de OPERANDO y se tendrá que esperar 72 horas para obtener una respuesta del receptor o bien a que opere la cancelación FICTA (cancelación automática pasado el plazo de 72 horas si no hay respuesta del receptor) Muy importante: SE COBRARÁ UN TIMBRE cuando sea necesario enviar al buzón tributario, es decir, siempre que la función regrese el valor "1" (UNO).
- 0 - El CFDI es cancelable directamente y se ha cancelado correctamente. Es similar a la cancelación que operaba anteriormente. NO SE COBRA TIMBRE cuando la cancelación devuelve el valor "0" (CERO)
- -1 - El CFDI no es cancelable y esto se puede deber a varias razones, entre ellas: El CFDI esta en estado de OPERANDO, el CFDI se encuentra cancelado con anterioridad, el CFDI tiene documentos relacionados que deben ser cancelados previamente, en estos casos sugerimos revisar el archivo de resultados para obtener mas información sobre las causas que impidan la cancelación del CFDI. NO SE COBRA TIMBRE cuando se rechaza la cancelación con un valor de "-1" (MENOS UNO)
- -2 - EL CFDI no existe en los registros del SAT, este valor se retorna cuando el SAT reporta la inexistencia del CFDI que se desea cancelar en sus registros. NO SE COBRA TIMBRE cuando se rechaza la cancelación con un valor "-2" (MENOS DOS)
- -3 - Error de comunicaciones o error en el servicio de
cancelación del SAT, para mas detalles de este error, revisar el
archivo de bitácora (no el de resultados). NO SE COBRA TIMBRE cuando se
rechaza la cancelación con un valor "-3" (MENOS TRES)
Ejemplo:
private void GeneraDocto(String version)
{
// Solicitamos la cancelación
int nResultado = VirtualXML_CancelaCFDI("usuario","AAA010101AAA","CTE940531F58","1160.00",;
"D8E18C2F-2859-4927-A0F0-EA3E93642DDC","C:\CSD\Archivo.CER","C:\CSD\Archivo.Key","password","C:\CSD\Resultado.INI","C:\CSD\Bitacora.log");
switch ( nResult )
{
case 1:
// Se ha solicitado la cancelación via buzon fiscal
MsgBox("Se ha solicitado la cancelación al receptor, debe espear 72 horas");
break;
case 0:
// Se ha cancelado correctamente el CFDI
MsgBox("CFDI Cancelado correctamente");
break;
case -1:
// Cancelacion rechazada
MsgBox("Se ha rechazado la cancelación del cFDI, revise el archivo Resultado.INI para mas inforamción");
break;
case -2:
// UUID no existe en el SAT
MsgBox("UUID No encontrado en los registos del SAT, intente mas tarde");
break;
case -3:
// Error en el servicio del SAT
MsgBox("Servicio de cancelaciones del SAT temporalmente fuera de servicio, reintente su operación mas tarde");
break;
}
}
Veáse Tambien