CFDI
Guía de Implementación de WEB SERVICE para Cancelación de CFDI
Pruebas
URL
Para realizar una prueba se debe realizar una petición de tipo POST
a la siguiente URL.
https://test.paxfacturacion.com.mx:476/WebServices/wcfCancelaASMX.asmx?wsdl
Producción
URL
Para realizar una prueba se debe realizar una petición de tipo POST
a la siguiente URL.
https://www.paxfacturacion.com.mx:476/WebServices/wcfCancelaASMX.asmx?wsdl
Debemos de tomar como referencia de ejemplo el siguiente código al enviar la petición:
wcfCancela servicioCancelacion = new wcfCancela ();
string resultado = servicioCancelacion.fnCancelarXML20(sListaUUID, psRFC, psRFCReceptor, sListaTotales, sMotivosCancelacion, sFoliosSustitucion, sNombre, sContrasena);
Atributo | Descripción |
---|---|
sListaUUID |
Lista de UUID’s a Cancelar |
psRFC |
RFC Emisor que solicita la Cancelación |
psRFCReceptor |
Lista de RFC’s Receptor de cada UUID de la Lista |
sListaTotales |
Lista de Total de la Factura de cada UUID de la Lista |
sMotivosCancelacion |
Lista de Motivos Cancelación de cada UUID de la Lista |
sFoliosSustitucion |
Lista de Folios Sustitución de cada UUID de la Lista |
sNombre |
Usuario para autenticar el servicio |
sContrasena |
Contraseña para autenticar el servicio |
La Lista de UUID, RFC Receptores y Totales debe corresponder con la cantidad y posición en el arreglo para generar la petición correctamente. Solo se permite 5 UUID’s por Petición.
Método de uso
Es necesario agregar las siguientes referencias a cada uno de sus sistemas, he instanciar un servicio como el siguiente:
wcfRecepcion servicioCancelacion = new wcfRecepcion();
string resultado = servicioCancelacion.fnCancelarXML20([dbfd9f2f-1b75-4e07-a865-082d0dbc7712], [ 24bc32f1-44ea-4f58-9787-b02fce07ea73] , "MAG041126GT8", ([AAA010101AAA], [AAB010101AAA]), ([10.77], [150.58]),([03], [01]), ([“”], [14bc32f1-44ea-4f58-9787-b02fce07ea73]), "usuario","password64");
En donde:
Atributo | Descripción |
---|---|
sListaUUID |
[dbfd9f2f-1b75-4e07-a865-082d0dbc7712],[ 24bc32f1-44ea-4f58-9787-b02fce07ea73] |
psRFC |
(MAG041126GT8) |
psRFCReceptor |
[AAA010101AAA],[AAB010101AAA] |
sListaTotales |
[10.77],[150.58] |
sMotivosCancelacion |
[03],[01] |
sFoliosSustitucion |
[“”],[14bc32f1-44ea-4f58-9787-b02fce07ea73] |
sNombre |
nombre_usuario |
sContrasena |
password64 (Proporcionada por PAX) |
Enviar petición
En el siguiente ejemplo se muestra cómo enviar la solicitud y la respuesta proporcionada por el servicio web.
Petición
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:test="https://test.paxfacturacion.com.mx:476">
<soap:Header/>
<soap:Body>
<test:fnCancelarXML20>
<test:sListaUUID>
<test:string>dbfd9f2f-1b75-4e07-a865-082d0dbc7712</test:string>
<test:string>24bc32f1-44ea-4f58-9787-b02fce07ea73</test:string>
</test:sListaUUID>
<test:psRFCEmisor>CACX7605101P8</test:psRFCEmisor>
<test:psRFCReceptor>
<test:string>AAA010101AAA</test:string>
<test:string>AAB010101AAA</test:string>
</test:psRFCReceptor>
<test:sListaTotales>
<test:string>10.77</test:string>
<test:string>150.58</test:string>
</test:sListaTotales>
<pax:sMotivosCancelacion>
<pax:string>01</pax:string>
<pax:string>03</pax:string>
</pax:sMotivosCancelacion>
<pax:sFoliosSustitucion>
<pax:string></pax:string>
<pax:string>14bc32f1-44ea-4f58-9787-b02fce07ea73</pax:string>
</pax:sFoliosSustitucion>
<test:sNombre>wsdl_pax</test:sNombre>
<test:sContrasena>wrnDgcOvxYXEr8OKw6jDm8WDxYXCgzV5xLTEgMKoXk/EjcK5776k77+V77+QMu++qe++s++9se+8kw==</test:sContrasena>
</test:fnCancelarXML20>
</soap:Body>
</soap:Envelope>
Respuesta
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<fnCancelarXML20Response
xmlns="https:// test.paxfacturacion.com.mx: 476">
<fnCancelarXML20Result>
<![CDATA[<Cancelacion
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" RfcEmisor=" MAG041126GT8" Fecha="2018-08-09T10:46:21"
xmlns="http://cancelacfd.sat.gob.mx"><Folios><UUID> dbfd9f2f-1b75-4e07-a865-082d0dbc7712</UUID><UUIDEstatus>201 </UUIDEstatus><UUIDdescripcion>201 - Comprobante Cancelado sin Aceptación </UUIDdescripcion><UUIDfecha>2018-08-09T10:46:21 </UUIDfecha></Folios><Folios><UUID>24bc32f1-44ea-4f58-9787-b02fce07ea73</UUID><UUIDEstatus>201 </UUIDEstatus><UUIDdescripcion>201 - UUID con Aceptación en proceso </UUIDdescripcion><UUIDfecha>2018-08-09T10:46:23 </UUIDfecha></Folios><Signature>ZyKsdx36EbXx7hn4N7w323Ih/29eRfxE3PRTWRymv8wIom8lK4bjGqk2HUBEvgXmGpmTmtBtNv+QNyCbaNxgig==</Signature></Cancelacion>]]>
</fnCancelarXML20Result>
</fnCancelarXML20Response>
</soap:Body>
</soap:Envelope>
Credenciales
Usuario:
wsdl_pax
Contraseña:
wrnDgcOvxYXEr8OKw6jDm8WDxYXCgzV5xLTEgMKoXk/EjcK5776k77+V77+QMu++qe++s++9se+8kw==
Los siguientes archivos son los certificados para la emisión de pruebas de cancelación.
Descargar llave
Códigos de error
A la hora de utilizar nuestro servicio es posible que te encuentres con ciertos errores. La siguiente lista tiene como objetivo ayudarte a comprender qué significa cada código de error y a solucionar problemas de manera más eficiente.
Código | Descripción |
---|---|
101 |
Comprobante no cancelable porque contiene el complemento de pagos. |
102 |
Comprobante no cancelable porque contiene documentos relacionados. |
103 |
El CFDI ha sido cancelado previamente por aceptación del receptor. |
104 |
El CFDI no se puede cancelar porque fue rechazado previamente. |
105 |
El CFDI no se puede cancelar porque tiene estatus de “en espera de aceptación”. |
106 |
El CFDI no se puede cancelar porque tiene estatus de “en proceso”. |
107 |
El CFDI ha sido cancelado por plazo vencido. |
201 |
UUID cancelado sin aceptación. |
202 |
UUID con aceptación en proceso. |
203 |
UUID previamente cancelado. |
204 |
UUID no corresponde con el emisor. |
205 |
UUID no existente, intente en 10 minutos. |
206 |
UUID no corresponde a un CFDI del sector primario. |
207 |
No se especificó el motivo de cancelación o el motivo no es válido. |
208 |
Folio sustitución inválido. |
209 |
Folio sustitución no requerido. |
210 |
Servicio QR del SAT no disponible. |
211 |
La fecha de solicitud de cancelación límite para factura global. |
212 |
Relación no válida o inexistente. |
301 |
XML mal formado. |
302 |
Sello mal formado o inválido. |
303 |
Sello no corresponde con el emisor. |
304 |
Certificado revocado o caduco. |
305 |
Fecha de cancelación no está dentro de la vigencia del CSD del emisor. |
306 |
Certificado no es de tipo CSD. |
308 |
Certificado revocado o caduco. |
96 |
Usuario o contraseña incorrecta. |
97 |
No hay créditos disponibles. |
El costo del Servicio es de 1 Créditos por petición.