Antes que nada agradesco a todos los que participan de este foro que por cierto me ha ayudado muchisimo. Es la primera vez que hago una pregunta y no encontré ningún tema para realizar mi pregunta. El problema que tengo es básicamente que no se como obtener le fecha de cancelación de un cfdi. Hace aproximadamente un año desarrolle una pequeña aplicación que verificaba el estatus de los comprobantes, el código lo obtuve en este foro en el tema que hablaba de un nuevo servicio del sat. La cuestión es que en dicho hilo se podía descargar un pequeño programita hecho en delphi que mostraba el funcionamiento del wsdl (WebService del sat para consulta). Todo funcionó perfectamente pero ahora tengo la necesidad de saber la fecha de cancelación y no se como obtenerla. tengo el siguiente arhcivo que utilizo para el wsdl que estaba incluido con el programita que mencione anteriormente y que descargue también en este foro
<?xml version='1.0' encoding='utf-8'?>
<wsdl:definitions targetNamespace="http://tempuri.org/" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://tempuri.org/" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ConsultaCFDIService" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<wsp:Policy wsu:Id="BasicHttpBinding_IConsultaCFDIService_policy">
<wsp:ExactlyOne>
<wsp:All>
<sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
<wsp:Policy>
<sp:TransportToken>
<wsp:Policy>
<sp:HttpsToken RequireClientCertificate="false"/>
</wsp:Policy>
</sp:TransportToken>
<sp:AlgorithmSuite>
<wsp:Policy>
<sp:Basic256/>
</wsp:Policy>
</sp:AlgorithmSuite>
<sp:Layout>
<wsp:Policy>
<sp:Strict/>
</wsp:Policy>
</sp:Layout>
</wsp:Policy>
</sp:TransportBinding>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
<wsdl:types>
<xs:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://schemas.datacontract.org/2004/07/Sat.Cfdi.Negocio.ConsultaCfdi.Servicio"/>
<xs:element name="Consulta">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" type="xs:string" name="expresionImpresa" nillable="true"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ConsultaResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" xmlns:q1="http://schemas.datacontract.org/2004/07/Sat.Cfdi.Negocio.ConsultaCfdi.Servicio" type="q1:Acuse" name="ConsultaResult" nillable="true"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
<xs:schema elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element type="xs:anyType" name="anyType" nillable="true"/>
<xs:element type="xs:anyURI" name="anyURI" nillable="true"/>
<xs:element type="xs:base64Binary" name="base64Binary" nillable="true"/>
<xs:element type="xs:boolean" name="boolean" nillable="true"/>
<xs:element type="xs:byte" name="byte" nillable="true"/>
<xs:element type="xs:dateTime" name="dateTime" nillable="true"/>
<xs:element type="xs:decimal" name="decimal" nillable="true"/>
<xs:element type="xs:double" name="double" nillable="true"/>
<xs:element type="xs:float" name="float" nillable="true"/>
<xs:element type="xs:int" name="int" nillable="true"/>
<xs:element type="xs:long" name="long" nillable="true"/>
<xs:element type="xs:QName" name="QName" nillable="true"/>
<xs:element type="xs:short" name="short" nillable="true"/>
<xs:element type="xs:string" name="string" nillable="true"/>
<xs:element type="xs:unsignedByte" name="unsignedByte" nillable="true"/>
<xs:element type="xs:unsignedInt" name="unsignedInt" nillable="true"/>
<xs:element type="xs:unsignedLong" name="unsignedLong" nillable="true"/>
<xs:element type="xs:unsignedShort" name="unsignedShort" nillable="true"/>
<xs:element type="tns:char" name="char" nillable="true"/>
<xs:simpleType name="char">
<xs:restriction base="xs:int"/>
</xs:simpleType>
<xs:element type="tns:duration" name="duration" nillable="true"/>
<xs:simpleType name="duration">
<xs:restriction base="xs:duration">
<xs:pattern value="\-?P(\d*D)?(T(\d*H)?(\d*M)?(\d*(\.\d*)?S)?)?"/>
<xs:minInclusive value="-P10675199DT2H48M5.4775808S"/>
<xs:maxInclusive value="P10675199DT2H48M5.4775807S"/>
</xs:restriction>
</xs:simpleType>
<xs:element type="tns:guid" name="guid" nillable="true"/>
<xs:simpleType name="guid">
<xs:restriction base="xs:string">
<xs:pattern value="[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}"/>
</xs:restriction>
</xs:simpleType>
<xs:attribute type="xs:QName" name="FactoryType"/>
<xs:attribute type="xs:ID" name="Id"/>
<xs:attribute type="xs:IDREF" name="Ref"/>
</xs:schema>
<xs:schema elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/Sat.Cfdi.Negocio.ConsultaCfdi.Servicio" xmlns:tns="http://schemas.datacontract.org/2004/07/Sat.Cfdi.Negocio.ConsultaCfdi.Servicio" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="Acuse">
<xs:sequence>
<xs:element minOccurs="0" type="xs:string" name="CodigoEstatus" nillable="true"/>
<xs:element minOccurs="0" type="xs:string" name="Estado" nillable="true"/>
</xs:sequence>
</xs:complexType>
<xs:element type="tns:Acuse" name="Acuse" nillable="true"/>
</xs:schema>
</wsdl:types>
<wsdl:message name="IConsultaCFDIService_Consulta_InputMessage">
<wsdl:part element="tns:Consulta" name="parameters"/>
</wsdl:message>
<wsdl:message name="IConsultaCFDIService_Consulta_OutputMessage">
<wsdl:part element="tns:ConsultaResponse" name="parameters"/>
</wsdl:message>
<wsdl:portType name="IConsultaCFDIService">
<wsdl:operation name="Consulta">
<wsdl:input wsaw:Action="http://tempuri.org/IConsultaCFDIService/Consulta" message="tns:IConsultaCFDIService_Consulta_InputMessage"/>
<wsdl:output wsaw:Action="http://tempuri.org/IConsultaCFDIService/ConsultaResponse" message="tns:IConsultaCFDIService_Consulta_OutputMessage"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding type="tns:IConsultaCFDIService" name="BasicHttpBinding_IConsultaCFDIService">
<wsp:PolicyReference URI="#BasicHttpBinding_IConsultaCFDIService_policy"/>
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="Consulta">
<soap:operation soapAction="http://tempuri.org/IConsultaCFDIService/Consulta" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ConsultaCFDIService">
<wsdl:port binding="tns:BasicHttpBinding_IConsultaCFDIService" name="BasicHttpBinding_IConsultaCFDIService">
<soap:address location="https://consultaqr.facturaelectronica.sat.gob.mx/ConsultaCFDIService.svc"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
este archivo lo utilice para generar una unit con las funciones necesarias y poder así consumir el servicio, esto lo hice con el asistence WSDL importer de Delphi 2010.
Mi código es más o menos así
var
ConsultaCFDIv32:IConsultaCFDIService;
vAcuse : Acuse;
ParametrosConsulta:WideString;
FVVigencia:TDate;
HVVigencia:TTime;
begin
RFCEmisor := ZQComprobantes.FieldByName('RFCEmisor').AsString;
RFCEmisor := StringReplace(RFCEmisor, '&', '&',[rfReplaceAll, rfIgnoreCase]);
RFCReceptor := ZQComprobantes.FieldByName('RFCReceptor').AsString;
RFCReceptor := StringReplace(RFCReceptor, '&', '&',[rfReplaceAll, rfIgnoreCase]);
Total := ZQComprobantes.FieldByName('Total').AsString;
UUID := ZQTimbresFiscales.FieldByName('UUID').AsString;
ConsultaCFDIv32:= GetIConsultaCFDIService();
ParametrosConsulta := format( 're=%s&rr=%s&tt=%s&id=%s', [RFCEmisor, RFCReceptor, Total, UUID]);
vAcuse := ConsultaCFDIv32.Consulta(ParametrosConsulta);
//SI EL COMPROBANTE ESTA VIGENTE
If UpperCase(vAcuse.Estado) = 'VIGENTE' Then
{***REALIZO LAS ACCIONES CORRESPONDIENTES***}
//SI EL COMPROBANTE ESTA CANCELADO
Else If UpperCase(vAcuse.Estado) = 'CANCELADO' Then
{***REALIZO LAS ACCIONES CORRESPONDIENTES***}
ELse//SI EL COMPROBANTE NO SE ENCONTRO
{***REALIZO LAS ACCIONES CORRESPONDIENTES***}
end;
Entonces no se de que manera puedo obtener la fecah de cancelación porque la variable vAcuse solo devuelve el código del estatus y el estado
-vAcuse.CodigoEstatus
-vAcuse.Estado
pero no encuentró algo como
-vAcuse.Fecha
Agradecería mucho la ayuda que puedan brindarme ojala me haya explicado bien, de antemano muchas gracias a todos!!!
![Imagen](http://www.validacfd.com/phpBB3/images/checkid/banner.png)
DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.
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
Fecha de cancelación cfdi
- Dado
- Mensajes: 15842
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: Fecha de cancelación cfdi
El WS del SAT no devuelve la fecha de cancelacion.
La unica forma de obtener ese dato es en el "Portal de Contribuyentes"**
**correccion, NO es en el Portal de Contribuyentes, se consulta en el validador de UUID aqui
La unica forma de obtener ese dato es en el "Portal de Contribuyentes"**
**correccion, NO es en el Portal de Contribuyentes, se consulta en el validador de UUID aqui
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 4
- Registrado: Lun May 04, 2015 7:59 pm
Re: Fecha de cancelación cfdi
Buscando información en este foro vi un tema donde se hablaba de una falla en el ValidaCFD, se coementaba que al realizar una consulta utilizando el UUID marcaba "Error desconocido" y usted comentaba que se debía a que el sat cambio los datos y que ahora incluye la fecha de cancelación y que por eso marcaba es error el sistema. Le agradecería mucho si me pudiera orientar acerca de lo que se necesita para obtener la fecha de cancelación de antemano muchisimas gracias y le agradesco mucho por su atención!!!
- Dado
- Mensajes: 15842
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: Fecha de cancelación cfdi
Efectivamente, el dato de la fecha de cancelacion inicialmente no se mostraba, cuando lo agregaron tuve que modificar el ValidaCFD para que lo tomara en cuenta.
Y perdon, te informe mal, NO es en el portal del contribuyente donde se puede consultar ese dato
Es en el validador de UUID que esta en esta direccion
Y perdon, te informe mal, NO es en el portal del contribuyente donde se puede consultar ese dato
Es en el validador de UUID que esta en esta direccion
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 4
- Registrado: Lun May 04, 2015 7:59 pm
Re: Fecha de cancelación cfdi
Muchisimas gracias por sus respuestas. Solamente tengo una duda que agradecería me pudieran aclarar, yo tengo la necesidad de obtener la fecha de cancelación de los comprobantes cancelados a través de código en Delphi 2010. Quisiera saber si hay algún modo de obtener la fecha de la misma forma o similar a como se obtiene el Estatus de los comprobantes.
Actualmente yo obtengo el Estatus de los comprobantes haciendo uso del WS mencionado en el primer post del tema que abri, lo hago recorriendo la base de datos donde tengo almacenados los datos de los comprobantes y pasandole al WS los parametros correspondientes:
ConsultaCFDIv32:= GetIConsultaCFDIService();
ParametrosConsulta := format( 're=%s&rr=%s&tt=%s&id=%s', [RFCEmisor, RFCReceptor, Total, UUID]);
vAcuse := ConsultaCFDIv32.Consulta(ParametrosConsulta);
Ahora lo que yo necesito es obtener la fecha de cancelación de los comprobantes que hayan sido cancelados, pero necesito hacerlo de manera transparente para el usuario. Es decir que cuando el sistema detecte que hay un comprobante cancelado inmediatamente debe obtener la fecha en que se canceló. mi problema realmente es poder obtener la fecha de cancelación utilizando Delphi 2010. No se cual sería el código para hacerlo y si existe algún WS. Agradecería cualquier orientación al respecto de antemano muchas gracias a todos.
Actualmente yo obtengo el Estatus de los comprobantes haciendo uso del WS mencionado en el primer post del tema que abri, lo hago recorriendo la base de datos donde tengo almacenados los datos de los comprobantes y pasandole al WS los parametros correspondientes:
ConsultaCFDIv32:= GetIConsultaCFDIService();
ParametrosConsulta := format( 're=%s&rr=%s&tt=%s&id=%s', [RFCEmisor, RFCReceptor, Total, UUID]);
vAcuse := ConsultaCFDIv32.Consulta(ParametrosConsulta);
Ahora lo que yo necesito es obtener la fecha de cancelación de los comprobantes que hayan sido cancelados, pero necesito hacerlo de manera transparente para el usuario. Es decir que cuando el sistema detecte que hay un comprobante cancelado inmediatamente debe obtener la fecha en que se canceló. mi problema realmente es poder obtener la fecha de cancelación utilizando Delphi 2010. No se cual sería el código para hacerlo y si existe algún WS. Agradecería cualquier orientación al respecto de antemano muchas gracias a todos.
- Dado
- Mensajes: 15842
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: Fecha de cancelación cfdi
No hay NINGUN WS que te devuelva la fecha de cancelacion
La unica forma es PROGRAMANDO una rutina que interactue automaticamente con el validador del UUID
La programacion no es sencilla, si te interesa el codigo fuente en Delphi version 7 para que automaticamente te devuelva los datos del validador de UUID, incluyendo la fecha de cancelacion el costo seria de $9,800.00 (mas iva en caso que requieras factura)
Nota que esta rutina incluye el proceso mediante el cual se hackea el Captcha, haciendolo realmente 100% autonomo y transparente para el usuario.
La unica forma es PROGRAMANDO una rutina que interactue automaticamente con el validador del UUID
La programacion no es sencilla, si te interesa el codigo fuente en Delphi version 7 para que automaticamente te devuelva los datos del validador de UUID, incluyendo la fecha de cancelacion el costo seria de $9,800.00 (mas iva en caso que requieras factura)
Nota que esta rutina incluye el proceso mediante el cual se hackea el Captcha, haciendolo realmente 100% autonomo y transparente para el usuario.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 4
- Registrado: Lun May 04, 2015 7:59 pm
Re: Fecha de cancelación cfdi
Agradesco nuevamente por sus atenciones tendré en consideración su oferta en cuanto al código fuente lo voy a comentar con mi jefe directo para saber que decide. Excelente foro de nuevo muchas gracias por todo me ha ayduado bastante.
Volver a “SOPORTE CODIGO FUENTE EN DELPHI”
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 6 invitados