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
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.
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
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>
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
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>
REQUEST:
Content-Type: application/xml
ServerKey: XSA_API
{
"rfcReceptor": "CALJ581101M37"
}
REPONSE:
{
"codStatus": "1100",
"uuids": [
{
"uuid": "[UUID]"
},{
"uuid": "[UUID]"
}
]
}
Aceptación o Rechazo
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