Introducción Última Actualización: 2025-02-26

La API de Integración para Retenciones es un servicio ofrecido al cliente que requiere emitir comprobantes fiscales digitales de retenciones directamente desde sus sistemas de producción y operación. El servicio se ofrece mediante la invocación de métodos remotos de un Web Service.

Ambientes

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

Ambiente de producción: este ambiente se utiliza para realizar el proceso de validación de sus CFDI's, así como también los diferentes métodos y opciones del servicio de recepció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 retenciones (SOAP)

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

Conexión al servicio de timbrado retenciones SOAP
https://timbrado.pade.mx/PadeApp/TimbradoRet2.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 timbrado de CFDI Retenciones

Este método se utiliza para realizar el timbrado del XML para retenciones, 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.

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.
  • xml (comprobante a timbrar)*
    • Es el XML que se requiere timbrar de retenciones, mismo que deberá estar previamente llenado con la estructura correcta.
  • 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.
  • 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.

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 timbradoRet

Ejemplo de petición para timbrar un XML de retenciones. 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="timbradoRet.ws.pade.mx">
   <soapenv:Header/>
   <soapenv:Body>
    <tim:timbradoRet>
         
      <contrato>CONTRATO</contrato>
         
      <usuario>USUARIO</usuario>
         
      <password>CONTRASEÑA</password>
         
      <xml><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
	<retenciones:Retenciones Certificado="MIIFuTCCg4xNbvwd66CUuTjyK2q11Y6nTzod1I1Nhv75cfZbJzdW/4EO/1bGLEt3zpTnP0yDVh9KL4/WJ0QW5kR4QVpxd84
	aBkJe7FltC5j+FUiDSCCLpS...lkKYUzLPkdfppjiizbP1fqDcoIfZxl4RPKKtr0eIJWhEnuVirZ0kevHXEspI+iEMncRSfY2Mk+Xm8rmJ7toBu4iAyJUDCP6v24as1uxiE9D
	VDaFwlugdYL9c="CveRetenc="25" DescRetenc="Pagos realizados a favor de residentes en el extranjero."FechaExp="2024-11-20T14:12:11" 
	FolioInt="2ea" LugarExpRetenc="03810" NoCertificado="NO CERTIFICADO" Sello="b1Od9YyKKSJPzikcDMcemWLZh2pwpvUgEzEV/TvqQIpXt9sMmy4khaV8G
	dlxOQMCsuKRm76ei+u...g7+HTh983CMZ17YcgsJjyZlv09OnIc4MaL7Mji1tYAR8E+zB4mhizctBjj1xk27msCzcKIyBZnoQvAb4Gi91SBJkigK+ynYroBvmCnao8qQsFfY/
	kw==" Version="2.0"xmlns:pagosaextranjeros="http:
	//www.sat.gob.mx/esquemas/retencionpago/1/pagosaextranjeros" xmlns:retenciones="http://www.sat.gob.mx/esquemas/retencionpago/2" xmlns:
	xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/esquemas/retencionpago/2 http://www.sat.gob.
	mx/esquemas/retencionpago/2/retencionpagov2.xsd http://www.sat.gob.mx/esquemas/retencionpago/1/pagosaextranjeros http://www.sat.gob.mx
	/esquemas/retencionpago/1/pagosaextranjeros/pagosaextranjeros.xsd">
	  <retenciones:CfdiRetenRelacionados TipoRelacion="01" UUID="A39DA66B-52CA-49E3-879B-5C05185B0EF7"/>
	
	  <retenciones:Emisor NomDenRazSocE="NOMBRE EMISOR" RegimenFiscalE="620" RfcE="RFC EMISOR"/>
	  <retenciones:Receptor NacionalidadR="Nacional">
		<retenciones:Nacional RfcR="RFC RECEPTOR" DomicilioFiscalR="85890" NomDenRazSocR="NOMBRE RECEPTOR"/>
	  </retenciones:Receptor>
	  <retenciones:Periodo Ejercicio="2023" MesFin="10" MesIni="10"/>
	  <retenciones:Totales MontoTotExent="0.00" MontoTotGrav="508532.02" MontoTotOperacion="508532.02" MontoTotRet="50852.91">
		<retenciones:ImpRetenidos BaseRet="508532.02" ImpuestoRet="001" MontoRet="50852.91" TipoPagoRet="03"/>
	  </retenciones:Totales>
	  <retenciones:Complemento>
		<pagosaextranjeros:Pagosaextranjeros EsBenefEfectDelCobro="NO" Version="1.0" >
	    	<pagosaextranjeros:NoBeneficiario ConceptoPago="2" DescripcionConcepto="SERVICIOS DE CONSULTORIA DEINGENIERIA. ISR RETENCION 10
	    	PORCIENTO FUND. ART. 1 COLOMBIA. RECIBS 67, 68, 69, 70, 71, 72, 73, 74, 75, 76 (457,679.11 USD TC 20.0502)" 
	    	PaisDeResidParaEfecFisc="CO"/>
			</pagosaextranjeros:Pagosaextranjeros>
	  </retenciones:Complemento>
     </retenciones:Retenciones>
]]></xml>
         <!--Zero or more repetitions:-->
         <opciones>CALCULAR_SELLO</opciones>
         <modoPrueba>true</modoPrueba>
      </tim:timbradoRet>
   </soapenv:Body>
</soapenv:Envelope>

				
			

Ejemplo de respuesta

+Response

									
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:timbradoRetResponse xmlns:ns2="timbradoRet.ws.pade.mx">
         <return><![CDATA[<?xml version="1.0" encoding="UTF-8"?><servicioTimbrado>
		<id>1162f744-b8dc-4dc2-982c-8a4d932acabb</id>
		<timbradoOk>true</timbradoOk>
		<contrato>CONTRATO</contrato>
		<codigo>0</codigo>
		<mensaje>*** generado en modo de pruebas ***</mensaje>
		<version>1.1</version>
		<UUID>UUID</UUID>
		<FechaTimbrado>2024-12-10T17:48:14</FechaTimbrado>
		<selloCFD>EhKXUp50Ckyv...580p7A7EoW68jodiNYsssvAg==</selloCFD>
		<noCertificadoSAT>CERTIFICADO SAT</noCertificadoSAT>
		<selloSAT>M42lcr8FyKxfLMZDPRIdWLhtB8APUJT9yWSM4gVeZNGswlod/cbrB5rOTnY5Q/EyAXn2FkD5DHmySMiGV+QeFyq...7tnz/
		aF99SvNo8bF8bJyIJxZtckubikQ==</selloSAT>
		<xmlBase64>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cmV0ZW5jaW9uZXM6UmV0ZW5jaW9uZXMgeG1sbnM6cm
		V0ZW5jaW9uZXM9Imh0dHA6Ly93d3cuc2F0LmdvYi5teC9lc3F1ZW1hcy9yZXRlbmNpb25wYWdvLzIiIHhtbG5zOnBhZ29zYWV4dHJhbmplcm9zP
		SJodHRwOi8vd3d3LnNhdC5nb2IubXgvZXNxdWVtYXMvcmV0ZW5jaW9...hbERpZ2l0YWwgaHR0cDovL3d3dy5zYXQuZ29iLm14L1RpbWJyZUZpc
		2NhbERpZ2l0YWwvVGltYnJlRmlzY2FsRGlnaXRhbHYxMS54c2QiLz48L3JldGVuY2lvbmVzOkNvbXBsZW1lbnRvPjwvcmV0ZW5jaW9uZXM6UmV0
		ZW5jaW9uZXM+</xmlBase64>
		</servicioTimbrado>]]></return>
      </ns2:timbradoRetResponse>
   </S:Body>
</S:Envelope>
		
			

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

La descripción de los mismos 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 niguna 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.sa.

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.

Métodos para cancelación de CFDI retenciones

Este método crea la solicitud de cancelación de XML timbrado de retenciones.

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.
  • rfcEmisor *
    • RFC del emisor de los CFDI’s a cancelar.
  • arregloUUID *
    • Arreglo de Strings con los UUID de los CFDI que se desea cancelar. Se debe enviar el siguiente arreglo: uuid o folio fiscal|motivo cancelacion|folio sustitución o uuid.
  • Cert
    • Arreglo de bytes con el archivo del certificado de sello digital con que fueron generados los CFDI que se cancelarán. Se debe enviar el archivo binario tal como se obtuvo del SAT (formato DER).
  • key
    • Arreglo de bytes Llave privada correspondiente al certificado.
  • keyPass
    • Contraseña de la llave privada.
  • 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.

Ejemplo de petición de cancelarRet

Ejemplo de petición para cancelar un XML de retenciones. Se puede observar los parámetros necesarios para el servicio.

+Request

									
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tim="timbradoRet.ws.pade.mx">
   <soapenv:Header/>
   <soapenv:Body>
      <tim:cancelarRet>
         <contrato>CONTRATO</contrato>

         <usuario>USUARIO</usuario>

         <passwd>CONTRASEÑA</passwd>
         
         <rfcEmisor>RFC</rfcEmisor>
         
         <arregloUUID><![CDATA[UUID|MOTIVO|UUID_SUSTITUCION]]></arregloUUID>
         <!--Optional:-->
         <cert></cert>
         <!--Optional:-->
         <key></key>
         <!--Optional:-->
         <keyPass></keyPass>
         <!--Zero or more repetitions:-->
         <opciones>CERT_DEFAULT</opciones>
      </tim:cancelarRet>
   </soapenv:Body>
</soapenv:Envelope>
									
								

Ejemplo de respuesta

+Response

									
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:cancelarRetResponse xmlns:ns2="timbradoRet.ws.pade.mx">
         <return><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
			<servicioCancel>
			<statusOk>true</statusOk>
			<rfc>RFC</rfc>
			<codigo>0</codigo>
			<procesados>1</procesados>
			<cancelados>0</cancelados>
			<cancelaciones>
			<cancelacion>
			<uuid>UUID</uuid>
			<codigo>1202</codigo>
			<mensaje>UUID Previamente cancelado</mensaje>
			</cancelacion>
			</cancelaciones>
			<acuseCancelBase64>PD94bWwgdmVyc2lvbj0iwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIEZlY2hhPSIyMDI0LTEyLTEwVDEzOjQwOjIzLjk0NjQxNyIgUm
			ZjRW1pc29yPSJBVUFHODQwODA2TFM5IiBX...Nb2R1bHVzPjxFeHBvbmVudD5BUUFCPC9FeHBvbmVudD48L1JTQUtleVZhbHVlP
			jwvS2V5VmFsdWU+PC9LZXlJbmZvPjwvU2lnbmF0dXJlPjwvQWN1c2U+</acuseCancelBase64>
		</servicioCancel>]]></return>
      </ns2:cancelarRetResponse>
   </S:Body>
</S:Envelope>
									
								

Para los ejemplos de petición y respuesta del método cancelarRet solo se diferencía mediante el nodo < cancelarRetResponse>.
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 Mensaje descriptivo del error en caso 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.
codigo 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 “Códigos de Resultado de Cancelación”.
mensaje Mensaje opcional adicional con la descripción del problema (en caso de haberlo).

Método de consulta del acuse de cancelación de un cfdi

El método acuseCancelacionRet 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

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.
  • uuid *
    • UUID del comprobante que se desea recuperar.

Ejemplo de petición de acuseCancelacionRet

Ejemplo de petición para cancelar un XML de retenciones. Se puede observar los parámetros necesarios para el servicio.

+Request

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

Ejemplo de respuesta

+Response

									
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:acuseCancelacionRetResponse xmlns:ns2="timbradoRet.ws.pade.mx">
         <return><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
			<servicioConsulta>
			<contrato>CONTRATO</contrato>
			<consultaOk>true</consultaOk>
			<codigo>0</codigo>
			<xmlBase64>PD94bWwgdmVyc2lvbj0iMS4wIj8+PEFjdXNlIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWovL3d3dy5...
			NkxTOSIgV29ya1Byb2Nlc3NJZD0iZTgyZWQ0OTYtY2IwZC00YjAwLTllZWYtZmQzMTcwYTQ5YzU5IiB4bWxucz0iaHR0cDovL3d3dy5zYXQuZ2FzL3JldGVuY2NlPg==
			</xmlBase64>
</servicioConsulta>]]></return>
      </ns2:acuseCancelacionRetResponse>
   </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.

Método de consulta del de xml por UUID

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

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.
  • uuid *
    • UUID del comprobante que se desea recuperar.

Ejemplo de petición de cfdiRetPorUUID

Ejemplo de petición para cancelar un XML de retenciones. Se puede observar los parámetros necesarios para el servicio.

+Request

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

Ejemplo de respuesta

+Response

									
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:cfdiRetPorUUIDResponse xmlns:ns2="timbradoRet.ws.pade.mx">
         <return><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
		<servicioConsulta>
		<contrato>CONTRATO</contrato>
		<consultaOk>true</consultaOk>
		<codigo>0</codigo>
		<xmlBase64>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cmV0ZW5jaW9uZXM6UmV0ZW5jaW9uZcmVGaXNjYWxEaWdpdGFsL1RpbWJyZUZpc2NhbE
		RpZ2l0YWx2MTEueHNkIiB4bWxuczp0ZmQ...9Imh0dHA6Ly93d3cuc2F0LmdvYi5teC9UaW1icmVGaXNjYWxEaWdpdGFsIi8+PC9yZXRlbmNpb25lczpDb21wbGVtZW50bz48L3J
		ldGVuY2lvbmVzOlJldGVuY2lvbmVzPg==</xmlBase64>
		</servicioConsulta>]]></return>
      </ns2:cfdiRetPorUUIDResponse>
   </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.

Servicio REST

Método de Timbrado CFDI retencionesRest

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

Conexión al servicio de timbradoRet REST 2.0.
https://timbrado.pade.mx/servicio/rest/retenciones/timbradoRet


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.

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 será “application/xml”.
  • 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 de timbradoRet

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.
  • prueba
    • Parámetro para realizar la petición en modo prueba, deberá especificarse como true o false, en caso de no poner el parámetro se tomará como 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


Headers



Body



Ejemplo de respuesta:

+Response

									
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:timbradoRetResponse xmlns:ns2="timbradoRet.ws.pade.mx">
         <return><![CDATA[<?xml version="1.0" encoding="UTF-8"?><servicioTimbrado>
			<id>1162f744-b8dc-4dc2-982c-8a4d932acabb</id>
			<timbradoOk>true</timbradoOk>
			<contrato>CONTRATO</contrato>
			<codigo>0</codigo>
			<mensaje>*** generado en modo de pruebas ***</mensaje>
			<version>1.1</version>
			<UUID>UUID</UUID>
			<FechaTimbrado>2024-12-10T17:48:14</FechaTimbrado>
			<selloCFD>EhKXUp50Ckyv...580p7A7EoW68jodiNYsssvAg==</selloCFD>
			<noCertificadoSAT>CERTIFICADO SAT</noCertificadoSAT>
			<selloSAT>M42lcr8FyKxfLMZDPRIdWLhtB8APUJT9yWSM4gVeZNGswlod/cbrB5rOTnY5Q/EyAXn2FkD5DHmySMiGV+QeFyq...
			7tnz/aF99SvNo8bF8bJyIJxZtckubikQ==</selloSAT>
			<xmlBase64>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cmV0ZW5jaW9uZXM6UmV0ZW5jaW9uZXMgeG1sb
			nM6cmV0ZW5jaW9uZXM9Imh0dHA6Ly93d3cuc2F0LmdvYi5teC9lc3F1ZW1hcy9yZXRlbmNpb25wYWdvLzIiIHhtbG5zOnBhZ29zYWV4
			dHJhbmplcm9zPSJodHRwOi8vd3d3LnNhdC5nb2IubXgvZXNxdWVtYXMvcmV0ZW5jaW9...hbERpZ2l0YWwgaHR0cDovL3d3dy5zYXQu
			Z29iLm14L1RpbWJyZUZpc2NhbERpZ2l0YWwvVGltYnJlRmlzY2FsRGlnaXRhbHYxMS54c2QiLz48L3JldGVuY2lvbmVzOkNvbXBsZW1
			lbnRvPjwvcmV0ZW5jaW9uZXM6UmV0ZW5jaW9uZXM+</xmlBase64>
			</servicioTimbrado>]]></return>
      </ns2:timbradoRetResponse>
   </S:Body>
</S:Envelope>


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

La descripción de los mismos 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 niguna 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.sa.

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.

Métodos para cancelación de CFDI retenciones

Este método crea la solicitud de cancelación de uno o varios CFDI.

https://timbrado.pade.mx/servicio/rest/retenciones/cancelarRet

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.
  • rfcEmisor *
    • Indica el código identificador único del comprobante.
  • arregloUUID *
    • Arreglo de Strings con el UUID, 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 (|):

  • opciones
    • 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 de cancelarRet:

Params



Headers



Ejemplo de respuesta

+Response

									
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:cancelarRetResponse xmlns:ns2="timbradoRet.ws.pade.mx">
         <return><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
			<servicioCancel>
			<statusOk>true</statusOk>
			<rfc>RFC</rfc>
			<codigo>0</codigo>
			<procesados>1</procesados>
			<cancelados>0</cancelados>
			<cancelaciones>
			<cancelacion>
			<uuid>UUID</uuid>
			<codigo>1202</codigo>
			<mensaje>UUID Previamente cancelado</mensaje>
			</cancelacion>
			</cancelaciones>
			<acuseCancelBase64>PD94bWwgdmVyc2lvbj0iwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIEZlY2hhPSIyMDI0LTEyLTEwVDEzOjQwOjIzLjk0NjQxNyIgUm
			ZjRW1pc29yPSJBVUFHODQwODA2TFM5IiBX...Nb2R1bHVzPjxFeHBvbmVudD5BUUFCPC9FeHBvbmVudD48L1JTQUtleVZhbHVlP
			jwvS2V5VmFsdWU+PC9LZXlJbmZvPjwvU2lnbmF0dXJlPjwvQWN1c2U+</acuseCancelBase64>
		</servicioCancel>]]></return>
      </ns2:cancelarRetResponse>
   </S:Body>
</S:Envelope>
									
								

Para los ejemplos de petición y respuesta del método cancelarRet solo se diferencía mediante el nodo < cancelarRetResponse>.
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 Mensaje descriptivo del error en caso 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.
codigo 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 “Códigos de Resultado de Cancelación”.
mensaje Mensaje opcional adicional con la descripción del problema (en caso de haberlo).

Método de consulta del acuse de cancelación de un cfdi

El método acuseCancelacionRet 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.

Enlace para recuperar acuse de cancelación rest

https://timbrado.pade.mx/servicio/rest/retencion/acuseCancelacionRet

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 de acuseCancelacionRet

Header



Params



Ejemplo de respuesta

+Response

									
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:acuseCancelacionRetResponse xmlns:ns2="timbradoRet.ws.pade.mx">
         <return><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
			<servicioConsulta>
			<contrato>CONTRATO</contrato>
			<consultaOk>true</consultaOk>
			<codigo>0</codigo>
			<xmlBase64>PD94bWwgdmVyc2lvbj0iMS4wIj8+PEFjdXNlIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWovL3d3dy5...
			NkxTOSIgV29ya1Byb2Nlc3NJZD0iZTgyZWQ0OTYtY2IwZC00YjAwLTllZWYtZmQzMTcwYTQ5YzU5IiB4bWxucz0iaHR0cDovL3d3dy5zYXQuZ2FzL3JldGVuY2NlPg==
			</xmlBase64>
</servicioConsulta>]]></return>
      </ns2:acuseCancelacionRetResponse>
   </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.

Método de consulta del de xml por UUID

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

Se encuentra disponible en la siguiente URL:

https://timbrado.pade.mx/ servicio/rest/retencion/cfdiRetPorUUID

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 *
    • UUID del comprobante que se desea recuperar.

Ejemplo de petición de cfdiRetPorUUID

Header



Params



Ejemplo de respuesta

+Response

									
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:cfdiRetPorUUIDResponse xmlns:ns2="timbradoRet.ws.pade.mx">
         <return><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
		<servicioConsulta>
		<contrato>CONTRATO</contrato>
		<consultaOk>true</consultaOk>
		<codigo>0</codigo>
		<xmlBase64>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cmV0ZW5jaW9uZXM6UmV0ZW5jaW9uZcmVGaXNjYWxEaWdpdGFsL1RpbWJyZUZpc2NhbE
		RpZ2l0YWx2MTEueHNkIiB4bWxuczp0ZmQ...9Imh0dHA6Ly93d3cuc2F0LmdvYi5teC9UaW1icmVGaXNjYWxEaWdpdGFsIi8+PC9yZXRlbmNpb25lczpDb21wbGVtZW50bz48L3J
		ldGVuY2lvbmVzOlJldGVuY2lvbmVzPg==</xmlBase64>
		</servicioConsulta>]]></return>
      </ns2:cfdiRetPorUUIDResponse>
   </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.

Códigos

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

Códigos de respuesta (TIMBRADO Y CANCELACIÓN)

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.
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 UUID Previamente cancelado.
203 UUID No encontrado o no corresponde en el emisor.
204 UUID No aplicable para cancelación.
205 UUID No existe.
206 UUID no corresponde a un CFDI del Sector Primario.
300 Usuario No Valido.
301 XML mal formado.
302 Sello mal formado o inválido.
303 Sello no corresponde.
304 Certificado revocado o caduco.
305 Certificado Inválido.
307 El comprobante ya existe en la base de datos.
310 Uso de certificado de e.firma inválido.
311 Clave de motivo de cancelación no válida.
312 UUID no relacionado de acuerdo a la clave de motivo de cancelación .
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 para los estatus de cancelación.

Código Descripción
1201 Solicitud de cancelación recibida.
1202 UUID Previamente cancelado.
1203 No encontrado corresponde al emisor.
1205 UUID No existe.
1300 Autenticación no válida.
1301 XML mal formado.
1302 Estructura de folio no válida
1303 Estructura de RFC no válida
1304 Estructura de fecha no válida
1305 Certificado no corresponde al emisor
1306 Certificado no vigente.
1307 Uso de e.firma no permitido.
1308 Certificado revocado o caduco.
1309 Firma mal formada o inválida.
1310 Clave de motivo de cancelación no válida.
1311 UUID no relacionado de acuerdo a la clave de motivo de cancelación