Transacciones para nuevo
esquema de cancelación 2022.
Modalidad
(CFDI + TIMBRADO)
1.
CANCEL_DOCUMENT_3
Petición.
·
En Data1
se envía, codificado Base64, un xml que
especifica la información del documento que se quiere cancelar.
Ejemplo de xml (se pone plano para que se pueda apreciar la información,
pero debe ir codificado Base64):
<Dictionary
name="StoredXmlSelector">
<Entry k="Store"
v="ISSUED"/>
<Entry k="IssuerCountryCode"
v="MX"/>
<Entry k="IssuerTaxId"
v="JES900109Q90"/>
<Entry k="DocumentGUID"
v="717b58cd-379b-4a61-b63c-82be4408f642"/>
<Entry
k="Year" v="2021"/>
</Dictionary>
·
En Data2
se envía, codificado Base64, un xml que
especifica la información relativa a la cancelación (esta información es nueva
para el esquema de cancelación que comenzó el 1ro de enero de 2022).
Ejemplo de xml (se pone plano para que se pueda apreciar la información,
pero debe ir codificado Base64):
<Dictionary
name="CancelInfo">
<Entry k="Motivo"
v="02"/>
<Entry k="FolioSustitucion"
v=""/>
</Dictionary>
Explicación de los dos nuevos parámetros para la
cancelación (según SAT).
Motivo (Requerido): Clave del motivo de
cancelación del comprobante.
Los valores posibles para este atributo son: 01, 02,
03 y 04.
Clave Descripción
01 Comprobante emitido con errores con relación.
02 Comprobante emitido con errores sin relación.
03 No se llevó a cabo la operación.
04 Operación nominativa relacionada en una factura global.
FolioSustitucion (Opcional): Atributo
condicional que representa al UUID que sustituye al folio fiscal cancelado. Es
requerido cuando la clave del motivo de cancelación es 01.
Respuesta.
·
En ResponseData1:
acuse, codificado Base64, devuelto por el SAT en la solicitud de cancelación.
·
En ResponseData2:
texto plano con la traducción a mensaje del SAT del código de respuesta
obtenida en la cancelación (ejemplo: SAT: 202 - UUID Previamente
admitido al proceso de cancelación.).
·
En ResponseData3:
vacío.
EJEMPLO DE SOLICITUD:
<soapenv:Header/>
<soapenv:Body>
<ws:RequestTransaction>
<ws:Requestor>0c320b03-d4f1-47bc-9fb4-77995f9bf33e</ws:Requestor>
<ws:Transaction>CANCEL_DOCUMENT_3</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> <ws:Data1>PERpY3Rpb25hcnkgbmFtZT0iU3RvcmVkWG1sU2VsZWN0b3IiPjxFbnRyeSBrPSJTdG9yZSIgdj0iSVNTVUVEIi8+PEVudHJ5IGs9Iklzc3VlckNvdW50cnlDb2RlIiB2PSJNWCIvPjxFbnRyeSBrPSJJc3N1ZXJUYXhJZCIgdj0iSkVTOTAwMTA5UTkwIi8+PEVudHJ5IGs9IkRvY3VtZW50R1VJRCIgdj0iZTFmNTc1NzctNGM5Yi00OTg5LWI0YjgtNTFlODY4MTQ0ZDhiIi8+PEVudHJ5IGs9IlllYXIiIHY9IjIwMjIiLz48L0RpY3Rpb25hcnk+</ws:Data1> <ws:Data2>PERpY3Rpb25hcnkgbmFtZT0iQ2FuY2VsSW5mbyI+PEVudHJ5IGs9Ik1vdGl2byIgdj0iMDIiLz48RW50cnkgaz0iRm9saW9TdXN0aXR1Y2lvbiIgdj0iIi8+PC9EaWN0aW9uYXJ5Pg==</ws:Data2>
<ws:Data3></ws:Data3>
</ws:RequestTransaction>
</soapenv:Body>
</soapenv:Envelope>
EJEMPLO DE RESPUESTA:
<soap:Body>
<RequestTransactionResult>
<Request>
<Requestor>00000000-0000-0000-0000-000000000000</Requestor>
<RequestorActive>true</RequestorActive>
<Transaction>CANCEL_DOCUMENT_3</Transaction>
<Country>MX</Country>
<Entity>JES900109Q90</Entity>
<User>00000000-0000-0000-0000-000000000000</User>
<UserName>jan_test</UserName>
<Id>e0b5e81a-6880-4ebe-a23d-af03f65e00bf</Id>
<TimeStamp>2022-10-11T09:22:37.7814062-05:00</TimeStamp>
</Request>
<Response>
<Result>false</Result>
<TimeStamp>2022-10-11T09:22:37.7970211-05:00</TimeStamp>
<LastResult>DOCUMENT_ON_CANCEL_PROCESS</LastResult>
<Code>3192</Code>
<Description>El documento solicitado se encuentra en proceso de cancelación.</Description>
<Hint>No se permite cancelar el documento que está en proceso de cancelación.</Hint>
<Data>Fecha de inicio de proceso de cancelación=2022-03-25T16:25:45
Descripción: El documento solicitado se encuentra en proceso de cancelación.
Sugerencia: No se permite cancelar el documento que está en proceso de cancelación.
Evento: 2022-10-11 09:22:37 TEST-BACK02 CANCEL_DOCUMENT_3 3192 DOCUMENT_ON_CANCEL_PROCESS JES900109Q90 ASP 8790 e0b5e81a-6880-4ebe-a23d-af03f65e00bf</Data>
<Processor>TEST-BACK02</Processor>
</Response>
<ResponseData>
<ResponseData1/>
<ResponseData2/>
<ResponseData3/>
</ResponseData>
</RequestTransactionResult>
</RequestTransactionResponse>
</soap:Body>
</soap:Envelope>
2.
CANCELAR_RETENCION_SINGLE_MYSUITE_3
Petición.
·
En Data1 se
envía el UUID de la retención que se quiere cancelar.
·
En Data2 se
envía, codificado Base64, un xml que especifica la información relativa a la
cancelación. La explicación es la misma que la que se dio para Data2 en la
transacción CANCEL_DOCUMENT_3 (remitirse a dicha explicación)
Respuesta.
·
En ResponseData1:
acuse, codificado Base64, devuelto por el SAT en la solicitud de cancelación.
·
En ResponseData2:
texto plano con la traducción a mensaje del SAT del código de respuesta
obtenida en la cancelación (ejemplo: SAT: 202 - UUID Previamente
admitido al proceso de cancelación.).
· En ResponseData3: vacío.
3. CONSULTAR_DOCUMENTO
Descripción
Transacción de:
|
Emisor o Receptor
|
Modalidad:
|
ASP (CFDI + Timbrado)
|
Transaction:
|
CONSULTAR_DOCUMENTO
CONSULT_DOCUMENT
|
Propósito:
|
Realiza la consulta de estado y de estado de
cancelación de un CFDI emitido o recibido existente en las base
de datos de MYSuite.
|
RequestTransaction
Data1
Colocar un string en
formato JSON codificado en base64; se deben especificar los criterios para consultar el estado de CFDI.
Ejemplo plano:
{ 'docType': 'issued', 'emisor': 'JES900109Q90', 'folioFiscal': '9ba6a41f-1e78-4f34-882d-d89cc2d8e38b', 'year': '2022' }
Detalles:
docType: Tipo de documento que se quiere consultar: emitido o recibido; los
valores posibles son issued ó received.
emisor: Rfc del emisor de la factura que se quiere consultar.
folioFiscal: Folio fiscal (uuid) de la factura que se quiere consultar.
year: Año de la fecha de emisión de la factura que se quiere consultar.
Los
criterios docType, emisor y folioFiscal son
obligatorios; el criterio year solo es obligatorio para casos de documentos emitidos (docType con valor "issued").
Ejemplo codificado en base64 para colocar en Data1:
eyAnZG9jVHlwZSc6ICdpc3N1ZWQnLCAnZW1pc29yJzogJ0pFUzkwMDEwOVE5MCcsICdmb2xpb0Zpc2NhbCc6ICc5YmE2YTQxZi0xZTc4LTRmMzQtODgyZC1kODljYzJkOGUzOGInLCAneWVhcic6ICcyMDIyJyB9
Response
ResponseData1: JSON en base64
|
eyJDb2RpZ29Fc3RhdHVzIjoiUyAtIENvbXByb2JhbnRlIG9idGVuaWRvIHNhdGlzZmFjdG9yaWFtZW50ZS4iLCJFc0NhbmNlbGFibGUiOiJDYW5jZWxhYmxlIHNpbiBhY2VwdGFjacOzbiIsIkVzdGFkbyI6IlZpZ2VudGUiLCJFc3RhdHVzQ2FuY2VsYWNpb24iOiIifQ==
|
{"CodigoEstatus":"S - Comprobante obtenido satisfactoriamente.","EsCancelable":"Cancelable
sin
aceptación","Estado":"Vigente","EstatusCancelacion":""}
|
ResponseData2: XML en base64
|
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxBY3VzZSB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4NCiAgPEV4dGVuc2lvbkRhdGEgLz4NCiAgPENvZGlnb0VzdGF0dXM+UyAtIENvbXByb2JhbnRlIG9idGVuaWRvIHNhdGlzZmFjdG9yaWFtZW50ZS48L0NvZGlnb0VzdGF0dXM+DQogIDxFc0NhbmNlbGFibGU+Q2FuY2VsYWJsZSBzaW4gYWNlcHRhY2nDs248L0VzQ2FuY2VsYWJsZT4NCiAgPEVzdGFkbz5WaWdlbnRlPC9Fc3RhZG8+DQogIDxFc3RhdHVzQ2FuY2VsYWNpb24gLz4NCjwvQWN1c2U+
|
<?xml version="1.0"
encoding="utf-8"?>
<Acuse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ExtensionData />
<CodigoEstatus>S - Comprobante obtenido
satisfactoriamente.</CodigoEstatus>
<EsCancelable>Cancelable sin
aceptación</EsCancelable>
<Estado>Vigente</Estado>
<EstatusCancelacion />
</Acuse>
|
EJEMPLO SOLICITUD:
<soap:Header/>
<soap:Body>
<ws:RequestTransaction>
<ws:Requestor>0c320b03-d4f1-47bc-9fb4-77995f9bf33e</ws:Requestor>
<ws:Transaction>CONSULTAR_DOCUMENTO</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> <ws:Data1>eyAnZG9jVHlwZSc6ICdpc3N1ZWQnLCAnZW1pc29yJzogJ0pFUzkwMDEwOVE5MCcsICdmb2xpb0Zpc2NhbCc6ICc5YmE2YTQxZi0xZTc4LTRmMzQtODgyZC1kODljYzJkOGUzOGInLCAneWVhcic6ICcyMDIyJyB9</ws:Data1>
<ws:Data2></ws:Data2>
<ws:Data3></ws:Data3>
</ws:RequestTransaction>
</soap:Body>
</soap:Envelope>
RESPUESTA SOLICITUD:
<soap:Body>
<RequestTransactionResult>
<Request>
<Requestor>00000000-0000-0000-0000-000000000000</Requestor>
<RequestorActive>true</RequestorActive>
<Transaction>CONSULTAR_DOCUMENTO</Transaction>
<Country>MX</Country>
<Entity>JES900109Q90</Entity>
<User>00000000-0000-0000-0000-000000000000</User>
<UserName>Jan_Test</UserName>
<Id>278ac446-2794-48cc-a6d6-0b3ff74ed575</Id>
<TimeStamp>2022-10-11T10:04:02.2657895-05:00</TimeStamp>
</Request>
<Response>
<Result>true</Result>
<TimeStamp>2022-10-11T10:04:02.6256516-05:00</TimeStamp>
<LastResult/>
<Code>1</Code>
<Description/>
<Hint/>
<Data>9510 278ac446-2794-48cc-a6d6-0b3ff74ed575</Data>
<Processor>TEST-BACK02</Processor>
<Identifier>
<Country>MX</Country>
<Entity>JES900109Q90</Entity>
<FiscalName>JIMENEZ ESTRADA SALAS A A</FiscalName>
<AYear>0</AYear>
<ANumber/>
<Batch/>
<Serial>47508</Serial>
<DocumentGUID>9ba6a41f-1e78-4f34-882d-d89cc2d8e38b</DocumentGUID>
<IssuedTimeStamp>2022-10-11T09:54:29</IssuedTimeStamp>
<EnrolledTimeStamp>2022-10-11T09:54:31</EnrolledTimeStamp>
<PaidTimeStamp/>
<CancelledTimeStamp/>
<InternalID/>
<BatchID/>
<BatchTimeStamp/>
<BatchRequestorCountry/>
<BatchRequestorEntity/>
<BatchPosition/>
<ReceiverCountry>MX</ReceiverCountry>
<ReceiverEntity>JES900109Q90</ReceiverEntity>
<ReceiverTaxID/>
<ReceiverName>JIMENEZ ESTRADA SALAS A A</ReceiverName>
<ClaveAgente/>
<NumeroDePoliza/>
<Currency>MXN</Currency>
<TotalAmount>8,482.50</TotalAmount>
<Type1>ingreso</Type1>
<Type2>FACTURA</Type2>
<SuggestedFileName>JES900109Q90__47508_JES900109Q90</SuggestedFileName>
<SuggestedFileName2>11102022___47508_</SuggestedFileName2>
</Identifier>
</Response>
<ResponseData>
<ResponseData1>eyJDb2RpZ29Fc3RhdHVzIjoiUyAtIENvbXByb2JhbnRlIG9idGVuaWRvIHNhdGlzZmFjdG9yaWFtZW50ZS4iLCJFc0NhbmNlbGFibGUiOiJDYW5jZWxhYmxlIHNpbiBhY2VwdGFjacOzbiIsIkVzdGFkbyI6IlZpZ2VudGUiLCJFc3RhdHVzQ2FuY2VsYWNpb24iOiIiLCJWYWxpZGFjaW9uRUZPUyI6IjIwMCJ9</ResponseData1>
<ResponseData2>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxBY3VzZSB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4NCiAgPEV4dGVuc2lvbkRhdGEgLz4NCiAgPENvZGlnb0VzdGF0dXM+UyAtIENvbXByb2JhbnRlIG9idGVuaWRvIHNhdGlzZmFjdG9yaWFtZW50ZS48L0NvZGlnb0VzdGF0dXM+DQogIDxFc0NhbmNlbGFibGU+Q2FuY2VsYWJsZSBzaW4gYWNlcHRhY2nDs248L0VzQ2FuY2VsYWJsZT4NCiAgPEVzdGFkbz5WaWdlbnRlPC9Fc3RhZG8+DQogIDxFc3RhdHVzQ2FuY2VsYWNpb24gLz4NCiAgPFZhbGlkYWNpb25FRk9TPjIwMDwvVmFsaWRhY2lvbkVGT1M+DQo8L0FjdXNlPg==</ResponseData2>
<ResponseData3/>
</ResponseData>
</RequestTransactionResult>
</RequestTransactionResponse>
</soap:Body>
</soap:Envelope>
Observaciones
No es un acuse en el sentido legal ya que no viene
firmado digitalmente.