CONSIDERACIONES SERVICIO DE CANCELACIÓN CLIENTES ASP

CONSIDERACIONES SERVICIO DE CANCELACIÓN CLIENTES ASP

GENERALIDADES


En MYSuite existen clientes (que, por su forma de integrarse), son considerados como clientes ASP (CFDI + TIMBRADO).


Para este tipo de clientes ASP, MYSuite incorpora internamente una tabla intermedia de registros en la cual, se tiene identificado el estatus de cancelación actual de cada uno.


Para tener actualizados de manera instantánea los estatus de los registros en la tabla intermedia, MYSuite aprovecha las solicitudes de cancelación de los clientes ASP, para realizar (entre el segundo 5 y 10 posterior a la primera solicitud de cancelación), una segunda solicitud pero esta vez consultando el estado del comprobante respecto a su solicitud de cancelación, en la cual (en su mayoría de casos “Cancelable sin Aceptación”), se obtiene en la respuesta de que el comprobante ha sido cancelado, marcándose como Fecha de Cancelación el momento en que se recibe la respuesta de la consulta (el SAT no entrega una fecha de cancelación), permitiéndonos en la respuesta de esta solicitud consulta de estado de cancelación (RequestTransactionResponse), obtener Acuse de Cancelación en ResponseData2 y, en ResponseData1 el resultado de la consulta, con la cual internamente, tenemos el cambio de estatus a Cancelado en la tabla intermedia.


Bajo está circunstancia, el cliente ASP sólo deberá realizar la consulta de estatus del comprobante, ya que MYSuite en la segunda solicitud consulta de estado de cancelación que realiza, se pudo haber encontrado con un EstatusCancelacion “en proceso” (ya que el comprobante es “Cancelable con Aceptación”), y se deberá esperar por la aceptación o declinación del receptor (la cual le llegará al receptor por Buzón Tributario).


Importante:


Se recomienda que antes de realizar una solicitud de cancelación de un CFDI, se realice en primera instancia una consulta del comprobante a través de la transacción CONSULTAR_DOCUMENTO o CONSULT_DOCUMENT (realizan la misma función), en la cual conocerán el estatus actual del comprobante y podrán saber qué pueden realizar con el CFDI desde su ERP (de cara al usuario).     


Teniendo en cuenta este escenario (tabla intermedia en MYSuite), se reducen las vertientes en cuanto a lógica aplicada en sus sistemas ya que sólo deben considerar lo siguiente:

·          Consultar el estado del comprobante (CFDI) Revisar Portal Web Transacción CONSULTAR_DOCUMENTO o CONSULT_DOCUMENT para identificar que regresa en RequestTransactionResponse nodos ResponseData1 y ResponseData2.

o   Si el comprobante está “Vigente” pero es “No Cancelable”

§  Se debe solicitar la cancelación del comprobante que lo antecede.

§  Si se solicita la cancelación de un CFDI en este estado, siempre el SAT devolverá 201 pero no realizará acción alguna.

o   Si el comprobante está “Cancelado”

§  No se debe realizar acción alguna. 

o   Si el comprobante está “Vigente” y es “Cancelable” (Sin o Con Aceptación).

§  Realizar solicitud de cancelación del comprobante CANCEL_DOCUMENT_3

§  MYSuite realizará proceso descrito anteriormente (segunda solicitud consulta de estado de cancelación para efectos de tabla intermedia).

§  Realizar consulta del estado del comprobante CONSULT_DOCUMENT

·         Si el comprobante ya se encuentra Cancelado (los casos en el que el comprobante es “Cancelable sin Aceptación”).

o   MYSuite regresa en RequestTransactionResponse:

§  <Result>false</Result>

§  <Code>3027</Code>

§  <Description>El documento solicitado ya fue marcado como cancelado.</Description>

·         En los casos en el que el comprobante es “Cancelable con Aceptación”

o   Debe seguir consultando (desde el  ERP), hasta la resolución por parte del receptor del comprobante, obteniendo en ese lapso el atributo “EstatusCancelacion”:

§  En proceso.

§  Solicitud rechazada.

o   Tomar en cuenta que MYSuite realizará las solicitudes de consulta de estatus de cancelación necesarias (cada 24 horas a partir de la segunda solicitud de consulta de estatus de cancelación en automático), hasta obtener en la respuesta que el comprobante se encuentra como "Cancelado" por parte del SAT (siempre y cuando el receptor haya aceptado la cancelación), o puede seguir “en proceso” o “solicitud rechazada”.

o   Si el comprobante ya se encuentra Cancelado (en el momento en que realizas la consulta desde tu ERP).

§  MYSuite regresa en RequestTransactionResponse:

·         <Result>false</Result>

·         <Code>3027</Code>

·         <Description>El documento solicitado ya fue marcado como cancelado.</Description>

 

·         En todos los casos en los que se obtenga

<Result>false</Result>
<Code>3027</Code>
*se debe entender que el comprobante ya ha sido Cancelado.

·         Si en el sistema interno (ERP), se desea obtener el acuse de cancelación que el SAT proporciona al realizar la consulta de estatus del comprobante y que este se marca como Cancelado, se debe realizar la transacción: GET_ACUSE_CANCEL teniendo en cuenta las siguientes consideraciones en la solicitud:

<ws:RequestTransaction>

         <ws:Requestor>0c320b03-d4f1-47bc-9fb4-77995f9bf33e</ws:Requestor>

         <ws:Transaction>GET_ACUSE_CANCEL</ws:Transaction>

         <ws:Country>MX</ws:Country>

         <ws:Entity>JES900109Q90</ws:Entity>

         <ws:User>0c320b03-d4f1-47bc-9fb4-77995f9bf33e</ws:User>

         <ws:UserName>Jan_Test</ws:UserName>

         *Folio Fiscal UUID del CFDI que se encuentra cancelado*

<ws:Data1>fe055b1e-2103-4aa4-bf5a-2e98c42a63b4</ws:Data1>

         *Año de emisión del CFDI del cual se quiere el acuse de cancelación*

<ws:Data2>2020</ws:Data2>

         *Se debe enviar vacío*

<ws:Data3></ws:Data3>

</ws:RequestTransaction>

·         El RequestTransactionResponse obtenido es el siguiente:

<RequestTransactionResponse xmlns="http://www.fact.com.mx/schema/ws">

         <RequestTransactionResult>

            <Request>

               <Requestor>00000000-0000-0000-0000-000000000000</Requestor>

               <RequestorActive>true</RequestorActive>

               <Transaction>GET_ACUSE_CANCEL</Transaction>

               <Country>MX</Country>

               <Entity>JES900109Q90</Entity>

               <User>00000000-0000-0000-0000-000000000000</User>

               <UserName>Jan_Test</UserName>

               <Id>5eb0c166-94fd-427e-bb60-a355f84faf8c</Id>

               <TimeStamp>2020-01-27T13:13:45.642082-06:00</TimeStamp>

            </Request>

            <Response>

               <Result>true</Result>

               <TimeStamp>2020-01-27T13:13:45.657682-06:00</TimeStamp>

               <LastResult/>

               <Code>1</Code>

               <Description/>

               <Hint/>

               <Data>8731 5eb0c166-94fd-427e-bb60-a355f84faf8c</Data>

               <Processor>TEST-BACK01</Processor>

               <Identifier>                 

<SuggestedFileName>AcuseCancelacion_AAA010101AAA_fe055b1e-2103-4aa4-bf5a-2e98c42a63b4</SuggestedFileName>

               </Identifier>

            </Response>

            <ResponseData>

               <ResponseData1>XML del Acuse de Cancelación codificado en Base64</ResponseData1>

               <ResponseData2/>

               <ResponseData3/>

            </ResponseData>

         </RequestTransactionResult>

      </RequestTransactionResponse>


  

* En todos los escenarios con Result = “true” el elemento Code es = “1”.



ESCENARIOS CON RESULT “FALSE”


Una vez descrito el flujo que en MYSuite se tiene con los clientes ASP, solo resta mencionar algunos escenarios que los integradores podrían tener, estos son:

 

1.    <Result>false</Result> <Code>3027</Code>:

a.    Se presenta cuando se realiza la solicitud de cancelación o la consulta de un comprobante que ya se encuentra Cancelado.

2.    <Result>false</Result> <Code>3192</Code>:

a.    Se presenta cuando se realiza la solicitud de cancelación de un comprobante que se encuentra con EstatusCancelacion “en proceso”, se presenta generalmente en comprobante que es “Cancelable con Aceptación”.

3.    <Result>false</Result> <Code>5024</Code>:

a.    Reportar a MYSuite para su revisión.

4.    <Result>false</Result> <Code>3167</Code>:

a.    Reportar a MYSuite.

5.    <Result>false</Result> <Code>3052</Code>:

a.    Se presenta cuando en la solicitud RequestTransaction faltan valores requeridos o no son enviados en la codificación correcta.

6.    <Result>false</Result> <Code>3168</Code>:

                       a.    Se presenta cuando el servicio de cancelación del SAT no se encuentra disponible.