Introducción Última Actualización: 2024-01-16

Se utiliza para realizar el timbrado de un XML mediante webservices, esto aplica para clientes que ya cuentan con un sistema donde requieran integrar la facturación electrónica, se requiere del envío de sus CFDI's, para validar que cumpla con los lineamientos y requisitos correspondientes y poder emitir sus XML's y PDF's.

Requisitos
  1. Contar con un Certificado de Sello Digital (CSD) válido ante el SAT.
  2. Contar con un software cliente para realizar las peticiones de timbrado.
  3. Estar registrado en la plataforma Pade (con esto obtienes el usuario, contraseña y contrato necesario para autenticarte en el servicio).

    Para conocer el proceso de registro a la plataforma Pade, consulta la documentación en la sección de primeros pasos.

Consideraciones
  • Contrato: el contrato es la bolsa de transacciones de la cuenta. El contrato sólo puede ser de un tipo de servicio (Timbrado, Emisión, Validación, etc.). Al registrarse y antes de adquirir transacciones, el contrato tiene vigencia de 30 días naturales.
  • Inicio de sesión: el inicio de sesión es diferente para portal y webservice.
    • Portal: es requerido el RFC con el que se hizo el registro, o el código de cliente, el usuario y la contraseña establecidas.
    • Webservice: es requerido el contrato asignado en el registro, el usuario y la contraseña establecidas.
  • Bloqueo de acceso: esto ocurre al ingresar incorrectamente el usuario y/o contraseña en 3 ocasiones, ya sea a través del portal o webservice.
  • Restablecimiento de acceso: para iniciar el restablecimiento de acceso es necesario ingresar a la plataforma Pade:
    • Seleccione la opción "INICIAR SESIÓN".
    • Da clic en: ¿Olvidó su contraseña?
    • Capturar el código de cliente y correo electrónico del usuario. El código del cliente se entrega únicamente por correo electrónico al confirmar su registro en la plataforma Pade.
  • Para mayor facilidad, los procesos de registro, inicio de sesión, restablecimiento de acceso y cambio de correo se detallan en los siguientes manuales:

Manual para registro e inicio de sesión

Clic en el siguiente enlace para descargar

Manual para recuperación de contraseña

Clic en el siguiente enlace para descargar

Manual para cambio de correo

Clic en el siguiente enlace para descargar

Manual para agregar certificado digital

Clic en el siguiente enlace para descargar

Primeros pasos

Lo siguiente es una guía sugerida para realizar una integración exitosa al servicio de timbrado de Prodigia.

  1. Registro a la plataforma Pade: el proceso se detalla en la sección Manuales.
  2. Conocer el método de timbrado: en la sección "Método de Timbrado" del servicio SOAP o el servicio REST encontrarás el detalle de cómo realizar el llamado de timbrado.
  3. Conocer la funcionalidad adicional(opciones) que utilizarás: una opción es funcionalidad adicional que realiza el servicio de timbrado en base a tu necesidad. Estas se envían como parámetro durante el llamado de timbrado, Las opciones más comunes se utilizan para cálculo del sello del comprobante y generación de PDF.

    La lista completa de opciones la puedes encontrar en la sección Opciones del Servicio de Timbrado.


En el caso de que se requiera que el sello se calcule de nuestro lado, es necesario cargar el certificado de sello digital (CSD) el cual será almacenado en base de datos, para realizar este proceso contamos con un manual de usuario.

Recomendaciones

Establecer un timeout adecuado: la duración del proceso de timbrado depende de las opciones establecidas, el tamaño del comprobante,entre otras cosas. Si bien el promedio de timbrado de un comprobante va de 350ms a 500ms, recomendamos establecer un timeout de 60 segundos.


Crear un usuario para el webservice y otro para el portal: por seguridad se recomienda generar diferentes usuarios en plataforma para utilizar el servicio de webservice y portal.


Guardar muy bien el código de cliente: es importante mantenerlo seguro para restablecer su contraseña, solo se hace llegar mediante correo electrónico.


Duplicar comprobantes: Por reglas del SAT, un comprobante con exactamente la misma información no puede ser duplicado. Sin embargo, si dos comprobantes tienen 1 segundo de diferencia en la fecha de emisión o algún otro dato tenga un caracter diferente, es fiscalmente otro comprobante. En el servicio de Prodigia no pueden duplicarse comprobantes mientras estos cuenten con exactamente la misma información. Si hay una variación de tan solo 1 dígito o caracter, fiscalmente es un comprobante nuevo.

Ambientes

Prodigia ofrece 2 tipos de ambientes: Ambiente productivo y de pruebas son los ambientes que Prodigia ofrece para realizar sus procesos de timbrado:

Ambiente de producción: este ambiente se utiliza para realizar el proceso de timbrado y la obtención de sus CFDI's, mismos que se reflejan ante el SAT, así como también los diferentes métodos y opciones del servicio de timbrado y cancelación. La URL de este ambiente varía según el tipo de conexión al servicio que se vaya a utilizar (SOAP o REST).

  • Para conocer el proceso de conexión de su interés, deberá ir a la sección del Servicio deseado. Todas nuestras url de este ambiente inician con https://timbrado.pade.mx

Ambiente de pruebas: este ambiente se utiliza para realizar pruebas de cambios que aún no entran en vigor y de los cuales se utiliza para que el cliente conozca la funcionalidad y prepare sus casos de prueba previos a productivo. Todas nuestras url en este ambiente inician con https://pruebas.pade.mx


Infraestructura y Ambientes Separados

Es importante señalar que los diferentes tipos ambientes, no comparten infraestructura. Cada uno opera de forma completamente independiente, lo que incluye:

  • Bases de datos separadas.
  • Infraestructura específica para cada ambiente.
  • URLs exclusivas que permiten el acceso a los servicios correspondientes de acuerdo con el tipo de ambiente.
  • Usuarios y correos no coexisten.
Esta separación asegura que los servicios no interfieran entre sí y que puedan operar de manera autónoma, optimizando así la funcionalidad y el control de cada uno de ellos.

Servicio SOAP

Conexión al servicio de timbrado CFDI (SOAP)

El servicio se encuentra disponible en una dirección URL pública:

Conexión al servicio de timbrado 4.0 SOAP
https://timbrado.pade.mx/servicio/Timbrado4.0?wsdl


NOTA: La URL descrita en esta conexión es al ambiente productivo, en caso de querer utilizar el ambiente de pruebas favor de ir a la sección de Ambientes.

Método de timbradoCfdi

Es el método para obtener la validación de la estructura correcta, así mismo enviar dentro de la petición cualquier tipo de caracter para que el servicio pueda convertirlo y detectarlo como válido para obtener un XML armado. Por último, se realiza la autenticación al servicio, valida la estructura del XML y devuelve la respuesta de la petición con el XML timbrado, en caso de algún error, se especifica el código y mensaje.

En caso de alguna duda sobre el catálogo de errores. favor de revisar la sección de códigos.

NOTA: Los métodos utilizados anteriormente (timbrado, timbradoPrueba, timbradoConCSD, timbradoBase64, timbradoBase64Prueba)serán despreciados.

Parámetros

El contrato, usuario y contraseña se asigna una vez adquirido el servicio de timbrado, y se obtienen a través del registro de la plataforma Pade.

Parámetros marcados con * son obligatorios:

  • contrato *
    • Indica el código de contrato del usuario con el que se realizará el timbrado.
  • usuario *
    • Indica el usuario con el que se autenticará el servicio de timbrado.
  • passwd *
    • Indica la contraseña del usuario con el que se autenticará al servicio de timbrado.
  • cfdixml (comprobante a timbrar) *
    • Es el XML que se requiere timbrar, mismo que deberá estar previamente llenado con la estructura correcta.
  • opciones
    • En caso de requerir alguna opción del servicio, ir a la sección de opciones del servicio de timbrado.
    • Este parámetro se puede repetir cuantas opciones desea especificar.
  • prueba
    • Parámetro para realizar la petición en modo prueba, deberá especificarse como true (modo prueba) o false (timbrado real), si no agregamos el parámetro, se toma como timbrado real.
  • key
    • Arreglo de bytes Llave privada correspondiente al certificado.
  • keyPass
    • Contraseña de la llave privada.
  • cert
    • Arreglo de bytes con el archivo del certificado de sello digital. Se debe enviar el archivo binario tal como se obtuvo del SAT (formato CER).

NOTA: Para conocer las guías de llenado de los diferentes tipos de comprobantes puede consultar la información oficial que el SAT ofrece.

Ejemplo de petición de timbrado

Ejemplo de petición para timbrar un XML en sus dos versiones de CFDI. Se puede observar los parámetros necesarios para el servicio, los cuales se describen más adelante.

+Request

									
	<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tim="timbrado.ws.pade.mx">
		<soapenv:Header/>
  	<soapenv:Body>
    <tim:timbradoCfdi>
        
       	 <contrato>CONTRATO</contrato>
        
         <usuario>USUARIO</usuario>
       
         <passwd>CONTRASEÑA</passwd>
      
         <cfdiXml><![CDATA[<?xml version="1.0" encoding="utf-8"?>
			<cfdi:Comprobante xsi:schemaLocation="http://www.sat.gob.mx/cfd/4 http://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd"
			xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cfdi="http://www.sat.gob.mx/cfd/4" Version="4.0" Serie="ICR" 
			Folio="79"Fecha="2023-07-25T16:53:17" Sello="" FormaPago="99" NoCertificado="00000000000000000000" CondicionesDePago="CONTADO"
			Certificado="MIIFuTCCA6GgAwI...BALoqUzAB6avN2zzEy6ERRCGfR3cVhVUTcpd/iQffeGvw7tRZZOiWgwG3Sjc/
			zgUppnFXfVFHCTmRz1nr0dOqKjOpMEMncRSfY2Mk+Xm8rmJ7toBu4iAyJUDCP6v24as1uxiE9DVDaFwlugdYL9c=" SubTotal="150000.00"
			Moneda="MXN"  Total="174000.00" TipoDeComprobante="I" Exportacion="01" MetodoPago="PPD"LugarExpedicion="22010">
			<cfdi:Emisor Nombre="NOMBRE EMISOR" RegimenFiscal="601" Rfc="RFC EMISOR"/>
   			<cfdi:Receptor DomicilioFiscalReceptor="22010" ResidenciaFiscal="CAN " Nombre="NOMBRE  RECEPTOR." 
   			RegimenFiscalReceptor="616" Rfc="RFC RECEPTOR" UsoCFDI="S01"/>
			<cfdi:Conceptos>
	    		<cfdi:Concepto ClaveProdServ="25101500" NoIdentificacion="1" Cantidad="1" ClaveUnidad="H87" Descripcion=
	    		"Venta de Automovil Frontera" ValorUnitario="150000.00" Importe="150000.00" ObjetoImp="02">
	     		<cfdi:Impuestos>
	       		<cfdi:Traslados>
	         	<cfdi:Traslado Base="150000.00" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="24000.00" />
	        	</cfdi:Traslados>
	      		</cfdi:Impuestos>
	     		</cfdi:Concepto>
	 	</cfdi:Conceptos>
	 	<cfdi:Impuestos TotalImpuestosTrasladados="24000.00">
	   		<cfdi:Traslados>
	    		<cfdi:Traslado Base="150000.00" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="24000.00" />
	   		</cfdi:Traslados>
	 		</cfdi:Impuestos>
	  		<cfdi:Complemento>
	 		</cfdi:Complemento>
	 		</cfdi:Comprobante>]]></cfdiXml>
       
        <cert>CERTIFICADO EN BASE64</cert>
        <!--Optional:-->
        <key>KEY EN BASE64</key>
        <!--Optional:-->
        <keyPass>KEY PASS</keyPass>
        <prueba>true</prueba>
        <!--Zero or more repetitions:-->
        <opciones>CALCULAR_SELLO</opciones>
      </tim:timbradoCfdi>
   </soapenv:Body>
</soapenv:Envelope>
									
								

Ejemplo de respuesta de timbrado

+Response

									
	<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   		<S:Body>
     		 <ns2:timbradoCfdiResponse xmlns:ns2="timbrado.ws.pade.mx">
       			<return><![CDATA[<?xml version="1.0" encoding="UTF-8"?><servicioTimbrado>
				<id>8a2721fe-558f-4760-a733-df1a03b79a6d</id>
				<timbradoOk>true</timbradoOk>
				<contrato>CONTRATO</contrato>
				<codigo>0</codigo>
				<version>1.1</version>
				<UUID>UUID</UUID>
				<FechaTimbrado>2023-08-24T10:41:21</FechaTimbrado>
				<selloCFD>KvKhra3TR9Eqgxf/Sdjr3b5CLLsZ9e1OxxhSZLk59ScHKLN44jTriL6jsVJ8cPs04nhB/
				R73UZK0CJX/+aN6pf7wUKkV…z7GkAHPS7cQAfRca48h41DQu5Be8cc0XtbVSUNjvBpSQ7L6tWDjOag6Nikb+
				yuiPuuNcdVoFiCwWbTuCu25tTgTWjnTcnezI8+Nw==</selloCFD>
				<noCertificadoSAT>00000000000000000000</noCertificadoSAT>
				<selloSAT>h3JXTI2Kt4BLXghfgwDippQMmJywjcKBlwqtdG+QxwgJx5AVSG9yHxoQ72sm/D7yvSGOMIN8eO7rHTQCPaNAdo+...rqFsSTzvAQQ/
				TeZkEEnrD5NFCkm/T0z+FKIOYLtT8VS5kplGINpQC3CaK0eCXglPwUUPkKIk4VmK7appqXeCeKE6x6VXGWs4Vty5/uWqWEA==</selloSAT>
				<xmlBase64>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y2ZkaTpDb21wcm9iYW50ZSB4bWxuczpjZmRpPSJod…
				hS2JOMVd5ZW5vcW9sY1VjZzZKUWlpMW15QzNyTE9hRkVTbnAxN1JvZlhyOVRFM2N3MjM3TmQyckZlU3NSTkZoWXZ1eGp3K1BLODNvQmovaVUxSUtoR01rb1ll
				bWZRTXJxRnNTVHp2QVFRL1RlWmtFRW5yRDVORkNrbS9UMHorRktJT1lMdFQ4VlM1a3BsR0lOcFFDM0NhSzBlQ1hnbFB3VVVQa0tJazRWbUs3YXBwcVhlQ2VLR
				TZ4NlZYR1dzNFZ0eTUvdVdxV0VBPT0iIFVVSUQ9IjY2RjE2NkI3LTE0MjEtNDIyMi05QzA1LUM0RTg4ODZERjNEOCIgVmVyc2lvbj0iMS4xIiB4c2k6c2NoZW
				1hTG9jYXRpb249Imh0dHA6Ly93d3cuc2F0LmdvYi5teC9UaW1icmVGaXNjYWxEaWdpdGFsIGh0dHA6Ly93d3cuc2F0LmdvYi5teC9zaXRpb19pbnRlcm5ldC9
				jZmQvVGltYnJlRmlzY2FsRGlnaXRhbC9UaW1icmVGaXNjYWxEaWdpdGFsdjExLnhzZCIgeG1sbnM6dGZkPSJodHRwOi8vd3d3LnNhdC5nb2IubXgvVGltYnJl
				RmlzY2FsRGlnaXRhbCIvPjwvY2ZkaTpDb21wbGVtZW50bz48L2NmZGk6Q29tcHJvYmFudGU+</xmlBase64>
				</servicioTimbrado>]]></return>
     	 	</ns2:timbradoCfdiResponse>
  		</S:Body>
	</S:Envelope>
									
								

Para los ejemplos de petición y respuesta del método timbradoCfdi solo se diferencía mediante el nodo <timbradoCfdiResponse>.

La descripción de los atributos se define a continuación:

Atributo Descripción
id Identificador de la transacción interna, en formato UUID. Este valor es de uso interno, no está relacionado con ninguna propiedad del XML o del Timbre Fiscal Digital.
timbradoOk Indica si la operación de timbrado fue conducida exitosamente. Los valores posibles son “true”, que indica éxito; y “false”, que indica que el CFDI no pudo ser timbrado y en consecuencia no fue aceptado por el servicio.
contrato Identificador único del contrato del cliente. Se regresa para fines informativos.
codigo El código es un valor cuya función principal es indicar el error que fue detectado, en caso de haberlo. Cuando la transacción de timbrado fue exitosa (timbradoOk vale “true”) el código se regresa con un valor de 0 (cero) y de otra forma se regresa con el código de error específico definido por el SAT. Por otro lado, es posible que se acepte el certificado, pero con incidencias, lo que causará que se regrese un código aun cuando el atributo timbradoOk tenga valor de “true”. El código siempre pertenecerá al último error registrado por el servicio (en caso de que se hayan registrado más de uno).
mensaje Este valor es un texto informativo. Es especialmente útil cuando ocurren errores en el procesamiento del CFDI. Cuando la transacción de timbrado fue exitosa, este valor viene vacío. Es probable que la respuesta del servicio incluya más de un mensaje de error, éstos serán separados por un carácter pipe (|).
version Versión del Timbre Fiscal generado. A la fecha, el valor es 1.1. Este valor forma parte del elemento tfd:TimbreFiscalDigital dentro del CFDI. Este valor se incluye solamente cuando la transacción de timbrado es exitosa.
uuid Folio fiscal asignado al CFDI. Este valor forma parte del elemento < tfd:TimbreFiscalDigital > dentro del CFDI. Este valor se incluye solamente cuando la transacción de timbrado es exitosa.
FechaTimbrado Fecha de generación del Timbre Fiscal Digital. Este valor forma parte del elemento < tfd:TimbreFiscalDigital> dentro del CFDI. Este valor se incluye solamente cuando la transacción de timbrado es exitosa.
selloCFD Sello del CFDI. Este valor forma parte del elemento < tfd:TimbreFiscalDigital> dentro del CFDI. Este valor se incluye solamente cuando la transacción de timbrado es exitosa.
noCertificadoSAT Número de certificado del SAT. Este valor forma parte del elemento < tfd:TimbreFiscalDigital> dentro del CFDI. Este valor se incluye solamente cuando la transacción de timbrado es exitosa.
selloSAT Sello del timbre fiscal digital. Este valor forma parte del elemento < tfd:TimbreFiscalDigital> dentro del CFDI. Este valor se incluye solamente cuando la transacción de timbrado es exitosa.
xmlBase64 String codificado en Base 64 que contiene el documento XML timbrado. Este valor se incluye solamente cuando la transacción de timbrado es exitosa.
pdfBase64 String codificado en Base 64 que contiene el arreglo de bytes del PDF del documento XML timbrado. Este valor se incluye solamente cuando la transacción de timbrado es exitosa y se utiliza la opción GENERAR_PDF.
saldo El valor de este nodo es el número de transacciones disponibles para el contrato con el que se realizó la petición de timbrado. Este valor se incluye solamente cuando la transacción es exitosa y se utiliza la opción CONSULTAR_SALDO.

Método enviar XML y PDF por correo

Se encarga de enviar el XML y el PDF de un comprobante timbrado a través de los servicios de prodigia, este método es solo para el envío de archivos de un UUID, este UUID debe de estar guardado en base de datos.

Parámetros marcados con * son obligatorios:

Parámetros

  • contrato *
    • Indica el código de contrato del usuario con el que se realizará el timbrado.
  • usuario *
    • Indica el usuario con el que se autenticará el servicio de timbrado.
  • passwd *
    • Indica la contraseña del usuario con el que se autenticará al servicio de timbrado.
  • uuid *
    • indica el código identificador único del comprobante.
  • destinatarios*
    • El parámetro destinatarios permite hasta la captura de 20 correos electrónicos separados por el carácter coma ",".

Ejemplo de petición:

+Request

									
		<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tim="timbrado.ws.pade.mx">
			<soapenv:Header/>
				<soapenv:Body>
				<tim:enviarXmlAndPdfPorCorreo>
				
				<contrato>CONTRATO</contrato>
				
				<usuario>USUARIO</usuario>
				
				<passwd>PASSWD</passwd>
				
				<uuid>UUID</uuid>
				
				<destinatarios>correo@dominio.com.mx</destinatarios>
				</tim:enviarXmlAndPdfPorCorreo>
			</soapenv:Body>
		</soapenv:Envelope>
									
								

Ejemplo de respuesta:

+Response

									
		<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
			<S:Body>
				<ns2:enviarXmlAndPdfPorCorreoResponse xmlns:ns2="timbrado.ws.pade.mx">
						<return><![CDATA[<ResultEnvioCorreo>
							<envioOk>true</envioOk>
							<codigo>0</codigo>
							<mensaje>El correo se envió satisfactoriamente</mensaje>
							</ResultEnvioCorreo>]]></return>
						</ns2:enviarXmlAndPdfPorCorreoResponse>
					</S:Body>
			</S:Envelope>
									
								

No todos los atributos están presentes en la respuesta, y esto dependerá del resultado de la operación y de las cancelaciones.

La descripción de los atributos se define a continuación:

Atributo Descripción
envioOk Los valores posibles son “true” o “false” y determina si el envío fue exitoso.
codigo Código global de la invocación. Un valor de 0 (cero) indica que la invocación se dio exitosamente, o de otra forma se indica la razón del problema.
mensaje Mensaje descriptivo del error en caso de que el valor de código sea diferente de cero.

Recuperar CFDI por UUID

El método cfdiPorUUID permite recuperar el XML en formato base64 de un CFDI.

Parámetros marcados con * son obligatorios:

Parámetros

  • contrato *
    • Indica el código de contrato del usuario con el que se realizará el timbrado.
  • usuario *
    • Indica el usuario con el que se autenticará el servicio de timbrado.
  • passwd *
    • Indica la contraseña del usuario con el que se autenticará al servicio de timbrado.
  • uuid *
    • indica el código identificador único del comprobante.

Ejemplo de petición:

+Request

									
		<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tim="timbrado.ws.pade.mx">
			<soapenv:Header/>
					<soapenv:Body>
					<tim:cfdiPorUUID>
					<contrato>CONTRATO</contrato>
												
					<usuario>USUARIO</usuario>
												
					<passwd>CONTRASEÑA</passwd>
												
					<uuid>UUID</uuid>
				</tim:cfdiPorUUID>
			</soapenv:Body>
		</soapenv:Envelope>
									
								

Ejemplo de respuesta:

+Response

									
	<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
		<S:Body>
			<ns2:cfdiPorUUIDResponse xmlns:ns2="timbrado.ws.pade.mx">
					<return><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
					<servicioConsulta>
					<contrato>CONTRATO0</contrato>
					<consultaOk>true</consultaOk>
					<codigo>0</codigo>
					<xmlBase64></xmlBase64>
					</servicioConsulta>]]></return>
			</ns2:cfdiPorUUIDResponse>
		</S:Body>
	</S:Envelope>
									
									
								

La descripción de los atributos se describe a continuación:

Atributo Descripción
contrato Clave del contrato de servicio
consultaOk Los valores posibles son “true” o “false” y determina si la invocación al webservice fue exitosa.
codigo Código global de la invocación. Un valor de 0 (cero) indica que la invocación se dio exitosamente, o de otra forma se indica la razón del problema.
xmlBase64 String en formato base64 del XML correspondiente al UUID consultado.

Método de Cancelación

Método de Cancelación de CFDI

Este método crea la solicitud de cancelación de uno o varios CFDI. Debido a los cambios hechos por el SAT, es necesario que el receptor responda la solicitud de cancelación (en algunos casos), por lo que te recomendamos utilizar el método consultarEstatusComprobante(descrito más abajo) después de crear la solicitud de cancelación para confirmar el estatus del comprobante.

Parámetros marcados con * son obligatorios:

Parámetros

  • contrato*
    • Clave del contrato de servicios.
  • usuario*
    • Indica el usuario con el que se autenticará el servicio.
  • passwd*
    • Contraseña del usuario del servicio.
  • rfcEmisor*
    • RFC del emisor de los CFDI’s a cancelar.
  • arregloUUID*
    • Arreglo de Strings con el UUID del Comprobante que se está cancelando. se requiere el motivo de cancelación y opcionalmente el folio fiscal que sustituye el UUID que se está cancelando.

    Esta información separada por el carácter pipe (|):

    • UUID para cancelar.
    • Motivo de cancelación (más adelante se explican los valores que pueden contenerse).
    • Folio fiscal que sustituye el documento a cancelar (opcional).

    Ejemplo: <arregloUUID>UUID|Motivo|FolioFiscalSustituye</arregloUUID>

    En el caso de no tener el Certificado de sello digital (CSD) en la base de datos de Prodigia, deberá enviar los siguientes parámetros:

    En caso de que se tenga el CSD en nuestra base de datos deberá enviar la siguiente opción:

  • certBase64
    • Certificado con el cual fueron emitidos los CFDI’s a cancelar en formato Base64.
  • keyBase64
    • Llave privada con el cual fueron emitidos los CFDI’s a cancelar en formato Base64.
  • keyPass
    • Contraseña de la llave privada.

El servicio de cancelación regresa un archivo XML sin esquemas, estructurado de la siguiente manera:

Ejemplo de petición

+Request

			
		<S:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tim="timbrado.ws.pade.mx">
		<soapenv:Header/>
		<soapenv:Body>
			<tim:cancelar>
			
				<contrato>CONTRATO</contrato>
			
				<usuario>USUARIO</usuario>
			
				<passwd>CONTRASEÑA</passwd>
			
				<rfcEmisor>RFCEMISOR</rfcEmisor>
				<!--Zero or more repetitions::-->
				<arregloUUID>UUID|Motivo|FolioFiscalSustituye</arregloUUID>
			
				<cert>CERTIFICADO=</cert>
			
				<key>KEY</key>
			
				<keyPass>KEYPASS</keyPass>
							</tim:cancelar>
						</soapenv:Body>
				</soapenv:Envelope>
					
				

Ejemplo de Respuesta

+Response

			
		<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
		<S:Body>
		<ns2:cancelarResponse xmlns:ns2="timbrado.ws.pade.mx">
			<return><![CDATA[<?xml version="1.0" encoding="UTF-8"?><servicioCancel>
		<statusOk>true</statusOk>
		<codigo>0</codigo>
		<procesados>1</procesados>
		<cancelados>0</cancelados>
		<cancelaciones>
		<cancelacion>
		<uuid>UUID</uuid>
		<codigo>205</codigo>
		<mensaje>Folio Fiscal No Existente</mensaje>
		</cancelacion>
		</cancelaciones>
		<acuseCancelBase64>ACUSE DE CANCELACION==</acuseCancelBase64>
		</servicioCancel>]]></return>
		</ns2:cancelarResponse>
		</S:Body>
		</S:Envelope>
										
			
		

No todos los atributos están presentes en la respuesta, y esto dependerá del resultado de la operación y de las cancelaciones.

La descripción de los atributos se define a continuación:

Atributo Descripción
statusOk Los valores posibles son “true” o “false” y determina si la invocación al webservice fue exitosa. Es importante observar que el valor de este atributo no refleja el valor de cada cancelación individual. Por ejemplo, podemos obtener “true” aquí, pero error en cada cancelación individual. Obtendremos un valor de false en este atributo en caso de un error mayor, por ejemplo que el contrato de servicios esté expirado, o el usuario tenga una contraseña incorrecta.
codigo Código global de la invocación. Un valor de 0 (cero) indica que la invocación se dio exitosamente, o de otra forma se indica la razón del problema.
mensaje Mensaje descriptivo del error en caso de que el valor de código sea diferente de cero.
cancelaciones Nodo que contiene la lista con los resultados de las operaciones individuales sobre cada UUID.
  • cancelacion: Nodo que contiene el resultado de una cancelación individual
  • uuid: UUID que fue procesado.
  • código: Código generado por el SAT con el resultado de la cancelación. La lista de códigos individuales se muestra al final del documento en la tabla 2 “Códigos para los estatus de cancelación”.
  • mensaje: Mensaje opcional adicional con la descripción del problema (en caso de haberlo).
acuseCancelBase64 Acuse de cancelación proporcionado por el SAT, codificado en base 64.

Método de Cancelación con opciones

Este método es similar a la operación de cancelación básica. La diferencia es el argumento “opciones”, que es un arreglo de Strings con indicaciones adicionales para el servicio de cancelación.

Las opciones reconocidas son:

  • PKCS12
  • XML_CANCELACION
  • CERT_DEFAULT
  • CONSULTAR_SALDO
  • MODO_PRUEBA

El significado de las opciones se puede consultar en la sección de Opciones de Cancelación.

Parámetros marcados con * son obligatorios:

Parámetros

  • contrato*
    • Clave del contrato de servicios.
  • usuario*
    • Indica el usuario con el que se autenticará el servicio.
  • passwd*
    • Contraseña del usuario del servicio.
  • rfcEmisor*
    • RFC del emisor de los CFDI’s a cancelar.
  • certBase64
    • Certificado con el cual fueron emitidos los CFDI’s a cancelar en formato Base64.
  • keyBase64
    • Llave privada con el cual fueron emitidos los CFDI’s a cancelar en formato Base64.
  • keyPass
    • Contraseña de la llave privada.
  • arregloUUID*
    • Arreglo de Strings con el UUID del Comprobante que se esta cancelando. Es requerido el motivo de cancelación y opcionalmente el folio fiscal que sustituye el UUID que se está cancelando.

    Esta información separada por el carácter pipe (|):

    • UUID para cancelar.
    • Motivo de cancelación (más adelante se explican los valores que pueden contenerse).
    • Folio fiscal que sustituye el documento a cancelar (opcional).
    • Ejemplo: <arregloUUID>UUID|Motivo|FolioFiscalSustituye</arregloUUID>

  • opciones: Opciones adicionales a la cancelación, este parámetro se puede repetir cuantas opciones desea especificar.
    • En caso de requerir alguna opción del servicio, ir a la sección de opciones del servicio de cancelación.

Ejemplo de petición:

+Request

									
		<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tim="timbrado.ws.pade.mx">
				<soapenv:Header/>
				<soapenv:Body>
					<tim:cancelarConOpciones>
					
						<contrato>CONTRATO</contrato>
					
						<usuario>USUARIO</usuario>
					
						<passwd>PASSWORD</passwd>
					
						<rfcEmisor>RFCEMISOR</rfcEmisor>
						<!--Zero or more repetitions:-->
						<arregloUUID>UUID|Motivo|FolioFiscalSustituye</arregloUUID>
					
						<cert>CERTIFICADO=</cert>
					
						<key>KEY=</key>
					
						<keyPass>KEYPASS</keyPass>
						<!--Zero or more repetitions:-->
						<opciones>MODO_PRUEBA:2</opciones>
					</tim:cancelarConOpciones>
				</soapenv:Body>
		</soapenv:Envelope>
									
								

Ejemplo de respuesta:

+Response

									
		<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
				<S:Body>
					<ns2:cancelarConOpcionesResponse xmlns:ns2="timbrado.ws.pade.mx">
					<return><![CDATA[<?xml version="1.0" encoding="UTF-8"?><servicioCancel>
					<statusOk>true</statusOk>
					<rfc>RFC</rfc>
					<codigo>0</codigo>
					<mensaje>Mensaje genérico de manera general</mensaje>
					<procesados>1</procesados>
					<cancelados>1</cancelados>
					<cancelaciones>
					<cancelacion>
					<uuid>UUID</uuid>
					<codigo>96</codigo>
					<mensaje>En proceso</mensaje>
					</cancelacion>
					</cancelaciones>
					</servicioCancel>]]></return>
				</ns2:cancelarConOpcionesResponse>
				</S:Body>
		</S:Envelope>
									
								

No todos los atributos están presentes en la respuesta y esto dependerá del resultado de la operación y de las cancelaciones.

La descripción de los atributos se define a continuación:

Atributo Descripción
statusOk Los valores posibles son “true” o “false” y determina si la invocación al webservice fue exitosa. Es importante observar que el valor de este atributo no refleja el valor de cada cancelación individual. Por ejemplo, podemos obtener “true” aquí pero error en cada cancelación individual. Obtendremos un valor de false en este atributo en caso de un error mayor, por ejemplo, que el contrato de servicios esté expirado, o el usuario tenga una contraseña incorrecta.
rfc RFC del emisor de los CFDI. Se proporciona para fines informativos.
codigo Código global de la invocación. Un valor de 0 (cero) indica que la invocación se dio exitosamente, o de otra forma se indica la razón del problema.
mensaje Mensaje descriptivo del error en caso de que el valor de código sea diferente de cero.
cancelaciones Nodo que contiene la lista con los resultados de las operaciones individuales sobre cada UUID.
  • cancelación: Nodo que contiene el resultado de una cancelación individual.
  • uuid: UUID que fue procesado.
  • código: Código generado por el SAT con el resultado de la cancelación. La lista de códigos individuales se muestra al final del documento en la tabla 2 “Códigos de respuesta para los diferentes servicios”.
  • mensaje: Mensaje opcional adicional con la descripción del problema (en caso de haberlo).

Método consulta estatus del comprobante

El método consultarEstatusComprobante permite consultar el estatus de un comprobante ante el SAT.

Parámetros marcados con * son obligatorios:

Parámetros

  • contrato*:
    • Clave del contrato de servicios.
  • usuario*:
    • Indica el usuario con el que se autenticará el servicio.
  • passwd*:
    • Contraseña del usuario del servicio.
  • uuid*:
    • Folio Fiscal del comprobante que se quiere consultar su estatus.
  • rfcEmisor*:
    • RFC del Emisor del CFDI.
  • rfcReceptor*:
    • RFC del receptor del CFDI.
  • total*:
    • Total del comprobante que se quiere consultar.
  • opciones:
    • Arreglo de strings que indica al servicio las opciones que se utilizarán en la petición de consulta.
    • Algunas de las opciones son MODO_PRUEBA:1, MODO_PRUEBA:2 y MODO_PRUEBA:3

El servicio de consulta estatus de comprobante regresa un archivo XML sin esquemas, estructurado de la siguiente manera:


Ejemplo de petición

+Request

									
		<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tim="timbrado.ws.pade.mx">
				<soapenv:Header/>
				<soapenv:Body>
					<tim:consultarEstatusComprobante>
							<contrato>CONTRATO</contrato>
							<usuario>USUARIO</usuario>
							<passwd>PASSWORD</passwd>
							<uuid>UUID</uuid>
						
							<rfcEmisor>RFCEMISOR</rfcEmisor>
						
							<rfcReceptor>RFCRECEPTOR</rfcReceptor>
						
							<total>0</total>
					</tim:consultarEstatusComprobante>
				</soapenv:Body>
		</soapenv:Envelope>
									
								

Ejemplo de Respuesta

+Response

									
		<?xml version="1.0" encoding="UTF-8"?>
		<servicioConsultaComprobante>
					<consultaOk>true</consultaOk>
					<codigo>91</codigo>
					<codigoEstatus>S - Comprobante obtenido satisfactoriamente.</codigoEstatus>
					<esCancelable>Cancelable sin aceptación</esCancelable>
					<estado>Cancelado</estado>
					<estatusCancelacion>Cancelado sin aceptación</estatusCancelacion>
					<codigoEstatusCancelacion>201</codigoEstatusCancelacion>
					<estatusCfdi>9</estatusCfdi>
		</servicioConsultaComprobante>
									
								

No todos los atributos están presentes en la respuesta, y esto dependerá del resultado de la operación y de las cancelaciones.

La descripción de los atributos se define a continuación:

Atributo Descripción
consultaOk Los valores posibles son “true” o “false” y determina si la invocación al webservice fue exitosa.
codigo Código de respuesta del servicio del SAT.
codigoEstatus Descripción del código de respuesta del servicio del SAT.
esCancelable Indica de qué manera se puede cancelar el comprobante.
estado Estatus actual del comprobante.
estatusCancelacion Indica de qué manera se canceló el comprobante. Sólo se devolverá cuando el comprobante se encuentre cancelado.
codigoEstatusCancelacion Código representativo a la leyenda del nodo estatusCancelacion. Únicamente cuando el nodo esCancelable = ‘No Cancelable’ se tomará el valor del codigo correspondiente a este nodo.
estatusCfdi Este código indica el estatus del CFDI ante el SAT. En la Tabla de Códigos para el nodo estatusCfdi en el método de consulta estatus de comprobantes, se encuentra la descripción de cada posible código.

Recuperar acuse de cancelación

El método acuseCancelacion permite recuperar el acuse de cancelación de un comprobante en formato base64, siempre y cuando la cancelación se llevó a cabo mediante nuestro servicio.

Parámetros marcados con * son obligatorios:

Parámetros

  • contrato *
    • Indica el código de contrato del usuario.
  • usuario *
    • Indica el usuario con el que se autenticará el servicio.
  • passwd *
    • Indica la contraseña del usuario con el que se autenticará al servicio.
  • uuid*
    • UUID del comprobante que se desea recuperar.

Ejemplo de petición:

+Request

									
		<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tim="timbrado.ws.pade.mx">
				<soapenv:Header/>
				<soapenv:Body>
					<tim:acuseCancelacion>
					
						<contrato>CONTRATO</contrato>
					
						<usuario>USUARIO</usuario>
					
						<passwd>CONTRASEÑA</passwd>
					
						<uuid>UUID</uuid>
					</tim:acuseCancelacion>
				</soapenv:Body>
		</soapenv:Envelope>
									
								

Ejemplo de respuesta:

+Response

									
		<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
				<S:Body>
				<ns2:acuseCancelacionResponse xmlns:ns2="timbrado.ws.pade.mx">
				<return><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
					<servicioConsulta>
					<contrato>CONTRATO</contrato>
					<consultaOk>true</consultaOk>
					<codigo>0</codigo>
					<xmlBase64>PD94bWwgdmVyc2lvbhbHVlPgogICAgICAgIDwvbnMyOktleUluZm8+CiAgICA8L25zMjpTaWduYXR1cmU+CjwvQWN1c2U+Cg==
					</xmlBase64>
					</servicioConsulta>]]></return>
				</ns2:acuseCancelacionResponse>
				</S:Body>
		</S:Envelope>
									
								

No todos los atributos están presentes en la respuesta, y esto dependerá del resultado de la operación y de las cancelaciones.

La descripción de los atributos se define a continuación:

Atributo Descripción
contrato Indica el código de contrato del usuario.
consultaOk Los valores posibles son “true” o “false” y determina si la invocación al webservice fue exitosa. Es importante observar que el valor de este atributo no refleja el valor de cada cancelación individual. Por ejemplo, podemos obtener “true” aquí pero error en cada cancelación individual. Obtendremos un valor de false en este atributo en caso de un error mayor, por ejemplo, que el contrato de servicios esté expirado, o el usuario tenga una contraseña incorrecta.
codigo Código global de la invocación. Un valor de 0 (cero) indica que la invocación se dio exitosamente, o de otra forma se indica la razón del problema.
xmlBase64 Es el XML codificado en base64 que se requiere recuperar, mismo que deberá estar previamente llenado con la estructura correcta.

Responder solicitud cancelación con opciones

El método responderSolicitudCancelacionConOpciones permite responder las peticiones de cancelación realizadas por otros contribuyentes.

Parámetros marcados con * son obligatorios:

Parámetros

  • contrato*
    • Clave del contrato de servicios.
  • usuario*
    • Indica el usuario con el que se autenticará el servicio.
  • passwd*
    • Contraseña del usuario del servicio.
  • rfcReceptor*
    • RFC del receptor de los CFDI’s a cancelar.
  • arregloUUID*
    • Arreglo de strings donde cada uno estará formado por el UUID y la respuesta a la petición (‘Aceptación’ o ‘Rechazo’) separados por el carácter pipe. Ejemplo:
      • UUID|Aceptacion
      • UUID|Rechazo
    • Este parámetro se puede repetir cuantas opciones desea especificar.

    En el caso de no tener el Certificado de sello digital (CSD) en la base de datos de Prodigia, deberá enviar los siguientes parámetros:

  • certBase64: Certificado con el cual fueron emitidos los CFDI’s a cancelar en formato Base64.
  • keyBase64: Llave privada con el cual fueron emitidos los CFDI’s a cancelar en formato Base64.
  • keyPass: Contraseña de la llave privada.
  • En caso de que se tenga el CSD en nuestra base de datos deberá enviar la siguiente opción:

    • opcion:CERT_DEFAULT Esta opción toma el CSD cargado en base de datos.

Ejemplo de petición:

+Request

									
		<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tim="timbrado.ws.pade.mx">
				<soapenv:Header/>
				<soapenv:Body>
					<tim:responderSolicitudCancelacionConOpciones>
						
							<contrato>CONTRATO</contrato>
						
							<usuario>USUARIO</usuario>
						
							<passwd>CONTRASEÑA</passwd>
						
							<rfcReceptor>RFCRECEPTOR</rfcReceptor>
							<!--Zero or more repetitions:-->
							<arregloUUID> ARREGLOUUID|Aceptacion </arregloUUID>
							<arregloUUID> ARREGLOUUID|Rechazo </arregloUUID>
						
							<cert></cert>
						
							<key></key>
						
							<keyPass></keyPass>
							<!--Zero or more repetitions:-->
							<opciones>XML_RESPONDER_SOLICITUD:PD94bWwgdmVyKdDJDVVNHektRUGlICdGswakJsTnZSaj
							NLYk9CbmZTeWNmTU9ja3NHVyZT4KPC9Tb2xpY2l0dWRBY2VwdGFjaW9uUmVjaGF6bz4=</opciones>
					</tim:responderSolicitudCancelacionConOpciones>
				</soapenv:Body>
		</soapenv:Envelope>
									
								

Ejemplo de respuesta:

+Response

									
		<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
				<S:Body>
					<ns2:responderSolicitudCancelacionConOpcionesResponse xmlns:ns2="timbrado.ws.pade.mx">
							lt;return><![CDATA[<?xml version="1.0" encoding="UTF-8"?><servicioAceptacionRechazo>
							<procesoOk>true</procesoOk>
							<rfcReceptor>RFCRECEPTOR</rfcReceptor>
							<rfcPac>RFCPAC</rfcPac>
							<codigo>0</codigo>
							<fecha>2022-10-21T16:50:54</fecha>
							<codigoEstatus>1000</codigoEstatus>
							<mensaje>Se recibió la respuesta de la petición de forma exitosa</mensaje>
							<Folios Respuesta="Aceptacion">
							<UUID>UUID</UUID>
							<EstatusUUID>1001</EstatusUUID>
							</Folios>
							</servicioAceptacionRechazo>]]></return>
					</ns2:responderSolicitudCancelacionConOpcionesResponse>
				</S:Body>
		</S:Envelope>
									
								

No todos los atributos están presentes en la respuesta, y esto dependerá del resultado de la operación y de las cancelaciones.

La descripción de los atributos se define a continuación:

procesoOk Los valores posibles son “true” o “false” y determina si la invocación al webservice fue exitosa. Es importante observar que el valor de este atributo no refleja el valor de cada cancelación individual. Por ejemplo, podemos obtener “true” aquí pero error en cada cancelación individual. Obtendremos un valor de false en este atributo en caso de un error mayor, por ejemplo, que el contrato de servicios esté expirado, o el usuario tenga una contraseña incorrecta.
codigo Código global de la invocación. Un valor de 0 (cero) indica que la invocación se dio exitosamente, o de otra forma se indica la razón del problema.
codigoEstatus Descripción del código obtenido en la respuesta.
rfcReceptor RFC del receptor de los UUIDs que se está respondiendo en la solicitud.
rfcPac RFC del PAC que realizó la cancelación.
fecha Fecha en la que se realizó la aceptación/rechazo de la petición.
mensaje Este valor es un texto informativo.
folios Nodo que contiene un UUID y su respectivo Estatus ante el SAT. Este nodo tiene como atributo “Respuesta” que indica la respuesta que se le dio al SAT. Este nodo aparecerá por cada UUID enviado en la solicitud.
  • uuid: UUID de la solicitud.
  • EstatusUUID: Estatus del UUID en el SAT.

Consulta de peticiones pendientes para aprobar/rechazar cancelaciones

El método consultarPeticionesPendientes permite consultar las peticiones pendientes de cancelación que un contribuyente tiene como Receptor de comprobantes.

Parámetros marcados con * son obligatorios:

Parámetros

  • contrato *
    • Indica el código de contrato del usuario.
  • usuario *
    • Indica el usuario con el que se autenticará el servicio.
  • passwd *
    • Indica la contraseña del usuario con el que se autenticará al servicio.
  • rfcReceptor *
    • RFC del Receptor de los CFDI que se desea consultar.
  • opciones (opcional)
    • arreglo de strings que indica al servicio las opciones que se utilizarán en la petición de cancelación

El servicio de consulta de peticiones pendientes regresa un archivo XML sin esquemas, estructurado de la siguiente manera:

Ejemplo de petición:

+Request

									
		<?xml version="1.0" encoding="utf-8"?>
		<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org
		/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
				<soap:Body>
					<consultarPeticionesPendientes xmlns="timbrado.ws.pade.mx">
							<contrato>CONTRATO</contrato>
							<usuario>USUARIO</usuario>
							<passwd>CONTRASEÑA</passwd>
							<rfcReceptor>RFCRECEPTOR</rfcReceptor>
					</consultarPeticionesPendientes>
				</soap:Body>
		</soap:Envelope>
									
								

Ejemplo de respuesta:

+Response

									
		<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
				<S:Body>
					<ns2:consultarPeticionesPendientesResponse xmlns:ns2="timbrado.ws.pade.mx">
							<return><![CDATA[<?xml version="1.0" encoding="UTF-8"?><servicioPeticionesPendientes>
							<consultaOk>true</consultaOk>
							<codigo>0</codigo>
							<codigoEstatus>1100</codigoEstatus>
							<mensaje>Se obtuvieron las peticiones del RFC Receptor de forma exitosa</mensaje>
							<uuids>
							<uuid>UUID</uuid>
							</uuids>
							</servicioPeticionesPendientes>]]></return>
					</ns2:consultarPeticionesPendientesResponse>
				</S:Body>
		</S:Envelope>
									
								

No todos los atributos están presentes en la respuesta, y esto dependerá del resultado de la operación y de las cancelaciones.

La descripción de los atributos se define a continuación:

Atributo Descripción
consultaOk Los valores posibles son “true” o “false” y determina si la invocación al webservice fue exitosa. Es importante observar que el valor de este atributo no refleja el valor de cada cancelación individual. Por ejemplo, podemos obtener “true” aquí pero error en cada cancelación individual. Obtendremos un valor de false en este atributo en caso de un error mayor, por ejemplo, que el contrato de servicios esté expirado, o el usuario tenga una contraseña incorrecta.
codigo Código global de la invocación. Un valor de 0 (cero) indica que la invocación se dio exitosamente, o de otra forma se indica la razón del problema.
codigoEstatus Descripción del código obtenido en la respuesta.
mensaje Este valor es un texto informativo.
Uuids Nodo que contiene la lista con los uuids del resultado de la consulta.
  • Uuid. UUID encontrado con petición pendiente.

Consulta CFDI relacionados

El método consultarCfdiRelacionados permite consultar los documentos relacionados que tenga un documento.

Parámetros marcados con * son obligatorios:

Parámetros

  • contrato *
    • Indica el código de contrato del usuario.
  • usuario *
    • Indica el usuario con el que se autenticará el servicio.
  • passwd *
    • Indica la contraseña del usuario con el que se autenticará al servicio.
  • UUID *
    • Folio Fiscal del comprobante que se quieren consultar sus documentos relacionados.

Solo se debe enviar un rfc, este debe de ser al que pertenece el csd.

  • rfcReceptor *
  • RFC del Receptor de los CFDI que se desea consultar.

  • rfcEmisor *
  • RFC del Emisor de los CFDI que se desea consultar

En el caso de no tener el Certificado de sello digital (CSD) en la base de datos de Prodigia, deberá enviar los siguientes parámetros


  • certBase64: Certificado con el cual fueron emitidos los CFDI’s a cancelar en formato Base64.
  • keyBase64: Llave privada con el cual fueron emitidos los CFDI’s a cancelar en formato Base64.
  • keyPass: Contraseña de la llave privada.

En caso de que se tenga el CSD en nuestra base de datos deberá enviar la siguiente opción:

  • opcion:CERT_DEFAULT Esta opción toma el CSD cargado en base de datos.

Los datos de acceso al servicio como lo son: CONTRATO, USUARIO y PASSWD, deben ser los proporcionados por el receptor, así mismo el certificado, key y keypas, ya que la petición que se origina irá firmada por el receptor.

El servicio de consulta de documentos relacionados regresa un archivo XML sin esquemas, estructurado de la siguiente manera:

Ejemplo de petición:

+Request

									
		<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tim="timbrado.ws.pade.mx">
				<soapenv:Header/>
				<soapenv:Body>
						<tim:consultarCfdiRelacionados>
							<contrato>CONTRATO</contrato>
							<usuario>USUARIO</usuario>
							<passwd><![CDATA[combu|rgAte5wwasf&ce]]></passwd>
							<rfcEmisor>RFCEMISOR</rfcEmisor>
							<rfcReceptor>RFCRECEPTOR</rfcReceptor>
							<uuid>UUID</uuid>
							<cert>CERTIFICADO</key>
							<keyPass>KEYPASS</keyPass>
						</tim:consultarCfdiRelacionados>
				</soapenv:Body>
		</soapenv:Envelope>
									
								

Ejemplo de respuesta:

+Response

									
		<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
				<S:Body>
					<ns2:consultarCfdiRelacionadosResponse xmlns:ns2="timbrado.ws.pade.mx">
					<return><![CDATA[<?xml version="1.0" encoding="UTF-8"?><servicioConsultaRelacionados>
						<consultaOk>true</consultaOk>
						<codigo>0</codigo>
						<UuidConsultado>UUIDCONSULTADO</UuidConsultado>
						<resultado>WS Consulta CFDI relacionados RfcEmisor: RFCEMISOR - folio físcal:
						47B83E09-FED9-45C1-8C7E-DB36ACE4F0CD - Clave: 2000 - Se encontraron CFDI relacionados</resultado>
						<UuidsRelacionadosPadre>
						<UuidPadre>
						<Uuid>UUID</Uuid>
						<RfcEmisor>RFCEMISOR</RfcEmisor>
						<RfcReceptor>RFCRECEPTOR</RfcReceptor>
						</UuidPadre>
						</UuidsRelacionadosPadre>
						</servicioConsultaRelacionados>]]></return>
					</ns2:consultarCfdiRelacionadosResponse>
				</S:Body>
		</S:Envelope>
									
								

No todos los atributos están presentes en la respuesta y esto dependerá del resultado de la operación y de las cancelaciones.

La descripción de los atributos se define a continuación:

Atributo Descripción
consultaOk Los valores posibles son “true” o “false” y determina si la invocación al webservice fue exitosa.
codigo Código de respuesta del servicio del SAT.
uuidConsultado UUID del que fue consultados sus documentos relacionados.
resultado resultado. Resultado de la consulta realizada. Es un mensaje armado por el servicio del SAT.
UuidsRelacionadosPadre Este nodo contiene la información de el (los) uuid (s) que el documento consultado tiene como padre.
UuidPadre Contiene la información de uno de los UUID padre.
  • UUID: Es el UUID Padre del documento.
  • rfcEmisor: Es el RFC del emisor del documento padre.
  • rfcReceptor: Es el RFC del receptor del documento padre.

Servicio REST

Conexión al servicio de timbrado CFDI (REST)

El servicio se encuentra disponible en una dirección URL pública, actualmente se encuentran disponible en la versión 4.0

Conexión al servicio de timbrado REST 4.0.
https://timbrado.pade.mx/servicio/rest/timbrado40/timbrarCfdi


NOTA: La URL descrita en esta conexión es al ambiente productivo, en caso de querer utilizar el ambiente de pruebas favor de ir a la sección de Ambientes.

Método de timbrarCfdi rest

Este método se utiliza para realizar el timbrado del XML, el método realiza la autenticación al servicio, valida la estructura del XML y devuelve la respuesta de la petición con el XML timbrado o en caso de que ocurra algún error, dentro de la respuesta se especifica el código y mensaje de error. Para conocer acerca de los códigos de error, favor de revisar la sección de códigos.

En caso de utilizar el ambiente productivo dicho XML se verá reflejado tanto en base de datos como ante el SAT.

Parámetros

  • El urlquery de la petición en REST deberá ser del tipo “POST” y contener al menos el parámetro “contrato” con el código de contrato del usuario como “Query Parameter”.
  • También pueden ser especificadas como “Query Parameters” las opciones de timbrado que se detallan en la sección “Opciones del Servicio” (de manera opcional).
  • Las credenciales (usuario y contraseña) deberán ir en el HEADERS de la petición mediante el atributo “Authorization Basic” con el formato usuario:password codificados en Base64.
  • El tipo de contenido (atributo Content-Type) para timbrado y timbradoPrueba será “application/json”.
  • El XML deberá enviarse en el “Body” de la petición.

EL contrato, usuario y contraseña se asigna una vez adquirido el servicio de timbrado, y se obtienen a través del registro de la plataforma Pade.

NOTA: Para conocer las guías de llenado de los diferentes tipos de comprobante puede consultar la información oficial que el SAT ofrece.

Ejemplo de petición:

Header



Dentro del body se deben especificar los siguientes parámetros

Parámetros marcados con * son obligatorios:

  • xmlBase64(comprobante a timbrar) *
    • Es el XML codificado en base64 que se requiere timbrar, mismo que deberá estar previamente llenado con la estructura correcta.
  • contrato *
    • Indica el código de contrato del usuario con el que se realizará el timbrado.
  • certBase64
    • String en formato Base64 del certificado.
  • keyBase64
    • String en formato Base64 de la llave privada.
  • keyPass
    • Contraseña de la llave privada.
  • prueba
    • Parámetro para realizar la petición en modo prueba, deberá especificarse como true o false.
  • opciones
    • Arreglo de cadenas, en caso de requerir alguna opción del servicio, ir a la sección de opciones del servicio de timbrado

+Body

									
			{
   				 "xmlBase64": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxjZmRpOkNvbXByb
   				  2JhbnRlIENlcnRpZmljYWRvPSJNSUlGdVRDQ0E2R2dBd0lCQWdJVU16QXdNREV3TURBd01EQTFNREF3TUR
   				  NME5ESXdEUVlKS29aSWh2Y05BUUVMQlFBd2dnRXJNUTh3RF…k8L25vbWluYTEyOk5vbWluYT4NCgkJDQoJ
   				  PC9jZmRpOkNvbXBsZW1lbnRvPg0KPC9jZmRpOkNvbXByb2JhbnRlPg==",
    				  "contrato": "CONTRATO",
  			     	 "prueba": "true",
    			 	 "opciones": [
       			 	 	"CALCULAR_SELLO"
   					]
				}'
			
		

Ejemplo de petición XML en formato JSON rest:

Header



Dentro del body se deben especificar los siguientes parámetros

Parámetros marcados con * son obligatorios:

  • cfdiJson(comprobante a timbrar) *
    • Estructura del XML en JSON.
  • contrato *
    • Indica el código de contrato del usuario con el que se realizará el timbrado.
  • certBase64
    • String en formato Base64 del certificado.
  • keyBase64
    • String en formato Base64 de la llave privada.
  • keyPass
    • Contraseña de la llave privada.
  • prueba
    • Parámetro para realizar la petición en modo prueba, deberá especificarse como true o false.
  • opciones
    • Arreglo de cadenas, en caso de requerir alguna opción del servicio, ir a la sección de opciones del servicio de timbrado.

+Body

									
{
    "cfdiJson":{
    "certificado": "MIIFuTCCA6GgAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0NDIwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBA…
     LdjKjfXEGBALoqUzAB6avN2zzEy6ERRCGfR3cVhVUTcpd/iQffeGvw7tRZZOiWgwG3Sjc/
     zgUppnFXfVFHCTmRz1nr0dOqKjOpMEMncRSfY2Mk+Xm8rmJ7toBu4iAyJUDCP6v24as1uxiE9DVDaFwlugdYL9c=",  
    "descuento": "5978.52",
    "exportacion": "01",
    "fecha": "2023-08-15T02:39:58",
    "folio": "1820605",
    "lugarExpedicion": "23000",
    "metodoPago": "PUE",
    "moneda": "MXN",
    "noCertificado": "30001000000500003442",
    "sello": "",
    "serie": "B",
    "subTotal": "8095.15",
    "tipoDeComprobante": "N",
    "total": "2116.63",
    "emisor": {
      "nombre": "NOMBRE DEL EMISOR",
      "regimenFiscal": "603",
      "rfc": "RFC DEL EMISOR"
    },
    "receptor": {
      "domicilioFiscalReceptor": "00000",
      "nombre": "nOMBRE DEL RECEPTOR",
      "regimenFiscalReceptor": "605",
      "rfc": "RFC RECEPTOR",
      "usoCFDI": "CN01"
    },
    "conceptos": [
      {
        "cantidad": "1",
        "claveProdServ": "84111505",
        "claveUnidad": "ACT",
        "descripcion": "Pago de nómina",
        "descuento": "5978.52",
        "importe": "8095.15",
        "objetoImp": "01",
        "valorUnitario": "8095.15"
      }
    ],
    "complementos": {
      "nomina": {
        "fechaFinalPago": "2022-02-15",
        "fechaInicialPago": "2022-02-01",
        "fechaPago": "2022-02-15",
        "numDiasPagados": "15",
        "tipoNomina": "O",
        "totalDeducciones": "5978.52",
        "totalOtrosPagos": "0",
        "totalPercepciones": "8095.15",
        "emisor": {
          "registroPatronal": "45200",
          "RfcPatronOrigen":"XIA190128J61"
        },
        "receptor": {
          "antigüedad": "P1454W",
          "banco": "012",
          "claveEntFed": "BCS",
          "curp": "CURP",
          "departamento": "POLICIA ESTATAL PREVENTIVA",
          "fechaInicioRelLaboral": "1994-04-01",
          "numEmpleado": "4185",
          "numSeguridadSocial": "80856671724",
          "periodicidadPago": "04",
          "riesgoPuesto": "1",
          "puesto": "POLICIA",
          "salarioBaseCotApor": "0",
          "salarioDiarioIntegrado": "0",
          "sindicalizado": “01”,
          "tipoContrato": "01",
          "tipoJornada": "01",
          "tipoRegimen": "02"
        },
        "percepciones": {
          "totalExento": "3904.05",
          "totalGravado": "4191.10",
          "totalSeparacionIndemnizacion": "691.10",
          "totalSueldos": "7404.05",
          "percepcion": [
            {
              "clave": "00007",
              "concepto": "QUINQUENIO",
              "importeExento": "0",
              "importeGravado": "691.10",
              "tipoPercepcion": "022"
            },
            {
              "clave": "00015",
              "concepto": "SUELDO COMPACTADO",
              "importeExento": "0",
              "importeGravado": "3500.00",
              "tipoPercepcion": "001"
            },
                   ],
          "separacionIndemnizacion": {
            "ingresoAcumulable": "0",
            "ingresoNoAcumulable": "0",
            "numAñosServicio": "25",
            "totalPagado": "691.10",
            "ultimoSueldoMensOrd": "7000.00"
          }
        },
        "deducciones": {
          "totalImpuestosRetenidos": "319.01",
          "totalOtrasDeducciones": "5659.51",
          "deduccion": [
            {
              "clave": "00051 ",
              "concepto": "IMPUESTO SOBRE PRODUCTO DEL TRABAJO",
              "importe": "319.01",
              "tipoDeduccion": "002"
            },
            {
              "clave": "00099",
              "concepto": "6125 DE ISSSTE",
              "importe": "256.70",
              "tipoDeduccion": "001"
            }
          ]
        },
        "otrosPagos": [
          {
            "clave": "00014",
            "concepto": "SUBSIDIO AL EMPLEO",
            "importe": "0",
            "tipoOtroPago": "002",
            "subsidioAlEmpleo": {
              "subsidioCausado": "00"
            }
          }
        ]
      }
    }
  },  
  "contrato": "9f686960-169e-11e2-ae20-109add4fad20", 
  "certBase64":"MIIFuTCCA6GgAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0NDIwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLj…/
  zgUppnFXfVFHCTmRz1nr0dOqKjOpMEMncRSfY2Mk+Xm8rmJ7toBu4iAyJUDCP6v24as1uxiE9DVDaFwlugdYL9c=","keyBase64" : "MIIFDjBAB
  gkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIAgEAAoIBAQACAggAMBQGCCqGSIb3DQMHBAgwggS9AgEAMASCBMh4EHl7aNSCa…A3rfs/+DLHeG7
  QO7wDrALl8OnQMMCGMYcpJy3tWDiRwocUrk7FF+6p94j23IUBTQiT9trhZJs72WLXN2moJiKrL3U0yds824amcK9GfO6Yd+/52tMNj41uuPAk9Ym6L
  RTnWgSF3+uoxUm+r4=",
  "keyPass" : "12345678a",
  "prueba" : "true",
  "opciones":[
      "CALCULAR_SELLO"
  ]
}'

	

Método enviar XML y PDF por correo rest

Se encarga de enviar el XML y el PDF de un comprobante timbrado a través de Prodigia, dicho método es solo para el envío de un par de archivos de un UUID, este UUID debe de estar guardado en base de datos.

  • URL para conexión 4.0:

    https://timbrado.pade.mx/servicio/rest/timbrado40/enviarXmlAndPdfPorCorreo

Parámetros

  • El urlquery de la petición en REST deberá ser del tipo “POST”.
  • También pueden ser especificadas como “Query Parameters” las opciones de timbrado que se detallan en la sección “Opciones del Servicio” (de manera opcional).
  • Las credenciales (usuario y contraseña) deberán ir en el HEAD de la petición mediante el atributo “Authorization Basic” con el formato usuario:password codificados en Base64.
  • El tipo de contenido (atributo Content-Type) para enviarXmlAndPdfPorCorreo “application/json”.
  • El parámetro xml deberá enviarse en el “Body” de la petición.

EL contrato, usuario y contraseña se asigna una vez adquirido el servicio de timbrado, y se obtienen a través del registro de la plataforma Pade.

Ejemplo de petición mediante Advanced REST Client:

Header



Dentro del body se deben especificar los siguientes parámetros

Parámetros marcados con * son obligatorios:

  • contrato *
    • Indica el código de contrato del usuario con el que se realizará la petición.
  • uuid *
    • indica el código identificador único del comprobante.
  • destinatarios *
    • El parámetro destinatarios permite hasta la captura de 3 correos electrónicos separados por el carácter coma ",".

Ejemplo de respuesta:

Response

Recuperar CFDI por UUID

El método cfdporUuid permite recuperar el XML en formato base64 de un CFDI.

Se encuentra disponible en la siguiente URL:

https://timbrado.pade.mx/servicio/rest/consulta/cfdPorUUID

Parámetros

  • El urlquery de la petición en REST deberá ser del tipo “GET”.
  • También pueden ser especificadas como “Query Parameters” las opciones de timbrado que se detallan en la sección “Opciones del Servicio” (de manera opcional).
  • Las credenciales (usuario y contraseña) deberán ir en el HEAD de la petición mediante el atributo “Authorization Basic” con el formato usuario:password codificados en Base64.

EL contrato, usuario y contraseña se asigna una vez adquirido el servicio de timbrado, y se obtienen a través del registro de la plataforma Pade.

Dentro de params se deben especificar los siguientes parámetros

Parámetros marcados con * son obligatorios:

  • contrato *
    • Indica el código de contrato del usuario con el que se realizará la petición.
  • uuid *
    • indica el código identificador único del comprobante.

Ejemplo de petición mediante Advanced REST Client:

Header

Parámetros

Ejemplo de respuesta mediante Advanced REST Client:

+Response

									
		<?xml version="1.0" encoding="UTF-8"?>
		<servicioConsulta>
  		  <contrato>9f686960-169e-11e2-ae20-109add4fad20</contrato>
  		  <consultaOk>true</consultaOk>
   		  <codigo>0</codigo>
  		  <xmlBase64>PD94bWwgdmVyc2lvbmYi5teC9UaW1icmVGaXNjYWxEaWd…pdGFsIikNvbXBsZW1lbnRvPjwvY2ZkaTpDb21wcm9iYW50ZT4=</xmlBase64>
		</servicioConsulta>

			
		

La descripción de los atributos se describe a continuación:

Atributo Descripción
contrato Clave del contrato de servicio.
consultaOk Los valores posibles son “true” o “false” y determina si la invocación al webservice fue exitosa.
codigo Código global de la invocación. Un valor de 0 (cero) indica que la invocación se dio exitosamente, o de otra forma se indica la razón del problema.
xmlBase64 String en formato base64 del XML correspondiente al uuid consultado.

Método de cancelación REST

Método de Cancelación de CFDI rest

Este método crea la solicitud de cancelación de uno o varios CFDI. Debido a los cambios hechos por el SAT, será necesario que el receptor responda la solicitud de cancelación (en algunos casos), por lo que te recomendamos utilizar el método consultarEstatusComprobante(descrito más abajo) después de crear la solicitud de cancelación para confirmar el estatus del comprobante.

https://timbrado.pade.mx/servicio/rest/cancelacion/cancelar

Parámetros

  • El urlquery de la petición en REST deberá ser del tipo “POST”.
  • También pueden ser especificadas como “Query Parameters” las opciones de timbrado que se detallan en la sección “Opciones del Servicio” (de manera opcional).
  • Las credenciales (usuario y contraseña) deberán ir en el HEAD de la petición mediante el atributo “Authorization Basic” con el formato usuario:password codificados en Base64.
  • El tipo de contenido (atributo Content-Type) para cancelar “application/xml".

EL contrato, usuario y contraseña se asigna una vez adquirido el servicio de timbrado, y se obtienen a través del registro de la plataforma Pade.

Dentro del params se deben especificar los siguientes parámetros

Parámetros marcados con * son obligatorios:

  • contrato *
    • Indica el código de contrato del usuario con el que se realizará la petición.
  • rfcEmisor *
    • indica el código identificador único del comprobante.
  • arregloUUID*
    • Arreglo de Strings con el UUID del Comprobante que se está cancelando. se requiere el motivo de cancelación y opcionalmente el folio fiscal que sustituye el UUID que se está cancelando.

    Esta información separada por el carácter pipe (|):

    • UUID para cancelar.
    • Motivo de cancelación (más adelante se explican los valores que pueden contenerse).
    • Folio fiscal que sustituye el documento a cancelar (opcional).

    Ejemplo: <arregloUUID>UUID|Motivo|FolioFiscalSustituye</arregloUUID>

    En el caso de no tener el Certificado de sello digital (CSD) en la base de datos de Prodigia, deberá enviar los siguientes parámetros:

    En caso de que se tenga el CSD en nuestra base de datos deberá enviar la siguiente opción:

  • opciones (opcional)
    • En caso de requerir alguna opción del servicio, ir a la sección de opciones del servicio de cancelación.

En el caso de no tener el Certificado de sello digital (CSD) en la base de datos de Prodigia, deberá enviar los siguientes parámetros

  • certBase64: Certificado con el cual fueron emitidos los CFDI’s a cancelar en formato Base64.
  • keyBase64: Llave privada con el cual fueron emitidos los CFDI’s a cancelar en formato Base64.
  • keyPass: Contraseña de la llave privada.

En caso de que se tenga el CSD en nuestra base de datos deberá enviar la siguiente opción:

  • Opcion: CERT_DEFAULT Esta opción toma el CSD cargado en base de datos.

  • Ejemplo de petición mediante Advanced REST Client:

    Header
    Parámetros

    Ejemplo de respuesta:

    +Response

    									
    		<?xml version="1.0" encoding="UTF-8"?>
    		<servicioCancel>
       			 <statusOk>true</statusOk>
        			 <codigo>0</codigo>
    		  	 <procesados>1</procesados>
    		     	 <cancelados>0</cancelados>
    		     	 <cancelaciones>
            			<cancelacion>
                			 <uuid>UUID</uuid>
                			 <codigo>202</codigo>
                			 <mensaje>Folio Fiscal Previamente Cancelado</mensaje>
            		 </cancelacion>
       			 </cancelaciones>
       			 <acuseCancelBase64>PD94bWwgdm…N0YW5kYWxvbmU9InllcyI/Pgo8QWNCg==</acuseCancelBase64>
    		</servicioCancel>
    
    			
    		

    No todos los atributos están presentes en la respuesta, y esto dependerá del resultado de la operación y de las cancelaciones.

    La descripción de los atributos se define a continuación:

    Atributo Descripción
    statusOk Los valores posibles son “true” o “false” y determina si la invocación al webservice fue exitosa. Es importante observar que el valor de este atributo no refleja el valor de cada cancelación individual. Por ejemplo, podemos obtener “true” aquí pero error en cada cancelación individual. Obtendremos un valor de false en este atributo en caso de un error mayor, por ejemplo, que el contrato de servicios esté expirado, o el usuario tenga una contraseña incorrecta.
    codigo Código global de la invocación. Un valor de 0 (cero) indica que la invocación se dio exitosamente, o de otra forma se indica la razón del problema.
    mensaje Mensaje descriptivo del error en caso de que el valor de código sea diferente de cero.
    cancelaciones Nodo que contiene la lista con los resultados de las operaciones individuales sobre cada UUID.
    • cancelacion: Nodo que contiene el resultado de una cancelación individual.
    • uuid: UUID que fue procesado.
    • código: Código generado por el SAT con el resultado de la cancelación. La lista de códigos individuales se muestra al final del documento en la tabla 2 “Códigos de respuesta para los diferentes servicios”.
    • mensaje: Mensaje opcional adicional con la descripción del problema (en caso de haberlo).
    acuseCancelBase64 Acuse de cancelación proporcionado por el SAT, codificado en base 64.

    Método consulta estatus del comprobante rest

    El método consultarEstatusComprobante permite consultar el estatus de un comprobante ante el SAT.

    Enlace de consulta estatus del comprobante rest

    https://timbrado.pade.mx/servicio/rest/cancelacion/consultarEstatusComprobante

    Parámetros

    • El urlquery de la petición en REST deberá ser del tipo “POST”.
    • También pueden ser especificadas como “Query Parameters” las opciones de timbrado que se detallan en la sección “Opciones del Servicio” (de manera opcional).
    • Las credenciales (usuario y contraseña) deberán ir en el HEAD de la petición mediante el atributo “Authorization Basic” con el formato usuario:password codificados en Base64.
    • El tipo de contenido (atributo Content-Type) para cancelar “application/xml".

    EL contrato, usuario y contraseña se asigna una vez adquirido el servicio de timbrado, y se obtienen a través del registro de la plataforma Pade.

    Dentro del params se deben especificar los siguientes parámetros

    Parámetros marcados con * son obligatorios:

    • contrato *
      • Indica el código de contrato del usuario con el que se realizará la petición.
    • uuid *
      • Folio Fiscal del comprobante que se quiere consultar su estatus.
    • rfcEmisor *
      • RFC del Emisor del CFDI.
    • rfcReceptor *
      • RFC del receptor del CFDI.
    • total *
      • Total del comprobante que se quiere consultar.
    • opciones
      • Arreglo de strings que indica al servicio las opciones que se utilizarán en la petición de consulta.
      • Algunas de las opciones son MODO_PRUEBA:1, MODO_PRUEBA:2 y MODO_PRUEBA:3

    El servicio de consulta estatus de comprobante regresa un archivo XML sin esquemas, estructurado de la siguiente manera:

    Ejemplo de petición:
    Ejemplo de petición mediante Advanced REST Client:
    Header
    Parámetros

    Ejemplo de respuesta:

    +Response

    									
    <?xml version="1.0" encoding="UTF-8"?>
    <servicioConsultaComprobante>
        <consultaOk>true</consultaOk>
        <codigo>91</codigo>
        <codigoEstatus>S - Comprobante obtenido satisfactoriamente.</codigoEstatus>
        <esCancelable>Cancelable sin aceptación</esCancelable>
        <estado>Cancelado</estado>
        <estatusCancelacion>Cancelado sin aceptación</estatusCancelacion>
        <codigoEstatusCancelacion>201</codigoEstatusCancelacion>
        <estatusCfdi>9</estatusCfdi>
    <servicioConsultaComprobante>
    			
    		

    No todos los atributos están presentes en la respuesta y esto dependerá del resultado de la operación y de las cancelaciones.

    La descripción de los atributos se define a continuación:

    Atributo Descripción
    consultaOk Los valores posibles son “true” o “false” y determina si la invocación al webservice fue exitosa.
    codigo Código de respuesta del servicio del SAT.
    codigoEstatus Descripción del código de respuesta del servicio del SAT.
    esCancelable Indica de qué manera se puede cancelar el comprobante.
    estado Estatus actual del comprobante.
    estatusCancelacion Indica de qué manera se canceló el comprobante. Sólo se devolverá cuando el comprobante se encuentre cancelado.
    codigoEstatusCancelacion Código representativo a la leyenda del nodo estatusCancelacion. Únicamente cuando el nodo esCancelable = ‘No Cancelable’ se tomará el valor del codigo correspondiente a este nodo.
    estatusCfdi Este código indica el estatus del CFDI ante el SAT. En la Tabla 4 se encuentra la descripción de cada posible código.

    Recuperar acuse de cancelación rest

    El método acuseCancelacion permite recuperar el acuse de cancelación de un comprobante en formato base64.

    Enlace para recuperar acuse de cancelación rest

    https://timbrado.pade.mx/servicio/rest/consulta/acuseCancelacion

    Parámetros

    • El urlquery de la petición en REST deberá ser del tipo “GET”.
    • También pueden ser especificadas como “Query Parameters” las opciones de timbrado que se detallan en la sección “Opciones del Servicio” (de manera opcional).
    • Las credenciales (usuario y contraseña) deberán ir en el HEAD de la petición mediante el atributo “Authorization Basic” con el formato usuario:password codificados en Base64.

    EL contrato, usuario y contraseña se asigna una vez adquirido el servicio de timbrado, y se obtienen a través del registro de la plataforma Pade.

    Dentro del params se deben especificar los siguientes parámetros

    Parámetros marcados con * son obligatorios:

    • contrato *
      • Indica el código de contrato del usuario con el que se realizará la petición.
    • uuid *
      • UUID del comprobante que se desea recuperar.

    Ejemplo de petición mediante Advanced REST Client:

    Header

    Parámetros

    Ejemplo de respuesta:

    +Response

    									
    		<?xml version="1.0" encoding="UTF-8"?>
    		<servicioConsulta>
    		    <contrato>9f686960-169e-11e2-ae20-109add4fad20</contrato>
    		    <consultaOk>true</consultaOk>
    		    <codigo>0</codigo>
    		    <xmlBase64>PD94bWiAgICA8L25zMjp…TaWduYXR1cmU+CjwvQWN1c2U+Cg==</xmlBase64>
    		</servicioConsulta>
    
    	
    

    No todos los atributos están presentes en la respuesta y esto dependerá del resultado de la operación y de las cancelaciones.

    La descripción de los atributos se define a continuación:

    Atributo Descripción
    contrato Indica el código de contrato del usuario.
    consultaOk Los valores posibles son “true” o “false” y determina si la invocación al webservice fue exitosa. Es importante observar que el valor de este atributo no refleja el valor de cada cancelación individual. Por ejemplo, podemos obtener “true” aquí pero error en cada cancelación individual. Obtendremos un valor de false en este atributo en caso de un error mayor, por ejemplo, que el contrato de servicios esté expirado, o el usuario tenga una contraseña incorrecta.
    codigo Código global de la invocación. Un valor de 0 (cero) indica que la invocación se dio exitosamente, o de otra forma se indica la razón del problema.
    xmlBase64 Es el XML codificado en base64 que se requiere recuperar, mismo que deberá estar previamente llenado con la estructura correcta.

    Responder solicitud cancelación rest

    El método responderSolicitudCancelacion permite responder las peticiones de cancelación realizadas por otros contribuyentes.

    Enlace para responder solicitud de cancelación rest

    https://timbrado.pade.mx/servicio/rest/cancelacion/responderSolicitudCancelacion

    Parámetros

    • El urlquery de la petición en REST deberá ser del tipo “POST”.
    • También pueden ser especificadas como “Query Parameters” las opciones de timbrado que se detallan en la sección “Opciones del Servicio” (de manera opcional).
    • Las credenciales (usuario y contraseña) deberán ir en el HEAD de la petición mediante el atributo “Authorization Basic” con el formato usuario:password codificados en Base64.

    EL contrato, usuario y contraseña se asigna una vez adquirido el servicio de timbrado, y se obtienen a través del registro de la plataforma Pade.

    Dentro del params se deben especificar los siguientes parámetros

    Parámetros marcados con * son obligatorios:

    • contrato *
      • Indica el código de contrato del usuario con el que se realizará la petición.
    • rfcReceptor *
      • RFC del receptor de los CFDI’s a cancelar.
    • arregloUUID *
      • Arreglo de strings donde cada uno estará formado por el UUID y la respuesta a la petición (‘Aceptación’ o ‘Rechazo’) separados por el carácter pipe. Ejemplo:
        • UUID|Aceptacion
        • UUID|Rechazo
    • opciones (opcional)
      • En caso de requerir alguna opción del servicio, ir a la sección de opciones del servicio de cancelación.

      En el caso de no tener el Certificado de sello digital (CSD) en la base de datos de Prodigia, deberá enviar los siguientes parámetros

      • cert: Certificado con el cual fueron emitidos los CFDI’s a cancelar.
      • key: Llave privada con el cual fueron emitidos los CFDI’s a cancelar.
      • keyPass: Contraseña de la llave privada.

      En caso de que se tenga el CSD en nuestra base de datos deberá enviar la siguiente opción:

    • opcion:CERT_DEFAULT Esta opción toma el CSD cargado en base de datos.
    Ejemplo de petición:
    Request

    Header

    Parámetros
    Ejemplo de respuesta:

    +Response

    									
    		<?xml version="1.0" encoding="UTF-8"?>
    		<servicioAceptacionRechazo>
    		    <procesoOk>true</procesoOk>
    		    <rfcReceptor>RFC_RECEPTOR</rfcReceptor>
    		    <rfcPac>RFC_PAC</rfcPac>
    		    <codigo>0</codigo>
    		    <fecha>2022-08-12T18:33:11</fecha>
    		    <codigoEstatus>1000</codigoEstatus>
    		    <mensaje>Se recibió la respuesta de la petición de forma exitosa</mensaje>
    		    <Folios Respuesta="Aceptacion">
    	        	<UUID>UUID</UUID>
    	       		<EstatusUUID>1001</EstatusUUID>
        		    </Folios>
        		    <Folios Respuesta="Aceptacion">
           				<UUID>UUID</UUID>
            			<EstatusUUID>1001</EstatusUUID>
        		    </Folios>
        		    <Folios Respuesta="Rechazo">
            			<UUID>UUID</UUID>
            			<EstatusUUID>1001</EstatusUUID>
        	            </Folios>
    		</servicioAceptacionRechazo>
    	
    

    No todos los atributos están presentes en la respuesta, y esto dependerá del resultado de la operación y de las cancelaciones.

    La descripción de los atributos se define a continuación:

    procesoOk Los valores posibles son “true” o “false” y determina si la invocación al webservice fue exitosa. Es importante observar que el valor de este atributo no refleja el valor de cada cancelación individual. Por ejemplo, podemos obtener “true” aquí pero error en cada cancelación individual. Obtendremos un valor de false en este atributo en caso de un error mayor, por ejemplo, que el contrato de servicios esté expirado, o el usuario tenga una contraseña incorrecta.
    codigo Código global de la invocación. Un valor de 0 (cero) indica que la invocación se dio exitosamente, o de otra forma se indica la razón del problema.
    codigoEstatus Descripción del código obtenido en la respuesta.
    rfcReceptor RFC del receptor de los UUIDs que se está respondiendo en la solicitud.
    rfcPac RFC del PAC que realizó la cancelación.
    fecha Fecha en la que se realizó la aceptación/rechazo de la petición.
    mensaje Este valor es un texto informativo.
    folios Nodo que contiene un UUID y su respectivo Estatus ante el SAT. Este nodo tiene como atributo “Respuesta” que indica la respuesta que se le dio al SAT. Este nodo aparecerá por cada UUID enviado en la solicitud.
    • uuid: UUID de la solicitud.
    • EstatusUUID: Estatus del UUID en el SAT.

    Consulta de peticiones pendientes para aprobar/rechazar cancelaciones rest

    El método consultarPeticionesPendientes permite consultar las peticiones pendientes de cancelación que un contribuyente tiene como Receptor de comprobantes.

    Enlace para consulta de peticiones pendientes:

    https://timbrado.pade.mx/servicio/rest/cancelacion/consultarPeticionesPendientes

    Parámetros

    • El urlquery de la petición en REST deberá ser del tipo “POST”.
    • También pueden ser especificadas como “Query Parameters” las opciones de timbrado que se detallan en la sección “Opciones del Servicio” (de manera opcional).
    • Las credenciales (usuario y contraseña) deberán ir en el HEAD de la petición mediante el atributo “Authorization Basic” con el formato usuario:password codificados en Base64.
    • El tipo de contenido (atributo Content-Type) para cancelar “application/xml.

    EL contrato, usuario y contraseña se asigna una vez adquirido el servicio de timbrado, y se obtienen a través del registro de la plataforma Pade.

    Dentro del params se deben especificar los siguientes parámetros

    Parámetros marcados con * son obligatorios:

    • contrato *
      • Indica el código de contrato del usuario con el que se realizará la petición.
    • rfcReceptor *
      • indica el rfc Receptor.

    Ejemplo de petición mediante Advanced REST Client:

    Header
    Parámetros

    Ejemplo de respuesta:

    +Response

    									
    		<?xml version="1.0" encoding="UTF-8"?>
    		<servicioPeticionesPendientes>
       			<consultaOk>true</consultaOk>
        			<codigo>0</codigo>
        		  	<codigoEstatus>1101</codigoEstatus>
        			<mensaje>No existen peticiones para el RFC Receptor</mensaje>
    		</servicioPeticionesPendientes>
    	
    

    No todos los atributos están presentes en la respuesta, y esto dependerá del resultado de la operación y de las cancelaciones.

    La descripción de los atributos se define a continuación:

    Atributo Descripción
    consultaOk Los valores posibles son “true” o “false” y determina si la invocación al webservice fue exitosa. Es importante observar que el valor de este atributo no refleja el valor de cada cancelación individual. Por ejemplo, podemos obtener “true” aquí pero error en cada cancelación individual. Obtendremos un valor de false en este atributo en caso de un error mayor, por ejemplo, que el contrato de servicios esté expirado, o el usuario tenga una contraseña incorrecta.
    codigo Código global de la invocación. Un valor de 0 (cero) indica que la invocación se dio exitosamente, o de otra forma se indica la razón del problema.
    codigoEstatus Descripción del código obtenido en la respuesta.
    mensaje Este valor es un texto informativo.

    Consulta CFDI relacionados rest

    El método consultarCfdiRelacionados permite consultar los documentos relacionados que tenga un documento.

    Enlace de consulta CFDI relacionados rest:

    https://timbrado.pade.mx/servicio/rest/cancelacion/consultarCfdiRelacionados

    Parámetros

    • El urlquery de la petición en REST deberá ser del tipo “GET”.
    • También pueden ser especificadas como “Query Parameters” las opciones de timbrado que se detallan en la sección “Opciones del Servicio” (de manera opcional).
    • Las credenciales (usuario y contraseña) deberán ir en el HEAD de la petición mediante el atributo “Authorization Basic” con el formato usuario:password codificados en Base64.
    • El tipo de contenido (atributo Content-Type) para cancelar “application/xml.

    EL contrato, usuario y contraseña se asigna una vez adquirido el servicio de timbrado y se obtienen a través del registro de la plataforma Pade.

    Dentro del params se deben especificar los siguientes parámetros

    Parámetros marcados con * son obligatorios:

    • contrato *
      • Indica el código de contrato del usuario con el que se realizará la petición.
    • uuid *
      • Folio Fiscal del comprobante que se quieren consultar sus documentos relacionados.
    • rfcEmisor *
      • RFC del Emisor de los CFDI que se desea consultar.
    • rfcReceptor *
      • RFC del Receptor de los CFDI que se desea consultar.

    En el caso de no tener el Certificado de sello digital (CSD) en la base de datos de Prodigia, deberá enviar los siguientes parámetros

    • certBase64: Certificado con el cual fueron emitidos los CFDI’s a cancelar en formato Base64.
    • keyBase64: Llave privada con el cual fueron emitidos los CFDI’s a cancelar en formato Base64.
    • keyPass: Contraseña de la llave privada.

    En caso de que se tenga el CSD en nuestra base de datos deberá enviar la siguiente opción:

  • opcion: CERT_DEFAULT Esta opción toma el CSD cargado en base de datos.
  • En el caso de no tener el Certificado de sello digital (CSD) en la base de datos de Prodigia, deberá enviar los siguientes parámetros

    • certBase64: Certificado con el cual fueron emitidos los CFDI’s a cancelar en formato Base64.
    • keyBase64: Llave privada con el cual fueron emitidos los CFDI’s a cancelar en formato Base64.
    • keyPass: Contraseña de la llave privada.

    En caso de que se tenga el CSD en nuestra base de datos deberá enviar la siguiente opción:

    • opcion:CERT_DEFAULT Esta opción toma el CSD cargado en base de datos.
    Ejemplo de petición mediante Advanced REST Client:

    Header

    Parámetros

    Ejemplo de respuesta:

    +Response

    									
    	<?xml version="1.0" encoding="UTF-8"?>
    	<servicioConsultaRelacionados>
       		<consultaOk>true</consultaOk>
       		<codigo>0</codigo>
            	<UuidConsultado>UUDI</UuidConsultado>
            	<resultado>WS Consulta CFDI relacionados RfcEmisor: RFC_EMISOR- folio físcal: UUID - Clave: 2001 - No existen CFDI 
            	relacionados</resultado>
    	</servicioConsultaRelacionados>
    	
    

    No todos los atributos están presentes en la respuesta, y esto dependerá del resultado de la operación y de las cancelaciones.

    La descripción de los atributos se define a continuación:

    Atributo Descripción
    consultaOk Los valores posibles son “true” o “false”, y determina si la invocación al webservice fue exitosa.
    codigo Código de respuesta del servicio del SAT.
    uuidConsultado UUID del que fue consultados sus documentos relacionados.
    resultado resultado. Resultado de la consulta realizada. Es un mensaje armado por el servicio del SAT.

    Opciones del Servicio

    Opciones del Servicio de Timbrado

    Las opciones permiten ejecutar acciones adicionales al timbrado que pudieran ayudar en la operación del integrador.

    Le indica al servicio que antes de generar el timbre fiscal digital se debe calcular el sello del CFDI. Para que el servicio pueda calcular el sello del CFDI el cliente deberá contar con su certificado de sello digital guardados en la plataforma de Pade. Esta opción tiene las siguientes implicaciones:
    * Puede ser que esta opción no esté disponible para su contrato, dependerá de los servicios que haya solicitado (puede consultarlo con el personal de ventas) y en su caso se generará un mensaje de error.
    * El atributo “sello” del archivo XML que se envía debe venir vacío. Dentro de esta opción existe la opción de calcular sello con CSD en específico Al enviar el atributo NoCertificado con un valor distinto al default y vigente, calcula el sello con este valor, en caso contrario regresa el mensaje “Su certificado predeterminado ha caducado, puede actualizarlo desde el portal Pade” , de igual forma si se envía un certificado no existente en Pade se obtiene el mensaje “No se cuenta con un certificado de sello digital previamente guardado con numero 0000…”

    Le indica al servicio que devuelva el valor de las transacciones disponibles después del timbrado efectuado.

    Esta opción permite enviar por correo electrónico los archivos PDF y XML del comprobante que se timbra.

    • Si la transacción fue exitosa, envía el XML y el PDF timbrados a la dirección de email especificada en la opción. Para realizar el envío a 1 hasta 20 direcciones, cada dato debe de estar separado por un "," (coma).
    • El formato para utilizar la opción es el siguiente: ENVIAR_AMBOS:correo@dominio.com

    Esta opción le indica al servicio el texto XML con la addenda en base 64 que deberá ser anexada al CFDI después del procedimiento de timbrado en texto plano. El formato para especificar la addenda libre es: ADDENDA:LIBRE:texto_addenda En donde la cadena “texto_addenda” corresponde al String XML codificado en base 64 que será anexado al CFDI. Esta opción tiene las siguientes implicaciones:

    • La validez del contenido y la estructura de la addenda es responsabilidad del usuario de timbrado.
    • El texto especificado dentro de la opción ADDENDA:LIBRE: será anexado en el XML timbrado en texto plano dentro del nodo.

    Esta opción permite agregar texto al campo Observaciones del PDF del comprobante; no tiene ninguna afectación sobre el XML. Para ello se envía la opción OBSERVACIONES: , seguido de las observaciones en formato base 64.

  • Ejemplo: OBSERVACIONES:RmFjdHVyYSBwYWdhZGEu
  • Esta opción permite obtener la cadena original del timbre fiscal del comprobante.

  • La cadena original se regresa dentro de los nodos de cadenaOriginalTFD.
  • Permite generar el QR del CFDI. El servicio regresa un String codificado en Base 64 que contiene el arreglo de bytes del archivo png que incluye el QR del XML timbrado.

    Esta opción permite obtener el PDF del comprobante timbrado. El servicio regresa un String codificado en Base 64 que contiene el arreglo de bytes del PDF del documento XML timbrado. La estructura de la petición se enviaría de la siguiente manera:

    GENERAR_PDF

    Si cuenta con un PDF personalizado la estructura de la petición cambia de la siguiente manera:

    GENERAR_PDF:ALIAS,ALIASLOGO

    • ALIAS: es el indicador/nombre que se le asigna al PDF personalizado por cliente.
    • ALIASLOGO: es el identificador/nombre que se le asigna al LOGOTIPO personalizado por cliente.

    En caso de no requerir que se muestre el logotipo en el PDF se cuenta con la siguiente opción de alias llamado "SinLogo", el cual es necesario enviarlo dentro del parámetro "ALIASLOGO":

    GENERAR_PDF:ALIAS,SinLogo

    Si desea modificar el color de su formato, se cuenta con un listado de colores. Podemos utilizar el formato que desee del listado a continuación:

    COLOR_PDF:pink

    COLOR_PDF:#FB029D

    COLOR_PDF:251,2,157

    Le indica al servicio que si el XML que se envía contiene los mismos atributos SERIE y FOLIO de un comprobante ya timbrado por la misma razón social, el servicio regresa la información del comprobante previamente timbrado (con Código 307). Esta validación trabaja con los últimos 3 meses de comprobantes timbrados.

    Le indica al servicio de timbrado que devuelva la respuesta del servicio en formato Json en lugar de XML.

    Le indica al servicio el número de certificado en el CSV, esta opción toma el certificado en base64 anteriormente guardado y lo incluye en el request.

    Opción que se utiliza en timbrado por CSV (a través de la api integración).

    Coloca el certificado y el NoCertificado que tiene guardado como default en base de datos, en caso de que el request lleve alguno de los datos, estos los reemplaza por el que se encuentra como default en base de datos.

    Le indica al servicio que revise si los namespaces se encuentran correctamente colocados en el elemento cfdi:Comprobante en caso de que estos namespaces se encuentren en otro lugar se encarga de colocarlos correctamente en el elemento cfdi:Comprobante.

    Agrega el valor del atributo TimbreFiscalDigital.RfcProvCertif a la respuesta del servicio de timbrado. Esta opción funciona tanto para Soap y Rest.

    Aplica para Aprobar/Rechazar Cancelación: Esta opción permite recibir el XML con la solicitud de aceptación o rechazo ya firmado, y sin modificarlo, realizar la solicitud en el SAT de los UUID’s contenidos en el XML. Es útil cuando el cliente quiere omitir el envío del certificado, llave privada y contraseña a través de este servicio o evitar el guardarlo en la plataforma de facturación. El formato para especificar el XML de solicitud es: XML_RESPONDER_SOLICITUD:xml_base64, en donde la cadena “xml_base64” corresponde al XML de respuesta codificado en base 64. Esta opción tiene las siguientes implicaciones:

  • Sólo se puede enviar 1 XML de solicitud por petición.
  • El parámetro rfcReceptor aún deben enviarse.
  • Opciones del servicio de Cancelación

    Las opciones permiten ejecutar acciones adicionales a la cancelación que pudieran ayudar en la operación del integrador.

    Se utiliza en la cancelación, y le indica a la plataforma que obtenga el certificado por default del usuario para realizar las cancelaciones. La presencia de esta opción causa que sean ignorados la llave publica, llave privada y password de la llave privada proporcionados como argumentos del método.

    Se utiliza en la cancelación y sirve para especificar el certificado de sello digital del emisor y su llave privada empaquetados en un archivo con formato PKCS12.El formato para especificar el archivo PKCS12 es: PKCS12:archivo_base64 En donde la cadena “archivo_base64” corresponde al archivo codificado en base 64. Esta opción tiene las siguientes implicaciones:

    • Se ignora el valor de los parámetros cert y pkey que contienen el CSD y la llave privada (individuales), respectivamente.
    • Se debe especificar el parámetro keyPass. Esta contraseña es la que se emplea para leer el archivo PKCS12 y debe corresponder a la contraseña de la llave privada del emisor.
    • El CSD y la llave privada deben estar alojados en el archivo con un alias, que corresponde al RFC del emisor en letras mayúsculas.

    Esta opción permite recibir el XML de cancelación y sin modificarlo, realizar la cancelación en el SAT de los UUID’s contenidos en el XML. Es útil cuando el cliente quiere omitir el envío del certificado, llave privada y contraseña a través de este servicio o evitar el guardarlo en la plataforma de facturación. El formato para especificar el XML de cancelación es: XML_CANCELACION:xml_base64 En donde la cadena “xml_base64” corresponde al XML de cancelación codificado en base 64. Esta opción tiene las siguientes implicaciones:

    • Se debe omitir el envío de los parámetros cert, pkey, keyPass y la opción CERT_DEFAULT.
    • Sólo se puede enviar 1 XML de cancelación por petición.
    • Los parámetros rfc y uuid aún deben enviarse.

    Esta opción permite simular una respuesta de prueba en el servicio de cancelación dependiendo de la opción enviada. Los modos de prueba reconocidos por el servicio son los siguientes:

    • MODO_PRUEBA:1 – Simula la respuesta para un comprobante No Cancelable, con código 94.
    • MODO_PRUEBA:2 – Simula la respuesta para un comprobante que está En proceso, en espera de respuesta por parte del receptor, con código 96.
    • MODO_PRUEBA:3 – Simula la respuesta para un comprobante que se canceló sin aceptación por parte del receptor, con codigo 201.
    • MODO_PRUEBA:4 – Simula la respuesta para un comprobante previamente cancelado, con código 202.
    • MODO_PRUEBA:5 – Simula la respuesta para un comprobante donde el RFC no corresponde con el enviado al servicio, con codigo 203.
    • MODO_PRUEBA:6 – Simula la respuesta para un comprobante donde el uuid especificado no existe, con código 205.

    Ejemplos de respuesta con la opción MODO_PRUEBA en cancelación

    En los métodos relacionados con la cancelación existe una opción que simula una respuesta del servicio para apoyar a los programadores con las pruebas e integración. Dependiendo del método y el escenario será la respuesta que se obtenga del servicio.

    Para hacer uso de la opción debe enviarse en la petición la opción: “MODO_PRUEBA:X” donde X se refiere al escenario que se quiere simular en el método.

    Ejemplo de las respuestas de prueba en el servicio de cancelación.

    
    	<servicioCancel>
    	<statusOk>true</statusOk>
    	<rfc>RFC</rfc>
    	<codigo>0</codigo>
    	<mensaje>Mensaje genérico de manera general</mensaje>
    	<procesados>1</procesados>
    	<cancelados>0</cancelados>
    	<cancelaciones>
    	<cancelacion>
    	<uuid>UUID</uuid>
    	<codigo>94</codigo>
    	<mensaje>No Cancelable</mensaje>
    	</cancelacion>
    	</cancelaciones>
    	<acuseCancelBase64/>
    	</servicioCancel>
    											
    										
    											
    	<servicioCancel>
    	<statusOk>true</statusOk>
    	<rfc>RFC</rfc>
    	<codigo>0</codigo>
    	<mensaje>Mensaje genérico de manera general</mensaje>
    	<procesados>1</procesados>
    	<cancelados>1</cancelados>
    	<cancelaciones>
    	<cancelacion>
    	<uuid>UUID</uuid>
    	<codigo>96</codigo>
    	<mensaje>En proceso</mensaje>
    	</cancelacion>
    	</cancelaciones>
    	<acuseCancelBase64/>
    	</servicioCancel>
    											
    										
    											
    	<servicioCancel>
    	<statusOk>true</statusOk>
    	<rfc>RFC</rfc>
    	<codigo>0</codigo>
    	<mensaje>Mensaje genérico de manera general</mensaje>
    	<procesados>1</procesados>
    	<cancelados>1</cancelados>
    	<cancelaciones>
     	<cancelacion>
    	<uuid>UUID</uuid>
    	<codigo>201</codigo>
    	<mensaje>Cancelado sin aceptación</mensaje>
    	</cancelacion>
    	</cancelaciones>
    	<acuseCancelBase64/>
    	</servicioCancel>
    											
    										
    											
    	<servicioCancel>
    	<statusOk>true</statusOk>
    	<rfc>RFC</rfc>
    	<codigo>0</codigo>
    	<mensaje>Mensaje genérico de manera general</mensaje>
    	<procesados>1</procesados>
    	<cancelados>0</cancelados>
    	<cancelaciones>
    	<cancelacion>
    	<uuid>UUID</uuid>
    	<codigo>202</codigo>
    	<mensaje>Previamente cancelado</mensaje>
    	</cancelacion>
    	</cancelaciones>
    	<acuseCancelBase64/>
    	</servicioCancel>
    											
    										
    											
    	<servicioCancel>
    	<statusOk>true</statusOk>
    	<rfc>RFC</rfc>
    	<codigo>0</codigo>
    	<mensaje>Mensaje genérico de manera general</mensaje>
    	<procesados>1</procesados>
    	<cancelados>0</cancelados>
    	<cancelaciones>
    	<cancelacion>
    	<uuid>UUID</uuid>
    	<codigo>203</codigo>
    	<mensaje>Rfc no corresponde</mensaje>
    	</cancelacion>
    	</cancelaciones>
    	<acuseCancelBase64/>
    	</servicioCancel>
    											
    										
    											
    	<servicioCancel>
    	<statusOk>true</statusOk>
    	<rfc>RFC</rfc>
    	<codigo>0</codigo>
    	<mensaje>Mensaje genérico de manera general</mensaje>
    	<procesados>1</procesados>
    	<cancelados>0</cancelados>
    	<cancelaciones>
    	<cancelacion>
    	<uuid>UUID</uuid>
    	<codigo>205</codigo>
    	<mensaje>Uuid no existe</mensaje>
    	</cancelacion>
    	</cancelaciones>
    	<acuseCancelBase64/>
    	</servicioCancel>
    											
    										

    Códigos

    Sección con los códigos de respuesta y error para los diferentes servicios (Timbrado y Cancelación).

    Códigos de respuesta de TIMBRADO

    Código Descripción
    0 Timbrado exitoso.
    1 El usuario del webservice no existe o proporcionó una contraseña incorrecta.
    2 Contrato inválido. El contrato está expirado, o no cuenta con servicio de timbrado.
    3 Parámetro inválido. Uno de los parámetros de la operación del webservice es incorrecto o hace falta.
    4 Ocurrió un error interno durante la operación. Por favor inténtelo mas tarde.
    5 Off-line por mantenimiento.
    20 El usuario no cuenta con un certificado default.
    301 XML mal formado.
    302 Sello mal formado.
    303 Sello no corresponde.
    304 Certificado revocado o caduco.
    305 Certificado Inválido.
    307 El comprobante ya existe en la base de datos.
    309 Certificado Inválido.
    401 Fecha y hora de generación fuera de rango.
    402 El contribuyente no se encuentra en la LCO o la validez de obligaciones se reporta como negativa.

    Códigos de respuesta de CANCELACIÓN

    Código Descripción
    1 El usuario del webservice no existe o proporcionó una contraseña incorrecta.
    2 Contrato inválido. El contrato está expirado, o no cuenta con servicio de timbrado.
    3 Parámetro inválido. Uno de los parámetros de la operación del webservice es incorrecto o hace falta.
    4 Ocurrió un error interno durante la operación. Por favor inténtelo mas tarde.
    5 Off-line por mantenimiento.
    7 El servicio de CancelaciónSAT no está disponible, intente más tarde.
    20 El usuario no cuenta con un certificado default.
    21 CFDI sin cancelar. Aplica a la consulta de acuse de cancelación.
    201 Solicitud de cancelación recibida.
    202 El comprobante ya ha sido previamente cancelado.
    203 El RFC del emisor no corresponde.
    204 Folio Fiscal No Aplicable a Cancelación.
    205 Folio Fiscal No Existente.
    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 invalido.
    209 Folio Sustitución no requerido.
    210 La fecha de solicitud de cancelación es mayor a la fecha de declaración.
    211 La fecha de solicitud de cancelación limite para factura global.
    212 Relación no válida o inexistente.
    300 Usuario No Valido.
    310 Motivo no válido.
    311 Folio sustitución no válido.
    312 Folio sustitución no requerido.
    313 Solicitud fuera de la declaración anual.
    314 Relación no válida.

    Códigos para los estatus de cancelación.

    Código Descripción
    201 Solicitud de cancelación recibida.
    202 El comprobante ya ha sido previamente cancelado.
    203 El RFC del emisor no corresponde.
    204 Folio Fiscal No Aplicable a Cancelación
    205 Folio Fiscal No Existente
    206 UUID no corresponde a un CFDI del Sector Primario
    207 No se especificó el motivo de cancelación o el motivo no es valido
    208 Folio Sustitución invalido
    209 Folio Sustitución no requerido
    210 La fecha de solicitud de cancelación es mayor a la fecha de declaración
    211 La fecha de solicitud de cancelación límite para factura global
    212 Relación no valida o inexistente
    300 Usuario No Válido
    301 XML Mal Formado: Este código de error se regresa cuando el request posee información invalida, ejemplo: un RFC de receptor no válido
    302 Sello Mal Formado
    304 Certificado Revocado o Caduco: El certificado puede ser inválido por múltiples razones como son el tipo, la vigencia, etc.
    305 Certificado Inválido: El certificado puede ser inválido por múltiples razones como son el tipo, la vigencia, etc.
    309 Certificado Inválido: El certificado puede ser inválido por múltiples razones como son el tipo, la vigencia, etc.
    310 CSD Inválido

    Códigos para el nodo estatusCfdi en el método de consulta estatus de comprobantes.

    Código Descripción
    0 Desconocido: Se obtiene cuando la respuesta del SAT no pudo ser interpretada de acuerdo a un estatus válido del CFDI
    1 CFDi no existe: Se obtiene cuando la respuesta del SAT indica que el comprobante no pudo ser encontrado.
    2 Vigente: Se obtiene cuando la respuesta del SAT indica que el comprobante se encuentra Vigente y no se puede especificar si se requiere aceptación o no para cancelarlo.
    3 Vigente con aceptación: Se obtiene cuando la respuesta del SAT indica que el comprobante se encuentra Vigente y se requiere aceptación para cancelarlo.
    4 Vigente sin aceptación: Se obtiene cuando la respuesta del SAT indica que el comprobante se encuentra Vigente y no se requiere aceptación para cancelarlo.
    5 Vigente no cancelable: Se obtiene cuando la respuesta del SAT indica que el comprobante se encuentra Vigente y no es posible cancelarlo.
    6 Cancelado: Se obtiene cuando la respuesta del SAT indica que el comprobante se encuentra Cancelado y no se puede especificar el medio como fue cancelado(con/sin aceptación o por plazo vencido).
    7 Cancelación en proceso: Se obtiene cuando la respuesta del SAT indica que el comprobante se encuentra Vigente y está en espera de la respuesta del receptor para su cancelación.
    8 Cancelado con aceptación: Se obtiene cuando la respuesta del SAT indica que el comprobante se encuentra Cancelado y se requirió aceptación del receptor para cancelarlo.
    9 Cancelado sin aceptación: Se obtiene cuando la respuesta del SAT indica que el comprobante se encuentra Cancelado y no se requirió aceptación del receptor para cancelarlo.
    10 Cancelado por plazo vencido: Se obtiene cuando la respuesta del SAT indica que el comprobante se encuentra Cancelado y no hubo una respuesta del receptor en las 72 horas hábiles posteriores a la solicitud de cancelación.
    99 Indeterminado: Se obtiene cuando hay un error en la interpretación de la respuesta del SAT o cuando no hay una respuesta(que el servicio no se encuentre disponible).

    Catálogo de motivos de Cancelació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 la factura global.

    En caso de tener dudas y preguntas con relación al tema de cancelación, favor de consultar la siguiente url

    Preguntas frecuentes cancelación

    Herramientas

    Generar valor para atributo Confirmación

    ¿Qué es el atributo Confirmación?

    Es un atributo nuevo condicional que se utiliza para expresar la clave de confirmación expedida por el PAC en situaciones donde el CFDI supera ciertos límites establecidos en el Anexo 20 publicado por el SAT.

    ¿Cuándo lo necesito?

    Actualmente existen dos situaciones en las que es necesario incluir este atributo en el CFDI:

    • Atributo TipoCambio.- cuando el valor está fuera del porcentaje aplicable a la moneda tomado del catálogo c_Moneda. El emisor debe obtener del PAC que vaya a timbrar el CFDI, de manera no automática, una clave de confirmación para ratificar que el valor es correcto e integrar dicha clave en el atributo Confirmación.
    • Atributo Total.- cuando el valor es superior al límite que establezca el SAT en la Resolución Miscelánea Fiscal vigente, el emisor debe obtener del PAC que vaya a timbrar el CFDI, de manera no automática, una clave de confirmación para ratificar que el valor es correcto e integrar dicha clave en el atributo Confirmación.

    ¿Cómo genero este valor con Prodigia?

    Antes de realizar el timbrado del CFDI, se debe ingresar a la plataforma Pade Confirmación con el certificado, llave privada y contraseña del emisor para verificar la identidad. Una vez que se especifiquen los datos anteriores, se validará la información y en caso de ser válida, se mostrará en pantalla la clave de confirmación asignada. La dirección URL para la plataforma Pade Confirmación es la siguiente: https://facturacion.pade.mx/PadeConfirmacion/

    Portal Firmado de Manifiesto

    Dentro de nuestro servicio se encuentra este portal para que el contribuyente final firme la carta manifiesto. Es necesario utilizar la FIEL además de proporcionar algunos datos. La URL del portal es:

    https://facturacion.pade.mx/manifiesto

    Puede hacernos llegar cualquier duda o aclaración de su funcionamiento al correo: soporte@prodigia.com.mx

    Historial de cambios

    Revisión Fecha Comentarios
    1 2017-06-10 Versión inicial de la documentación.
    2 2017-11-06 Se ordena la información y se agregan los métodos de cancelación y consulta en REST y SOAP.
    3 2020-04-12 Se agregan los métodos de acuse de cancelación, cancelar cfdi, consulta de Cfdi por UUID,
    Cfd por uuid, consultar cfdi relacionados, consultar peticiones pendientes, responder solicitud cancelación.
    4 2020-06-23 Se agregó la opción generar código de barras bidimensional (GENERAR_CBB).
    5 2020-08-05 Se actualiza información en los métodos de timbrado vía REST y se agrega url para timbrado en base 64.
    6 2020-12-16 Se agrega información de los métodos de timbradoConCSD(SOAP) y timbrarConCSD(REST).
    7 2021-03-29 Se agrega información del Portal Firmado Carta Manifiesto.
    8 2021-06-29 Se agrega la opción de RESPUESTA_JSON.
    9 2021-10-08 Se agrega la opción de ESTABLECER_CERTIFICADO.
    10 2021-11-12 Se agrega la opción de VALIDAR_NAMESPACES.
    11 2021-12-23 Se agrega cambio en cancelación y catálogo de Motivos de Cancelación.
    12 2022-01-03 Se agrega conexión al servicio de timbrado CFDI 4.0.
    13 2022-01-04 Se agrega opción ESTABLECER_NO_CERTIFICADO.
    14 2022-03-01 Se agrega el metodo de enviarXmlAndPdfPorCorreo.
    15 2022-05-12 Se agrega el la opción REGRESAR_RFCPROVCERTIF.