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
Contar con un Certificado de Sello Digital (CSD) válido ante el SAT.
Contar con un software cliente para realizar las peticiones de timbrado.
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:
Lo siguiente es una guía sugerida para realizar una integración exitosa al servicio de timbrado de Prodigia.
Registro a la plataforma Pade: el proceso se detalla en la sección Manuales.
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.
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.
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.
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.
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 ",".
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).
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.
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).
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:
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.
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.
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:
<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:
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
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.
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.
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:
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.
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).
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.
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:
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.
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:
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
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.
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.
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:
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>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
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.