Cancela Flow

Flujos automatizados de cancelación Tralix, es un desarrollo que contempla los pasos a seguir según las nuevas funcionalidades de SAT.

Contenido

Este es el endpoint con el flujo mas extenso, en el conlleva la verificación de los estados de los comprobantes para saber cual es el proceso a seguir para cada uno.  Siguiendo con el diagrama de flujos:
 FlujosCancelacion.jpg

Cancelación

El Web Service de Cancelación proporcionado por Tralix tiene la misma definición que el servicio del SAT expuesto hacia los PAC’s, esto tiene como consecuencia que el cliente al hacer la petición de cancelación hacia el servicio de Tralix debe emplear obligatoriamente XMLSignature para firmar la petición.

Una vez teniendo la petición formada puede ser enviada a Tralix en donde  se encarga de añadir un Token de Autenticación proporcionado por el SAT para hacer 100% valida la petición de cancelación.

De esta manera se lleva a cabo el proceso de cancelación de CFDI mediante la llamada directa al Web Service de Tralix.

Cancela Flow

URL

Modo Pruebas: https://pruebastfd.tralix.com:8081/cancelCfdi

Modo Productivo: https://timbrador.tralix.com:8081/cancelCfdi

Nota: Cada consulta de cancelación se consumirá un timbre de su paquete.

Contenido aceptado: XML
Cardinalidad: 1:500

REQUEST:
Content-Type: application/xml
ServerKey: XSA_API
<CancelaCFD xmlns="http://cancelacfd.sat.gob.mx">
<Cancelacion Fecha="[Fecha]" RfcEmisor="[RFC_EMISOR]" xmlns="http://cancelacfd.sat.gob.mx" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Folios>
<Folio UUID="[UUID]" Motivo="01" FolioSustitucion="[UUID]"/>
<RfcReceptor>[RFC_RECEPTOR]</RfcReceptor>
<Total>[TOTAL_FACTURA]</Total>
</Folios>
<Folios>
<Folio UUID="[UUID]" Motivo="02" />
<RfcReceptor>[RFC_RECEPTOR]</RfcReceptor>
<Total>[TOTAL_FACTURA]</Total>
</Folios>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#" />
</Cancelacion>
</CancelaCFD>

 RESPONSE:
<CancellationResponses>
    <CancellationResponse uuid="[UUID]" estado="[ESTADO_CFDI]">
        <CancelaCFDResponse xmlns="http://cancelacfd.sat.gob.mx" xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" />
    </CancellationResponse>
    <CancellationResponse uuid="[UUID]" estado="[ESTADO_CFDI]">
        <Error />
    </CancellationResponse>
</CancellationResponses>

Consulta de Estados

Búsqueda de los estados de los cfdis que se encuentren entregados al SAT.
 
Contenido aceptado: XML
Cardinalidad: 1:1 

REQUEST:
Content-Type: application/json
ServerKey: XSA_API

<tem:Consulta xmlns:tem="http://tempuri.org/"> 
    <tem:expresionImpresa><![CDATA[?re=[RFC_EMISOR]]&rr=[RFC_RECEPTOR]&tt=[TOTAL]&id=[UUID]]]></tem:expresionImpresa>
</tem:Consulta>

RESPONSE:

<ConsultaResponse xmlns="http://tempuri.org/" xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <ConsultaResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:a="http://schemas.datacontract.org/2004/07/Sat.Cfdi.Negocio.ConsultaCfdi.Servicio">
        <a:CodigoEstatus>S - Comprobante obtenido satisfactoriamente.</a:CodigoEstatus>
        <a:EsCancelable>Cancelable con aceptación</a:EsCancelable>
        <a:Estado>Cancelado</a:Estado>
        <a:EstatusCancelacion>Cancelado con aceptación</a:EstatusCancelacion>
    </ConsultaResult>
</ConsultaResponse>
Contenido aceptado: JSON
Cardinalidad: 1:500

REQUEST:
Content-Type: application/xml
ServerKey: XSA_API

{
    "statusVerifierList": [
        {
            "rfcEmisor": "[RFC_EMISOR]",
            "rfcReceptor": "[RFC_RECEPTOR]",
            "total": "[TOTAL]",
            "uuid": "[UUID]"
        },{
            "rfcEmisor": "[RFC_EMISOR]",
            "rfcReceptor": "[RFC_RECEPTOR]",
            "total": "[TOTAL]",
            "uuid": "[UUID]"
        }
    ]
}

RESPONSE:
{
    "statusVerifierList": [
        {
            "estado": "Vigente",
            "uuid": "[UUID]",
            "codigoEstatus": "S - Comprobante obtenido satisfactoriamente.",
            "esCancelable": "Cancelable con aceptación",
            "estatusCancelacion": ""
        },
        {
            "estado": "Vigente",
            "uuid": "[UUID]",
            "codigoEstatus": "S - Comprobante obtenido satisfactoriamente.",
            "esCancelable": "Cancelable con aceptación",
            "estatusCancelacion": ""
        }
    ]
}

Pendientes por Cancelar

Los receptores de las facturas contaran con esta opción que les dará la información sobre los CFDIs que tenga y esten en estatus "En Proceso" esperando una aceptación o rechazo de la cancelación.
 
Contenido aceptado: XML
Cardinalidad: 1:1

REQUEST:
Content-Type: application/xml
ServerKey: XSA_API

 <can:ObtenerPeticionesPendientes xmlns:can="http://cancelacfd.sat.gob.mx">
  <can:rfcReceptor>[RFC_RECEPTOR]</can:rfcReceptor>
</can:ObtenerPeticionesPendientes>

RESPONSE:
<ObtenerPeticionesPendientesResponse xmlns="http://cancelacfd.sat.gob.mx" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <ObtenerPeticionesPendientesResult CodEstatus="1100">
        <UUID>[UUID]</UUID>
        <UUID>[UUID]</UUID>
    </ObtenerPeticionesPendientesResult>
</ObtenerPeticionesPendientesResponse> 
Contenido aceptado: JSON
Cardinalidad: 1:1 

REQUEST:
Content-Type: application/xml
ServerKey: XSA_API

{
"rfcReceptor": "CALJ581101M37"
}

REPONSE:
{
    "codStatus": "1100",
    "uuids": [
    {
        "uuid": "[UUID]"
    },{
"uuid": "[UUID]"
    }
    ]
}

Aceptación o Rechazo

 Al tener una factura con estatus "En Proceso" se debe realizar una aceptación o rechazo de la cancelación. Se realiza a travez este endpoint.
 
 
Contenido aceptado: XML
Cardinalidad: 1:1

REQUEST:
Content-Type: application/xml
ServerKey: XSA_API

<can:ProcesarRespuesta xmlns:can="http://cancelacfd.sat.gob.mx">
    <can:solicitud Fecha="[FECHA]" RfcPacEnviaSolicitud="[RFC_PAC_SOLICITANTE]" RfcReceptor="[RFC_RECEPTOR]">
        <can:Folios>
            <can:UUID>[UUID]</can:UUID>
            <can:Respuesta>[Rechazo/Aceptacion]</can:Respuesta>
        </can:Folios>
        <Signature xmlns="http://www.w3.org/2000/09/xmldsig#" />
    </can:solicitud>
</can:ProcesarRespuesta>

RESPONSE:

<ProcesarRespuestaResponse xmlns="http://cancelacfd.sat.gob.mx" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <ProcesarRespuestaResult Fecha="[FECHA]" CodEstatus="[COD_ESTATUS]" RfcPac="[RFC_PAC]" RfcReceptor="[RFC_RECEPTOR]">
        <Folios Respuesta="Rechazo">
            <UUID>[UUID]</UUID>
            <EstatusUUID>[ESTATUS_UUID]</EstatusUUID>
        </Folios>
        <Signature Id="SelloSAT" xmlns="http://www.w3.org/2000/09/xmldsig#" />
    </ProcesarRespuestaResult>
</ProcesarRespuestaResponse>

Respuestas de Cancelación

Respuesta de consulta de estados el PAC regresa la siguiente respuesta en base al RFC:

  • CANCELABLE_C_A - RFC Receptor DAL050601L35 que devolverá cancelable con aceptación
  • CANCELABLE_S_A - RFC Receptor WATM640917J45 que devolverá cancelable sin aceptación
  • CANCELADO_C_A - RFC Receptor EWE1709045U0 que devolverá cancelado con aceptación
  • CANCELADO_S_A - RFC Receptor WERX631016S30 que devolverá cancelable sin aceptación
  • EN_PROCESO - RFC Receptor XIA190128J61 que devolverá en proceso
  • NO_CANCELABLE - RFC Receptor JUFA7608212V6 que devolverá no cancelable
  • PLAZO_VENCIDO - RFC Receptor FUNK671228PH6 que devolverá plazo vencido