# SW Developers — Corpus completo (developers.sw.com.mx) > Contenido completo de la documentacion tecnica de SW Developers, generado a partir del scraping oficial del sitio. Excluye avisos/novedades (alto volumen, bajo valor para responder 'que servicios existen'). Cada seccion cita su URL fuente real. --- # [01 Junio 2022] Mejoramos para TI, nuestro Administrador de timbres migra a 2.0 Fuente: https://developers.sw.com.mx/knowledge-base/01-junio-2022-mejoramos-para-ti-nuestro-administrador-de-timbres-migra-a-2-0/ Categoria: Administrador de Timbres (ADT 2.0) ![](https://developers.sw.com.mx/wp-content/uploads/2022/01/unnamed-1-1024x512.jpg) **Estimado cliente:** En SW smarter®  trabajamos siempre con el objetivo de brindarte un mejor servicio, es por ello que en esta ocasión es un gusto compartirte la evolución de nuestro *SISTEMA ADMINISTRADOR DE TIMBRES ADT 1.0.* A continuación te compartimos información detallada de esta evolución para tu mejor adaptación: **1 –  El sistema Administrador de timbres ADT evoluciona de su versión 1.0 a 2.0** **2 –  Las URL de esta nueva versión 2.0 son:** **Versión para pruebas:** [https://portal.test.sw.com.mx/portal](https://www.us13.list-manage.com/track/click?u=3df27438dd753c31d4e5ad7ab&id=213608692e&e=92ecbc53b6) **Versión en productivo:** [https://portal.sw.com.mx/portal](https://www.us13.list-manage.com/track/click?u=3df27438dd753c31d4e5ad7ab&id=8d76fa4060&e=92ecbc53b6) **3 –** **Podrás tener acceso con tus misma credenciales** **Te invitamos a utilizar ya nuestra nueva versión del administrador de timbres ADT 2.0, las funciones que puedes realizar son:** ![](https://ci4.googleusercontent.com/proxy/d2qkzX1E7bEdTOpf7u4sja6Ggrff6EprAWiz5Je30YXcFKsYJQrFurEWfLJiuSa5lqm9RfSikv7u4irqPlaIgWRti_YtNpOk-WbDTse1sMpcquEzxA3GQBOt9kth6Qhk2MHLSc592oDLWLR3Rxz_0RrUIHg0WQ=s0-d-e1-ft#https://mcusercontent.com/3df27438dd753c31d4e5ad7ab/images/137fe028-cf30-eb31-534b-c5db088ba8f8.png) **\*Por ahora podrás notar que aun falta integrar algunos componentes a esta nueva versión, mismos que momentáneamente es necesario seguirlos trabajando en el sistema administrativo que ya conoces o bien el denominado ADT 1.0** ![](https://ci3.googleusercontent.com/proxy/acFhowya6glZKAVYgO-HMaYIopUP06ZkPe8ezMNzp6c-C__8FvC7vHsN5GQ6z2JzLn1AN6e008T4BbRHlKlNRhmLB6LRbud84h6OkjFE88p9fcvTZMjKUd6c-8l68Rsmu6BjX-v9Ug7okO3Odiv6j918I67HFA=s0-d-e1-ft#https://mcusercontent.com/3df27438dd753c31d4e5ad7ab/images/c41be7a2-7449-d404-74ed-7ee7b30b9f55.png) Te estaremos informando de cada etapa de migrado previo a que suceda para una mejor experiencia de transición, si tienes alguna duda acércate con tu ejecutivo comercial y con gusto te brindaremos más información, por favor comparte esta información con el personal de sistemas de tu empresa y tus colegas. Muchas gracias por tu atención y preferencia. ![](https://developers.sw.com.mx/wp-content/uploads/2022/02/unnamed-2-1024x353.png) --- # [06 Junio 2022] Importante: Nuestros sistema ADT 1.0 migra completamente la funcionalidad: "Consulta de documentos". Fuente: https://developers.sw.com.mx/knowledge-base/06-junio-2022-importante-nuestros-sistema-adt-1-0-migra-completamente-la-funcionalidad-consulta-de-documentos/ Categoria: Administrador de Timbres (ADT 2.0) ![](https://developers.sw.com.mx/wp-content/uploads/2022/01/unnamed-1-1024x512.jpg) Estimado cliente: En días pasados te informamos acerca del proceso de migrado en nuestro **“sistema administrador de timbres o también conocido como ADT 1.0 identificado con la URL;  [http://cliente.smartweb.com.mx](http://cliente.smartweb.com.mx/)“**, hoy queremos compartir contigo la continuidad a esta mejora, por lo cual toma en cuenta lo siguiente: ***“A partir del día de hoy, todas las consultas de documentos emitidos deberás realizarlas ya en el nuevo administrador de timbres o ADT 2.0, esta función ya no estará disponible en la versión anterior o ADT 1.0”*** ![](https://developers.sw.com.mx/wp-content/uploads/2022/06/Referencia-ADT-2.0-1024x321.png)![](https://developers.sw.com.mx/wp-content/uploads/2022/06/Referencia-ADT-1.0.jpg) Te recordamos las URL de este nuevo administrador ADT 2.0, puedes ingresar con tus misma credenciales: **Versión para pruebas:**[https://portal.test.sw.com.mx/portal](https://www.us13.list-manage.com/track/click?u=3df27438dd753c31d4e5ad7ab&id=45b3534882&e=92ecbc53b6) **Versión en productivo:**[https://portal.sw.com.mx/portal](https://www.us13.list-manage.com/track/click?u=3df27438dd753c31d4e5ad7ab&id=c1e16611aa&e=92ecbc53b6) Por ahora, las funciones que se mantienen vigentes en la versión del sistema administrador que ya conoces son: ![](https://ci3.googleusercontent.com/proxy/acFhowya6glZKAVYgO-HMaYIopUP06ZkPe8ezMNzp6c-C__8FvC7vHsN5GQ6z2JzLn1AN6e008T4BbRHlKlNRhmLB6LRbud84h6OkjFE88p9fcvTZMjKUd6c-8l68Rsmu6BjX-v9Ug7okO3Odiv6j918I67HFA=s0-d-e1-ft#https://mcusercontent.com/3df27438dd753c31d4e5ad7ab/images/c41be7a2-7449-d404-74ed-7ee7b30b9f55.png) Cada paso o cambio en este proceso te estaremos informando por esta vía, si tienes alguna duda acércate con tu ejecutivo comercial y con gusto te brindaremos más detalles, por favor comparte esta información con el personal de sistemas de tu empresa y tus colegas, la cual también está disponible en nuestro centro de integración para developers. **Nota:** En caso de que no hayas podido observar el comunicado anterior de este tema, puedes consultarlo en el siguiente link: [[01 Junio 2022] Mejoramos para TI, nuestro Administrador de timbres migra a 2.0 – Timbrado Masivo CFDI (sw.com.mx)](https://www.us13.list-manage.com/track/click?u=3df27438dd753c31d4e5ad7ab&id=c30a96e640&e=92ecbc53b6) Muchas gracias por tu atención y preferencia. ![](https://developers.sw.com.mx/wp-content/uploads/2022/01/unnamed-1024x353.png) --- # [23-Noviembre-2023] ... Nueva Imagen y Versión del Administrador de Timbres (ADT) Fuente: https://developers.sw.com.mx/knowledge-base/23-noviembre-2023-nueva-imagen-y-version-del-administrador-de-timbres-adt/ Categoria: Administrador de Timbres (ADT 2.0) ![](https://developers.sw.com.mx/wp-content/uploads/2022/01/unnamed-1-1024x512.jpg) **¡Mejoramos para TI, Administrador de Timbres “ADT 2.0”!** --- Estimado cliente: Aprovechamos para saludarte y reforzar nuestro compromiso de mejorar para TI, en esta ocasión es un gusto compartirte el cambio de imagen próximo a liberarse para nuestro “Sistema Administrador de Timbres (ADT 2.0)”, esta renovación tiene la finalidad de atender tus necesidades, mejorar el aspecto visual así como robustecer la parte operativa con mejoras que gradualmente te iremos compartiendo, nuestro objetivo es ofrecerte una nueva versión que facilite mucho más la gestión de tu timbrado. Estos son algunos puntos que hemos actualizado: - Actualización de tecnología - Nuevo orden más práctico y limpio - Más filtros de búsqueda - Ahora encontrarás botones individuales de descarga XML y PDF - Modernización de objetos visuales - Actualización del elemento firma de manifiesto - Entre otras actualizaciones… Con la finalidad de que puedas ir explorando esta nueva versión, hemos creado este tutorial en el cual podrás conocer más detalles:  [Ver Tutorial](https://www.youtube.com/watch?v=fg8CGYrKBXo) Toma nota, ya que **a partir de este Jueves 23 de Noviembre 2023 de forma automática podrás presenciar este nuevo diseño.** **Es importante resaltar que este cambio representa una actualización visual y de tecnología, manteniendo y mejorando las funciones que ya conoces, ten la certeza de que toda tú información está intacta y segura.** Nuestras ligas de acceso son: Pruebas: [https://portal.test.sw.com.mx/](https://us13.mailchimp.com/mctx/clicks?url=https%3A%2F%2Fportal.test.sw.com.mx%2F&xid=c22bc1a193&uid=58421849&iid=5d3aeac68a&pool=cts&v=2&c=1700590684&h=66e3701235faada20b4102ada369e6282409f46c0b5fd9ea5d3565e3e0dc27e7) Productivo:[https://portal.sw.com.mx/](https://us13.mailchimp.com/mctx/clicks?url=https%3A%2F%2Fportal.sw.com.mx%2F&xid=c22bc1a193&uid=58421849&iid=5d3aeac68a&pool=cts&v=2&c=1700590684&h=beb938e9a8807d2cdc7d67fb937349be6e8893cdc8ae4e4c1fa4382e8098b111) Comparte esta información con todo tu personal, si tienes duda estamos para ayudarte, escríbenos a [soporte@sw.com.mx](mailto:soporte@sw.com.mx) con el asunto “Dudas sobre el nuevo ADT 2.0”, con gusto nuestros ingenieros de servicio te brindará el apoyo que necesitas. **Muchas gracias por tu atención y preferencia.** --- # Administrador de timbres: Funcionamiento cuentas hijo Fuente: https://developers.sw.com.mx/knowledge-base/funcionamiento-cuentas-hijo-administrador-de-timbres/ Categoria: Administrador de Timbres (ADT 2.0) En esta documentación podrás encontrar información del funcionamiento del administrador de timbres, con respecto a la administración de las cuentas hijo. ? **Portal Pruebas** : **?** **Portal Producción** : La cuenta que te fue proporcionada por tu ejecutivo de venta, son tambien las credenciales para ingresar al portal administrador de timbres. Al ingresar con esta cuenta al administrador de timbres, tienes un **ROL** de administrador **(Cuenta Dealer)**. Esto te permitirá gestionar subcuentas de tu cuenta administrador, es decir cuentas de nivel **usuario** (Cuentas hijo). ### Consumiendo el servicio Existen dos esquemas para consumir los servicios. **1-. Utilizar el Token de la cuenta** **Dealer o Administrador.** Al utilizar el token de administrador no es necesario enviar un token diferente para cada usuario, subcuenta o cuenta hijo creada, cualquier RFC y cualquier XML puede enviarse a timbrar, siempre y cuando tengan sus certificados cargados en el administrador. Tambien es importante mencionar que al utilizar este token de administrador, el descuento de timbres sera para la misma cuenta administradora. **2-. Utilizar el Token de cada cuenta usuario** (Cuenta hijo o subcuenta). Al utilizar el token de una cuenta hijo, tendras la ventaja de administrar timbres para dicha cuenta: - Asignar timbres o retirar timbres. - Activar o desactivar cuentas hijo. - Al utilizar el token de cuentas hijo controlas el timbrado que le asignas a cada cuenta, es decir pones un límite de timbres para cada cuenta, así no consumen más de lo que asignas y es más sencillo llevar ese control. - Cuentas con la opción de configurar la cuenta hijo para asignar timbres de manera ilimitada - Requiere la gestión de un token para cada cuenta hijo es decir cuando se consuma el servicio enviaras el token de la cuenta hijo y no de la administradora, además de que cada cuenta hijo deberá cargar sus certificados y estar a cargo de dicha gestión, ya que mediante un correo electrónico le generas un acceso al mismo administrador de timbres. Nota adicional: Al elminar una cuenta hijo es importante que retires primero los timbres que asignaste a dicha cuenta en su momento, si llegas a eliminar la cuenta sin retirar los timbres, estos no regresan de forma automática a la cuenta administradora. **Video:** [SW® | Cuentas Hijo, uso y aplicaciones (Sistema administrador de timbres ADT 2.0)](https://www.youtube.com/watch?v=WZz2G4vF7VI) ### Guias para el Administrador de Timbres [**Tutorial Administrador de Timbres Versión 2.0 (ADT 2.0)**](https://developers.sw.com.mx/knowledge-base/tutorial-administrador-de-timbres-version-2-0-adt-2-0/) [**Videos de Apoyo; Comparativo entre versiones y nuevas funciones.**](https://developers.sw.com.mx/knowledge-base/videos-de-apoyo-comparativo-entre-versiones-y-nuevas-funciones/) --- # Tutorial Administrador de Timbres (ADT 2.0) Fuente: https://developers.sw.com.mx/knowledge-base/tutorial-administrador-de-timbres-version-2-0-adt-2-0/ Categoria: Administrador de Timbres (ADT 2.0) En este video tutorial te mostraremos como funciona nuestro sistema administrador de timbres en la nueva versión 2.0 **Video:** [SW® | Nuevo Tutorial Administrador de Timbres (ADT 2.0)](https://www.youtube.com/watch?v=MQ0iEv_Vnoo) **Te compartimos los links de acceso:** Pruebas: Productivo: --- # Videos de Apoyo; Comparativo entre versiones y nuevas funciones. Fuente: https://developers.sw.com.mx/knowledge-base/videos-de-apoyo-comparativo-entre-versiones-y-nuevas-funciones/ Categoria: Administrador de Timbres (ADT 2.0) A continuación te mostramos dos videos en los cuales te mostramos un comparativo entre funciones del ADT 1.0 y ahora en su versión 2.0, así como el resumen de nuevas funcionalidades y diseño. **1 – Comparativo entre versiones del Sistema Administrador de Timbres “ADT 1.0 vs ADT 2.0”** **Video:** [SW® | Comparativo entre versiones del Sistema Administrador de Timbres "ADT 1.0 vs ADT 2.0"](https://www.youtube.com/watch?v=8DQbsUudNZg&t=151s) **2 – Nuevas Funciones del Sistema Administrador de Timbres “ADT 2.0”** **Video:** [SW® | Conoce las Nuevas Funciones del Sistema Administrador de Timbres "ADT 2.0"](https://www.youtube.com/watch?v=6UXdg8ZXyB8&t=1s) --- # Certificados de Sello Digital (CSD) del PAC Fuente: https://developers.sw.com.mx/knowledge-base/csd-pac/ Categoria: Ambiente de pruebas Como parte de nuestro compromiso con la transparencia y la confianza, facilitamos el acceso a los Certificados de Sello Digital (CSD) que nos certifican como Proveedor Autorizado de Certificación (PAC) otorgado por la Autoridad. Estos certificados, emitidos por el SAT, nos permiten validar y certificar facturas electrónicas, garantizando la autenticidad e integridad de los documentos fiscales emitidos y certificados con nosotros. ### **CSD pruebas** Certificado Pruebas: **No. Certificado: 30001000000400002495** **RFC: SPR190613I52 [Descargar CSD](https://developers.sw.com.mx/wp-content/uploads/2024/05/30001000000400002495.zip)** ### **CSD Productivo** Certificado Productivo: **No. Certificado: 00001000000719545303** **RFC: LSO1306189R5** [**Descargar CSD**](https://developers.sw.com.mx/wp-content/uploads/2025/10/00001000000719545303.zip) --- # Nuevos CSD vigentes para pruebas Fuente: https://developers.sw.com.mx/knowledge-base/donde-encuentro-csd-de-pruebas-vigentes/ Categoria: Ambiente de pruebas En esta sección encontrarás CSD vigentes proporcionados por la Autoridad para realizar tus pruebas de integración. Información Importante La **CONTRASEÑA** para todos los archivos proporcionados es: **12345678a** [**Descargar CSD Vigentes**](https://developers.sw.com.mx/wp-content/uploads/2023/07/Certificados_Pruebas.zip) --- ## Información Fiscal de los CSD de Pruebas **NOTA IMPORTANTE:** **D****ebes ingresar la razón social sin régimen****capital.** **Ejemplo:** | | | | --- | --- | | Razón Social | Sin Régimen Capital | | **MI RAZON SOCIAL S.A. DE C.V** | **MI RAZON SOCIAL (Omitir el: S.A. DE C.V)** | Validez Obligaciones 1 – Habilitado para facturar (IVA exento, tasa 0% y 16%) 2 – Habilitado para facturar (IVA exento, tasa 0%, 8% y 16%) Zona Fronteriza Norte 3 – Habilitado para facturar (IVA exento, tasa 0%, 8% y 16%) Zona Fronteriza Sur 4 – Habilitado para facturar (IVA exento, tasa 0%, 8% y 16%) Zona Fronteriza Norte y Sur ### Persona Física | RFC | SCNF | VALIDEZ OBLIGACIONES | NOMBRE | CODIGO POSTAL | RETENCION | | --- | --- | --- | --- | --- | --- | | CACX7605101P8 | No | 2 | XOCHILT CASAS CHAVEZ | 36257 | 0 | | FUNK671228PH6 | No | 1 | KARLA FUENTE NOLASCO | 01160 | 0 | | IAÑL750210963 | No | 1 | LUIS IAN ÑUZCO | 85256 | 0 | | JUFA7608212V6 | No | 1 | ADRIANA JUAREZ FERNANDEZ | 01160 | 0 | | KAHO641101B39 | No | 1 | OSCAR KALA HAAK | 76074 | 2 | | KICR630120NX3 | No | 1 | RODRIGO KITIA CASTRO | 36246 | 1 | | MISC491214B86 | No | 1 | CECILIA MIRANDA SANCHEZ | 01010 | 0 | | RAQÑ7701212M3 | No | 1 | ÑEVES RAMIREZ QUEZADA | 78905 | 0 | | WATM640917J45 | No | 1 | MARIA WATEMBER TORRES | 43543 | 0 | | WERX631016S30 | No | 1 | XAIME WEIR ROJO | 01279 | 0 | | XAMA620210DQ5 | No | 1 | ALBA XKARAJAM MENDEZ | 01219 | 0 | | XIQB891116QE4 | No | 4 | BERENICE XIMO QUEZADA | 40968 | 0 | | XOJI740919U48 | No | 1 | INGRID XODAR JIMENEZ | 76028 | 0 | ### Persona Moral | RFC | SCNF | VALIDEZ OBLIGACIONES | NOMBRE | CODIGO POSTAL | RETENCION | | --- | --- | --- | --- | --- | --- | | EKU9003173C9 | No | 1 | ESCUELA KEMPER URGATE | 42501 | 0 | | IIA040805DZ4 | No | 1 | INDISTRIA ILUMINADORA DE ALMACENES | 62661 | 0 | | H&E951128469 | No | 1 | HERRERIA & ELECTRICOS | 06002 | 0 | | IVD920810GU2 | No | 1 | INNOVACION VALOR Y DESARROLLO | 63901 | 0 | | IXS7607092R5 | No | 1 | INTERNACIONAL XIMBO Y SABORES | 23004 | 0 | | JES900109Q90 | No | 1 | JIMENEZ ESTRADA SALAS | 37161 | 0 | | KIJ0906199R1 | No | 1 | KERNEL INDUSTIA JUGUETERA | 28971 | 0 | | L&O950913MSA | No | 1 | LUCES & OBRAS | 60922 | 0 | | OÑO120726RX3 | Si | 1 | ORGANICOS ÑAVEZ OSORIO | 40501 | 0 | | S&S051221SE2 | No | 1 | S & SOFTWARE | 76022 | 0 | | URE180429TM6 | No | 1 | UNIVERSIDAD ROBOTICA ESPAÑOLA | 86991 | 0 | | XIA190128J61 | No | 1 | XENON INDUSTRIAL ARTICLES | 76343 | 0 | | ZUÑ920208KL4 | No | 1 | ZAPATERIA URTADO ÑERI | 34541 | 0 | ## Anteriores CSD de pruebas [Link a la descarga](https://developers.sw.com.mx/wp-content/uploads/2023/05/RFC-PAC-SC-2019.zip). Estos CSD ya fueron revocados en el ambiente de pruebas de cancelación. --- # Ayuda Integración SAP Fuente: https://developers.sw.com.mx/knowledge-base/ayuda-integracion-sap/ Categoria: Ayuda ERP´S **Facilita el proceso de integración con estas sugerencias** Durante el proceso de integración de los servicios de SW Sapien a SAP pueden llegar a surgir dudas o problemas que impidan o retrasen este proceso. Te sugerimos revisar el siguiente artículo antes de comenzar ya que alguno de los puntos mencionados facilita y agiliza el proceso de integración. ⚠️ Nota importante sobre la integración **SW Sapien y SAP son plataformas independientes.** Los servicios de timbrado y facturación de SW funcionan a través de APIs que deben integrarse de forma individual según las necesidades de cada proyecto. Esto significa que cada API que desees utilizar — timbrado, cancelación, consulta de estatus, entre otras — requiere su propia implementación dentro de tu sistema SAP. Si requieres apoyo especializado para la integración con SAP, puedes consultar el directorio oficial de partners certificados de SAP: [Encuentra un partner SAP aquí →](https://www.sap.com/partners/find.html?url_id=text-scc-sales-sapbotr-prechat-lac-es) Consideraciones antes de integrar los servicios 📋 Integración en 7 pasos Te compartimos el siguiente artículo con el proceso de integración a los servicios de SW visto de una perspectiva de 7 pasos. - [Conoce el proceso de integración en solo 7 pasos](https://developers.sw.com.mx/knowledge-base/nuevo-inicio-rapido/) 🔐 Certificados Para garantizar una comunicación segura y verificada entre tu sistema y los servidores de SW, es necesario contar con los certificados correspondientes. Los certificados CSD del PAC (Proveedor Autorizado de Certificación) y los certificados SSL necesarios para establecer una conexión confiable en tu entorno de integración. - [Certificados PAC](https://developers.sw.com.mx/knowledge-base/csd-pac/) - [Certificados SSL](https://developers.sw.com.mx/knowledge-base/certificados-ssl/) 🔏 Timbrado Issue Timbrado issue se refiere a los servicios de [Emisión timbrado](https://developers.sw.com.mx/knowledge-base/emision-timbrado-cfdi/) y [Timbrado JSON](https://developers.sw.com.mx/knowledge-base/emision-timbrado-json-cfdi-3-3/), en donde es necesario cargar los certificados CSD a SW para que se realice el sellado y posteriormente el timbrado del XML. Al utilizar estos servicios, tanto el **sellado** (encriptación del contenido del XML con los CSD del emisor) como el **timbrado** (validación del documento ante el SAT) se realizan del lado de SW, lo que reduce significativamente la carga de procesos dentro de SAP y simplifica la implementación desde ABAP. - [Carga tus CSD’s desde portal ADT](https://developers.sw.com.mx/knowledge-base/tutorial-administrador-de-timbres-version-2-0-adt-2-0/) - [Carga tus CSD’s desde API](https://developers.sw.com.mx/knowledge-base/api-certificados/) - [CSD para pruebas](https://developers.sw.com.mx/knowledge-base/donde-encuentro-csd-de-pruebas-vigentes/) Recomendaciones 💻 Body request Es altamente recomendado construir y enviar el XML en un JSON body en lugar de un form data. Ejemplo: ABAP [Raw](https://developers.sw.com.mx/knowledge-base/ayuda-integracion-sap/) [Copy](https://developers.sw.com.mx/knowledge-base/ayuda-integracion-sap/) [Extern](https://developers.sw.com.mx/knowledge-base/ayuda-integracion-sap/) DATA gc\_content\_type\_form TYPE string VALUE ‘application/json; charset=utf-8’ Ejemplo: [Timbrado](https://developers.sw.com.mx/knowledge-base/servicio-de-timbrado/) [Raw](https://developers.sw.com.mx/knowledge-base/ayuda-integracion-sap/) [Copy](https://developers.sw.com.mx/knowledge-base/ayuda-integracion-sap/) [Extern](https://developers.sw.com.mx/knowledge-base/ayuda-integracion-sap/) curl –request POST \ –url http://services.test.sw.com.mx/cfdi33/stamp/v4/ \ –header ‘Authorization: Bearer $token’ \ –header ‘Content-Type: multipart/form-data; boundary=—011000010111000001101001’ \ –form ‘xml=cfdi.xml’ Ejemplo: [Emisión Timbrado](https://developers.sw.com.mx/knowledge-base/emision-timbrado-cfdi/) [Raw](https://developers.sw.com.mx/knowledge-base/ayuda-integracion-sap/) [Copy](https://developers.sw.com.mx/knowledge-base/ayuda-integracion-sap/) [Extern](https://developers.sw.com.mx/knowledge-base/ayuda-integracion-sap/) curl –request POST \ –url http://services.test.sw.com.mx/cfdi33/issue/v4 \ –header ‘Authorization: Bearer $token’ \ –header ‘Content-Type: multipart/form-data; boundary=—011000010111000001101001’ \ –form ‘xml=cfdi.xml’ 🔌 API Client Puedes apoyarte y observar el comportamiento de los servicios a través de un API client, en este caso contamos con ejemplos y colecciones en la herramienta Postman. - [Guía de instalación y funcionamiento de Postman](https://developers.sw.com.mx/knowledge-base/guia-se-instalacion-y-funcionamiento-de-postman/) - [SW API collections](https://www.postman.com/development-swsapien/sw-api-developers/collection/23720084-70689960-f765-49c6-9cbc-4e931a9a9e31?sideView=agentMode) ⚠️ Códigos de error En caso de obtener un código de error o validación, contamos con una herramienta donde podrás consultar el significado de cada código y orientarte hacia su solución. - [Consultar herramienta de códigos de error](https://developers.sw.com.mx/knowledge-base/listado-de-codigos-de-errores/) 🚀 SW Developers Te invitamos a visitar el inicio de nuestro sitio developers donde podrás consultar los servicios adicionales y las demás API’s que pueden ayudarte a mejorar tus procesos. [🏪 Servicios Extra](https://developers.sw.com.mx/article-categories/servicios/) [⚡ SW API’s](https://developers.sw.com.mx/article-categories/apis/) --- # Guía para timbrar facturas en Odoo con SW Sapien Fuente: https://developers.sw.com.mx/knowledge-base/guia-para-timbrar-facturas-en-odoo-con-sw-sapien/ Categoria: Ayuda ERP´S En esta guía aprenderás a configurar Odoo paso a paso para poder emitir facturas electrónicas CFDI en México. 1. Configurar la localización fiscal La localización fiscal permite que Odoo utilice las reglas fiscales correspondientes a México. 1. Ve a **Ajustes**. 2. Ingresa a **Contabilidad**. 3. Busca la opción **Localización fiscal**. 4. Selecciona el paquete **MX México**. ![Crear empresa en Odoo](https://developers.sw.com.mx/wp-content/uploads/2026/05/Localizacion1.png) 2. Crear la empresa en Odoo Después de activar la localización mexicana, es necesario registrar la empresa que emitirá las facturas. 1. Ve a **Ajustes**. 2. Selecciona **Ajustes generales**. 3. Entra a **Usuarios y empresas**. 4. Da clic en **Empresas**. 5. Selecciona **Nuevo** para crear tu empresa. ![Crear empresa en Odoo](https://developers.sw.com.mx/wp-content/uploads/2026/05/Empresa1.png) 6. Llena los datos fiscales solicitados. ![Crear empresa en Odoo](https://developers.sw.com.mx/wp-content/uploads/2026/05/Empresa2.png) 7. Guarda la información y seleccionaremos la empresa que creamos para empezar a trabajar. ![Crear empresa en Odoo](https://developers.sw.com.mx/wp-content/uploads/2026/05/Empresa3.png) **💡Nota Importante:** Los datos deben coincidir con la información fiscal de la empresa: RFC, razón social, régimen fiscal y domicilio. 3. Configurar las credenciales del PAC El PAC es el proveedor autorizado encargado de timbrar las facturas electrónicas. En este caso, se debe seleccionar **SW Sapien**. 1. Ve a **Ajustes**. 2. Selecciona **Contabilidad**. 3. Entra a **Facturación electrónica MX**. 4. Selecciona el PAC **SW Sapien**. 5. Ingresa las credenciales proporcionadas en esta parte nos referimos a las credenciales (Usuario y contraseña) proporcionadas por SW al hacer la compra. 6. Guarda la configuración. ![Crear empresa en Odoo](https://developers.sw.com.mx/wp-content/uploads/2026/05/ConfiguracionPac1.png) **Modo pruebas:** Si vas a realizar pruebas, se deberá solicitar a SW sus credenciales para pruebas y se activa la casilla correspondiente antes de guardar. 4. Subir los certificados CSD Para poder timbrar facturas, es necesario cargar los certificados de sello digital proporcionados por el SAT. **Archivos necesarios:** - Archivo **.key** - Archivo **.cer** - Contraseña del certificado 1. Ve a **Ajustes**. 2. Ingresa a **Contabilidad**. 3. Selecciona **Certificados**. ![Crear empresa en Odoo](https://developers.sw.com.mx/wp-content/uploads/2026/05/Certificados1-e1778514239777.png) 4. Da clic en **Nuevo**. 5. Sube el archivo **.key**. 6. Ingresa la contraseña correspondiente. ![Crear empresa en Odoo](https://developers.sw.com.mx/wp-content/uploads/2026/05/certificados3.png) 7. Sube el archivo **.cer**. ![Crear empresa en Odoo](https://developers.sw.com.mx/wp-content/uploads/2026/05/certificados2.png) 8. Guarda la información. ![Crear empresa en Odoo](https://developers.sw.com.mx/wp-content/uploads/2026/05/certificados4.png) **💡Nota Importante:**Es muy importante no confundas tus CSD (Certificados de Sello Digital) con los archivos de tu E.FIRMA o FIEL, ya que son muy similares pero tienen distinta función. Para diferenciarlos puedes apoyarte del siguiente articulo: [Diferencia entre CSD y FIEL](https://developers.sw.com.mx/knowledge-base/como-diferenciar-entre-fiel-y-csd/). Tambien contamos con una herramienta para ello: [Herramienta para Validar Certificados](https://developers.sw.com.mx/knowledge-base/herramienta-validador-certificados/). 5. Verificar la configuración final Antes de emitir una factura, revisa que todos los datos estén correctamente configurados. ✅ Empresa creada correctamente ✅ Localización fiscal configurada en México ✅ PAC SW Sapien seleccionado ✅ Credenciales del PAC capturadas ✅ Certificados CSD cargados correctamente ### ¡Configuración finalizada! Una vez completados estos pasos, Odoo estará listo para emitir facturas electrónicas CFDI en México mediante SW Sapien. 📩 Soporte técnico **¿Necesitas apoyo adicional?** Nuestro equipo de soporte puede ayudarte a resolver tus dudas sobre el proceso. [Levantar ticket de soporte](https://developers.sw.com.mx/knowledge-base/como-levantar-un-ticket/) ### Contenido 1. [¡Configuración finalizada!](https://developers.sw.com.mx/knowledge-base/guia-para-timbrar-facturas-en-odoo-con-sw-sapien/#configuracion-finalizada) **Si te interesó alguna de nuestras soluciones llena el siguiente formulario** [Solicita una cotización](https://developers.sw.com.mx/knowledge-base/solicita-cotizacion/) [![](https://developers.sw.com.mx/wp-content/uploads/2024/07/banner-postman.png)](https://www.postman.com/development-swsapien/workspace/sw-api-developers/overview) ![Icono Repositorio de cambios](https://developers.sw.com.mx/wp-content/uploads/2025/04/avisos_dev.png) ### Repositorio de cambios [![](https://developers.sw.com.mx/wp-content/uploads/2025/04/banner_git.png)](https://github.com/orgs/lunasoft/repositories) --- # Odoo y SW Sapien: Todo lo que necesitas saber para facturar con éxito Fuente: https://developers.sw.com.mx/knowledge-base/contenido-para-usuarios-odoo/ Categoria: Ayuda ERP´S SW Sapien · PAC autorizado por el SAT para timbrar en Odoo ![Odoo logo](https://developers.sw.com.mx/wp-content/uploads/2025/06/odoo.png) ## Timbrado en Odoo con SW: guía práctica Configura nuestro PAC y tus CSD en pocos minutos. Si ya estás timbrando y te aparece un error, salta directo a la [sección de soluciones](https://developers.sw.com.mx/knowledge-base/contenido-para-usuarios-odoo/#sw-errores). ![Integración de Odoo con PAC SW en 3 pasos: configura el PAC, carga tus CSD, emite tus facturas](https://developers.sw.com.mx/wp-content/uploads/2026/05/imagen_3pasos_alta-resolucion.png) **¿Aún no tienes tu CSD?** Mira nuestro tutorial paso a paso para generarlos en el portal del SAT. [Ver tutorial →](https://www.youtube.com/watch?v=a3ex7oHOv6Y) [⚙ Quiero configurar Vincular y cargar CSD por versión Ir ahora →](https://developers.sw.com.mx/knowledge-base/contenido-para-usuarios-odoo/#sw-configuracion) [⚠ Tengo un error Errores comunes y cómo resolverlos Ir ahora →](https://developers.sw.com.mx/knowledge-base/contenido-para-usuarios-odoo/#sw-errores) [? Tengo dudas Preguntas frecuentes y Multi-RFC Ir ahora →](https://developers.sw.com.mx/knowledge-base/contenido-para-usuarios-odoo/#sw-faq) ¿Aún no tienes una cuenta SW? [Conocer paquetes](https://tienda.sw.com.mx/shop) Odoo es una marca registrada de Odoo S.A. ## Configura tu cuenta SW según tu versión de Odoo Vincula tu cuenta SW y carga los CSD del emisor siguiendo las instrucciones específicas para tu versión. **Requisitos previos para configurar** - **Usuario SW:** Si es ambiente de pruebas, solicítalo desde [Usuario de prueba](https://developers.sw.com.mx/knowledge-base/usuario-de-prueba/), si ya compraste, recibirás tus credenciales por correo, si no llegaron a tu correo contacta a soporte. - **CSD para pruebas:** Puedes obtenerlos en [CSD para pruebas vigentes](https://developers.sw.com.mx/knowledge-base/donde-encuentro-csd-de-pruebas-vigentes/). - **Generar tu CSD:** Revisa el video [Cómo generar los certificados CSD](https://youtu.be/a3ex7oHOv6Y?si=DAtM3JVHAgMlDCDj). - **Acceso a Ajustes/Contabilidad en Odoo** Tip: Si cambias tu contraseña en el portal SW, recuerda actualizarla también en Odoo. Odoo 16 y 17 Odoo 18 Odoo 19 Configurar empresa ### Odoo 16 y 17 Vincula tu cuenta SW y carga los CSD para el/los RFC emisores. Ver pasos de configuración ### Odoo 18 Sigue el video de configuración para vincular SW y cargar certificados. Ver video ### Odoo 19 Sigue el video de configuración para vincular SW y cargar certificados. Ver video ### Configuración de empresa y clientes (opcional) Si tu error se relaciona con datos de la empresa (RFC, dirección, etc.), revisa este video. Ver video ## Errores comunes y soluciones rápidas **¿Es tu primera configuración?** Revisa primero [Configuración](https://developers.sw.com.mx/knowledge-base/contenido-para-usuarios-odoo/#sw-configuracion), muchos errores se resuelven validando credenciales y CSD. Desliza el carrusel y abre la solución del error que te aparece en Odoo. ‹ AUTH ### Error de autenticación ![Error de autenticación](https://developers.sw.com.mx/wp-content/uploads/2024/04/b5c9af0a-81ea-46f9-8869-16ad09e42111.png) Credenciales SW incorrectas o desactualizadas. Ver solución AUTH · PRUEBAS ### Error de autenticación en pruebas ![Error de autenticación en pruebas](https://developers.sw.com.mx/wp-content/uploads/2025/07/odoo-error-auth-test.png) Ambiente de pruebas/producción no coincide con tus credenciales. Ver solución CSD ### No se encontró certificado válido ![Certificado no cargado](https://developers.sw.com.mx/wp-content/uploads/2025/07/odoo-certificado-no-cargado.png) No hay CSD cargado para timbrar en Odoo. Ver solución 305 · FIEL ### FIEL en lugar de CSD ![Error FIEL](https://developers.sw.com.mx/wp-content/uploads/2025/07/odoo-error-fiel.png) El certificado usado no es válido para timbrado. Ver solución 305 · CSD ### CSD no vigente ![CSD no vigente](https://developers.sw.com.mx/wp-content/uploads/2025/07/odoo-certificado-vigencia.png) Tu CSD está caduco o revocado. Ver solución RFC ### RFC is Missing ![RFC no capturado](https://developers.sw.com.mx/wp-content/uploads/2025/07/odoo-rfc-emisor.png) El RFC del emisor no está registrado en la empresa. Ver solución 401 · FECHA ### Fecha fuera de 72 horas ![Fecha fuera de rango](https://developers.sw.com.mx/wp-content/uploads/2025/07/odoo-error-fecha-emision-1.jpg) La fecha/hora del comprobante está fuera del rango permitido. Ver solución CFDI40102 ### Error de digestión ![Error de digestión](https://developers.sw.com.mx/wp-content/uploads/2025/07/odoo-error-digestion.png) Hay caracteres no válidos en el contenido del XML. Ver solución › ## Preguntas frecuentes Dudas comunes sobre tu cuenta SW, saldo, credenciales y gestión Multi-RFC. **SW es Multi-RFC:** Puedes administrar distintas razones sociales dentro de una misma cuenta (con saldo independiente si usas cuentas hijas). ¿Cómo consulto el saldo de mi cuenta? Consulta tus timbres desde el [Portal ADT](https://portal.sw.com.mx). Ingresa con las **mismas credenciales que vinculaste en Odoo**. Ver tutorial de consulta de saldo ¿Puedo cambiar mi usuario o contraseña? **Para cambiar contraseña:** entra al [Portal ADT](https://portal.sw.com.mx) y usa **“Recuperar Contraseña”**. Si cambias tu contraseña, actualízala también en Odoo para evitar errores de autenticación. --- **Para cambiar el correo (usuario):** contacta a tu ejecutiva de ventas; por seguridad se hace un proceso de validación. ¿Qué es una cuenta hija? Multi-RFC Tu compra es una **cuenta administradora**. Desde ella puedes crear **cuentas hijas** si lo necesitas. Una cuenta hija te permite operar **otra razón social** con su propio RFC, CSD y saldo de timbres. ¿Cuándo me conviene usar una cuenta hija? Multi-RFC Cuando quieres separar operación por RFC (por ejemplo: despacho contable, corporativos o distintos usuarios por empresa). Recuerda: **los timbres deben estar disponibles en la cuenta que estés usando en Odoo** (administradora o hija). ¿Qué debo considerar si uso cuentas hijas? Multi-RFC La cuenta hija tiene **correo y contraseña propios**. Esas credenciales son las que debes colocar en Odoo si esa cuenta consumirá timbres. - Si usas la administradora en Odoo, deja timbres en la administradora. - Si solo usarás hijas en Odoo, no necesitas saldo en la administradora. Al entrar al portal con una hija verás solo opciones de hija (sin configuraciones administrativas de la principal). ¿Cómo creo una cuenta hija? Multi-RFC Créala desde el [Portal ADT](https://portal.sw.com.mx) iniciando sesión con la cuenta administradora. Se te pedirá asignar **correo y contraseña** (serán las credenciales que usarás después en Odoo si timbras con esa hija). Ver tutorial 📩 Soporte técnico ¿Aún tienes dudas o tu error no aparece aquí? Escríbenos a **soporte@sw.com.mx** con los siguientes datos para acelerar tu diagnóstico: Incluye en tu correo: 1 **XML con el error** Adjunta el archivo descargado desde Odoo. Ver cómo descargarlo 2 **Captura del error** Incluye el mensaje completo y capturas de configuración si aplica. 3 **Datos de tu póliza** Menciona tu RFC o número de cliente para validar tu póliza activa. 📋 Copiar correo de soporte soporte@sw.com.mx --- # Aceptar o Rechazar cancelación Receptor Fuente: https://developers.sw.com.mx/knowledge-base/aceptar-o-rechazar-cancelacion-cfdi/ Categoria: Cancelaciones Servicio mediante el cual el receptor podrá manifestar la aceptación o rechazo de la solicitud de cancelación. ## Documentación teórica ![](https://developers.sw.com.mx/wp-content/uploads/2018/08/cancelacion_con_aprobacion2-1.jpg) #### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 --- ### Aceptar/Rechazar por CSD Este método permite al receptor aceptar o rechazar solicitudes utilizando sus Certificados de Sello Digital (CSD), ya sea mediante el envío de una lista de UUID o uno solo. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /acceptreject/csd | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | uuids | Requerido | **Arreglo de objetos** donde se especifican los uuids y acción a realizar. | | password | Requerido | Contraseña del certificado. | | rfc | opcional | RFC del receptor. | | b64Cer | Requerido | Certificado del receptor en Base64. | | b64Key | Requerido | Key del receptor en Base64. | #### Ejemplo Request ``` curl --request POST \ --url https://services.test.sw.com.mx/acceptreject/csd \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "uuids": [{"uuid":"fd74d156-b9b0-44a5-9906-e08182e8363e", "action":"Aceptacion"}], "password": "12345678a", "rfc": "JUFA7608212V6", "b64Cer": "MIIFmjCCA4KgAwIB....", "b64Key": "MIIFDjBABgkqhkiG...."' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "codStatus": "1000", "status": "success", "data": { "folios": [ { "uuid": "6424c644-abfd-4065-957f-78371ec66dbb", "estatusUUID": "1001", "respuesta": "Aceptacion" } ], "acuse": "6424c644-abfd-4065-957f-78371ec66dbb1001not(ancestor-or-self::*[local-name()='Signature'])IKt+I3pLzUnTQ+7IeD7dNS9k5/j05AdjqIXemA8088b0iTr3ZUVlSiuYFjZJ1IzhxU2+rGD0d1zwHVnHDr9qlg==9KDALB3/xu9qPAMN900Nwmf/4C6qzCaF1iteIlLHaNTUnCuM9iJ35driEqyAsGDmCu2/6/U+RE17qqk/Eg0xUQ==BF66E582888CC845n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=AQAB" } } ``` ``` { "message": "CACFDI33 - Error no controlado", "messageDetail": "Invalid length for a Base-64 char array or string.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene información del acuse de aceptación o rechazo, incluyendo lista de folios y XML del acuse. | | status | String | “success” o “error” | | codStatus | String | Código “1000” cuando ha sido exitosa la solicitud. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-5a4aec65-bc30-43e7-acfb-66ea59b25e68) --- ### Aceptar/Rechazar por PFX Este método permite al receptor aceptar o rechazar solicitudes utilizando el archivo PFX resultado de su CSD convertido a B64, ya sea mediante el envío de una lista de UUID o uno solo. **💡Artículo de apoyo:** [¿Cómo crear un PFX?](https://developers.sw.com.mx/knowledge-base/como-crear-un-pfx/) #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /acceptreject/pfx | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | uuids | Requerido | **Arreglo de objetos** donde se especifican los uuids y acción a realizar. | | password | Requerido | Contraseña del certificado PFX. | | rfc | Opcional | RFC del receptor | | b64Pfx | Requerido | Archivo Pfx en Base64 | #### Ejemplo Request ``` curl --request POST \ --url https://services.test.sw.com.mx/acceptreject/pfx \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "uuids": [{"uuid":"fd74d156-b9b0-44a5-9906-e08182e8363e", "action":"Aceptacion"}], "password": "12345678a", "rfc": "JUFA7608212V6", "b64Pfx": "MIIFmjCCA4KgAwIB...." ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "codStatus": "1000", "status": "success", "data": { "folios": [ { "uuid": "6424c644-abfd-4065-957f-78371ec66dbb", "estatusUUID": "1001", "respuesta": "Aceptacion" } ], "acuse": "6424c644-abfd-4065-957f-78371ec66dbb1001not(ancestor-or-self::*[local-name()='Signature'])tVBq9vchHbNBxZEvhmE1gpq23Nnawp42M3+2Z4h68h0dBGuj0lmHwJF5USejOjN7ij8MNMEmeU7GpkXDWYw46Q==FaF4nSk7qthiMY06IwhA3qpQ9ccXR9vz4R+FPoYTu/XMXsAX+WJW0WrhKNAVrsFStNm/hOvN0cZk1j79RmwPsw==BF66E582888CC845n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=AQAB" } } ``` ``` { "message": "CACFDI33 - Error no controlado", "messageDetail": "Invalid length for a Base-64 char array or string.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene información del acuse de aceptación o rechazo, incluyendo lista de folios y XML del acuse. | | status | String | “success” o “error” | | codStatus | String | Código “1000” cuando ha sido exitosa la solicitud. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-dd3fd569-68ce-41f9-b627-ae48a145d2e7) --- ### Aceptar/Rechazar por XML En este método se requiere de un XML previamente sellado con los datos de los UUID a rechazar o a aceptar, visita nuestra herramienta para [generar y sellar el XML](https://github.com/lunasoft/sw-tools-dotnet). #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /acceptreject/xml | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | multipart/form-data | #### 🧾 Parámetros Form | Propiedad | Uso | Descripción | | --- | --- | --- | | xml | Requerido | XML con datos requeridos para la aceptacion/rechazo de la cancelación | #### Ejemplo Request ``` curl --request POST \ --url https://services.test.sw.com.mx/acceptreject/xml \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: multipart/form-data; boundary=-- -011000010111000001101001' \ --form 'xml=cfdi.xml' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "codStatus": "1000", "status": "success", "data": { "folios": [ { "uuid": "FD74D156-B9B0-44A5-9906-E08182E8363E", "estatusUUID": "1001", "respuesta": "Aceptacion" } ], "acuse": "FD74D156-B9B0-44A5-9906-E08182E8363E1001not(ancestor-or-self::*[local-name()='Signature'])+SVWUAxbjAfaN6nGA/Kfm1U2PA3tYAFt6msbI5JPlUa2d3siFq2FYV5sLuwilzkiu2zIUsAvwogEN0AQnWHKmg==tseopZlpbSDJNMx52qdRYSI1DxPFy76H9cXmrI6rZR8FLjDh9OYNGL59/v5Ohq2rivRdBulGHoKZ/yUpbuvREQ==BF66E582888CC845n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=AQAB" } } ``` ``` { "codStatus": "302", "message": "CA302 - Sello mal formado o inválido.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene información del acuse de aceptación o rechazo, incluyendo lista de folios y XML del acuse. | | status | String | “success” o “error” | | codStatus | String | Código “1000” cuando ha sido exitosa la solicitud. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-610d1f49-d752-48f8-bf5a-48abaa469ca6) --- ### Aceptar/Rechazar por UUID Este método Acepta o Rechaza un solo UUID, es necesario que los [CSD sean cargados](https://developers.sw.com.mx/knowledge-base/api-certificados/). #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /acceptreject/**{rfc}/{uuid}/{accion}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | uuid | Requerido | UUID de la factura que se requiere aceptar/rechazar | | rfc | Requerido | RFC del receptor | | accion | Requerido | Acción que se requiera realizar Aceptacion/Rechazo | #### Ejemplo Request ``` curl --request POST \ --url https://services.test.sw.com.mx/acceptreject/EKU9003173C9/362efe1f-c0b4-47dd-9979-91d068a2bc75/Aceptacion \ --header 'Authorization: Bearer $token' \ ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "codStatus": "1000", "status": "success", "data": { "folios": [ { "uuid": "FD74D156-B9B0-44A5-9906-E08182E8363E", "estatusUUID": "1001", "respuesta": "Aceptacion" } ], "acuse": "FD74D156-B9B0-44A5-9906-E08182E8363E1001not(ancestor-or-self::*[local-name()='Signature'])+SVWUAxbjAfaN6nGA/Kfm1U2PA3tYAFt6msbI5JPlUa2d3siFq2FYV5sLuwilzkiu2zIUsAvwogEN0AQnWHKmg==tseopZlpbSDJNMx52qdRYSI1DxPFy76H9cXmrI6rZR8FLjDh9OYNGL59/v5Ohq2rivRdBulGHoKZ/yUpbuvREQ==BF66E582888CC845n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=AQAB" } } ``` ``` { "message": "CACFDI33 - Error no controlado", "messageDetail": "El uuid proporcionado es inválido. Favor de verificar.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene información del acuse de aceptación o rechazo, incluyendo lista de folios y XML del acuse. | | status | String | “success” o “error” | | codStatus | String | Código “1000” cuando ha sido exitosa la solicitud. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-bda42425-d69c-40e9-afe4-96896d8ee521) --- ### Códigos de respuesta El servicio puede devolver los siguientes errores, te compartimos una pequeña descripción del motivo por el cual suceden: | Código | Mensaje | | --- | --- | | 300 | Usuario no válido | | 301 | XML mal formado | | 302 | Sello mal formado | | 304 | Certificado revocado o caduco | | 305 | Certificado inválido | | 309 | Patrón de folio inválido | | 310 | CSD Inválido | | 1000 | Se recibió la respuesta de la petición de forma exitosa | | 1001 | No existen peticiones de cancelación en espera de respuesta para el uuid | | 1002 | Ya se recibió una respuesta para la petición de cancelación del uuid | | 1003 | Sello No Corresponde al RFC Receptor | | 1004 | Existen más de una petición de cancelación para el mismo uuid | | 1005 | El uuid es nulo no posee el formato correcto | | 1006 | Se rebaso el número máximo de solicitudes permitidas | --- # Cancelación CFDI Fuente: https://developers.sw.com.mx/knowledge-base/cancelacion-cfdi/ Categoria: Cancelaciones Servicio mediante el cual podrás realizar las cancelaciones de tus comprobantes a través de los diferentes métodos disponibles. Antes de cancelar, recomendamos [**consultar el estatus de la factura**](https://developers.sw.com.mx/knowledge-base/servicio-publico-de-consulta-estatus-cfdi-sat/) y [**consultar los CFDIs relacionados**](https://developers.sw.com.mx/knowledge-base/consulta-cfdi-relacionados/) para que el proceso de cancelación se lleve a cabo de manera correcta. #### URL´s 🛠️ Pruebas: https://services.test.sw.com.mx 📄 🚀 Productivo: https://services.sw.com.mx 📄 💡 Para este servicio también puedes utilizar los **CSD de pruebas** proporcionados por el SAT. ℹ️ Nota: El endpoint */cfdi33/cancel/* es completamente compatible con CFDI 3.3 y CFDI 4.0. --- ## Valores válidos del campo *motivo* El campo `motivo` es requerido en todos los métodos de cancelación. Los valores aceptados son: Tabla con los motivos. | Clave | Descripción | ¿Requiere *“FolioSustitución”* ? | | --- | --- | --- | | 01 | Comprobante emitido con errores con relación | ✅**Sí**, **obligatorio** | | 02 | Comprobante emitido con errores sin relación | ❌ No enviarse | | 03 | No se llevó a cabo la operación | ❌ No enviarse | | 04 | Operación nominativa relacionada en factura global | ❌ No enviarse | ⚠️ **Importante:** `folioSustitucion` **solo es requerido cuando `motivo = "01"`**. Para cualquier otro motivo, este campo debe omitirse. --- ## Cancelación UUID Método de cancelación por UUID, para este método es indispensable previamente [cargar los certificados](https://developers.sw.com.mx/knowledge-base/api-certificados/) del emisor a la cuenta. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /cfdi33/cancel/**{rfc}/{uuid}/{motivo}/{folioSustitucion}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | rfc | Requerido | RFC del emisor | | uuid | Requerido | UUID del comprobante | | motivo | Requerido | Clave para expresar el motivo de la cancelación | | folioSustitucion | Condicional | UUID del comprobante que sustituye. Requerido solo cuando es con motivo “01” | #### Ejemplo Request 📌 Ejemplo — Con folioSustitucion 📌 Ejemplo — Sin folioSustitucion ℹ️ **Motivo 01** — El CFDI fue emitido con errores y existe uno que lo sustituye. Se agrega el UUID sustituto como último segmento del path. ``` curl --request POST --url https://services.test.sw.com.mx/cfdi33/cancel/EKU9003173C9/f7392818-aca8-44b0-9942-120d862a71ea/01/fe4e71b0-8959-4fb9-8091-f5ac4fb0fef8 --header 'Authorization: Bearer $token' ``` ℹ️ **Motivo 02** — El CFDI fue emitido con errores pero **no** existe un sustituto. El segmento `folioSustitucion` se omite completamente del path. ``` curl --request POST --url https://services.test.sw.com.mx/cfdi33/cancel/EKU9003173C9/f7392818-aca8-44b0-9942-120d862a71ea/02 --header 'Authorization: Bearer $token' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "acuse": "FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8201not(ancestor-or-self::*[local-name()='Signature'])yQdDpQmr8EW3PvHBdGDiOfcO4hF3gXApv9ggW+x8pGb0Ox1inycuKKBo46RBozt8oWat4g2jLQEak2PyS/JbEg==xAzJW9WdeFYkxR7+NQXGCgRoGCFbnUMN4aQ81OIa6Nh/NfuRStIhA8s5V4amtaNimYNR3v6PKAOUjCDVxxnVMw==BF66E582888CC845n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=AQAB", "uuid": { "FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8": "201" } }, "status": "success" } ``` ``` { "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CA305 - Certificado Inválido.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | More descriptive error message when one exists. | | data | object/null | Contiene información del acuse de cancelación emitido por el SAT, incluyendo el XML del acuse y el estatus del UUID. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-d7ca7ad7-f937-4d68-9b1c-589f2af945c5) --- ## Cancelación CSD Cancelación enviando los certificados CSD del emisor en base 64 directamente en el body del request. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /cfdi33/cancel/csd | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | uuid | Requerido | UUID del comprobante | | rfc | Requerido | RFC del emisor | | motivo | Requerido | Clave para expresar el motivo de la cancelación | | folioSustitucion | Condiciona | UUID del comprobante que sustituye. Requerido solo cuando es con motivo “01” | | b64Cer | Requerido | Certificado del emisor en Base64 | | b64Key | Requerido | Key del emisor en Base64 | | password | Requerido | Contraseña del certificado | #### Ejemplo Request 📌 Ejemplo — Con folioSustitucion 📌 Ejemplo — Sin folioSustitucion ℹ️ **Motivo 01** — El CFDI fue emitido con errores y existe uno que lo sustituye. Se agrega el UUID sustituto como último segmento del path. ``` curl --request POST \ --url https://services.test.sw.com.mx/cfdi33/cancel/csd \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "uuid": "059c8c06-af7e-4c8c-8085-51b631696de5", "password": "12345678a", "rfc": "EKU9003173C9", "motivo": "01", "folioSustitucion": "fe4e71b0-8959-4fb9-8091-f5ac4fb0fef8", "b64Cer": "$cer", "b64Key": "$key" }' ``` ℹ️ **Motivo 02** — El CFDI fue emitido con errores pero **no** existe un sustituto. El segmento `folioSustitucion` se omite completamente del path. ``` curl --request POST --url https://services.test.sw.com.mx/cfdi33/cancel/csd --header 'Authorization: Bearer $token' --header 'Content-Type: application/json' --data '{ "uuid": "059c8c06-af7e-4c8c-8085-51b631696de5", "password": "12345678a", "rfc": "EKU9003173C9", "motivo": "02", "b64Cer": "$cer", "b64Key": "$key" }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "acuse": "24B927FF-E5FA-4662-9BA0-9176A4C218B1201not(ancestor-or-self::*[local-name()='Signature'])5S+xTQEV6cO8ek7qdG2l3yAcepQ0kvQ9eakdiWDq9/2D6P20O48G6K8AUJ9C55fBVBYoj+sQ87YUF/dpGJZemA==W8JG7ypQmqfuOtFefK9HQwwI6BQHd9dojGhyo7YmDaG3RRGxMlGozQOJGYEHAR4XSvISKkCRnT9RodEdgnEfFw==BF66E582888CC845n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=AQAB", "uuid": { "24B927FF-E5FA-4662-9BA0-9176A4C218B1": "201" } }, "status": "success" } ``` ``` { "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CA305 - Certificado Inválido.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene información del acuse de cancelación emitido por el SAT, incluyendo el XML del acuse y el estatus del UUID. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-74c45f84-3cef-411d-a841-508bd9922851) --- ## Cancelación PFX Cancelación enviando el archivo PFX (combinación de certificado y llave privada) en Base 64. **💡Artículo de apoyo:** [¿Cómo crear un PFX?](https://developers.sw.com.mx/knowledge-base/como-crear-un-pfx/) #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /cfdi33/cancel/pfx | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | uuid | Requerido | UUID del comprobante | | rfc | Requerido | RFC del emisor | | motivo | Requerido | Clave para expresar el motivo de la cancelación | | folioSustitucion | Condicional | UUID del comprobante que sustituye. Requerido solo cuando es con motivo “01” | | b64Pfx | Requerido | Archivo Pfx en Base64 | | password | Requerido | Contraseña del certificado | #### Ejemplo Request 📌 Ejemplo — Con folioSustitucion 📌 Ejemplo — Sin folioSustitucion ℹ️ **Motivo 01** — El CFDI fue emitido con errores y existe uno que lo sustituye. Se agrega el UUID sustituto como último segmento del path. ``` curl --request POST \ --url https://services.test.sw.com.mx/cfdi33/cancel/pfx \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "uuid": "15b0cdf5-7cc6-4f6f-815a-5f101402f185", "password": "12345678a", "rfc": "EKU9003173C9", "motivo": "01", "folioSustitucion": "fe4e71b0-8959-4fb9-8091-f5ac4fb0fef8", "b64Pfx": "$Pfx" } ``` ℹ️ **Motivo 02** — El CFDI fue emitido con errores pero **no** existe un sustituto. El segmento `folioSustitucion` se omite completamente del path. ``` curl --request POST --url https://services.test.sw.com.mx/cfdi33/cancel/pfx --header 'Authorization: Bearer $token' --header 'Content-Type: application/json' --data '{ "uuid": "15b0cdf5-7cc6-4f6f-815a-5f101402f185", "password": "12345678a", "rfc": "EKU9003173C9", "motivo": "02", "b64Pfx": "$Pfx" }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "acuse": "FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8201not(ancestor-or-self::*[local-name()='Signature'])yQdDpQmr8EW3PvHBdGDiOfcO4hF3gXApv9ggW+x8pGb0Ox1inycuKKBo46RBozt8oWat4g2jLQEak2PyS/JbEg==xAzJW9WdeFYkxR7+NQXGCgRoGCFbnUMN4aQ81OIa6Nh/NfuRStIhA8s5V4amtaNimYNR3v6PKAOUjCDVxxnVMw==BF66E582888CC845n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=AQAB", "uuid": { "FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8": "201" } }, "status": "success" } ``` ``` { "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CA305 - Certificado Inválido.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene información del acuse de cancelación emitido por el SAT, incluyendo el XML del acuse y el estatus del UUID. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-c8da4d5b-5a45-4384-87a8-928467c547c0) --- ## Cancelación XML Servicio para cancelar enviando un XML con la información y folios de las facturas a cancelar. Este método puede ser utilizando para cancelación masiva de CFDI, ya que permite incluir múltiples folios en una sola petición. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /cfdi33/cancel/xml | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | multipart/form-data | #### 🧾 Parámetros Form | Propiedad | Uso | Descripción | | --- | --- | --- | | xml | Requerido | XML estructurado conforme al [estándar anexo 20](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20_version3-3.htm) (pág. 62, en el portal oficial del SAT), con la información de los comprobantes a cancelar | #### Ejemplo XML 📄 Ejemplo — Con folioSustitucion 📄 Ejemplo — Sin folioSustitucion 📄 Ejemplo – Cancelación masiva ``` 8I7eeK5eaJOH4OYMwWnEg67ytf81h7RWTBcA6h/fWC0= tHhFiHn7sJ8u3cenjUvtfs6U291YWhNGVo5QK/s6Ym9AhAEb0Lm5TGylw3ouckqJ245WV5MiQ6utw4vfPSgpfExEwjioiCwHuIdMq47Ss4Y/dumL0aq42K3XUqY5b4RPmrBhcmZG2wT1EuHVOmVyE7Ang4Vlx/ktiL+pTPqUCV4TzuJlFFJt2Pi3SYL31cbVeUWzxxLdrWHSiaaRND90GXpTaEMLGrYNIzzw6xy2NAxRlGM8d8tfLl9JV4Yi12y57xZWMr3q/IIAyNH0Gt+17wS1AZ3I0QleEy6cc4A92avW8uDp3pdiI9wRC5JpjqGTAAcJe+j5vY2CB2sYl9UXgA== OID.1.2.840.113549.1.9.2=responsable: ACDMA-SAT, OID.2.5.4.45=2.5.4.45, L=COYOACAN, S=CIUDAD DE MEXICO, C=MX, PostalCode=06370, STREET=3ra cerrada de caliz, E=oscar.martinez@sat.gob.mx, OU=SAT-IES Authority, O=SERVICIO DE ADMINISTRACION TRIBUTARIA, CN=AC UAT 292233162870206001759766198462772978647764840758 MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE= ``` ``` 8I7eeK5eaJOH4OYMwWnEg67ytf81h7RWTBcA6h/fWC0= tHhFiHn7sJ8u3cenjUvtfs6U291YWhNGVo5QK/s6Ym9AhAEb0Lm5TGylw3ouckqJ245WV5MiQ6utw4vfPSgpfExEwjioiCwHuIdMq47Ss4Y/dumL0aq42K3XUqY5b4RPmrBhcmZG2wT1EuHVOmVyE7Ang4Vlx/ktiL+pTPqUCV4TzuJlFFJt2Pi3SYL31cbVeUWzxxLdrWHSiaaRND90GXpTaEMLGrYNIzzw6xy2NAxRlGM8d8tfLl9JV4Yi12y57xZWMr3q/IIAyNH0Gt+17wS1AZ3I0QleEy6cc4A92avW8uDp3pdiI9wRC5JpjqGTAAcJe+j5vY2CB2sYl9UXgA== OID.1.2.840.113549.1.9.2=responsable: ACDMA-SAT, OID.2.5.4.45=2.5.4.45, L=COYOACAN, S=CIUDAD DE MEXICO, C=MX, PostalCode=06370, STREET=3ra cerrada de caliz, E=oscar.martinez@sat.gob.mx, OU=SAT-IES Authority, O=SERVICIO DE ADMINISTRACION TRIBUTARIA, CN=AC UAT 292233162870206001759766198462772978647764840758 MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE= ``` ``` 8I7eeK5eaJOH4OYMwWnEg67ytf81h7RWTBcA6h/fWC0= tHhFiHn7sJ8u3cenjUvtfs6U291YWhNGVo5QK/s6Ym9AhAEb0Lm5TGylw3ouckqJ245WV5MiQ6utw4vfPSgpfExEwjioiCwHuIdMq47Ss4Y/dumL0aq42K3XUqY5b4RPmrBhcmZG2wT1EuHVOmVyE7Ang4Vlx/ktiL+pTPqUCV4TzuJlFFJt2Pi3SYL31cbVeUWzxxLdrWHSiaaRND90GXpTaEMLGrYNIzzw6xy2NAxRlGM8d8tfLl9JV4Yi12y57xZWMr3q/IIAyNH0Gt+17wS1AZ3I0QleEy6cc4A92avW8uDp3pdiI9wRC5JpjqGTAAcJe+j5vY2CB2sYl9UXgA== OID.1.2.840.113549.1.9.2=responsable: ACDMA-SAT, OID.2.5.4.45=2.5.4.45, L=COYOACAN, S=CIUDAD DE MEXICO, C=MX, PostalCode=06370, STREET=3ra cerrada de caliz, E=oscar.martinez@sat.gob.mx, OU=SAT-IES Authority, O=SERVICIO DE ADMINISTRACION TRIBUTARIA, CN=AC UAT 292233162870206001759766198462772978647764840758 MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE= ``` #### Ejemplo Request ``` curl --location 'https://services.test.sw.com.mx/cfdi33/cancel/xml' \ --header 'Authorization: bearer {token}' \ --header 'Content-Type: multipart/form-data; boundary="----=_Part_11_11939969.1490230712432"' \ --data-raw '------=_Part_11_11939969.1490230712432 Content-Type: application/xml Content-Transfer-Encoding: binary Content-Disposition: form-data; name=xml; filename=xml 8I7eeK5eaJOH4OYMwWnEg67ytf81h7RWTBcA6h/fWC0=tHhFiHn7sJ8u3cenjUvtfs6U291YWhNGVo5QK/s6Ym9AhAEb0Lm5TGylw3ouckqJ245WV5MiQ6utw4vfPSgpfExEwjioiCwHuIdMq47Ss4Y/dumL0aq42K3XUqY5b4RPmrBhcmZG2wT1EuHVOmVyE7Ang4Vlx/ktiL+pTPqUCV4TzuJlFFJt2Pi3SYL31cbVeUWzxxLdrWHSiaaRND90GXpTaEMLGrYNIzzw6xy2NAxRlGM8d8tfLl9JV4Yi12y57xZWMr3q/IIAyNH0Gt+17wS1AZ3I0QleEy6cc4A92avW8uDp3pdiI9wRC5JpjqGTAAcJe+j5vY2CB2sYl9UXgA==OID.1.2.840.113549.1.9.2=responsable: ACDMA-SAT, OID.2.5.4.45=2.5.4.45, L=COYOACAN, S=CIUDAD DE MEXICO, C=MX, PostalCode=06370, STREET=3ra cerrada de caliz, E=oscar.martinez@sat.gob.mx, OU=SAT-IES Authority, O=SERVICIO DE ADMINISTRACION TRIBUTARIA, CN=AC UAT292233162870206001759766198462772978647764840758MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE= ------=_Part_11_11939969.1490230712432--' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "acuse": "FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8201not(ancestor-or-self::*[local-name()='Signature'])yQdDpQmr8EW3PvHBdGDiOfcO4hF3gXApv9ggW+x8pGb0Ox1inycuKKBo46RBozt8oWat4g2jLQEak2PyS/JbEg==xAzJW9WdeFYkxR7+NQXGCgRoGCFbnUMN4aQ81OIa6Nh/NfuRStIhA8s5V4amtaNimYNR3v6PKAOUjCDVxxnVMw==BF66E582888CC845n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=AQAB", "uuid": { "FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8": "201" } }, "status": "success" } ``` ``` { "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CA305 - Certificado Inválido.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene información del acuse de cancelación emitido por el SAT, incluyendo el XML del acuse y el estatus del UUID. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-adae8145-0ba5-419b-ab24-0451b014992c) --- ## Respuestas de cancelación Todos los response de cancelación retornan la misma estructura en caso de error o en caso de petición satisfactoria, las cuales son las siguientes: **💡Tipos de respuesta:** En caso de una respuesta exitosa, se regresará un 200. En caso de una respuesta no exitosa, se regresará un código diferente de 200, el código puede variar dependiendo del problema dado. #### Respuesta exitosa Respuestas exitosas para todos los servicios de cancelación ``` { "data": { "acuse": "3EAEABC9-EA41-4627-9609-C6856B78E2B1202not(ancestor-or-self::*[local-name()='Signature'])yoO1MKUhUcokwUgyKt5GJbcXvSzZhMKOp2pGhtuwBVrk35Y8HW8s6gJ04liSamflJFNWwUzaFOIf7KpS0SKkaw==7ZKbUqUVSXkd9Xo9Dm4xOzrqd+j8v3NQWH8HeIPH+opnTOTGNSlVu+a2cqKKB7vmbt2ZTyfsaNsZ+d7up0zEIw==00001088888810000001vAr6QLmcvW6auTg7a+Ogm0veNvqJ30rD3j0iSAHxGzGVrg1d0xl0Fj5l+JX9EivD+qhkSY7pfLnJoObLpQ3GGZZOOihJVS2tbJDmnn9TW8fKUOVg+jGhcnpCHaUPq/Poj8I2OVb3g7hiaREORm6tLtzOIjkOv9INXxIpRMx54cw46D5F1+0M7ECEVO8Jg+3yoI6OvDNBH+jABsj7SutmSnL1Tov/omIlSWausdbXqykcl10BLu2XiQAc6KLnl0+Ntzxoxk+dPUSdRyR7f3Vls6yUlK/+C/4FacbR+fszT0XIaJNWkHaTOoqz76Ax9XgTv9UuT67j7rdTVzTvAN363w==AQAB", "uuid": { "3EAEABC9-EA41-4627-9609-C6856B78E2B1": "202" } }, "status": "success" } ``` En este caso se recibe un mensaje JSON, el cual contiene los siguientes datos: - Acuse: Xml de acuse que regresa el SAT, Se considera una solicitud de cancelación exitosa, sin embargo, esto no asegura su cancelación. - UUID: uuid de la solicitud y el estatus de él. #### Respuestas no exitosas Respuestas NO exitosas para todos los servicios de cancelación Listado de códigos de error comunes por cada servicio. | Código (message) | Detalle (messageDetail) | Causa probable | Aplica a | | --- | --- | --- | --- | | `CASD` | El uuid proporcionado es inválido. Favor de verificar. | El UUID no tiene el formato correcto o no existe en el sistema | CSD, PFX, UUID | | `CASD` | El Rfc proporcionado es inválido. Favor de verificar. | El RFC no cumple el formato del SAT o no corresponde al emisor | CSD, PFX, UUID | | `CASD` | Invalid length for a Base-64 char array or string. | El valor de `b64Cer`, `b64Key` o `b64Pfx` no es Base64 válido | CSD, PFX | | `CACFDI33` | El certificado no pertenece a la llave privada. | El archivo `.cer` y el `.key` no corresponden al mismo CSD | CSD | | `CACFDI33` | Error con los CSD. Error: Cannot Read PFX…… | El archivo PFX está corrupto, mal generado o la contraseña es incorrecta | PFX | | `CACFDI33` | El UUID proporcionado es invalido. Favor de verificar. | El UUID en el path no tiene el formato correcto | UUID | | `CACFDI33` | El Rfc proporcionado es invalido. Favor de verificar. | El RFC en el path no es válido | UUID | | `CACFDI33 - Problemas con el xml.` | CA302 – Sello mal formado o inválido. | El XML no está firmado correctamente con el CSD del emisor | XML | | `CACFDI33 - Problemas con el xml.` | CA305 – La fecha de emisión no esta dentro de la vigencia del CSD del Emisor. | El CSD está vencido o la fecha del XML no corresponde a su vigencia | XML | --- ### Códigos de respuesta de folios de cancelación | Codigo | Mensaje | Descripción | | --- | --- | --- | | 201 | Solicitud de cancelación exitosa. | Se considera una solicitud de cancelación exitosa, sin embargo esto no asegura su cancelación. | | 202 | Folio Fiscal Previamente Cancelado. | Se considera solicitud de cancelación previamente enviada. Estatus Cancelado ante el SAT. | | 203 | Folio Fiscal No Correspondiente al Emisor. | El folio fiscal no corresponde al emisor de la solicitud de cancelación. | | 204 | Folio Fiscal No Aplicable a Cancelación. | El folio fiscal no es válido para la cancelación. | | 205 | Folio Fiscal No Existente. | El SAT da una prorroga de 48 hrs para que el comprobante aparezca con estatus Vigente posterior al envió por parte del Proveedor de Certificación de CFDI. Puede que algunos comprobantes no aparezcan al momento, es necesario esperar por lo menos 48 hrs. | | 206 | UUID no corresponde a un CFDI del Sector Primario | El UUID no corresponde a un CFDI del Sector Primario. | | 207 | No se especificó el motivo de cancelación o el motivo no es valido. | El UUID sustitución no existe, está cancelado o tiene una fecha de emisión anterior a la fecha de emisión del comprobante original. | | 208 | Folio Sustitución invalido. | El folio de sustitución es inválido. | | 209 | Folio Sustitución no requerido. | El folio de sustitución no es necesario. | | 210 | La fecha de solicitud de cancelación es mayor a la fecha de declaración. | 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. | La fecha de solicitud de cancelación supera el límite permitido para una factura global. | | 212 | Relación no valida o inexistente. | La relación especificada no es válida o no existe. | | 300 | Usuario No Válido. | El usuario que realizó la solicitud no es 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 | La firma digital del acuse de cancelación es inválida o mal formada. | | 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. | El Certificado de Sello Digital (CSD) es inválido. | | 311 | Motivo inválido. | Clave de motivo de cancelación no válida. | | 312 | UUID no relacionado. | UUID no relacionado de acuerdo a la clave de motivo de cancelación | --- # Cancelación CFDI con estatus Fuente: https://developers.sw.com.mx/knowledge-base/cancelacion-cfdi-con-estatus/ Categoria: Cancelaciones Servicio mediante el cual podrás realizar las cancelaciones de tus comprobantes a través de los diferentes métodos disponibles, adicional a esto recibes el estatus del CFDI. Antes de cancelar, recomendamos [consultar los CFDIs relacionados](https://developers.sw.com.mx/knowledge-base/consulta-cfdi-relacionados/) para que el proceso de cancelación se lleve de manera correcta. **🚨Importante:** Si los valores **rfcReceptor** y/o **total** no corresponden a los del CFDI a cancelar, el proceso será llevado a cabo de igual manera, pero la validación de estatus arrojará el error **No encontrado** **💡Nota Importante:** Este servicio no está recomendado para cancelaciones masivas o para un alto volumen de cancelaciones. Para este tipo de operaciones, se recomienda utilizar los servicios de [Cancelación](https://developers.sw.com.mx/knowledge-base/cancelacion-cfdi/) #### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 --- ## Cancelación UUID Método de cancelación por UUID, para este método es indispensable previamente [cargar los certificados](https://developers.sw.com.mx/knowledge-base/api-certificados/) del emisor a la cuenta. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /cfdi33/cancel/**{rfc}/{uuid}/{rfcReceptor}/{total}/{motivo}/{folioSustitucion}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | rfc | Requerido | RFC del emisor | | uuid | Requerido | UUID del comprobante | | rfcReceptor | Requerido | RFC del receptor | | total | Requerido | Total del comprobante | | motivo | Requerido | Clave para expresar el motivo de la cancelación | | folioSustitucion | Opcional | UUID del comprobante que sustituye | #### Ejemplo Request ``` curl --request POST \ --url https://services.test.sw.com.mx/cfdi33/cancel/EKU9003173C9/559570c0-d71f-495f-a083-885a9ab358ee/URE180429TM6/199.96/01/a29c3936-89a6-4bfd-ac82-b41da2c51aa4 \ --header 'Authorization: Bearer $token' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "acuse": "559570C0-D71F-495F-A083-885A9AB358EE2013ipFPloQCRq2afZEAaQY6u4Ch7A=n0Yw2fFZcILcuy9olyVUk91zGZiYsMfM1wic+5s2Vq5fr0pggcgFzdssK1bO9CPhXsfZc6jUaTFCzVFqMJprU0T4wri4e5zOsOiAJSNBNWDaXlkihL2b7rX3Bvy7i4cG1ZLQvqs3DDvnZIeaXmAJ5m4Aga4bFPPcWNhIpax6MwR0fvuSHdYR6Z59WAQOJpW0XdnKXYvs+0EEyLo0JYz9ZjK5LPjjPilVNuYfrgec/vW7T3HLgm3sb9Q/gh4FTE69p9D1vFLK8lcAUA6rFyDt7VCzTbbqOn/6oETzvgGtpWNbfACnhi3NdAKwZFEjUhRVQ4Q0mM1wWArGeJIBeVWg9g==OID.1.2.840.113549.1.9.2=responsable: ACDMA-SAT, OID.2.5.4.45=2.5.4.45, L=COYOACAN, S=CIUDAD DE MEXICO, C=MX, PostalCode=06370, STREET=3ra cerrada de caliz, E=oscar.martinez@sat.gob.mx, OU=SAT-IES Authority, O=SERVICIO DE ADMINISTRACION TRIBUTARIA, CN=AC UAT3330303031303030303030353030303033343136MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE=", "uuid": { "559570C0-D71F-495F-A083-885A9AB358EE": "202" } "statusSat": "Cancelado", "statusCodeSat": "S - Comprobante obtenido satisfactoriamente.", "isCancelable": "Cancelable con aceptación", "statusCancelation": "Plazo vencido" }, "status": "success" } ``` ``` { "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CA305 - Certificado Inválido.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene la información del CFDI mandado a cancelar, incluyendo el acuse en XML, el estatus ante el SAT, entre otros datos. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-3b500a52-57c3-4ac0-afb8-0d13ba79273a) --- ## Cancelación CSD Cancelación por CSD #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /cfdi33/cancel/csd/status | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | uuid | Requerido | UUID del comprobante | | rfc | Requerido | RFC del emisor | | motivo | Requerido | Clave para expresar el motivo de la cancelación | | folioSustitucion | Opcional | UUID del comprobante que sustituye | | rfcReceptor | Requerido | RFC del receptor | | total | Requerido | Total del comprobante | | b64Cer | Requerido | Certificado del emisor en Base64 | | b64Key | Requerido | Key del emisor en Base64 | | password | Requerido | Contraseña del certificado | #### Ejemplo Request ``` curl --request POST \ --url https://services.test.sw.com.mx/cfdi33/cancel/csd/status \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "uuid": "cc40c03a-c390-4994-813e-5c74317cd487", "password": "12345678a", "rfc": "EKU9003173C9", "motivo": "01", "total": "199.16", "rfcReceptor": "URE180429TM6", "folioSustitucion":"559570c0-d71f-495f-a083-885a9ab358ee", "b64Key": "$key", "b64Cer": "$cer" }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "acuse": "CC40C03A-C390-4994-813E-5C74317CD487202oDWXopAbmsdzSkyVdymraaY3e94=lm81x6Zalo4/lRhVKCB/J2IK7LCEohf9/EFV+SV0HzNBhEwK1E9VzYYZmgwaWf7UhDqUprPRvAMfycGdejvBjRosJKcIhQEozunxUSPllzIQh3ShfJprsUgxVBEvtvc/KZnUebLaO39gF9bp9vG4GgWp8Fz7vosbey46aulJ7sEnvz6r3JBeXu5Xw/Ls6JzrxpUxNX8KPdq7J3Qw0gj0xqQssXngjeihYgF6J0/9aiDvXRQHKgL+661Ram72BnsbeHcIrKg/ssWWXDgpc0i+p5uGe8kQVQIQU6OANdL9YZN1tWv33uQ2yT9IOmnZGtm/lbkulAciTsweC4+OMBA7cA==OID.1.2.840.113549.1.9.2=responsable: ACDMA-SAT, OID.2.5.4.45=2.5.4.45, L=COYOACAN, S=CIUDAD DE MEXICO, C=MX, PostalCode=06370, STREET=3ra cerrada de caliz, E=oscar.martinez@sat.gob.mx, OU=SAT-IES Authority, O=SERVICIO DE ADMINISTRACION TRIBUTARIA, CN=AC UAT3330303031303030303030353030303033343136MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE=", "uuid": { "CC40C03A-C390-4994-813E-5C74317CD487": "202" } "statusSat": "Cancelado", "statusCodeSat": "S - Comprobante obtenido satisfactoriamente.", "isCancelable": "Cancelable con aceptación", "statusCancelation": "Plazo vencido" }, "status": "success" } ``` ``` { "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CA305 - Certificado Inválido.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene la información del CFDI mandado a cancelar, incluyendo el acuse en XML, el estatus ante el SAT, entre otros datos. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-2d5efc0e-5aa2-413b-9f07-c1141bb94ac4) --- ## Cancelación PFX Cancelación por PFX. **💡Artículo de apoyo:** [¿Cómo crear un PFX?](https://developers.sw.com.mx/knowledge-base/como-crear-un-pfx/) #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /cfdi33/cancel/pfx/status | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | uuid | Requerido | UUID del comprobante | | rfc | Requerido | RFC del emisor | | motivo | Requerido | Clave para expresar el motivo de la cancelación | | folioSustitucion | Opcional | UUID del comprobante que sustituye | | rfcReceptor | Requerido | RFC del receptor | | total | Requerido | Total del comprobante | | b64Pfx | Requerido | Archivo Pfx en Base64 | | password | Requerido | Contraseña del certificado | #### Ejemplo Request ``` curl --request POST \ --url https://services.test.sw.com.mx/cfdi33/cancel/pfx \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "uuid": "cc40c03a-c390-4994-813e-5c74317cd487", "password": "12345678a", "rfc": "EKU9003173C9", "motivo": "01", "total": "199.16", "rfcReceptor": "URE180429TM6", "folioSustitucion":"559570c0-d71f-495f-a083-885a9ab358ee", "b64Pfx": "$Pfx" }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "acuse": "CC40C03A-C390-4994-813E-5C74317CD487202d17Icwd3m1L9EtyoBymjMo2c8hA=WS8mHLpiI77TgvC3/X8w7wtAV+EL8Wul0iNeWOTyp9qGTlISZUqbqwdbUG8Er2D+fGkUWQOMTw/yXU/U7lUE+7La7bLlGfpJQ5CIsyC/aYKCngb+rbVeqS7iRjo02fpyi+odO6Zvv0E1xA7r98H4qt97/V+9+2eZrJZ3SB4xHkSQm2le3vsiSPuk4UaQvP2MO3Wcit0EeK2UAgiTaGoEyrRUVgVEiXZBs/SoirpYxKQ+hpa6OlWVPFCJUxl70M+obMqrCiuYrMmkVbmbRlRRNL2QuINRZ912Ot3FAc4eQkPpgnhopwDZ7unCwd+DNV+0Qrcaa4UD2WOGuvT4olm7Rw==OID.1.2.840.113549.1.9.2=responsable: ACDMA-SAT, OID.2.5.4.45=2.5.4.45, L=COYOACAN, S=CIUDAD DE MEXICO, C=MX, PostalCode=06370, STREET=3ra cerrada de caliz, E=oscar.martinez@sat.gob.mx, OU=SAT-IES Authority, O=SERVICIO DE ADMINISTRACION TRIBUTARIA, CN=AC UAT3330303031303030303030353030303033343136MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE=", "uuid": { "CC40C03A-C390-4994-813E-5C74317CD487": "202" } "statusSat": "Cancelado", "statusCodeSat": "S - Comprobante obtenido satisfactoriamente.", "isCancelable": "Cancelable con aceptación", "statusCancelation": "Plazo vencido" }, "status": "success" } ``` ``` { "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CA305 - Certificado Inválido.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene la información del CFDI mandado a cancelar, incluyendo el acuse en XML, el estatus ante el SAT, entre otros datos. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-92bf677b-ab92-4bdf-91fc-fca94541d481) --- ## Respuestas no exitosas Respuestas no exitosas/Cancelación por UUID ``` { "message": "CACFDI33", "messageDetail": "El UUID proporcionado es invalido. Favor de verificar.", "data": null, "status": "error" } ``` ``` { "message": "CACFDI33", "messageDetail": "El Rfc proporcionado es invalido. Favor de verificar.", "data": null, "status": "error" } ``` Respuestas no exitosas/Cancelación por CSD ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "El uuid proporcionado es inválido. Favor de verificar.", "data": null, "status": "error" } ``` ``` { "message": "CACFDI33 - Problemas con los campos.", "messageDetail": "El certificado no pertenece a la llave privada.", "data": null, "status": "error" } ``` ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "El Rfc proporcionado es inválido. Favor de verificar.", "data": null, "status": "error" } ``` ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "Invalid length for a Base-64 char array or string.", "data": null, "status": "error" } ``` Respuestas no exitosas/Cancelación por PFX ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "El uuid proporcionado es inválido. Favor de verificar.", "data": null, "status": "error" } ``` ``` { "message": "CACFDI33 - Problemas con los CSD.", "messageDetail": "Error con los CSD. Error: Cannot Read PFX......", "data": null, "status": "error" } ``` ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "El Rfc proporcionado es inválido. Favor de verificar.", "data": null, "status": "error" } ``` ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "Invalid length for a Base-64 char array or string.", "data": null, "status": "error" } ``` --- ### Códigos de respuesta de folios de cancelación | Codigo | Mensaje | Descripción | | --- | --- | --- | | 201 | Solicitud de cancelación exitosa. | Se considera una solicitud de cancelación exitosa, sin embargo esto no asegura su cancelación. | | 202 | Folio Fiscal Previamente Cancelado. | e considera solicitud de cancelación previamente enviada. Estatus Cancelado ante el SAT. | | 203 | Folio Fiscal No Correspondiente al Emisor. | | | 204 | Folio Fiscal No Aplicable a Cancelación. | | | 205 | Folio Fiscal No Existente. | El SAT da una prorroga de 48 hrs para que el comprobante aparezca con estatus Vigente posterior al envió por parte del Proveedor de Certificación de CFDI. Puede que algunos comprobantes no aparezcan al momento, es necesario esperar por lo menos 48 hrs. | | 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. | El UUID sustitución no existe, está cancelado o tiene una fecha de emisión anterior a la fecha de emisión del comprobante original. | | 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. | | | 311 | Motivo inválido. | Clave de motivo de cancelación no válida. | | 312 | UUID no relacionado. | UUID no relacionado de acuerdo a la clave de motivo de cancelación | --- # Cancelación de CFDI: ¿Qué debes saber? Fuente: https://developers.sw.com.mx/knowledge-base/proceso-de-cancelacion-de-cfdi/ Categoria: Cancelaciones Las cancelaciones de CFDI (Comprobante Fiscal Digital por Internet) implican el proceso de invalidar una factura electrónica previamente emitida. Este procedimiento es esencial para corregir errores, evitar problemas fiscales y mantener una contabilidad precisa. En este artículo, te explicaremos todo lo que necesitas saber para llevar a cabo este proceso correctamente. ### Consultar Estatus del CFDI Para comenzar, es crucial conocer el estatus de tu factura. Esto puede realizarse mediante la consulta en [**la herramienta del SAT**](https://verificacfdi.facturaelectronica.sat.gob.mx/) diseñada para este propósito o utilizando el [**Web Service de Consulta de Estatus**](https://developers.sw.com.mx/knowledge-base/servicio-publico-de-consulta-estatus-cfdi-sat/). A continuación, te presentamos los detalles del estatus de un CFDI en un diagrama: ![](https://developers.sw.com.mx/wp-content/uploads/2024/06/Captura-de-pantalla-2024-06-12-185055.png) ### CFDI Vigente – No Cancelable Un **CFDI Vigente** es una factura electrónica que está activa y puede ser considerada para la cancelación, según ciertas condiciones que veremos a continuación: **CFDI Vigente - No Cancelable** Un **CFDI No Cancelable** está relacionado con otros documentos mediante el **Folio Fiscal UUID**, lo que impide su cancelación directa. ##### ¿Cómo cancelar un CFDI No Cancelable? 1. **Identifica los Documentos Relacionados**: - Consulta los CFDI secundarios vinculados. Para más detalles, consulta nuestro artículo: [**Consulta CFDI relacionados antes de cancelar.**](https://developers.sw.com.mx/knowledge-base/consulta-cfdi-relacionados/) 2. **Cancela los Documentos Secundarios**. 3. **Cancela el CFDI Principal**: - Una vez que los documentos secundarios estén cancelados, verifica que se haya modificado el estatus del CFDI principal a **Cancelable**, ahora se le aplicara el procedimiento de cancelación según el estatus de dicho comprobante (ver siguiente tema). --- ### CFDI Vigente – Cancelable Para los CFDI que se consideren **Cancelables**, es necesario aplicar otro filtro para determinar si son cancelables con aceptación o sin aceptación del receptor. A continuación, exploraremos estas modalidades para obtener toda la información con sus especificaciones detalladas: **Cancelable sin Aceptación** La **cancelación directa** o **sin aceptación del receptor** de los CFDI es la posibilidad de invalidar una factura electrónica de manera inmediata y sin requerir la aprobación expresa del receptor (cliente). Te explicamos el flujo del proceso en este diagrama: ![](https://developers.sw.com.mx/wp-content/uploads/2024/06/Captura-de-pantalla-2024-06-13-130859.png) Esta modalidad aplica bajo ciertas **condiciones** específicas que permiten cancelar el CFDI de forma automática o inmediata, sin necesidad de intervención adicional por parte del receptor. Las condiciones son las siguientes: ![](https://developers.sw.com.mx/wp-content/uploads/2024/06/Captura-de-pantalla-2024-06-13-130911.png) Cualquier CFDI que no cumpla estas condiciones caerá en la modalidad **Cancelable con Aceptación**. **Cancelable con Aceptación** La **cancelación con aceptación** del receptor se refiere al proceso mediante el cual se solicita la anulación de una factura electrónica y se requiere la aprobación explícita por parte del receptor (cliente) para proceder con la cancelación. Te explicamos el flujo del proceso en este diagrama: ![](https://developers.sw.com.mx/wp-content/uploads/2024/06/Captura-de-pantalla-2024-06-13-131708.png) Este método se aplica a los CFDI que no cumplen con las condiciones para ser Cancelables sin Aceptación (Ver apartado Cancelables sin Aceptación). **Proceso de cancelación:** - Se debe enviar una solicitud de cancelación al receptor (cliente) a través del sistema de facturación o el portal del SAT. - El receptor recibe en su buzón tributario la solicitud de cancelación. - El receptor debe aprobar la solicitud digitalmente. - Si el receptor no responde en un plazo de 72 horas hábiles, el CFDI se cancela automáticamente por Plazo Vencido, a menos que haya rechazado una solicitud previa. Si deseas saber cuales de tus solicitudes estan pendientes de Aceptación/Rechazo consulta nuestro articulo: **[Pendientes de Aceptación/Rechazo](https://developers.sw.com.mx/knowledge-base/consulta-de-solicitudes-pendientes-de-cancelacion/)** Si como receptor quieres aceptar o rechazar tus solicitudes pendientes puedes consultar nuestro articulo: **[Aceptar/Rechazar Solicitudes de Cancelación.](https://developers.sw.com.mx/knowledge-base/aceptar-o-rechazar-cancelacion-cfdi/)** --- ### Motivos de Cancelación **¿Qué motivo de cancelación debo elegir?** En el esquema de cancelación implementado en 2022 se introdujo una lista de motivos destinados a justificar la anulación de un Comprobante Fiscal Digital por Internet (CFDI). A continuación, explicamos estos motivos junto con ejemplos mencionados por la autoridad fiscal. | | | | --- | --- | | **Motivo** | **Descripción** | | 01 | Comprobante emitido con errores con relación. (Se debe agregar el FolioSustitución) | | 02 | Comprobante emitido con errores sin relación. | | 03 | No se llevó a cabo la operación. | | 04 | Operación nominativa relacionada en una factura global. | **Motivo 01** ![](https://developers.sw.com.mx/wp-content/uploads/2024/06/Captura-de-pantalla-2024-06-13-145614.png) **Motivo 02** ![](https://developers.sw.com.mx/wp-content/uploads/2024/06/Captura-de-pantalla-2024-06-13-145643.png) **Motivo 03** – No se llevó a cabo la operación. ![](https://developers.sw.com.mx/wp-content/uploads/2024/06/Captura-de-pantalla-2024-06-13-145655.png) **Motivo 04** ![](https://developers.sw.com.mx/wp-content/uploads/2024/06/Captura-de-pantalla-2024-06-13-145706.png) --- ### Proceso de Cancelación del lado del Receptor **¿Qué servicios debo considerar como receptor al recibir una solicitud de cancelación?** Aquí te explicamos el flujo de trabajo para los servicios de cancelación actuales, desde la perspectiva del receptor. Los servicios explicados son vitales para gestionar eficientemente las cancelaciones. ![](https://developers.sw.com.mx/wp-content/uploads/2018/08/Nuevo-diagrama-1024x301.png) #### Servicios disponibles para la cancelación Receptor | Nombre | Proveedor | Descripción | | --- | --- | --- | | [Servicio de Consulta Solicitudes Pendientes](https://developers.sw.com.mx/knowledge-base/consulta-de-solicitudes-pendientes-de-cancelacion/) | LunaSoft | Servicio auxiliar de cancelaciones, en el cual se obtiene la lista de UUID para poder aceptar o rechazar las solicitudes. | | [Aceptar o Rechazar Solicitudes de Cancelacion](https://developers.sw.com.mx/knowledge-base/aceptar-o-rechazar-cancelacion-cfdi/) | LunaSoft | Servicio auxiliar para cancelaciones: permite enviar una lista de UUID solicitados para cancelación junto con su aceptación o rechazo. | Importante: Nuestra recomendación para facilitar el flujo en sus procesos es consultar diariamente las facturas que tiene pendientes por Aceptar/Rechazar. Posterior a la consulta hacer las acciones que usted considere y enviar la solicitud para Aceptarlas/Rechazarlas. --- ### Proceso técnico para cancelación de CFDI **Información técnica para Cancelaciones de CFDI** Conoce el flujo para procesar la solicitud de cancelaciones, de esta forma tendrás conocimiento en que parte del proceso quedó tu solicitud, y saber que continuidad llevar: ![](https://developers.sw.com.mx/wp-content/uploads/2022/01/Copia-de-flujo-cancelacion-Adrian-edited-1.png) Te compartimos los métodos que SW proporciona para este proceso. Visita nuestro artículo sobre **[Cancelación CFDI](https://developers.sw.com.mx/knowledge-base/cancelacion-cfdi/)** para más información. Además, nuestros ingenieros de soporte han preparado una explicación detallada en el siguiente video: **Video:** [CANCELACIÓN 2023](https://www.youtube.com/watch?v=YWA-9ldomxM) --- ### **Casos Prácticos y Consultas Frecuentes** Casos para **Cancelación Directa** - Facturas que sean de hasta 1,000 MXN. - Recibos de Nómina. - CFDI tipo Egreso. - CFDI tipo Traslado. - CFDI de retenciones e información de pagos. - Factura de ingreso expedido a contribuyentes del RIF. - CFDI con fecha de hasta 1 día hábil atrás. - Operaciones con público en general. - Recibidos por residentes en el extranjero. - Factura a través del adquiriente y sector primario. - CFDI emitido por integrantes del sistema financiero. Casos para **cancelación con Aceptación/Rechazo** - Todos aquellos que no cumplan con ni un punto de los descritos para **Cancelación directa**. ¿Una factura de **nómina** se puede cancelar sin Aceptación/Rechazo? Si, la factura se procesará a través de **cancelación directa**. ¿En que WebService se cancela con Aceptación/Rechazo? El WebService será el mismo de [cancelación](https://developers.sw.com.mx/knowledge-base/cancelacion-cfdi-3-3/) que se ha venido manejando. Ahora cuando enviemos una factura que cumpla con **características** de Aceptación/Rechazo el mismo SAT hará las validaciones pertinentes y enviara la notificación al receptor de la petición de cancelación, a través del buzón tributario. Nosotros como emisores obtendremos nuestro acuse como lo hemos venido haciendo, solo que **este acuse solo será el acuse de “solicitud de cancelación”**, en otras palabras no significa que la factura se encuentre **cancelada**. Así mismo nosotros en SmarterWeb® contamos con dichos servicios para el **receptor**. [Click Aquí](https://developers.sw.com.mx/knowledge-base/como-cancelar-receptor/). ¿Cuanto tiempo tardará la cancelación una vez acepte el receptor? La cancelación se realizará de manera inmediata. Para verificar podemos revisar el estatus del CFDI haya cambiado de **vigente** a **cancelado**. ¿Cómo consulto las facturas **relacionadas** de mi CFDI? A través del WebService de [Consulta de CFDI Relacionados](https://developers.sw.com.mx/knowledge-base/consulta-cfdi-relacionados/). ¿El PAC será el encargado de validar si es con Aceptación/Rechazo? El **SAT** es quien hará las validaciones y nos retornará los errores en caso de que llegasen a pasar. ¿Cuantas veces puedo enviar la solicitud de cancelación? No existe un límite de solicitudes, por lo que puedes mandar N número de veces. ¿Cuanto tiempo tiene para Aceptar/Rechazar mi cliente? Tiene un plazo de 3 días hábiles para responder si acepta o rechaza la solicitud. ¿Que pasa si mi cliente no responde en 3 días hábiles? Si es la **primera vez** que se envía la solicitud de cancelación a esa factura, **se cancelará en automático**. Si anteriormente ya te habían **rechazado** la petición y no responde en 3 días hábiles, **no se cancelará en automático**, si no hasta que el cliente acepte o rechace, aún así sean más de 3 días hábiles. ¿Si la factura es menos de $1,000 pero pasa de 24 hrs, es cancelación con Aceptación/Rechazo? No, la factura se cancelaría **inmediatamente** al cumplir una de las condiciones de **Cancelación Directa**. Envié la solicitud de cancelación de un CFDI con aceptación, y el SAT la acepto y me regreso el acuse de cancelación, al consultar el estatus de la factura a los dias me sigue indicando como ACTIVA o VIGENTE ¿A que se debe esta situación? La solicitud de cancelación no ha sido aceptada por el Receptor, debes realizar nuevamente el proceso, si el receptor no contesta se cancelara como “Plazo vencido” recordemos que obtener el acuse no significa que el CFDI se cancelará correctamente, recomendamos estar monitoreando el estatus de los CFDI. ¿Cómo es el proceso para la cancelación MOTIVO 01 ? Para ejemplificar este proceso, usaremos la siguiente nomenclatura: – La factura por cancelar será el documento “A” – La nueva factura será el documento “B”. **Paso 1:** Elaborar la factura “B”, al momento de su expedición se debe relacionar a la factura “A” usando el TIPO DE RELACION 04 = SUSTITUCÍÓN DE LOS CFDI PREVIOS. **Paso 2:**Notaras que al consultar la factura “A” estará con el estatus de NO CANCELABLE, sin embargo DEBES CONTINUAR Y ENVIAR LA SOLICITUD DE CANCELACIÓN AL SAT BAJO EL MOTVI 01, el SAT al recibir la solicitud, detectara que dicha solicitud procede de un motivo 01 y que ya existe una relación de documento y procederá satisfactoriamente con tu petición de cancelación. Tengo una factura (“A”) que necesito cancelar con MOTIVO 01, pero la factura ya esta relacionada con otro documento (“B”), ¿cómo es el proceso y que pasa con el documento que ya esta relacionado? Para ejemplificar este proceso, usaremos la siguiente nomenclatura: -La factura por cancelar será el documento “A” -El documento ya existente relacionado a la factura a será “B” -La nueva factura que se debe expedir en sustitución será el documento “C” **Paso 1:** Se debe elaborar el nuevo documento “C”, al momento de expedirlo debe quedar relacionado al documento “A”. **Paso 2:** El documento “B” que ya estaba inicialmente relacionado al documento “A”, pasará a ser heredado automáticamente al nuevo documento “C”. **Paso 3:** Procesa o envía tu solicitud de cancelación para el documento “A” , notarás que el estatus estará como NO CANCELABLE, sin embargo DEBES CONTINUAR Y ENVIAR LA SOLICITUD DE CANCELACIÓN AL SAT BAJO EL MOTIVO 01, el SAT al recibir la solicitud, detectara que dicha solicitud procede de un motivo 01 y que ya existe una relación de documento, a si como un tercer documento relacionado que será heredado a la nueva factura “C”, con base en ello procederá satisfactoriamente con tu petición de cancelación únicamente para el documento “A”, el documento “B” quedara activo y ahora relacionado automáticamente al “C” --- # Cancelación V2 CFDI Fuente: https://developers.sw.com.mx/knowledge-base/cancelacion-v2-cfdi/ Categoria: Cancelaciones Servicio mediante el cual podrás realizar las cancelaciones de tus comprobantes a través de los diferentes métodos disponibles. **💡Nota:** El servicio de cancelación cuenta con una v2 que retorna la descripción del código de estatus en la respuesta para los 4 métodos: UUID, CSD, PFX y XML. **Algo importante es que la v2 convive con la v1 y su adopción es completamente opcional.** Para este servicio también puedes utilizar los [CSD de pruebas](https://developers.sw.com.mx/knowledge-base/donde-encuentro-csd-de-pruebas-vigentes/) proporcionados por el SAT. Antes de cancelar, recomendamos [consultar el estatus de la factura](https://developers.sw.com.mx/knowledge-base/servicio-publico-de-consulta-estatus-cfdi-sat/) y [consultar los CFDIs relacionados](https://developers.sw.com.mx/knowledge-base/consulta-cfdi-relacionados/) para que el proceso de cancelación se lleve de manera correcta. #### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 --- ## Cancelación UUID Método de cancelación por UUID, para este método es indispensable previamente [cargar los certificados](https://developers.sw.com.mx/knowledge-base/api-certificados/) del emisor a la cuenta. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /cfdi33/cancel/**{rfc}/{uuid}/{motivo}/{folioSustitucion}/**v2 | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | rfc | Requerido | RFC del emisor | | uuid | Requerido | UUID del comprobante | | motivo | Requerido | Clave para expresar el motivo de la cancelación | | folioSustitucion | Opcional | UUID del comprobante que sustituye | #### Ejemplo Request ``` curl --request POST --url https://services.test.sw.com.mx/cfdi33/cancel/EKU9003173C9/2f0499d1-693b-45f4-b3a6-5c06254933e3/01/db5df3d5-6710-4358-983a-5f97efe85292/v2 --header 'Authorization: Bearer $token' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "acuse": "2F0499D1-693B-45F4-B3A6-5C06254933E3202not(ancestor-or-self::*[local-name()='Signature'])JTVAEDsnW6VVN9Dyw9LWDwVT+WDgzty2cCq/UlOdiB2VTkm2M8kSbuu2fDVmowvIE6fJUOOCTbhIv1cNXzlZOA==fimjNSFMvcpnYkl0ozN5j/2r79uJfNg4v+EMdP+xAWrVhFTsvGCDu8CUiSxBMc0VrO8lSYrBY9FZvZUqM41kDg==00001000000503000003416qRWzHPVtRHYyDQTnnpPYtOBmb5Raaddb4XZH1DNlIhuhUrh7RKwfvcwh05wEu1lgUnej9BwsLd4u1SeYyawmaF2zIhzssP19yhOQUN9dRBeSg51m8XqCiodxoGilgNm7eDdZQ7j0ZYV0UOkMgGfomw/3L0z/O1gTbRDSg8gwM4BMSSu+iSMTcIKqn0oh4C+u77vKRui9NX6WZW2uRnmvEnDybxxtxTQVR3VlM4tdXeYTfkr5WUUrtaFyFW/B7zs9Mb+FO5Cr/TbWmu+xJP6LlN4UbZdPVe7+7rrv/hwzeYe2LeFT0Jtmvuy1NfR/uUZa35+UMou+RbsDOTm4vfJyuw==AQAB", "uuid": { "2F0499D1-693B-45F4-B3A6-5C06254933E3": { "code": "202", "message": "Folio Fiscal Previamente Cancelado.", "description": "Se considera solicitud de cancelación previamente enviada. Estatus Cancelado ante el SAT." } } }, "status": "success" } ``` ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "Invalid length for a Base-64 char array or string.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | More descriptive error message when one exists. | | data | object/null | Contiene información del acuse de cancelación emitido por el SAT, incluyendo el XML del acuse y el estatus del UUID, la descripción del mensaje, entre otros datos.. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-d555d08a-7031-46da-b49c-fc3ef8fe4a92?action=share&source=copy-link&creator=0) --- ## Cancelación CSD Cancelación por CSD #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /cfdi33/cancel/csd/v2 | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | uuid | Requerido | UUID del comprobante | | rfc | Requerido | RFC del emisor | | motivo | Requerido | Clave para expresar el motivo de la cancelación | | folioSustitucion | Opcional | UUID del comprobante que sustituye | | b64Cer | Requerido | Certificado del emisor en Base64 | | b64Key | Requerido | Key del emisor en Base64 | | password | Requerido | Contraseña del certificado | #### Ejemplo Request ``` curl --request POST --url 'https://services.test.sw.com.mx/cfdi33/cancel/csd/v2' \ --header 'Authorization: Bearer $token' --header 'Content-Type: application/json' \ --data '{ "uuid": "5AB1CCC8-2CA2-471F-88FE-BBFA84153459", "password": "12345678a", "rfc": "EKU9003173C9", "motivo": "02", "b64Key": "$key", "b64Cer": "$cer" }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "acuse": "5AB1CCC8-2CA2-471F-88FE-BBFA84153459201not(ancestor-or-self::*[local-name()='Signature'])s3EwTHt/lFQsj9LQzvjV5MMDdhA/fTNLjwzbKOEqq1NWIeo3a6PEBI/zwfc0z/R+d7PQr5yrCK7yQhEKMFy3lw==xnT2qr+ll5IhatKS8bbsLmDPOZ509WNlbKuBZkdUWBXbdvPr98zCwSkwRbotnAa0U9oooaEvIUahkzPupB/pxg==00001000000503000003416qRWzHPVtRHYyDQTnnpPYtOBmb5Raaddb4XZH1DNlIhuhUrh7RKwfvcwh05wEu1lgUnej9BwsLd4u1SeYyawmaF2zIhzssP19yhOQUN9dRBeSg51m8XqCiodxoGilgNm7eDdZQ7j0ZYV0UOkMgGfomw/3L0z/O1gTbRDSg8gwM4BMSSu+iSMTcIKqn0oh4C+u77vKRui9NX6WZW2uRnmvEnDybxxtxTQVR3VlM4tdXeYTfkr5WUUrtaFyFW/B7zs9Mb+FO5Cr/TbWmu+xJP6LlN4UbZdPVe7+7rrv/hwzeYe2LeFT0Jtmvuy1NfR/uUZa35+UMou+RbsDOTm4vfJyuw==AQAB", "uuid": { "5AB1CCC8-2CA2-471F-88FE-BBFA84153459": { "code": "201", "message": "Solicitud de cancelación exitosa.", "description": "Se considera una solicitud de cancelación exitosa, sin embargo esto no asegura su cancelación." } } }, "status": "success" } ``` ``` { "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CA303 - Sello no corresponde a emisor o caduco.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene información del acuse de cancelación emitido por el SAT, incluyendo el XML del acuse y el estatus del UUID, la descripción del mensaje, entre otros datos. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-5c2908ab-b426-4b7d-b527-0f264f29c789?action=share&source=copy-link&creator=0) --- ## Cancelación PFX Cancelación por PFX. **💡Artículo de apoyo:** [¿Cómo crear un PFX?](https://developers.sw.com.mx/knowledge-base/como-crear-un-pfx/) #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /cfdi33/cancel/pfx/v2 | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | uuid | Requerido | UUID del comprobante | | rfc | Requerido | RFC del emisor | | motivo | Requerido | Clave para expresar el motivo de la cancelación | | folioSustitucion | Opcional | UUID del comprobante que sustituye | | b64Pfx | Requerido | Archivo Pfx en Base64 | | password | Requerido | Contraseña del certificado | #### Ejemplo Request ``` curl --request POST --url 'https://services.test.sw.com.mx/cfdi33/cancel/pfx/v2' \ --header 'Authorization: Bearer $token' --header 'Content-Type: application/json' --data '{ "uuid": "816eb268-344e-4fbc-8a75-179e0c0a68e2", "password": "12345678a", "rfc": "ZUÑ920208KL4", "motivo": "02", "b64Pfx": "$Pfx" }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "acuse": "816EB268-344E-4FBC-8A75-179E0C0A68E2201not(ancestor-or-self::*[local-name()='Signature'])Bs1YA2KAbO3YuGD+lTkf8UrGuK5YNwlYHO7tlXeyPPLNJHKZ7uwDZB9sq6HFx6w4epPo6PGnow0aJX26TiIrfQ==OSzXxprYVsPPo59EANIY+dOlW1OQGPIDSX/pArBC3TZwpvZi7JXwjMBefF1gcAPhelKZkm59Ne43V8nr2fkKQw==00001000000503000003416qRWzHPVtRHYyDQTnnpPYtOBmb5Raaddb4XZH1DNlIhuhUrh7RKwfvcwh05wEu1lgUnej9BwsLd4u1SeYyawmaF2zIhzssP19yhOQUN9dRBeSg51m8XqCiodxoGilgNm7eDdZQ7j0ZYV0UOkMgGfomw/3L0z/O1gTbRDSg8gwM4BMSSu+iSMTcIKqn0oh4C+u77vKRui9NX6WZW2uRnmvEnDybxxtxTQVR3VlM4tdXeYTfkr5WUUrtaFyFW/B7zs9Mb+FO5Cr/TbWmu+xJP6LlN4UbZdPVe7+7rrv/hwzeYe2LeFT0Jtmvuy1NfR/uUZa35+UMou+RbsDOTm4vfJyuw==AQAB", "uuid": { "816EB268-344E-4FBC-8A75-179E0C0A68E2": { "code": "201", "message": "Solicitud de cancelación exitosa.", "description": "Se considera una solicitud de cancelación exitosa, sin embargo esto no asegura su cancelación." } } }, "status": "success" } ``` ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "Invalid length for a Base-64 char array or string.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene información del acuse de cancelación emitido por el SAT, incluyendo el XML del acuse y el estatus del UUID, la descripción del mensaje, entre otros datos. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-d0459f68-81e3-49c9-b997-7f103a88861d?action=share&source=copy-link&creator=0) --- ## Cancelación XML Servicio para cancelar enviando un XML con la información y folios de las facturas a cancelar. Este método puede ser utilizando para cancelación masiva de CFDI. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /cfdi33/cancel/xml/v2 | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | multipart/form-data | #### 🧾 Parámetros Form | Propiedad | Uso | Descripción | | --- | --- | --- | | xml | Requerido | XML estructurado conforme al [estándar anexo 20](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20_version3-3.htm) (pág. 62, en el portal oficial del SAT), con la información de los comprobantes a cancelar | #### Ejemplo Request ``` curl --request POST --url 'https://services.test.sw.com.mx/cfdi33/cancel/xml/v2' \ --header 'Authorization: Bearer $token' --header 'Content-Type: multipart/form-data; boundary="----=_Part_11_11939969.1490230712432"' \ --data-raw '------=_Part_11_11939969.1490230712432 Content-Type: text/xml Content-Transfer-Encoding: binary Content-Disposition: form-data; name=xml; filename=xml --form 'xml=@C:UsersSW sapiencancelacionMasiva.xml' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "acuse": "FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8205not(ancestor-or-self::*[local-name()='Signature'])0/geEinxcpV1Zic3Zn4m0q3nxqRIuAKkRhFNcrgmECe/SEqRiQ7Mf61azeUhNXkThgftDE+yR9rfhkzPDJ7kzg==IocBJ/kkCX7Ob2EVuJXbxyoeVJzgd3IbK0URZXDpq/2fNpNigHmaaaZaXU9A0mIwrgtg1DhJaIrMDc1wfU+UtQ==00001000000503000003416qRWzHPVtRHYyDQTnnpPYtOBmb5Raaddb4XZH1DNlIhuhUrh7RKwfvcwh05wEu1lgUnej9BwsLd4u1SeYyawmaF2zIhzssP19yhOQUN9dRBeSg51m8XqCiodxoGilgNm7eDdZQ7j0ZYV0UOkMgGfomw/3L0z/O1gTbRDSg8gwM4BMSSu+iSMTcIKqn0oh4C+u77vKRui9NX6WZW2uRnmvEnDybxxtxTQVR3VlM4tdXeYTfkr5WUUrtaFyFW/B7zs9Mb+FO5Cr/TbWmu+xJP6LlN4UbZdPVe7+7rrv/hwzeYe2LeFT0Jtmvuy1NfR/uUZa35+UMou+RbsDOTm4vfJyuw==AQAB", "uuid": { "FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8": { "code": "205", "message": "Folio Fiscal No Existente.", "description": "El SAT da una prorroga de 48 hrs para que el comprobante aparezca con estatus Vigente posterior al envió por parte del Proveedor de Certificación de CFDI. Puede que algunos comprobantes no aparezcan al momento, es necesario esperar por lo menos 48 hrs." } } }, "status": "success" } ``` ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "Invalid length for a Base-64 char array or string.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene información del acuse de cancelación emitido por el SAT, incluyendo el XML del acuse y el estatus del UUID, la descripción del mensaje, entre otros datos. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-6b9bd729-0075-48db-b6dc-57aa042de340?action=share&source=copy-link&creator=0) --- ## Respuestas de cancelación Todos los response de cancelación retornan la misma estructura en caso de error o en caso de petición satisfactoria, las cuales son las siguientes: **💡Tipos de respuesta:** En caso de una respuesta exitosa, se regresará un 200. En caso de una respuesta no exitosa, se regresará un código diferente de 200, el código puede variar dependiendo del problema dado. #### Respuesta exitosa Respuestas exitosas para todos los servicios de cancelación ``` { "data": { "acuse": "5AB1CCC8-2CA2-471F-88FE-BBFA84153459201not(ancestor-or-self::*[local-name()='Signature'])s3EwTHt/lFQsj9LQzvjV5MMDdhA/fTNLjwzbKOEqq1NWIeo3a6PEBI/zwfc0z/R+d7PQr5yrCK7yQhEKMFy3lw==xnT2qr+ll5IhatKS8bbsLmDPOZ509WNlbKuBZkdUWBXbdvPr98zCwSkwRbotnAa0U9oooaEvIUahkzPupB/pxg==00001000000503000003416qRWzHPVtRHYyDQTnnpPYtOBmb5Raaddb4XZH1DNlIhuhUrh7RKwfvcwh05wEu1lgUnej9BwsLd4u1SeYyawmaF2zIhzssP19yhOQUN9dRBeSg51m8XqCiodxoGilgNm7eDdZQ7j0ZYV0UOkMgGfomw/3L0z/O1gTbRDSg8gwM4BMSSu+iSMTcIKqn0oh4C+u77vKRui9NX6WZW2uRnmvEnDybxxtxTQVR3VlM4tdXeYTfkr5WUUrtaFyFW/B7zs9Mb+FO5Cr/TbWmu+xJP6LlN4UbZdPVe7+7rrv/hwzeYe2LeFT0Jtmvuy1NfR/uUZa35+UMou+RbsDOTm4vfJyuw==AQAB", "uuid": { "5AB1CCC8-2CA2-471F-88FE-BBFA84153459": { "code": "201", "message": "Solicitud de cancelación exitosa.", "description": "Se considera una solicitud de cancelación exitosa, sin embargo esto no asegura su cancelación." } } }, "status": "success" } ``` En este caso se recibe un mensaje JSON, el cual contiene los siguientes datos: - Acuse: Xml de acuse que regresa el SAT, Se considera una solicitud de cancelación exitosa, sin embargo, esto no asegura su cancelación. - UUID: uuid de la solicitud y el estatus de él. #### Respuestas no exitosas Respuestas no exitosas/Cancelación por CSD ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "El uuid proporcionado es inválido. Favor de verificar.", "data": null, "status": "error" } ``` ``` { "message": "CACFDI33 - Problemas con los campos.", "messageDetail": "El certificado no pertenece a la llave privada.", "data": null, "status": "error" } ``` ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "El Rfc proporcionado es inválido. Favor de verificar.", "data": null, "status": "error" } ``` ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "Invalid length for a Base-64 char array or string.", "data": null, "status": "error" } ``` Respuestas no exitosas/Cancelación por PFX ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "El uuid proporcionado es inválido. Favor de verificar.", "data": null, "status": "error" } ``` ``` { "message": "CACFDI33 - Problemas con los CSD.", "messageDetail": "Error con los CSD. Error: Cannot Read PFX......", "data": null, "status": "error" } ``` ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "El Rfc proporcionado es inválido. Favor de verificar.", "data": null, "status": "error" } ``` ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "Invalid length for a Base-64 char array or string.", "data": null, "status": "error" } ``` Respuestas no exitosas/Cancelación por UUID ``` { "message": "CACFDI33", "messageDetail": "El UUID proporcionado es invalido. Favor de verificar.", "data": null, "status": "error" } ``` ``` { "message": "CACFDI33", "messageDetail": "El Rfc proporcionado es invalido. Favor de verificar.", "data": null, "status": "error" } ``` Respuestas no exitosas/Cancelación por XML ``` { "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CA305 - La fecha de emisión no esta dentro de la vigencia del CSD del Emisor.", "data": null, "status": "error" } ``` ``` { "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CA302 - Sello mal formado o inválido.", "data": null, "status": "error" } ``` --- ### Códigos de respuesta de folios de cancelación | Codigo | Mensaje | Descripción | | --- | --- | --- | | 201 | Solicitud de cancelación exitosa. | Se considera una solicitud de cancelación exitosa, sin embargo esto no asegura su cancelación. | | 202 | Folio Fiscal Previamente Cancelado. | Se considera solicitud de cancelación previamente enviada. Estatus Cancelado ante el SAT. | | 203 | Folio Fiscal No Correspondiente al Emisor. | El folio fiscal no corresponde al emisor de la solicitud de cancelación. | | 204 | Folio Fiscal No Aplicable a Cancelación. | El folio fiscal no es válido para la cancelación. | | 205 | Folio Fiscal No Existente. | El SAT da una prorroga de 48 hrs para que el comprobante aparezca con estatus Vigente posterior al envió por parte del Proveedor de Certificación de CFDI. Puede que algunos comprobantes no aparezcan al momento, es necesario esperar por lo menos 48 hrs. | | 206 | UUID no corresponde a un CFDI del Sector Primario | El UUID no corresponde a un CFDI del Sector Primario. | | 207 | No se especificó el motivo de cancelación o el motivo no es valido. | El UUID sustitución no existe, está cancelado o tiene una fecha de emisión anterior a la fecha de emisión del comprobante original. | | 208 | Folio Sustitución invalido. | El folio de sustitución es inválido. | | 209 | Folio Sustitución no requerido. | El folio de sustitución no es necesario. | | 210 | La fecha de solicitud de cancelación es mayor a la fecha de declaración. | 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. | La fecha de solicitud de cancelación supera el límite permitido para una factura global. | | 212 | Relación no valida o inexistente. | La relación especificada no es válida o no existe. | | 300 | Usuario No Válido. | El usuario que realizó la solicitud no es 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 | La firma digital del acuse de cancelación es inválida o mal formada. | | 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. | El Certificado de Sello Digital (CSD) es inválido. | | 311 | Motivo inválido. | Clave de motivo de cancelación no válida. | | 312 | UUID no relacionado. | UUID no relacionado de acuerdo a la clave de motivo de cancelación | --- # Consulta CFDI relacionados antes de cancelar Fuente: https://developers.sw.com.mx/knowledge-base/consulta-cfdi-relacionados/ Categoria: Cancelaciones En el esquema vigente de cancelación CFDI establecido por la autoridad, un comprobante no puede ser cancelado si existen CFDI relacionados vigentes asociados a él. En estos casos, el CFDI se mantiene con estatus de **NO CANCELABLE** hasta que todos los comprobantes relacionados hayan sido previamente cancelados. Este servicio es una herramienta puesta a disposición del emisor para identificar dichos CFDI relacionados antes de iniciar el proceso de cancelación, permitiendo validar dependencias y evitar rechazos en el proceso. La consulta puede realizarse mediante distintos métodos de autenticación, dependiendo del tipo de integración y del origen de los comprobantes. ![](https://developers.sw.com.mx/wp-content/uploads/2018/08/cancelacion_con_docto_relacionado-1.jpg) #### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 --- ### Relacionados por CSD Este método permite consultar los CFDI relacionados autenticándose mediante el Certificado de Sello Digital (CSD) del emisor. Está orientado a contribuyentes que requieren validar sus propios CFDI, independientemente del PAC con el que fueron timbrados, antes de ejecutar una cancelación. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /relations/csd | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | uuid | Requerido | UUID del comprobante. | | password | Requerido | Contraseña del certificado. | | rfc | Requerido | RFC del emisor. | | b64Cer | Requerido | Certificado del emisor en Base64. | | b64Key | Requerido | Key del emisor en Base64 | #### Ejemplo Request ``` curl --request POST \ --url https://services.test.sw.com.mx/relations/csd \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "uuid": "d59fd3f1-2082-4759-a237-571ac15ccec2", "password": "12345678a", "rfc": "JUFA7608212V6", "b64Cer": "MIIFmjCCA4KgAwIB....", "b64Key": "MIIFDjBABgkqhkiG...."' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "codStatus": "2000", "data": { "uuidConsultado": "d59fd3f1-2082-4759-a237-571ac15ccec2", "resultado": "WS Consulta CFDI relacionados RfcEmisor: EKU9003173C9 - folio físcal: d59fd3f1-2082-4759-a237-571ac15ccec2 - Clave: 2000 - Se encontraron CFDI relacionados", "uuidsRelacionadosPadres": [ { "uuidsRelacionadosPadres": null, "uuid": "D59FD3F1-2082-4759-A237-571AC15CCEC2", "rfcEmisor": "EKU9003173C9", "rfcReceptor": "CACX7605101P8" } ], "uuidsRelacionadosHijos": [ { "uuid": "5A407B0B-ABF6-4222-BBB6-5176AE6EA67D", "rfcEmisor": "EKU9003173C9", "rfcReceptor": "URE180429TM6" } ] }, "message": "Se encontraron CFDI relacionados. ", "status": "success" } ``` ``` { "message": "CACFDI33 - Error no controlado", "messageDetail": "Value cannot be null.\r\nParameter name: s", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene información detallada del CFDI consultado y sus relaciones. Incluye nodos con UUIDs relacionados, emisores y receptores. | | status | String | “success” o “error” | | codStatus | String | Código del resultado general de la operación (presente solo en respuesta exitosa). | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-e344c968-d173-4c1a-9a03-8e5c187e6510) --- ### Relacionados por PFX Este método permite realizar la consulta utilizando un archivo PFX del contribuyente. Funciona como una alternativa equivalente al CSD, facilitando la autenticación del emisor para identificar CFDI relacionados dentro del proceso previo a la cancelación. **💡Visita nuestra herramienta:** [Generador de Certificado PFX](https://developers.sw.com.mx/knowledge-base/herramienta-crear-pfx/) #### 🔗 Endpoint | Metodo | Ruta | | --- | --- | | **POST** | /relations/pfx | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | uuid | Requerido | UUID del comprobante. | | rfc | Requerido | RFC del emisor. | | b64Pfx | Requerido | Archivo PFX en Base64. | | password | Requerido | Contraseña del certificado PFX | #### Ejemplo Request ``` curl --request POST \ --url https://services.test.sw.com.mx/relations/pfx \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "uuid": "77e5ee7e-518e-48d1-b719-2562eaf9cb1f", "password": "12345678a", "rfc": "LAN7008173R5", "b64Pfx":"MIIMCQIBAzC....",' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "codStatus": "2000", "data": { "uuidConsultado": "d59fd3f1-2082-4759-a237-571ac15ccec2", "resultado": "WS Consulta CFDI relacionados RfcEmisor: EKU9003173C9 - folio físcal: d59fd3f1-2082-4759-a237-571ac15ccec2 - Clave: 2000 - Se encontraron CFDI relacionados", "uuidsRelacionadosPadres": [ { "uuidsRelacionadosPadres": null, "uuid": "D59FD3F1-2082-4759-A237-571AC15CCEC2", "rfcEmisor": "EKU9003173C9", "rfcReceptor": "CACX7605101P8" } ], "uuidsRelacionadosHijos": [ { "uuid": "5A407B0B-ABF6-4222-BBB6-5176AE6EA67D", "rfcEmisor": "EKU9003173C9", "rfcReceptor": "URE180429TM6" } ] }, "message": "Se encontraron CFDI relacionados. ", "status": "success" } ``` ``` { "message": "CACFDI33 - Error no controlado", "messageDetail": "Value cannot be null.\r\nParameter name: s", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene información detallada del CFDI consultado y sus relaciones. Incluye nodos con UUIDs relacionados, emisores y receptores. | | status | String | “success” o “error” | | codStatus | String | Código del resultado general de la operación (presente solo en respuesta exitosa). | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-efaf7484-eca1-49b6-b218-14fbfa1a1219) --- ### Relacionados por UUID Este método está diseñado para emisores que ya han registrado previamente sus CSD en el [portal ADT](https://portal.sw.com.mx/) y cuyos CFDI fueron timbrados con nosotros. Permite consultar CFDI relacionados directamente a partir del UUID del comprobante, así como el RFC, simplificando la validación previa a la cancelación dentro del ecosistema del PAC. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /relations/**{rfc}/{uuid}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | rfc | requerido | rfc del emisor | | uuid | requerido | UUID del comprobante | #### Ejemplo Request ``` curl --location --globoff --request POST '{{url_services}}/relations/EKU9003173C9/d59fd3f1-2082-4759-a237-571ac15ccec2' \ --header 'Authorization: bearer {{token}}' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "codStatus": "2000", "data": { "uuidConsultado": "d59fd3f1-2082-4759-a237-571ac15ccec2", "resultado": "WS Consulta CFDI relacionados RfcEmisor: EKU9003173C9 - folio físcal: d59fd3f1-2082-4759-a237-571ac15ccec2 - Clave: 2000 - Se encontraron CFDI relacionados", "uuidsRelacionadosPadres": [ { "uuidsRelacionadosPadres": null, "uuid": "D59FD3F1-2082-4759-A237-571AC15CCEC2", "rfcEmisor": "EKU9003173C9", "rfcReceptor": "CACX7605101P8" } ], "uuidsRelacionadosHijos": [ { "uuid": "5A407B0B-ABF6-4222-BBB6-5176AE6EA67D", "rfcEmisor": "EKU9003173C9", "rfcReceptor": "URE180429TM6" } ] }, "message": "Se encontraron CFDI relacionados. ", "status": "success" } ``` ``` { "message": "CACFDI33 - Error no controlado", "messageDetail": "El UUID proporcionado inválido. Favor de verificar.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene información detallada del CFDI consultado y sus relaciones. Incluye nodos con UUIDs relacionados, emisores y receptores. | | status | String | “success” o “error” | | codStatus | String | Código del resultado general de la operación (presente solo en respuesta exitosa). | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-28b46396-cc38-48f9-9c1a-8b13a47f50a7) --- ### Relacionados por XML Este método permite consultar los CFDI relacionados enviando una petición XML (`PeticionConsultaRelacionados`) previamente firmada con el CSD del emisor, bajo el estándar XML-DSig. Esta opción es ideal cuando se prefiere enviar la petición firmada, sin compartir el certificado ni la contraseña. **💡Nota Importante:** 👉 Este método requiere un XML ya firmado bajo el estándar XML-DSig. Puedes usar la herramienta [Firmar XML](https://developers.sw.com.mx/knowledge-base/herramienta-firmar-xml/) para generarlo a partir de tu PFX. Se recomienda validar primero contra el ambiente de pruebas (https://services.test.sw.com.mx) usando el CSD de pruebas del SAT antes de integrarlo en producción. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /relations/xml | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | multipart/form-data | #### 🧾 Parámetros Form | Propiedad | Uso | Descripción | | --- | --- | --- | | xml | Requerido | Archivo XML firmado (`PeticionConsultaRelacionados`) | #### 📐 Estructura y firma del XML **💡 Visita nuestra herramienta:** [Firmar XML](https://developers.sw.com.mx/knowledge-base/herramienta-firmar-xml/) — permite generar y agregar el `Signature` a tu XML a partir de un archivo PFX. El XML base antes de firmar debe tener la siguiente forma: **💡Nota Importante:** 👉 Ten en cuenta lo siguiente al construir el XML: - Si se consulta por emisor, usar `RfcEmisor` y no incluir el atributo `RfcReceptor`. - Si se consulta por receptor, usar `RfcReceptor` y no incluir `RfcEmisor`. - Nunca enviar ambos atributos con valor al mismo tiempo. - `RfcPacEnviaSolicitud` puede ir vacío (`""`). ``` ``` **Ejemplo de XML** ``` 8k0KaHNKbuehoDgp/3PpoD2Pjx4= N+SZvazfOxk47CMPmQ0iVYkKEJU/hubpmdW71IJH8y6t/8U0YNPFOE+ioxKBu3cwX1NaRWOSTevbtauRybEFA7u9LxuXPLm/1WZIIpq2FRv686WYkKZ8Ay/NHyHpn7OnfvcHXMrwPD+wWJHJU/y3d67fQNJE984UdAKussbcQihCRenB7VYoo0uIZsmVyU03qeaJ7/dLX+gB8WQ7+IiSpZamXRSqeyK5N/V+1sp9keQkSZLkR4OnE+sFyHGJlQTd2+gNiBerEme1br4S2U5o64cUXiLKPbeMf1HGsqnpn75aQgtLs5arzpVwv3llrGRxTuUQuKXkq4bkgoNMaOtLYQ== MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE= CN=AC UAT, O=SERVICIO DE ADMINISTRACION TRIBUTARIA, OU=SAT-IES Authority, E=oscar.martinez@sat.gob.mx, STREET=3ra cerrada de caliz, PostalCode=06370, C=MX, ST=CIUDAD DE MEXICO, L=COYOACAN, OID.2.5.4.45=2.5.4.45, OID.1.2.840.113549.1.9.2=responsable: ACDMA-SAT 3330303031303030303030353030303033343136 ``` #### Ejemplo Request ``` curl --location 'https://services.test.sw.com.mx/relations/xml' \ --header 'Authorization: bearer {{token}}' \ --form 'xml=@"/path/to/file"' ``` #### Ejemplo Response ✅ Response Ok (200) — Sin relacionados ✅ Response Ok (200) — Con relacionados ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "codStatus": "2001", "data": null, "message": "No se encontraron CFDI relacionados.", "status": "success" } ``` ``` { "codStatus": "2000", "data": { "uuidConsultado": "e68a87c6-038e-4ec1-a071-0c042160a57f", "uuidsRelacionadosPadres": [ ... ], "uuidsRelacionadosHijos": [ ... ] }, "status": "success" } ``` ``` { "codStatus": "301", "message": "301 - Error no controlado", "status": "error" } ``` | Atributo | Tipo | Descripcion | | --- | --- | --- | | codStatus | String | Código del resultado de la operación. | | data | object/null | Contiene el UUID consultado y sus relaciones (padres/hijos) cuando existen. | | message | String | Mensaje descriptivo del resultado o del error. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/9qzcs1w/relacionados-xml) --- # Consulta de Solicitudes Pendientes de Aceptación Rechazo Fuente: https://developers.sw.com.mx/knowledge-base/consulta-de-solicitudes-pendientes-de-cancelacion/ Categoria: Cancelaciones Servicio mediante el cual podrás consultar tus solicitudes de facturas pendientes de aceptación / rechazo para cancelación. **🚨Importante:** Este servicio solo permite consultar el estatus de tus solicitudes pendientes de aceptación/rechazo para **CFDI 4.0**. #### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 --- ### Solicitudes Pendientes #### 🔗 Endpoint | Metodo | Ruta | | --- | --- | | **GET** | /pendings/**{rfc}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | rfc | Requerido | RFC Receptor. | #### Ejemplo Request ``` curl --request GET \ --url http://services.test.sw.com.mx/pendings/EKU9003173C9 \ --header 'Authorization: Bearer T2lYQ0t4L0RHVkR4dH...' \ }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "codStatus": "1100", "message": "CA1100 - Se recibío la respuesta de la petición de forma exitosa.", "data": { "uuid": [ "F383B7FA-8404-46D2-99DE-68455590249E" ], "codEstatus": "1100" }, "status": "success" } ``` ``` { "codStatus": "1101", "message": "CA1101 - No existen peticiones para el RFC Receptor.", "data": { "uuid": null, "codEstatus": "1101" }, "status": "success" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Mensaje descriptivo del resultado. | | data | object/null | Contiene el arreglo de UUIDs de peticiones encontradas y el código de estatus detallado. | | status | String | Estado general de la operación. | | codStatus | String | Código del resultado general de la operación. Indica si se encontraron peticiones (`1100`) o no (`1101`). | **Códigos de respuesta.** | Codigo | Mensaje | Descripción | | --- | --- | --- | | 1100 | Se recibió la respuesta de la petición de forma exitosa | Muestra las peticiones para el RFC Receptor | | 1101 | Se recibió la respuesta de la petición de forma exitosa | No existen peticiones para el RFC Receptor | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-53c90f83-9ecb-4d34-a95b-dd5e92bfb356) --- **💡Siguientes pasos:** [Aceptar o Rechazar](https://developers.sw.com.mx/knowledge-base/aceptar-o-rechazar-cancelacion-cfdi/) --- # WS Consulta Estatus CFDI Fuente: https://developers.sw.com.mx/knowledge-base/servicio-publico-de-consulta-estatus-cfdi-sat/ Categoria: Cancelaciones Este servicio sirve para consultar el estatus de un CFDI antes y después de [enviarlo a cancelar](https://developers.sw.com.mx/knowledge-base/cancelacion-cfdi/), con él sabremos sí puede ser cancelado de forma directa, o en caso de que se necesite [consultar los CFDI relacionados](https://developers.sw.com.mx/knowledge-base/consulta-cfdi-relacionados/) para poder generar la [cancelación.](https://developers.sw.com.mx/knowledge-base/cancelacion-cfdi/) **💡Nota :** El servicio de consulta **productivo** es de tipo SOAP y es proporcionado directamente por parte del SAT. **🚨 Importante:** El servicio de consulta de **pruebas** es de tipo SOAP, este es emulado por SW, únicamente retornará respuesta para facturas vigente/canceladas emitidas en nuestro ambiente de pruebas. #### URL´s 🛠️ Pruebas: `https://api.test.sw.com.mx` 📄 🚀 Productivo: `https://consultaqr.facturaelectronica.sat.gob.mx` 📄 --- ### Consultar Estatus CFDI #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /ConsultaCFDIService.svc | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Content-Type | text/xml;charset=”utf-8″ | | SOAPAction | http://tempuri.org/IConsultaCFDIService/Consulta | | Accept | text/xml | #### 🧾 Parámetros | Propiedad | Uso | Descripción | | --- | --- | --- | | re | Requerido | RFC Emisor | | rr | Requerido | RFC Receptor | | tt | Requerido | Total declarado en el comprobante | | id | Requerido | UUID del comprobante | | fe | Requerido | Últimos ocho caracteres del sello digital del emisor | #### Ejemplo Request ``` curl --request POST \ --url https://api.test.sw.com.mx/ConsultaCFDIService.svc \ --header 'Accept: text/xml' \ --header 'Content-Type: text/xml;charset="utf-8"' \ --header 'SOAPAction: http://tempuri.org/IConsultaCFDIService/Consulta' \ --data ' ' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` S - Comprobante obtenido satisfactoriamente. Cancelable sin aceptación Vigente 200 ``` ``` N - 601: La expresión impresa proporcionada no es válida. Cancelable sin aceptación No Encontrado 200 ``` Listado con las posibles respuesta de cada atributo. | Atributo | Tipo | Descripción | | --- | --- | --- | | CódigoEstatus | String | **Este campo puede tener los siguientes valores:** S – Comprobante obtenido satisfactoriamente. N – 601: La expresión impresa proporcionada no es válida. | | Estatus | String | **Este campo puede tener los siguientes valores:** Vigente Cancelado | | EsCancelable | String | **Este campo puede tener los siguientes valores:** Cancelable con aceptación No cancelable Cancelable sin aceptación | | EstatusCancelacion | String | **Este campo puede tener los siguientes valores:** (null) En proceso Plazo vencido Solicitud rechazada Cancelado sin aceptación Cancelado con aceptación | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-25fbf237-5c85-49e4-8679-1ba2d26237d9) --- # Solicita una cotización Fuente: https://developers.sw.com.mx/knowledge-base/solicita-cotizacion/ Categoria: Cotización del Servicio --- # Documentación SAT: CFDI 4.0, CFDI de Retenciones, Complementos y más... Fuente: https://developers.sw.com.mx/knowledge-base/documentacion-sat-4-0-catalogos/ Categoria: Documentación SAT Sitios oficiales del SAT en donde podrás encontrar toda la documentación necesaria referente al CFDI 4.0 y sus Complementos, CFDI de Retenciones y sus Complementos, así como consultar el Anexo 29 para conocer las claves de Validez de Obligaciones. Anexo 20 – Documentación de Facturación Electrónica Aquí encontrarás la información necesaria para emitir CFDI en la versión 4.0 de la factura. [Visitar sitio](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm) CFDI de Retenciones Documentación necesaria para emitir tus comprobantes de retenciones en la versión 2.0 [Visitar sitio](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/CFDI_retenciones.htm) Complementos CFDI y Retenciones Conoce los complementos que puedes incorporar a tu factura, de acuerdo a las operaciones que realices. Puedes encontrar los complementos de Retenciones al [final del sitio](https://developers.sw.com.mx/knowledge-base/documentacion-sat-4-0-catalogos/) [Visitar sitio](https://www.sat.gob.mx/portal/public/tramites/complementos-de-factura) Cancelaciones En la siguiente documentación oficial podrás encontrar los diferentes documentos sobre el WS de Cancelaciones CFDI provisto por la autoridad, así como sus casos de uso y ejemplos. [Visitar sitio](http://omawww.sat.gob.mx/factura/Paginas/cancela_procesocancelacion.htm) Validez de Obligaciones (Anexo 29) En la siguiente documentación oficial podrás identificar las diversas claves que se utilizan para identificar si un contribuyente cuenta o no con obligaciones fiscales. En la [página 6](https://developers.sw.com.mx/knowledge-base/documentacion-sat-4-0-catalogos/) puedes encontrar la lista de Validez de Obligaciones y sus descripciones. [Visitar sitio](http://omawww.sat.gob.mx/normatividad_RMF_RGCE/Paginas/documentos/rmf/anexos/Anexo_29-RMF_2023-12012023.pdf) Visita también: [**Ejemplos 4.0 SW®**](https://developers.sw.com.mx/article-categories/ejemplos-4-0/) --- # Solicita al SAT los datos en el RFC de tus trabajadores. Fuente: https://developers.sw.com.mx/knowledge-base/solicitud-de-datos-en-el-rfc-de-asalariados/ Categoria: Documentación SAT **(Servicio SAT).** El SAT dispone de un servicio por única ocasión para que puedas solicitar los datos registrados de tus trabajadores ante dicha institución, esto con la finalidad de apoyarte a corroborar la información y evitar errores al timbrar la nomina 1.2 que se integra a la versión 4.0 del CFDI. A continuación te compartimos la infografía oficial en donde se menciona las características del archivo TXT para la petición, a si como el video tutorial del SAT para realizar dicho tramite: Portal del SAT: Infografía Oficial SAT [![](https://developers.sw.com.mx/wp-content/uploads/2023/03/Caracteristicas-de-formato-TXT.png)](https://developers.sw.com.mx/wp-content/uploads/2023/03/Caracteristicas-de-formato-TXT.png) **Video Tutorial Oficial SAT: Cómo obtener los datos fiscales de tus trabajadores.** **Video:** [Tutoriál: Cómo obtener los datos fiscales de tus trabajadores.](https://www.youtube.com/watch?v=L1dt_Nnoruo) --- # Validador SAT para RFC, nombre y código postal. Fuente: https://developers.sw.com.mx/knowledge-base/validador-sat-para-rfc-nombre-y-codigo-postal-2/ Categoria: Documentación SAT 🔎 **Valida RFC, Nombre y Código Postal fácilmente con la herramienta oficial del SAT** En este artículo te compartimos el acceso directo a la plataforma del SAT, donde puedes realizar validaciones de manera individual o masiva, de forma segura y gratuita. **Nota:** Actualmente no existe una API para hacer estas consultas de forma automatizada. Por eso, recomendamos siempre usar el servicio oficial del SAT para asegurar la validez y cumplimiento normativo. [Ir al Validador SAT](https://www.sat.gob.mx/aplicacion/operacion/79615/valida-en-linea-rfc%C2%B4s-uno-a-uno-o-de-manera-masiva-hasta-5-mil-registros) 📄 Validar RFC de forma individual Al ingresar a la página, lo primero que debes hacer es resolver el captcha de seguridad y hacer clic en el botón azul “Aceptar”. Una vez completado este paso, accederás al sitio y podrás ver las opciones de validación disponibles. **1. Validar solo el RFC** Ingresa el **RFC del contribuyente** en el campo correspondiente y haz clic en el botón **“Consultar RFC”**. ![](https://developers.sw.com.mx/wp-content/uploads/2022/08/validador-SAT-imagen-1.1.png) **2. Validar RFC, nombre o razón social y código postal** Ingresa el **RFC del contribuyente**, selecciona la opción **“Validar RFC, nombre, denominación o razón social y Código Postal”**, y luego haz clic en **“Consultar RFC”** para obtener los resultados completos. ![](https://developers.sw.com.mx/wp-content/uploads/2022/08/validador-SAT-imagen-1.2.png) [Ir al Validador SAT](https://www.sat.gob.mx/aplicacion/operacion/79615/valida-en-linea-rfc%C2%B4s-uno-a-uno-o-de-manera-masiva-hasta-5-mil-registros) 📄 Validar RFC de forma masiva 🧾 Consulta Masiva de RFC: Instrucciones: Para realizar una validación masiva, es necesario generar un archivo **.TXT** con una estructura específica. Este archivo puede contener **hasta 5,000 registros**. ###### 📌 Requisitos para el archivo `.TXT`: 1. El archivo debe ser de **texto plano (.txt)** y estar codificado en **UTF-8**. 2. Usa el símbolo **pipe (`|`)** como separador de columnas. 3. **No incluyas encabezados** (títulos de columnas) en el primer renglón. 4. La información debe estar organizada de la siguiente forma: - **Columna 1:** Número consecutivo del registro. - **Columna 2:** RFC a consultar (sin espacios). - **Columna 3:** Nombre, denominación o razón social asociada al RFC. - **Columna 4:** Código Postal del domicilio fiscal (sin espacios). 📄 **Ejemplo del formato correcto:** `1|ABCD12345670|MI RAZON SOCIAL|70110 2|JKLM12345670|MI RAZON SOCIAL|70110` Al ingresar a la página, lo primero que debes hacer es resolver el captcha de seguridad y hacer clic en el botón azul “Aceptar”. Una vez completado este paso, accederás al sitio y podrás ver las opciones de validación disponibles. **1 –** Ya que tengas construido el TXT, da clic directamente en **VALIDACION MASIVA DE RFC.** ![](https://developers.sw.com.mx/wp-content/uploads/2022/08/validador-SAT-imagen-1.3.jpg) **2 –** Selecciona tu archivo utilizando el botón **ELEGIR ARCHIVO** ![](https://developers.sw.com.mx/wp-content/uploads/2022/08/Captura-3.png) **3 –** Da clic en el botón **VALIDAR** ![](https://developers.sw.com.mx/wp-content/uploads/2022/08/Captura-3-1.png) #### 📥 ¿Qué respuesta recibirás? El SAT procesará tu archivo y te devolverá una respuesta para cada registro, indicando si la información es válida o si existe algún error. 🧾 **Ejemplo de respuesta:** `1|ABCD12345670|MI RAZON SOCIAL|70110|RFC válido, y susceptible de recibir facturas 2|JKLM12345670|MI RAZON SOCIAL|70110|El Código Postal no coincide con el registrado en el RFC. 3|ABCD12345670|MI RAZON SOCIAL|70110|El nombre, denominación o razón social no coincide con el registrado en el RFC` [Ir al Validador SAT](https://www.sat.gob.mx/aplicacion/operacion/79615/valida-en-linea-rfc%C2%B4s-uno-a-uno-o-de-manera-masiva-hasta-5-mil-registros) --- # Add user through API Fuente: https://developers.sw.com.mx/knowledge-base/add-user-through-api/ Categoria: Documentation in English This service allows you to register a new user for consuming our services. The service needs the access token and the new user account information. 🛠**Test URL** : ![Copiar](https://developers.sw.com.mx/wp-content/uploads/2023/06/copy-clipboard.png) **🧰** **Production URL** : ![Copiar](https://developers.sw.com.mx/wp-content/uploads/2023/06/copy-clipboard.png) **Endpoint** | Method | Route | | --- | --- | | POST | /management/api/users | **Authentication and Headers** | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/generate-access-token/) | | Content-Type | application/json | **JSON Parameters** | Property | Type | Use | Description | | --- | --- | --- | --- | | email | string | Required | User mail | | password | string | Required | User password | | name | string | Required | User name | | rfc | string | Required | User RFC | | profile | int | Required | (Default = 3) User profile type | | stamps | int | Optional | “Stamps” to be assigned at creation | | unlimited | bool | Required | Specify if you will have unlimited “Stamps” | | active | bool | Required | (Default = true) User status | **Password Policies** - The password must not be the same as the username. - The password must include at least one capital letter. - Password must include at least one lowercase letter. - The password must include at least one number. - The password must include at least one symbol(special character). - The password must not include blank spaces. - The password must be between 10 and 20 characters. - The password must not include unusual special symbols. The accepted special characters are the following: !@#$%^&\*()\_+=\[{\]};:<>|./?,-] **Request example** ``` curl --request POST \ --url https://api.test.sw.com.mx/management/api/users \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "Email": "sw@test.mx", "Password": "1q2w3e4r", "Name": "SW SW SW", "RFC": "XAXX110101111", "Profile": 3, "Stamps": 20, "Unlimited": false, "Active": true }' ``` --- # API Certificates Fuente: https://developers.sw.com.mx/knowledge-base/api-certificates/ Categoria: Documentation in English The API for managing your account’s CSD certificates allows you to upload, view, and delete them. To manage certificates graphically, you can do so from the [CFDI Stamp Management (ADT)](https://portal.sw.com.mx/). #### URL´s 🛠️ Test: `https://services.test.sw.com.mx` 📄 🚀 Productive: `https://services.sw.com.mx` 📄 --- ### Upload Certificate Service to upload a certificate, which receives the CSD certificate in Base64. #### 🔗 Endpoint | Method | Path | | --- | --- | | **POST** | /certificates/save | #### 🔐 Authentication and Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/generate-access-token/) | | Content-Type | application/json | #### 🧾 JSON Parameters | Property | Type | Use | Description | | --- | --- | --- | --- | | type | string | Required | Set the value to ‘stamp’ | | b64Cer | string | Required | Issuer’s certificate in Base64. | | b64Key | string | Required | Issuer’s key in Base64. | | password | string | Required | Certificate password. | #### Example Request ``` curl --request POST --url https://services.test.sw.com.mx/certificates/save --header 'Authorization: Bearer $token' --header 'Content-Type: application/json' --data '{ "type":"stamp", "b64Key":"$b64Key", "b64Cer":"$b64Cer", "password":"12345678a" }' ``` #### Example Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Attributes of the response ``` { "data": "CSD Guardados Correctamente.", "status": "success" } ``` ``` { "message": "Certificados", "messageDetail": "Te hacen falta archivos o el password esta vacio", "data": null, "status": "error" } ``` | Attribute | Type | Description | | --- | --- | --- | | message | String | Code returned when an error occurs. | | messageDetail | String | More descriptive error message when there is one. | | data | String/null | Confirmation message that the CSDs have been saved when it has been successful. | | status | String | “success” o “error” | [Test it in Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-bdbcceaa-699e-41b2-b2e1-be9fd8313522) --- ### List Certificates Service to list all certificates uploaded to the account. **💡Important Note:** If no certificate is loaded, the service will respond with a “success” and an empty data array. #### 🔗 Endpoint | Method | Path | | --- | --- | | **GET** | /certificates | #### 🔐 Authentication and Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/generate-access-token/) | #### Example Request ``` curl --request GET --url https://services.test.sw.com.mx/certificates --header 'Authorization: Bearer $token' ``` #### Example Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Attributes of the response ``` { "data": [ { "issuer_rfc": "EKU9003173C9", "certificate_number": "30001000000400002434", "csd_certificate": "MIIFuzCCA6OgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDI0MzQwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNjE3MTk0NDE0WhcNMjMwNjE3MTk0NDE0WjCB4jEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gWElRQjg5MTExNlFFNDEeMBwGA1UEBRMVIC8gWElRQjg5MTExNk1HUk1aUjA1MR4wHAYDVQQLExVFc2N1ZWxhIEtlbXBlciBVcmdhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCN0peKpgfOL75iYRv1fqq+oVYsLPVUR/GibYmGKc9InHFy5lYF6OTYjnIIvmkOdRobbGlCUxORX/tLsl8Ya9gm6Yo7hHnODRBIDup3GISFzB/96R9K/MzYQOcscMIoBDARaycnLvy7FlMvO7/rlVnsSARxZRO8Kz8Zkksj2zpeYpjZIya/369+oGqQk1cTRkHo59JvJ4Tfbk/3iIyf4H/Ini9nBe9cYWo0MnKob7DDt/vsdi5tA8mMtA953LapNyCZIDCRQQlUGNgDqY9/8F5mUvVgkcczsIgGdvf9vMQPSf3jjCiKj7j6ucxl1+FwJWmbvgNmiaUR/0q4m2rm78lFAgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBCwUAA4ICAQBcpj1TjT4jiinIujIdAlFzE6kRwYJCnDG08zSp4kSnShjxADGEXH2chehKMV0FY7c4njA5eDGdA/G2OCTPvF5rpeCZP5Dw504RZkYDl2suRz+wa1sNBVpbnBJEK0fQcN3IftBwsgNFdFhUtCyw3lus1SSJbPxjLHS6FcZZ51YSeIfcNXOAuTqdimusaXq15GrSrCOkM6n2jfj2sMJYM2HXaXJ6rGTEgYmhYdwxWtil6RfZB+fGQ/H9I9WLnl4KTZUS6C9+NLHh4FPDhSk19fpS2S/56aqgFoGAkXAYt9Fy5ECaPcULIfJ1DEbsXKyRdCv3JY89+0MNkOdaDnsemS2o5Gl08zI4iYtt3L40gAZ60NPh31kVLnYNsmvfNxYyKp+AeJtDHyW9w7ftM0Hoi+BuRmcAQSKFV3pk8j51la+jrRBrAUv8blbRcQ5BiZUwJzHFEKIwTsRGoRyEx96sNnB03n6GTwjIGz92SmLdNl95r9rkvp+2m4S6q1lPuXaFg7DGBrXWC8iyqeWE2iobdwIIuXPTMVqQb12m1dAkJVRO5NdHnP/MpqOvOgLqoZBNHGyBg4Gqm4sCJHCxA1c8Elfa2RQTCk0tAzllL4vOnI1GHkGJn65xokGsaU4B4D36xh7eWrfj4/pgWHmtoDAYa8wzSwo2GVCZOs+mtEgOQB91/g==", "is_active": true, "issuer_business_name": "ESCUELA KEMPER URGATE SA DE CV", "valid_from": "2019-06-17T14:44:14", "valid_to": "2023-06-17T14:44:14", "certificate_type": "stamp" }, { "issuer_rfc": "FUNK671228PH6", "certificate_number": "30001000000400002321", "csd_certificate": "MIIFijCCA3KgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDIzMjEwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNTI5MTcxNzQwWhcNMjMwNTI5MTcxNzQwWjCBsTEdMBsGA1UEAxMUS0FSTEEgRlVFTlRFIE5PTEFTQ08xHTAbBgNVBCkTFEtBUkxBIEZVRU5URSBOT0xBU0NPMR0wGwYDVQQKExRLQVJMQSBGVUVOVEUgTk9MQVNDTzEWMBQGA1UELRMNRlVOSzY3MTIyOFBINjEbMBkGA1UEBRMSRlVOSzY3MTIyOE1DTE5MUjA1MR0wGwYDVQQLExRLQVJMQSBGVUVOVEUgTk9MQVNDTzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALcigR0/27nsBVgrbB/neBsY7R3cRvR3Ka9w4ovRtpN2pe62A5dfew7eNaaXQESF/bcbaq/bI9VuI5NJqxx0QVIRRn+pAJb53PsMVVAj81JoPUislh0AlxuMHhI8TxpGmwrVU+PejfuQ49wqfQsOnqYAuHi0PvvzE/N2Ja32+yEOMzE40B0OqoBO2t93I+he+/THXhijEKeeSO4s+kgNBUKvZNqu/00Rrqu5DjfFLFHCwqBQraym1xlSBt7C3m8nGsPbn/R0BMypfSZPSuQJNxDX0W3+zhlKrnFMMQWEHgMJ75kQPIhHLN+/MKUe3j75ViDL6ejupN/DO/AtYHcMtPsCAwEAAaMdMBswDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCBsAwDQYJKoZIhvcNAQELBQADggIBACdpf+YqxKhVyH/nTxnZHTbg4BzMoCrC5NXKU4XUvZ37/E1fzqLIcLaNZUIwdwhKw5qQrNIbn0AEtWA/PIHUeAffoJOMWklNlGMOeXlX6PmAF692ywISLxhy7Nt9aLYIr4yT6P8a8zR9em0B6guW3BudSNKIui+FpTYNmCpttSPfJ07lvYY1VYvGwAqwnAzWUWHqoh1S6Y+qKxvUAw6Cj3n3A1iQiWqrCFBeaoe2iw050jTRT/THx4qIGAqQJSYiO+z5xjiUxTnxZBj7ZGAjjNITg+AEnqEnyYUnjhRLq38BlJTvaPrAmXuisJV8YGvwvuyrBG/eSZqnLf1MkD2Z5aX2L2blmvUxpTSUw9kz2scXUVUBiBiW3AXztrtM5Dyg3O/vGdFOPh1f9CNuzDCgbUAe2ifIyPYtJKAmicMatc279+Z14MpqpsWkgvHHPE2D8tlsnnrIs5eT+ghKhOtQKCXrwv7khTU3szJOjTFvANy6V6iiEswABn4fbKVwK3XbwwtWa9oMFj4hHVi6LAz9ze8R36MFq+O6ERIlVqD/sVcypU2mEEjqRypP8lu6qO6oUo1lt91TqqBLjFz1dIN9B4o+vpikUlCJldOSvhHNtwmg/lgepxR9P2RYJhH5xz+6tlM1/Fs9SAYY52g6nqMmxcddfMNQKp15u0DW5ue+4F5m", "is_active": true, "issuer_business_name": "KARLA FUENTE NOLASCO", "valid_from": "2019-05-29T12:17:40", "valid_to": "2023-05-29T12:17:40", "certificate_type": "stamp" }, { "issuer_rfc": "OÑO120726RX3", "certificate_number": "30001000000400002464", "csd_certificate": "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", "is_active": true, "issuer_business_name": "ORGANICOS ÑAVEZ OSORIO S.A DE C.V SA DE CV", "valid_from": "2019-06-20T15:58:17", "valid_to": "2023-06-20T15:58:17", "certificate_type": "stamp" }, { "issuer_rfc": "RAQÑ7701212M3", "certificate_number": "30001000000400002453", "csd_certificate": "MIIFkDCCA3igAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDI0NTMwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNjE3MjMzMzI1WhcNMjMwNjE3MjMzMzI1WjCBtzEeMBwGA1UEAxQV0UVWRVMgUkFNSVJFWiBRVUVaQURBMR4wHAYDVQQpFBXRRVZFUyBSQU1JUkVaIFFVRVpBREExHjAcBgNVBAoUFdFFVkVTIFJBTUlSRVogUVVFWkFEQTEWMBQGA1UELRQNUkFR0Tc3MDEyMTJNMzEbMBkGA1UEBRMSUkFRTjc3MDEyMUhERk1aVjA4MSAwHgYDVQQLFBfRRVZFUyBSQU1JUkVaIFFVRVpBREEgMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJRP66ngVa3/EOOuKQFsZX81s+F8482Emdq80cK5TzlycTdYnyMyPpHHjORdKwcV8FnNlpIx2Qe6kA8nSVL+x9P13ZCij6TsE8CvIA/YxGnCM1AYl6ZineHrBVssX+GurKDWWPl4jgMti54M30FjAIGaZrfJ9wz3sf/DAEXF6S/cbidwuQwkemSA9WroNetByTVWVA3CSR6oY/8pPSW40/c1/GJtkKjCntMjdasRNF4DEmu93fMNdB9nLvNFyOQAPjw7/WTdQhrAl6EZZ2TCrJegamE4yWje71Ux2MVrVaXAtN8w51Kg74BktrKypc5Vh94pa90rwVL1WlNaSwTuOdECAwEAAaMdMBswDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCBsAwDQYJKoZIhvcNAQELBQADggIBAD5Gowv5g7XrJ/j3o7zP40D/yCut/Wki7usmI/EWnmvghwmas4ZHWzJY5y4tWNll+Kj6NfTicKpnZ8Ph8JKM5BhvrT1kLqh+uj9L9ZRUkQmi3MnYprwds9D+VT6eeqnGeHH544W6am5MLj9c88E3KvWgTM5cC+QKpAKBFOrf07Bm3PEi3sJBufdVz0yAWLA6xrOVfjBieJySCdpYQ6ESvWBUx9CMRlYMxIGZdll5vsQ4WsbilrzeyT7tifzHcCtuGDLeMyZ3nKIkXftT2JvVR92pbjY09RHiuVZNmoLnpAorK2tNyJ/Tkv679qRrSNabgTtAkP/yIC0hy/IJjbZf20xoIv0Q9dtri4s+URBNdqYIsKIcBGb13aBkGqBcIsLs91Ji345U7bAkPWV78dJaU7da2nYHYrtk1WKWP4s4WuCoDPBnGwTalBu30CnCEMPTU4+FvFTE4OKSq0fpgVhqLS1wOnV7w3JrNKNmJMxyvb6XBA8K5l8otXEWEoxAbi26GfSl0x0fQMHytIbl0bOOnQD60OAwZo6Q1cgukH5xJi9Nh4Qi/0o6HPfvnW7dMDlmBpTENgeur5EHWmRtIiy1L7xFRxTYlgsSdInwPP+V8HTuGEEMYhRzqvqOtbo63IItO7fXArfByYPL3EctYW/1u0sq+wS/muBbIunC+8YsMpoB", "is_active": false, "issuer_business_name": "ÑEVES RAMIREZ QUEZADA", "valid_from": "2019-06-17T18:33:25", "valid_to": "2023-06-17T18:33:25", "certificate_type": "stamp" }, { "issuer_rfc": "RAQÑ7701212M3", "certificate_number": "30001000000400002448", "csd_certificate": "MIIFjjCCA3agAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDI0NDgwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNjE3MjExMTA5WhcNMjMwNjE3MjExMTA5WjCBtTEeMBwGA1UEAxQV0UVWRVMgUkFNSVJFWiBRVUVaQURBMR4wHAYDVQQpFBXRRVZFUyBSQU1JUkVaIFFVRVpBREExHjAcBgNVBAoUFdFFVkVTIFJBTUlSRVogUVVFWkFEQTEWMBQGA1UELRQNUkFR0Tc3MDEyMTJNMzEbMBkGA1UEBRMSUkFRTjc3MDEyMUhERk1aVjA4MR4wHAYDVQQLFBXRRVZFUyBSQU1JUkVaIFFVRVpBREEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzC7243Db2FuASY1LbkcLfv7GaTdeX0++rTYCsgvpyCQoE48F3hWe/ku60HGIdm8b7DlTqjrR+BJ0JRzpJ0A7O0U9XXxtHDC1vHFKMtXOVPxPoRsrfF00/SWFnJaIAT3jXVXU5C3psci08f0UryTdgtAmvfp9H30s5668sPywNPmy8TMLQq/Pj35CZKzWuD2R64ZJHAV/lV6JMZX4LaKQnRxZ29vUta06CN94R3hUCTNzp45pxaUZznsS+VgDngt3CUxlLIPsqXhqNn9+j8tGFXFJCYxMmYV2RXoJwxXO/9WfTU621a7mYNafOSYWNOwYfYU+Vvip/aVn6CBBZR8+PAgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBCwUAA4ICAQCBxVD5mG92x8UMYDepwQlZPMIgAYqVLNAZMNBNPiNJFvBgRNVZhAovC7rQ9wq4mQu4actWcBDTDdLlJiuU1M1PMMsQiwf5NLz9sDcC01ouV1JwaGLU2iYV/sLCSXjbt4UtEnt2YCiPv6lvY32iEzyJGhnT5UxNlE6JN0b1oOv6B5BfPDF51LN17F32C6H6d9bm9scjX4FgNL/Zm8mBe+fWGVtEewV6jm6QR9K8s7D4L58kbzFMK80aI7p3MTZFdiHCSveyKlnKRP1IbgYmXx4nrrVczsWkh2r5iH6SRztQwiVNET1xWoblwgQf3pZRfeCEU13jDOzB1b3ueTJ8htsVWbSDbJDyB3jnbjT9LF+QXs1ShOMNX28fk1VdntyRc7gcMwDT5O2aIh+AOub8bYpYjAfGZ5ig4a9nrpDawNledO77iRK8wKU8IJzgf5MzoDEwFtlAcsKclDGn7mQU6OUxtDrTKWFBIAV3TYxOqDnfaLnj+dHxmZXJEkRHSUnaUix49x2F1QAHcpUeN8FSxXUaVBXLGiRsD1L4L0gU8lEjVfAGJy68Twu6fTq9b/2i3wqNu0pMPgL39tBAdRahtxtIKKbxqn/kuUiONX1RgsMUTKT2RDC1ZB1VFOFM6oqD/0qDWmxzwZf1fXHZYPP4e1lIcRYxuu+ZZpQoj1kHXG7y4g==", "is_active": true, "issuer_business_name": "ÑEVES RAMIREZ QUEZADA", "valid_from": "2019-06-17T16:11:09", "valid_to": "2023-06-17T16:11:09", "certificate_type": "stamp" }, { "issuer_rfc": "XIA190128J61", "certificate_number": "30001000000400002443", "csd_certificate": "MIIFyDCCA7CgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDI0NDMwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNjE3MjA0MDUxWhcNMjMwNjE3MjA0MDUxWjCB7zEqMCgGA1UEAxMhWEVOT04gSU5EVVNUUklBTCBBUlRJQ0xFUyBTIERFIENWMSowKAYDVQQpEyFYRU5PTiBJTkRVU1RSSUFMIEFSVElDTEVTIFMgREUgQ1YxKjAoBgNVBAoTIVhFTk9OIElORFVTVFJJQUwgQVJUSUNMRVMgUyBERSBDVjElMCMGA1UELRMcWElBMTkwMTI4SjYxIC8gS0FITzY0MTEwMUIzOTEeMBwGA1UEBRMVIC8gS0FITzY0MTEwMUhOVExLUzA2MSIwIAYDVQQLExlYZW5vbiBJbmR1c3RyaWFsIEFydGljbGVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiJQ5YcSgjwsGf29+3go7VGdtMZCcH9wUpn46ZMAlFwUojnCPTvwJ3+cSwjqJnw8ahr3DuRwekvGR4BJAb5b9Xi8kyoiWtwcGOSWxO38Bp9J1e/BO9HMbQBPAtLDuG47oqnH8zWLOeaoYRJDpARw4RX1ko2+9tbj0ntBtM7Vk1E8EWiA/h2Meq0LIv1+ySGTUrEW46FM01J5pzELv5XupBghuJxR5DG9fiOW7u3dR5s3tZoVLwA1KdjJtY0mmnfCwxg6i5AqhvY+FAI5D6CF6/lHA8PWg63WasvrhuIv70xCLjgPT/j00ZcPrLvBf1DefGVic980Ch/SDvC+MdJ1F5wIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEACjfTPoKY2N5MxjmAMltd5XZCV1vgAwEtrIRYTodhE8R0Tp1QanAXb0luPyBv5hIXWK4VqAI4fcTtP+n7kkrwfha6ErkPWFNJWJm8ZsMmby/3WgVoJkOFyRYQqr5Il3N6wMa5kiDBtDRbqB3iEXmvtrvjWSHyxAER+zo3jWGFlhBZ0nQNRtjx8sPFihVc5TUH682HJiU4oWvT63Dnra8ncqiW/uCuY86crnUq0fW7Lw/3+PY5xXjNxR/Hh3sUPITfJrGaLWurD1J9npr9yGAJ6t9zrhhZnepIC0DUMc5+j4pg1DrO32jzwUOLQqErDizh84NoJCWwbg+US8wi3zD0ZKiDv7XsTNWAW2Ap2JkzykKHjFTZiEm3uZOkJNfcu3o+kefr5HfXFT+iN9K5FUEhaQwgUeZBRJ8V5F6gmhz3d6ixVbiZoFNhYR8e2k8gF9gGrVMrEbJGQrl+6+ZYQLFiauXeG7fu1svk19PuyredRJGnseJqyV4RzcRGhJA+cLnmpdDOTEhignnvnhEuY6HVRYYXhOTyeeluET7KRCxbJGqO7TdWgjrHL3HRbNE4NY5GAdOZuLaWxElG5ZVCHqtG0Nh7UQAhcz+EKyZBAewv5XuH0OomZXw6mM2mY2soL6z1224NusM8/BbJcYTQUlAEKblEChhGK1XlxiVOU2nc9KE=", "is_active": true, "issuer_business_name": "XENON INDUSTRIAL ARTICLES S DE CV", "valid_from": "2019-06-17T15:40:51", "valid_to": "2023-06-17T15:40:51", "certificate_type": "stamp" } ], "status": "success" } ``` ``` { "message": "El token debe contener 3 partes", "messageDetail": "", "data": null, "status": "error" } ``` | Attribute | Type | Description | | --- | --- | --- | | message | String | Code returned when an error occurs. | | messageDetail | String | More descriptive error message when there is one. | | data | Array/null | Array of objects with details of the issuer’s CSD certificates, including RFC, validity, serial number, and status. | | status | String | “success” o “error” | [Test it in Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-ff7b1122-42ac-4632-b2b9-030144b2c207) --- ### Get Certificate by NoCertificado Service that retrieves a certificate using its serial number as a parameter. #### 🔗 Endpoint | **M**ethod | **Path** | | --- | --- | | **GET** | /certificates/**{noCertificado}** | #### 🔐 Authentication and Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/generate-access-token/) | #### 📍 Path parameters | Property | Description | | --- | --- | | noCertficado | Certificate number to be obtained. | #### Example Request ``` curl --request GET --url https://services.test.sw.com.mx/certificates/30001000000400002321 --header 'Authorization: Bearer $token' ``` #### Example Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Attributes of the response ``` { "data": { "issuer_rfc": "CACX7605101P8", "certificate_number": "30001000000400002335", "csd_certificate": "MIIFijCCA3KgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDIzMzUwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNTI5MTk1MDAxWhcNMjMwNTI5MTk1MDAxWjCBsTEdMBsGA1UEAxMUWE9DSElMVCBDQVNBUyBDSEFWRVoxHTAbBgNVBCkTFFhPQ0hJTFQgQ0FTQVMgQ0hBVkVaMR0wGwYDVQQKExRYT0NISUxUIENBU0FTIENIQVZFWjEWMBQGA1UELRMNQ0FDWDc2MDUxMDFQODEbMBkGA1UEBRMSQ0FDWDc2MDUxME1HVFNIQzA0MR0wGwYDVQQLExRYT0NISUxUIENBU0FTIENIQVZFWjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKvYaTyUuvtUIwymg88xS3Ri7W2J758lusEgwUaxdyIyxLQK2736yrK6RotjDu7pfbzqD5CyJ6gkT70x29QNe5MHUgcNPnARoYK2+0a0kWjpweNqjb0pCOMevUCzblF72c7MkErbW5qolIRIsI4UFSZOlLDI9O9lKm0Tk85Ab0siaqUefGl9lOOkjPT7Pr/CkHk4jxZJOzY2cWVey00vgFh/t9xxbF6Rvi738dfZ9R9h2TVEpaRRYb+m4rpTMos6HEfmhuKSsNe2/M8NDxC4zkcwdC5WS9NhNd4kUQ+7TFLmIo14tOXXSBZVVsg49/L+lq/eh44K1Ze3iSW9M7Ii8mECAwEAAaMdMBswDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCBsAwDQYJKoZIhvcNAQELBQADggIBAK1bJ6vhkqIF0Y4XnDUFQ/nZUOsQCXbs+czwu62kVaOffHWcKhJ1mTaSwkmFoqykV3VAib7RYKYTXcERow21uGEfnOhNxeSi4l2An7y6PtJOGy4wTjAX++iAeoh+ZDel3VBhvNYv6IZAcsVqdTl0Mfs/E7EuCc6YqumEBTbFTMcp92A31HWHqkI+UnXcogYndsaIK2m+iER6AHhUokfOjOiSJmSEovaXmaJVkmjbv3g07FeMB2fZ8fp3rrRtHjgTzbZyPY2LjhBnV/0vaTnGZH4l1RWZ+dgFn5/09GJJYLgaTBHpuRNBI6JRQ9/iR4NMjOEbNXDIpKibnIg3zG1yqQtUwQBUic0lF958n1KOg7fM+Msgq9Fjg2FY3aI2DAoGWKJR8PTiFbXy+Arpzd669QWzgIusT7KLwlFhKm+a+9dmE2lp0WUj2QH0drJdfSuvqA9ZIu3I0yvnpUT0jlun0PZyoloTOd5X+8z2kLSAxbZaOu9I4XATcwZntZK0FIueh4Htom524ne/MNp6nEXzpxV4HPiW626VoykB4AHJwIp7ljcg8D4IJ7oIF/0UEduwbsx3amAfDeg/9YtPRC4j5M0h3l7zLcJ2/BFwr8qYM74d0v00Hm4msirCPkE+kr58oL1NjwN7vvPA96HbSeBohH+f/X8FcZ965FhmjmZWgj0W", "is_active": false, "issuer_business_name": "XOCHILT CASAS CHAVEZ", "valid_from": "2019-05-29T14:50:01", "valid_to": "2023-05-29T14:50:01", "certificate_type": "stamp" }, "status": "success" } ``` ``` { "message": "Certificados", "messageDetail": "No se encontro certificado con el numero de certificado 3000100000040000233 activo.", "data": null, "status": "error" } ``` | Attribute | Type | Description | | --- | --- | --- | | message | String | Code returned when an error occurs. | | messageDetail | String | More descriptive error message when there is one. | | data | Array/null | Array of objects with details of the issuer’s CSD certificates, including RFC, validity, serial number, and status. | | status | String | “success” o “error” | [Test it in Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-c758398c-4f0f-4a0e-bcef-f3580060c394) --- ### List Certificates by RFC Service that retrieves a certificate using the RFC as a parameter. #### 🔗 Endpoint | **M**ethod | **Path** | | --- | --- | | **GET** | /certificates/rfc/**{rfc}** | #### 🔐 Authentication and Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/generate-access-token/) | #### 📍 Path parameters | Property | Description | | --- | --- | | rfc | Taxpayer’s RFC to be consulted | #### Example Request ``` curl --request GET --url https://services.test.sw.com.mx/certificates/rfc/EKU9003173C9 --header 'Authorization: Bearer $token' ``` #### Example Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Attributes of the response ``` { "data": [ { "issuer_rfc": "EKU9003173C9", "certificate_number": "30001000000400002434", "csd_certificate": "MIIFuzCCA6OgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDI0MzQwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNjE3MTk0NDE0WhcNMjMwNjE3MTk0NDE0WjCB4jEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gWElRQjg5MTExNlFFNDEeMBwGA1UEBRMVIC8gWElRQjg5MTExNk1HUk1aUjA1MR4wHAYDVQQLExVFc2N1ZWxhIEtlbXBlciBVcmdhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCN0peKpgfOL75iYRv1fqq+oVYsLPVUR/GibYmGKc9InHFy5lYF6OTYjnIIvmkOdRobbGlCUxORX/tLsl8Ya9gm6Yo7hHnODRBIDup3GISFzB/96R9K/MzYQOcscMIoBDARaycnLvy7FlMvO7/rlVnsSARxZRO8Kz8Zkksj2zpeYpjZIya/369+oGqQk1cTRkHo59JvJ4Tfbk/3iIyf4H/Ini9nBe9cYWo0MnKob7DDt/vsdi5tA8mMtA953LapNyCZIDCRQQlUGNgDqY9/8F5mUvVgkcczsIgGdvf9vMQPSf3jjCiKj7j6ucxl1+FwJWmbvgNmiaUR/0q4m2rm78lFAgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBCwUAA4ICAQBcpj1TjT4jiinIujIdAlFzE6kRwYJCnDG08zSp4kSnShjxADGEXH2chehKMV0FY7c4njA5eDGdA/G2OCTPvF5rpeCZP5Dw504RZkYDl2suRz+wa1sNBVpbnBJEK0fQcN3IftBwsgNFdFhUtCyw3lus1SSJbPxjLHS6FcZZ51YSeIfcNXOAuTqdimusaXq15GrSrCOkM6n2jfj2sMJYM2HXaXJ6rGTEgYmhYdwxWtil6RfZB+fGQ/H9I9WLnl4KTZUS6C9+NLHh4FPDhSk19fpS2S/56aqgFoGAkXAYt9Fy5ECaPcULIfJ1DEbsXKyRdCv3JY89+0MNkOdaDnsemS2o5Gl08zI4iYtt3L40gAZ60NPh31kVLnYNsmvfNxYyKp+AeJtDHyW9w7ftM0Hoi+BuRmcAQSKFV3pk8j51la+jrRBrAUv8blbRcQ5BiZUwJzHFEKIwTsRGoRyEx96sNnB03n6GTwjIGz92SmLdNl95r9rkvp+2m4S6q1lPuXaFg7DGBrXWC8iyqeWE2iobdwIIuXPTMVqQb12m1dAkJVRO5NdHnP/MpqOvOgLqoZBNHGyBg4Gqm4sCJHCxA1c8Elfa2RQTCk0tAzllL4vOnI1GHkGJn65xokGsaU4B4D36xh7eWrfj4/pgWHmtoDAYa8wzSwo2GVCZOs+mtEgOQB91/g==", "is_active": false, "issuer_business_name": "ESCUELA KEMPER URGATE SA DE CV", "valid_from": "2019-06-17T14:44:14", "valid_to": "2023-06-17T14:44:14", "certificate_type": "stamp" }, { "issuer_rfc": "EKU9003173C9", "certificate_number": "30001000000500003416", "csd_certificate": "MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE=", "is_active": true, "issuer_business_name": "ESCUELA KEMPER URGATE SA DE CV", "valid_from": "2023-05-18T05:43:51", "valid_to": "2027-05-18T05:43:51", "certificate_type": "stamp" } ], "status": "success" } ``` ``` { "message": "Certificados", "messageDetail": "El Rfc proporcionado es invalido. Favor de verificar.", "data": null, "status": "error" } ``` | Attribute | Type | Description | | --- | --- | --- | | message | String | Code returned when an error occurs. | | messageDetail | String | More descriptive error message when there is one. | | data | Array/null | Array of objects with details of the issuer’s CSD certificates, including RFC, validity, serial number, and status. | | status | String | “success” o “error” | [Test it in Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-2795aa02-d96e-4fef-91c9-5c15c2a98f19) --- ### Delete Certificate Service that deletes a certificate from the account using its serial number as a parameter. #### 🔗 Endpoint | **M**ethod | **Path** | | --- | --- | | **DELETE** | /certificates/**{noCertificado}** | #### 🔐 Authentication and Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/generate-access-token/) | #### 📍Path parameters | Property | Description | | --- | --- | | noCertficado | Certificate number to be deleted | #### Example Request ``` curl --request DELETE --url https://services.test.sw.com.mx/certificates/30001000000400002335 --header 'Authorization: Bearer $token' ``` #### Example Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Attributes of the response ``` { "data": "Certificado 30001000000400002448 desactivado.", "status": "success" } ``` ``` { "message": "Certificados", "messageDetail": "One or more errors occurred.", "data": null, "status": "error" } ``` | Attribute | Type | Description | | --- | --- | --- | | message | String | Code returned when an error occurs. | | messageDetail | String | More descriptive error message when there is one. | | data | String/null | Confirmation message that the CSDs have been successfully removed. | | status | String | “success” o “error” | [Test it in Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-38446216-8647-4c7b-af21-6c43a8944e9d) --- **In SW® we strive to be the best for You****,**which is why your opinion is very important. Please help us by rating this article and leaving your comments. --- # Basic Concepts Fuente: https://developers.sw.com.mx/knowledge-base/basic-concepts/ Categoria: Documentation in English A small guide that will help you better understand some basic concepts of electronic invoices. What is a CFDI? The electronic invoice or Comprobante Fiscal Digital por Internet (CFDI) in Mexico is a digital receipt implemented by the tax authority of our country, adhering to the standards defined by the Servicio de Administración Tributaria (SAT). The SAT specifies which guidelines are suitable for issuing these types of documents according to the needs they believe are essential for the proper handling of taxes What function does a CFDI serve? The electronic invoice or Comprobante Fiscal Digital por Internet (CFDI) serves as a document that describes a specific good or service purchased, the transaction date, its cost, and breaks down the taxes related to the payment of that transaction. They also serve to support all income and expense movements of taxpayers before the tax authority How is a CFDI composed? Both the invoices you issue and those you receive must meet certain requirements and include specific data to be valid: - The Registro Federal de Contribuyentes (RFC) of the entity issuing the CFDI. - The tax regime under which it is registered with SAT. - Address (if the taxpayer has more than one location, the address where the invoice is being issued is specified). - Folio number assigned by SAT. - Sello digital. - Place and date of issuance. - RFC of the person requesting the fiscal document. - Description of the goods, products, or services for which the CFDI is being issued, including quantity, unit of measure, or type of goods. - Unit value of each of them; it must be specified in numbers. - The total amount of the invoice, which can be indicated in numbers or in words. - It should also be noted whether the payment was made in a single installment or in installments. - If applicable, the amount of transferred taxes must be indicated, broken down by tax rate, in addition to any withheld taxes. - Details of the payment method, such as cash, debit or credit card, electronic transfer, check, or through an electronic wallet authorized by SAT. - If it was a first-hand sale of imported goods, the number and date of the customs document must also be indicated. - Date and time of certification. - Serial number of the digital certificate used for sign. These requirements are published in the current “[Formato de factura Anexo 20 de la Resolución Miscelánea Fiscal](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm)“. How many types of CFDIs are there? Currently, there are six types of CFDIs: - CFDI de Ingreso (Income CFDI): Mainly issued for the provision of services, sale of goods or merchandise, leasing, or receipt of fees. Its purpose is to demonstrate the income of taxpayers. - CFDI de Egreso (Expense CFDI): Issued when there is a return of goods or the cancellation of an Income CFDI. Its purpose is to cover the outflows of money for a taxpayer. - CFDI de Traslado (Transfer CFDI): This CFDI supports goods that will be transferred from one point to another to verify the legality of the possession of these goods. - CFDI de Nómina (Payroll CFDI): It is the document that contains information on withholdings and payments to workers. - CFDI de Recepción de Pagos (Payment Reception CFDI): Generated when a payment is received, applicable when the payment method is applied in installments. - CFDI de Retención e Información de Pagos (Withholding and Payment Information CFDI): Supports tax withholdings made or payments performed.” What is the technical structure of a CFDI? The CFDI is a digital document generated in a file with XML or Extensible Markup Language format. For a receipt to be valid, it must meet the following characteristics: - The technical guidelines for form and syntax for generating XML files specified by the W3C consortium, established at [www.w3.org](http://www.w3.org/) - Additional validation rules established in ‘[Formato de factura Anexo 20 de la Resolución Miscelánea Fiscal](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm)‘ - Additional validation rules established in each addendum integrated into the XML file - Particular validation rules published in ‘[Formato de factura Anexo 20 de la Resolución Miscelánea Fiscal](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm)‘ We remind you that we have a Examples section where you can find the structure of different types of CFDIs, as well as our Libraries section where you can interact with different programming languages for creating your receipts. What is a Timbre Fiscal? Fiscal stamps are seals used for the issuance of CFDIs provided through companies certified by the SAT, commonly referred to as PACs (Authorized Certification Providers), such as ourselves, SmarterWeb. What is to 'Timbrar' a CFDI? The process in which both the issuer’s seal and the tax authority’s seal are added. It can be done directly on the SAT platform or through Authorized Certification Providers (PAC) Is 'Timbrar' the same as 'Sellar' a CFDI? “No, ‘Sellar’ a CFDI refers to signing the document with our Digital Stamp Certificate (CSD), so that the authenticity of the document can be verified. To seal the CFDI, the values of important attributes for the SAT are concatenated, representing our original chain. On the other hand, ‘Timbrar’ refers to generating and placing a Digital Fiscal Stamp that validates a Digital Fiscal Receipt over the Internet. This fiscal stamp is obtained by connecting to an Authorized Certification Provider (PAC) over the internet. What is a PDF of a CFDI? The PDF in this context is a printed representation of the CFDI, whose content is more similar to the invoices we were familiar with before. This document can be printed, although it has no legal value, as the digital file is what matters. If you want to have a printed representation, a barcode or the fiscal folio number of the receipt should be generated; the serial number of the Digital Stamp Certificate of the issuer and the SAT, and the original chain of the digital certification supplement. Additionally, a legend stating ‘This document is a printed representation of a CFDI’ must be added. Legal basis: RFM 2.7.1.7 Requirements for printed representations of CFDI. What is an XML of a CFDI? The XML is an adaptation of SGML (Standard Generalized Markup Language), a language that allows the organization and tagging of documents. In electronic invoicing, XML is used as a communication protocol through which the information to be invoiced is sent. How to structure an XML? For the XML structure to be valid, it must follow the technical guidelines for form and syntax for generating XML files specified by the W3C consortium, established at [www.w3.org](http://www.w3.org/). The XML document must be expressed under the UTF-8 encoding standard, and particularly, escape sequences should be used when there are any of the following special cases specified within the attributes of the file. - In the case of ‘&’, the sequence ‘&’ must be used. - In the case of ‘“’, the sequence ‘”‘ must be used. - In the case of ‘<‘, the sequence ‘<‘ must be used. - In the case of ‘>’, the sequence ‘>’ must be used. - In the case of ‘‘’, the sequence ”’ must be used In order to be validated, it must be referenced to the namespace of the Digital Fiscal Receipt over the Internet and refer its validation to the path published by the SAT where the XSD schema object of this section is located. You can refer to Our examples for further reference on this structure. What is the difference between the PDF and XML of a CFDI? XML is a markup language that defines a set of rules for encoding documents and, in this context, represents the electronic invoice. On the other hand, PDF (Portable Document Format in English), used to display documents in electronic form, is a graphical representation of the information expressed in the CFDI. What is to 'issue' or 'stamp' an XML? The issuance of an XML or the stamping is nothing more than the use of a digital signature generated from the information in our CFDI to keep our information secure and ensure that it is not altered after its creation. For this process, encryption algorithms are used to prevent the manipulation of our XML. What is an encryption algorithm? A traditional encryption algorithm is a function that transforms a message into a seemingly random and unreadable series using an encryption key that can be reversed (i.e., obtaining the original message) only by those who know the key. Through encryption, private information can be sent publicly over the internet without significant risk of others gaining access to it. What is a Hash function? A hash function is a method for generating keys or codes that uniquely represent a document or set of data. It is a mathematical operation performed on this data set of any length, and its output is a fixed-size and dimension-independent fingerprint. The content is unreadable. What is SHA-256? SHA-256 is a 64-character hexadecimal hash used to sign text documents and/or files, which is nearly unique and has a fixed size of 256 bits (32 bytes). A hash is only calculated in one direction and cannot be decoded back, hence its advantage and high level of encryption. --- # Cancellation of CFDI Fuente: https://developers.sw.com.mx/knowledge-base/cancellation-of-cfdi/ Categoria: Documentation in English This service facilitates the cancellation of invoices through various available methods. It is crucial to note that, for cancellations in the testing environment, the use of [test CSDs](https://developers.sw.com.mx/knowledge-base/new-valid-csds-for-testing/) (Digital Seal Certificate) designated by the SAT (Tax Administration Service) is mandatory. Before initiating the cancellation process, it is highly recommended to perform the following technical checks. Firstly, verify the current [status of the invoice](https://developers.sw.com.mx/knowledge-base/servicio-publico-de-consulta-estatus-cfdi-sat/) to ensure it is eligible for cancellation. Secondly, conduct a thorough review of the [associated CFDIs](https://developers.sw.com.mx/knowledge-base/consulta-cfdi-relacionados/) (Digital Fiscal Invoices over the Internet) to identify any dependencies or linked transactions. These pre-cancellation steps are crucial to ensuring a seamless and error-free cancellation process. **💡Important:** Some of the [libraries](https://github.com/lunasoft) are already updated and ready to test the new cancellation scheme. 💡 For this service, you can also use the **test CSDs** provided by the SAT. ℹ️ Note: The `/cfdi33/cancel/` endpoint is fully compatible with both CFDI 3.3 and CFDI 4.0. #### URL´s 🛠️ TEST: `https://services.test.sw.com.mx` 📄 🚀 Production: `https://services.sw.com.mx` 📄 --- ## Valid values for the *reason* field (motivo) The *reason* field is required in all cancellation methods. The accepted values are: Tabla con los motivos. | Key | Description | Requires “FolioSustitucion”? | | --- | --- | --- | | 01 | Invoice issued with errors with relation | ✅**Yes, required** | | 02 | Invoice issued with errors without relation | ❌ Must not be sent | | 03 | Transaction was not carried out | ❌ Must not be sent | | 04 | Nominal transaction related to global invoice | ❌ Must not be sent | ⚠️ Important: `folioSustitucion` is only required when `reason = "01"`. For any other reason, this field must be omitted. --- ## Cancellation by UUID Cancellation method by UUID, for this method it is essential to previously upload the issuer’s [certificates](https://developers.sw.com.mx/knowledge-base/api-certificados/) to the account #### 🔗 Endpoint | Method | Path | | --- | --- | | **POST** | /cfdi33/cancel/**{rfc}/{uuid}/{motivo}/{folioSustitucion}** | #### 🔐**Authentication and Headers** | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/generate-access-token/) | #### 📍 **Path Parameters** | Property | Use | Description | | --- | --- | --- | | rfc | Required | Tax ID (RFC) of the issuer. | | uuid | Required | UUID of the CFDI to cancel. | | motivo | Required | Key to express the reason for cancellation. | | folioSustitucion | Optional | UUID of the CFDI replacing the previous one. | The property ‘folioSustitucion’ will be required when ‘motivo’ is 01. #### Example Request 📌 Example — With folioSustitucion 📌 Example — Without folioSustitucion ℹ️ **Reason 01** — The CFDI was issued with errors and there is a replacement document. The replacement UUID is added as the last segment of the path. ``` curl --request POST --url https://services.test.sw.com.mx/cfdi33/cancel/EKU9003173C9/f7392818-aca8-44b0-9942-120d862a71ea/01/fe4e71b0-8959-4fb9-8091-f5ac4fb0fef8 --header 'Authorization: Bearer $token' ``` ℹ️ **Reason 02** — The CFDI was issued with errors but there is no replacement document. The `folioSustitucion` segment is completely omitted from the path. ``` curl --request POST --url https://services.test.sw.com.mx/cfdi33/cancel/EKU9003173C9/f7392818-aca8-44b0-9942-120d862a71ea/02 --header 'Authorization: Bearer $token' ``` #### Example Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Attributes of the response ``` { "data": { "acuse": "FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8202not(ancestor-or-self::*[local-name()='Signature'])yQdDpQmr8EW3PvHBdGDiOfcO4hF3gXApv9ggW+x8pGb0Ox1inycuKKBo46RBozt8oWat4g2jLQEak2PyS/JbEg==xAzJW9WdeFYkxR7+NQXGCgRoGCFbnUMN4aQ81OIa6Nh/NfuRStIhA8s5V4amtaNimYNR3v6PKAOUjCDVxxnVMw==BF66E582888CC845n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=AQAB", "uuid": { "FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8": "201" } }, "status": "success" } ``` ``` { "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CA305 - Certificado Inválido.", "data": null, "status": "error" } ``` | Attribute | Type | Description | | --- | --- | --- | | message | String | Code returned when an error occurs. | | messageDetail | String | More descriptive error message when there is one. | | data | object/null | Contains information about the cancellation acknowledgment issued by the SAT, including the acknowledgment XML and the UUID status. | | status | String | “success” / “error” | [Test it in Postman](https://www.postman.com/red-shadow-569412/workspace/SW-API-Developers~0b1c16ca-0b13-4769-bd9f-8c3e8498d55b/request/23720084-5c4cad66-dbe5-4353-92b8-80d968edb94e?action=share&source=copy-link&creator=30544483&ctx=documentation) --- ## Cancellation by CSD For our electronic invoice cancellation service, you can use this method if you prefer to include your CSD in the request or if they are not stored in our ADT portal. This streamlined process ensures secure and efficient cancellation. #### 🔗 Endpoint | Method | Path | | --- | --- | | **POST** | /cfdi33/cancel/csd | #### 🔐**Authentication and Headers** | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/generate-access-token/) | | Content-Type | application/json | #### 🧾 **JSON Body parameters** | Property | Use | Description | | --- | --- | --- | | uuid | Required | UUID of the CFDI to cancel. | | rfc | Required | Tax ID (RFC) of the issuer. | | motivo | Required | Key to express the reason for cancellation. | | folioSustitucion | Optional | UUID of the CFDI replacing the previous one. | | b64Cer | Required | Issuer’s certificate in Base64. | | b64Key | Required | Issuer’s key in Base64. | | password | Required | Certificate password. | The property ‘folioSustitucion’ will be required when ‘motivo’ is 01. #### Example Request 📌 xample — With folioSustitucion 📌 Example — Without folioSustitucion ℹ️ **Reason 01** — The CFDI was issued with errors and there is a replacement document. The replacement UUID is added as the last segment of the path. ``` curl --request POST \ --url https://services.test.sw.com.mx/cfdi33/cancel/csd \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "uuid": "059c8c06-af7e-4c8c-8085-51b631696de5", "password": "12345678a", "rfc": "EKU9003173C9", "motivo": "01", "folioSustitucion": "fe4e71b0-8959-4fb9-8091-f5ac4fb0fef8", "b64Cer": "$cer", "b64Key": "$key" }' ``` ℹ️ **Reason 02** — The CFDI was issued with errors but there is no replacement document. The `folioSustitucion` segment is completely omitted from the path. ``` curl --request POST --url https://services.test.sw.com.mx/cfdi33/cancel/csd --header 'Authorization: Bearer $token' --header 'Content-Type: application/json' --data '{ "uuid": "059c8c06-af7e-4c8c-8085-51b631696de5", "password": "12345678a", "rfc": "EKU9003173C9", "motivo": "02", "b64Cer": "$cer", "b64Key": "$key" }' ``` #### Example Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Attributes of the response ``` { "data": { "acuse": "24B927FF-E5FA-4662-9BA0-9176A4C218B1202not(ancestor-or-self::*[local-name()='Signature'])5S+xTQEV6cO8ek7qdG2l3yAcepQ0kvQ9eakdiWDq9/2D6P20O48G6K8AUJ9C55fBVBYoj+sQ87YUF/dpGJZemA==W8JG7ypQmqfuOtFefK9HQwwI6BQHd9dojGhyo7YmDaG3RRGxMlGozQOJGYEHAR4XSvISKkCRnT9RodEdgnEfFw==BF66E582888CC845n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=AQAB", "uuid": { "24B927FF-E5FA-4662-9BA0-9176A4C218B1": "201" } }, "status": "success" } ``` ``` { "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CA305 - Certificado Inválido.", "data": null, "status": "error" } ``` | Attribute | Type | Description | | --- | --- | --- | | message | String | Code returned when an error occurs. | | messageDetail | String | More descriptive error message when there is one. | | data | object/null | Contains information about the cancellation acknowledgment issued by the SAT, including the acknowledgment XML and the UUID status. | | status | String | “success” / “error” | [Test it in Postman](https://www.postman.com/red-shadow-569412/workspace/SW-API-Developers~0b1c16ca-0b13-4769-bd9f-8c3e8498d55b/request/23720084-467f69fa-e354-4a94-96fd-34c0f075e14b?action=share&source=copy-link&creator=30544483&ctx=documentation) --- ## Cancellation by PFX Our electronic invoice cancellation service allows secure and convenient authentication using PFX files, consolidating both the digital certificate and private key into a single password-protected file for an integrated and efficient solution. This service is particularly useful if you haven’t uploaded your CSD to our ADT portal. **💡Supporting articles:** [How to create a PFX file?](https://developers.sw.com.mx/knowledge-base/como-crear-un-pfx/) #### 🔗 Endpoint | Method | Path | | --- | --- | | **POST** | /cfdi33/cancel/pfx | #### 🔐**Authentication and Headers** | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/generate-access-token/) | | Content-Type | application/json | #### 🧾**JSON Body parameters** | Property | Use | Description | | --- | --- | --- | | uuid | Required | UUID of the CFDI to cancel. | | rfc | Required | Tax ID (RFC) of the issuer. | | motivo | Required | Key to express the reason for cancellation. | | folioSustitucion | Optional | UUID of the CFDI replacing the previous one. | | b64Pfx | Required | PFX file in Base64. | | password | Required | PFX password. | The property ‘folioSustitucion’ will be required when ‘motivo’ is 01. #### Example Request 📌 Example — With folioSustitucion 📌 Example — Without folioSustitucion ℹ️ **Reason 01** — The CFDI was issued with errors and there is a replacement document. The replacement UUID is added as the last segment of the path. ``` curl --request POST \ --url https://services.test.sw.com.mx/cfdi33/cancel/pfx \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "uuid": "15b0cdf5-7cc6-4f6f-815a-5f101402f185", "password": "12345678a", "rfc": "EKU9003173C9", "motivo": "01", "folioSustitucion": "fe4e71b0-8959-4fb9-8091-f5ac4fb0fef8", "b64Pfx": "$Pfx" } ``` ℹ️ **Reason 02** — The CFDI was issued with errors but there is no replacement document. The `folioSustitucion` segment is completely omitted from the path. ``` curl --request POST --url https://services.test.sw.com.mx/cfdi33/cancel/pfx --header 'Authorization: Bearer $token' --header 'Content-Type: application/json' --data '{ "uuid": "15b0cdf5-7cc6-4f6f-815a-5f101402f185", "password": "12345678a", "rfc": "EKU9003173C9", "motivo": "02", "b64Pfx": "$Pfx" }' ``` #### Example Response ✅ Response Ok (200) ❌ Response Error (400) 📘Attributes of the response ``` { "data": { "acuse": "FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8202not(ancestor-or-self::*[local-name()='Signature'])yQdDpQmr8EW3PvHBdGDiOfcO4hF3gXApv9ggW+x8pGb0Ox1inycuKKBo46RBozt8oWat4g2jLQEak2PyS/JbEg==xAzJW9WdeFYkxR7+NQXGCgRoGCFbnUMN4aQ81OIa6Nh/NfuRStIhA8s5V4amtaNimYNR3v6PKAOUjCDVxxnVMw==BF66E582888CC845n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=AQAB", "uuid": { "FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8": "201" } }, "status": "success" } ``` ``` { "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CA305 - Certificado Inválido.", "data": null, "status": "error" } ``` | Attribute | Type | Description | | --- | --- | --- | | message | String | Code returned when an error occurs. | | messageDetail | String | More descriptive error message when there is one. | | data | object/null | Contains information about the cancellation acknowledgment issued by the SAT, including the acknowledgment XML and the UUID status. | | status | String | “success” / “error” | [Test it in Postman](https://www.postman.com/red-shadow-569412/workspace/SW-API-Developers~0b1c16ca-0b13-4769-bd9f-8c3e8498d55b/request/23720084-22028c2c-a743-46a6-b5eb-e1f759f4a5cc?action=share&source=copy-link&creator=30544483&ctx=documentation) --- ## Cancellation by XML Service for canceling by sending an XML with the information and folios of the invoices to be canceled. This method can be used for mass cancellation of CFDI. #### 🔗 Endpoint | Method | Path | | --- | --- | | **POST** | /cfdi33/cancel/xml | #### 🔐**Authentication and Headers** | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/generate-access-token/) | | Content-Type | multipart/form-data | #### 🧾**Form Parameters** | Property | Use | Description | | --- | --- | --- | | xml | Required | XML structured according to the Anexo 20 [(Technical Documentation](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/documentos/Anexo20_2022.pdf) page 62, on the official SAT portal), containing information about the invoices to be canceled. | #### Example XML 📄 Example — With folioSustitucion 📄 Example — Without folioSustitucion 📄 Example — Bulk Cancellation ``` 8I7eeK5eaJOH4OYMwWnEg67ytf81h7RWTBcA6h/fWC0= tHhFiHn7sJ8u3cenjUvtfs6U291YWhNGVo5QK/s6Ym9AhAEb0Lm5TGylw3ouckqJ245WV5MiQ6utw4vfPSgpfExEwjioiCwHuIdMq47Ss4Y/dumL0aq42K3XUqY5b4RPmrBhcmZG2wT1EuHVOmVyE7Ang4Vlx/ktiL+pTPqUCV4TzuJlFFJt2Pi3SYL31cbVeUWzxxLdrWHSiaaRND90GXpTaEMLGrYNIzzw6xy2NAxRlGM8d8tfLl9JV4Yi12y57xZWMr3q/IIAyNH0Gt+17wS1AZ3I0QleEy6cc4A92avW8uDp3pdiI9wRC5JpjqGTAAcJe+j5vY2CB2sYl9UXgA== OID.1.2.840.113549.1.9.2=responsable: ACDMA-SAT, OID.2.5.4.45=2.5.4.45, L=COYOACAN, S=CIUDAD DE MEXICO, C=MX, PostalCode=06370, STREET=3ra cerrada de caliz, E=oscar.martinez@sat.gob.mx, OU=SAT-IES Authority, O=SERVICIO DE ADMINISTRACION TRIBUTARIA, CN=AC UAT 292233162870206001759766198462772978647764840758 MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE= ``` ``` 8I7eeK5eaJOH4OYMwWnEg67ytf81h7RWTBcA6h/fWC0= tHhFiHn7sJ8u3cenjUvtfs6U291YWhNGVo5QK/s6Ym9AhAEb0Lm5TGylw3ouckqJ245WV5MiQ6utw4vfPSgpfExEwjioiCwHuIdMq47Ss4Y/dumL0aq42K3XUqY5b4RPmrBhcmZG2wT1EuHVOmVyE7Ang4Vlx/ktiL+pTPqUCV4TzuJlFFJt2Pi3SYL31cbVeUWzxxLdrWHSiaaRND90GXpTaEMLGrYNIzzw6xy2NAxRlGM8d8tfLl9JV4Yi12y57xZWMr3q/IIAyNH0Gt+17wS1AZ3I0QleEy6cc4A92avW8uDp3pdiI9wRC5JpjqGTAAcJe+j5vY2CB2sYl9UXgA== OID.1.2.840.113549.1.9.2=responsable: ACDMA-SAT, OID.2.5.4.45=2.5.4.45, L=COYOACAN, S=CIUDAD DE MEXICO, C=MX, PostalCode=06370, STREET=3ra cerrada de caliz, E=oscar.martinez@sat.gob.mx, OU=SAT-IES Authority, O=SERVICIO DE ADMINISTRACION TRIBUTARIA, CN=AC UAT 292233162870206001759766198462772978647764840758 MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE= ``` ``` 8I7eeK5eaJOH4OYMwWnEg67ytf81h7RWTBcA6h/fWC0= tHhFiHn7sJ8u3cenjUvtfs6U291YWhNGVo5QK/s6Ym9AhAEb0Lm5TGylw3ouckqJ245WV5MiQ6utw4vfPSgpfExEwjioiCwHuIdMq47Ss4Y/dumL0aq42K3XUqY5b4RPmrBhcmZG2wT1EuHVOmVyE7Ang4Vlx/ktiL+pTPqUCV4TzuJlFFJt2Pi3SYL31cbVeUWzxxLdrWHSiaaRND90GXpTaEMLGrYNIzzw6xy2NAxRlGM8d8tfLl9JV4Yi12y57xZWMr3q/IIAyNH0Gt+17wS1AZ3I0QleEy6cc4A92avW8uDp3pdiI9wRC5JpjqGTAAcJe+j5vY2CB2sYl9UXgA== OID.1.2.840.113549.1.9.2=responsable: ACDMA-SAT, OID.2.5.4.45=2.5.4.45, L=COYOACAN, S=CIUDAD DE MEXICO, C=MX, PostalCode=06370, STREET=3ra cerrada de caliz, E=oscar.martinez@sat.gob.mx, OU=SAT-IES Authority, O=SERVICIO DE ADMINISTRACION TRIBUTARIA, CN=AC UAT 292233162870206001759766198462772978647764840758 MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE= ``` #### Example Request ``` curl --request POST \ --url http://services.test.sw.com.mx/cfdi33/cancel/xml \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \ --form 'xml=@C:\Users\SW sapien\cancelacionMasiva.xml' ``` #### Example Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Attributes of the response ``` { "data": { "acuse": "FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8202not(ancestor-or-self::*[local-name()='Signature'])yQdDpQmr8EW3PvHBdGDiOfcO4hF3gXApv9ggW+x8pGb0Ox1inycuKKBo46RBozt8oWat4g2jLQEak2PyS/JbEg==xAzJW9WdeFYkxR7+NQXGCgRoGCFbnUMN4aQ81OIa6Nh/NfuRStIhA8s5V4amtaNimYNR3v6PKAOUjCDVxxnVMw==BF66E582888CC845n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=AQAB", "uuid": { "FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8": "201" } }, "status": "success" } ``` ``` { "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CA305 - Certificado Inválido.", "data": null, "status": "error" } ``` | Attribute | Type | Description | | --- | --- | --- | | message | String | Code returned when an error occurs. | | messageDetail | String | More descriptive error message when there is one. | | data | object/null | Contains information about the cancellation acknowledgment issued by the SAT, including the acknowledgment XML and the UUID status. | | status | String | “success” / “error” | [Test it in Postman](https://www.postman.com/red-shadow-569412/workspace/SW-API-Developers~0b1c16ca-0b13-4769-bd9f-8c3e8498d55b/request/23720084-035ab5a7-b7da-40fd-b322-d5ff2189f23e?action=share&source=copy-link&creator=30544483&ctx=documentation) --- ## Cancellation responses All cancellation responses return the same structure in case of an error or a successful request, which are as follows: **💡Types of responses:** In case of a successful response, a 200 will be returned. In the case of an unsuccessful response, a code other than 200 will be returned; the code may vary depending on the given issue. #### Successful response Successful responses for all cancellation services ``` { "data": { "acuse": "3EAEABC9-EA41-4627-9609-C6856B78E2B1202not(ancestor-or-self::*[local-name()='Signature'])yoO1MKUhUcokwUgyKt5GJbcXvSzZhMKOp2pGhtuwBVrk35Y8HW8s6gJ04liSamflJFNWwUzaFOIf7KpS0SKkaw==7ZKbUqUVSXkd9Xo9Dm4xOzrqd+j8v3NQWH8HeIPH+opnTOTGNSlVu+a2cqKKB7vmbt2ZTyfsaNsZ+d7up0zEIw==00001088888810000001vAr6QLmcvW6auTg7a+Ogm0veNvqJ30rD3j0iSAHxGzGVrg1d0xl0Fj5l+JX9EivD+qhkSY7pfLnJoObLpQ3GGZZOOihJVS2tbJDmnn9TW8fKUOVg+jGhcnpCHaUPq/Poj8I2OVb3g7hiaREORm6tLtzOIjkOv9INXxIpRMx54cw46D5F1+0M7ECEVO8Jg+3yoI6OvDNBH+jABsj7SutmSnL1Tov/omIlSWausdbXqykcl10BLu2XiQAc6KLnl0+Ntzxoxk+dPUSdRyR7f3Vls6yUlK/+C/4FacbR+fszT0XIaJNWkHaTOoqz76Ax9XgTv9UuT67j7rdTVzTvAN363w==AQAB", "uuid": { "3EAEABC9-EA41-4627-9609-C6856B78E2B1": "202" } }, "status": "success" } ``` In this case, a JSON message is received, which contains the following data: - Acuse: XML of the acknowledgment returned by SAT. It is considered a successful cancellation request; however, this does not guarantee its cancellation. - UUID: UUID of the request and its status.. #### Unsuccessful responses Unsuccessful responses/Cancellation by CSD ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "El uuid proporcionado es inválido. Favor de verificar.", "data": null, "status": "error" } ``` ``` { "message": "CACFDI33 - Problemas con los campos.", "messageDetail": "El certificado no pertenece a la llave privada.", "data": null, "status": "error" } ``` ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "El Rfc proporcionado es inválido. Favor de verificar.", "data": null, "status": "error" } ``` ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "Invalid length for a Base-64 char array or string.", "data": null, "status": "error" } ``` Unsuccessful responses/Cancellation by PFX ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "El uuid proporcionado es inválido. Favor de verificar.", "data": null, "status": "error" } ``` ``` { "message": "CACFDI33 - Problemas con los CSD.", "messageDetail": "Error con los CSD. Error: Cannot Read PFX......", "data": null, "status": "error" } ``` ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "El Rfc proporcionado es inválido. Favor de verificar.", "data": null, "status": "error" } ``` ``` { "message": "CASD - Acuse sin descripción específica.", "messageDetail": "Invalid length for a Base-64 char array or string.", "data": null, "status": "error" } ``` Unsuccessful responses/Cancellation by UUID ``` { "message": "CACFDI33", "messageDetail": "El UUID proporcionado es invalido. Favor de verificar.", "data": null, "status": "error" } ``` ``` { "message": "CACFDI33", "messageDetail": "El Rfc proporcionado es invalido. Favor de verificar.", "data": null, "status": "error" } ``` Unsuccessful responses/Cancellation by XML ``` { "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CA305 - La fecha de emisión no esta dentro de la vigencia del CSD del Emisor.", "data": null, "status": "error" } ``` ``` { "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CA302 - Sello mal formado o inválido.", "data": null, "status": "error" } ``` ### Response codes for cancellation folios | Code | Message | Description | | --- | --- | --- | | 201 | Solicitud de cancelación exitosa. | It is considered a successful cancellation request; however, this does not guarantee its cancellation. | | 202 | Folio Fiscal Previamente Cancelado. | It is considered a previously submitted cancellation request. Status: Canceled with the SAT. | | 203 | Folio Fiscal No Correspondiente al Emisor. | | | 204 | Folio Fiscal No Aplicable a Cancelación. | | | 205 | Folio Fiscal No Existente. | The SAT grants a 48-hour extension for the invoice to appear with a Valid status after being sent by the CFDI Certification Provider. It is possible that some invoices may not appear immediately; it is necessary to wait for at least 48 hours. | | 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. | The replacement UUID does not exist, is canceled, or has an issuance date earlier than the issuance date of the original invoice. | | 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. | This error code is returned when the request contains invalid information, for example: an invalid recipient RFC. | | 302 | Sello Mal Formado | | | 304 | Certificado Revocado o Caduco. | The certificate can be invalid for multiple reasons such as type, validity, etc. | | 305 | Certificado Inválido. | The certificate can be invalid for multiple reasons such as type, validity, etc. | | 309 | Certificado Inválido. | The certificate can be invalid for multiple reasons such as type, validity, etc. | | 310 | CSD Inválido. | | | 311 | Motivo inválido. | Invalid cancellation reason code. | | 312 | UUID no relacionado. | Unrelated UUID according to the cancellation reason code. | --- **In SW® we strive to be the best for You,** **wich is why your opinion is very important. Please help us by rating this article and leaving your comments.** --- # Electronic invoice (CFDI) version 4.0 Fuente: https://developers.sw.com.mx/knowledge-base/electronic-invoice-cfdi-version-4-0/ Categoria: Documentation in English ## Quick start The CFDI 4.0 came into effect as of January 1, 2022, and its mandatory use began on April 1, 2023. Which should be filled according to the validation rules stipulated by the tax administration system in it’s documentation ‘[Anexo 20 de la Resolución Miscelánea Fiscal vigente](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm)‘. The electronic invoice (CFDI) will continue to keep its XML format with UTF-8 encoding, just as it is handled nowadays. The main difference will be the data structure that is going to be used to validate the electronic invoice through the XML Schema Definition (XSD), in addition to the extra validations that are going to be applied according to Annex 20 of the current Miscellaneous Tax Resolution. New **catalogs** were added to the CFDI 4.0  which will be used to differents fields that are going to be available inside the electronic invoice. What is a CFDI? The electronic invoice or Comprobante Fiscal Digital por Internet (CFDI) in Mexico is a digital receipt implemented by the tax authority of our country, adhering to the standards defined by the Servicio de Administración Tributaria (SAT). The SAT specifies which guidelines are suitable for issuing these types of documents according to the needs they believe are essential for the proper handling of taxes What function does a CFDI serve? The electronic invoice or Comprobante Fiscal Digital por Internet (CFDI) serves as a document that describes a specific good or service purchased, the transaction date, its cost, and breaks down the taxes related to the payment of that transaction. They also serve to support all income and expense movements of taxpayers before the tax authority How many types of CFDIs are there? Currently, there are six types of CFDIs: - CFDI de Ingreso (Income CFDI): Mainly issued for the provision of services, sale of goods or merchandise, leasing, or receipt of fees. Its purpose is to demonstrate the income of taxpayers. - CFDI de Egreso (Expense CFDI): Issued when there is a return of goods or the cancellation of an Income CFDI. Its purpose is to cover the outflows of money for a taxpayer. - CFDI de Traslado (Transfer CFDI): This CFDI supports goods that will be transferred from one point to another to verify the legality of the possession of these goods. - CFDI de Nómina (Payroll CFDI): It is the document that contains information on withholdings and payments to workers. - CFDI de Recepción de Pagos (Payment Reception CFDI): Generated when a payment is received, applicable when the payment method is applied in installments. - CFDI de Retención e Información de Pagos (Withholding and Payment Information CFDI): Supports tax withholdings made or payments performed. ## **The technical structure of a CFDI** The CFDI is a digital document generated in a file with XML or Extensible Markup Language format. For a receipt to be valid, it must meet the following characteristics: - The technical guidelines for form and syntax for generating XML files specified by the W3C consortium, established at [www.w3.org](http://www.w3.org/) - Additional validation rules established in ‘[Formato de factura Anexo 20 de la Resolución Miscelánea Fiscal](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm)‘ - Additional validation rules established in each addendum integrated into the XML file - Particular validation rules published in [‘Formato de factura Anexo 20 de la Resolución Miscelánea Fiscal](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm)‘ We remind you that we have a Examples section where you can find the structure of different types of CFDIs, as well as our Libraries section where you can interact with different programming languages for creating your receipts. ## ****CFDI**** **is composed of** Both the invoices you issue and those you receive must meet certain requirements and include specific data to be valid: - The Registro Federal de Contribuyentes (RFC) of the entity issuing the CFDI. - The tax regime under which it is registered with SAT. - Address (if the taxpayer has more than one location, the address where the invoice is being issued is specified). - Folio number assigned by SAT. - Sello digital. - Place and date of issuance. - RFC of the person requesting the fiscal document. - Description of the goods, products, or services for which the CFDI is being issued, including quantity, unit of measure, or type of goods. - Unit value of each of them; it must be specified in numbers. - The total amount of the invoice, which can be indicated in numbers or in words. - It should also be noted whether the payment was made in a single installment or in installments. - If applicable, the amount of transferred taxes must be indicated, broken down by tax rate, in addition to any withheld taxes. - Details of the payment method, such as cash, debit or credit card, electronic transfer, check, or through an electronic wallet authorized by SAT. - If it was a first-hand sale of imported goods, the number and date of the customs document must also be indicated. - Date and time of certification. - Serial number of the digital certificate used for sign. These requirements are published in the current “[Formato de factura Anexo 20 de la Resolución Miscelánea Fiscal](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm)“. --- # Error Codes Fuente: https://developers.sw.com.mx/knowledge-base/error-codes/ Categoria: Documentation in English The SW services return an error code in case of a request failure; this code appears in the *“message”* field of the **JSON** response object *(except in SOAP services)* and may originate from **SAT** error matrices or be an **internal error**. *🗒️* **Note:** Messages will appear in Spanish when they occur. ``` { "message": "AU2000 - El usuario y/o contraseña son inválidos, no se puede autenticar el servicio.", "messageDetail": null, "data": null, "status": "error" } ``` Configured Matrices - CFDI 4.0 - CRP 2.0 - Payroll v1.2 - Bill of Lading 3.1 - Foreign Trade 2.0 - SW sapien® Error Codes SAT Error Matrices: **Visit the SAT documentation to review the various error matrices.** **[SAT Documentation](https://www.sat.gob.mx/portal/public/tramites/factura-electronica)** View all Error Codes ### ‘Timbrado’ Common Errors | Code | Message | | --- | --- | | CO1000 | Uncontrolled Error. If the issue persists, please contact technical support for assistance. | | CO1001 | Plugin Name not Declared Correctly. | | CO1002 | An xmlns:{plugin} attribute of a plugin is not found at the Receipt level. | | CO1003 | The namespace and/or public schema URL of a plugin is not found at the Receipt level. | | CO1004 | The xmlns:{plugin} of a plugin is found at the Complement level. | | CO1005 | The namespace and/or public schema URL of a plugin is found at the Receipt level. | | CC2001 | 1 It is not possible to validate the plugin because it is not in force. | | CC3001 | A namespace and/or public schema URL (xsi:schemaLocation) of the CFDI is not found at the Receipt level or is not valid. | | CC3002 | The value of the xmlns:cfdi attribute is not valid according to the version of the CFDI. | ### ‘Timbrado’ CFDI Errors | Code | Message | | --- | --- | | 301 | The structure of the receipt is incorrect. | | 302 | The issuer’s seal is not valid. | | 303 | The RFC of the issuer’s CSD does not match the RFC listed as the issuer in the receipt. | | 304 | The issuer’s CSD has been revoked. | | 305 | The issuance date is not within the validity period of the issuer’s CSD. | | 306 | The key used for sealing must be a CSD. | | 307 | The receipt contains a previous stamp. | | 308 | The issuer’s CSD has not been signed by one of SAT’s Authority Certificates | | 401 | The date range of the generation date should not exceed 72 hours for stamp issuance. | | 402 | The issuer’s RFC is not in the taxpayers’ regime (Regime validation list) LCO | | 403 | The issuance date of the receipt must be after January 1, 2011. | | CFDI3307 | Duplicate stamp. The provided customId is duplicated. | ### ‘Timbrado’ ‘Retenciones’ Common Errors | Code | Message | | --- | --- | | T302 | The issuer’s seal is not valid. | | T303 | The RFC of the issuer’s CSD does not match the RFC listed as the issuer in the receipt. | | T304 | The issuer’s CSD has been revoked. | | T305 | The issuance date is not within the validity period of the issuer’s CSD. | | T306 | The key used for sealing must be a CSD. | | T401 | The date range of the generation date should not exceed 72 hours for stamp issuance. | | T402 | The issuer’s RFC is not in the taxpayers’ regime (Regime validation list) LCO. | ### Cancellation | Code | Message | | --- | --- | | CASD | ‘Acuse’ without specific description. | | CA203 | Fiscal Folio Not Corresponding to the Issuer. | | CA204 | Fiscal Folio Not Applicable to Cancellation. | | CA205 | Fiscal Folio Does Not Exist. | | CA206 | UUID does not correspond to a CFDI in the Primary Sector. | | CA207 | Cancellation reason not specified or the reason is not valid. | | CA208 | Invalid Replacement Folio. | | CA209 | Replacement Folio not required. | | CA210 | The cancellation request date is later than the declaration date. | | CA211 | Cancellation request date limit for global invoice. | | CA212 | Invalid or nonexistent relationship. | | CA300 | Invalid User. | | CA301 | Malformed XML. | | CA302 | Malformed Seal. | | CA303 | Seal does not correspond to the issuer or has expired. | | CA304 | Revoked or Expired Certificate. | | CA305 | Invalid Certificate. | | CA306 | The certificate is not of the CSD type | | CA307 | The CFDI contains a previous stamp. | | CA308 | Certificate not issued by the SAT. | | CA309 | Invalid Certificate. | | CA310 | Invalid CSD. | | CACFDI33 | Problems with the fields. | | CACFDI33 | Problems with the XML. | ### Authentication | Code | Message | | --- | --- | | AU1000 | Uncontrolled Error. Authentication token could not be generated. | | AU1001 | Unable to create the user. User already exists. | | AU1002 | Unable to change the password. The current password does not match. | | AU1003 | Unable to create the Issuer RFC. Already exists. Please contact the Administrator. | | AU1004 | Unable to save the User. Uncontrolled error. | | AU1005 | Unable to save the User. The Distributor does not exist. | | AU1006 | Unable to save the User. The Distributor has insufficient balance. | | AU1007 | The user being created was previously deleted. It has been restored. Please review the user list again and assign the corresponding stamps. | | AU1008 | The user being created already exists and belongs to another Distributor. Please try again with different data. | | AU2000 | The username and/or password are invalid; the service cannot be authenticated. | | AU2001 | The user has no stamp balance. | | AU2002 | The user is inactive. Please contact your administrator. | | AU2003 | Issuer RFC has not signed the manifesto. As a CFDI Certification Provider (PCC), manifesto signing is necessary. | | AU2004 | Issuer RFC does not belong to the user’s Distributor. Please contact your distributor. | | AU2005 | Uncontrolled error in the validation of the Manifesto and Issuer RFC. | | AU2006 | The provided Distributor does not exist. Please verify. | | AU2007 | The client does not belong to the Distributor. | | AU2008 | The user does not have privileges to perform this action. | | AU3000 | The generated token is incorrect or not valid. | | AU4000 | Unable to validate the token. | | AU4100 | The provided token is not valid or has expired. | | AU4101 | The provided token is empty. | | AU4102 | Unable to retrieve the user. The provided token is invalid. | | AU5000 | Uncontrolled error. Please contact the administrator if the problem persists. | | AU5001 | The user does not have sufficient privileges to perform this operation. | ### Balance | Code | Message | | --- | --- | | S1000 | Uncontrolled Error. Customer balance could not be validated. | | S1100 | Uncontrolled Error. Customer balance could not be affected. | | S2000 | The customer’s balance has been depleted. Please contact technical support for more information. | | S2100 | The expiration date of the customer’s balance has been reached. Please contact technical support for more information. | ### Search error code Enter the error code: ### --- # Generate access token Fuente: https://developers.sw.com.mx/knowledge-base/generate-access-token/ Categoria: Documentation in English The authentication service is mainly used to obtain the token which will be used to stamp our CFDI (xml) already issued, In order to use this service, it is necessary that you have a username and a password to receive the token. There are two different access tokens, temporary token and infinite token, the temporary token has a life time of two hours and the infinite does not expire unless it is revoked and it can be renewed. ### Authenticate using API services #### URL´s 🛠️ Test: `https://services.test.sw.com.mx` 📄 🚀 Production: `https://services.sw.com.mx` 📄 --- #### 🔗 Endpoint | Method | Path | | --- | --- | | **POST** | /v2/security/authenticate | #### 🔐 Headers | Header | Value | | --- | --- | | Content-Type | application/json | #### **🧾** JSON Parameters | Property | Type | Use | Description | | --- | --- | --- | --- | | user | string | Required | Email | | password | string | Required | Password | #### Example Request ``` curl --location 'https://services.test.sw.com.mx/v2/security/authenticate' \ --header 'Content-Type: application/json' \ --data-raw '{ "user":" user@tests.com", "password":"password1234" }' ``` #### Example Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Attributes of the response ``` { "data": { "token": "T2lYQ0t4L0RHVkR4dHZ5N....", "expires_in": 1684523799, "tokeny_type": "Bearer" }, "status": "success" } ``` ``` { "message": "AU2000 - El usuario y/o contraseña son inválidos, no se puede autenticar el servicio.", "messageDetail": null, "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Code returned when an error occurs. | | messageDetail | String | More descriptive error message when there is one. | | data | object/null | Data object that includes the token to use the services. | | status | String | “success” / “error” | [Test it in Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/ou5ukzh/autenticar) --- ### Authenticate using infinite Token The infinite token of JWT type, unlike a token obtained through the authentication service, does not have an expiration date and will remain valid until it is revoked and a new token is generated. To perform any of these processes, you must access the **ADT** (Stamp Administrator) portal with your credentials. **💡Remember…** The token is your access key to consume the service; maintain a security policy around the token. #### URL´s 🛠️ Test: `https://portal.test.sw.com.mx` 📄 🚀 Production: `https://portal.sw.com.mx` 📄 #### **Obtain Infinite Token** To obtain it, follow these two simple steps: 1.- Configuration. In the left side panel of the ADT, select the “Configuración” option. ![](https://developers.sw.com.mx/wp-content/uploads/2017/05/adt_menu.jpg) 2.- Access Credentials. Select the “Credenciales de Acceso” option, where you can “Show” the infinite token or copy it by clicking the “Copiar” button. ![](https://developers.sw.com.mx/wp-content/uploads/2017/05/portal_senalando-1.png) **That’s it!** You can use this token to authenticate and consume our APIs and stamping services. --- #### **Revoke and Regenerate Infinite Token** The infinite token can also be revoked if required, whether due to system updates, security policies, or changes in your business logic, by following these simple steps: 1.- Configuration. In the left side panel of the ADT, select the “Configuración” option. ![](https://developers.sw.com.mx/wp-content/uploads/2017/05/adt_menu.jpg) 2.- Access Credentials. Select the “Credenciales de Acceso” option, where you can “Show” the infinite token or copy it by clicking the “Copiar” button. ![](https://developers.sw.com.mx/wp-content/uploads/2017/05/portal_senalando-1.png) **That’s it!** You can use this token to authenticate and consume our APIs and stamping services. 3.- Regenerate. Upon clicking this option “Regenerar”, the following message appears, and you must confirm to proceed with the revocation and regeneration of the token. ![](https://developers.sw.com.mx/wp-content/uploads/2017/05/adt_revocar.jpg) **Warning: This process is irreversible; do not proceed unless strictly necessary.** After completing the process, the following confirmation message will appear. ![](https://developers.sw.com.mx/wp-content/uploads/2017/05/adt_revocar_success.jpg) **That’s it!** The token will be revoked and a new one generated, which will revoke the previous one. Remember to replace the old token with the new one to continue consuming our APIs and stamping services. --- --- # Issue Stamping Fuente: https://developers.sw.com.mx/knowledge-base/issue-stamping/ Categoria: Documentation in English Service that performs the signing and stamping of a [CFDI 4.0](https://developers.sw.com.mx/article-categories/ejemplos-4-0/) invoice in XML format. It is received with the attributes **“Sello”** (digital signature), **“Certificado”** (certificate), and **“NoCertificado”** (certificate number) empty. In the testing environment, real certificates can be used, but we recommend using [test CSDs](https://developers.sw.com.mx/knowledge-base/new-valid-csds-for-testing/). #### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 **💡Important:** If your implementation is designed to handle a significant volume of transactions in short periods, or if your goal is to maximize performance in the stamping process, we recommend integrating the [multipart/form-data](https://developers.sw.com.mx/knowledge-base/issue-stamping/#emision-timbrado-multipart-form-data) method.Send the XML without base64 encoding, along with the [V1](https://developers.sw.com.mx/knowledge-base/versiones-de-respuesta-timbrado/) response version. This strategy will allow you to achieve maximum performance and efficiency in all your stamping operations. --- ### Issue stamping multipart/form-data Receives the XML as a file in form-data. #### 🔗 Endpoint | Method | Path | | --- | --- | | **POST** | /cfdi33/issue/**{version}/{format}** | #### 🔐 Authentication and Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/generate-access-token/) | | Content-Type | multipart/form-data | #### 📍 Path parameters | Property | Use | Description | | --- | --- | --- | | version | Required | [Version of the response](https://developers.sw.com.mx/knowledge-base/versiones-de-respuesta-timbrado/) that the service will return. | | format | Optional | (Default=b64) Parameter to specify if the XML is in base 64 format. | #### 🧾 Form Parameters | Property | Use | Description | | --- | --- | --- | | xml | Required | XML of the invoice to be stamped. | #### Example Request ``` curl --request POST \ --url http://services.test.sw.com.mx/cfdi33/issue/v4 \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \ --form 'xml=cfdi.xml' ``` #### Example Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Attributes of the response ``` { "data": { "cadenaOriginalSAT": "||1.1|fd53505e-d737-43ab-815c-8090edec3655|2022-09-05T13:04:29|SPR190613I52|NZaBl4TmCMq9zkUbWnD8a3AOzw4oScGyruxcZXonV1jIOWzrNGqwJbSDBLiSDJlKSXAueDBF+CVGuIu1wKok+FDT0pbSdKwwR+5K3X4U0uUEMiayfWAHInr2HsUbfNaCUWrndhsQyMVdnYh4v/qWAFkJfPJC+uZQHfqJD46GfgDORVMF0ZT93pu7qYuZLj2LEntQvbbp7GFmHMP96H1ccnnXXaik7fNSRKPmovPZfbC2hX5P4bwMBdh/aFwNI7iR7fsjNfdsIoluT1JQIrZdM/FsTvnm53GOJisdhEi5gSttiPCYsJ1Gd6U8H235IBBXXwJ9I8rF2ifHPquQizCINQ==|30001000000400002495||", "noCertificadoSAT": "30001000000400002495", "noCertificadoCFDI": "30001000000400002434", "uuid": "fd53505e-d737-43ab-815c-8090edec3655", "selloSAT": "EVlPWO7rWg9xwNzQX3Wpt6tEGyizljFdH/9jpp0IklJsrEnxROOCpIpyZuzxfoSoEf7rR7v5sc4GImCvpGpb/6aXsFhmPLDko40rj26kkhGz/zDA++JHfUie9U5EBWPLnnQFFcpNydHyuCwyDWab8B7xgOsOtKbYqNg3VssjALid9QF3XRSHcVvJ7FV+i6rqwPgZMZUdkiQreDL7UKCx5WS2Hnvs5Vw3FiCDMxx/30duOzcOTCOPAOql1sKLb/5ohQqNyWRGQBdXBWYyGOgH2Y2W4ljCEty1HoTLPSAy4+gCoilXAER0I7KFe7aiidfj1QHwRzpyMd7XnWSWbUthyQ==", "selloCFDI": "NZaBl4TmCMq9zkUbWnD8a3AOzw4oScGyruxcZXonV1jIOWzrNGqwJbSDBLiSDJlKSXAueDBF+CVGuIu1wKok+FDT0pbSdKwwR+5K3X4U0uUEMiayfWAHInr2HsUbfNaCUWrndhsQyMVdnYh4v/qWAFkJfPJC+uZQHfqJD46GfgDORVMF0ZT93pu7qYuZLj2LEntQvbbp7GFmHMP96H1ccnnXXaik7fNSRKPmovPZfbC2hX5P4bwMBdh/aFwNI7iR7fsjNfdsIoluT1JQIrZdM/FsTvnm53GOJisdhEi5gSttiPCYsJ1Gd6U8H235IBBXXwJ9I8rF2ifHPquQizCINQ==", "fechaTimbrado": "2022-09-05T13:04:29", "qrCode": "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", "cfdi": "" }, "status": "success" } ``` ``` { "message": "CFDI40101 - El campo Fecha no cumple con el patrón requerido.", "messageDetail": "The 'Fecha' attribute is invalid - The value '2022-09-0T00:18:10' is invalid according to its datatype 'http://www.sat.gob.mx/sitio_internet/cfd/tipoDatos/tdCFDI:t_FechaH' - The Pattern constraint failed.", "data": null, "status": "error" } ``` | Attribute | Type | Description | | --- | --- | --- | | message | String | Code returned when an error occurs. | | messageDetail | String | More descriptive error message when there is one. | | data | object/null | Data object related to the stamping when it is successful. The parameters vary according to the response version. | | status | String | “success” / “error” | [Test it in Postman](https://www.postman.com/red-shadow-569412/workspace/SW-API-Developers~0b1c16ca-0b13-4769-bd9f-8c3e8498d55b/request/23720084-2dbe58fc-77e6-49c6-bb28-ff36719f8d07?action=share&source=copy-link&creator=30544483&ctx=documentation) --- ### Issue stamping application/json Receives the XML as a string in a JSON body. #### 🔗 Endpoint | **M**ethod | **Path** | | --- | --- | | **POST** | /cfdi33/issue/json/**{version}/{format}** | #### 🔐 Authentication and Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/generate-access-token/) | | Content-Type | application/json | #### 📍 Path parameters | Property | Use | Description | | --- | --- | --- | | version | Required | [Version of the response](https://developers.sw.com.mx/knowledge-base/versiones-de-respuesta-timbrado/) that the service will return. | | format | Optional | Parameter to specify if the XML is in base 64 format. (Default=b64) | #### 🧾 JSON Parameters | Property | Use | Description | | --- | --- | --- | | data | Required | XML of the invoice to be stamped. | #### Example Request ``` curl --request POST \ --url http://services.test.sw.com.mx/cfdi33/issue/json/v4/b64 \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxjZmRpOkNvbXByb2JhbnRlIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5zYXQuZ29iLm14L2NmZC80IGh0dHA6Ly93d3cuc2F0LmdvYi5teC9zaXRpb19pbnRlcm5ldC9jZmQvNC9jZmR2NDAueHNkIiBWZXJzaW9uPSI0LjAiIFNlcmllPSJTZXJpZSIgRm9saW89IkZvbGlvIiBGZWNoYT0iMjAyMi0wMi0wNFQxMDoxODoxMCIgU2VsbG89ImUiIENvbmRpY2lvbmVzRGVQYWdvPSJDb25kaWNpb25lc0RlUGFnbyIgU3ViVG90YWw9IjAiIERlc2N1ZW50bz0iMCIgTW9uZWRhPSJBTUQiIFRpcG9DYW1iaW89IjEiIFRvdGFsPSIwIiBUaXBvRGVDb21wcm9iYW50ZT0iVCIgRXhwb3J0YWNpb249IjAxIiBMdWdhckV4cGVkaWNpb249IjIwMDAwIiAgeG1sbnM6Y2ZkaT0iaHR0cDovL3d3dy5zYXQuZ29iLm14L2NmZC80IiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4NCiAgPGNmZGk6RW1pc29yIFJmYz0iRUtVOTAwMzE3M0M5IiBOb21icmU9IkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDViIgUmVnaW1lbkZpc2NhbD0iNjAxIiAvPg0KICA8Y2ZkaTpSZWNlcHRvciBSZmM9IlVSRTE4MDQyOVRNNiIgTm9tYnJlPSJVTklWRVJTSURBRCBST0JPVElDQSBFU1BBw5FPTEEgU0EgREUgQ1YiIERvbWljaWxpb0Zpc2NhbFJlY2VwdG9yPSI2NTAwMCIgUmVnaW1lbkZpc2NhbFJlY2VwdG9yPSI2MDEiIFVzb0NGREk9IkcwMSIgLz4NCiAgPGNmZGk6Q29uY2VwdG9zPg0KICAgIDxjZmRpOkNvbmNlcHRvIENsYXZlUHJvZFNlcnY9IjUwMjExNTAzIiBOb0lkZW50aWZpY2FjaW9uPSJVVDQyMTUxMSIgQ2FudGlkYWQ9IjEiIENsYXZlVW5pZGFkPSJIODciIFVuaWRhZD0iUGllemEiIERlc2NyaXBjaW9uPSJDaWdhcnJvcyIgVmFsb3JVbml0YXJpbz0iMC4wMCIgSW1wb3J0ZT0iMC4wMCIgIE9iamV0b0ltcD0iMDEiPg0KICAgICAgPGNmZGk6SW5mb3JtYWNpb25BZHVhbmVyYSBOdW1lcm9QZWRpbWVudG89IjIxICA0NyAgMzgwNyAgODAwMzgzMiIgLz4NCiAgICAgIDxjZmRpOlBhcnRlIENsYXZlUHJvZFNlcnY9IjUwMjExNTAzIiBWYWxvclVuaXRhcmlvPSIyMDAuMDAiIEltcG9ydGU9IjIwMC4wMCIgQ2FudGlkYWQ9IjEiIFVuaWRhZD0iUGllemEiIE5vSWRlbnRpZmljYWNpb249IjEyMyIgRGVzY3JpcGNpb249ImNvc2FzIiAvPg0KICAgIDwvY2ZkaTpDb25jZXB0bz4NCiAgPC9jZmRpOkNvbmNlcHRvcz4NCjwvY2ZkaTpDb21wcm9iYW50ZT4=" } ``` #### Example Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Attributes of the response ``` { "data": { "cadenaOriginalSAT": "||1.1|24b927ff-e5fa-4662-9ba0-9176a4c218b1|2022-09-06T14:35:31|SPR190613I52|iWUs4UrTN2CcZ5QwIEKIR21RVlU4VL355eU/njBtFUcjvHOuT1FZPPbJrm8Moj0C85+xTSiKQO2XDhJL0ziS504jrRDnt7GipsExlpt6Xv4ZBPjU1CzuRKvdqw/pEEXd7P4xgwOr/68lEQ+E0qbMr/4pkxlUDPHIiCT9k+ulzP+6bKtd8TQHRdxSCy+j3LEre0qT+Ujff5eCepOCnA615WfwsIelj7XGQjRKZSIcL5sBAsxpjnEHSBsJH0Pvb1W01Lx1Cmxs1zIdWIJRXlOKtq56mDckaP8ObTNTxHF61bG4Uzqll/dHsalsCKi8S0dLqLD1HNchZX0DSvJPkjanLA==|30001000000400002495||", "noCertificadoSAT": "30001000000400002495", "noCertificadoCFDI": "30001000000400002434", "uuid": "24b927ff-e5fa-4662-9ba0-9176a4c218b1", "selloSAT": "H6EE1RW5r0s781bevdbjfdxbUQ8iujfm3zdn9ua2CAoxCPic8STISjyEUMAGxJImnB5jXhZmf0XNxN+a+9/vamqR0NvE28kRb0tu7yYd4/8FB2AW8P3jRAxTTPcJfrx7Vw3KaOIf72esadLgkiGhci83Vop8QDp/8k5lzqMlNAYuNP1IsdHmj2dlYOiHVQ0egW8SfUa6EOz+AZl772kwIWKi4O8ralgQSIcKdHeoZPJYQsF9CcjBtKEmLWzUqn/hbH+col1X5MAcLZdvJJd0smhg5DBOum50xrte6G7FfebmtGk5jZTaf4lO6tVFBvMVUjNhrWEibOdDILXPcr7f8g==", "selloCFDI": "iWUs4UrTN2CcZ5QwIEKIR21RVlU4VL355eU/njBtFUcjvHOuT1FZPPbJrm8Moj0C85+xTSiKQO2XDhJL0ziS504jrRDnt7GipsExlpt6Xv4ZBPjU1CzuRKvdqw/pEEXd7P4xgwOr/68lEQ+E0qbMr/4pkxlUDPHIiCT9k+ulzP+6bKtd8TQHRdxSCy+j3LEre0qT+Ujff5eCepOCnA615WfwsIelj7XGQjRKZSIcL5sBAsxpjnEHSBsJH0Pvb1W01Lx1Cmxs1zIdWIJRXlOKtq56mDckaP8ObTNTxHF61bG4Uzqll/dHsalsCKi8S0dLqLD1HNchZX0DSvJPkjanLA==", "fechaTimbrado": "2022-09-06T14:35:31", "qrCode": "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", "cfdi": "" }, "status": "success" } ``` ``` { "message": "301 - La estructura del comprobante es incorrecta.", "messageDetail": "Error al leer el documento XML. La estructura del documento no es un Xml valido y/o la codificación del documento no es UTF8. Name cannot begin with the '<' character, hexadecimal value 0x3C. Line 1, position 1363.", "data": null, "status": "error" } ``` | Attribute | Type | Description | | --- | --- | --- | | message | String | Code returned when an error occurs. | | messageDetail | String | More descriptive error message when there is one. | | data | object/null | Data object related to the stamping when it is successful. The parameters vary according to the response version. | | status | String | “success” / “error” | [Test it in Postman](https://www.postman.com/red-shadow-569412/workspace/SW-API-Developers~0b1c16ca-0b13-4769-bd9f-8c3e8498d55b/request/23720084-a7740529-9e1a-4956-b247-5b8cb99e173c?action=share&source=copy-link&creator=30544483&ctx=documentation) --- [**Check out our libraries for stamping.**](https://developers.sw.com.mx/knowledge-base/librerias/) --- **In SW® we strive to be the best for You,** **which is why your opinion is very important. Please help us by rating this article and leaving your comments.** --- # Issue Stamping JSON Fuente: https://developers.sw.com.mx/knowledge-base/issue-stamping-json/ Categoria: Documentation in English Service responsible for signing and stamping a [CFDI 4.0](https://developers.sw.com.mx/article-categories/ejemplos-4-0/) invoice in JSON format. The issuance and signing service receives a JSON file with a predefined structure, containing empty values for the **‘Sello’** (digital signature), **‘Certificado’** (certificate), and **‘NoCertificado’** (certificate number) attributes. The values for the empty attributes will be generated automatically by the service using certificates previously stored in our system through our [ADT](https://developers.sw.com.mx/knowledge-base/manual-administrador-de-timbres/) or [API](https://developers.sw.com.mx/knowledge-base/api-certificados/), using the “Emisor→Rfc” attribute of the JSON document as a reference. #### URL´s 🛠️ Test: `https://services.test.sw.com.mx` 📄 🚀 Production: `https://services.sw.com.mx` 📄 --- ### Issue Stamping JSON #### 🔗 Endpoint | Method | Path | | --- | --- | | **POST** | /v3/cfdi33/issue/json/**{version}** | #### 🔐 Authentication and Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/generate-access-token/) | | Content-Type | application/jsontoxml | #### 📍 Path parameters | Property | Use | Description | | --- | --- | --- | | version | Required | [Version of the response](https://developers.sw.com.mx/knowledge-base/versiones-de-timbrado/) that the service will return. | #### 🧾 JSON Parameters | Property | Use | Description | | --- | --- | --- | | data | Required | JSON of the invoice to be stamped. | #### Example Request ``` curl --request POST \ --url http://services.test.sw.com.mx/v3/cfdi33/issue/json/v4 \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/jsontoxml' \ --data "{\n \"Version\":\"4.0\",\n \"FormaPago\":\"01\",\n \"Serie\":\"FCO\",\n \"Folio\":\"420\",\n \"Fecha\":\"2022-06-03T01:30:23\",\n \"Sello\":\"\",\n \"NoCertificado\":\"\",\n \"Certificado\":\"\",\n \"CondicionesDePago\":\"CondicionesDePago\",\n \"SubTotal\":\"13788.78\",\n \"Descuento\":\"0.00\",\n \"Moneda\":\"MXN\",\n \"TipoCambio\":\"1\",\n \"Total\":\"14,201.75\",\n \"TipoDeComprobante\":\"I\",\n \"Exportacion\":\"01\",\n \"LugarExpedicion\":\"55040\",\n \"Emisor\":{\n \"Rfc\":\"EKU9003173C9\",\n \"Nombre\":\"ESCUELA KEMPER URGATE\",\n \"RegimenFiscal\":\"601\"\n },\n \"Receptor\":{\n \"Rfc\":\"XAXX010101000\",\n \"Nombre\":\"VENTA AL PUBLICO SUCURSAL VÍA MORELOS\",\n \"DomicilioFiscalReceptor\":\"55040\",\n \"RegimenFiscalReceptor\":\"616\",\n \"UsoCFDI\":\"CP01\"\n },\n \"Conceptos\":[\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5694\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"100.0000\",\n \"Importe\":\"100.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5696\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"306.9200\",\n \"Importe\":\"306.9200\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5697\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"122.0000\",\n \"Importe\":\"122.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5698\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"310.0000\",\n \"Importe\":\"310.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5699\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"159.0517\",\n \"Importe\":\"159.0517\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"159.0517\",\n \"Importe\":\"25.4483\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5700\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"150.0000\",\n \"Importe\":\"150.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5701\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"102.1600\",\n \"Importe\":\"102.1600\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5702\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"159.0517\",\n \"Importe\":\"159.0517\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"159.0517\",\n \"Importe\":\"25.4483\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5703\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"278.9200\",\n \"Importe\":\"278.9200\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5704\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"125.0000\",\n \"Importe\":\"125.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5706\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"315.0000\",\n \"Importe\":\"315.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5708\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"261.0000\",\n \"Importe\":\"261.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5711\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"159.0517\",\n \"Importe\":\"159.0517\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"159.0517\",\n \"Importe\":\"25.4483\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5713\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"133.6500\",\n \"Importe\":\"133.6500\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5714\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"100.0000\",\n \"Importe\":\"100.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5715\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"110.1800\",\n \"Importe\":\"110.1800\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5716\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"318.1034\",\n \"Importe\":\"318.1034\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"318.1034\",\n \"Importe\":\"50.8965\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5717\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"215.0000\",\n \"Importe\":\"215.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5718\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"100.0000\",\n \"Importe\":\"100.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5719\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"210.0000\",\n \"Importe\":\"210.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5720\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"791.3793\",\n \"Importe\":\"791.3793\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"791.3793\",\n \"Importe\":\"126.6206\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5721\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"555.9200\",\n \"Importe\":\"555.9200\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5722\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"434.1500\",\n \"Importe\":\"434.1500\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5723\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"110.0000\",\n \"Importe\":\"110.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5724\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"135.0000\",\n \"Importe\":\"135.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5726\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"159.0517\",\n \"Importe\":\"159.0517\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"159.0517\",\n \"Importe\":\"25.4483\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5727\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"310.0000\",\n \"Importe\":\"310.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5728\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"585.8000\",\n \"Importe\":\"585.8000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5729\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"406.1400\",\n \"Importe\":\"406.1400\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5730\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"300.0000\",\n \"Importe\":\"300.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5732\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"300.0000\",\n \"Importe\":\"300.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5733\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"310.0000\",\n \"Importe\":\"310.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5734\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"172.4800\",\n \"Importe\":\"172.4800\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5735\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"330.0000\",\n \"Importe\":\"330.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5736\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"172.4138\",\n \"Importe\":\"172.4138\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"172.4138\",\n \"Importe\":\"27.5862\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5737\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"159.0517\",\n \"Importe\":\"159.0517\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"159.0517\",\n \"Importe\":\"25.4483\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5738\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"386.5000\",\n \"Importe\":\"386.5000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5739\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"521.4000\",\n \"Importe\":\"521.4000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5740\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"119.3900\",\n \"Importe\":\"119.3900\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5741\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"200.0000\",\n \"Importe\":\"200.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5742\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"500.0000\",\n \"Importe\":\"500.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5743\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"600.0000\",\n \"Importe\":\"600.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5745\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"244.0000\",\n \"Importe\":\"244.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5747\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"370.0000\",\n \"Importe\":\"370.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5748\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"172.4138\",\n \"Importe\":\"172.4138\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"172.4138\",\n \"Importe\":\"27.5862\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5749\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"210.1400\",\n \"Importe\":\"210.1400\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5751\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"581.0000\",\n \"Importe\":\"581.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5753\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"255.5000\",\n \"Importe\":\"255.5000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5754\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"389.5517\",\n \"Importe\":\"389.5517\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"159.0517\",\n \"Importe\":\"25.4483\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5755\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"100.0000\",\n \"Importe\":\"100.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5756\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"172.4138\",\n \"Importe\":\"172.4138\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"172.4138\",\n \"Importe\":\"27.5862\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n }\n ],\n \"Impuestos\":{\n \"TotalImpuestosTrasladados\":\"412.97\",\n \"Traslados\":[\n {\n \"Base\":\"2581.03\",\n \"Importe\":\"412.97\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n}\n" ``` #### Example Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Attributes of the response ``` { "data": { "cadenaOriginalSAT": "||1.1|283278da-b743-48bc-8001-62ce33471607|2022-09-13T10:28:09|SPR190613I52|jJhgoSOG0p09F/eNN5kYSFcCaIXRsG2heQkQhQzxng/AfYNXnDVqtT/xMPqg5SZbVfihkg86edu+6MRHl7sg2Ss3w8LKES1ZR/KRtEpc7hVmM8eADBtVAcvAWTP/sKfk1JtGnblET6yBs73LTxNhISz5zzVyK9Z8NKRC5NplJbYCWM5oNkuSnxw3HK+OVJPWz/jAVcxFMJT74CgFJnE8wHCQRlgdC4K6EiQ5V+o6oyze5eEN7GLprQ+uCNRX/TVLPh5zGLDFCD8/86dRBzkECeF51aT/VOfRvPWl7/xzjtf/UhelVGY94Qqbx22IMTYQYp+2H9uup3j9RGHwaqsSwA==|30001000000400002495||", "noCertificadoSAT": "30001000000400002495", "noCertificadoCFDI": "30001000000400002434", "uuid": "283278da-b743-48bc-8001-62ce33471607", "selloSAT": "Bki4iHQhSKHiKNGrcQiOv2as8Uj0eUlx1MnJXuqVGTF7VFqNVWrZWZBqBKyOpmFzqSfSUMNh5zX2G2QvWKidycu+fL6qgzXi2IwWlbOyz+BbnjfFanjZyVvKkwhoyDp2nGsqOl1kyqhyLIYeSCleqiOkZeUl54rRRdRB6c4vxxhzE1NWXpxGVoOi/ChEdUF3/nGtnXGcHnEhyFLKKxAvFmmToJlkjr4//gjHSnAbVxD2NOpA/8mKkSN2hLP2rLKfUgcEWnkzYDUPqG2iAESf4+v0MT2KTcevnIo6BNva/sxxUyZJMRfyym6EmuRwM28K2AJVRt1IS5lL8c/Ty56SzQ==", "selloCFDI": "jJhgoSOG0p09F/eNN5kYSFcCaIXRsG2heQkQhQzxng/AfYNXnDVqtT/xMPqg5SZbVfihkg86edu+6MRHl7sg2Ss3w8LKES1ZR/KRtEpc7hVmM8eADBtVAcvAWTP/sKfk1JtGnblET6yBs73LTxNhISz5zzVyK9Z8NKRC5NplJbYCWM5oNkuSnxw3HK+OVJPWz/jAVcxFMJT74CgFJnE8wHCQRlgdC4K6EiQ5V+o6oyze5eEN7GLprQ+uCNRX/TVLPh5zGLDFCD8/86dRBzkECeF51aT/VOfRvPWl7/xzjtf/UhelVGY94Qqbx22IMTYQYp+2H9uup3j9RGHwaqsSwA==", "fechaTimbrado": "2022-09-13T10:28:09", "qrCode": "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", "cfdi": "" }, "status": "success" } ``` ``` { "message": "301 - La estructura del comprobante es incorrecta.", "messageDetail": "The value of the 'Version' attribute does not equal its fixed value.", "data": null, "status": "error" } ``` | Attribute | Type | Description | | --- | --- | --- | | message | String | Code returned when an error occurs. | | messageDetail | String | More descriptive error message when there is one. | | data | object/null | Data object related to the stamping when it is successful. The parameters vary according to the response version. | | status | String | “success” / “error” | [Test it in Postman](https://www.postman.com/red-shadow-569412/workspace/SW-API-Developers~0b1c16ca-0b13-4769-bd9f-8c3e8498d55b/request/23720084-959e5eb4-e3de-46d8-b0c2-f52188ceabc7?action=share&source=copy-link&creator=30544483&ctx=documentation) --- [**Check out our libraries for stamping.**](https://developers.sw.com.mx/knowledge-base/librerias/) --- **In SW® we strive to be the best for You, which is why your opinion is very important. Please help us by rating this article and leaving your comments** --- # New valid CSDs for testing Fuente: https://developers.sw.com.mx/knowledge-base/new-valid-csds-for-testing/ Categoria: Documentation in English **Important Note:** Currently, in both the testing and production environments, you must enter the business name without a capital regime. Example: Name or Business Name: MY BUSINESS NAME S.A. DE C.V. Testing: MY BUSINESS NAME **(Omit: S.A. DE C.V.)** Production: MY BUSINESS NAME **(Omit: S.A. DE C.V.)** Information updated on May 24, 2023 --- In this section, you will find valid CSDs for testing. All provided private keys are used with the password **12345678a**. Obligations Validation 1 – Enabled to invoice (‘IVA exento, tasa 0% y 16%’) 2 – Enabled to invoice (‘IVA exento, tasa 0%, 8% y 16%’) Northern Border Zone 3 – Enabled to invoice (‘IVA exento, tasa 0%, 8% y 16%’) Southern Border Zone 4 – Enabled to invoice (‘IVA exento, tasa 0%, 8% y 16%’) Northern and Southern Border Zone [Download](https://developers.sw.com.mx/wp-content/uploads/2023/07/Certificados_Pruebas.zip) ## Person ‘Física’ | RFC | SCNF | Obligations Validation | NAME | POSTAL CODE | ‘RETENCION’ | | --- | --- | --- | --- | --- | --- | | CACX7605101P8 | No | 2 | XOCHILT CASAS CHAVEZ | 36257 | 0 | | FUNK671228PH6 | No | 1 | KARLA FUENTE NOLASCO | 01160 | 0 | | IAÑL750210963 | No | 1 | LUIS IAN ÑUZCO | 85256 | 0 | | JUFA7608212V6 | No | 1 | ADRIANA JUAREZ FERNANDEZ | 01160 | 0 | | KAHO641101B39 | No | 1 | OSCAR KALA HAAK | 76074 | 2 | | KICR630120NX3 | No | 1 | RODRIGO KITIA CASTRO | 36246 | 1 | | MISC491214B86 | No | 1 | CECILIA MIRANDA SANCHEZ | 01010 | 0 | | RAQÑ7701212M3 | No | 1 | ÑEVES RAMIREZ QUEZADA | 78905 | 0 | | WATM640917J45 | No | 1 | MARIA WATEMBER TORRES | 43543 | 0 | | WERX631016S30 | No | 1 | XAIME WEIR ROJO | 01279 | 0 | | XAMA620210DQ5 | No | 1 | ALBA XKARAJAM MENDEZ | 01219 | 0 | | XIQB891116QE4 | No | 4 | BERENICE XIMO QUEZADA | 40968 | 0 | | XOJI740919U48 | No | 1 | INGRID XODAR JIMENEZ | 76028 | 0 | ## Person ‘Moral’ | RFC | SCNF | Obligations Validation | NAME | POSTAL CODE | ‘RETENCION’ | | --- | --- | --- | --- | --- | --- | | EKU9003173C9 | No | 1 | ESCUELA KEMPER URGATE | 42501 | 0 | | IIA040805DZ4 | No | 1 | INDISTRIA ILUMINADORA DE ALMACENES | 62661 | 0 | | H&E951128469 | No | 1 | HERRERIA & ELECTRICOS | 06002 | 0 | | IVD920810GU2 | No | 1 | INNOVACION VALOR Y DESARROLLO | 63901 | 0 | | IXS7607092R5 | No | 1 | INTERNACIONAL XIMBO Y SABORES | 23004 | 0 | | JES900109Q90 | No | 1 | JIMENEZ ESTRADA SALAS | 37161 | 0 | | KIJ0906199R1 | No | 1 | KERNEL INDUSTIA JUGUETERA | 28971 | 0 | | L&O950913MSA | No | 1 | LUCES & OBRAS | 60922 | 0 | | OÑO120726RX3 | Si | 1 | ORGANICOS ÑAVEZ OSORIO | 40501 | 0 | | S&S051221SE2 | No | 1 | S & SOFTWARE | 76022 | 0 | | URE180429TM6 | No | 1 | UNIVERSIDAD ROBOTICA ESPAÑOLA | 86991 | 0 | | XIA190128J61 | No | 1 | XENON INDUSTRIAL ARTICLES | 76343 | 0 | | ZUÑ920208KL4 | No | 1 | ZAPATERIA URTADO ÑERI | 34541 | 0 | ## Previous test CSDs [Link to download](https://developers.sw.com.mx/wp-content/uploads/2023/05/RFC-PAC-SC-2019.zip). These CSDs have already been revoked in the cancellation testing environment. --- **At SW® we are better for you, that is why your opinion is very important, please help us by rating this article and leaving your comments.** --- # Stamp Fuente: https://developers.sw.com.mx/knowledge-base/stamp/ Categoria: Documentation in English Service responsible for stamping a previously signed [CFDI 4.0](https://developers.sw.com.mx/article-categories/ejemplos-4-0/) invoice in XML format. In the testing environment, actual certificates are permissible, but we recommend utilizing trial [CSDs for testing](https://developers.sw.com.mx/knowledge-base/new-valid-csds-for-testing/) purposes. #### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 --- ### Stamp multipart/form-data Receives the XML as a file in form-data. #### 🔗 Endpoint | Method | Path | | --- | --- | | **POST** | /cfdi33/stamp/**{version}** | #### 🔐 Authentication and Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/generate-access-token/) | | Content-Type | multipart/form-data | #### 📍 Path parameters | Property | Use | Description | | --- | --- | --- | | version | Required | [Version of the response](https://developers.sw.com.mx/knowledge-base/versiones-de-timbrado/) that the service will return. | #### 🧾 Form Parameters | Property | Use | Description | | --- | --- | --- | | xml | Required | XML of the invoice to be stamped. | #### Example Request ``` curl --request POST \ --url http://services.test.sw.com.mx/cfdi33/stamp/v4/ \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \ --form 'xml=cfdi.xml' ``` #### Example Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Attributes of the response ``` { "data": { "cadenaOriginalSAT": "||1.1|05c519de-6d20-4258-88fb-c69a5970e927|2022-09-06T14:04:02|SPR190613I52|KVttNU/m3oEfJG/3efOsn3pUqZTuZ431FmfADTX+AyWyXAiP5HiAQ2D7L/LL7w/jfIUykZvkx5sa81VfXcD1wgi1ibiK2IAvojrRCgjUaQCOxSs029zsC7/ksU9Wtcb8nTSMy840QCGIdQF2wmpcsYmW713xvSHx2gVAQdopNfxJBC5NWlJH1KTBf0OrCsoOAdxejQDYNPniH6W6Y4yxF5Wg/0pIAX9kZB9y3+nbJzKqYml6ob0V8bExEGDFKblWlZ2JexGIldhRXFc4prwi3L05Q2NGlGN4dLEEK+oeTBSJRgEwlt/EYvtE1U1KUY79AqVx9+zNQxUEJMApUlZ1Kg==|30001000000400002495||", "noCertificadoSAT": "30001000000400002495", "noCertificadoCFDI": "30001000000400002434", "uuid": "05c519de-6d20-4258-88fb-c69a5970e927", "selloSAT": "qadm+mH3gZuYMnQZSWVoD/AEkekn8Mw1OSpM+9sD+9W7BIbagcWgITzxAPLe2t31QlwnqtohKOoFBkzzx3pyk8tp+8f1nse/lmQo+wsKR0qt6DquhcH5W6dLAMWc91kMy4vXbnuMPAKShl2f9MRQQzX07PPSNxqCuwTrBbPQKqWFw/K9dk1TnsRpwb52qa87srpY8wqIOgyLbbhx5ItTV0StGb0m6749p9BqsB0bOhPKIhPnkvpEnfXXZ+nccTJtC718/fP4sZqUnmJbcvjVAvNkiAhBWoeGRL9BBX+TO5zVX0D26pet0z0SgocoxWLToaRWgEhgjGP9EE2bf2+5QQ==", "selloCFDI": "KVttNU/m3oEfJG/3efOsn3pUqZTuZ431FmfADTX+AyWyXAiP5HiAQ2D7L/LL7w/jfIUykZvkx5sa81VfXcD1wgi1ibiK2IAvojrRCgjUaQCOxSs029zsC7/ksU9Wtcb8nTSMy840QCGIdQF2wmpcsYmW713xvSHx2gVAQdopNfxJBC5NWlJH1KTBf0OrCsoOAdxejQDYNPniH6W6Y4yxF5Wg/0pIAX9kZB9y3+nbJzKqYml6ob0V8bExEGDFKblWlZ2JexGIldhRXFc4prwi3L05Q2NGlGN4dLEEK+oeTBSJRgEwlt/EYvtE1U1KUY79AqVx9+zNQxUEJMApUlZ1Kg==", "fechaTimbrado": "2022-09-06T14:04:02", "qrCode": "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", "cfdi": "" }, "status": "success" } ``` ``` { "message": "301 - La estructura del comprobante es incorrecta.", "messageDetail": "Error al leer el documento XML. La estructura del documento no es un Xml valido y/o la codificación del documento no es UTF8. The 'cfdi:Retencion' start tag on line 1 position 3717 does not match the end tag of 'cfdi:Retenciones'. Line 1, position 3767.", "data": null, "status": "error" } ``` | Attribute | Type | Description | | --- | --- | --- | | message | String | Code returned when an error occurs. | | messageDetail | String | More descriptive error message when there is one. | | data | object/null | Data object related to the stamping when it is successful. The parameters vary according to the response version. | | status | String | “success” / “error” | [Test it in Postman](https://www.postman.com/red-shadow-569412/workspace/SW-API-Developers~0b1c16ca-0b13-4769-bd9f-8c3e8498d55b/request/23720084-cd5041de-5dbe-429e-b1f9-a1c86bb51156?action=share&source=copy-link&creator=30544483&ctx=documentation) --- ### Stamp application/json Receives the XML as a string in a JSON body. #### 🔗 Endpoint | Method | Path | | --- | --- | | **POST** | /cfdi33/stamp/json/**{version}/{format}** | #### 🔐 Authentication and Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/generate-access-token/) | | Content-Type | multipart/form-data | #### 📍 Path parameters | Property | Use | Description | | --- | --- | --- | | version | Required | [Version of the response](https://developers.sw.com.mx/knowledge-base/versiones-de-timbrado/) that the service will return. | | format | Optional | Parameter to specify if the XML is in base64 format. (Default=b64) | #### 🧾 JSON Parameters | Property | Use | Description | | --- | --- | --- | | data | Required | XML of the invoice to be stamped. | #### Example Request ``` curl --request POST \ --url http://services.test.sw.com.mx/cfdi33/stamp/json/v4 \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{"data":" "}' ``` #### Example Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Attributes of the response ``` { "data": { "cadenaOriginalSAT": "||1.1|7925fffa-fea3-44d3-8b48-904993f798e8|2022-09-06T14:24:17|SPR190613I52|DSnS6n28VUCBw3G/drw+WJvOYtV7c9O+wYIDFQqJbmGeeoAWuqlgUYPvw9e3c0Syzk+qZibsI6Cy7994Xcsxdvnrf5JwpQiCqj1duYxSmP6THYsesqv+IJkVbivs3q+k64vIxjbwimhpZXBsLxbkabZwcnhCxYx09OOS1lATUEysX8W+zhocgnZPPZqdqxETz2W85K0cK83BTssR0LWrVtsUrfdNFNQ1/pKU5m5nqYStbY+aK2l7RSHaPbb3i3+BdVJuGY4HJTU/LLMPvHU9L70I9XqBDkP9Mt19kpYMGmK5/FfwJKY2PvL58sLdQ/Di8i7f7gNesggLV4oZ8b5C8A==|30001000000400002495||", "noCertificadoSAT": "30001000000400002495", "noCertificadoCFDI": "30001000000400002434", "uuid": "7925fffa-fea3-44d3-8b48-904993f798e8", "selloSAT": "aY/C56tLyTqAlG5h4K3FQHWaHvtFgD44ZbDgclVRiUXpOdHHVCHRRTfvXvimM/YmHCeoOS0NwvWVsChpGXfcmv7rLj9WlXK8nRfSZhnG0aCPH5Oo47StvApKPMoYIoudCUqV+76Zga7Ib/EcZcYrzC80Vgzg/ISh1P2vxo7aOzP9QgmGDzNbzOLfPImjgz2MBzTFdKP4pPG6G0DUP9Sf+KbgN0g+1TesopzQ/cUtpY0bkkBZIY8FP7Yj+RmvwhNOa/8jPkfpd6kbJwoIVkCHcRJYOsqOdMG4LKb8DP+sV/Ry4qqC3vbOUpp7viaB3yp7ttnLQMnIrgkcLZA+dTSUOA==", "selloCFDI": "DSnS6n28VUCBw3G/drw+WJvOYtV7c9O+wYIDFQqJbmGeeoAWuqlgUYPvw9e3c0Syzk+qZibsI6Cy7994Xcsxdvnrf5JwpQiCqj1duYxSmP6THYsesqv+IJkVbivs3q+k64vIxjbwimhpZXBsLxbkabZwcnhCxYx09OOS1lATUEysX8W+zhocgnZPPZqdqxETz2W85K0cK83BTssR0LWrVtsUrfdNFNQ1/pKU5m5nqYStbY+aK2l7RSHaPbb3i3+BdVJuGY4HJTU/LLMPvHU9L70I9XqBDkP9Mt19kpYMGmK5/FfwJKY2PvL58sLdQ/Di8i7f7gNesggLV4oZ8b5C8A==", "fechaTimbrado": "2022-09-06T14:24:17", "qrCode": "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", "cfdi": "" }, "status": "success" } ``` ``` { "message": "301 - La estructura del comprobante es incorrecta.", "messageDetail": "Error al leer el documento XML. La estructura del documento no es un Xml valido y/o la codificación del documento no es UTF8. ' ' is an unexpected token. The expected token is '>'. Line 1, position 3761.", "data": null, "status": "error" } ``` | Attribute | Type | Description | | --- | --- | --- | | message | String | Code returned when an error occurs. | | messageDetail | String | More descriptive error message when there is one. | | data | object/null | Data object related to the stamping when it is successful. The parameters vary according to the response version. | | status | String | “success” / “error” | [Test it in Postman](https://www.postman.com/red-shadow-569412/workspace/SW-API-Developers~0b1c16ca-0b13-4769-bd9f-8c3e8498d55b/request/23720084-e4de4482-3b7c-4f62-a8f3-cc72e1e6347a?action=share&source=copy-link&creator=30544483&ctx=documentation) --- [**Check out our libraries for stamping.**](https://developers.sw.com.mx/knowledge-base/librerias/) --- **In SW® we strive to the best for You, wich is why your opinion is very important. Please help us by rating this article and leaving your comments****.** --- # Tutorial Efisco® Fuente: https://developers.sw.com.mx/knowledge-base/tutorial-efisco/ Categoria: Efisco En este video tutorial te mostraremos como funciona nuestro sistema Efisco®, las opciones de configuración con las que cuenta, así como los pasos para realizar la descarga masiva de XML´s y la validación de EFOS. **Video:** [SW® | Tutorial Efisco®](https://www.youtube.com/watch?v=4f-oGhZQTNE) --- # ¿Qué es Efisco®? Fuente: https://developers.sw.com.mx/knowledge-base/que-es-efisco/ Categoria: Efisco Efisco es una plataforma en la nube para descargar y gestionar CFDI emitidos y recibidos desde el SAT. Te ayuda a ahorrar tiempo en tareas operativas, validar comprobantes y generar reportes para control administrativo y fiscal. - **Para quién es:** equipos de contabilidad, facturación, administración y soporte técnico. - **Qué resuelve:** descarga masiva, validación y análisis de XML sin procesos manuales extensos. **Video:** [efisco web](https://www.youtube.com/watch?v=yOzCO1XewWo) ## Que puedes hacer con Efisco Web - **Descarga masiva** de hasta 200,000 XML por Web Service. - **Validador de CFDI** contra lista negra del SAT (EFOS) y estatus de cancelacion. - **Generación de reportes** para duplicados, nómina, facturas falsas, conceptos CFDI y complemento de pagos. - **Automatización de descargas** cada 7, 15, 20 o 30 días. - **Conciliación manual** mediante reportes en Excel. - **Integración con Google Drive** para resguardo de información. ### Beneficios principales - Centraliza XML emitidos y recibidos por periodo en un solo lugar. - Reduce tiempo operativo en descarga, revisión y conciliacion. - Facilita validaciones fiscales y control de riesgos en CFDI. - Permite automatizar procesos y mantener trazabilidad con reportes. [Conoce más](https://sw.com.mx/sw_product/efisco-web) --- # Aerolíneas 1.0 Fuente: https://developers.sw.com.mx/knowledge-base/aerolineas-1-0/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento al Comprobante Fiscal Digital a través de Internet (CFDI) para el manejo de datos de Aerolíneas para pasajeros. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Ingreso ``` ``` ### Ejemplos JSON Ingreso ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "287", "Fecha": "2026-08-28T08:01:05", "FormaPago": 99, "CondicionesDePago": "CondicionesDePago", "SubTotal": 2000, "Descuento": 1, "Moneda": "MXN", "TipoCambio": "1", "Total": 2318.84, "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "S01" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 1999, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 319.84 } ] }, "ClaveProdServ": "01010101", "Cantidad": 1, "ClaveUnidad": "H87", "Unidad": "Servicio", "Descripcion": "Servicio", "ValorUnitario": 2000, "Importe": 2000, "Descuento": 1, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 1999, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 319.84 } ], "TotalImpuestosTrasladados": 319.84 }, "Complemento": { "Any": [ { "aerolineas:Aerolineas": { "@xmlns:aerolineas": "http://www.sat.gob.mx/aerolineas", "@Version": "1.0", "@TUA": 467.89, "aerolineas:OtrosCargos": { "@TotalCargos": 500, "aerolineas:Cargo": [ { "@CodigoCargo": "01", "@Importe": 400 }, { "@CodigoCargo": "02", "@Importe": 100 } ] } } } ] } } ``` --- # Carta Porte 3.1 (CFDI 4.0) Fuente: https://developers.sw.com.mx/knowledge-base/carta-porte-3-1-cfdi-4-0/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento que incorpora la información de mercancías, ubicaciones de origen, puntos intermedios y destinos, así como lo referente a los diferentes medios de transporte en la nueva versión publicada por el SAT. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML #### Ingreso Autotransporte ``` ``` ``` ``` ``` ``` ``` ``` Transporte Ferroviario ``` ``` ``` ``` ``` ``` Transporte Aéreo ``` ``` ``` ``` ``` ``` Transporte Marítimo ``` ``` ``` ``` ``` ``` #### Traslado Autotransporte ``` ``` ``` ``` ``` ``` Transporte Ferroviario ``` ``` ``` ``` ``` ``` Transporte Aéreo ``` ``` ``` ``` ``` ``` Transporte Marítimo ``` ``` ``` ``` ``` ``` ### Ejemplos JSON #### Ingreso Autotransporte ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "137", "Fecha": "2026-08-28T08:01:01", "SubTotal": "100.00", "Moneda": "MXN", "FormaPago": "01", "MetodoPago": "PUE", "Total": "100.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "No", "TotalDistRec": "1", "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202020", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T00:00:01", "DistanciaRecorrida": "1", "Domicilio": { "Calle": "Calle2", "NumeroExterior": "214", "NumeroInterior": "215", "Colonia": "0347", "Localidad": "23", "Referencia": "casa negra", "Municipio": "004", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "25350" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "NumTotalMercancias": "1", "LogisticaInversaRecoleccionDevolucion": "Sí", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202020" } ] } ], "Autotransporte": { "PermSCT": "TPAF01", "NumPermisoSCT": "NumPermisoSCT1", "IdentificacionVehicular": { "ConfigVehicular": "VL", "PesoBrutoVehicular": "1", "PlacaVM": "plac892", "AnioModeloVM": "2020" }, "Seguros": { "AseguraRespCivil": "AseguraRespCivil", "PolizaRespCivil": "123456789" }, "Remolques": [ { "SubTipoRem": "CTR004", "Placa": "VL45K98" } ] } }, "FiguraTransporte": [ { "TipoFigura": "01", "NombreFigura": "NombreFigura", "RFCFigura": "EKU9003173C9", "NumLicencia": "a234567890" } ] } } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "138", "Fecha": "2026-08-28T08:01:01", "SubTotal": "26232.75", "Moneda": "MXN", "FormaPago": "01", "MetodoPago": "PUE", "Total": "29380.68", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "26232.75", "Importe": "26232.75", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "26232.75", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "4197.24" } ], "Retenciones": [ { "Base": "26232.75", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.040000", "Importe": "1049.31" } ] } } ], "Impuestos": { "Retenciones": [ { "Impuesto": "002", "Importe": "1049.31" } ], "Traslados": [ { "Base": "26232.75", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "4197.24" } ], "TotalImpuestosRetenidos": "1049.31", "TotalImpuestosTrasladados": "4197.24" }, "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "No", "TotalDistRec": "1", "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202020", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T00:00:01", "DistanciaRecorrida": "1", "Domicilio": { "Calle": "Calle2", "NumeroExterior": "214", "NumeroInterior": "215", "Colonia": "0347", "Localidad": "23", "Referencia": "casa negra", "Municipio": "004", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "25350" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "NumTotalMercancias": "1", "LogisticaInversaRecoleccionDevolucion": "Sí", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202020" } ] } ], "Autotransporte": { "PermSCT": "TPAF01", "NumPermisoSCT": "NumPermisoSCT1", "IdentificacionVehicular": { "ConfigVehicular": "VL", "PesoBrutoVehicular": "1", "PlacaVM": "plac892", "AnioModeloVM": "2020" }, "Seguros": { "AseguraRespCivil": "AseguraRespCivil", "PolizaRespCivil": "123456789" }, "Remolques": [ { "SubTipoRem": "CTR004", "Placa": "VL45K98" } ] } }, "FiguraTransporte": [ { "TipoFigura": "01", "NombreFigura": "NombreFigura", "RFCFigura": "EKU9003173C9", "NumLicencia": "a234567890" } ] } } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "139", "Fecha": "2026-08-28T08:01:01", "SubTotal": "100.00", "Moneda": "MXN", "FormaPago": "01", "MetodoPago": "PUE", "Total": "100.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "Sí", "TotalDistRec": "1", "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "EntradaSalidaMerc": "Salida", "PaisOrigenDestino": "USA", "ViaEntradaSalida": "01", "RegimenesAduaneros": [ { "RegimenAduanero": "EXD", "RegimenAduanero": "EXD" } ], "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202020", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T00:00:01", "DistanciaRecorrida": "1", "Domicilio": { "Calle": "Calle2", "NumeroExterior": "214", "NumeroInterior": "215", "Colonia": "0347", "Localidad": "23", "Referencia": "casa negra", "Municipio": "004", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "25350" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "NumTotalMercancias": "1", "LogisticaInversaRecoleccionDevolucion": "Sí", "Mercancia": [ { "BienesTransp": "11121900", "TipoMateria": "03", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202020" } ] } ], "Autotransporte": { "PermSCT": "TPAF01", "NumPermisoSCT": "NumPermisoSCT1", "IdentificacionVehicular": { "ConfigVehicular": "VL", "PesoBrutoVehicular": "1", "PlacaVM": "plac892", "AnioModeloVM": "2020" }, "Seguros": { "AseguraRespCivil": "AseguraRespCivil", "PolizaRespCivil": "123456789" }, "Remolques": [ { "SubTipoRem": "CTR004", "Placa": "VL45K98" } ] } }, "FiguraTransporte": [ { "TipoFigura": "01", "NombreFigura": "NombreFigura", "RFCFigura": "EKU9003173C9", "NumLicencia": "a234567890" } ] } } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "140", "Fecha": "2026-08-28T08:01:01", "SubTotal": "100.00", "Moneda": "MXN", "FormaPago": "01", "MetodoPago": "PUE", "Total": "100.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "Sí", "TotalDistRec": "1", "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "EntradaSalidaMerc": "Entrada", "PaisOrigenDestino": "AFG", "ViaEntradaSalida": "01", "RegimenesAduaneros": [ { "RegimenAduanero": "IMD", "RegimenAduanero": "IMD" } ], "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202020", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T00:00:01", "DistanciaRecorrida": "1", "Domicilio": { "Calle": "Calle2", "NumeroExterior": "214", "NumeroInterior": "215", "Colonia": "0347", "Localidad": "23", "Referencia": "casa negra", "Municipio": "004", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "25350" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "NumTotalMercancias": "1", "LogisticaInversaRecoleccionDevolucion": "Sí", "Mercancia": [ { "BienesTransp": "11121900", "TipoMateria": "03", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "DocumentacionAduanera": [ { "TipoDocumento": "01", "NumPedimento": "21 47 3807 8003832", "RFCImpo": "EKU9003173C9" } ], "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202020" } ] } ], "Autotransporte": { "PermSCT": "TPAF01", "NumPermisoSCT": "NumPermisoSCT1", "IdentificacionVehicular": { "ConfigVehicular": "VL", "PesoBrutoVehicular": "1", "PlacaVM": "plac892", "AnioModeloVM": "2020" }, "Seguros": { "AseguraRespCivil": "AseguraRespCivil", "PolizaRespCivil": "123456789" }, "Remolques": [ { "SubTipoRem": "CTR004", "Placa": "VL45K98" } ] } }, "FiguraTransporte": [ { "TipoFigura": "01", "NombreFigura": "NombreFigura", "RFCFigura": "EKU9003173C9", "NumLicencia": "a234567890" } ] } } ] } } ``` Transporte Ferroviario ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "141", "Fecha": "2026-08-28T08:01:01", "SubTotal": "100.00", "Moneda": "MXN", "FormaPago": "01", "MetodoPago": "PUE", "Total": "100.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "Version": "3.1", "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "No", "TotalDistRec": "500.00", "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "TipoEstacion": "01", "NumEstacion": "Q0736", "NombreEstacion": "SANTO NINO", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202021", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T01:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "SC283", "NombreEstacion": "HUAXTITLA" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202022", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T02:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "TG0", "NombreEstacion": "NAVOJOA" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202023", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T03:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "E0029", "NombreEstacion": "TRES JAGUEYES" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202024", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T04:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "TI032", "NombreEstacion": "NAVOLATO" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202025", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T05:00:01", "TipoEstacion": "03", "DistanciaRecorrida": "100.00", "NumEstacion": "JM047", "NombreEstacion": "HUEHUETOCA", "Domicilio": { "Calle": "Calle2", "NumeroExterior": "214", "NumeroInterior": "215", "Colonia": "0347", "Localidad": "23", "Referencia": "casa negra", "Municipio": "004", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "25350" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "PesoNetoTotal": "10", "NumTotalMercancias": "1", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202025" } ] } ], "TransporteFerroviario": { "TipoDeServicio": "TS01", "TipoDeTrafico": "TT01", "DerechosDePaso": [ { "TipoDerechoDePaso": "CDP114", "KilometrajePagado": "100" } ], "Carro": [ { "TipoCarro": "TC01", "MatriculaCarro": "A00001", "GuiaCarro": "123ASD", "ToneladasNetasCarro": "10" } ] } }, "FiguraTransporte": [ { "NombreFigura": "NombreFigura", "RFCFigura": "URE180429TM6", "TipoFigura": "02", "PartesTransporte": [ { "ParteTransporte": "PT01" } ], "Domicilio": { "Calle": "calle", "CodigoPostal": "99080", "Colonia": "0814", "Estado": "ZAC", "Localidad": "01", "Municipio": "010", "NumeroExterior": "211", "Pais": "MEX", "Referencia": "casa blanca" } } ] } } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "142", "Fecha": "2026-08-28T08:01:01", "SubTotal": "100.00", "Moneda": "MXN", "FormaPago": "01", "MetodoPago": "PUE", "Total": "100.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "Sí", "EntradaSalidaMerc": "Salida", "PaisOrigenDestino": "USA", "ViaEntradaSalida": "04", "TotalDistRec": "500.00", "RegimenesAduaneros": [ { "RegimenAduanero": "EXD", "RegimenAduanero": "EXD" } ], "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "TipoEstacion": "01", "NumEstacion": "Q0736", "NombreEstacion": "SANTO NINO", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202021", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T01:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "SC283", "NombreEstacion": "HUAXTITLA" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202022", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T02:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "TG0", "NombreEstacion": "NAVOJOA" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202023", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T03:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "E0029", "NombreEstacion": "TRES JAGUEYES" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202024", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T04:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "TI032", "NombreEstacion": "NAVOLATO" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202025", "RFCRemitenteDestinatario": "XEXX010101000", "NumRegIdTrib": "01010101", "ResidenciaFiscal": "USA", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T05:00:01", "DistanciaRecorrida": "100.00", "NumEstacion": "EF0001", "NombreEstacion": "NombreEstacion", "Domicilio": { "Calle": "ST", "NumeroExterior": "1234", "Colonia": "1234", "Referencia": "WHITE HOUSE", "Municipio": "1234", "Estado": "TX", "Pais": "USA", "CodigoPostal": "12345" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "PesoNetoTotal": "10", "NumTotalMercancias": "1", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "FraccionArancelaria": "9901000200", "Cantidad": "1.0", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "TipoMateria": "05", "DescripcionMateria": "otramateria", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202025" } ] } ], "TransporteFerroviario": { "TipoDeServicio": "TS01", "TipoDeTrafico": "TT01", "DerechosDePaso": [ { "TipoDerechoDePaso": "CDP114", "KilometrajePagado": "100" } ], "Carro": [ { "TipoCarro": "TC08", "MatriculaCarro": "A00012", "GuiaCarro": "123ASD", "ToneladasNetasCarro": "10" } ] } }, "FiguraTransporte": [ { "NombreFigura": "NombreFigura", "RFCFigura": "URE180429TM6", "TipoFigura": "02", "PartesTransporte": [ { "ParteTransporte": "PT01" } ], "Domicilio": { "Calle": "calle", "CodigoPostal": "99080", "Colonia": "0814", "Estado": "ZAC", "Localidad": "01", "Municipio": "010", "NumeroExterior": "211", "Pais": "MEX", "Referencia": "casa blanca" } } ] } } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "143", "Fecha": "2026-08-28T08:01:01", "SubTotal": "100.00", "Moneda": "MXN", "FormaPago": "01", "MetodoPago": "PUE", "Total": "100.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "Sí", "RegimenAduanero": "IMD", "EntradaSalidaMerc": "Entrada", "PaisOrigenDestino": "AFG", "ViaEntradaSalida": "04", "TotalDistRec": "500.00", "RegimenesAduaneros": [ { "RegimenAduanero": "IMD", "RegimenAduanero": "IMD" } ], "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "TipoEstacion": "01", "NumEstacion": "Q0736", "NombreEstacion": "SANTO NINO", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202021", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T01:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "SC283", "NombreEstacion": "HUAXTITLA" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202022", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T02:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "TG0", "NombreEstacion": "NAVOJOA" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202023", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T03:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "E0029", "NombreEstacion": "TRES JAGUEYES" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202024", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T04:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "TI032", "NombreEstacion": "NAVOLATO" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202025", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T05:00:01", "TipoEstacion": "03", "DistanciaRecorrida": "100.00", "NumEstacion": "JM047", "NombreEstacion": "HUEHUETOCA", "Domicilio": { "Calle": "Calle2", "NumeroExterior": "214", "NumeroInterior": "215", "Colonia": "0347", "Localidad": "23", "Referencia": "casa negra", "Municipio": "004", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "25350" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "PesoNetoTotal": "10", "NumTotalMercancias": "1", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "FraccionArancelaria": "9901000200", "Cantidad": "1.0", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "TipoMateria": "05", "DescripcionMateria": "otramateria", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "DocumentacionAduanera": [ { "TipoDocumento": "01", "NumPedimento": "23 43 0472 8000448", "RFCImpo": "EKU9003173C9" } ], "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202025" } ] } ], "TransporteFerroviario": { "TipoDeServicio": "TS01", "TipoDeTrafico": "TT01", "DerechosDePaso": [ { "TipoDerechoDePaso": "CDP114", "KilometrajePagado": "100" } ], "Carro": [ { "TipoCarro": "TC01", "MatriculaCarro": "A00001", "GuiaCarro": "123ASD", "ToneladasNetasCarro": "10" } ] } }, "FiguraTransporte": [ { "NombreFigura": "NombreFigura", "RFCFigura": "URE180429TM6", "TipoFigura": "02", "PartesTransporte": [ { "ParteTransporte": "PT02" } ], "Domicilio": { "Calle": "calle", "CodigoPostal": "99080", "Colonia": "0814", "Estado": "ZAC", "Localidad": "01", "Municipio": "010", "NumeroExterior": "211", "Pais": "MEX", "Referencia": "casa blanca" } } ] } } ] } } ``` Transporte Aéreo ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "144", "Fecha": "2026-08-28T08:01:01", "SubTotal": "100.00", "Moneda": "MXN", "FormaPago": "01", "MetodoPago": "PUE", "Total": "100.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "No", "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "NumEstacion": "EA0417", "NombreEstacion": "Loreto", "TipoEstacion": "01", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202020", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T00:00:01", "NumEstacion": "EA0418", "NombreEstacion": "Los Cabos", "TipoEstacion": "03", "Domicilio": { "Calle": "Calle2", "NumeroExterior": "214", "NumeroInterior": "215", "Colonia": "0347", "Localidad": "23", "Referencia": "casa negra", "Municipio": "004", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "25350" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "PesoNetoTotal": "1", "NumTotalMercancias": "1", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ValorMercancia": "100", "Moneda": "MXN", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202020" } ] } ], "TransporteAereo": { "PermSCT": "TPAF01", "NumPermisoSCT": "Demo", "MatriculaAeronave": "61E5-WZ", "NombreAseg": "NombreAseg", "NumPolizaSeguro": "NumPolizaSeguro", "NumeroGuia": "acUbYlBVTmlzx", "LugarContrato": "LugarContrato", "CodigoTransportista": "CA001", "RFCEmbarcador": "EKU9003173C9", "NombreEmbarcador": "Embarcador" } }, "FiguraTransporte": [ { "TipoFigura": "01", "NombreFigura": "NombreFigura", "RFCFigura": "CACX7605101P8", "NumLicencia": "a234567890" } ] } } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "145", "Fecha": "2026-08-28T08:01:01", "SubTotal": "100.00", "Moneda": "MXN", "FormaPago": "01", "MetodoPago": "PUE", "Total": "100.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "Sí", "EntradaSalidaMerc": "Salida", "PaisOrigenDestino": "USA", "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "ViaEntradaSalida": "03", "RegimenesAduaneros": [ { "RegimenAduanero": "EXD", "RegimenAduanero": "EXD" } ], "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "NumEstacion": "EA0417", "NombreEstacion": "Loreto", "TipoEstacion": "01", "Domicilio": { "Calle": "Calle2", "NumeroExterior": "214", "NumeroInterior": "215", "Colonia": "0347", "Localidad": "23", "Referencia": "casa negra", "Municipio": "004", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "25350" } }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202020", "RFCRemitenteDestinatario": "XEXX010101000", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario", "NumRegIdTrib": "01010101", "ResidenciaFiscal": "USA", "FechaHoraSalidaLlegada": "2023-08-01T00:00:01", "NumEstacion": "EA0143", "NombreEstacion": "Phoenix-Mesa Gateway", "Domicilio": { "Calle": "ST", "NumeroExterior": "12344", "Colonia": "N/A", "Referencia": "WHITE HOUSE", "Municipio": "N/A", "Estado": "TX", "Pais": "USA", "CodigoPostal": "12345" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "PesoNetoTotal": "1", "NumTotalMercancias": "1", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ValorMercancia": "100", "Moneda": "MXN", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "FraccionArancelaria": "9901000200", "TipoMateria": "05", "DescripcionMateria": "otramateria", "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202020" } ] } ], "TransporteAereo": { "PermSCT": "TPAF01", "NumPermisoSCT": "Demo", "MatriculaAeronave": "61E5-WZ", "NombreAseg": "NombreAseg", "NumPolizaSeguro": "NumPolizaSeguro", "NumeroGuia": "acUbYlBVTmlzx", "LugarContrato": "LugarContrato", "CodigoTransportista": "CA001", "RFCEmbarcador": "EKU9003173C9", "NombreEmbarcador": "Embarcador" } }, "FiguraTransporte": [ { "TipoFigura": "01", "NombreFigura": "NombreFigura", "RFCFigura": "CACX7605101P8", "NumLicencia": "a234567890" } ] } } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "146", "Fecha": "2026-08-28T08:01:01", "SubTotal": "100.00", "Moneda": "MXN", "FormaPago": "01", "MetodoPago": "PUE", "Total": "100.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "Sí", "EntradaSalidaMerc": "Entrada", "PaisOrigenDestino": "AFG", "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "ViaEntradaSalida": "03", "RegimenesAduaneros": [ { "RegimenAduanero": "IMD", "RegimenAduanero": "IMD" } ], "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "NumEstacion": "EA0417", "NombreEstacion": "Loreto", "TipoEstacion": "01", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202020", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T00:00:01", "NumEstacion": "EA0418", "NombreEstacion": "Los Cabos", "TipoEstacion": "03", "Domicilio": { "Calle": "Calle2", "NumeroExterior": "214", "NumeroInterior": "215", "Colonia": "0347", "Localidad": "23", "Referencia": "casa negra", "Municipio": "004", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "25350" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "PesoNetoTotal": "1", "NumTotalMercancias": "1", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ValorMercancia": "100", "Moneda": "MXN", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "FraccionArancelaria": "9901000200", "TipoMateria": "05", "DescripcionMateria": "otramateria", "DocumentacionAduanera": [ { "TipoDocumento": "01", "NumPedimento": "23 43 0472 8000448", "RFCImpo": "EKU9003173C9" } ], "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202020" } ] } ], "TransporteAereo": { "PermSCT": "TPAF01", "NumPermisoSCT": "Demo", "MatriculaAeronave": "61E5-WZ", "NombreAseg": "NombreAseg", "NumPolizaSeguro": "NumPolizaSeguro", "NumeroGuia": "acUbYlBVTmlzx", "LugarContrato": "LugarContrato", "CodigoTransportista": "CA001", "RFCEmbarcador": "EKU9003173C9", "NombreEmbarcador": "Embarcador" } }, "FiguraTransporte": [ { "TipoFigura": "01", "NombreFigura": "NombreFigura", "RFCFigura": "CACX7605101P8", "NumLicencia": "a234567890" } ] } } ] } } ``` Transporte Marítimo ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "147", "Fecha": "2026-08-28T08:01:01", "SubTotal": "100.00", "Moneda": "MXN", "FormaPago": "01", "MetodoPago": "PUE", "Total": "100.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "No", "Ubicaciones": [ { "NavegacionTrafico": "Altura", "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "NumEstacion": "PM001", "NombreEstacion": "Rosarito", "TipoEstacion": "01", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "NavegacionTrafico": "Altura", "TipoUbicacion": "Destino", "IDUbicacion": "DE202020", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T00:00:01", "NumEstacion": "PM001", "NombreEstacion": "Rosarito", "TipoEstacion": "03", "Domicilio": { "Calle": "Calle2", "NumeroExterior": "214", "NumeroInterior": "215", "Colonia": "0347", "Localidad": "23", "Referencia": "casa negra", "Municipio": "004", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "25350" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "PesoNetoTotal": "1", "NumTotalMercancias": "1", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202020" } ], "DetalleMercancia": { "UnidadPesoMerc": "Tu", "PesoBruto": "1", "PesoNeto": "1", "PesoTara": "0.001", "NumPiezas": "1" } } ], "TransporteMaritimo": { "PermSCT": "TPAF01", "NumPermisoSCT": "NumPermisoSCT1", "NombreAseg": "NombreAseg1", "NumPolizaSeguro": "NumPolizaSeguro1", "TipoEmbarcacion": "B01", "Matricula": "Matricula1", "NumeroOMI": "IMO1234567", "AnioEmbarcacion": "2003", "NombreEmbarc": "NombreEmbarc1", "NacionalidadEmbarc": "AFG", "UnidadesDeArqBruto": "0.001", "TipoCarga": "CGS", "Eslora": "0.01", "Manga": "0.01", "Calado": "0.01", "Puntal": "0.01", "LineaNaviera": "LineaNaviera1", "NombreAgenteNaviero": "NombreAgenteNaviero1", "NumAutorizacionNaviero": "ANC001/2022", "NumViaje": "NumViaje1", "NumConocEmbarc": "NumConocEmbarc1", "PermisoTempNavegacion": "PermisoTempNavegac1", "Contenedor": [ { "TipoContenedor": "CM001", "MatriculaContenedor": "MatriculaConte1", "NumPrecinto": "NumPrecinto1" } ], "RemolquesCCP": { "SubTipoRemCCP":"CTR001", "PlacaCCP":"JNG7636" } } }, "FiguraTransporte": [ { "NombreFigura": "NombreFigura", "RFCFigura": "URE180429TM6", "TipoFigura": "02", "PartesTransporte": [ { "ParteTransporte": "PT02" } ], "Domicilio": { "Calle": "calle", "CodigoPostal": "99080", "Colonia": "0814", "Estado": "ZAC", "Localidad": "01", "Municipio": "010", "NumeroExterior": "211", "Pais": "MEX", "Referencia": "casa blanca" } } ] } } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "148", "Fecha": "2026-08-28T08:01:01", "SubTotal": "100.00", "Moneda": "MXN", "FormaPago": "01", "MetodoPago": "PUE", "Total": "100.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "Sí", "EntradaSalidaMerc": "Salida", "PaisOrigenDestino": "USA", "ViaEntradaSalida": "02", "RegimenesAduaneros": [ { "RegimenAduanero": "EXD", "RegimenAduanero": "EXD" } ], "Ubicaciones": [ { "NavegacionTrafico": "Altura", "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "NumEstacion": "PM001", "NombreEstacion": "Rosarito", "TipoEstacion": "01", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "NavegacionTrafico": "Altura", "TipoUbicacion": "Destino", "IDUbicacion": "DE202020", "RFCRemitenteDestinatario": "XEXX010101000", "NumRegIdTrib": "01010101", "ResidenciaFiscal": "USA", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T00:00:01", "NumEstacion": "PM120", "NombreEstacion": "NombreEstacion", "Domicilio": { "Calle": "ST", "NumeroExterior": "12345", "Colonia": "N/A", "Referencia": "N/A", "Municipio": "N/A", "Estado": "TX", "Pais": "USA", "CodigoPostal": "12345" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "PesoNetoTotal": "1", "NumTotalMercancias": "1", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "FraccionArancelaria": "6309000100", "TipoMateria": "05", "DescripcionMateria": "otramateria", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202020" } ], "DetalleMercancia": { "UnidadPesoMerc": "Tu", "PesoBruto": "1", "PesoNeto": "1", "PesoTara": "0.001", "NumPiezas": "1" } } ], "TransporteMaritimo": { "PermSCT": "TPAF01", "NumPermisoSCT": "NumPermisoSCT1", "NombreAseg": "NombreAseg1", "NumPolizaSeguro": "NumPolizaSeguro1", "TipoEmbarcacion": "B01", "Matricula": "Matricula1", "NumeroOMI": "IMO1234567", "AnioEmbarcacion": "2003", "NombreEmbarc": "NombreEmbarc1", "NacionalidadEmbarc": "AFG", "UnidadesDeArqBruto": "0.001", "TipoCarga": "CGS", "Eslora": "0.01", "Manga": "0.01", "Calado": "0.01", "Puntal": "0.01", "LineaNaviera": "LineaNaviera1", "NombreAgenteNaviero": "NombreAgenteNaviero1", "NumAutorizacionNaviero": "ANC001/2022", "NumViaje": "NumViaje1", "NumConocEmbarc": "NumConocEmbarc1", "PermisoTempNavegacion": "PermisoTempNavegac1", "Contenedor": [ { "TipoContenedor": "CM002", "MatriculaContenedor": "MatriculaConte1", "NumPrecinto": "NumPrecinto1" } ], "RemolquesCCP": { "SubTipoRemCCP":"CTR001", "PlacaCCP":"JNG7636" } } }, "FiguraTransporte": [ { "NombreFigura": "NombreFigura", "RFCFigura": "URE180429TM6", "TipoFigura": "02", "PartesTransporte": [ { "ParteTransporte": "PT01" } ], "Domicilio": { "Calle": "calle", "CodigoPostal": "99080", "Colonia": "0814", "Estado": "ZAC", "Localidad": "01", "Municipio": "010", "NumeroExterior": "211", "Pais": "MEX", "Referencia": "casa blanca" } } ] } } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "149", "Fecha": "2026-08-28T08:01:01", "SubTotal": "100.00", "Moneda": "MXN", "FormaPago": "01", "MetodoPago": "PUE", "Total": "100.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "Sí", "EntradaSalidaMerc": "Entrada", "PaisOrigenDestino": "AFG", "ViaEntradaSalida": "02", "RegimenesAduaneros": [ { "RegimenAduanero": "IMD", "RegimenAduanero": "IMD" } ], "Ubicaciones": [ { "NavegacionTrafico": "Altura", "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "NumEstacion": "PM001", "NombreEstacion": "Rosarito", "TipoEstacion": "01", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "NavegacionTrafico": "Altura", "TipoUbicacion": "Destino", "IDUbicacion": "DE202020", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T00:00:01", "NumEstacion": "PM001", "NombreEstacion": "Rosarito", "TipoEstacion": "03", "Domicilio": { "Calle": "Calle2", "NumeroExterior": "214", "NumeroInterior": "215", "Colonia": "0347", "Localidad": "23", "Referencia": "casa negra", "Municipio": "004", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "25350" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "PesoNetoTotal": "1", "NumTotalMercancias": "1", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "FraccionArancelaria": "6309000100", "TipoMateria": "05", "DescripcionMateria": "otramateria", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "DocumentacionAduanera": [ { "TipoDocumento": "01", "NumPedimento": "23 43 0472 8000448", "RFCImpo": "EKU9003173C9" } ], "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202020" } ], "DetalleMercancia": { "UnidadPesoMerc": "Tu", "PesoBruto": "1", "PesoNeto": "1", "PesoTara": "0.001", "NumPiezas": "1" } } ], "TransporteMaritimo": { "PermSCT": "TPAF01", "NumPermisoSCT": "NumPermisoSCT1", "NombreAseg": "NombreAseg1", "NumPolizaSeguro": "NumPolizaSeguro1", "TipoEmbarcacion": "B01", "Matricula": "Matricula1", "NumeroOMI": "IMO1234567", "AnioEmbarcacion": "2003", "NombreEmbarc": "NombreEmbarc1", "NacionalidadEmbarc": "AFG", "UnidadesDeArqBruto": "0.001", "TipoCarga": "CGS", "Eslora": "0.01", "Manga": "0.01", "Calado": "0.01", "Puntal": "0.01", "LineaNaviera": "LineaNaviera1", "NombreAgenteNaviero": "NombreAgenteNaviero1", "NumAutorizacionNaviero": "ANC001/2022", "NumViaje": "NumViaje1", "NumConocEmbarc": "NumConocEmbarc1", "PermisoTempNavegacion": "PermisoTempNavegac1", "Contenedor": [ { "TipoContenedor": "CM002", "MatriculaContenedor": "MatriculaConte1", "NumPrecinto": "NumPrecinto1" } ], "RemolquesCCP": { "SubTipoRemCCP":"CTR001", "PlacaCCP":"JNG7636" } } }, "FiguraTransporte": [ { "NombreFigura": "NombreFigura", "RFCFigura": "URE180429TM6", "TipoFigura": "02", "PartesTransporte": [ { "ParteTransporte": "PT01" } ], "Domicilio": { "Calle": "calle", "CodigoPostal": "99080", "Colonia": "0814", "Estado": "ZAC", "Localidad": "01", "Municipio": "010", "NumeroExterior": "211", "Pais": "MEX", "Referencia": "casa blanca" } } ] } } ] } } ``` #### Traslado Autotransporte ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "150", "Fecha": "2026-08-28T08:01:01", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "T", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "No", "TotalDistRec": "1", "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202020", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T00:00:01", "DistanciaRecorrida": "1", "Domicilio": { "Calle": "Calle2", "NumeroExterior": "214", "NumeroInterior": "215", "Colonia": "0347", "Localidad": "23", "Referencia": "casa negra", "Municipio": "004", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "25350" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "NumTotalMercancias": "1", "LogisticaInversaRecoleccionDevolucion": "Sí", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202020" } ] } ], "Autotransporte": { "PermSCT": "TPAF01", "NumPermisoSCT": "NumPermisoSCT1", "IdentificacionVehicular": { "ConfigVehicular": "VL", "PesoBrutoVehicular": "1", "PlacaVM": "plac892", "AnioModeloVM": "2020" }, "Seguros": { "AseguraRespCivil": "AseguraRespCivil", "PolizaRespCivil": "123456789" }, "Remolques": [ { "SubTipoRem": "CTR004", "Placa": "VL45K98" } ] } }, "FiguraTransporte": [ { "TipoFigura": "01", "NombreFigura": "NombreFigura", "RFCFigura": "EKU9003173C9", "NumLicencia": "a234567890" } ] } } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "151", "Fecha": "2026-08-28T08:01:02", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "T", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "Sí", "EntradaSalidaMerc": "Salida", "PaisOrigenDestino": "USA", "ViaEntradaSalida": "01", "TotalDistRec": "1", "RegimenesAduaneros": [ { "RegimenAduanero": "EXD", "RegimenAduanero": "EXD" } ], "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "N/A", "Referencia": "WHITE HOUSE", "Municipio": "N/A", "Estado": "TX", "Pais": "USA", "CodigoPostal": "N/A" } }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202020", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T00:00:01", "DistanciaRecorrida": "1", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "N/A", "Referencia": "WHITE HOUSE", "Municipio": "N/A", "Estado": "TX", "Pais": "USA", "CodigoPostal": "N/A" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "NumTotalMercancias": "1", "LogisticaInversaRecoleccionDevolucion": "Sí", "Mercancia": [ { "FraccionArancelaria": "6309000100", "TipoMateria": "03", "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202020" } ] } ], "Autotransporte": { "PermSCT": "TPAF01", "NumPermisoSCT": "NumPermisoSCT1", "IdentificacionVehicular": { "ConfigVehicular": "VL", "PesoBrutoVehicular": "1", "PlacaVM": "plac892", "AnioModeloVM": "2020" }, "Seguros": { "AseguraRespCivil": "AseguraRespCivil", "PolizaRespCivil": "123456789" }, "Remolques": [ { "SubTipoRem": "CTR004", "Placa": "VL45K98" } ] } }, "FiguraTransporte": [ { "TipoFigura": "01", "NombreFigura": "NombreFigura", "RFCFigura": "EKU9003173C9", "NumLicencia": "a234567890" } ] } } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "152", "Fecha": "2026-08-28T08:01:02", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "T", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "Sí", "TotalDistRec": "1", "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "EntradaSalidaMerc": "Entrada", "PaisOrigenDestino": "AFG", "ViaEntradaSalida": "01", "RegimenesAduaneros": [ { "RegimenAduanero": "IMD" }, { "RegimenAduanero": "IMD" } ], "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202020", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T00:00:01", "DistanciaRecorrida": "1", "Domicilio": { "Calle": "Calle2", "NumeroExterior": "214", "NumeroInterior": "215", "Colonia": "0347", "Localidad": "23", "Referencia": "casa negra", "Municipio": "004", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "25350" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "NumTotalMercancias": "1", "LogisticaInversaRecoleccionDevolucion": "Sí", "Mercancia": [ { "BienesTransp": "11121900", "TipoMateria": "03", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "DocumentacionAduanera": [ { "TipoDocumento": "02", "IdentDocAduanero": "IdentDocAduanero" } ], "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202020" } ] } ], "Autotransporte": { "PermSCT": "TPAF01", "NumPermisoSCT": "NumPermisoSCT1", "IdentificacionVehicular": { "ConfigVehicular": "VL", "PesoBrutoVehicular": "1", "PlacaVM": "plac892", "AnioModeloVM": "2020" }, "Seguros": { "AseguraRespCivil": "AseguraRespCivil", "PolizaRespCivil": "123456789" }, "Remolques": [ { "SubTipoRem": "CTR004", "Placa": "VL45K98" } ] } }, "FiguraTransporte": [ { "TipoFigura": "01", "NombreFigura": "NombreFigura", "RFCFigura": "EKU9003173C9", "NumLicencia": "a234567890" } ] } } ] } } ``` Transporte Ferroviario ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "153", "Fecha": "2026-08-28T08:01:02", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "T", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "No", "TotalDistRec": "500.00", "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "TipoEstacion": "01", "NumEstacion": "Q0736", "NombreEstacion": "SANTO NINO", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202021", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T01:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "SC283", "NombreEstacion": "HUAXTITLA" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202022", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T02:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "TG0", "NombreEstacion": "NAVOJOA" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202023", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T03:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "E0029", "NombreEstacion": "TRES JAGUEYES" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202024", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T04:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "TI032", "NombreEstacion": "NAVOLATO" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202025", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T05:00:01", "TipoEstacion": "03", "DistanciaRecorrida": "100.00", "NumEstacion": "JM047", "NombreEstacion": "HUEHUETOCA", "Domicilio": { "Calle": "Calle2", "NumeroExterior": "214", "NumeroInterior": "215", "Colonia": "0347", "Localidad": "23", "Referencia": "casa negra", "Municipio": "004", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "25350" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "PesoNetoTotal": "10", "NumTotalMercancias": "1", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202025" } ] } ], "TransporteFerroviario": { "TipoDeServicio": "TS01", "TipoDeTrafico": "TT01", "DerechosDePaso": [ { "TipoDerechoDePaso": "CDP114", "KilometrajePagado": "100" } ], "Carro": [ { "TipoCarro": "TC08", "MatriculaCarro": "A00012", "GuiaCarro": "123ASD", "ToneladasNetasCarro": "10" } ] } }, "FiguraTransporte": [ { "NombreFigura": "NombreFigura", "RFCFigura": "URE180429TM6", "TipoFigura": "02", "PartesTransporte": [ { "ParteTransporte": "PT02" } ], "Domicilio": { "Calle": "calle", "CodigoPostal": "99080", "Colonia": "0814", "Estado": "ZAC", "Localidad": "01", "Municipio": "010", "NumeroExterior": "211", "Pais": "MEX", "Referencia": "casa blanca" } } ] } } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "154", "Fecha": "2026-08-28T08:01:02", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "T", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "Sí", "EntradaSalidaMerc": "Salida", "PaisOrigenDestino": "USA", "ViaEntradaSalida": "04", "TotalDistRec": "500.00", "RegimenesAduaneros": [ { "RegimenAduanero": "EXD", "RegimenAduanero": "EXD" } ], "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "TipoEstacion": "01", "NumEstacion": "Q0736", "NombreEstacion": "SANTO NINO", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202021", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T01:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "SC283", "NombreEstacion": "HUAXTITLA" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202022", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T02:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "TG0", "NombreEstacion": "NAVOJOA" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202023", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T03:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "E0029", "NombreEstacion": "TRES JAGUEYES" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202024", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T04:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "TI032", "NombreEstacion": "NAVOLATO" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202025", "RFCRemitenteDestinatario": "XEXX010101000", "NumRegIdTrib": "01010101", "ResidenciaFiscal": "USA", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T05:00:01", "DistanciaRecorrida": "100.00", "NumEstacion": "EF0001", "NombreEstacion": "NombreEstacion", "Domicilio": { "Calle": "ST", "NumeroExterior": "1234", "Colonia": "1234", "Referencia": "WHITE HOUSE", "Municipio": "1234", "Estado": "TX", "Pais": "USA", "CodigoPostal": "12345" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "PesoNetoTotal": "10", "NumTotalMercancias": "1", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "FraccionArancelaria": "9901000200", "Cantidad": "1.0", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "TipoMateria": "05", "DescripcionMateria": "otramateria", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202025" } ] } ], "TransporteFerroviario": { "TipoDeServicio": "TS01", "TipoDeTrafico": "TT01", "DerechosDePaso": [ { "TipoDerechoDePaso": "CDP114", "KilometrajePagado": "100" } ], "Carro": [ { "TipoCarro": "TC08", "MatriculaCarro": "A00012", "GuiaCarro": "123ASD", "ToneladasNetasCarro": "10" } ] } }, "FiguraTransporte": [ { "NombreFigura": "NombreFigura", "RFCFigura": "URE180429TM6", "TipoFigura": "02", "PartesTransporte": [ { "ParteTransporte": "PT02" } ], "Domicilio": { "Calle": "calle", "CodigoPostal": "99080", "Colonia": "0814", "Estado": "ZAC", "Localidad": "01", "Municipio": "010", "NumeroExterior": "211", "Pais": "MEX", "Referencia": "casa blanca" } } ] } } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "155", "Fecha": "2026-08-28T08:01:02", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "T", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "Sí", "EntradaSalidaMerc": "Entrada", "PaisOrigenDestino": "AFG", "ViaEntradaSalida": "04", "TotalDistRec": "500.00", "RegimenesAduaneros": [ { "RegimenAduanero": "IMD", "RegimenAduanero": "IMD" } ], "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "TipoEstacion": "01", "NumEstacion": "Q0736", "NombreEstacion": "SANTO NINO", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202021", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T01:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "SC283", "NombreEstacion": "HUAXTITLA" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202022", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T02:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "TG0", "NombreEstacion": "NAVOJOA" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202023", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T03:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "E0029", "NombreEstacion": "TRES JAGUEYES" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202024", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T04:00:01", "TipoEstacion": "02", "DistanciaRecorrida": "100.00", "NumEstacion": "TI032", "NombreEstacion": "NAVOLATO" }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202025", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T05:00:01", "TipoEstacion": "03", "DistanciaRecorrida": "100.00", "NumEstacion": "JM047", "NombreEstacion": "HUEHUETOCA", "Domicilio": { "Calle": "Calle2", "NumeroExterior": "214", "NumeroInterior": "215", "Colonia": "0347", "Localidad": "23", "Referencia": "casa negra", "Municipio": "004", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "25350" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "PesoNetoTotal": "10", "NumTotalMercancias": "1", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "FraccionArancelaria": "9901000200", "Cantidad": "1.0", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "TipoMateria": "05", "DescripcionMateria": "otramateria", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "DocumentacionAduanera": [ { "TipoDocumento": "01", "NumPedimento": "23 43 0472 8000448", "RFCImpo": "EKU9003173C9" } ], "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202025" } ] } ], "TransporteFerroviario": { "TipoDeServicio": "TS01", "TipoDeTrafico": "TT01", "DerechosDePaso": [ { "TipoDerechoDePaso": "CDP114", "KilometrajePagado": "100" } ], "Carro": [ { "TipoCarro": "TC08", "MatriculaCarro": "A00012", "GuiaCarro": "123ASD", "ToneladasNetasCarro": "10" } ] } }, "FiguraTransporte": [ { "NombreFigura": "NombreFigura", "RFCFigura": "URE180429TM6", "TipoFigura": "02", "PartesTransporte": [ { "ParteTransporte": "PT02" } ], "Domicilio": { "Calle": "calle", "CodigoPostal": "99080", "Colonia": "0814", "Estado": "ZAC", "Localidad": "01", "Municipio": "010", "NumeroExterior": "211", "Pais": "MEX", "Referencia": "casa blanca" } } ] } } ] } } ``` Transporte aéreo ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "156", "Fecha": "2026-08-28T08:01:02", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "T", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "No", "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "NumEstacion": "EA0417", "NombreEstacion": "Loreto", "TipoEstacion": "01", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202020", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T00:00:01", "NumEstacion": "EA0418", "NombreEstacion": "Los Cabos", "TipoEstacion": "03", "Domicilio": { "Calle": "Calle2", "NumeroExterior": "214", "NumeroInterior": "215", "Colonia": "0347", "Localidad": "23", "Referencia": "casa negra", "Municipio": "004", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "25350" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "PesoNetoTotal": "1", "NumTotalMercancias": "1", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ValorMercancia": "100", "Moneda": "MXN", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202020" } ] } ], "TransporteAereo": { "PermSCT": "TPAF01", "NumPermisoSCT": "Demo", "MatriculaAeronave": "61E5-WZ", "NombreAseg": "NombreAseg", "NumPolizaSeguro": "NumPolizaSeguro", "NumeroGuia": "acUbYlBVTmlzx", "LugarContrato": "LugarContrato", "CodigoTransportista": "CA001", "RFCEmbarcador": "EKU9003173C9", "NombreEmbarcador": "Embarcador" } }, "FiguraTransporte": [ { "TipoFigura": "01", "NombreFigura": "NombreFigura", "RFCFigura": "CACX7605101P8", "NumLicencia": "a234567890" } ] } } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "157", "Fecha": "2026-08-28T08:01:02", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "T", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "Sí", "EntradaSalidaMerc": "Salida", "PaisOrigenDestino": "USA", "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "ViaEntradaSalida": "03", "RegimenesAduaneros": [ { "RegimenAduanero": "EXD", "RegimenAduanero": "EXD" } ], "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "NumEstacion": "EA0417", "NombreEstacion": "Loreto", "TipoEstacion": "01", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202020", "RFCRemitenteDestinatario": "XEXX010101000", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "NumRegIdTrib": "01010101", "ResidenciaFiscal": "USA", "FechaHoraSalidaLlegada": "2023-08-01T00:00:01", "NumEstacion": "EA0143", "NombreEstacion": "Phoenix-Mesa Gateway", "Domicilio": { "Calle": "ST", "NumeroExterior": "1234", "Colonia": "N/A", "Referencia": "N/A", "Municipio": "N/A", "Estado": "TX", "Pais": "USA", "CodigoPostal": "12345" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "PesoNetoTotal": "1", "NumTotalMercancias": "1", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ValorMercancia": "100", "Moneda": "MXN", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "FraccionArancelaria": "9901000200", "TipoMateria": "05", "DescripcionMateria": "otramateria", "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202020" } ] } ], "TransporteAereo": { "PermSCT": "TPAF01", "NumPermisoSCT": "Demo", "MatriculaAeronave": "61E5-WZ", "NombreAseg": "NombreAseg", "NumPolizaSeguro": "NumPolizaSeguro", "NumeroGuia": "acUbYlBVTmlzx", "LugarContrato": "LugarContrato", "CodigoTransportista": "CA001", "RFCEmbarcador": "EKU9003173C9", "NombreEmbarcador": "Embarcador" } }, "FiguraTransporte": [ { "TipoFigura": "01", "NombreFigura": "NombreFigura", "RFCFigura": "CACX7605101P8", "NumLicencia": "a234567890" } ] } } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "158", "Fecha": "2026-08-28T08:01:02", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "T", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "Sí", "EntradaSalidaMerc": "Entrada", "PaisOrigenDestino": "AFG", "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "ViaEntradaSalida": "03", "RegimenesAduaneros": [ { "RegimenAduanero": "IMD", "RegimenAduanero": "IMD" } ], "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "NumEstacion": "EA0417", "NombreEstacion": "Loreto", "TipoEstacion": "01", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202020", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T00:00:01", "NumEstacion": "EA0418", "NombreEstacion": "Los Cabos", "TipoEstacion": "03", "Domicilio": { "Calle": "Calle2", "NumeroExterior": "214", "NumeroInterior": "215", "Colonia": "0347", "Localidad": "23", "Referencia": "casa negra", "Municipio": "004", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "25350" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "PesoNetoTotal": "1", "NumTotalMercancias": "1", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ValorMercancia": "100", "Moneda": "MXN", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "FraccionArancelaria": "9901000200", "TipoMateria": "05", "DescripcionMateria": "otramateria", "DocumentacionAduanera": [ { "TipoDocumento": "01", "NumPedimento": "23 43 0472 8000448", "RFCImpo": "EKU9003173C9" } ], "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202020" } ] } ], "TransporteAereo": { "PermSCT": "TPAF01", "NumPermisoSCT": "Demo", "MatriculaAeronave": "61E5-WZ", "NombreAseg": "NombreAseg", "NumPolizaSeguro": "NumPolizaSeguro", "NumeroGuia": "acUbYlBVTmlzx", "LugarContrato": "LugarContrato", "CodigoTransportista": "CA001", "RFCEmbarcador": "EKU9003173C9", "NombreEmbarcador": "Embarcador" } }, "FiguraTransporte": [ { "TipoFigura": "01", "NombreFigura": "NombreFigura", "RFCFigura": "CACX7605101P8", "NumLicencia": "a234567890" } ] } } ] } } ``` Transporte Marítimo ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "159", "Fecha": "2026-08-28T08:01:02", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "T", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "No", "Ubicaciones": [ { "NavegacionTrafico": "Altura", "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "NumEstacion": "PM001", "NombreEstacion": "Rosarito", "TipoEstacion": "01", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "NavegacionTrafico": "Altura", "TipoUbicacion": "Destino", "IDUbicacion": "DE202020", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T00:00:01", "NumEstacion": "PM001", "NombreEstacion": "Rosarito", "TipoEstacion": "03", "Domicilio": { "Calle": "Calle2", "NumeroExterior": "214", "NumeroInterior": "215", "Colonia": "0347", "Localidad": "23", "Referencia": "casa negra", "Municipio": "004", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "25350" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "PesoNetoTotal": "1", "NumTotalMercancias": "1", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202020" } ], "DetalleMercancia": { "UnidadPesoMerc": "Tu", "PesoBruto": "1", "PesoNeto": "1", "PesoTara": "0.001", "NumPiezas": "1" } } ], "TransporteMaritimo": { "PermSCT": "TPAF01", "NumPermisoSCT": "NumPermisoSCT1", "NombreAseg": "NombreAseg1", "NumPolizaSeguro": "NumPolizaSeguro1", "TipoEmbarcacion": "B01", "Matricula": "Matricula1", "NumeroOMI": "IMO1234567", "AnioEmbarcacion": "2003", "NombreEmbarc": "NombreEmbarc1", "NacionalidadEmbarc": "AFG", "UnidadesDeArqBruto": "0.001", "TipoCarga": "CGS", "Eslora": "0.01", "Manga": "0.01", "Calado": "0.01", "Puntal": "0.01", "LineaNaviera": "LineaNaviera1", "NombreAgenteNaviero": "NombreAgenteNaviero1", "NumAutorizacionNaviero": "ANC001/2022", "NumViaje": "NumViaje1", "NumConocEmbarc": "NumConocEmbarc1", "PermisoTempNavegacion": "PermisoTempNavegac1", "Contenedor": [ { "TipoContenedor": "CM002", "MatriculaContenedor": "MatriculaConte1", "NumPrecinto": "NumPrecinto1" } ], "RemolquesCCP": { "SubTipoRemCCP": "CTR001", "PlacaCCP": "JNG7636" } } }, "FiguraTransporte": [ { "NombreFigura": "NombreFigura", "RFCFigura": "URE180429TM6", "TipoFigura": "02", "PartesTransporte": [ { "ParteTransporte": "PT02" } ], "Domicilio": { "Calle": "calle", "CodigoPostal": "99080", "Colonia": "0814", "Estado": "ZAC", "Localidad": "01", "Municipio": "010", "NumeroExterior": "211", "Pais": "MEX", "Referencia": "casa blanca" } } ] } } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "160", "Fecha": "2026-08-28T08:01:02", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "T", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "Sí", "EntradaSalidaMerc": "Salida", "PaisOrigenDestino": "USA", "ViaEntradaSalida": "02", "RegimenesAduaneros": [ { "RegimenAduanero": "EXD", "RegimenAduanero": "EXD" } ], "Ubicaciones": [ { "NavegacionTrafico": "Altura", "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "NumEstacion": "PM001", "NombreEstacion": "Rosarito", "TipoEstacion": "01", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "NavegacionTrafico": "Altura", "TipoUbicacion": "Destino", "IDUbicacion": "DE202020", "RFCRemitenteDestinatario": "XEXX010101000", "NumRegIdTrib": "01010101", "ResidenciaFiscal": "USA", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T00:00:01", "NumEstacion": "PM120", "NombreEstacion": "NombreEstacion", "Domicilio": { "Calle": "ST", "NumeroExterior": "12345", "Colonia": "N/A", "Referencia": "N/A", "Municipio": "N/A", "Estado": "TX", "Pais": "USA", "CodigoPostal": "12345" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "PesoNetoTotal": "1", "NumTotalMercancias": "1", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "FraccionArancelaria": "6309000100", "TipoMateria": "05", "DescripcionMateria": "otramateria", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202020" } ], "DetalleMercancia": { "UnidadPesoMerc": "Tu", "PesoBruto": "1", "PesoNeto": "1", "PesoTara": "0.001", "NumPiezas": "1" } } ], "TransporteMaritimo": { "PermSCT": "TPAF01", "NumPermisoSCT": "NumPermisoSCT1", "NombreAseg": "NombreAseg1", "NumPolizaSeguro": "NumPolizaSeguro1", "TipoEmbarcacion": "B01", "Matricula": "Matricula1", "NumeroOMI": "IMO1234567", "AnioEmbarcacion": "2003", "NombreEmbarc": "NombreEmbarc1", "NacionalidadEmbarc": "AFG", "UnidadesDeArqBruto": "0.001", "TipoCarga": "CGS", "Eslora": "0.01", "Manga": "0.01", "Calado": "0.01", "Puntal": "0.01", "LineaNaviera": "LineaNaviera1", "NombreAgenteNaviero": "NombreAgenteNaviero1", "NumAutorizacionNaviero": "ANC001/2022", "NumViaje": "NumViaje1", "NumConocEmbarc": "NumConocEmbarc1", "PermisoTempNavegacion": "PermisoTempNavegac1", "Contenedor": [ { "TipoContenedor": "CM002", "MatriculaContenedor": "MatriculaConte1", "NumPrecinto": "NumPrecinto1" } ], "RemolquesCCP": { "SubTipoRemCCP": "CTR001", "PlacaCCP": "JNG7636" } } }, "FiguraTransporte": [ { "NombreFigura": "NombreFigura", "RFCFigura": "URE180429TM6", "TipoFigura": "02", "PartesTransporte": [ { "ParteTransporte": "PT02" } ], "Domicilio": { "Calle": "calle", "CodigoPostal": "99080", "Colonia": "0814", "Estado": "ZAC", "Localidad": "01", "Municipio": "010", "NumeroExterior": "211", "Pais": "MEX", "Referencia": "casa blanca" } } ] } } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "161", "Fecha": "2026-08-28T08:01:02", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "T", "Exportacion": "01", "LugarExpedicion": "42501", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "Sí", "EntradaSalidaMerc": "Entrada", "PaisOrigenDestino": "AFG", "ViaEntradaSalida": "02", "RegimenesAduaneros": [ { "RegimenAduanero": "IMD", "RegimenAduanero": "IMD" } ], "Ubicaciones": [ { "NavegacionTrafico": "Altura", "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "NumEstacion": "PM001", "NombreEstacion": "Rosarito", "TipoEstacion": "01", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "NavegacionTrafico": "Altura", "TipoUbicacion": "Destino", "IDUbicacion": "DE202020", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T00:00:01", "NumEstacion": "PM001", "NombreEstacion": "Rosarito", "TipoEstacion": "03", "Domicilio": { "Calle": "Calle2", "NumeroExterior": "214", "NumeroInterior": "215", "Colonia": "0347", "Localidad": "23", "Referencia": "casa negra", "Municipio": "004", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "25350" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "PesoNetoTotal": "1", "NumTotalMercancias": "1", "Mercancia": [ { "BienesTransp": "11121900", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "FraccionArancelaria": "6309000100", "TipoMateria": "05", "DescripcionMateria": "otramateria", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "DocumentacionAduanera": [ { "TipoDocumento": "01", "NumPedimento": "23 43 0472 8000448", "RFCImpo": "EKU9003173C9" } ], "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202020" } ], "DetalleMercancia": { "UnidadPesoMerc": "Tu", "PesoBruto": "1", "PesoNeto": "1", "PesoTara": "0.001", "NumPiezas": "1" } } ], "TransporteMaritimo": { "PermSCT": "TPAF01", "NumPermisoSCT": "NumPermisoSCT1", "NombreAseg": "NombreAseg1", "NumPolizaSeguro": "NumPolizaSeguro1", "TipoEmbarcacion": "B01", "Matricula": "Matricula1", "NumeroOMI": "IMO1234567", "AnioEmbarcacion": "2003", "NombreEmbarc": "NombreEmbarc1", "NacionalidadEmbarc": "AFG", "UnidadesDeArqBruto": "0.001", "TipoCarga": "CGS", "Eslora": "0.01", "Manga": "0.01", "Calado": "0.01", "Puntal": "0.01", "LineaNaviera": "LineaNaviera1", "NombreAgenteNaviero": "NombreAgenteNaviero1", "NumAutorizacionNaviero": "ANC001/2022", "NumViaje": "NumViaje1", "NumConocEmbarc": "NumConocEmbarc1", "PermisoTempNavegacion": "PermisoTempNavegac1", "Contenedor": [ { "TipoContenedor": "CM002", "MatriculaContenedor": "MatriculaConte1", "NumPrecinto": "NumPrecinto1" } ], "RemolquesCCP": { "SubTipoRemCCP": "CTR001", "PlacaCCP": "JNG7636" } } }, "FiguraTransporte": [ { "NombreFigura": "NombreFigura", "RFCFigura": "URE180429TM6", "TipoFigura": "02", "PartesTransporte": [ { "ParteTransporte": "PT02" } ], "Domicilio": { "Calle": "calle", "CodigoPostal": "99080", "Colonia": "0814", "Estado": "ZAC", "Localidad": "01", "Municipio": "010", "NumeroExterior": "211", "Pais": "MEX", "Referencia": "casa blanca" } } ] } } ] } } ``` --- # Certificado De Destrucción 1.0 Fuente: https://developers.sw.com.mx/knowledge-base/cfdi40-certificado-de-destruccion-10/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento para incorporar la información que integra el certificado de destrucción de vehículos destruidos por los centros de destrucción autorizados por el SAT. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Ingreso ``` ``` ### Ejemplos JSON Ingreso ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "285", "Fecha": "2026-08-28T08:01:05", "FormaPago": 99, "CondicionesDePago": "CondicionesDePago", "SubTotal": 200, "Descuento": 1, "Moneda": "MXN", "TipoCambio": "1", "Total": 230.84, "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "S01" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 199, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 31.84 } ] }, "ClaveProdServ": "01010101", "Cantidad": 1, "ClaveUnidad": "H87", "Unidad": "Servicio", "Descripcion": "Servicio", "ValorUnitario": 200, "Importe": 200, "Descuento": 1, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 199, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 31.84 } ], "TotalImpuestosTrasladados": 31.84 }, "Complemento": { "Any": [ { "destruccion:certificadodedestruccion": { "@xmlns:destruccion": "http://www.sat.gob.mx/certificadodestruccion", "@Version": "1.0", "@Serie": "SERIE A", "@NumFolDesVeh": "0123456789", "destruccion:VehiculoDestruido": { "@Marca": "BMW", "@TipooClase": "Sedan", "@Año": "2010", "@NumPlacas": "000-XXX", "@NumFolTarjCir": "0123456789" } } } ] } } ``` --- # CFDI 4.0 Fuente: https://developers.sw.com.mx/knowledge-base/ejemplos-4-0/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos **Ejemplos 4.0 de algunos escenarios de la versión reciente de CFDI.** Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML ##### **Ingreso** Ingreso ``` ``` Exentos ``` ``` Tasa 0 ``` ``` Tasa 0 y Retenciones ``` ``` Ingreso Sin Impuestos ``` ``` Kit (Parte) ``` ``` A Cuenta Terceros ``` ``` Cuenta Predial ``` ``` Global ``` ``` Publico en General ``` ``` Descuentos ``` ``` RESICO Retencion ISR 1.25% ``` ``` Nota De Débito ``` ``` CFDI Relacionados ``` ``` Anticipos con remanente Valor del anticipo ``` ``` Remanente de la contraprestación ``` ``` Anticipos con CFDI Egreso Valor del anticipo ``` ``` Valor total de la operación ``` ``` Egreso por el valor del anticipo ``` ``` Hidrocarburos, Petrolíferos y Servicios Ingreso ``` ``` Global ``` ``` Objeto de Impuesto 06 ``` ``` Objeto de Impuesto 07 ``` ``` ``` ``` Objeto de Impuesto 08 ``` ``` ##### **Traslado** Traslado ``` ``` ##### **Egreso** Nota De Crédito ``` ``` Devolución ``` ``` Importe menor al CFDI de Ingreso ``` ``` ### Ejemplos JSON ##### **Ingreso** Ingreso ``` { "Version": "4.0", "FormaPago": "01", "Serie": "SW N8N Examples", "Folio": "030", "Fecha": "2026-08-28T08:00:58", "MetodoPago": "PUE", "Sello": "", "NoCertificado": "", "Certificado": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "10.00", "Descuento": "0.00", "Moneda": "MXN", "Total": "10.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "45610", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "NoIdentificacion": "None", "Cantidad": "1.0", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "10.00", "Importe": "10.00", "Descuento": "0.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "1", "Importe": "1", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ], "Retenciones": [ { "Base": "1", "Importe": "1", "Impuesto": "002", "TasaOCuota": "0.040000", "TipoFactor": "Tasa" } ] } } ], "Impuestos": { "TotalImpuestosTrasladados": "1.00", "TotalImpuestosRetenidos": "1.00", "Retenciones": [ { "Importe": "1.00", "Impuesto": "002" } ], "Traslados": [ { "Base": "1.00", "Importe": "1.00", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] } } ``` Exentos ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "031", "Fecha": "2026-08-28T08:00:59", "Sello": "", "FormaPago": "99", "NoCertificado": "", "Certificado": "", "SubTotal": "125.00", "Moneda": "MXN", "Total": "125.00", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PPD", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "125.00", "Importe": "125.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "125.00", "Impuesto": "002", "TipoFactor": "Exento" } ] } } ], "Impuestos": { "Traslados": [ { "Base": "125.00", "Impuesto": "002", "TipoFactor": "Exento" } ] } } ``` Tasa 0 ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "032", "Fecha": "2026-08-28T08:00:59", "Sello": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "200", "Moneda": "MXN", "Total": "200.00", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PPD", "FormaPago": "99", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "200.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "200.00", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.000000", "Importe": "0.00" } ], "Retenciones": [ { "Base": "200.00", "Impuesto": "001", "TipoFactor": "Tasa", "TasaOCuota": "0.000000", "Importe": "0.00" } ] } } ], "Impuestos": { "TotalImpuestosRetenidos": "0.00", "TotalImpuestosTrasladados": "0.00", "Retenciones": [ { "Impuesto": "001", "Importe": "0.00" } ], "Traslados": [ { "Base": "200.00", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.000000", "Importe": "0.00" } ] } } ``` Tasa 0 y Retenciones ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "033", "Fecha": "2026-08-28T08:00:59", "CondicionesDePago": "CondicionesDePago", "SubTotal": "200", "Moneda": "MXN", "Total": "199.80", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PPD", "FormaPago": "99", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "200.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "200.00", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.000000", "Importe": "0.00" } ], "Retenciones": [ { "Base": "1", "Impuesto": "001", "TipoFactor": "Tasa", "TasaOCuota": "0.100000", "Importe": "0.10" }, { "Base": "1", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.106666", "Importe": "0.10" } ] } } ], "Impuestos": { "TotalImpuestosRetenidos": "0.20", "TotalImpuestosTrasladados": "0.00", "Retenciones": [ { "Impuesto": "001", "Importe": "0.10" }, { "Impuesto": "002", "Importe": "0.10" } ], "Traslados": [ { "Base": "200.00", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.000000", "Importe": "0.00" } ] } } ``` Ingreso Sin Impuestos ``` { "Version": "4.0", "FormaPago": "01", "Serie": "SW N8N Examples", "Folio": "034", "Fecha": "2026-08-28T08:00:59", "MetodoPago":"PUE", "Sello": "", "NoCertificado": "", "Certificado": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "10.00", "Descuento": "0.00", "Moneda": "MXN", "Total": "10.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "45610", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "NoIdentificacion": "None", "Cantidad": "1.0", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "10.00", "Importe": "10.00", "Descuento": "0.00", "ObjetoImp": "01" } ] } ``` Kit (Parte) ``` { "Version": "4.0", "FormaPago":"01", "Serie": "SW N8N Examples", "Folio": "035", "Fecha": "2026-08-28T08:00:59", "Sello": "", "NoCertificado": "", "Certificado": "", "CondicionesDePago": "CondicionesDePago", "MetodoPago": "PUE", "SubTotal": "10.00", "Descuento": "0.00", "Moneda": "MXN", "Total": "10.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "45610", "CfdiRelacionados": [ { "TipoRelacion": "01", "CfdiRelacionado": [ { "UUID": "1fac4464-1111-0000-1111-cd37179db12e" } ] } ], "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "CACX7605101P8", "Nombre": "XOCHILT CASAS CHAVEZ", "DomicilioFiscalReceptor": "36257", "RegimenFiscalReceptor": "612", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "NoIdentificacion": "None", "Cantidad": "1.0", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "10.00", "Importe": "10.00", "Descuento": "0.00", "ObjetoImp": "01", "Parte": [ { "ClaveProdServ": "51241200", "NoIdentificacion": "IM0071", "Cantidad": "1", "Unidad": "Pieza", "Descripcion": "25311FM00239 (LUARIL ETER SULFATO DE SODIO VEHICULO CBP 300ML), ACEITE AJONJOLI 150CC, ACEITE DE ALMENDRAS DULCES 150CC, TALCO 10GR, OXIDO DE ZINC 10GR.", "ValorUnitario": "736.89", "Importe": "736.89" } ] } ] } ``` A Cuenta Terceros ``` { "Version": "4.0", "FormaPago":"01", "Serie": "SW N8N Examples", "Folio": "036", "Fecha": "2026-08-28T08:00:59", "Sello": "", "NoCertificado": "", "MetodoPago":"PUE", "Certificado": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "200.00", "Descuento": "0.00", "Moneda": "MXN", "Total": "180.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "45610", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "NoIdentificacion": "None", "Cantidad": "1.0", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "200.00", "Descuento": "0.00", "ObjetoImp": "02", "Impuestos": { "Retenciones": [ { "Base": "200.00", "Impuesto": "001", "TipoFactor": "Tasa", "TasaOCuota": "0.100000", "Importe": "20.00" } ] }, "ACuentaTerceros": { "RfcACuentaTerceros": "CACX7605101P8", "NombreACuentaTerceros": "XOCHILT CASAS CHAVEZ", "RegimenFiscalACuentaTerceros": "601", "DomicilioFiscalACuentaTerceros": "36257" } } ], "Impuestos": { "TotalImpuestosRetenidos": "20.00", "Retenciones": [ { "Impuesto": "001", "Importe": "20.00" } ] } } ``` Cuenta Predial ``` { "Version": "4.0", "FormaPago": "01", "Serie": "SW N8N Examples", "Folio": "037", "Fecha": "2026-08-28T08:00:59", "Sello": "", "NoCertificado": "", "MetodoPago": "PUE", "Certificado": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "200.00", "Descuento": "0.00", "Moneda": "MXN", "Total": "180.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "45610", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "NoIdentificacion": "None", "Cantidad": "1.0", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "200.00", "Descuento": "0.00", "ObjetoImp": "02", "Impuestos": { "Retenciones": [ { "Base": "200.00", "Impuesto": "001", "TipoFactor": "Tasa", "TasaOCuota": "0.100000", "Importe": "20.00" } ] }, "CuentaPredial": [{ "Numero": "aB3cD4eF5gH6iJ7kL8mN9oP0" }] } ], "Impuestos": { "TotalImpuestosRetenidos": "20.00", "Retenciones": [ { "Impuesto": "001", "Importe": "20.00" } ] } } ``` Global ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "038", "Fecha": "2026-08-28T08:00:59", "Sello": "", "FormaPago": 99, "FormaPagoSpecified": true, "NoCertificado": "", "Certificado": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": 844.98, "Descuento":0, "Moneda": "MXN", "Total": 980.18, "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "MetodoPagoSpecified": true, "LugarExpedicion": "20000", "InformacionGlobal": { "Periodicidad": "01", "Meses": "01", "Año": "2023" }, "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "XAXX010101000", "Nombre": "PUBLICO EN GENERAL", "DomicilioFiscalReceptor": "20000", "RegimenFiscalReceptor": 616, "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "01010101", "NoIdentificacion": "UT421511", "Cantidad": 1, "ClaveUnidad": "ACT", "Descripcion": "Venta", "ValorUnitario": 130, "Importe": 130, "Descuento":0, "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": 130, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 20.80 } ] } }, { "ClaveProdServ": "01010101", "NoIdentificacion": "UT421512", "Cantidad": 1, "ClaveUnidad": "ACT", "Descripcion": "Venta", "ValorUnitario": 359.98, "Importe": 359.98, "Descuento":0, "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": 359.98, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 57.60 } ] } }, { "ClaveProdServ": "01010101", "NoIdentificacion": "UT421513", "Cantidad": 1, "ClaveUnidad": "ACT", "Descripcion": "Venta", "ValorUnitario": 355.00, "Importe": 355.00, "Descuento":0, "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": 355.00, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 56.80 } ] } } ], "Impuestos": { "TotalImpuestosTrasladados": 135.20, "Traslados": [ { "Base": 844.98, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 135.20 } ] } } ``` Público en General ``` { "Version": "4.0", "FormaPago": "01", "Serie": "SW N8N Examples", "Folio": "039", "Fecha": "2026-08-28T08:00:59", "MetodoPago": "PUE", "Sello": "", "NoCertificado": "", "Certificado": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "10.00", "Descuento": "0.00", "Moneda": "MXN", "Total": "10.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "45610", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "XAXX010101000", "Nombre": "CLIENTE", "DomicilioFiscalReceptor": "45610", "RegimenFiscalReceptor": "616", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "NoIdentificacion": "None", "Cantidad": "1.0", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "10.00", "Importe": "10.00", "Descuento": "0.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "1", "Importe": "1", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ], "Retenciones": [ { "Base": "1", "Importe": "1", "Impuesto": "002", "TasaOCuota": "0.040000", "TipoFactor": "Tasa" } ] } } ], "Impuestos": { "TotalImpuestosTrasladados": "1.00", "TotalImpuestosRetenidos": "1.00", "Retenciones": [ { "Importe": "1.00", "Impuesto": "002" } ], "Traslados": [ { "Base": "1.00", "Importe": "1.00", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] } } ``` Descuentos ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "040", "Fecha": "2026-08-28T08:00:59", "FormaPago": "99", "SubTotal": 280.00, "Descuento": 30.00, "Moneda": "MXN", "Total": 290.00, "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "InformacionGlobal": { "Periodicidad": "01", "Meses": "09", "Año": "2024" }, "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "XAXX010101000", "Nombre": "PUBLICO EN GENERAL", "DomicilioFiscalReceptor": "20000", "RegimenFiscalReceptor": 616, "UsoCFDI": "CP01" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 90.00, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 14.40 } ] }, "ClaveProdServ": "50211503", "Cantidad": 1.0, "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": 100.00, "Importe": 100.00, "Descuento": 10.00, "ObjetoImp": "02" }, { "Impuestos": { "Traslados": [ { "Base": 160.00, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 25.60 } ] }, "ClaveProdServ": "12131707", "Cantidad": 20.0, "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Encendedores", "ValorUnitario": 9.00, "Importe": 180.00, "Descuento": 20.00, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 250.00, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 40.00 } ], "TotalImpuestosTrasladados": 40.00 } } ``` RESICO Retencion ISR 1.25% ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "041", "Fecha": "2026-08-28T08:00:59", "Sello": "", "FormaPago": "03", "NoCertificado": "", "Certificado": "", "CondicionesDePago": "CONTADO", "SubTotal": 3499.99, "Moneda": "MXN", "TipoCambio": "1", "Total": 4016.24, "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "97134", "Emisor": { "Rfc": "KAHO641101B39", "Nombre": "OSCAR KALA HAAK", "RegimenFiscal": 626 }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": 601, "UsoCFDI": "G03" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 3499.99, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": 559.9984 } ], "Retenciones": [ { "Base": 3499.99, "Impuesto": "001", "TipoFactor": "Tasa", "TasaOCuota": 0.0125, "Importe": 43.7498 } ] }, "ClaveProdServ": "80101508", "NoIdentificacion": "84111506", "Cantidad": 1, "ClaveUnidad": "E48", "Unidad": "SERVICIO", "Descripcion": "SERVICIOS DE ASESORAMIENTO SOBRE INTELIGENCIA EMPRESARIAL", "ValorUnitario": 3499.99, "Importe": 3499.99, "ObjetoImp": "02" } ], "Impuestos": { "Retenciones": [ { "Impuesto": "001", "Importe": 43.75 } ], "Traslados": [ { "Base": 3499.99, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": 560.00 } ], "TotalImpuestosRetenidos": 43.75, "TotalImpuestosTrasladados": 560.00 } } ``` Nota De Débito ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "042", "Fecha": "2026-08-28T08:00:59", "FormaPago": "99", "SubTotal": 285.00, "Descuento": 0.00, "Moneda": "MXN", "Total": 285.00, "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "99039", "CfdiRelacionados": [ { "CfdiRelacionado": [ { "UUID": "61b2f6b4-f588-44d3-aec7-85cf146c33bd" } ], "TipoRelacion": "02" } ], "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "CACX7605101P8", "Nombre": "XOCHILT CASAS CHAVEZ", "DomicilioFiscalReceptor": "36257", "RegimenFiscalReceptor": 612, "UsoCFDI": "S01" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 285.00, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.000000, "Importe": 0.000000 } ] }, "ClaveProdServ": "70171600", "NoIdentificacion": "7506475100557", "Cantidad": 3.00, "ClaveUnidad": "ACT", "Unidad": "HUR", "Descripcion": "Vigilancia", "ValorUnitario": 95.00, "Importe": 285.00, "Descuento": 0.00, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 285.00, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.000000, "Importe": 0.00 } ], "TotalImpuestosTrasladados": 0.00 } } ``` CFDI Relacionados ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "043", "Fecha": "2026-08-28T08:00:59", "Sello": "", "NoCertificado": "", "Certificado": "", "MetodoPago": "PPD", "SubTotal": "1308.35", "Descuento": "0.00", "Moneda": "MXN", "Total": "1517.69", "TipoDeComprobante": "I", "FormaPago": "99", "Exportacion": "01", "LugarExpedicion": "44520", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "XIA190128J61", "Nombre": "XENON INDUSTRIAL ARTICLES", "DomicilioFiscalReceptor": "76343", "RegimenFiscalReceptor": "601", "UsoCFDI": "G03" }, "Conceptos": [ { "ClaveProdServ": "84111506", "NoIdentificacion": "1", "Cantidad": "1", "ClaveUnidad": "ACT", "Unidad": "ACT", "Descripcion": "84111506 DESCUENTOS Y BONIFICACIONES GAS NATURAL", "ValorUnitario": "1308.35", "Importe": "1308.35", "Descuento": "0.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "1308.350000", "Importe": "209.34", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] } } ], "Impuestos": { "TotalImpuestosTrasladados": "209.34", "Traslados": [ { "Base": "1308.35", "Importe": "209.34", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] }, "cfdiRelacionados": [ { "tipoRelacion": "01", "cfdiRelacionado": [ { "uuid": "6c76a910-2115-4a2c-bf15-e67c1505dd21" } ] }, { "tipoRelacion": "02", "cfdiRelacionado": [ { "uuid": "6c76a910-2115-4a2c-bf15-e67c1505bb22" } ] } ] } ``` Anticipo con remanente Valor del anticipo ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "044", "Fecha": "2026-08-28T08:00:59", "Sello": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "200", "Moneda": "MXN", "Total": "200.16", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "FormaPago": "01", "LugarExpedicion": "20000", "NoCertificado": "", "Certificado": "", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": "1", "ClaveUnidad": "ACT", "Unidad": "Pieza", "Descripcion": "Anticipo del bien o servicio", "ValorUnitario": "200.00", "Importe": "200.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] } } ], "Impuestos": { "TotalImpuestosTrasladados": "0.16", "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] } } ``` Remanente de la contraprestación ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "045", "Fecha": "2026-08-28T08:00:59", "Sello": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "400", "Moneda": "MXN", "Total": "200.16", "Descuento": "200.00", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "FormaPago": "01", "LugarExpedicion": "20000", "NoCertificado": "", "Certificado": "", "CfdiRelacionados": [ { "TipoRelacion": "07", "CfdiRelacionado": [ { "UUID": "0ce50bc3-1cb2-43b5-a87d-f3a766478881" } ] } ], "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": "1", "ClaveUnidad": "ACT", "Unidad": "Pieza", "Descripcion": "Valor total del servicio o producto - CFDI por remanente de un anticipo", "ValorUnitario": "400.00", "Descuento": "200.00", "Importe": "400.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] } } ], "Impuestos": { "TotalImpuestosTrasladados": "0.16", "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] } } ``` Anticipo con CFDI Egreso Valor del anticipo ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "046", "Fecha": "2026-08-28T08:00:59", "Sello": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "200", "Moneda": "MXN", "Total": "200.16", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "FormaPago": "01", "LugarExpedicion": "20000", "NoCertificado": "", "Certificado": "", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": "1", "ClaveUnidad": "ACT", "Unidad": "Pieza", "Descripcion": "Anticipo del bien o servicio", "ValorUnitario": "200.00", "Importe": "200.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] } } ], "Impuestos": { "TotalImpuestosTrasladados": "0.16", "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] } } ``` Valor total de la operación ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "047", "Fecha": "2026-08-28T08:00:59", "Sello": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "400", "Moneda": "MXN", "Total": "400.16", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "FormaPago": "01", "LugarExpedicion": "20000", "NoCertificado": "", "Certificado": "", "cfdiRelacionados": [ { "TipoRelacion": "07", "cfdiRelacionado": [ { "UUID": "202ec0fa-475a-404e-abb6-4c6d423fad30" } ] } ], "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCfdi": "G01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": "1", "ClaveUnidad": "ACT", "Unidad": "Pieza", "Descripcion": "Valor total de la operación", "ValorUnitario": "400.00", "Importe": "400.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] } } ], "Impuestos": { "TotalImpuestosTrasladados": "0.16", "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] } } ``` Egreso por el valor del anticipo ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "048", "Fecha": "2026-08-28T08:00:59", "Sello": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "200", "Moneda": "MXN", "Total": "200.16", "TipoDeComprobante": "E", "Exportacion": "01", "MetodoPago": "PUE", "FormaPago": "30", "LugarExpedicion": "20000", "NoCertificado": "", "Certificado": "", "CfdiRelacionados": [ { "TipoRelacion": "07", "CfdiRelacionado": [ { "UUID": "1e294e6e-5ff6-4b7a-afbe-0633789c9b25" } ] } ], "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": "1", "ClaveUnidad": "ACT", "Unidad": "Pieza", "Descripcion": "Aplicación de anticipo", "ValorUnitario": "200.00", "Importe": "200.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] } } ], "Impuestos": { "TotalImpuestosTrasladados": "0.16", "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] } } ``` Hidrocarburos, Petrolíferos y Servicios Ingreso ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "049", "Fecha": "2026-08-28T08:00:59", "Sello": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "2047.30", "Moneda": "MXN", "Total": "2047.46", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PPD", "FormaPago": "99", "LugarExpedicion": "20000", "NoCertificado": "", "Certificado": "", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "15111511", "Cantidad": "10.236", "NoIdentificacion": "LP/00751/EXP/ES/2016-105012365", "ClaveUnidad": "MTQ", "Unidad": "Metro cúbico", "Descripcion": "Gas natural licuado.", "ValorUnitario": "200.00", "Importe": "2047.30", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] } } ], "Impuestos": { "TotalImpuestosTrasladados": "0.16", "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] } } ``` Global ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "050", "Fecha": "2026-08-28T08:00:59", "Sello": "", "Certificado": "", "NoCertificado": "", "FormaPago": "99", "CondicionesDePago": "CondicionesDePago", "SubTotal": "1243.90", "Moneda": "MXN", "Descuento": "0", "Total": "1442.92", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "InformacionGlobal": { "Periodicidad": "01", "Meses": "08", "Año": "2024" }, "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "XAXX010101000", "Nombre": "PUBLICO EN GENERAL", "DomicilioFiscalReceptor": "20000", "RegimenFiscalReceptor": "616", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "15101505", "NoIdentificacion": "PL/00320/EXP/ES/2019-1", "Cantidad": "20", "ClaveUnidad": "LTR", "Descripcion": "Diésel automotriz (contenido mayor de azufre a 15 mg/kg)", "ValorUnitario": "24.95", "Importe": "499.00", "Descuento": "0", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "499.00", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "79.84" } ] }, "ComplementoConcepto": { "Any": [ { "hidrocarburospetroliferos:HidroYPetro": { "@xmlns:hidrocarburospetroliferos": "http://www.sat.gob.mx/hidrocarburospetroliferos", "@Version": "1.0", "@TipoPermiso": "PER03", "@NumeroPermiso": "PL/364/DIS/OM/2015", "@ClaveHYP": "15101505", "@SubProductoHYP": "SP18" } } ] } }, { "ClaveProdServ": "15101514", "NoIdentificacion": "PL/00320/EXP/ES/2019-1", "Descuento": "0", "Cantidad": "20", "ClaveUnidad": "LTR", "Descripcion": "Gasolina regular menor a 91 octanos", "ValorUnitario": "24.35", "Importe": "487.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "487.00", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "77.92" } ] }, "ComplementoConcepto": { "Any": [ { "hidrocarburospetroliferos:HidroYPetro": { "@xmlns:hidrocarburospetroliferos": "http://www.sat.gob.mx/hidrocarburospetroliferos", "@Version": "1.0", "@TipoPermiso": "PER03", "@NumeroPermiso": "PL/364/DIS/OM/2015", "@ClaveHYP": "15101514", "@SubProductoHYP": "SP16" } } ] } }, { "ClaveProdServ": "15101515", "NoIdentificacion": "PL/00320/EXP/ES/2019-1", "Descuento": "0", "Cantidad": "10", "ClaveUnidad": "LTR", "Descripcion": "Gasolina premium mayor o igual a 91 octanos", "ValorUnitario": "25.79", "Importe": "257.9", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "257.9", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "41.26" } ] }, "ComplementoConcepto": { "Any": [ { "hidrocarburospetroliferos:HidroYPetro": { "@xmlns:hidrocarburospetroliferos": "http://www.sat.gob.mx/hidrocarburospetroliferos", "@Version": "1.0", "@TipoPermiso": "PER03", "@NumeroPermiso": "PL/364/DIS/OM/2015", "@ClaveHYP": "15101515", "@SubProductoHYP": "SP17" } } ] } } ], "Impuestos": { "TotalImpuestosTrasladados": "199.02", "Traslados": [ { "Base": "1243.9", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "199.02" } ] } } ``` Objeto de Impuesto 06 ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "051", "Fecha": "2026-08-28T08:00:59", "FormaPago": "99", "CondicionesDePago": "CondicionesDePago", "SubTotal": "200", "Moneda": "MXN", "Total": "199.90", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PPD", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "200.00", "ObjetoImp": "06", "Impuestos": { "Retenciones": [ { "Base": "1", "Impuesto": "001", "TipoFactor": "Tasa", "TasaOCuota": "0.106666", "Importe": "0.10" } ] } } ], "Impuestos": { "TotalImpuestosRetenidos": "0.10", "Retenciones": [ { "Impuesto": "001", "Importe": "0.10" } ] } } ``` Objeto de Impuesto 07 ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "052", "Fecha": "2026-08-28T08:00:59", "FormaPago": "99", "CondicionesDePago": "CondicionesDePago", "SubTotal": "200", "Moneda": "MXN", "Total": "199.96", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PPD", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "200.00", "ObjetoImp": "07", "Impuestos": { "Traslados": [ { "Base": "1", "Impuesto": "003", "TipoFactor": "Tasa", "TasaOCuota": "0.060000", "Importe": "0.06" } ], "Retenciones": [ { "Base": "1", "Impuesto": "001", "TipoFactor": "Tasa", "TasaOCuota": "0.100000", "Importe": "0.10" } ] } } ], "Impuestos": { "TotalImpuestosRetenidos": "0.10", "TotalImpuestosTrasladados": "0.06", "Retenciones": [ { "Impuesto": "001", "Importe": "0.10" } ], "Traslados": [ { "Base": "1", "Impuesto": "003", "TipoFactor": "Tasa", "TasaOCuota": "0.060000", "Importe": "0.06" } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "053", "Fecha": "2026-08-28T08:00:59", "FormaPago": "99", "CondicionesDePago": "CondicionesDePago", "SubTotal": "200", "Moneda": "MXN", "Total": "200", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PPD", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "200.00", "ObjetoImp": "07", "Impuestos": { "Traslados": [ { "Base": "1", "Impuesto": "003", "TipoFactor": "Tasa", "TasaOCuota": "0.060000", "Importe": "0.06" } ], "Retenciones": [ { "Base": "1", "Impuesto": "003", "TipoFactor": "Tasa", "TasaOCuota": "0.060000", "Importe": "0.06" } ] } } ], "Impuestos": { "TotalImpuestosRetenidos": "0.06", "TotalImpuestosTrasladados": "0.06", "Retenciones": [ { "Impuesto": "003", "Importe": "0.06" } ], "Traslados": [ { "Base": "1", "Impuesto": "003", "TipoFactor": "Tasa", "TasaOCuota": "0.060000", "Importe": "0.06" } ] } } ``` Objeto de Impuesto 08 ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "054", "Fecha": "2026-08-28T08:00:59", "FormaPago": "99", "CondicionesDePago": "CondicionesDePago", "SubTotal": "200", "Moneda": "MXN", "Total": "199.90", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PPD", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "200.00", "ObjetoImp": "08", "Impuestos": { "Retenciones": [ { "Base": "1", "Impuesto": "001", "TipoFactor": "Tasa", "TasaOCuota": "0.106666", "Importe": "0.10" } ] } } ], "Impuestos": { "TotalImpuestosRetenidos": "0.10", "Retenciones": [ { "Impuesto": "001", "Importe": "0.10" } ] } } ``` ##### **Traslado** Traslado ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "055", "Fecha": "2026-08-28T08:00:59", "Sello": "", "NoCertificado": "", "Certificado": "", "SubTotal": "0", "Moneda": "MXN", "Total": "0.00", "TipoDeComprobante": "T", "Exportacion": "01", "LugarExpedicion": "45610", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "NoIdentificacion": "None", "Cantidad": "1.0", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "10.00", "Importe": "10.00", "ObjetoImp": "01" } ] } ``` ##### **Egreso** Nota De Crédito ``` { "Version": "4.0", "FormaPago": "01", "Serie": "SW N8N Examples", "Folio": "056", "Fecha": "2026-08-28T08:00:59", "Sello": "", "NoCertificado": "", "Certificado": "", "CondicionesDePago": null, "MetodoPago": "PUE", "SubTotal": "10.00", "Descuento": "0.00", "Moneda": "MXN", "Total": "11.00", "TipoDeComprobante": "E", "Exportacion": "01", "LugarExpedicion": "45610", "CfdiRelacionados": [ { "TipoRelacion": "01", "CfdiRelacionado": [ { "UUID": "1fac4464-1111-0000-1111-cd37179db12e" } ] } ], "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "NoIdentificacion": null, "Cantidad": "1.0", "ClaveUnidad": "ACT", "Unidad": null, "Descripcion": "NC por devolución", "ValorUnitario": "10.00", "Importe": "10.00", "Descuento": "0.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "1", "Importe": "1", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] } } ], "Impuestos": { "TotalImpuestosTrasladados": "1.00", "Traslados": [ { "Base": "1.00", "Importe": "1.00", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] } } ``` Devolución ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "057", "Fecha": "2026-08-28T08:00:59", "FormaPago": "99", "SubTotal": 4716.00, "Descuento": 0.00, "Moneda": "MXN", "Total": 4716.00, "TipoDeComprobante": "E", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "99039", "CfdiRelacionados": [ { "CfdiRelacionado": [ { "UUID": "61b2f6b4-f588-44d3-aec7-85cf146c33bd" } ], "TipoRelacion": "03" } ], "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "CACX7605101P8", "Nombre": "XOCHILT CASAS CHAVEZ", "DomicilioFiscalReceptor": "36257", "RegimenFiscalReceptor": 612, "UsoCFDI": "G02" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 4716.000000, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.000000, "Importe": 0.000000 } ] }, "ClaveProdServ": "84111506", "NoIdentificacion": "7506475100557", "Cantidad": 3.000, "ClaveUnidad": "ACT", "Unidad": "CAJA", "Descripcion": "Leche", "ValorUnitario": 1572.00, "Importe": 4716.00, "Descuento": 0.00, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 4716.00, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.000000, "Importe": 0.00 } ], "TotalImpuestosTrasladados": 0.00 } } ``` Importe menor al CFDI de Ingreso ``` { "NoCertificado": "", "Certificado": "", "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "058", "Fecha": "2026-08-28T08:00:59", "Sello": "", "FormaPago": "01", "CondicionesDePago": "CondicionesDePago", "MetodoPago": "PUE", "SubTotal": "35.00", "Moneda": "MXN", "Total": "35.00", "TipoDeComprobante": "E", "Exportacion": "01", "LugarExpedicion": "20000", "CfdiRelacionados": [ { "TipoRelacion": "01", "CfdiRelacionado": [ { "UUID": "1fac4464-1111-0000-1111-cd37179db12e" }, { "UUID": "628b6113-d831-455a-907e-097821c2f48c" } ] } ], "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G02" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": "1.0", "ClaveUnidad": "ACT", "Descripcion": "10% del saldo de todos los CFDI relacionados", "ValorUnitario": "35.00", "Importe": "35.00", "ObjetoImp": "01" } ] } ``` --- # Comercio Exterior 2.0 Fuente: https://developers.sw.com.mx/knowledge-base/comercio-exterior-2-0/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento para identificar a los importadores y exportadores así como las mercancías que se comercializan. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Receptor Nacional ``` ``` Receptor Extranjero ``` ``` Ingreso diferentes monedas ``` ``` Ingreso con Carta Porte 3.1 ``` ``` Traslado ``` ``` ``` ``` ``` ``` Traslado Con Carta Porte 3.1 ``` ``` Kit/Parte ``` ``` Unidades de medida no equivalentes ``` ``` Hidrocarburos y petrolíferos ``` ``` ### Ejemplos JSON Receptor Nacional ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "200", "Fecha": "2026-08-28T08:01:03", "CondicionesDePago": "CondicionesDePago", "SubTotal": "400", "Moneda": "USD", "TipoCambio": "16.9660", "Total": "399.95", "TipoDeComprobante": "I", "Exportacion": "02", "MetodoPago": "PPD", "FormaPago": "99", "LugarExpedicion": "20000", "NoCertificado": "", "Certificado": "", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "Cantidad": "2", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "400.00", "ObjetoImp": "02", "NoIdentificacion": "131494-1055", "Impuestos": { "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ], "Retenciones": [ { "Base": "1", "Impuesto": "001", "TipoFactor": "Tasa", "TasaOCuota": "0.100000", "Importe": "0.10" }, { "Base": "1", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.106666", "Importe": "0.11" } ] } } ], "Impuestos": { "TotalImpuestosRetenidos": "0.21", "TotalImpuestosTrasladados": "0.16", "Retenciones": [ { "Impuesto": "001", "Importe": "0.10" }, { "Impuesto": "002", "Importe": "0.11" } ], "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] }, "Complemento": { "Any": [ { "cce20:ComercioExterior": { "CertificadoOrigen": "0", "ClaveDePedimento": "A1", "Incoterm": "FOB", "TipoCambioUSD": "16.9660", "TotalUSD": "400.00", "Version": "2.0", "Emisor": { "Domicilio": { "Calle": "CALLE DEL PAPEL", "CodigoPostal": "76199", "Colonia": "0214", "Estado": "QUE", "Localidad": "01", "Municipio": "014", "Pais": "MEX" } }, "Receptor": { "Domicilio": { "Calle": "CALLE DEL PAPEL", "CodigoPostal": "76199", "Colonia": "0214", "Estado": "QUE", "Localidad": "01", "Municipio": "014", "Pais": "MEX" } }, "Mercancias": [ { "CantidadAduana": "117.64", "FraccionArancelaria": "2402200100", "NoIdentificacion": "131494-1055", "UnidadAduana": "01", "ValorUnitarioAduana": "3.40", "ValorDolares": "400.00" } ] } } ] } } ``` Receptor Extranjero ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "201", "Fecha": "2026-08-28T08:01:03", "CondicionesDePago": "CondicionesDePago", "SubTotal": "400", "Moneda": "USD", "TipoCambio": "16.9660", "Total": "400.06", "TipoDeComprobante": "I", "Exportacion": "02", "MetodoPago": "PPD", "FormaPago": "99", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "XEXX010101000", "Nombre": "U.S. & SW", "DomicilioFiscalReceptor": "20000", "RegimenFiscalReceptor": "616", "UsoCFDI": "CP01", "NumRegIdTrib": "123456789", "ResidenciaFiscal": "USA" }, "Conceptos": [ { "ClaveProdServ": "50211503", "Cantidad": "2", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "400.00", "ObjetoImp": "02", "NoIdentificacion": "131494-1055", "Impuestos": { "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ], "Retenciones": [ { "Base": "1", "Impuesto": "001", "TipoFactor": "Tasa", "TasaOCuota": "0.100000", "Importe": "0.10" } ] } } ], "Impuestos": { "TotalImpuestosRetenidos": "0.10", "TotalImpuestosTrasladados": "0.16", "Retenciones": [ { "Impuesto": "001", "Importe": "0.10" } ], "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] }, "Complemento": { "Any": [ { "CCE20:ComercioExterior": { "CertificadoOrigen": "0", "ClaveDePedimento": "A1", "Incoterm": "FOB", "TipoCambioUSD": "16.9660", "TotalUSD": "400.00", "Version": "2.0", "Emisor": { "Domicilio": { "Calle": "CALLE DEL PAPEL", "CodigoPostal": "76199", "Colonia": "0214", "Estado": "QUE", "Localidad": "01", "Municipio": "014", "Pais": "MEX" } }, "Receptor": { "NumRegIdTrib": "123456789", "Domicilio": { "Calle": "ST. A", "CodigoPostal": "00000", "Estado": "TX", "Pais": "USA" } }, "Mercancias": [ { "CantidadAduana": "117.64", "FraccionArancelaria": "2402200100", "NoIdentificacion": "131494-1055", "UnidadAduana": "01", "ValorUnitarioAduana": "3.40", "ValorDolares": "400.00" } ] } } ] } } ``` Ingreso diferentes monedas ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "202", "Fecha": "2026-08-28T08:01:03", "CondicionesDePago": "CondicionesDePago", "SubTotal": "400", "Moneda": "MXN", "Total": "399.95", "TipoDeComprobante": "I", "Exportacion": "02", "MetodoPago": "PPD", "FormaPago": "99", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "XEXX010101000", "Nombre": "U.S. & SW", "DomicilioFiscalReceptor": "20000", "RegimenFiscalReceptor": "616", "UsoCFDI": "CP01", "NumRegIdTrib": "123456789", "ResidenciaFiscal": "USA" }, "Conceptos": [ { "ClaveProdServ": "50211503", "Cantidad": "2", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "400.00", "ObjetoImp": "02", "NoIdentificacion": "131494-1055", "Impuestos": { "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ], "Retenciones": [ { "Base": "1", "Impuesto": "001", "TipoFactor": "Tasa", "TasaOCuota": "0.100000", "Importe": "0.10" }, { "Base": "1", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.106666", "Importe": "0.11" } ] } } ], "Impuestos": { "TotalImpuestosRetenidos": "0.21", "TotalImpuestosTrasladados": "0.16", "Retenciones": [ { "Impuesto": "001", "Importe": "0.10" }, { "Impuesto": "002", "Importe": "0.11" } ], "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] }, "Complemento": { "Any": [ { "CCE20:ComercioExterior": { "CertificadoOrigen": "0", "ClaveDePedimento": "A1", "Incoterm": "FOB", "TipoCambioUSD": "16.9660", "TotalUSD": "23.47", "Version": "2.0", "Emisor": { "Domicilio": { "Calle": "CALLE DEL PAPEL", "CodigoPostal": "76199", "Colonia": "0214", "Estado": "QUE", "Localidad": "01", "Municipio": "014", "Pais": "MEX" } }, "Receptor": { "NumRegIdTrib": "123456789", "Domicilio": { "Calle": "ST. A", "CodigoPostal": "00000", "Estado": "TX", "Pais": "USA" } }, "Mercancias": [ { "CantidadAduana": "2.00", "FraccionArancelaria": "2402200100", "NoIdentificacion": "131494-1055", "UnidadAduana": "01", "ValorUnitarioAduana": "11.74", "ValorDolares": "23.47" } ] } } ] } } ``` Ingreso con Carta Porte 3.1 ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "203", "Fecha": "2026-08-28T08:01:03", "Sello": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "2520.00", "Moneda": "USD", "TipoCambio": "16.9660", "Total": "2233.20", "TipoDeComprobante": "I", "Exportacion": "02", "MetodoPago": "PUE", "FormaPago": "99", "LugarExpedicion": "77098", "NoCertificado": "", "Certificado": "", "Emisor": { "Nombre": "ESCUELA KEMPER URGATE", "Rfc": "EKU9003173C9", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "XEXX010101000", "Nombre": "Persona Fisica Extranjera", "NumRegIdTrib": "123456789", "ResidenciaFiscal": "USA", "UsoCFDI": "S01", "DomicilioFiscalReceptor": "77098", "RegimenFiscalReceptor": "616" }, "Conceptos": [ { "ClaveUnidad": "HUR", "Unidad": "Servicio", "NoIdentificacion": "SERV02", "Cantidad": "1.000000", "Importe": "2300.000000", "ValorUnitario": "2300.000000", "Descripcion": "FLETE", "ClaveProdServ": "78101800", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "TasaOCuota": "0.160000", "Base": "2300.000000", "Importe": "368.000000", "Impuesto": "002", "TipoFactor": "Tasa" } ], "Retenciones": [ { "TasaOCuota": "0.300000", "Base": "2300.000000", "Importe": "690.000000", "Impuesto": "003", "TipoFactor": "Tasa" } ] } }, { "ClaveUnidad": "H87", "Unidad": "Pza", "NoIdentificacion": "A0001", "Cantidad": "1.000000", "Importe": "120.000000", "ValorUnitario": "120.000000", "Descripcion": "Gomitas", "ClaveProdServ": "50161509", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "TasaOCuota": "0.160000", "Base": "120.000000", "Importe": "19.200000", "Impuesto": "002", "TipoFactor": "Tasa" } ] } }, { "ClaveUnidad": "H87", "Unidad": "Pza", "NoIdentificacion": "A0002", "Cantidad": "1.000000", "Importe": "100.000000", "ValorUnitario": "100.000000", "Descripcion": "Pulparindo", "ClaveProdServ": "50307037", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "TasaOCuota": "0.160000", "Base": "100.000000", "Importe": "16.000000", "Impuesto": "002", "TipoFactor": "Tasa" } ] } } ], "Impuestos": { "TotalImpuestosRetenidos": "690.00", "TotalImpuestosTrasladados": "403.20", "Retenciones": [ { "Impuesto": "003", "Importe": "690.00" } ], "Traslados": [ { "Impuesto": "002", "Base": "2520.00", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "403.20" } ] }, "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "Sí", "EntradaSalidaMerc": "Salida", "ViaEntradaSalida": "01", "TotalDistRec": "120.00", "PaisOrigenDestino": "ALB", "RegimenesAduaneros": [ { "RegimenAduanero": "EXD" } ], "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR000001", "RFCRemitenteDestinatario": "XAXX010101000", "NombreRemitenteDestinatario": "Origen Nacional", "FechaHoraSalidaLlegada": "2023-06-06T17:04:16", "Domicilio": { "Calle": "xola", "NumeroExterior": "531", "Colonia": "0496", "Localidad": "03", "Municipio": "014", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "03100" } }, { "DistanciaRecorrida": "120.00", "TipoUbicacion": "Destino", "IDUbicacion": "DE000001", "RFCRemitenteDestinatario": "XAXX010101000", "NombreRemitenteDestinatario": "Destino Nacional", "FechaHoraSalidaLlegada": "2023-06-08T00:00:00", "Domicilio": { "Calle": "Av Coyoacan", "NumeroExterior": "120", "Colonia": "2624", "Localidad": "03", "Municipio": "014", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "03100" } } ], "Mercancias": { "NumTotalMercancias": "2", "PesoBrutoTotal": "20.000", "UnidadPeso": "KGM", "Mercancia": [ { "TipoMateria": "04", "Cantidad": "1", "ClaveUnidad": "XPK", "PesoEnKg": "10.000", "Descripcion": "Gomitas", "BienesTransp": "50433238", "ValorMercancia": "1200.00", "Moneda": "USD", "FraccionArancelaria": "2005800100" }, { "TipoMateria": "04", "Cantidad": "1", "ClaveUnidad": "XPK", "PesoEnKg": "10.000", "Descripcion": "Pulparindo", "BienesTransp": "50433238", "ValorMercancia": "1000.00", "Moneda": "USD", "FraccionArancelaria": "2005800100" } ], "Autotransporte": { "PermSCT": "TPAF02", "NumPermisoSCT": "123456", "IdentificacionVehicular": { "ConfigVehicular": "C2", "PlacaVM": "555TTT", "AnioModeloVM": "2023", "PesoBrutoVehicular": "1" }, "Seguros": { "AseguraRespCivil": "ODISEA", "PolizaRespCivil": "3456YUHNB234RT" } } }, "FiguraTransporte": [ { "TipoFigura": "01", "RFCFigura": "KAHO641101B39", "NumLicencia": "D0908240", "NombreFigura": "OSCAR KALA HAAK" } ] } }, { "cce20:ComercioExterior": { "CertificadoOrigen": "0", "ClaveDePedimento": "A1", "Incoterm": "CIF", "TipoCambioUSD": "16.9660", "TotalUSD": "220.00", "Version": "2.0", "Emisor": { "Domicilio": { "Calle": "Av Siempre viva", "NumeroExterior": "123", "Colonia": "0001", "Localidad": "06", "Municipio": "025", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "26015" } }, "Receptor": { "NumRegIdTrib": "123456789", "Domicilio": { "Calle": "Clinton ST", "NumeroExterior": "10002", "Estado": "NY", "Pais": "USA", "CodigoPostal": "10002-0000" } }, "Mercancias": [ { "NoIdentificacion": "A0001", "FraccionArancelaria": "4011101099", "CantidadAduana": "1.000", "UnidadAduana": "06", "ValorUnitarioAduana": "120.00", "ValorDolares": "120.00" }, { "NoIdentificacion": "A0002", "FraccionArancelaria": "8407210299", "CantidadAduana": "1.000", "UnidadAduana": "06", "ValorUnitarioAduana": "100.00", "ValorDolares": "100.00" } ] } } ] } } ``` Traslado ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "204", "Fecha": "2026-08-28T08:01:03", "SubTotal": "0.00", "Moneda": "USD", "TipoCambio": "16.9660", "Total": "0.00", "TipoDeComprobante": "T", "Exportacion": "02", "LugarExpedicion": "65000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "Cantidad": "2", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "400.00", "ObjetoImp": "01", "NoIdentificacion": "131494-1055" } ], "Complemento": { "Any": [ { "CCE20:ComercioExterior": { "CertificadoOrigen": "0", "ClaveDePedimento": "A1", "Incoterm": "FOB", "TipoCambioUSD": "16.9660", "TotalUSD": "400.00", "Version": "2.0", "Emisor": { "Domicilio": { "Calle": "CALLE DEL PAPEL", "CodigoPostal": "76199", "Colonia": "0214", "Estado": "QUE", "Localidad": "01", "Municipio": "014", "Pais": "MEX" } }, "Receptor": { "Domicilio": { "Calle": "ST. A", "CodigoPostal": "00000", "Estado": "TX", "Pais": "USA" } }, "Mercancias": [ { "CantidadAduana": "117.64", "FraccionArancelaria": "2402200100", "NoIdentificacion": "131494-1055", "UnidadAduana": "01", "ValorUnitarioAduana": "3.40", "ValorDolares": "400.00" } ] } } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "205", "Fecha": "2026-08-28T08:01:03", "SubTotal": "0", "Moneda": "USD", "TipoCambio": "16.9660", "Total": "0.00", "TipoDeComprobante": "T", "Exportacion": "02", "LugarExpedicion": "03330", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "NoIdentificacion": "131494-1055", "Cantidad": "1.0", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Descripción", "ValorUnitario": "0.00", "Importe": "0.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "CCE20:ComercioExterior": { "CertificadoOrigen": "0", "MotivoTraslado": "02", "ClaveDePedimento": "A1", "Incoterm": "FCA", "TipoCambioUSD": "16.9660", "TotalUSD": "22.64", "Version": "2.0", "Emisor": { "Domicilio": { "Calle": "CALLE DEL PAPEL", "Colonia": "0214", "Localidad": "01", "Municipio": "014", "Estado": "QUE", "Pais": "MEX", "CodigoPostal": "76199" } }, "Receptor": { "Domicilio": { "Calle": "SW Street.", "NumeroExterior": "12345", "Localidad": "Oregon", "Estado": "OR", "Pais": "USA", "CodigoPostal": "12345" } }, "Destinatario": [ { "NumRegIdTrib": "123456789", "Nombre": "EKU9003173C9", "Domicilio": [ { "Calle": "SW Street.", "NumeroExterior": "12345", "Localidad": "Oregon", "Estado": "OR", "Pais": "USA", "CodigoPostal": "12345" } ] } ], "Mercancias": [ { "NoIdentificacion": "131494-1055", "FraccionArancelaria": "0101210100", "CantidadAduana": "1", "UnidadAduana": "07", "ValorUnitarioAduana": "22.64", "ValorDolares": "22.64" } ] } } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "206", "Fecha": "2026-08-28T08:01:03", "SubTotal": "0", "Moneda": "USD", "TipoCambio": "16.9660", "Total": "0.00", "TipoDeComprobante": "T", "Exportacion": "02", "LugarExpedicion": "03330", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "NoIdentificacion": "131494-1055", "Cantidad": "1.0", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Descripción", "ValorUnitario": "0.00", "Importe": "0.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "CCE20:ComercioExterior": { "CertificadoOrigen": "0", "MotivoTraslado": "05", "ClaveDePedimento": "A1", "Incoterm": "FCA", "TipoCambioUSD": "16.9660", "TotalUSD": "22.64", "Version": "2.0", "Emisor": { "Domicilio": { "Calle": "CALLE DEL PAPEL", "Colonia": "0214", "Localidad": "01", "Municipio": "014", "Estado": "QUE", "Pais": "MEX", "CodigoPostal": "76199" } }, "Propietario": [ { "NumRegIdTrib": "123456789", "ResidenciaFiscal": "USA" } ], "Receptor": { "Domicilio": { "Calle": "SW Street.", "NumeroExterior": "12345", "Localidad": "Oregon", "Estado": "OR", "Pais": "USA", "CodigoPostal": "12345" } }, "Mercancias": [ { "NoIdentificacion": "131494-1055", "FraccionArancelaria": "0101210100", "CantidadAduana": "1", "UnidadAduana": "07", "ValorUnitarioAduana": "22.64", "ValorDolares": "22.64" } ] } } ] } } ``` Traslado Con Carta Porte 3.1 ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "207", "Fecha": "2026-08-28T08:01:03", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "T", "Exportacion": "02", "LugarExpedicion": "26015", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "78101800", "NoIdentificacion": "TR01", "Cantidad": "1.0", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "TRANSPORTE DE CARGA", "ValorUnitario": "0.00", "Importe": "0.00", "ObjetoImp": "01" }, { "ClaveProdServ": "32101622", "NoIdentificacion": "UT421511", "Cantidad": "100.00", "ClaveUnidad": "XBX", "Descripcion": "MEMORIA FLASH", "ValorUnitario": "0.00", "Importe": "0.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "CCE20:ComercioExterior": { "Version": "2.0", "ClaveDePedimento": "A1", "CertificadoOrigen": "0", "Incoterm": "FOB", "TipoCambioUSD": "16.9660", "TotalUSD": "0.00", "Emisor": { "Domicilio": { "Calle": "CALLE DEL PAPEL", "Colonia": "0214", "Localidad": "01", "Municipio": "014", "Estado": "QUE", "Pais": "MEX", "CodigoPostal": "76199" } }, "Receptor": { "Domicilio": { "Calle": "ST. A", "Estado": "TX", "Pais": "USA", "CodigoPostal": "00000" } }, "Mercancias": [ { "NoIdentificacion": "UT421511", "FraccionArancelaria": "2402200100", "CantidadAduana": "100.00", "UnidadAduana": "01", "ValorUnitarioAduana": "1.00", "ValorDolares": "0.00" } ] } }, { "cartaporte31:CartaPorte": { "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "Sí", "EntradaSalidaMerc": "Salida", "ViaEntradaSalida": "01", "TotalDistRec": "120.00", "PaisOrigenDestino": "ALB", "RegimenesAduaneros": [ { "RegimenAduanero": "EXD" } ], "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR000001", "RFCRemitenteDestinatario": "XAXX010101000", "NombreRemitenteDestinatario": "Origen Nacional", "FechaHoraSalidaLlegada": "2023-06-06T17:04:16", "Domicilio": { "Calle": "xola", "NumeroExterior": "531", "Colonia": "0496", "Localidad": "03", "Municipio": "014", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "03100" } }, { "DistanciaRecorrida": "120.00", "TipoUbicacion": "Destino", "IDUbicacion": "DE000001", "RFCRemitenteDestinatario": "XAXX010101000", "NombreRemitenteDestinatario": "Destino Nacional", "FechaHoraSalidaLlegada": "2023-06-08T00:00:00", "Domicilio": { "Calle": "Av Coyoacan", "NumeroExterior": "120", "Colonia": "2624", "Localidad": "03", "Municipio": "014", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "03100" } } ], "Mercancias": { "NumTotalMercancias": "2", "PesoBrutoTotal": "20.000", "UnidadPeso": "KGM", "Mercancia": [ { "TipoMateria": "04", "Cantidad": "1", "ClaveUnidad": "XPK", "PesoEnKg": "10.000", "Descripcion": "Gomitas", "BienesTransp": "50433238", "ValorMercancia": "1200.00", "Moneda": "USD", "FraccionArancelaria": "2005800100" }, { "TipoMateria": "04", "Cantidad": "1", "ClaveUnidad": "XPK", "PesoEnKg": "10.000", "Descripcion": "Pulparindo", "BienesTransp": "50433238", "ValorMercancia": "1000.00", "Moneda": "USD", "FraccionArancelaria": "2005800100" } ], "Autotransporte": { "PermSCT": "TPAF02", "NumPermisoSCT": "123456", "IdentificacionVehicular": { "ConfigVehicular": "C2", "PlacaVM": "555TTT", "AnioModeloVM": "2023", "PesoBrutoVehicular": "1" }, "Seguros": { "AseguraRespCivil": "ODISEA", "PolizaRespCivil": "3456YUHNB234RT" } } }, "FiguraTransporte": [ { "TipoFigura": "01", "RFCFigura": "KAHO641101B39", "NumLicencia": "D0908240", "NombreFigura": "OSCAR KALA HAAK" } ] } } ] } } ``` Kit/Parte ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "208", "Fecha": "2026-08-28T08:01:03", "Sello": "", "FormaPago": "01", "CondicionesDePago": "CondicionesDePago", "SubTotal": "400", "Moneda": "MXN", "TipoCambio": "1", "Total": "400", "TipoDeComprobante": "I", "Exportacion": "02", "MetodoPago": "PUE", "LugarExpedicion": "20000", "NoCertificado": "", "Certificado": "", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "XEXX010101000", "Nombre": "U.S. & SW", "DomicilioFiscalReceptor": "20000", "RegimenFiscalReceptor": "616", "UsoCFDI": "CP01", "NumRegIdTrib": "123456789", "ResidenciaFiscal": "USA" }, "Conceptos": [ { "Parte": [ { "ClaveProdServ": "51241200", "NoIdentificacion": "IM050", "Cantidad": 1.0, "Unidad": "PIEZA", "Descripcion": "25311FM00239 (LUARIL ETER SULFATO DE SODIO VEHICULO CBP 300ML), ACEITE AJONJOLI 150CC, ACEITE DE ALMENDRAS DULCES 150CC, TALCO 10GR, OXIDO DE ZINC 10GR.", "ValorUnitario": 736.89, "Importe": 736.89 } ], "ClaveProdServ": "51241200", "NoIdentificacion": "131494-1055", "Cantidad": 1.0, "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "FORMULA MAGISTRAL", "ValorUnitario": 200.00, "Importe": 200.00, "ObjetoImp": "01" }, { "Parte": [ { "ClaveProdServ": "51241200", "NoIdentificacion": "IM020", "Cantidad": 1.0, "Unidad": "PIEZA", "Descripcion": "25311FM00114 CREMA FUNGICIDA 35ML (ACIDO UNDECILENICO, ARBOL DEL TE VEHICULO EMOLIENTE)", "ValorUnitario": 172.50, "Importe": 172.50 } ], "ClaveProdServ": "51241200", "NoIdentificacion": "131494-1055", "Cantidad": 1.0, "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "FORMULA MAGISTRAL", "ValorUnitario": 200.00, "Importe": 200.00, "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "CCE20:ComercioExterior": { "CertificadoOrigen": "0", "ClaveDePedimento": "A1", "Incoterm": "FOB", "TipoCambioUSD": "16.9660", "TotalUSD": "20.00", "Version": "2.0", "Emisor": { "Domicilio": { "Calle": "CALLE DEL PAPEL", "CodigoPostal": "76199", "Colonia": "0214", "Estado": "QUE", "Localidad": "01", "Municipio": "014", "Pais": "MEX" } }, "Receptor": { "NumRegIdTrib": "123456789", "Domicilio": { "Calle": "ST. A", "CodigoPostal": "00000", "Estado": "TX", "Pais": "USA" } }, "Mercancias": [ { "CantidadAduana": "2", "FraccionArancelaria": "2402200100", "NoIdentificacion": "131494-1055", "UnidadAduana": "01", "ValorDolares": "20.00", "ValorUnitarioAduana": "10.00" } ] } } ] } } ``` Unidades de medida no equivalentes ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "209", "Fecha": "2026-08-28T08:01:03", "Sello": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "100", "Moneda": "USD", "TipoCambio": "16.9660", "Total": "99.95", "TipoDeComprobante": "I", "Exportacion": "02", "MetodoPago": "PPD", "FormaPago": "99", "LugarExpedicion": "20000", "NoCertificado": "", "Certificado": "", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "XEXX010101000", "Nombre": "U.S. & SW", "DomicilioFiscalReceptor": "20000", "RegimenFiscalReceptor": "616", "UsoCFDI": "CP01", "NumRegIdTrib": "123456789", "ResidenciaFiscal": "USA" }, "Conceptos": [ { "ClaveProdServ": "50201708", "Cantidad": "1.000", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Bebida", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "02", "NoIdentificacion": "131494-1055", "Impuestos": { "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ], "Retenciones": [ { "Base": "1", "Impuesto": "001", "TipoFactor": "Tasa", "TasaOCuota": "0.100000", "Importe": "0.10" }, { "Base": "1", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.106666", "Importe": "0.11" } ] } } ], "Impuestos": { "TotalImpuestosRetenidos": "0.21", "TotalImpuestosTrasladados": "0.16", "Retenciones": [ { "Impuesto": "001", "Importe": "0.10" }, { "Impuesto": "002", "Importe": "0.11" } ], "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] }, "Complemento": { "Any": [ { "CCE20:ComercioExterior": { "CertificadoOrigen": "0", "ClaveDePedimento": "A1", "Incoterm": "FOB", "TipoCambioUSD": "16.9660", "TotalUSD": "100.00", "Version": "2.0", "Emisor": { "Domicilio": { "Calle": "CALLE DEL PAPEL", "CodigoPostal": "76199", "Colonia": "0214", "Estado": "QUE", "Localidad": "01", "Municipio": "014", "Pais": "MEX" } }, "Receptor": { "NumRegIdTrib": "123456789", "Domicilio": { "Calle": "ST. A", "CodigoPostal": "00000", "Estado": "TX", "Pais": "USA" } }, "Mercancias": [ { "CantidadAduana": "0.500", "FraccionArancelaria": "2009310201", "NoIdentificacion": "131494-1055", "UnidadAduana": "08", "ValorDolares": "100.00", "ValorUnitarioAduana": "200.00" } ] } } ] } } ``` Hidrocarburos y petrolíferos ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "210", "Fecha": "2026-08-28T08:01:03", "FormaPago": "99", "NoCertificado": "", "Certificado": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "400", "Moneda": "USD", "TipoCambio": "16.9660", "Total": "399.95", "TipoDeComprobante": "I", "Exportacion": "02", "MetodoPago": "PPD", "LugarExpedicion": "20000", "Sello": "", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "15101514", "NoIdentificacion": "131494-1055", "Cantidad": "2", "ClaveUnidad": "LTR", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "400.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "1", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "0.16" } ], "Retenciones": [ { "Base": "1", "Impuesto": "001", "TipoFactor": "Tasa", "TasaOCuota": "0.100000", "Importe": "0.10" }, { "Base": "1", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.106666", "Importe": "0.11" } ] }, "ComplementoConcepto": { "Any": [ { "hidrocarburospetroliferos:HidroYPetro": { "@xmlns:hidrocarburospetroliferos": "http://www.sat.gob.mx/hidrocarburospetroliferos", "@Version": "1.0", "@TipoPermiso": "PER03", "@NumeroPermiso": "PL/364/DIS/OM/2015", "@ClaveHYP": "15101514", "@SubProductoHYP": "SP16" } } ] } } ], "Impuestos": { "TotalImpuestosRetenidos": "0.21", "TotalImpuestosTrasladados": "0.16", "Retenciones": [ { "Impuesto": "001", "Importe": "0.10" }, { "Impuesto": "002", "Importe": "0.11" } ], "Traslados": [ { "Base": "1", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "0.16" } ] }, "Complemento": { "Any": [ { "cce20:ComercioExterior": { "Version": "2.0", "ClaveDePedimento": "A1", "CertificadoOrigen": "0", "Incoterm": "FOB", "TipoCambioUSD": "16.9660", "TotalUSD": "400.00", "Emisor": { "Domicilio": { "Calle": "CALLE DEL PAPEL", "Colonia": "0214", "Localidad": "01", "Municipio": "014", "Estado": "QUE", "Pais": "MEX", "CodigoPostal": "76199" } }, "Receptor": { "Domicilio": { "Calle": "CALLE DEL PAPEL", "Colonia": "0214", "Localidad": "01", "Municipio": "014", "Estado": "QUE", "Pais": "MEX", "CodigoPostal": "76199" } }, "Mercancias": [ { "NoIdentificacion": "131494-1055", "FraccionArancelaria": "2402200100", "CantidadAduana": "117.64", "UnidadAduana": "01", "ValorUnitarioAduana": "3.40", "ValorDolares": "400.00" } ] } } ] } } ``` --- # Consumo de Combustibles 1.1 Fuente: https://developers.sw.com.mx/knowledge-base/consumo-de-combustibles-1-1/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento para consumo de combustible que emiten los emisores autorizados de monederos electrónicos utilizados en la adquisición de combustibles para vehículos marítimos, aéreos y terrestres a las estaciones de servicio que enajenan los combustibles de conformidad con la fracción IV., de la regla 3.3.1.10., de la RMF vigente, para identificar el tipo de combustible y cuota que aplica a la enajenación de gasolina y diésel de conformidad con el artículo 2º. A Ley del Impuesto Especial sobre Producción y Servicios vigente. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Ingreso ``` ``` ### Ejemplos JSON Ingreso ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "267", "Fecha": "2026-08-28T08:01:05", "FormaPago": 99, "ConditionsDePago": "CondicionesDePago", "SubTotal": 200, "Descuento": 1, "Moneda": "MXN", "TipoCambio": "1", "Total": "230.84", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PPD", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "G01" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 199, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 31.84 } ] }, "ClaveProdServ": "84111506", "Cantidad": 1, "ClaveUnidad": "LTR", "Unidad": "Litro", "Descripcion": "Litro", "ValorUnitario": 200, "Importe": 200, "Descuento": 1, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 199, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 31.84 } ], "TotalImpuestosTrasladados": 31.84 }, "Complemento": { "Any": [ { "consumodecombustibles11:ConsumoDeCombustibles": { "version": "1.1", "tipoOperacion": "monedero electrónico", "numeroDeCuenta": "123456", "subTotal": "10.00", "total": "10.00", "Conceptos": [ { "identificador": "123456789", "fecha": "2017-12-21T10:20:00", "rfc": "EKU9003173C9", "claveEstacion": "12345", "tipoCombustible": "3", "cantidad": "1.000", "nombreCombustible": "Premium", "folioOperacion": "0000001", "valorUnitario": "5.00", "importe": "5.00", "Determinados": [ { "impuesto": "IEPS", "tasaOCuota": "0.08", "importe": "0.08" } ] }, { "identificador": "123456789", "fecha": "2017-12-21T10:20:00", "rfc": "EKU9003173C9", "claveEstacion": "12345", "tipoCombustible": "3", "cantidad": "1.000", "nombreCombustible": "Premium", "folioOperacion": "0000001", "valorUnitario": "5.00", "importe": "5.00", "Determinados": [ { "impuesto": "IEPS", "tasaOCuota": "0.08", "importe": "0.08" } ] } ] } } ] } } ``` --- # Detallista Fuente: https://developers.sw.com.mx/knowledge-base/detallista-2/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento que permite incluir información adicional sobre las operaciones comerciales en el sector detallista. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Ingreso ``` INVOICE Dosciento sesenta pesos 00/100 m.n. 3 2012-01-01 2 1 2022-01-01 7504000107903 0101 abc ``` ### Ejemplos JSON Ingreso ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "246", "Fecha": "2026-08-28T08:01:04", "FormaPago": "99", "MetodoPago": "PPD", "CondicionesDePago": "CondicionesDePago", "SubTotal": "200", "Moneda": "MXN", "TipoCambio": "1", "Total": "199.95", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "200.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ], "Retenciones": [ { "Base": "1", "Importe": "0.10", "Impuesto": "001", "TasaOCuota": "0.100000", "TipoFactor": "Tasa" }, { "Base": "1", "Importe": "0.11", "Impuesto": "002", "TasaOCuota": "0.106666", "TipoFactor": "Tasa" } ] } } ], "Impuestos": { "TotalImpuestosRetenidos": "0.21", "TotalImpuestosTrasladados": "0.16", "Retenciones": [ { "Importe": "0.10", "Impuesto": "001" }, { "Importe": "0.11", "Impuesto": "002" } ], "Traslados": [ { "Base": "1", "Importe": "0.16", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] }, "Complemento": { "Any": [ { "detallista:detallista": { "@xmlns:detallista": "http://www.sat.gob.mx/detallista", "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance", "@xsi:schemaLocation": "http://www.sat.gob.mx/detallista http://www.sat.gob.mx/sitio_internet/cfd/detallista/detallista.xsd", "@contentVersion": "1.3.1", "@documentStructureVersion": "AMC8.1", "@type": "SimpleInvoiceType", "@documentStatus": "ORIGINAL", "detallista:requestForPaymentIdentification": { "detallista:entityType": "INVOICE" }, "detallista:specialInstruction": { "@code": "ZZZ", "detallista:text": "Dosciento sesenta pesos 00/100 m.n." }, "detallista:orderIdentification": { "detallista:referenceIdentification": { "@type": "ON", "#text": "3" }, "detallista:ReferenceDate": "2012-01-01" }, "detallista:AdditionalInformation": { "detallista:referenceIdentification": { "@type": "ATZ", "#text": "2" } }, "detallista:DeliveryNote": { "detallista:referenceIdentification": "1", "detallista:ReferenceDate": "2022-01-01" }, "detallista:buyer": { "detallista:gln": "7504000107903", "detallista:contactInformation": { "detallista:personOrDepartmentName": { "detallista:text": "0101" } } } } } ] }, "Addenda": { "Any": [ { "Addenda": { "@xmlns:Addenda": "http://www.Addenda/", "@schemaLocation": "http://www.addenda.xsd", "@version": "1.0", "Addenda:Datos": { "Addenda:Detalle": "abc" } } } ] } } ``` --- # Divisas 1.0 Fuente: https://developers.sw.com.mx/knowledge-base/divisas-1-0/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento para identificar las operaciones de compra y venta de divisas que realizan los centros cambiarios y las casas de cambio; haciendo mención expresa de que los comprobantes se expiden por la “compra”, o bien, por la “venta” de divisas. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Compra ``` ``` Venta ``` ``` ### Ejemplos JSON Compra ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "282", "Fecha": "2026-08-28T08:01:05", "FormaPago": 99, "CondicionesDePago": "CondicionesDePago", "SubTotal": 200, "Descuento": 1, "Moneda": "MXN", "TipoCambio": "1", "Total": 230.84, "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "S01" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 199, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 31.84 } ] }, "ClaveProdServ": "50211503", "Cantidad": 1, "ClaveUnidad": "H87", "Unidad": "Servicio", "Descripcion": "Compra de dólares", "ValorUnitario": 200, "Importe": 200, "Descuento": 1, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 199, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 31.84 } ], "TotalImpuestosTrasladados": 31.84 }, "Complemento": { "Any": [ { "divisas:Divisas": { "@xmlns:divisas": "http://www.sat.gob.mx/divisas", "@version": "1.0", "@tipoOperacion": "compra" } } ] } } ``` Venta ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "283", "Fecha": "2026-08-28T08:01:05", "FormaPago": 99, "CondicionesDePago": "CondicionesDePago", "SubTotal": 200, "Descuento": 1, "Moneda": "MXN", "TipoCambio": "1", "Total": 230.84, "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "S01" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 199, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 31.84 } ] }, "ClaveProdServ": "50211503", "Cantidad": 1, "ClaveUnidad": "H87", "Unidad": "Servicio", "Descripcion": "Compra de dólares", "ValorUnitario": 200, "Importe": 200, "Descuento": 1, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 199, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 31.84 } ], "TotalImpuestosTrasladados": 31.84 }, "Complemento": { "Any": [ { "divisas:Divisas": { "@xmlns:divisas": "http://www.sat.gob.mx/divisas", "@version": "1.0", "@tipoOperacion": "venta" } } ] } } ``` --- # Donatarias Fuente: https://developers.sw.com.mx/knowledge-base/donatarias/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento para incluir la información requerida por el Servicio de Administración Tributaria a las organizaciones civiles o fideicomisos autorizados para recibir donativos que permite hacer deducibles las facturas a los donantes. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplo XML Ingreso ``` ``` ACuentaTerceros ``` ``` Recibido en especie ``` ``` Público en general ``` ``` Recibido en numerario Público en general ``` ``` ### Ejemplo JSON Ingreso ``` { "Version": "4.0", "FormaPago": "01", "Serie": "SW N8N Examples", "Folio": "218", "Fecha": "2026-08-28T08:01:03", "MetodoPago": "PUE", "Sello": "", "NoCertificado": "", "Certificado": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "10.00", "Descuento": "0.00", "Moneda": "MXN", "TipoCambio": "1", "Total": "10.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "45610", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "NoIdentificacion": "None", "Cantidad": "1.0", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "10.00", "Importe": "10.00", "Descuento": "0.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "1", "Importe": "1", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ], "Retenciones": [ { "Base": "1", "Importe": "1", "Impuesto": "002", "TasaOCuota": "0.040000", "TipoFactor": "Tasa" } ] } } ], "Impuestos": { "TotalImpuestosTrasladados": "1.00", "TotalImpuestosRetenidos": "1.00", "Retenciones": [ { "Importe": "1.00", "Impuesto": "002" } ], "Traslados": [ { "Base": "1.00", "Importe": "1.00", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] }, "Complemento": { "Any": [ { "donat:Donatarias": { "@xmlns:donat": "http://www.sat.gob.mx/donat", "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance", "@xsi:schemaLocation": "http://omawww.sat.gob.mx/sitio_internet/cfd/donat/donat.xsd", "@fechaAutorizacion": "2022-09-02", "@leyenda": "Este comprobante ampara un donativo, el cual será destinado por la donataria a los fines propios de su objeto social. En el caso de que los bienes donados hayan sido deducidos previamente para los efectos de impuestos sobre la renta, este donativo no es deducible. La reproducción no autorizada de este comprobante constituye un delito en los términos de las disposiciones fiscales Efectos Fiscales al Pago", "@noAutorizacion": "325-SAT-28-I-(21)-4109", "@version": "1.1" } } ] } } ``` ACuentaTerceros ``` { "Version": "4.0", "FormaPago": "01", "Serie": "SW N8N Examples", "Folio": "219", "Fecha": "2026-08-28T08:01:03", "MetodoPago": "PUE", "Sello": "", "NoCertificado": "", "Certificado": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "10.00", "Descuento": "0.00", "Moneda": "MXN", "TipoCambio": "1", "Total": "10.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "45610", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "NoIdentificacion": "None", "Cantidad": "1.0", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "10.00", "Importe": "10.00", "Descuento": "0.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "1", "Importe": "1", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ], "Retenciones": [ { "Base": "1", "Importe": "1", "Impuesto": "002", "TasaOCuota": "0.040000", "TipoFactor": "Tasa" } ] },"ACuentaTerceros":{ "RfcACuentaTerceros":"JUFA7608212V6", "NombreACuentaTerceros":"ADRIANA JUAREZ FERNANDEZ", "RegimenFiscalACuentaTerceros":"601", "DomicilioFiscalACuentaTerceros":"01160" } } ], "Impuestos": { "TotalImpuestosTrasladados": "1.00", "TotalImpuestosRetenidos": "1.00", "Retenciones": [ { "Importe": "1.00", "Impuesto": "002" } ], "Traslados": [ { "Base": "1.00", "Importe": "1.00", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] }, "Complemento": { "Any": [ { "donat:Donatarias": { "@xmlns:donat": "http://www.sat.gob.mx/donat", "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance", "@xsi:schemaLocation": "http://omawww.sat.gob.mx/sitio_internet/cfd/donat/donat.xsd", "@fechaAutorizacion": "2022-09-02", "@leyenda": "Este comprobante ampara un donativo, el cual será destinado por la donataria a los fines propios de su objeto social. En el caso de que los bienes donados hayan sido deducidos previamente para los efectos de impuestos sobre la renta, este donativo no es deducible. La reproducción no autorizada de este comprobante constituye un delito en los términos de las disposiciones fiscales Efectos Fiscales al Pago", "@noAutorizacion": "325-SAT-28-I-(21)-4109", "@version": "1.1" } } ] } } ``` Recibido en especie ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "220", "Fecha": "2026-08-28T08:01:03", "Sello": "", "FormaPago": "12", "NoCertificado": "", "Certificado": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "200", "Moneda": "MXN", "TipoCambio": "1", "Total": "200.00", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "CACX7605101P8", "Nombre": "XOCHILT CASAS CHAVEZ", "DomicilioFiscalReceptor": "36257", "RegimenFiscalReceptor": "605", "UsoCFDI": "D04" }, "Conceptos": [ { "ClaveProdServ": "50211503", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "200.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "donat:Donatarias": { "@xmlns:donat": "http://www.sat.gob.mx/donat", "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance", "@xsi:schemaLocation": "http://omawww.sat.gob.mx/sitio_internet/cfd/donat/donat.xsd", "@fechaAutorizacion": "2022-09-02", "@leyenda": "Este comprobante ampara un donativo, el cual será destinado por la donataria a los fines propios de su objeto social. En el caso de que los bienes donados hayan sido deducidos previamente para los efectos de impuestos sobre la renta, este donativo no es deducible. La reproducción no autorizada de este comprobante constituye un delito en los términos de las disposiciones fiscales Efectos Fiscales al Pago", "@noAutorizacion": "325-SAT-28-I-(21)-4109", "@version": "1.1" } } ] } } ``` Público en general ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "221", "Fecha": "2026-08-28T08:01:04", "Sello": "", "FormaPago": "99", "NoCertificado": "", "Certificado": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "200", "Moneda": "MXN", "TipoCambio": "1", "Total": "200.00", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "XAXX010101000", "Nombre": "XOCHILT CASAS", "DomicilioFiscalReceptor": "20000", "RegimenFiscalReceptor": "616", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "01010101", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "ACT", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "200.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "donat:Donatarias": { "@xmlns:donat": "http://www.sat.gob.mx/donat", "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance", "@xsi:schemaLocation": "http://omawww.sat.gob.mx/sitio_internet/cfd/donat/donat.xsd", "@fechaAutorizacion": "2022-09-02", "@leyenda": "Este comprobante ampara un donativo, el cual será destinado por la donataria a los fines propios de su objeto social. En el caso de que los bienes donados hayan sido deducidos previamente para los efectos de impuestos sobre la renta, este donativo no es deducible. La reproducción no autorizada de este comprobante constituye un delito en los términos de las disposiciones fiscales Efectos Fiscales al Pago", "@noAutorizacion": "325-SAT-28-I-(21)-4109", "@version": "1.1" } } ] } } ``` Recibido en numerario Público en general ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "222", "Fecha": "2026-08-28T08:01:04", "Sello": "", "FormaPago": "12", "NoCertificado": "", "Certificado": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "200", "Moneda": "MXN", "TipoCambio": "1", "Total": "200.00", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "XAXX010101000", "Nombre": "XOCHILT CASAS", "DomicilioFiscalReceptor": "20000", "RegimenFiscalReceptor": "616", "UsoCFDI": "S01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "200.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "donat:Donatarias": { "@xmlns:donat": "http://www.sat.gob.mx/donat", "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance", "@xsi:schemaLocation": "http://omawww.sat.gob.mx/sitio_internet/cfd/donat/donat.xsd", "@fechaAutorizacion": "2022-09-02", "@leyenda": "Este comprobante ampara un donativo, el cual será destinado por la donataria a los fines propios de su objeto social. En el caso de que los bienes donados hayan sido deducidos previamente para los efectos de impuestos sobre la renta, este donativo no es deducible. La reproducción no autorizada de este comprobante constituye un delito en los términos de las disposiciones fiscales Efectos Fiscales al Pago", "@noAutorizacion": "325-SAT-28-I-(21)-4109", "@version": "1.1" } } ] } } ``` --- # Estado De Cuenta Combustibles 1.2 Fuente: https://developers.sw.com.mx/knowledge-base/cfdi40-estado-de-cuenta-combustibles-12/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento para el Comprobante Fiscal Digital por Internet (CFDI) para integrar la información aplicable al estado de cuenta emitido por un prestador de servicios de monedero electrónico. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Ingreso ``` ``` ### Ejemplos JSON Ingreso ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "279", "Fecha": "2026-08-28T08:01:05", "FormaPago": 99, "CondicionesDePago": "CondicionesDePago", "SubTotal": 200, "Descuento": 1, "Moneda": "MXN", "TipoCambio": "1", "Total": 230.84, "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "G01" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 199, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 31.84 } ] }, "ClaveProdServ": "50211503", "Cantidad": 1.0, "ClaveUnidad": "H87", "Unidad": "Servicio", "Descripcion": "Servicio", "ValorUnitario": 200, "Importe": 200, "Descuento": 1, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 199, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 31.84 } ], "TotalImpuestosTrasladados": 31.84 }, "Complemento": { "Any": [ { "ecc12:EstadoDeCuentaCombustible": { "Version": "1.2", "TipoOperacion": "Tarjeta", "NumeroDeCuenta": "0123456789", "SubTotal": 200, "Total": 200.16, "Conceptos": [ { "Identificador": "0123456789", "Fecha": "2026-08-28T15:00:16", "Rfc": "URE180429TM6", "ClaveEstacion": "0123456789", "Cantidad": 1.0, "TipoCombustible": "1", "Unidad": "LT", "NombreCombustible": "Gasolina", "FolioOperacion": "0123456789", "ValorUnitario": 200, "Importe": 200, "Traslados": [ { "Impuesto": "IVA", "TasaOCuota": 0.16, "Importe": 0.16 } ] } ] } } ] } } ``` --- # Estructura Addenda 4.0 Fuente: https://developers.sw.com.mx/knowledge-base/estructura-addenda-4-0/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Elemento de información que puede ser anexado a un Comprobante Fiscal Digital por Internet (CFDI), cabe mencionar que el formato, nodos y atributos cambian para cada caso en especifico. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplo XML Ingreso ``` abc ``` Kit (Parte) ``` abc abc abc ``` ### Ejemplo JSON Ingreso ``` { "Version": "4.0", "FormaPago": "01", "Serie": "SW N8N Examples", "Folio": "225", "Fecha": "2026-08-28T08:01:04", "MetodoPago": "PUE", "CondicionesDePago": "CondicionesDePago", "SubTotal": "10.00", "Descuento": "0.00", "Moneda": "MXN", "TipoCambio": "1", "Total": "10.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "45610", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "NoIdentificacion": "None", "Cantidad": "1.0", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "10.00", "Importe": "10.00", "Descuento": "0.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "1", "Importe": "1", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ], "Retenciones": [ { "Base": "1", "Importe": "1", "Impuesto": "002", "TasaOCuota": "0.040000", "TipoFactor": "Tasa" } ] } } ], "Impuestos": { "TotalImpuestosTrasladados": "1.00", "TotalImpuestosRetenidos": "1.00", "Retenciones": [ { "Importe": "1.00", "Impuesto": "002" } ], "Traslados": [ { "Base": "1.00", "Importe": "1.00", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] }, "Addenda": { "Any": [ { "Datos": { "@xmlns:addenda": "http://www.Addenda/", "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance", "@XMLSchema": "http://www.addenda.xsd", "AddendaNotas": { "Receptor": { "@correoReceptor": "correo@test.com.mx", "@asuntoCorreo": "Ingreso", "@mensajeCorreo": "Factura", "@numeroCliente": "281278" } } } } ] } } ``` Kit(Parte) ``` { "Version": "4.0", "FormaPago": "01", "Serie": "SW N8N Examples", "Folio": "226", "Fecha": "2026-08-28T08:01:04", "MetodoPago": "PUE", "CondicionesDePago": "CondicionesDePago", "SubTotal": "10.00", "Descuento": "0.00", "Moneda": "MXN", "TipoCambio": "1", "Total": "10.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "45610", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "NoIdentificacion": "None", "Cantidad": "1.0", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "10.00", "Importe": "10.00", "Descuento": "0.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "1", "Importe": "1", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ], "Retenciones": [ { "Base": "1", "Importe": "1", "Impuesto": "002", "TasaOCuota": "0.040000", "TipoFactor": "Tasa" } ] } } ], "Impuestos": { "TotalImpuestosTrasladados": "1.00", "TotalImpuestosRetenidos": "1.00", "Retenciones": [ { "Importe": "1.00", "Impuesto": "002" } ], "Traslados": [ { "Base": "1.00", "Importe": "1.00", "Impuesto": "002", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] }, "Addenda": { "Any": [ { "Datos": { "@xmlns:addenda": "http://www.Addenda/", "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance", "@XMLSchema": "http://www.addenda.xsd", "AddendaNotas": { "Emisor": { "@detalle1": "correo@test.com.mx", "@detalle2": "Ingreso", "@detalle3": "Factura" }, "Receptor": { "@detalle1": "correo@test.com.mx", "@detalle2": "Ingreso", "@detalle3": "Factura" } } } } ] } } ``` --- # Gastos Hidrocarburos 1.0 Fuente: https://developers.sw.com.mx/knowledge-base/gastos-hidrocarburos-1-0/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Incorpora a la Factura la información referente a los costos, gastos e inversiones realizados, así como los ingresos percibidos por el operador de un consorcio petrolero. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Origen Nacional ``` ``` Origen Extranjero ``` ``` ### Ejemplos JSON Origen Nacional ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "292", "Fecha": "2026-08-28T08:01:05", "CondicionesDePago": "CondicionesDePago", "SubTotal": "200.00", "Descuento": "1", "Moneda": "MXN", "TipoCambio": "1", "Total": "199.00", "TipoDeComprobante": "E", "Exportacion": "01", "MetodoPago": "PPD", "FormaPago": "99", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Servicio", "ValorUnitario": "200.00", "Descuento": "1", "Importe": "200.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "gceh:GastosHidrocarburos": { "Version": "1.0", "NumeroContrato": "12131415", "AreaContractual": "NA", "Erogacion": [ { "TipoErogacion": "Gasto", "MontocuErogacion": "100.00", "Porcentaje": "10.00", "DocumentoRelacionado": [ { "OrigenErogacion": "Nacional", "FolioFiscalVinculado": "35930b4c-5ca2-440c-9381-122a66aedd74", "FechaFolioFiscalVinculado": "2022-07-24", "RFCProveedor": "EKU9003173C9", "Mes": "07", "MontoTotalErogaciones": "100.00", "MontoTotalIVA": "16.00" } ] } ] } } ] } } ``` Origen Extranjero ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "293", "Fecha": "2026-08-28T08:01:05", "CondicionesDePago": "CondicionesDePago", "SubTotal": "200.00", "Descuento": "1", "Moneda": "MXN", "TipoCambio": "1", "Total": "199.00", "TipoDeComprobante": "E", "Exportacion": "01", "MetodoPago": "PPD", "FormaPago": "99", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "50211503", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Servicio", "ValorUnitario": "200.00", "Descuento": "1", "Importe": "200.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "gceh:GastosHidrocarburos": { "Version": "1.0", "NumeroContrato": "12131415", "AreaContractual": "NA", "Erogacion": [ { "TipoErogacion": "Gasto", "MontocuErogacion": "100.00", "Porcentaje": "10.00", "DocumentoRelacionado": [ { "OrigenErogacion": "Extranjero", "Mes": "07", "MontoTotalErogaciones": "100.00" } ] } ] } } ] } } ``` --- # Hidrocarburos y petrolíferos 1.0 Fuente: https://developers.sw.com.mx/knowledge-base/hidrocarburos-y-petroliferos-1-0-2/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-sat-4-0-catalogos/). 🚧 **Contenido en construcción.** Los ejemplos XML y JSON del complemento `Hidrocarburos y petrolíferos` se encuentran en elaboración. Estos se irán actualizando de manera constante. Datos de prueba: RFCs, permisos CNE y claves de producto **🚨Importante:** Los siguientes RFCs están habilitados en el entorno de **pruebas**, de utilizar un RFC real, o un `NumeroPermiso` real, el servicio retornara un error. 🔑 Ver RFCs, permisos CNE y claves de producto 🔑 **Correlación de claves de producto (ClaveProdServ):** - `15101505` — Combustible diésel - `15101514` — Gasolina regular menor a 91 octanos - `15101515` — Gasolina premium mayor o igual a 91 octanos | RFC | Permiso CNE | Tipo de Permiso | ClaveProdServ | | --- | --- | --- | --- | | CACX7605101P8 | `PL/359/EXP/ES/2015` | PER01 | 15101514 15101515 15101505 | | FUNK671228PH6 | `PL/9998/EXP/ES/2015` | PER01 | 15101514 15101515 | | IAÑL750210963 | `PL/361/EXP/ES/2015` | PER01 | 15101514 | | MISC491214B86 | `H/36212/COM/2015` | PER02 | 15101505 | | JUFA7608212V6 | `H/23421/COM/2020` | PER02 | 15101515 | | EKU9003173C9 | `PL/364/DIS/OM/2015` | PER03 | 15101514 15101515 15101505 | | EWE1709045U0 | `PL/365/DIS/OM/2015` | PER03 | 15101514 15101515 | | H&E951128469 | `PL/19935/DIS/OM/2017` | PER03 | 15101514 | | XIA190128J61 | `PL/367/EXP/ES/MM/2015` | PER04 | 15101505 | | KIJ0906199R1 | `PL/1035/EXP/ES/MM/2015` | PER04 | 15101515 | | OÑO120726RX3 | `PL/1055/EXP/ES/MM/2015` | PER04 | 15101515 | | KAHO641101B39 | `CNE/PL/1456/EXP/ES/2025` | PER05 | 15101515 | | KICR630120NX3 | `CNE/H/207519/COM/2025` | PER06 | 15101505 | | WERX631016S30 | `CNE/PL/188367/DIS/OM/2025` | PER07 | 15101514 | | XOJI740919U48 | `CNE/PL/10352/EXP/ES/MM/2025` | PER08 | 15101515 15101514 | ## Ejemplos XML Ingreso ``` ``` HidroYPetro + Consumbo de Combustibles ``` ``` HidroYPetro + Estado de Cuenta Combustibles ``` ``` HidroYPetro + Consumo + Estado de Cuenta Combustibles ``` ``` HidroYPetro + Carta Porte ``` ``` HidroYPetro + INE ``` ``` HidroYPetro + Comercio Exterior ``` ``` HidroYPetro + Impuestos Locales ``` ``` HidroYPetro + Leyendas Fiscales ``` ``` ## Ejemplos JSON Ingreso ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "236", "Fecha": "2026-08-28T08:01:04", "SubTotal": "50000.00", "Moneda": "MXN", "Total": "58000.00", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "FormaPago": "03", "LugarExpedicion": "06600", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "15101514", "NoIdentificacion": "COMB-001", "Cantidad": "5000", "ClaveUnidad": "LTR", "Unidad": "Litro", "Descripcion": "Gasolina regular", "ValorUnitario": "10.00", "Importe": "50000.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "50000.00", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "8000.00" } ] }, "ComplementoConcepto": { "Any": [ { "hidrocarburospetroliferos:HidroYPetro": { "@xmlns:hidrocarburospetroliferos": "http://www.sat.gob.mx/hidrocarburospetroliferos", "@Version": "1.0", "@TipoPermiso": "PER03", "@NumeroPermiso": "PL/364/DIS/OM/2015", "@ClaveHYP": "15101514", "@SubProductoHYP": "SP16" } } ] } } ], "Impuestos": { "TotalImpuestosTrasladados": "8000.00", "Traslados": [ { "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "8000.00", "Base": "50000.00" } ] } } ``` HidroYPetro + Consumo Combustibles ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "237", "Fecha": "2026-08-28T08:01:04", "FormaPago": "03", "SubTotal": "50000.00", "Moneda": "MXN", "Total": "58000.00", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "06600", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "UsoCFDI": "G01", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601" }, "Conceptos": [ { "ClaveProdServ": "15101514", "NoIdentificacion": "COMB-001", "Cantidad": "5000", "ClaveUnidad": "LTR", "Unidad": "Litro", "Descripcion": "Gasolina regular", "ValorUnitario": "10.00", "Importe": "50000.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "50000.00", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "8000.00" } ] }, "ComplementoConcepto": { "Any": [ { "hidrocarburospetroliferos:HidroYPetro": { "@xmlns:hidrocarburospetroliferos": "http://www.sat.gob.mx/hidrocarburospetroliferos", "@Version": "1.0", "@TipoPermiso": "PER03", "@NumeroPermiso": "PL/364/DIS/OM/2015", "@ClaveHYP": "15101514", "@SubProductoHYP": "SP16" } } ] } } ], "Impuestos": { "TotalImpuestosTrasladados": "8000.00", "Traslados": [ { "Base": "50000.00", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "8000.00" } ] }, "Complemento": { "Any": [ { "consumodecombustibles11:ConsumoDeCombustibles": { "version": "1.1", "tipoOperacion": "monedero electrónico", "numeroDeCuenta": "123456", "subTotal": "10.00", "total": "10.00", "Conceptos": [ { "identificador": "123456789", "fecha": "2026-04-15T10:20:00", "rfc": "EKU9003173C9", "claveEstacion": "12345", "tipoCombustible": "3", "cantidad": "1.000", "nombreCombustible": "Premium", "folioOperacion": "0000001", "valorUnitario": "5.00", "importe": "5.00", "Determinados": [ { "impuesto": "IEPS", "tasaOCuota": "0.08", "importe": "0.08" } ] } ] } } ] } } ``` HidroYPetro + Estado de Cuenta Combustibles ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "238", "Fecha": "2026-08-28T08:01:04", "FormaPago": "03", "SubTotal": "50000.00", "Moneda": "MXN", "Total": "58000.00", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "06600", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "UsoCFDI": "G01", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601" }, "Conceptos": [ { "ClaveProdServ": "15101514", "NoIdentificacion": "COMB-001", "Cantidad": "5000", "ClaveUnidad": "LTR", "Unidad": "Litro", "Descripcion": "Gasolina regular", "ValorUnitario": "10.00", "Importe": "50000.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "50000.00", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "8000.00" } ] }, "ComplementoConcepto": { "Any": [ { "hidrocarburospetroliferos:HidroYPetro": { "@xmlns:hidrocarburospetroliferos": "http://www.sat.gob.mx/hidrocarburospetroliferos", "@Version": "1.0", "@TipoPermiso": "PER03", "@NumeroPermiso": "PL/364/DIS/OM/2015", "@ClaveHYP": "15101514", "@SubProductoHYP": "SP16" } } ] } } ], "Impuestos": { "TotalImpuestosTrasladados": "8000.00", "Traslados": [ { "Base": "50000.00", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "8000.00" } ] }, "Complemento": { "Any": [ { "ecc12:EstadoDeCuentaCombustible": { "Version": "1.2", "TipoOperacion": "Tarjeta", "NumeroDeCuenta": "0123456789", "SubTotal": "50000.00", "Total": "58000.00", "Conceptos": [ { "Identificador": "0123456789", "Fecha": "2026-08-28T15:00:16", "Rfc": "URE180429TM6", "ClaveEstacion": "0123456789", "Cantidad": "5000", "TipoCombustible": "1", "Unidad": "LT", "NombreCombustible": "Gasolina", "FolioOperacion": "0123456789", "ValorUnitario": "10.00", "Importe": "50000.00", "Traslados": [ { "Impuesto": "IVA", "TasaOCuota": "0.160000", "Importe": "8000.00" } ] } ] } } ] } } ``` HidroYPetro + Consumo + Estado de Cuenta Combustibles ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "239", "Fecha": "2026-08-28T08:01:04", "FormaPago": "03", "SubTotal": "50000.00", "Moneda": "MXN", "Total": "58000.00", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "06600", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "UsoCFDI": "G01", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601" }, "Conceptos": [ { "ClaveProdServ": "15101514", "NoIdentificacion": "COMB-001", "Cantidad": "5000", "ClaveUnidad": "LTR", "Unidad": "Litro", "Descripcion": "Gasolina regular", "ValorUnitario": "10.00", "Importe": "50000.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "50000.00", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "8000.00" } ] }, "ComplementoConcepto": { "Any": [ { "hidrocarburospetroliferos:HidroYPetro": { "@xmlns:hidrocarburospetroliferos": "http://www.sat.gob.mx/hidrocarburospetroliferos", "@Version": "1.0", "@TipoPermiso": "PER03", "@NumeroPermiso": "PL/364/DIS/OM/2015", "@ClaveHYP": "15101514", "@SubProductoHYP": "SP16" } } ] } } ], "Impuestos": { "TotalImpuestosTrasladados": "8000.00", "Traslados": [ { "Base": "50000.00", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "8000.00" } ] }, "Complemento": { "Any": [ { "consumodecombustibles11:ConsumoDeCombustibles": { "version": "1.1", "tipoOperacion": "monedero electrónico", "numeroDeCuenta": "123456", "subTotal": "10.00", "total": "10.00", "Conceptos": [ { "identificador": "123456789", "fecha": "2026-04-15T10:20:00", "rfc": "EKU9003173C9", "claveEstacion": "12345", "tipoCombustible": "3", "cantidad": "1.000", "nombreCombustible": "Premium", "folioOperacion": "0000001", "valorUnitario": "5.00", "importe": "5.00", "Determinados": [ { "impuesto": "IEPS", "tasaOCuota": "0.08", "importe": "0.08" } ] } ] } }, { "ecc12:EstadoDeCuentaCombustible": { "Version": "1.2", "TipoOperacion": "Tarjeta", "NumeroDeCuenta": "0123456789", "SubTotal": "50000.00", "Total": "58000.00", "Conceptos": [ { "Identificador": "0123456789", "Fecha": "2026-08-28T15:00:16", "Rfc": "URE180429TM6", "ClaveEstacion": "0123456789", "Cantidad": "5000", "TipoCombustible": "1", "Unidad": "LT", "NombreCombustible": "Gasolina", "FolioOperacion": "0123456789", "ValorUnitario": "10.00", "Importe": "50000.00", "Traslados": [ { "Impuesto": "IVA", "TasaOCuota": "0.160000", "Importe": "8000.00" } ] } ] } } ] } } ``` HidroYPetro + Carta Porte ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "240", "Fecha": "2026-08-28T08:01:04", "SubTotal": "50100.00", "Moneda": "MXN", "FormaPago": "03", "MetodoPago": "PUE", "Total": "58100.00", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "06600", "Emisor": { "Rfc": "CACX7605101P8", "Nombre": "XOCHILT CASAS CHAVEZ", "RegimenFiscal": 612 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "15101505", "NoIdentificacion": "COMB-001", "Cantidad": "5000", "ClaveUnidad": "LTR", "Unidad": "Litro", "Descripcion": "Combustible diesel automotriz", "ValorUnitario": "10.00", "Importe": "50000.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": 50000, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": 8000.0 } ] }, "ComplementoConcepto": { "Any": [ { "hidrocarburospetroliferos:HidroYPetro": { "@xmlns:hidrocarburospetroliferos": "http://www.sat.gob.mx/hidrocarburospetroliferos", "@Version": "1.0", "@TipoPermiso": "PER01", "@NumeroPermiso": "PL/359/EXP/ES/2015", "@ClaveHYP": "15101505", "@SubProductoHYP": "SP18" } } ] } }, { "ClaveProdServ": "78101800", "NoIdentificacion": "UT421511", "Cantidad": "1", "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Transporte de carga por carretera", "ValorUnitario": "100.00", "Importe": "100.00", "ObjetoImp": "01" } ], "Impuestos": { "TotalImpuestosTrasladados": "8000.00", "Traslados": [ { "Base": 50000.0, "Importe": 8000.0, "TasaOCuota": "0.160000", "Impuesto": "002", "TipoFactor": "Tasa" } ] }, "Complemento": { "Any": [ { "cartaporte31:CartaPorte": { "Version": "3.1", "IdCCP": "CCCBCD94-870A-4332-A52A-A52AA52AA52A", "TranspInternac": "Sí", "TotalDistRec": "1", "RegistroISTMO": "Sí", "UbicacionPoloOrigen": "01", "UbicacionPoloDestino": "01", "EntradaSalidaMerc": "Salida", "PaisOrigenDestino": "USA", "ViaEntradaSalida": "01", "RegimenesAduaneros": [ { "RegimenAduanero": "EXD", "RegimenAduanero": "EXD" } ], "Ubicaciones": [ { "TipoUbicacion": "Origen", "IDUbicacion": "OR101010", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario1", "FechaHoraSalidaLlegada": "2023-08-01T00:00:00", "Domicilio": { "Calle": "Calle1", "NumeroExterior": "211", "NumeroInterior": "212", "Colonia": "1957", "Localidad": "13", "Referencia": "casa blanca", "Municipio": "011", "Estado": "CMX", "Pais": "MEX", "CodigoPostal": "13250" } }, { "TipoUbicacion": "Destino", "IDUbicacion": "DE202020", "RFCRemitenteDestinatario": "EKU9003173C9", "NombreRemitenteDestinatario": "NombreRemitenteDestinatario2", "FechaHoraSalidaLlegada": "2023-08-01T00:00:01", "DistanciaRecorrida": "1", "Domicilio": { "Calle": "Calle2", "NumeroExterior": "214", "NumeroInterior": "215", "Colonia": "0347", "Localidad": "23", "Referencia": "casa negra", "Municipio": "004", "Estado": "COA", "Pais": "MEX", "CodigoPostal": "25350" } } ], "Mercancias": { "PesoBrutoTotal": "1.0", "UnidadPeso": "XBX", "NumTotalMercancias": "1", "LogisticaInversaRecoleccionDevolucion": "Sí", "Mercancia": [ { "BienesTransp": "11121900", "TipoMateria": "03", "Descripcion": "Accesorios de equipo de telefonía", "Cantidad": "1.0", "ClaveUnidad": "XBX", "MaterialPeligroso": "No", "PesoEnKg": "1", "DenominacionGenericaProd": "DenominacionGenericaProd1", "DenominacionDistintivaProd": "DenominacionDistintivaProd1", "Fabricante": "Fabricante1", "FechaCaducidad": "2028-01-01", "LoteMedicamento": "LoteMedic1", "RegistroSanitarioFolioAutorizacion": "RegistroSanita1", "CantidadTransporta": [ { "Cantidad": "1", "IDOrigen": "OR101010", "IDDestino": "DE202020" } ] } ], "Autotransporte": { "PermSCT": "TPAF01", "NumPermisoSCT": "NumPermisoSCT1", "IdentificacionVehicular": { "ConfigVehicular": "VL", "PesoBrutoVehicular": "1", "PlacaVM": "plac892", "AnioModeloVM": "2020" }, "Seguros": { "AseguraRespCivil": "AseguraRespCivil", "PolizaRespCivil": "123456789" }, "Remolques": [ { "SubTipoRem": "CTR004", "Placa": "VL45K98" } ] } }, "FiguraTransporte": [ { "TipoFigura": "01", "NombreFigura": "NombreFigura", "RFCFigura": "EKU9003173C9", "NumLicencia": "a234567890" } ] } } ] } } ``` HidroYPetro + INE ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "241", "Fecha": "2026-08-28T08:01:04", "FormaPago": "99", "NoCertificado": "", "Certificado": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "400", "Moneda": "USD", "TipoCambio": "16.9660", "Total": "399.95", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PPD", "LugarExpedicion": "20000", "Sello": "", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "15101514", "NoIdentificacion": "131494-1055", "Cantidad": "2", "ClaveUnidad": "LTR", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "400.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "1", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "0.16" } ], "Retenciones": [ { "Base": "1", "Impuesto": "001", "TipoFactor": "Tasa", "TasaOCuota": "0.100000", "Importe": "0.10" }, { "Base": "1", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.106666", "Importe": "0.11" } ] }, "ComplementoConcepto": { "Any": [ { "hidrocarburospetroliferos:HidroYPetro": { "@xmlns:hidrocarburospetroliferos": "http://www.sat.gob.mx/hidrocarburospetroliferos", "@Version": "1.0", "@TipoPermiso": "PER03", "@NumeroPermiso": "PL/364/DIS/OM/2015", "@ClaveHYP": "15101514", "@SubProductoHYP": "SP16" } } ] } } ], "Impuestos": { "TotalImpuestosRetenidos": "0.21", "TotalImpuestosTrasladados": "0.16", "Retenciones": [ { "Impuesto": "001", "Importe": "0.10" }, { "Impuesto": "002", "Importe": "0.11" } ], "Traslados": [ { "Base": "1", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "0.16" } ] }, "Complemento": { "Any": [ { "ine:INE": { "Version": "1.1", "TipoProceso": "Ordinario", "TipoComite": "Ejecutivo Nacional" } } ] } } ``` HidroYPetro + Comercio Exterior ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "242", "Fecha": "2026-08-28T08:01:04", "FormaPago": "99", "NoCertificado": "", "Certificado": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "400", "Moneda": "USD", "TipoCambio": "16.9660", "Total": "399.95", "TipoDeComprobante": "I", "Exportacion": "02", "MetodoPago": "PPD", "LugarExpedicion": "20000", "Sello": "", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "15101514", "NoIdentificacion": "131494-1055", "Cantidad": "2", "ClaveUnidad": "LTR", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "400.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "1", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "0.16" } ], "Retenciones": [ { "Base": "1", "Impuesto": "001", "TipoFactor": "Tasa", "TasaOCuota": "0.100000", "Importe": "0.10" }, { "Base": "1", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.106666", "Importe": "0.11" } ] }, "ComplementoConcepto": { "Any": [ { "hidrocarburospetroliferos:HidroYPetro": { "@xmlns:hidrocarburospetroliferos": "http://www.sat.gob.mx/hidrocarburospetroliferos", "@Version": "1.0", "@TipoPermiso": "PER03", "@NumeroPermiso": "PL/364/DIS/OM/2015", "@ClaveHYP": "15101514", "@SubProductoHYP": "SP16" } } ] } } ], "Impuestos": { "TotalImpuestosRetenidos": "0.21", "TotalImpuestosTrasladados": "0.16", "Retenciones": [ { "Impuesto": "001", "Importe": "0.10" }, { "Impuesto": "002", "Importe": "0.11" } ], "Traslados": [ { "Base": "1", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "0.16" } ] }, "Complemento": { "Any": [ { "cce20:ComercioExterior": { "Version": "2.0", "ClaveDePedimento": "A1", "CertificadoOrigen": "0", "Incoterm": "FOB", "TipoCambioUSD": "16.9660", "TotalUSD": "400.00", "Emisor": { "Domicilio": { "Calle": "CALLE DEL PAPEL", "Colonia": "0214", "Localidad": "01", "Municipio": "014", "Estado": "QUE", "Pais": "MEX", "CodigoPostal": "76199" } }, "Receptor": { "Domicilio": { "Calle": "CALLE DEL PAPEL", "Colonia": "0214", "Localidad": "01", "Municipio": "014", "Estado": "QUE", "Pais": "MEX", "CodigoPostal": "76199" } }, "Mercancias": [ { "NoIdentificacion": "131494-1055", "FraccionArancelaria": "2402200100", "CantidadAduana": "117.64", "UnidadAduana": "01", "ValorUnitarioAduana": "3.40", "ValorDolares": "400.00" } ] } } ] } } ``` HidroYPetro + Impuestos Locales ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "243", "Fecha": "2026-08-28T08:01:04", "FormaPago": "99", "NoCertificado": "", "Certificado": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "400", "Moneda": "USD", "TipoCambio": "16.9660", "Total": "334.95", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PPD", "LugarExpedicion": "20000", "Sello": "", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "15101514", "NoIdentificacion": "131494-1055", "Cantidad": "2", "ClaveUnidad": "LTR", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "400.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "1", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "0.16" } ], "Retenciones": [ { "Base": "1", "Impuesto": "001", "TipoFactor": "Tasa", "TasaOCuota": "0.100000", "Importe": "0.10" }, { "Base": "1", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.106666", "Importe": "0.11" } ] }, "ComplementoConcepto": { "Any": [ { "hidrocarburospetroliferos:HidroYPetro": { "@xmlns:hidrocarburospetroliferos": "http://www.sat.gob.mx/hidrocarburospetroliferos", "@Version": "1.0", "@TipoPermiso": "PER03", "@NumeroPermiso": "PL/364/DIS/OM/2015", "@ClaveHYP": "15101514", "@SubProductoHYP": "SP16" } } ] } } ], "Impuestos": { "TotalImpuestosRetenidos": "0.21", "TotalImpuestosTrasladados": "0.16", "Retenciones": [ { "Impuesto": "001", "Importe": "0.10" }, { "Impuesto": "002", "Importe": "0.11" } ], "Traslados": [ { "Base": "1", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "0.16" } ] }, "Complemento": { "Any": [ { "implocal:ImpuestosLocales": { "@xmlns:implocal": "http://www.sat.gob.mx/implocal", "@version": "1.0", "@TotaldeRetenciones": "65.00", "@TotaldeTraslados": "0.00", "implocal:RetencionesLocales": [ { "@ImpLocRetenido": "CEDULAR", "@TasadeRetencion": "2.50", "@Importe": "25.00" }, { "@ImpLocRetenido": "CEDULAR", "@TasadeRetencion": "1.00", "@Importe": "10.00" }, { "@ImpLocRetenido": "CEDULAR", "@TasadeRetencion": "3.00", "@Importe": "30.00" } ] } } ] } } ``` HidroYPetro + Leyendas Fiscales ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "244", "Fecha": "2026-08-28T08:01:04", "FormaPago": "99", "NoCertificado": "", "Certificado": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": "400", "Moneda": "USD", "TipoCambio": "16.9660", "Total": "399.95", "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PPD", "LugarExpedicion": "20000", "Sello": "", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "G01" }, "Conceptos": [ { "ClaveProdServ": "15101514", "NoIdentificacion": "131494-1055", "Cantidad": "2", "ClaveUnidad": "LTR", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": "200.00", "Importe": "400.00", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "1", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "0.16" } ], "Retenciones": [ { "Base": "1", "Impuesto": "001", "TipoFactor": "Tasa", "TasaOCuota": "0.100000", "Importe": "0.10" }, { "Base": "1", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.106666", "Importe": "0.11" } ] }, "ComplementoConcepto": { "Any": [ { "hidrocarburospetroliferos:HidroYPetro": { "@xmlns:hidrocarburospetroliferos": "http://www.sat.gob.mx/hidrocarburospetroliferos", "@Version": "1.0", "@TipoPermiso": "PER03", "@NumeroPermiso": "PL/364/DIS/OM/2015", "@ClaveHYP": "15101514", "@SubProductoHYP": "SP16" } } ] } } ], "Impuestos": { "TotalImpuestosRetenidos": "0.21", "TotalImpuestosTrasladados": "0.16", "Retenciones": [ { "Impuesto": "001", "Importe": "0.10" }, { "Impuesto": "002", "Importe": "0.11" } ], "Traslados": [ { "Base": "1", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "0.16" } ] }, "Complemento": { "Any": [ { "leyendasFisc:LeyendasFiscales": { "@xmlns:leyendasFisc": "http://www.sat.gob.mx/leyendasFiscales", "@version": "1.0", "leyendasFisc:Leyenda": [ { "@disposicionFiscal": "ISR", "@norma": "133", "@textoLeyenda": "Efectos fiscales al pago" } ] } } ] } } ``` --- # Impuestos Locales 1.0 Fuente: https://developers.sw.com.mx/knowledge-base/cfdi40-impuestos-locales-10/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento para incluir los datos que identifiquen un impuesto local tales como: impuestos sobre alojamiento o servicios de hospedaje, servicio de profesionistas, arrendamientos, entre otros. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Impuesto Cedular ``` ``` Impuesto Hospedaje ``` ``` ### Ejemplos JSON Impuesto Cedular ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "270", "Fecha": "2026-08-28T08:01:05", "Sello": "", "FormaPago": 99, "NoCertificado": "", "Certificado": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": 200, "Moneda": "MXN", "TipoCambio": "1", "Total": 135.16, "Exportacion": "01", "MetodoPago": "PPD", "LugarExpedicion": "20000", "TipoDeComprobante": "I", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "G01" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 1, "Impuesto": "002", "TasaOCuota": 0.160000, "Importe": 0.16, "TipoFactor": "Tasa" } ] }, "ClaveProdServ": "50211503", "Cantidad": 1, "ClaveUnidad": "E48", "Unidad": "SERVICIO", "Descripcion": "Servicio", "ValorUnitario": 200, "Importe": 200, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 1, "Impuesto": "002", "TasaOCuota": 0.160000, "Importe": 0.16, "TipoFactor": "Tasa" } ], "TotalImpuestosTrasladados": 0.16 }, "Complemento": { "Any": [ { "implocal:ImpuestosLocales": { "@xmlns:implocal": "http://www.sat.gob.mx/implocal", "@version": "1.0", "@TotaldeRetenciones": "65.00", "@TotaldeTraslados": "0.00", "implocal:RetencionesLocales": [ { "@ImpLocRetenido": "CEDULAR", "@TasadeRetencion": "2.50", "@Importe": "25.00" }, { "@ImpLocRetenido": "CEDULAR", "@TasadeRetencion": "1.00", "@Importe": "10.00" }, { "@ImpLocRetenido": "CEDULAR", "@TasadeRetencion": "3.00", "@Importe": "30.00" } ] } } ] } } ``` Impuesto Hospedaje ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "271", "Fecha": "2026-08-28T08:01:05", "Sello": "", "FormaPago": 99, "NoCertificado": "", "Certificado": "", "CondicionesDePago": "CondicionesDePago", "SubTotal": 1200, "Moneda": "MXN", "TipoCambio": "1", "Total": 1440, "Exportacion": "01", "MetodoPago": "PPD", "LugarExpedicion": "20000", "TipoDeComprobante": "I", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "CACX7605101P8", "Nombre": "XOCHILT CASAS CHAVEZ", "DomicilioFiscalReceptor": "36257", "RegimenFiscalReceptor": 612, "UsoCFDI": "G01" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 1200, "Impuesto": "002", "TasaOCuota": 0.160000, "Importe": 192, "TipoFactor": "Tasa" } ] }, "ClaveProdServ": "90111501", "Cantidad": 1, "ClaveUnidad": "E48", "Descripcion": "HABITACION DOBLE", "ValorUnitario": 1200, "Importe": 1200, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 1200, "Impuesto": "002", "TasaOCuota": 0.160000, "Importe": 192, "TipoFactor": "Tasa" } ], "TotalImpuestosTrasladados": 192 }, "Complemento": { "Any": [ { "implocal:ImpuestosLocales": { "@xmlns:implocal": "http://www.sat.gob.mx/implocal", "@version": "1.0", "@TotaldeRetenciones": "0.00", "@TotaldeTraslados": "48.00", "implocal:TrasladosLocales": { "@ImpLocTrasladado": "IMPUESTO DE HOSPEDAJE", "@TasadeTraslado": "4.00", "@Importe": "48.00" } } } ] } } ``` --- # INE 1.1 Fuente: https://developers.sw.com.mx/knowledge-base/ine-1-1/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento utilizado por todos los contribuyentes que vendan, enajenen, arrienden o proporcionen bienes o servicios de manera onerosa a los Partidos Políticos y Asociaciones Civiles (tratándose de aspirantes y candidatos independientes), mismo que deberá incorporarse en los CFDI que emitan a favor de dichos partidos y asociaciones en los procesos de precampaña y campaña, cuando se trate de la adquisición o contratación de propaganda, incluyendo la utilitaria y publicidad, así como de espectáculos, cantantes y grupos musicales, bienes y servicios contratados para la realización de eventos de precampaña y campaña sin importar el monto, lo anterior de conformidad con el artículo 46 del Reglamento de Fiscalización del Instituto Nacional Electoral. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Ingreso ``` ``` ### Ejemplos JSON Ingreso ``` { "Version": "4.0", "Fecha": "2026-08-28T08:01:05", "Serie": "SW N8N Examples", "Folio": "263", "FormaPago": "01", "CondicionesDePago": "30 días", "SubTotal": "200.00", "Moneda": "MXN", "Exportacion": "01", "TipoCambio": "1", "Total": "228.00", "TipoDeComprobante": "I", "MetodoPago": "PUE", "LugarExpedicion": "45070", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "UsoCFDI": "G03", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601" }, "Conceptos": [ { "Cantidad": "1.000000", "Unidad": "PZA", "Descripcion": "TEST", "ValorUnitario": "100.00", "Importe": "100.00", "ClaveProdServ": "01010101", "ClaveUnidad": "EA", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "100.00", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "16.00" } ], "Retenciones": [ { "Base": "100.00", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.020000", "Importe": "2.00" } ] } }, { "Cantidad": "1.000000", "Unidad": "PZA", "Descripcion": "TEST", "ValorUnitario": "100.00", "Importe": "100.00", "ClaveProdServ": "01010101", "ClaveUnidad": "EA", "ObjetoImp": "02", "Impuestos": { "Traslados": [ { "Base": "100.00", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": "16.00" } ], "Retenciones": [ { "Base": "100.00", "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.020000", "Importe": "2.00" } ] } } ], "Impuestos": { "TotalImpuestosRetenidos": "4.00", "TotalImpuestosTrasladados": "32.00", "Retenciones": [ { "Impuesto": "002", "Importe": "4.00" } ], "Traslados": [ { "Base": "200.00", "Impuesto": "002", "Importe": "32.00", "TasaOCuota": "0.160000", "TipoFactor": "Tasa" } ] }, "Complemento": { "Any": [ { "ine:INE": { "Version": "1.1", "TipoProceso": "Ordinario", "TipoComite": "Ejecutivo Nacional" } } ] } } ``` --- # Instituciones Educativas Privadas 1.0 Fuente: https://developers.sw.com.mx/knowledge-base/cfdi40-instituciones-educativas-privadas10/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento concepto necesario para la expedición de las facturas por parte de las Instituciones Educativas Privadas, para los efectos del artículo primero y cuarto del Decreto por el que se otorga un estímulo fiscal en relación con los pagos por servicios educativos. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Ingreso ``` ``` ### Ejemplos JSON Ingreso ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "265", "Fecha": "2026-08-28T08:01:05", "Sello": "", "FormaPago": "01", "FormaPagoSpecified": true, "NoCertificado": "", "Certificado": "", "SubTotal": 1, "Moneda": "MXN", "Total": 1, "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "MetodoPagoSpecified": true, "LugarExpedicion": "03100", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 603 }, "Receptor": { "Rfc": "CACX7605101P8", "Nombre": "XOCHILT CASAS CHAVEZ", "DomicilioFiscalReceptor": "36257", "RegimenFiscalReceptor": 612, "UsoCFDI": "G03" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 1, "Impuesto": "002", "TipoFactor": "Exento" } ] }, "ComplementoConcepto": { "Any": [ { "iedu:instEducativas": { "@xmlns:iedu": "http://www.sat.gob.mx/iedu", "@rfcPago": "CACX7605101P8", "@autRVOE": "118141", "@nivelEducativo": "Primaria", "@CURP": "XEXX010101HNEXXXA4", "@nombreAlumno": "RUBINHO LOPEZ ADILENE", "@version": "1.0" } } ] }, "ClaveProdServ": "86121500", "NoIdentificacion": "292295", "Cantidad": 1, "ClaveUnidad": "E48", "Descripcion": "PAGO DE INSCRIPCIÓN", "ValorUnitario": 1, "Importe": 1, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 1, "Impuesto": "002", "TipoFactor": "Exento" } ] } } ``` --- # Leyendas Fiscales Fuente: https://developers.sw.com.mx/knowledge-base/leyendas-fiscales-2/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento que permite incluir en la factura leyendas que son consideradas en las disposiciones fiscales. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Ingreso ``` ``` ### Ejemplos JSON Ingreso ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "212", "Fecha": "2026-08-28T08:01:03", "CondicionesDePago": "CondicionesDePago", "SubTotal": "10164.53", "Moneda": "MXN", "TipoCambio": "1", "Total": "10164.53", "TipoDeComprobante": "I", "Exportacion": "01", "LugarExpedicion": "38160", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "DomicilioFiscalReceptor": "42501", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "73151500", "NoIdentificacion": "CG0141-80291491", "Cantidad": 15840, "ClaveUnidad": "E48", "Descripcion": "SERVICIO DE MANUFACTURA (80291491)", "ValorUnitario": 0.6417, "Importe": 10164.53, "ObjetoImp": "01" } ], "AddendaSpecified": true, "FormaPago": "99", "MetodoPago": "PPD", "Complemento": { "Any": [ { "leyendasFisc:LeyendasFiscales": { "@xmlns:leyendasFisc": "http://www.sat.gob.mx/leyendasFiscales", "@version": "1.0", "leyendasFisc:Leyenda": { "@disposicionFiscal": "ISR", "@norma": "133", "@textoLeyenda": "Efectos fiscales al pago" } } } ] } } ``` --- # Notarios Públicos 1.0 Fuente: https://developers.sw.com.mx/knowledge-base/notarios-publicos-1-0/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento utilizado para el manejo de la venta o traslado de bienes inmuebles o servidumbres de paso que fueron indemnizadas en un solo pago, y se incluye en la factura. Deberá ser utilizado únicamente por notarios públicos, para el manejo de operaciones de compraventa de bienes inmuebles. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Ingreso ``` ``` ### Ejemplos JSON Ingreso ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "273", "Fecha": "2026-08-28T08:01:05", "FormaPago": "01", "SubTotal": 50000, "Moneda": "MXN", "Total": 58000, "Exportacion": "01", "TipoDeComprobante": "I", "MetodoPago": "PUE", "LugarExpedicion": "22214", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "G01" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 50000, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 8000 } ] }, "ClaveProdServ": "10201801", "NoIdentificacion": "02", "Cantidad": 1, "ClaveUnidad": "LM", "Unidad": "METRO LINEAL", "Descripcion": "TERRENO 10x8 MTS", "ValorUnitario": 50000, "Importe": 50000, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 50000, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 8000 } ], "TotalImpuestosTrasladados": 8000 }, "Complemento": { "Any": [ { "notariospublicos:NotariosPublicos": { "@xmlns:notariospublicos": "http://www.sat.gob.mx/notariospublicos", "@Version": "1.0", "notariospublicos:DescInmuebles": { "notariospublicos:DescInmueble": { "@TipoInmueble": "01", "@Calle": "8 De Julio", "@Municipio": "Zapopan", "@Estado": "01", "@Pais": "MEX", "@CodigoPostal": "45236" } }, "notariospublicos:DatosOperacion": { "@NumInstrumentoNotarial": "1234", "@FechaInstNotarial": "2022-05-10", "@MontoOperacion": "50000", "@Subtotal": "42000", "@IVA": "8000" }, "notariospublicos:DatosNotario": { "@CURP": "XEXX010101HNEXXXA4", "@NumNotaria": "123", "@EntidadFederativa": "01" }, "notariospublicos:DatosEnajenante": { "@CoproSocConyugalE": "Si", "notariospublicos:DatosUnEnajenante": { "@Nombre": "KARLA", "@ApellidoPaterno": "FUENTE", "@RFC": "FUNK671228PH6", "@CURP": "XEXX010101HNEXXXA4" } }, "notariospublicos:DatosAdquiriente": { "@CoproSocConyugalE": "Si", "notariospublicos:DatosUnAdquiriente": { "@Nombre": "NGRID XODAR JIMENEZ", "@RFC": "XOJI740919U48", "@CURP": "XEXX010101HNEXXXA4" } } } } ] } } ``` --- # Nómina 1.2 Rev. E Fuente: https://developers.sw.com.mx/knowledge-base/nomina-1-2/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento para expresar la información que ampara conceptos de ingresos por salarios, la prestación de un servicio personal subordinado o conceptos asimilados a salarios. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Nómina ``` ``` Nómina Con Incapacidades ``` ``` Nómina Con Horas Extra ``` ``` Nómina Con Bonos, Fondo Ahorro y Deducciones ``` ``` Nómina Sin Deducciones ``` ``` Nómina Extraordinaria ``` ``` Nómina Separación Indemnización ``` ``` Nómina Jubilación Pensión Retiro Una sola exhibición ``` ``` Parcialidades ``` ``` Nómina Asimilados ``` ``` Nómina Viáticos En un CFDI de nómina independiente, que ampare sólo la entrega del viático. ``` ``` En el CFDI de nómina del periodo que comprenda la fecha en que el recurso fue entregado al trabajador. ``` ``` Nómina con SNCF ``` ``` Subsidio causado al empleo ``` ``` ### Ejemplos JSON Nómina ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "176", "Fecha": "2026-08-28T08:01:03", "SubTotal": "5000.00", "Descuento": "300.00", "Moneda": "MXN", "Total": "4700.00", "TipoDeComprobante": "N", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "45610", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "XOJI740919U48", "Nombre": "INGRID XODAR JIMENEZ", "DomicilioFiscalReceptor": "76028", "RegimenFiscalReceptor": "605", "UsoCFDI": "CN01" }, "Conceptos": [ { "ClaveProdServ": "84111505", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago de nómina", "ValorUnitario": "5000.00", "Importe": "5000.00", "Descuento": "300.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Nomina12:Nomina": { "Version": "1.2", "TipoNomina": "O", "FechaPago": "2023-06-01", "FechaInicialPago": "2023-05-16", "FechaFinalPago": "2023-05-31", "NumDiasPagados": "15", "TotalPercepciones": "5000.00", "TotalDeducciones": "300.00", "Emisor": { "RegistroPatronal": "B5510768108", "RfcPatronOrigen": "EKU9003173C9" }, "Receptor": { "Curp": "XEXX010101HNEXXXA4", "NumSeguridadSocial": "000000", "FechaInicioRelLaboral": "2015-01-01", "Antigüedad": "P438W", "TipoContrato": "01", "TipoJornada": "01", "TipoRegimen": "03", "NumEmpleado": "120", "Departamento": "Desarrollo", "Puesto": "Ingeniero de Software", "RiesgoPuesto": "1", "PeriodicidadPago": "04", "CuentaBancaria": "1111111111", "Banco": "002", "SalarioBaseCotApor": "490.22", "SalarioDiarioIntegrado": "146.47", "ClaveEntFed": "JAL" }, "Percepciones": { "TotalSueldos": "5000.0", "TotalGravado": "2808.8", "TotalExento": "2191.2", "Percepcion": [ { "TipoPercepcion": "001", "Clave": "00500", "Concepto": "Sueldos, Salarios Rayas y Jornales", "ImporteGravado": "2808.8", "ImporteExento": "2191.2" } ] }, "Deducciones": { "TotalOtrasDeducciones": "200", "TotalImpuestosRetenidos": "100", "Deduccion": [ { "TipoDeduccion": "001", "Clave": "00301", "Concepto": "Seguridad Social", "Importe": "200" }, { "TipoDeduccion": "002", "Clave": "00302", "Concepto": "ISR", "Importe": "100" } ] } } } ] } } ``` Nómina Con Incapacidades ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "177", "Fecha": "2026-08-28T08:01:03", "SubTotal": "5000.00", "Descuento": "300.00", "Moneda": "MXN", "Total": "4700.00", "TipoDeComprobante": "N", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "45610", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "XOJI740919U48", "Nombre": "INGRID XODAR JIMENEZ", "DomicilioFiscalReceptor": "76028", "RegimenFiscalReceptor": "605", "UsoCFDI": "CN01" }, "Conceptos": [ { "ClaveProdServ": "84111505", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago de nómina", "ValorUnitario": "5000.00", "Importe": "5000.00", "Descuento": "300.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Nomina12:Nomina": { "Version": "1.2", "TipoNomina": "O", "FechaPago": "2023-06-01", "FechaInicialPago": "2023-05-16", "FechaFinalPago": "2023-05-31", "NumDiasPagados": "15", "TotalPercepciones": "5000.00", "TotalDeducciones": "300.00", "Emisor": { "RegistroPatronal": "B5510768108", "RfcPatronOrigen": "EKU9003173C9" }, "Receptor": { "Curp": "XEXX010101HNEXXXA4", "NumSeguridadSocial": "000000", "FechaInicioRelLaboral": "2015-01-01", "Antigüedad": "P438W", "TipoContrato": "01", "TipoJornada": "01", "TipoRegimen": "03", "NumEmpleado": "120", "Departamento": "Desarrollo", "Puesto": "Ingeniero de Software", "RiesgoPuesto": "1", "PeriodicidadPago": "04", "CuentaBancaria": "1111111111", "Banco": "002", "SalarioBaseCotApor": "490.22", "SalarioDiarioIntegrado": "146.47", "ClaveEntFed": "JAL" }, "Percepciones": { "TotalSueldos": "5000.0", "TotalGravado": "2808.8", "TotalExento": "2191.2", "Percepcion": [ { "TipoPercepcion": "001", "Clave": "00500", "Concepto": "Sueldos, Salarios Rayas y Jornales", "ImporteGravado": "2808.8", "ImporteExento": "2191.2" } ] }, "Deducciones": { "TotalOtrasDeducciones": "200", "TotalImpuestosRetenidos": "100", "Deduccion": [ { "TipoDeduccion": "001", "Clave": "00301", "Concepto": "Seguridad Social", "Importe": "200" }, { "TipoDeduccion": "002", "Clave": "00302", "Concepto": "ISR", "Importe": "100" } ] }, "Incapacidades": [ { "DiasIncapacidad": 1, "TipoIncapacidad": "01", "ImporteMonetario": 100 } ] } } ] } } ``` Nómina Con Horas Extra ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "178", "Fecha": "2026-08-28T08:01:03", "SubTotal": "5100.00", "Descuento": "300.00", "Moneda": "MXN", "Total": "4800.00", "TipoDeComprobante": "N", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "45610", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "XOJI740919U48", "Nombre": "INGRID XODAR JIMENEZ", "DomicilioFiscalReceptor": "76028", "RegimenFiscalReceptor": "605", "UsoCFDI": "CN01" }, "Conceptos": [ { "ClaveProdServ": "84111505", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago de nómina", "ValorUnitario": "5100.00", "Importe": "5100.00", "Descuento": "300.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Nomina12:Nomina": { "Version": "1.2", "TipoNomina": "O", "FechaPago": "2023-06-01", "FechaInicialPago": "2023-05-16", "FechaFinalPago": "2023-05-31", "NumDiasPagados": "15", "TotalPercepciones": "5100.00", "TotalDeducciones": "300.00", "Emisor": { "RegistroPatronal": "B5510768108", "RfcPatronOrigen": "EKU9003173C9" }, "Receptor": { "Curp": "XEXX010101HNEXXXA4", "NumSeguridadSocial": "000000", "FechaInicioRelLaboral": "2015-01-01", "Antigüedad": "P438W", "TipoContrato": "01", "TipoJornada": "01", "TipoRegimen": "03", "NumEmpleado": "120", "Departamento": "Desarrollo", "Puesto": "Ingeniero de Software", "RiesgoPuesto": "1", "PeriodicidadPago": "04", "CuentaBancaria": "1111111111", "Banco": "002", "SalarioBaseCotApor": "490.22", "SalarioDiarioIntegrado": "146.47", "ClaveEntFed": "JAL" }, "Percepciones": { "TotalSueldos": "5100.0", "TotalGravado": "2858.8", "TotalExento": "2241.2", "Percepcion": [ { "TipoPercepcion": "001", "Clave": "00500", "Concepto": "Sueldos, Salarios Rayas y Jornales", "ImporteGravado": "2808.8", "ImporteExento": "2191.2" }, { "TipoPercepcion": "019", "Clave": "00100", "Concepto": "Horas Extra", "ImporteGravado": "50.00", "ImporteExento": "50.00", "HorasExtra": [ { "Dias": 1, "TipoHoras": "01", "HorasExtra": 2, "ImportePagado": "100.00" } ] } ] }, "Deducciones": { "TotalOtrasDeducciones": "200", "TotalImpuestosRetenidos": "100", "Deduccion": [ { "TipoDeduccion": "001", "Clave": "00301", "Concepto": "Seguridad Social", "Importe": "200" }, { "TipoDeduccion": "002", "Clave": "00302", "Concepto": "ISR", "Importe": "100" } ] }, "Incapacidades": [ { "DiasIncapacidad": 1, "TipoIncapacidad": "01", "ImporteMonetario": 100 } ] } } ] } } ``` Nómina Con Bonos, Fondo Ahorro y Deducciones ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "179", "Fecha": "2026-08-28T08:01:03", "SubTotal": 1842.82, "Descuento": 608.71, "Moneda": "MXN", "Total": 1234.11, "TipoDeComprobante": "N", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "XOJI740919U48", "Nombre": "INGRID XODAR JIMENEZ", "DomicilioFiscalReceptor": "76028", "RegimenFiscalReceptor": 605, "UsoCFDI": "CN01" }, "Conceptos": [ { "ClaveProdServ": "84111505", "Cantidad": 1, "ClaveUnidad": "ACT", "Descripcion": "Pago de nómina", "ValorUnitario": 1842.82, "Importe": 1842.82, "Descuento": 608.71, "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Nomina12:Nomina": { "Version": "1.2", "TipoNomina": "O", "FechaPago": "2023-06-11", "FechaInicialPago": "2023-06-05", "FechaFinalPago": "2023-06-11", "NumDiasPagados": "7", "TotalPercepciones": "1842.82", "TotalDeducciones": "608.71", "TotalOtrosPagos": "0.00", "Emisor": { "RegistroPatronal": "Z0000001234" }, "Receptor": { "Curp": "XEXX010101MNEXXXA8", "NumSeguridadSocial": "0000000000", "FechaInicioRelLaboral": "2021-03-02", "Antigüedad": "P118W", "TipoContrato": "01", "Sindicalizado": "No", "TipoRegimen": "02", "NumEmpleado": "111111", "RiesgoPuesto": "4", "PeriodicidadPago": "02", "SalarioDiarioIntegrado": "180.96", "ClaveEntFed": "GUA" }, "Percepciones": { "TotalSueldos": "1842.82", "TotalGravado": "1452.36", "TotalExento": "390.46", "Percepcion": [ { "TipoPercepcion": "001", "Clave": "SP01", "Concepto": "SUELDO", "ImporteGravado": "1210.30", "ImporteExento": "0.00" }, { "TipoPercepcion": "010", "Clave": "SP02", "Concepto": "PREMIO PUNTUALIDAD", "ImporteGravado": "121.03", "ImporteExento": "0.00" }, { "TipoPercepcion": "029", "Clave": "SP03", "Concepto": "MONEDERO ELECTRONICO", "ImporteGravado": "0.00", "ImporteExento": "269.43" }, { "TipoPercepcion": "010", "Clave": "SP04", "Concepto": "PREMIO DE ASISTENCIA", "ImporteGravado": "121.03", "ImporteExento": "0.00" }, { "TipoPercepcion": "005", "Clave": "SP54", "Concepto": "APORTACION FONDO AHORRO", "ImporteGravado": "0.00", "ImporteExento": "121.03" } ] }, "Deducciones": { "TotalOtrasDeducciones": "572.14", "TotalImpuestosRetenidos": "36.57", "Deduccion": [ { "TipoDeduccion": "004", "Clave": "ZA09", "Concepto": "APORTACION FONDO AHORRO", "Importe": "121.03" }, { "TipoDeduccion": "002", "Clave": "ISR", "Concepto": "ISR", "Importe": "36.57" }, { "TipoDeduccion": "001", "Clave": "IMSS", "Concepto": "Cuota de Seguridad Social EE", "Importe": "30.08" }, { "TipoDeduccion": "004", "Clave": "ZA68", "Concepto": "DEDUCCION FDO AHORRO PAT", "Importe": "121.03" }, { "TipoDeduccion": "018", "Clave": "ZA11", "Concepto": "APORTACION CAJA AHORRO", "Importe": "300.00" } ] }, "OtrosPagos": [ { "TipoOtroPago": "002", "Clave": "ISRSUB", "Concepto": "Subsidio ISR para empleo", "Importe": "0.0", "SubsidioAlEmpleo": { "SubsidioCausado": "0.0" }, "CompensacionSaldosAFavor": { "SaldoAFavor": "0.0", "Año": "2022", "RemanenteSalFav": "0.0" } } ] } } ] } } ``` Nómina Sin Deducciones ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "180", "Fecha": "2026-08-28T08:01:03", "SubTotal": "5000.00", "Descuento": "0", "Moneda": "MXN", "Total": "5000.00", "TipoDeComprobante": "N", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "45610", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "XOJI740919U48", "Nombre": "INGRID XODAR JIMENEZ", "DomicilioFiscalReceptor": "76028", "RegimenFiscalReceptor": "605", "UsoCFDI": "CN01" }, "Conceptos": [ { "ClaveProdServ": "84111505", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago de nómina", "ValorUnitario": "5000.00", "Importe": "5000.00", "Descuento": "0.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Nomina12:Nomina": { "Version": "1.2", "TipoNomina": "O", "FechaPago": "2023-06-01", "FechaInicialPago": "2023-05-16", "FechaFinalPago": "2023-05-31", "NumDiasPagados": "15", "TotalPercepciones": "5000.00", "Emisor": { "RegistroPatronal": "B5510768108", "RfcPatronOrigen": "EKU9003173C9" }, "Receptor": { "Curp": "XEXX010101HNEXXXA4", "NumSeguridadSocial": "000000", "FechaInicioRelLaboral": "2015-01-01", "Antigüedad": "P438W", "TipoContrato": "01", "TipoJornada": "01", "TipoRegimen": "03", "NumEmpleado": "120", "Departamento": "Desarrollo", "Puesto": "Ingeniero de Software", "RiesgoPuesto": "1", "PeriodicidadPago": "04", "CuentaBancaria": "1111111111", "Banco": "002", "SalarioBaseCotApor": "490.22", "SalarioDiarioIntegrado": "146.47", "ClaveEntFed": "JAL" }, "Percepciones": { "TotalSueldos": "5000.0", "TotalGravado": "2808.8", "TotalExento": "2191.2", "Percepcion": [ { "TipoPercepcion": "001", "Clave": "00500", "Concepto": "Sueldos, Salarios Rayas y Jornales", "ImporteGravado": "2808.8", "ImporteExento": "2191.2" } ] } } } ] } } ``` Nómina Extraordinaria ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "181", "Fecha": "2026-08-28T08:01:03", "SubTotal": "10000.00", "Descuento": "0", "Moneda": "MXN", "Total": "10000.00", "TipoDeComprobante": "N", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "45610", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "XOJI740919U48", "Nombre": "INGRID XODAR JIMENEZ", "DomicilioFiscalReceptor": "76028", "RegimenFiscalReceptor": "605", "UsoCFDI": "CN01" }, "Conceptos": [ { "ClaveProdServ": "84111505", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago de nómina", "ValorUnitario": "10000.00", "Importe": "10000.00", "Descuento": "0", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Nomina12:Nomina": { "Version": "1.2", "TipoNomina": "E", "FechaPago": "2023-06-01", "FechaInicialPago": "2023-05-02", "FechaFinalPago": "2023-06-01", "NumDiasPagados": "30", "TotalPercepciones": "10000.00", "Emisor": { "RegistroPatronal": "B5510768108", "RfcPatronOrigen": "EKU9003173C9" }, "Receptor": { "Curp": "XEXX010101HNEXXXA4", "NumSeguridadSocial": "000000", "FechaInicioRelLaboral": "2015-01-01", "Antigüedad": "P439W", "TipoContrato": "01", "TipoJornada": "01", "TipoRegimen": "03", "NumEmpleado": "120", "Departamento": "Desarrollo", "Puesto": "Ingeniero de Software", "RiesgoPuesto": "1", "PeriodicidadPago": "99", "CuentaBancaria": "1111111111", "Banco": "002", "SalarioDiarioIntegrado": "146.47", "ClaveEntFed": "JAL" }, "Percepciones": { "TotalSueldos": "10000.00", "TotalGravado": "0", "TotalExento": "10000.00", "Percepcion": [ { "TipoPercepcion": "002", "Clave": "00500", "Concepto": "Gratificación Anual (Aguinaldo)", "ImporteGravado": "0.00", "ImporteExento": "10000.00" } ] } } } ] } } ``` Nómina Separación Indemnización ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "182", "Fecha": "2026-08-28T08:01:03", "SubTotal": "10000.00", "Descuento": "0", "Moneda": "MXN", "Total": "10000.00", "TipoDeComprobante": "N", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "45610", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "XOJI740919U48", "Nombre": "INGRID XODAR JIMENEZ", "DomicilioFiscalReceptor": "76028", "RegimenFiscalReceptor": "605", "UsoCFDI": "CN01" }, "Conceptos": [ { "ClaveProdServ": "84111505", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago de nómina", "ValorUnitario": "10000.00", "Importe": "10000.00", "Descuento": "0", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Nomina12:Nomina": { "Version": "1.2", "TipoNomina": "E", "FechaPago": "2023-06-01", "FechaInicialPago": "2023-05-02", "FechaFinalPago": "2023-06-01", "NumDiasPagados": "30", "TotalPercepciones": "10000.00", "Emisor": { "RegistroPatronal": "B5510768108", "RfcPatronOrigen": "EKU9003173C9" }, "Receptor": { "Curp": "XEXX010101HNEXXXA4", "NumSeguridadSocial": "000000", "FechaInicioRelLaboral": "2015-01-01", "Antigüedad": "P439W", "TipoContrato": "01", "TipoJornada": "01", "TipoRegimen": "03", "NumEmpleado": "120", "Departamento": "Desarrollo", "Puesto": "Ingeniero de Software", "RiesgoPuesto": "1", "PeriodicidadPago": "99", "CuentaBancaria": "1111111111", "Banco": "002", "SalarioDiarioIntegrado": "146.47", "ClaveEntFed": "JAL" }, "Percepciones": { "TotalSeparacionIndemnizacion": "10500.00", "TotalGravado": "0", "TotalExento": "10500.00", "Percepcion": [ { "TipoPercepcion": "023", "Clave": "00500", "Concepto": "Pagos por separación", "ImporteGravado": "0.00", "ImporteExento": "10000.00" }, { "TipoPercepcion": "025", "Clave": "00100", "Concepto": "Indemnizaciones", "ImporteGravado": "0.00", "ImporteExento": "500.00" } ], "SeparacionIndemnizacion": { "TotalPagado": "10500.00", "NumAñosServicio": "1", "UltimoSueldoMensOrd": "10000.00", "IngresoAcumulable": "10000.00", "IngresoNoAcumulable": "0.00" } } } } ] } } ``` Nómina Jubilación Pensión Retiro Una sola exhibición ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "183", "Fecha": "2026-08-28T08:01:03", "SubTotal": "10000.00", "Descuento": "0", "Moneda": "MXN", "Total": "10000.00", "TipoDeComprobante": "N", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "45610", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "XOJI740919U48", "Nombre": "INGRID XODAR JIMENEZ", "DomicilioFiscalReceptor": "76028", "RegimenFiscalReceptor": "605", "UsoCFDI": "CN01" }, "Conceptos": [ { "ClaveProdServ": "84111505", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago de nómina", "ValorUnitario": "10000.00", "Importe": "10000.00", "Descuento": "0", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Nomina12:Nomina": { "Version": "1.2", "TipoNomina": "E", "FechaPago": "2023-06-01", "FechaInicialPago": "2023-05-02", "FechaFinalPago": "2023-06-01", "NumDiasPagados": "30", "TotalPercepciones": "10000.00", "Emisor": { "RegistroPatronal": "B5510768108", "RfcPatronOrigen": "EKU9003173C9" }, "Receptor": { "Curp": "XEXX010101HNEXXXA4", "NumSeguridadSocial": "000000", "FechaInicioRelLaboral": "2015-01-01", "Antigüedad": "P439W", "TipoContrato": "01", "TipoJornada": "01", "TipoRegimen": "03", "NumEmpleado": "120", "Departamento": "Desarrollo", "Puesto": "Ingeniero de Software", "RiesgoPuesto": "1", "PeriodicidadPago": "99", "CuentaBancaria": "1111111111", "Banco": "002", "SalarioDiarioIntegrado": "146.47", "ClaveEntFed": "JAL" }, "Percepciones": { "TotalJubilacionPensionRetiro": "10000.00", "TotalGravado": "0", "TotalExento": "10000.00", "Percepcion": [ { "TipoPercepcion": "039", "Clave": "00500", "Concepto": "Jubilaciones, pensiones o haberes de retiro", "ImporteGravado": "0.00", "ImporteExento": "10000.00" } ], "JubilacionPensionRetiro": { "IngresoAcumulable": "10000.00", "IngresoNoAcumulable": "0.00", "TotalUnaExhibicion": "10000.00" } } } } ] } } ``` Parcialidad ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "184", "Fecha": "2026-08-28T08:01:03", "SubTotal": "10000.00", "Descuento": "0", "Moneda": "MXN", "Total": "10000.00", "TipoDeComprobante": "N", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "45610", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "XOJI740919U48", "Nombre": "INGRID XODAR JIMENEZ", "DomicilioFiscalReceptor": "76028", "RegimenFiscalReceptor": "605", "UsoCFDI": "CN01" }, "Conceptos": [ { "ClaveProdServ": "84111505", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago de nómina", "ValorUnitario": "10000.00", "Importe": "10000.00", "Descuento": "0", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Nomina12:Nomina": { "Version": "1.2", "TipoNomina": "E", "FechaPago": "2023-06-01", "FechaInicialPago": "2023-05-02", "FechaFinalPago": "2023-06-01", "NumDiasPagados": "30", "TotalPercepciones": "10000.00", "Emisor": { "RegistroPatronal": "B5510768108", "RfcPatronOrigen": "EKU9003173C9" }, "Receptor": { "Curp": "XEXX010101HNEXXXA4", "NumSeguridadSocial": "000000", "FechaInicioRelLaboral": "2015-01-01", "Antigüedad": "P439W", "TipoContrato": "01", "TipoJornada": "01", "TipoRegimen": "03", "NumEmpleado": "120", "Departamento": "Desarrollo", "Puesto": "Ingeniero de Software", "RiesgoPuesto": "1", "PeriodicidadPago": "99", "CuentaBancaria": "1111111111", "Banco": "002", "SalarioDiarioIntegrado": "146.47", "ClaveEntFed": "JAL" }, "Percepciones": { "TotalJubilacionPensionRetiro": "10000.00", "TotalGravado": "0", "TotalExento": "10000.00", "Percepcion": [ { "TipoPercepcion": "044", "Clave": "00500", "Concepto": "Jubilaciones, pensiones o haberes de retiro", "ImporteGravado": "0.00", "ImporteExento": "10000.00" } ], "JubilacionPensionRetiro": { "IngresoAcumulable": "10000.00", "IngresoNoAcumulable": "0.00", "TotalParcialidad": "3000.00", "MontoDiario": "100.00" } } } } ] } } ``` Nómina Viáticos En un CFDI de nómina independiente, que ampare sólo la entrega del viático. ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "185", "Fecha": "2026-08-28T08:01:03", "SubTotal": 3000.0, "Descuento": 3000.0, "Moneda": "MXN", "Total": 0.0, "TipoDeComprobante": "N", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "XOJI740919U48", "Nombre": "INGRID XODAR JIMENEZ", "DomicilioFiscalReceptor": "76028", "RegimenFiscalReceptor": 605, "UsoCFDI": "CN01" }, "Conceptos": [ { "ClaveProdServ": "84111505", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago de nómina", "ValorUnitario": 3000.0, "Importe": 3000.0, "Descuento": 3000.0, "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Nomina12:Nomina": { "Version": "1.2", "TipoNomina": "O", "FechaPago": "2023-06-01", "FechaInicialPago": "2023-05-16", "FechaFinalPago": "2023-05-31", "NumDiasPagados": "15", "TotalPercepciones": "3000", "TotalDeducciones": "3000", "TotalOtrosPagos": "0", "Emisor": { "RegistroPatronal": "B5510768108", "RfcPatronOrigen": "URE180429TM6" }, "Receptor": { "Curp": "XEXX010101HNEXXXA4", "NumSeguridadSocial": "000000", "FechaInicioRelLaboral": "2015-01-01", "Antigüedad": "P439W", "TipoContrato": "01", "TipoJornada": "01", "TipoRegimen": "03", "NumEmpleado": "120", "Departamento": "Desarrollo", "Puesto": "Ingeniero de Software", "RiesgoPuesto": "1", "PeriodicidadPago": "04", "CuentaBancaria": "1111111111", "Banco": "002", "SalarioBaseCotApor": "490.22", "SalarioDiarioIntegrado": "146.47", "ClaveEntFed": "JAL" }, "Percepciones": { "TotalSueldos": "3000", "TotalGravado": "0", "TotalExento": "3000", "Percepcion": [ { "TipoPercepcion": "050", "Clave": "050", "Concepto": "Viaticos", "ImporteGravado": "0", "ImporteExento": "3000" } ] }, "Deducciones": { "TotalOtrasDeducciones": "3000", "Deduccion": [ { "TipoDeduccion": "081", "Clave": "081", "Concepto": "Ajuste en viaticos entregados al trabajador", "Importe": "3000" } ] } } } ] } } ``` En el CFDI de nómina del periodo que comprenda la fecha en que el recurso fue entregado al trabajador. ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "186", "Fecha": "2026-08-28T08:01:03", "SubTotal": 18000.00, "Descuento": 2759.31, "Moneda": "MXN", "Total": 15240.69, "TipoDeComprobante": "N", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "XOJI740919U48", "Nombre": "INGRID XODAR JIMENEZ", "DomicilioFiscalReceptor": "76028", "RegimenFiscalReceptor": 605, "UsoCFDI": "CN01" }, "Conceptos": [ { "ClaveProdServ": "84111505", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago de nómina", "ValorUnitario": 18000.00, "Importe": 18000.00, "Descuento": 2759.31, "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Nomina12:Nomina": { "Version": "1.2", "TipoNomina": "O", "FechaPago": "2023-08-01", "FechaInicialPago": "2023-08-16", "FechaFinalPago": "2023-08-31", "NumDiasPagados": "15", "TotalPercepciones": "15000", "TotalDeducciones": "2759.31", "TotalOtrosPagos": "3000", "Emisor": { "RegistroPatronal": "B5510768108", "RfcPatronOrigen": "URE180429TM6" }, "Receptor": { "Curp": "XEXX010101HNEXXXA4", "NumSeguridadSocial": "000000", "FechaInicioRelLaboral": "2015-01-01", "Antigüedad": "P439W", "TipoContrato": "01", "TipoJornada": "01", "TipoRegimen": "03", "NumEmpleado": "120", "Departamento": "Desarrollo", "Puesto": "Ingeniero de Software", "RiesgoPuesto": "1", "PeriodicidadPago": "04", "CuentaBancaria": "1111111111", "Banco": "002", "SalarioBaseCotApor": "490.22", "SalarioDiarioIntegrado": "146.47", "ClaveEntFed": "JAL" }, "Percepciones": { "TotalSueldos": "15000.00", "TotalGravado": "15000.00", "TotalExento": "0", "Percepcion": [ { "TipoPercepcion": "001", "Clave": "001", "Concepto": "Sueldos, Salarios Rayas y Jornales", "ImporteGravado": "15000.00", "ImporteExento": "0.00" } ] }, "Deducciones": { "TotalImpuestosRetenidos": 2759.31, "Deduccion": [ { "TipoDeduccion": "002", "Clave": "002", "Concepto": "ISR", "Importe": "2759.31" } ] }, "OtrosPagos": [ { "TipoOtroPago": "003", "Clave": "003", "Concepto": "Viáticos (entregados al trabajador).", "Importe": 3000.00 } ] } } ] } } ``` Nómina con SNCF ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "187", "Fecha": "2026-08-28T08:01:03", "Sello": "", "NoCertificado": "", "Certificado": "", "SubTotal": "5000.00", "Descuento": "300.00", "Moneda": "MXN", "Total": "4700.00", "TipoDeComprobante": "N", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "45610", "Emisor": { "Rfc": "OÑO120726RX3", "Nombre": "ORGANICOS ÑAVEZ OSORIO", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "CACX7605101P8", "Nombre": "XOCHILT CASAS CHAVEZ", "DomicilioFiscalReceptor": "36257", "RegimenFiscalReceptor": "605", "UsoCFDI": "CN01" }, "Conceptos": [ { "ClaveProdServ": "84111505", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago de nómina", "ValorUnitario": "5000.00", "Importe": "5000.00", "Descuento": "300.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Nomina12:Nomina": { "Version": "1.2", "TipoNomina": "O", "FechaPago": "2023-06-01", "FechaInicialPago": "2023-05-16", "FechaFinalPago": "2023-05-31", "NumDiasPagados": "15", "TotalPercepciones": "5000.00", "TotalDeducciones": "300.00", "Emisor": { "RegistroPatronal": "B5510768108", "RfcPatronOrigen": "EKU9003173C9", "EntidadSNCF": { "OrigenRecurso": "IP" } }, "Receptor": { "Curp": "XEXX010101HNEXXXA4", "NumSeguridadSocial": "000000", "FechaInicioRelLaboral": "2015-01-01", "Antigüedad": "P439W", "TipoContrato": "01", "TipoJornada": "01", "TipoRegimen": "03", "NumEmpleado": "120", "Departamento": "Desarrollo", "Puesto": "Ingeniero de Software", "RiesgoPuesto": "1", "PeriodicidadPago": "04", "CuentaBancaria": "1111111111", "Banco": "002", "SalarioBaseCotApor": "490.22", "SalarioDiarioIntegrado": "146.47", "ClaveEntFed": "JAL" }, "Percepciones": { "TotalSueldos": "5000.0", "TotalGravado": "2808.8", "TotalExento": "2191.2", "Percepcion": [ { "TipoPercepcion": "001", "Clave": "00500", "Concepto": "Sueldos, Salarios Rayas y Jornales", "ImporteGravado": "2808.8", "ImporteExento": "2191.2" } ] }, "Deducciones": { "TotalOtrasDeducciones": "200", "TotalImpuestosRetenidos": "100", "Deduccion": [ { "TipoDeduccion": "001", "Clave": "00301", "Concepto": "Seguridad Social", "Importe": "200" }, { "TipoDeduccion": "002", "Clave": "00302", "Concepto": "ISR", "Importe": "100" } ] } } } ] } } ``` Subsidio causado al empleo ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "188", "Fecha": "2026-08-28T08:01:03", "SubTotal": "5000.00", "Descuento": "300.00", "Moneda": "MXN", "Total": "4700.00", "TipoDeComprobante": "N", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "45610", "Emisor": { "Rfc": "OÑO120726RX3", "Nombre": "ORGANICOS ÑAVEZ OSORIO", "RegimenFiscal": "603" }, "Receptor": { "Rfc": "CACX7605101P8", "Nombre": "XOCHILT CASAS CHAVEZ", "DomicilioFiscalReceptor": "36257", "RegimenFiscalReceptor": "605", "UsoCFDI": "CN01" }, "Conceptos": [ { "ClaveProdServ": "84111505", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago de nómina", "ValorUnitario": "5000.00", "Importe": "5000.00", "Descuento": "300.00", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Nomina12:Nomina": { "Version": "1.2", "TipoNomina": "O", "FechaPago": "2023-06-01", "FechaInicialPago": "2023-05-16", "FechaFinalPago": "2023-05-31", "NumDiasPagados": "15", "TotalPercepciones": "5000.00", "TotalDeducciones": "300.00", "Emisor": { "RegistroPatronal": "B5510768108", "RfcPatronOrigen": "EKU9003173C9", "EntidadSNCF": { "OrigenRecurso": "IP" } }, "Receptor": { "Curp": "XEXX010101HNEXXXA4", "NumSeguridadSocial": "000000", "FechaInicioRelLaboral": "2015-01-01", "Antigüedad": "P439W", "TipoContrato": "01", "TipoJornada": "01", "TipoRegimen": "03", "NumEmpleado": "120", "Departamento": "Desarrollo", "Puesto": "Ingeniero de Software", "RiesgoPuesto": "1", "PeriodicidadPago": "04", "CuentaBancaria": "1111111111", "Banco": "002", "SalarioBaseCotApor": "490.22", "SalarioDiarioIntegrado": "146.47", "ClaveEntFed": "JAL" }, "Percepciones": { "TotalSueldos": "5000.0", "TotalGravado": "2808.8", "TotalExento": "2191.2", "Percepcion": [ { "TipoPercepcion": "001", "Clave": "00500", "Concepto": "Sueldos, Salarios Rayas y Jornales", "ImporteGravado": "2808.8", "ImporteExento": "2191.2" } ] }, "Deducciones": { "TotalOtrasDeducciones": "200", "TotalImpuestosRetenidos": "100", "Deduccion": [ { "TipoDeduccion": "001", "Clave": "00301", "Concepto": "Seguridad Social", "Importe": "200" }, { "TipoDeduccion": "002", "Clave": "00302", "Concepto": "ISR", "Importe": "100" } ] } } } ] } } ``` --- # Obras De Artes Plásticas Y Antigüedades 1.0 Fuente: https://developers.sw.com.mx/knowledge-base/cfdi40-obras-de-artes-10/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento para incluir en las facturas la información de las ventas de obras de artes plásticas y de antigüedades que se realicen. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Ingreso ``` ``` ### Ejemplos JSON Ingreso ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "295", "Fecha": "2026-08-28T08:01:05", "FormaPago": 99, "CondicionesDePago": "CondicionesDePago", "SubTotal": 2000, "Descuento": 1, "Moneda": "MXN", "TipoCambio": "1", "Total": 2318.84, "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "S01" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 1999, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 319.84 } ] }, "ClaveProdServ": "01010101", "Cantidad": 1, "ClaveUnidad": "H87", "Unidad": "Servicio", "Descripcion": "Servicio", "ValorUnitario": 2000, "Importe": 2000, "Descuento": 1, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 1999, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 319.84 } ], "TotalImpuestosTrasladados": 319.84 }, "Complemento": { "Any": [ { "obrasarte:obrasarteantiguedades": { "@xmlns:obrasarte": "http://www.sat.gob.mx/arteantiguedades", "@Version": "1.0", "@TipoBien": "01", "@OtrosTipoBien": "NA", "@TituloAdquirido": "01", "@OtrosTituloAdquirido": "NA", "@Subtotal": 100.00, "@IVA": 16.00, "@FechaAdquisicion": "2022-07-25", "@CaracterísticasDeObraoPieza": "01" } } ] } } ``` --- # Pago En Especie 1.0 Fuente: https://developers.sw.com.mx/knowledge-base/pago-en-especie-1-0/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento que permite incorporar a la factura la información relacionada con la facilidad de pago en especie. Está orientado a los artistas plásticos mexicanos y extranjeros residentes en el país, que opten por el pago mediante la entrega de obras de arte de su producción a fin de cumplir sus obligaciones tributarias. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Ingreso ``` ``` ### Ejemplos JSON Ingreso ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "297", "Fecha": "2026-08-28T08:01:05", "FormaPago": 99, "CondicionesDePago": "CondicionesDePago", "SubTotal": 2000, "Moneda": "MXN", "TipoCambio": "1", "Total": 2000.16, "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "S01" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 1, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 0.16 } ] }, "ClaveProdServ": "01010101", "Cantidad": 1, "ClaveUnidad": "H87", "Unidad": "Servicio", "Descripcion": "Servicio", "ValorUnitario": 2000, "Importe": 2000, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 1, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 0.16 } ], "TotalImpuestosTrasladados": 0.16 }, "Complemento": { "Any": [ { "pagoenespecie:PagoEnEspecie": { "@xmlns:pagoenespecie": "http://www.sat.gob.mx/pagoenespecie", "@CvePIC":"A&C8317286A1-18000101-020", "@FolioSolDon":"PE-53-78436", "@PzaArtAProd":"1501", "@PzaArtDim":"5.17 metros de altura y 5,572 kilogramos de masa", "@PzaArtNombre":"El David", "@PzaArtTecn":"Esculpido en marmol a cincel", "@Version":"1.0" } } ] } } ``` --- # Pagos 2.0 Revisión B Fuente: https://developers.sw.com.mx/knowledge-base/pagos-2-0-revision-b/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento para registrar información sobre la recepción de pagos. El emisor de este complemento para recepción de pagos debe ser quien las leyes le obligue a expedir comprobantes por los actos o actividades que realicen, por los ingresos que se perciban o por las retenciones de contribuciones que efectúen. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Pago RFC Genérico ``` ``` Pago Sin Impuestos ``` ``` Pago Solo Retenciones ``` ``` Pago Solo Traslados ``` ``` Pago Parcialidades Parcialidad 1 ``` ``` Parcialidad 2. ``` ``` Parcialidad 3. ``` ``` Pago en Dolar ``` ``` Pago DoctoRelacionado en Dolar ``` ``` Pago en EUR y DR en USD ``` ``` Pago con monedaP y MonedaDR igual ``` ``` Pago con dos monedas distintas y DR en USD ``` ``` Pago con dos complementos ``` ``` Pago con Factoraje Nacional ``` ``` Extranjero ``` ``` Pagos Varios DR ``` ``` Pago con IVA Exento ``` ``` Pago con IVA Exento y Retenciones ``` ``` Pago con IVA y Retenciones al 16% ``` ``` Cobro Por Cuenta De Terceros Ingreso. ``` ``` Pago 1. ``` ``` Pago 2. ``` ``` Pago 3. ``` ``` Objeto de Impuesto 06 ``` ``` Objeto de Impuesto 07 ``` ``` ``` ``` Objeto de Impuesto 08 ``` ``` ### Ejemplos JSON Pago RFC Genérico ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "086", "Fecha": "2026-08-28T08:01:00", "SubTotal": 0, "Moneda": "XXX", "Total": 0, "TipoDeComprobante": "P", "Exportacion": "01", "LugarExpedicion": "75700", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "XAXX010101000", "Nombre": "PUBLICO GENERAL", "DomicilioFiscalReceptor": "75700", "RegimenFiscalReceptor": "616", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": 1, "ClaveUnidad": "ACT", "Descripcion": "Pago", "ValorUnitario": 0, "Importe": 0, "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Pago20:Pagos": { "Version": "2.0", "Totales": { "TotalTrasladosBaseIVA16": "5843.11", "TotalTrasladosImpuestoIVA16": "934.90", "MontoTotalPagos": "6778.00" }, "Pago": [ { "FechaPago": "2022-09-09T17:33:38", "FormaDePagoP": "01", "MonedaP": "MXN", "TipoCambioP": "1", "Monto": "6778.00", "DoctoRelacionado": [ { "IdDocumento": "b7c8d2bf-cb4e-4f84-af89-c68b6731206a", "Serie": "FA", "Folio": "N0000216349", "MonedaDR": "MXN", "EquivalenciaDR": "1", "NumParcialidad": "2", "ImpSaldoAnt": "6777.41", "ImpPagado": "6777.41", "ImpSaldoInsoluto": "0.00", "ObjetoImpDR": "02", "ImpuestosDR": { "TrasladosDR": [ { "BaseDR": "5842.600000", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.160000", "ImporteDR": "934.816000" } ] } }, { "IdDocumento": "94f4e541-bb38-4355-b779-02d337dc9720", "Serie": "FA", "Folio": "SI000032690", "MonedaDR": "MXN", "EquivalenciaDR": "1", "NumParcialidad": "1", "ImpSaldoAnt": "9610.81", "ImpPagado": "0.59", "ImpSaldoInsoluto": "9610.22", "ObjetoImpDR": "02", "ImpuestosDR": { "TrasladosDR": [ { "BaseDR": "0.510000", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.160000", "ImporteDR": "0.081600" } ] } } ], "ImpuestosP": { "TrasladosP": [ { "BaseP": "5843.110000", "ImpuestoP": "002", "TipoFactorP": "Tasa", "TasaOCuotaP": "0.160000", "ImporteP": "934.897600" } ] } } ] } } ] } } ``` Pago Sin Impuestos ``` { "Version": "4.0", "Fecha": "2026-08-28T08:01:00", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "P", "LugarExpedicion": "64530", "Exportacion": "01", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "CACX7605101P8", "Nombre": "XOCHILT CASAS CHAVEZ", "DomicilioFiscalReceptor": "36257", "RegimenFiscalReceptor": "605", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago", "ValorUnitario": "0", "Importe": "0", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Pago20:Pagos": { "Version": "2.0", "Totales": { "MontoTotalPagos": "1.00" }, "Pago": [ { "FechaPago": "2022-02-19T00:00:00", "FormaDePagoP": "03", "MonedaP": "MXN", "Monto": "1.00", "TipoCambioP": "1", "DoctoRelacionado": [ { "IdDocumento": "daca5d85-b8cd-463b-a056-b021fe33c2f9", "Serie": "SW N8N Examples", "Folio": "087", "MonedaDR": "MXN", "MetodoDePagoDR": "PUE", "NumParcialidad": "1", "ImpSaldoAnt": "500.00", "ImpPagado": "1.00", "ImpSaldoInsoluto": "499.00", "EquivalenciaDR": "1", "ObjetoImpDR": "01" } ] } ] } } ] } } ``` Pago Solo Retenciones ``` { "Version": "4.0", "Fecha": "2026-08-28T08:01:00", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "P", "LugarExpedicion": "64530", "Exportacion": "01", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "CACX7605101P8", "Nombre": "XOCHILT CASAS CHAVEZ", "DomicilioFiscalReceptor": "36257", "RegimenFiscalReceptor": "605", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago", "ValorUnitario": "0", "Importe": "0", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Pago20:Pagos": { "Version": "2.0", "Totales": { "MontoTotalPagos": "100.00", "TotalRetencionesIVA": "16.00", "TotalRetencionesIEPS": "4.00", "TotalRetencionesISR": "35.00" }, "Pago": [ { "FechaPago": "2022-02-19T00:00:00", "FormaDePagoP": "03", "MonedaP": "MXN", "Monto": "100.00", "TipoCambioP": "1", "DoctoRelacionado": [ { "IdDocumento": "daca5d85-b8cd-463b-a056-b021fe33c2f9", "Serie": "SW N8N Examples", "Folio": "088", "MonedaDR": "MXN", "NumParcialidad": "1", "ImpSaldoAnt": "100.00", "ImpPagado": "100.00", "ImpSaldoInsoluto": "0.00", "EquivalenciaDR": "1", "ObjetoImpDR": "02", "ImpuestosDR": { "RetencionesDR": [ { "BaseDR": "100.00", "ImpuestoDR": "001", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.000000", "ImporteDR": "0.00" }, { "BaseDR": "100.00", "ImpuestoDR": "001", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.350000", "ImporteDR": "35.00" }, { "BaseDR": "100.00", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.000000", "ImporteDR": "0.00" }, { "BaseDR": "100.00", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.160000", "ImporteDR": "16.00" }, { "BaseDR": "100.00", "ImpuestoDR": "003", "TipoFactorDR": "Cuota", "TasaOCuotaDR": "0.000000", "ImporteDR": "0.00" }, { "BaseDR": "100.00", "ImpuestoDR": "003", "TipoFactorDR": "Cuota", "TasaOCuotaDR": "0.040000", "ImporteDR": "4.00" } ] } } ], "ImpuestosP": { "RetencionesP": [ { "ImpuestoP": "001", "ImporteP": "35.00" }, { "ImpuestoP": "002", "ImporteP": "16.00" }, { "ImpuestoP": "003", "ImporteP": "4.00" } ] } } ] } } ] } } ``` Pago Solo Traslados ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "089", "Fecha": "2026-08-28T08:01:00", "SubTotal": 0, "Moneda": "XXX", "Total": 0, "TipoDeComprobante": "P", "Exportacion": "01", "LugarExpedicion": "75700", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "XAXX010101000", "Nombre": "PUBLICO GENERAL", "DomicilioFiscalReceptor": "75700", "RegimenFiscalReceptor": "616", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": 1, "ClaveUnidad": "ACT", "Descripcion": "Pago", "ValorUnitario": 0, "Importe": 0, "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Pago20:Pagos": { "Version": "2.0", "Totales": { "TotalTrasladosBaseIVA16": "10.00", "TotalTrasladosBaseIVAExento": "46.80", "TotalTrasladosImpuestoIVA16": "1.60", "MontoTotalPagos": "100.00" }, "Pago": [ { "FechaPago": "2022-09-09T17:33:38", "FormaDePagoP": "01", "MonedaP": "MXN", "TipoCambioP": "1", "Monto": "100.00", "DoctoRelacionado": [ { "IdDocumento": "b7c8d2bf-cb4e-4f84-af89-c68b6731206a", "Serie": "FA", "Folio": "N0000216349", "MonedaDR": "MXN", "EquivalenciaDR": "1", "NumParcialidad": "2", "ImpSaldoAnt": "100.00", "ImpPagado": "100.00", "ImpSaldoInsoluto": "0.00", "ObjetoImpDR": "02", "ImpuestosDR": { "TrasladosDR": [ { "BaseDR": "46.80", "ImpuestoDR": "002", "TipoFactorDR": "Exento" }, { "BaseDR": "10.00", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "ImporteDR": "1.600000", "TasaOCuotaDR": "0.160000" }, { "BaseDR": "20.00", "ImpuestoDR": "003", "TipoFactorDR": "Exento" }, { "BaseDR": "20.00", "ImpuestoDR": "003", "TipoFactorDR": "Tasa", "ImporteDR": "1.600000", "TasaOCuotaDR": "0.080000" } ] } } ], "ImpuestosP": { "TrasladosP": [ { "BaseP": "46.80", "ImpuestoP": "002", "TipoFactorP": "Exento" }, { "BaseP": "20.00", "ImpuestoP": "003", "TipoFactorP": "Tasa", "ImporteP": "1.600000", "TasaOCuotaP": "0.080000" }, { "BaseP": "20.00", "ImpuestoP": "003", "TipoFactorP": "Exento" }, { "BaseP": "10.00", "ImpuestoP": "002", "TipoFactorP": "Tasa", "ImporteP": "1.600000", "TasaOCuotaP": "0.160000" } ] } } ] } } ] } } ``` Pago Parcialidades Parcialidad 1. ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "090", "Fecha": "2026-08-28T08:01:00", "Moneda": "XXX", "TipoDeComprobante": "P", "Exportacion": "01", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": 1, "ClaveUnidad": "ACT", "Descripcion": "Pago", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Pago20:Pagos": { "Version": "2.0", "Totales": { "MontoTotalPagos": "116.00", "TotalTrasladosBaseIVA16": "100.00", "TotalTrasladosImpuestoIVA16": "16.00" }, "Pago": [ { "FechaPago": "2021-12-15T00:00:00", "FormaDePagoP": "01", "MonedaP": "MXN", "Monto": "116.00", "TipoCambioP": "1", "DoctoRelacionado": [ { "IdDocumento": "bfc36522-4b8e-45c4-8f14-d11b289f9eb7", "MonedaDR": "MXN", "NumParcialidad": "1", "ImpSaldoAnt": "200.00", "ImpPagado": "100.00", "ImpSaldoInsoluto": "100.00", "ObjetoImpDR": "02", "EquivalenciaDR": "1", "ImpuestosDR": { "TrasladosDR": [ { "BaseDR": "100.00", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.160000", "ImporteDR": "16.00" } ] } } ], "ImpuestosP": { "TrasladosP": [ { "BaseP": "100.00", "ImpuestoP": "002", "TipoFactorP": "Tasa", "TasaOCuotaP": "0.160000", "ImporteP": "16.00" } ] } } ] } } ] } } ``` Parcialidad 2. ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "091", "Fecha": "2026-08-28T08:01:00", "Moneda": "XXX", "TipoDeComprobante": "P", "Exportacion": "01", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": 1, "ClaveUnidad": "ACT", "Descripcion": "Pago", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Pago20:Pagos": { "Version": "2.0", "Totales": { "MontoTotalPagos": "84.00", "TotalTrasladosBaseIVA16": "72.41", "TotalTrasladosImpuestoIVA16": "11.58" }, "Pago": [ { "FechaPago": "2021-12-15T00:00:00", "FormaDePagoP": "01", "MonedaP": "MXN", "Monto": "84.00", "TipoCambioP": "1", "DoctoRelacionado": [ { "IdDocumento": "bfc36522-4b8e-45c4-8f14-d11b289f9eb7", "MonedaDR": "MXN", "NumParcialidad": "2", "ImpSaldoAnt": "84.00", "ImpPagado": "84.00", "ImpSaldoInsoluto": "0.00", "ObjetoImpDR": "02", "EquivalenciaDR": "1", "ImpuestosDR": { "TrasladosDR": [ { "BaseDR": "72.41", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.160000", "ImporteDR": "11.58" } ] } } ], "ImpuestosP": { "TrasladosP": [ { "BaseP": "72.41", "ImpuestoP": "002", "TipoFactorP": "Tasa", "TasaOCuotaP": "0.160000", "ImporteP": "11.58" } ] } } ] } } ] } } ``` Parcialidad 3. ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "092", "Fecha": "2026-08-28T08:01:00", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "P", "Exportacion": "01", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago", "ValorUnitario": "0", "Importe": "0", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Pago20:Pagos": { "Version": "2.0", "Totales": { "MontoTotalPagos": "11165.00", "TotalTrasladosBaseIVA16": "72.41", "TotalTrasladosImpuestoIVA16": "11.58" }, "Pago": [ { "FechaPago": "2023-10-15T00:00:00", "FormaDePagoP": "03", "MonedaP": "MXN", "Monto": "11165.00", "TipoCambioP": "1", "DoctoRelacionado": [ { "IdDocumento": "d21ca0c2-3ea4-4500-abe3-f05772413e05", "MonedaDR": "MXN", "NumParcialidad": "3", "ImpSaldoAnt": "20300.00", "ImpPagado": "11165.00", "ImpSaldoInsoluto": "9135.00", "ObjetoImpDR": "02", "EquivalenciaDR": "1", "ImpuestosDR": { "TrasladosDR": [ { "BaseDR": "72.41", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.160000", "ImporteDR": "11.58" } ] } } ], "ImpuestosP": { "TrasladosP": [ { "BaseP": "72.41", "ImpuestoP": "002", "TipoFactorP": "Tasa", "TasaOCuotaP": "0.160000", "ImporteP": "11.58" } ] } } ] } } ] } } ``` Pago en dolar ``` { "Folio": "093", "Fecha": "2026-08-28T08:01:00", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "P", "Exportacion": "01", "LugarExpedicion": "42060", "Version": "4.0", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "Cantidad": "1", "Descripcion": "Pago", "ValorUnitario": "0", "Importe": "0", "ClaveProdServ": "84111506", "ClaveUnidad": "ACT", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Pago20:Pagos": { "Version": "2.0", "Pago": [ { "FechaPago": "2022-01-31T17:49:04", "FormaDePagoP": "03", "MonedaP": "USD", "Monto": "5.62", "TipoCambioP": "20.64", "DoctoRelacionado": [ { "ImpSaldoInsoluto": "0.00", "ImpPagado": "116.00", "ImpSaldoAnt": "116.00", "NumParcialidad": "1", "IdDocumento": "4a5d025b-813a-4acf-9f32-8fb61f4918ac", "MonedaDR": "MXN", "ObjetoImpDR": "02", "EquivalenciaDR": "20.64", "ImpuestosDR": { "TrasladosDR": [ { "BaseDR": "100.00", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.160000", "ImporteDR": "16.00" } ] } } ], "ImpuestosP": { "TrasladosP": [ { "BaseP": "4.84", "ImpuestoP": "002", "TipoFactorP": "Tasa", "TasaOCuotaP": "0.160000", "ImporteP": "0.77" } ] } } ], "Totales": { "MontoTotalPagos": "116.0", "TotalTrasladosBaseIVA16": "99.9", "TotalTrasladosImpuestoIVA16": "15.9" } } } ] } } ``` Pago DoctoRelacionado en Dolar ``` { "Folio": "094", "Fecha": "2026-08-28T08:01:00", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "P", "Exportacion": "01", "LugarExpedicion": "42060", "Version": "4.0", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "Cantidad": "1", "Descripcion": "Pago", "ValorUnitario": "0", "Importe": "0", "ClaveProdServ": "84111506", "ClaveUnidad": "ACT", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Pago20:Pagos": { "Version": "2.0", "Pago": [ { "FechaPago": "2022-01-31T17:49:04", "FormaDePagoP": "01", "MonedaP": "MXN", "Monto": "921.23", "TipoCambioP": "1", "DoctoRelacionado": [ { "ImpSaldoInsoluto": "0.00", "ImpPagado": "41.76", "ImpSaldoAnt": "41.76", "NumParcialidad": "1", "IdDocumento": "4a5d025b-813a-4acf-9f32-8fb61f4918ac", "MonedaDR": "USD", "ObjetoImpDR": "02", "EquivalenciaDR": "0.045331", "ImpuestosDR": { "TrasladosDR": [ { "BaseDR": "36.000", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.160000", "ImporteDR": "5.76" } ] } } ], "ImpuestosP": { "TrasladosP": [ { "BaseP": "794.158522", "ImpuestoP": "002", "TipoFactorP": "Tasa", "TasaOCuotaP": "0.160000", "ImporteP": "127.06" } ] } } ], "Totales": { "MontoTotalPagos": "921.23", "TotalTrasladosBaseIVA16": "794.16", "TotalTrasladosImpuestoIVA16": "127.06" } } } ] } } ``` Pago en EUR y DR en USD ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "095", "Fecha": "2026-08-28T08:01:00", "SubTotal": 0, "Moneda": "XXX", "Total": 0, "TipoDeComprobante": "P", "Exportacion": "01", "LugarExpedicion": "42060", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": 1, "ClaveUnidad": "ACT", "Descripcion": "Pago", "ValorUnitario": 0, "Importe": 0, "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Pago20:Pagos": { "Version": "2.0", "Totales": { "MontoTotalPagos": "2500.00", "TotalTrasladosBaseIVA16": "2155.00", "TotalTrasladosImpuestoIVA16": "344.75" }, "Pago": [ { "FechaPago": "2022-01-31T17:49:04", "FormaDePagoP": "03", "MonedaP": "EUR", "Monto": "100.00", "TipoCambioP": "25.00", "DoctoRelacionado": [ { "ImpSaldoInsoluto": "0.00", "ImpPagado": "116.00", "ImpSaldoAnt": "116.00", "NumParcialidad": "1", "IdDocumento": "4a5d025b-813a-4acf-9f32-8fb61f4918ac", "MonedaDR": "USD", "ObjetoImpDR": "02", "EquivalenciaDR": "1.160", "ImpuestosDR": { "TrasladosDR": [ { "BaseDR": "100.00", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.160000", "ImporteDR": "16.00" } ] } } ], "ImpuestosP": { "TrasladosP": [ { "BaseP": "86.20", "ImpuestoP": "002", "TipoFactorP": "Tasa", "TasaOCuotaP": "0.160000", "ImporteP": "13.79" } ] } } ] } } ] } } ``` Pago con monedaP y MonedaDR igual ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "096", "Fecha": "2026-08-28T08:01:00", "SubTotal": 0, "Moneda": "XXX", "Total": 0, "TipoDeComprobante": "P", "Exportacion": "01", "LugarExpedicion": "42060", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": 1, "ClaveUnidad": "ACT", "Descripcion": "Pago", "ValorUnitario": 0, "Importe": 0, "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Pago20:Pagos": { "Version": "2.0", "Totales": { "MontoTotalPagos": "20894.27", "TotalTrasladosBaseIVA16": "180.1", "TotalTrasladosImpuestoIVA16": "28.8" }, "Pago": [ { "FechaPago": "2023-03-06T17:49:04", "FormaDePagoP": "03", "MonedaP": "USD", "Monto": "1160.00", "TipoCambioP": "18.012300", "DoctoRelacionado": [ { "ImpSaldoInsoluto": "0.00", "ImpPagado": "1160.00", "ImpSaldoAnt": "1160.00", "NumParcialidad": "1", "IdDocumento": "4a5d025b-813a-4acf-9f32-8fb61f4918ac", "MonedaDR": "USD", "ObjetoImpDR": "02", "EquivalenciaDR": "1", "ImpuestosDR": { "TrasladosDR": [ { "BaseDR": "10.00", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.160000", "ImporteDR": "1.60" } ] } } ], "ImpuestosP": { "TrasladosP": [ { "BaseP": "10.00", "ImpuestoP": "002", "TipoFactorP": "Tasa", "TasaOCuotaP": "0.160000", "ImporteP": "1.60" } ] } } ] } } ] } } ``` Pago con dos monedas distintas y DR en USD ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "097", "Fecha": "2026-08-28T08:01:00", "CondicionesDePago": null, "SubTotal": 0, "Moneda": "XXX", "Total": 0, "TipoDeComprobante": "P", "Exportacion": "01", "LugarExpedicion": "42060", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": 1, "ClaveUnidad": "ACT", "Descripcion": "Pago", "ValorUnitario": 0, "Importe": 0, "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Pago20:Pagos": { "Version": "2.0", "Totales": { "MontoTotalPagos": "940.91", "TotalTrasladosBaseIVA16": "794.16", "TotalTrasladosImpuestoIVA16": "127.06" }, "Pago": [ { "FechaPago": "2022-01-31T17:49:04", "FormaDePagoP": "03", "MonedaP": "MXN", "Monto": "921.23", "TipoCambioP": "1", "DoctoRelacionado": [ { "ImpSaldoInsoluto": "0.00", "ImpPagado": "41.76", "ImpSaldoAnt": "41.76", "NumParcialidad": "1", "IdDocumento": "4a5d025b-813a-4acf-9f32-8fb61f4918ac", "MonedaDR": "USD", "ObjetoImpDR": "02", "EquivalenciaDR": "0.045331", "ImpuestosDR": { "TrasladosDR": [ { "BaseDR": "36.00", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.160000", "ImporteDR": "5.76" } ] } } ], "ImpuestosP": { "TrasladosP": [ { "BaseP": "794.158522", "ImpuestoP": "002", "TipoFactorP": "Tasa", "TasaOCuotaP": "0.160000", "ImporteP": "127.06" } ] } }, { "FechaPago": "2022-01-31T17:49:04", "FormaDePagoP": "17", "MonedaP": "JPY", "Monto": "123", "TipoCambioP": "0.16", "DoctoRelacionado": [ { "ImpSaldoInsoluto": "0.00", "ImpPagado": "1.00", "ImpSaldoAnt": "1.00", "NumParcialidad": "1", "IdDocumento": "8ab4a638-3082-418c-b36a-972bfe4cc51f", "MonedaDR": "USD", "ObjetoImpDR": "01", "EquivalenciaDR": "0.008076" } ] } ] } } ] } } ``` Pago con dos complementos ``` { "version": 4.0, "fecha": "2026-08-28T08:01:00", "folio": "098", "subTotal": "0", "moneda": "XXX", "total": "0", "tipoDeComprobante": "P", "exportacion": "01", "lugarExpedicion": "31607", "emisor": { "nombre": "ESCUELA KEMPER URGATE", "regimenFiscal": 601, "rfc": "EKU9003173C9" }, "receptor": { "rfc": "URE180429TM6", "nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "domicilioFiscalReceptor": "86991", "regimenFiscalReceptor": "601", "usoCFDI": "CP01" }, "conceptos": [ { "claveProdServ": "84111506", "cantidad": "1", "claveUnidad": "ACT", "descripcion": "Pago", "valorUnitario": "0", "importe": "0", "objetoImp": "01" } ], "Complemento": { "Any": [ { "pago20:pagos": { "totales": { "totalTrasladosBaseIVA16": 1380160.72, "totalTrasladosImpuestoIVA16": 220825.7, "montoTotalPagos": 1600986.46 }, "pago": [ { "doctoRelacionado": [ { "idDocumento": "79ff44fd-f0ba-4024-a55f-0a228fa72903", "monedaDR": "USD", "numParcialidad": 2, "impSaldoAnt": "352.69", "impPagado": "352.69", "impSaldoInsoluto": "0", "equivalenciaDR": "0.049693", "objetoImpDR": "02", "impuestosDR": { "trasladosDR": [ { "baseDR": 304.043103, "impuestoDR": "002", "tipoFactorDR": "Tasa", "tasaOCuotaDR": 0.160000, "importeDR": 48.646897 } ] } } ], "impuestosP": { "trasladosP": [ { "baseP": 6118.42, "impuestoP": "002", "tipoFactorP": "Tasa", "tasaOCuotaP": 0.160000, "importeP": 978.94 } ] }, "fechaPago": "2022-04-28T17:49:04", "formaDePagoP": "03", "monedaP": "MXN", "tipoCambioP": 1, "monto": "7097.38" }, { "doctoRelacionado": [ { "idDocumento": "79ff44fd-f0ba-4024-a55f-0a228fa72903", "monedaDR": "USD", "numParcialidad": 1, "impSaldoAnt": "39778.91", "impPagado": "39,426.22", "impSaldoInsoluto": "352.69", "equivalenciaDR": "0.049693", "objetoImpDR": "02", "impuestosDR": { "trasladosDR": [ { "baseDR": 33988.12069, "impuestoDR": "002", "tipoFactorDR": "Tasa", "tasaOCuotaDR": 0.160000, "importeDR": 5438.09931 } ] } } ], "impuestosP": { "trasladosP": [ { "baseP": 683961.94, "impuestoP": "002", "tipoFactorP": "Tasa", "tasaOCuotaP": 0.160000, "importeP": 109433.91 } ] }, "fechaPago": "2022-04-28T17:49:04", "formaDePagoP": "03", "monedaP": "MXN", "tipoCambioP": 1, "monto": "793395.85" }, { "doctoRelacionado": [ { "idDocumento": "79ff44fd-f0ba-4024-a55f-0a228fa72903", "monedaDR": "USD", "numParcialidad": 2, "impSaldoAnt": "352.69", "impPagado": "352.69", "impSaldoInsoluto": "0", "equivalenciaDR": "0.049693", "objetoImpDR": "02", "impuestosDR": { "trasladosDR": [ { "baseDR": 304.043103, "impuestoDR": "002", "tipoFactorDR": "Tasa", "tasaOCuotaDR": 0.160000, "importeDR": 48.646897 } ] } } ], "impuestosP": { "trasladosP": [ { "baseP": 6118.42, "impuestoP": "002", "tipoFactorP": "Tasa", "tasaOCuotaP": 0.160000, "importeP": 978.94 } ] }, "fechaPago": "2022-04-28T17:49:04", "formaDePagoP": "03", "monedaP": "MXN", "tipoCambioP": 1, "monto": "7097.38" }, { "doctoRelacionado": [ { "idDocumento": "79ff44fd-f0ba-4024-a55f-0a228fa72903", "monedaDR": "USD", "numParcialidad": 1, "impSaldoAnt": "39778.91", "impPagado": "39,426.22", "impSaldoInsoluto": "352.69", "equivalenciaDR": "0.049693", "objetoImpDR": "02", "impuestosDR": { "trasladosDR": [ { "baseDR": 33988.12069, "impuestoDR": "002", "tipoFactorDR": "Tasa", "tasaOCuotaDR": 0.160000, "importeDR": 5438.09931 } ] } } ], "impuestosP": { "trasladosP": [ { "baseP": 683961.94, "impuestoP": "002", "tipoFactorP": "Tasa", "tasaOCuotaP": 0.160000, "importeP": 109433.91 } ] }, "fechaPago": "2022-04-28T17:49:04", "formaDePagoP": "03", "monedaP": "MXN", "tipoCambioP": 1, "monto": "793395.85" } ], "version": "2.0" } } ] } } ``` Pago con Factoraje ``` { "version": 4.0, "fecha": "2026-08-28T08:01:00", "subTotal": "0", "moneda": "XXX", "total": "0", "tipoDeComprobante": "P", "exportacion": "01", "lugarExpedicion": "31607", "emisor": { "nombre": "ESCUELA KEMPER URGATE", "regimenFiscal": 601, "rfc": "EKU9003173C9" }, "receptor": { "rfc": "URE180429TM6", "nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "domicilioFiscalReceptor": "86991", "regimenFiscalReceptor": "601", "usoCFDI": "CP01" }, "conceptos": [ { "claveProdServ": "84111506", "cantidad": "1", "claveUnidad": "ACT", "descripcion": "Pago", "valorUnitario": "0", "importe": "0", "objetoImp": "01" } ], "Complemento": { "Any": [ { "pago20:pagos": { "totales": { "totalTrasladosBaseIVA16": 690080.36, "totalTrasladosImpuestoIVA16": 110412.85, "montoTotalPagos": 800493.23 }, "pago": [ { "doctoRelacionado": [ { "idDocumento": "79ff44fd-f0ba-4024-a55f-0a228fa72903", "monedaDR": "USD", "numParcialidad": 2, "impSaldoAnt": "352.69", "impPagado": "352.69", "impSaldoInsoluto": "0", "equivalenciaDR": "0.049693", "objetoImpDR": "02", "impuestosDR": { "trasladosDR": [ { "baseDR": 304.043103, "impuestoDR": "002", "tipoFactorDR": "Tasa", "tasaOCuotaDR": 0.160000, "importeDR": 48.646897 } ] } } ], "impuestosP": { "trasladosP": [ { "baseP": 6118.42, "impuestoP": "002", "tipoFactorP": "Tasa", "tasaOCuotaP": 0.160000, "importeP": 978.94 } ] }, "fechaPago": "2022-04-28T17:49:04", "formaDePagoP": "03", "monedaP": "MXN", "tipoCambioP": 1, "monto": "7097.38" }, { "doctoRelacionado": [ { "idDocumento": "79ff44fd-f0ba-4024-a55f-0a228fa72903", "monedaDR": "USD", "numParcialidad": 1, "impSaldoAnt": "39778.91", "impPagado": "39,426.22", "impSaldoInsoluto": "352.69", "equivalenciaDR": "0.049693", "objetoImpDR": "02", "impuestosDR": { "trasladosDR": [ { "baseDR": 33988.12069, "impuestoDR": "002", "tipoFactorDR": "Tasa", "tasaOCuotaDR": 0.160000, "importeDR": 5438.09931 } ] } } ], "impuestosP": { "trasladosP": [ { "baseP": 683961.94, "impuestoP": "002", "tipoFactorP": "Tasa", "tasaOCuotaP": 0.160000, "importeP": 109433.91 } ] }, "fechaPago": "2022-04-28T17:49:04", "formaDePagoP": "17", "monedaP": "MXN", "tipoCambioP": 1, "monto": "793395.85" } ], "version": "2.0" } } ] } } ``` Pago Varios DR ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "100", "Fecha": "2026-08-28T08:01:00", "SubTotal": 0, "Moneda": "XXX", "Total": 0, "TipoDeComprobante": "P", "Exportacion": "01", "LugarExpedicion": "75700", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": 1, "ClaveUnidad": "ACT", "Descripcion": "Pago", "ValorUnitario": 0, "Importe": 0, "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Pago20:Pagos": { "Version": "2.0", "Totales": { "TotalTrasladosBaseIVA16": "200.00", "TotalTrasladosImpuestoIVA16": "32.00", "MontoTotalPagos": "232.00" }, "Pago": [ { "FechaPago": "2022-09-09T17:33:38", "FormaDePagoP": "01", "MonedaP": "MXN", "TipoCambioP": "1", "Monto": "232.00", "DoctoRelacionado": [ { "IdDocumento": "b7c8d2bf-cb4e-4f84-af89-c68b6731206a", "Serie": "FA", "Folio": "N0000216349", "MonedaDR": "MXN", "EquivalenciaDR": "1", "NumParcialidad": "2", "ImpSaldoAnt": "200.00", "ImpPagado": "100.00", "ImpSaldoInsoluto": "100.00", "ObjetoImpDR": "02", "ImpuestosDR": { "TrasladosDR": [ { "BaseDR": "100.00", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.160000", "ImporteDR": "16.00" } ] } }, { "IdDocumento": "94f4e541-bb38-4355-b779-02d337dc9720", "Serie": "FA", "Folio": "SI000032690", "MonedaDR": "MXN", "EquivalenciaDR": "1", "NumParcialidad": "1", "ImpSaldoAnt": "100.00", "ImpPagado": "100.00", "ImpSaldoInsoluto": "0.00", "ObjetoImpDR": "02", "ImpuestosDR": { "TrasladosDR": [ { "BaseDR": "100.00", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.160000", "ImporteDR": "16.00" } ] } } ], "ImpuestosP": { "TrasladosP": [ { "BaseP": "200.00", "ImpuestoP": "002", "TipoFactorP": "Tasa", "TasaOCuotaP": "0.160000", "ImporteP": "32.00" } ] } } ] } } ] } } ``` Pago con IVA Exento ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "101", "Fecha": "2026-08-28T08:01:00", "SubTotal": 0, "Moneda": "XXX", "Total": 0, "TipoDeComprobante": "P", "Exportacion": "01", "LugarExpedicion": "75700", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "XAXX010101000", "Nombre": "PUBLICO GENERAL", "DomicilioFiscalReceptor": "75700", "RegimenFiscalReceptor": "616", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": 1, "ClaveUnidad": "ACT", "Descripcion": "Pago", "ValorUnitario": 0, "Importe": 0, "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Pago20:Pagos": { "Version": "2.0", "Totales": { "TotalTrasladosBaseIVAExento": "1.00", "MontoTotalPagos": "100.00" }, "Pago": [ { "FechaPago": "2022-09-09T17:33:38", "FormaDePagoP": "01", "MonedaP": "MXN", "TipoCambioP": "1", "Monto": "100.00", "DoctoRelacionado": [ { "IdDocumento": "b7c8d2bf-cb4e-4f84-af89-c68b6731206a", "Serie": "FA", "Folio": "N0000216349", "MonedaDR": "MXN", "EquivalenciaDR": "1", "NumParcialidad": "2", "ImpSaldoAnt": "100.00", "ImpPagado": "100.00", "ImpSaldoInsoluto": "0.00", "ObjetoImpDR": "02", "ImpuestosDR": { "TrasladosDR": [ { "BaseDR": "1.00", "ImpuestoDR": "002", "TipoFactorDR": "Exento" }, { "BaseDR": "1.00", "ImpuestoDR": "003", "TipoFactorDR": "Exento" } ] } } ], "ImpuestosP": { "TrasladosP": [ { "BaseP": "1.00", "ImpuestoP": "002", "TipoFactorP": "Exento" }, { "BaseP": "1.00", "ImpuestoP": "003", "TipoFactorP": "Exento" } ] } } ] } } ] } } ``` Pago con IVA Exento y Retenciones ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "102", "Fecha": "2026-08-28T08:01:00", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "P", "LugarExpedicion": "06370", "Exportacion": "01", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago", "ValorUnitario": "0", "Importe": "0", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "pago20:Pagos": { "Version": "2.0", "Totales": { "MontoTotalPagos": "100.00", "TotalTrasladosBaseIVAExento": "100.00", "TotalRetencionesIVA": "16.00", "TotalRetencionesIEPS": "4.00", "TotalRetencionesISR": "0.00" }, "Pago": [ { "FechaPago": "2022-05-26T12:00:00", "FormaDePagoP": "03", "MonedaP": "MXN", "TipoCambioP": "1", "Monto": "100.00", "DoctoRelacionado": [ { "IdDocumento": "a0476c1b-8829-448d-82ab-92d8b26be878", "MonedaDR": "MXN", "NumParcialidad": "1", "ImpSaldoAnt": "98.75", "ImpSaldoInsoluto": "0.00", "ImpPagado": "98.75", "ObjetoImpDR": "02", "EquivalenciaDR": "1", "ImpuestosDR": { "RetencionesDR": [ { "BaseDR": "100.00", "ImpuestoDR": "001", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.000000", "ImporteDR": "00.00" }, { "BaseDR": "100.00", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.160000", "ImporteDR": "16.00" }, { "BaseDR": "100.00", "ImpuestoDR": "003", "TipoFactorDR": "Cuota", "TasaOCuotaDR": "0.040000", "ImporteDR": "4.00" } ], "TrasladosDR": [ { "BaseDR": "100.00", "ImpuestoDR": "002", "TipoFactorDR": "Exento" } ] } } ], "ImpuestosP": { "RetencionesP": [ { "ImpuestoP": "001", "ImporteP": "0.00" }, { "ImpuestoP": "002", "ImporteP": "16.00" }, { "ImpuestoP": "003", "ImporteP": "4.00" } ], "TrasladosP": [ { "BaseP": "100.00", "ImpuestoP": "002", "TipoFactorP": "Exento" } ] } } ] } } ] } } ``` Pago con IVA y Retenciones al 16% ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "103", "Fecha": "2026-08-28T08:01:00", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "P", "LugarExpedicion": "06370", "Exportacion": "01", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago", "ValorUnitario": "0", "Importe": "0", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "pago20:Pagos": { "Version": "2.0", "Totales": { "MontoTotalPagos": "100.00", "TotalTrasladosImpuestoIVA16": "16.00", "TotalRetencionesIVA": "16.00", "TotalTrasladosBaseIVA16": "100.00" }, "Pago": [ { "FechaPago": "2023-11-29T12:00:00", "FormaDePagoP": "03", "MonedaP": "MXN", "TipoCambioP": "1", "Monto": "100.00", "DoctoRelacionado": [ { "IdDocumento": "a0476c1b-8829-448d-82ab-92d8b26be878", "MonedaDR": "MXN", "NumParcialidad": "1", "ImpSaldoAnt": "98.75", "ImpSaldoInsoluto": "0.00", "ImpPagado": "98.75", "ObjetoImpDR": "02", "EquivalenciaDR": "1", "ImpuestosDR": { "RetencionesDR": [ { "BaseDR": "100.00", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.160000", "ImporteDR": "16.00" } ], "TrasladosDR": [ { "BaseDR": "100.00", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.160000", "ImporteDR": "16.00" } ] } } ], "ImpuestosP": { "RetencionesP": [ { "ImpuestoP": "002", "ImporteP": "16.00" } ], "TrasladosP": [ { "BaseP": "100.00", "ImpuestoP": "002", "TipoFactorP": "Tasa", "TasaOCuotaP": "0.160000", "ImporteP": "16.00" } ] } } ] } } ] } } ``` Cobro Por Cuenta De Terceros Ingreso. ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "104", "Fecha": "2026-08-28T08:01:00", "FormaPago": "99", "CondicionesDePago": "CondicionesDePago", "SubTotal": 45000, "Moneda": "MXN", "TipoCambio": "1", "Total": 52200, "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PPD", "LugarExpedicion": "26015", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "CACX7605101P8", "Nombre": "XOCHILT CASAS CHAVEZ", "DomicilioFiscalReceptor": "36257", "RegimenFiscalReceptor": 626, "UsoCFDI": "I08" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 5000, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": 800 } ] }, "ClaveProdServ": "23151602", "Cantidad": 1, "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Trituradora", "ValorUnitario": 5000, "Importe": 5000, "ObjetoImp": "02" }, { "Impuestos": { "Traslados": [ { "Base": 10000, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": 1600 } ] }, "ACuentaTerceros": { "RfcACuentaTerceros": "XIQB891116QE4", "NombreACuentaTerceros": "BERENICE XIMO QUEZADA", "RegimenFiscalACuentaTerceros": 612, "DomicilioFiscalACuentaTerceros": "40968" }, "ClaveProdServ": "23101510", "Cantidad": 1, "ClaveUnidad": "H87", "Descripcion": "Pulidora", "ValorUnitario": 10000, "Importe": 10000, "ObjetoImp": "02" }, { "Impuestos": { "Traslados": [ { "Base": 30000, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": 4800 } ] }, "ACuentaTerceros": { "RfcACuentaTerceros": "IVD920810GU2", "NombreACuentaTerceros": "INNOVACION VALOR Y DESARROLLO", "RegimenFiscalACuentaTerceros": 601, "DomicilioFiscalACuentaTerceros": "63901" }, "ClaveProdServ": "23281703", "Cantidad": 1, "ClaveUnidad": "H87", "Descripcion": "Maquina de arena", "ValorUnitario": 30000, "Importe": 30000, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 45000, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": "0.160000", "Importe": 7200 } ], "TotalImpuestosTrasladados": 7200 }, "Complemento": {} } ``` Pago 1. ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "105", "Fecha": "2026-08-28T08:01:00", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "P", "Exportacion": "01", "LugarExpedicion": "26015", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "CACX7605101P8", "Nombre": "XOCHILT CASAS CHAVEZ", "DomicilioFiscalReceptor": "36257", "RegimenFiscalReceptor": "626", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago", "ValorUnitario": "0", "Importe": "0", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Pago20:Pagos": { "Version": "2.0", "Totales": { "MontoTotalPagos": "5800.00", "TotalTrasladosBaseIVA16": "5000.00", "TotalTrasladosImpuestoIVA16": "800.00" }, "Pago": [ { "FechaPago": "2023-01-23T07:00:00", "FormaDePagoP": "01", "MonedaP": "MXN", "Monto": "5800.00", "TipoCambioP": "1", "DoctoRelacionado": [ { "IdDocumento": "f891d9fb-40dc-4623-bc65-b3ce7ff1871c", "MonedaDR": "MXN", "NumParcialidad": "1", "ImpSaldoAnt": "5800.00", "ImpPagado": "5800.00", "ImpSaldoInsoluto": "0.00", "ObjetoImpDR": "02", "EquivalenciaDR": "1", "ImpuestosDR": { "TrasladosDR": [ { "BaseDR": "5000.00", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.160000", "ImporteDR": "800.00" } ] } } ], "ImpuestosP": { "TrasladosP": [ { "BaseP": "5000.00", "ImpuestoP": "002", "TipoFactorP": "Tasa", "TasaOCuotaP": "0.160000", "ImporteP": "800.00" } ] } } ] } } ] } } ``` Pago 2. ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "106", "Fecha": "2026-08-28T08:01:00", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "P", "Exportacion": "01", "LugarExpedicion": "26015", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "CACX7605101P8", "Nombre": "XOCHILT CASAS CHAVEZ", "DomicilioFiscalReceptor": "36257", "RegimenFiscalReceptor": "626", "UsoCFDI": "CP01" }, "Conceptos": [ { "ACuentaTerceros": { "RfcACuentaTerceros": "XIQB891116QE4", "NombreACuentaTerceros": "BERENICE XIMO QUEZADA", "RegimenFiscalACuentaTerceros": "612", "DomicilioFiscalACuentaTerceros": "40968" }, "ClaveProdServ": "84111506", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago", "ValorUnitario": "0", "Importe": "0", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Pago20:Pagos": { "Version": "2.0", "Totales": { "MontoTotalPagos": "11600.00", "TotalTrasladosBaseIVA16": "10000.00", "TotalTrasladosImpuestoIVA16": "1600.00" }, "Pago": [ { "FechaPago": "2023-01-23T07:00:00", "FormaDePagoP": "01", "MonedaP": "MXN", "Monto": "11600.00", "TipoCambioP": "1", "DoctoRelacionado": [ { "IdDocumento": "f891d9fb-40dc-4623-bc65-b3ce7ff1871c", "MonedaDR": "MXN", "NumParcialidad": "1", "ImpSaldoAnt": "11600.00", "ImpPagado": "11600.00", "ImpSaldoInsoluto": "0.00", "ObjetoImpDR": "02", "EquivalenciaDR": "1", "ImpuestosDR": { "TrasladosDR": [ { "BaseDR": "10000.00", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.160000", "ImporteDR": "1600.00" } ] } } ], "ImpuestosP": { "TrasladosP": [ { "BaseP": "10000.00", "ImpuestoP": "002", "TipoFactorP": "Tasa", "TasaOCuotaP": "0.160000", "ImporteP": "1600.00" } ] } } ] } } ] } } ``` Pago 3. ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "107", "Fecha": "2026-08-28T08:01:00", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "P", "Exportacion": "01", "LugarExpedicion": "26015", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "CACX7605101P8", "Nombre": "XOCHILT CASAS CHAVEZ", "DomicilioFiscalReceptor": "36257", "RegimenFiscalReceptor": "626", "UsoCFDI": "CP01" }, "Conceptos": [ { "ACuentaTerceros": { "RfcACuentaTerceros": "IVD920810GU2", "NombreACuentaTerceros": "INNOVACION VALOR Y DESARROLLO", "RegimenFiscalACuentaTerceros": "601", "DomicilioFiscalACuentaTerceros": "63901" }, "ClaveProdServ": "84111506", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago", "ValorUnitario": "0", "Importe": "0", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "Pago20:Pagos": { "Version": "2.0", "Totales": { "MontoTotalPagos": "34800.00", "TotalTrasladosBaseIVA16": "30000.00", "TotalTrasladosImpuestoIVA16": "4800.00" }, "Pago": [ { "FechaPago": "2023-01-23T07:00:00", "FormaDePagoP": "01", "MonedaP": "MXN", "Monto": "34800.00", "TipoCambioP": "1", "DoctoRelacionado": [ { "IdDocumento": "f891d9fb-40dc-4623-bc65-b3ce7ff1871c", "MonedaDR": "MXN", "NumParcialidad": "1", "ImpSaldoAnt": "34800.00", "ImpPagado": "34800.00", "ImpSaldoInsoluto": "0.00", "ObjetoImpDR": "02", "EquivalenciaDR": "1", "ImpuestosDR": { "TrasladosDR": [ { "BaseDR": "30000.00", "ImpuestoDR": "002", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.160000", "ImporteDR": "4800.00" } ] } } ], "ImpuestosP": { "TrasladosP": [ { "BaseP": "30000.00", "ImpuestoP": "002", "TipoFactorP": "Tasa", "TasaOCuotaP": "0.160000", "ImporteP": "4800.00" } ] } } ] } } ] } } ``` Objeto de Impuesto 06 ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "108", "Fecha": "2026-08-28T08:01:00", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "P", "Exportacion": "01", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago", "ValorUnitario": "0", "Importe": "0", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "pago20:Pagos": { "Version": "2.0", "Totales": { "MontoTotalPagos": "100.00", "TotalRetencionesISR": "35.00" }, "Pago": [ { "FechaPago": "2022-06-06T00:00:00", "FormaDePagoP": "01", "MonedaP": "MXN", "Monto": "100.00", "TipoCambioP": "1", "DoctoRelacionado": [ { "IdDocumento": "bfc36522-4b8e-45c4-8f14-d11b289f9eb7", "MonedaDR": "MXN", "NumParcialidad": "1", "ImpSaldoAnt": "100.00", "ImpPagado": "100.00", "ImpSaldoInsoluto": "0.00", "ObjetoImpDR": "06", "EquivalenciaDR": "1", "ImpuestosDR": { "RetencionesDR": [ { "BaseDR": "100.00", "ImpuestoDR": "001", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.000000", "ImporteDR": "0.00" }, { "BaseDR": "100.00", "ImpuestoDR": "001", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.350000", "ImporteDR": "35.00" } ] } } ], "ImpuestosP": { "RetencionesP": [ { "ImpuestoP": "001", "ImporteP": "35.00" } ] } } ] } } ] } } ``` Objeto de Impuesto 07 ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "109", "Fecha": "2026-08-28T08:01:00", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "P", "Exportacion": "01", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago", "ValorUnitario": "0", "Importe": "0", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "pago20:Pagos": { "Version": "2.0", "Totales": { "MontoTotalPagos": "100.00", "TotalRetencionesISR": "35.00" }, "Pago": [ { "FechaPago": "2022-06-06T00:00:00", "FormaDePagoP": "01", "MonedaP": "MXN", "Monto": "100.00", "TipoCambioP": "1", "DoctoRelacionado": [ { "IdDocumento": "bfc36522-4b8e-45c4-8f14-d11b289f9eb7", "MonedaDR": "MXN", "NumParcialidad": "1", "ImpSaldoAnt": "100.00", "ImpPagado": "100.00", "ImpSaldoInsoluto": "0.00", "ObjetoImpDR": "07", "EquivalenciaDR": "1", "ImpuestosDR": { "RetencionesDR": [ { "BaseDR": "100.00", "ImpuestoDR": "001", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.000000", "ImporteDR": "0.00" }, { "BaseDR": "100.00", "ImpuestoDR": "001", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.350000", "ImporteDR": "35.00" } ], "TrasladosDR": [ { "BaseDR": "20.00", "ImpuestoDR": "003", "TipoFactorDR": "Exento" }, { "BaseDR": "20.00", "ImpuestoDR": "003", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.080000", "ImporteDR": "1.600000" } ] } } ], "ImpuestosP": { "RetencionesP": [ { "ImpuestoP": "001", "ImporteP": "35.00" } ], "TrasladosP": [ { "BaseP": "20.00", "ImpuestoP": "003", "TipoFactorP": "Tasa", "TasaOCuotaP": "0.080000", "ImporteP": "1.600000" }, { "BaseP": "20.00", "ImpuestoP": "003", "TipoFactorP": "Exento" } ] } } ] } } ] } } ``` ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "110", "Fecha": "2026-08-28T08:01:00", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "P", "Exportacion": "01", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago", "ValorUnitario": "0", "Importe": "0", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "pago20:Pagos": { "Version": "2.0", "Totales": { "MontoTotalPagos": "100.00", "TotalRetencionesIEPS": "34.40" }, "Pago": [ { "FechaPago": "2022-06-06T00:00:00", "FormaDePagoP": "01", "MonedaP": "MXN", "Monto": "100.00", "TipoCambioP": "1", "DoctoRelacionado": [ { "IdDocumento": "bfc36522-4b8e-45c4-8f14-d11b289f9eb7", "MonedaDR": "MXN", "NumParcialidad": "1", "ImpSaldoAnt": "100.00", "ImpPagado": "100.00", "ImpSaldoInsoluto": "0.00", "ObjetoImpDR": "07", "EquivalenciaDR": "1", "ImpuestosDR": { "RetencionesDR": [ { "BaseDR": "100.00", "ImpuestoDR": "003", "TipoFactorDR": "Cuota", "TasaOCuotaDR": "0.000000", "ImporteDR": "0.00" }, { "BaseDR": "100.00", "ImpuestoDR": "003", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.304000", "ImporteDR": "30.40" }, { "BaseDR": "100.00", "ImpuestoDR": "003", "TipoFactorDR": "Cuota", "TasaOCuotaDR": "0.040000", "ImporteDR": "4.00" } ], "TrasladosDR": [ { "BaseDR": "20.00", "ImpuestoDR": "003", "TipoFactorDR": "Exento" }, { "BaseDR": "20.00", "ImpuestoDR": "003", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.080000", "ImporteDR": "1.600000" } ] } } ], "ImpuestosP": { "RetencionesP": [ { "ImpuestoP": "003", "ImporteP": "34.40" } ], "TrasladosP": [ { "BaseP": "20.00", "ImpuestoP": "003", "TipoFactorP": "Tasa", "TasaOCuotaP": "0.080000", "ImporteP": "1.600000" }, { "BaseP": "20.00", "ImpuestoP": "003", "TipoFactorP": "Exento" } ] } } ] } } ] } } ``` Objeto de Impuesto 08 ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "111", "Fecha": "2026-08-28T08:01:01", "SubTotal": "0", "Moneda": "XXX", "Total": "0", "TipoDeComprobante": "P", "Exportacion": "01", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": "601" }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": "601", "UsoCFDI": "CP01" }, "Conceptos": [ { "ClaveProdServ": "84111506", "Cantidad": "1", "ClaveUnidad": "ACT", "Descripcion": "Pago", "ValorUnitario": "0", "Importe": "0", "ObjetoImp": "01" } ], "Complemento": { "Any": [ { "pago20:Pagos": { "Version": "2.0", "Totales": { "MontoTotalPagos": "100.00", "TotalRetencionesISR": "35.00" }, "Pago": [ { "FechaPago": "2022-06-06T00:00:00", "FormaDePagoP": "01", "MonedaP": "MXN", "Monto": "100.00", "TipoCambioP": "1", "DoctoRelacionado": [ { "IdDocumento": "bfc36522-4b8e-45c4-8f14-d11b289f9eb7", "MonedaDR": "MXN", "NumParcialidad": "1", "ImpSaldoAnt": "100.00", "ImpPagado": "100.00", "ImpSaldoInsoluto": "0.00", "ObjetoImpDR": "08", "EquivalenciaDR": "1", "ImpuestosDR": { "RetencionesDR": [ { "BaseDR": "100.00", "ImpuestoDR": "001", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.000000", "ImporteDR": "0.00" }, { "BaseDR": "100.00", "ImpuestoDR": "001", "TipoFactorDR": "Tasa", "TasaOCuotaDR": "0.350000", "ImporteDR": "35.00" } ] } } ], "ImpuestosP": { "RetencionesP": [ { "ImpuestoP": "001", "ImporteP": "35.00" } ] } } ] } } ] } } ``` --- # Parciales Construcción 1.0 Fuente: https://developers.sw.com.mx/knowledge-base/cfdi40-parciales-construccion10/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento utilizado por el prestador de servicios parciales de construcción de inmuebles destinados a casa habitación, de conformidad con el “Decreto por el que se otorgan medidas de apoyo a la vivienda y otras medidas fiscales”, publicado en el Diario Oficial de la Federación el 26 de marzo de 2015 (incisos a) y b), de la fracción II, del artículo 2 del citado Decreto). Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Ingreso ``` ``` ### Ejemplos JSON Ingreso ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "275", "Fecha": "2026-08-28T08:01:05", "FormaPago": "01", "SubTotal": 24, "Moneda": "MXN", "TipoCambio": "1", "Total": 27.84, "Exportacion": "01", "LugarExpedicion": "26015", "TipoDeComprobante": "I", "MetodoPago": "PUE", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 626 }, "Receptor": { "Rfc": "CACX7605101P8", "Nombre": "XOCHILT CASAS CHAVEZ", "DomicilioFiscalReceptor": "36257", "RegimenFiscalReceptor": 612, "UsoCFDI": "G03" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 24, "Impuesto": "002", "TasaOCuota": 0.160000, "Importe": 3.84, "TipoFactor": "Tasa" } ] }, "ClaveProdServ": "44121707", "Cantidad": 2, "ClaveUnidad": "DZP", "Descripcion": "Lápices de colores", "ValorUnitario": 12, "Importe": 24, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 24, "Impuesto": "002", "TasaOCuota": 0.160000, "Importe": 3.84, "TipoFactor": "Tasa" } ], "TotalImpuestosTrasladados": 3.84 }, "Complemento": { "Any": [ { "servicioparcial:parcialesconstruccion": { "@xmlns:servicioparcial": "http://www.sat.gob.mx/servicioparcialconstruccion", "@Version": "1.0", "@NumPerLicoAut": "V0-AA/999/066", "servicioparcial:Inmueble": { "@Calle": "LOS ANDES", "@NoExterior": "999", "@Colonia": "CUMBRES", "@Localidad": "GAM", "@Referencia": "CERCA DE ESTABLECIMIENTO COMERCIAL", "@Municipio": "LA PACIFICA", "@Estado": "09", "@CodigoPostal": "07040" } } } ] } } ``` --- # Persona Fisica Integrante De Coordinados 1.0 Fuente: https://developers.sw.com.mx/knowledge-base/persona-fisica-integrante-de-coordinados-1-0/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento que permite incorporar a la factura los datos de identificación del vehículo de personas físicas integrantes de coordinados que opten por pagar el impuesto individualmente, de conformidad con lo establecido por el artículo 83, séptimo párrafo, de la Ley del Impuesto sobre la Renta. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplo XML Ingreso ``` ``` ### Ejemplo JSON Ingreso ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "277", "Fecha": "2026-08-28T08:01:05", "FormaPago": 99, "CondicionesDePago": "CondicionesDePago", "SubTotal": 200, "Moneda": "MXN", "TipoCambio": "1", "Total": 200.16, "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "ResidenciaFiscalSpecified": false, "RegimenFiscalReceptor": 601, "UsoCFDI": "G01" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 1, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 0.16 } ], "Retenciones": [ { "Base": 1, "Impuesto": "001", "TipoFactor": "Tasa", "TasaOCuota": 0.100000, "Importe": 0 }, { "Base": 1, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.106666, "Importe": 0 } ] }, "ClaveProdServ": "50211503", "Cantidad": 1, "ClaveUnidad": "H87", "Unidad": "Pieza", "Descripcion": "Cigarros", "ValorUnitario": 200, "Importe": 200, "ObjetoImp": "02" } ], "Impuestos": { "Retenciones": [ { "Impuesto": "001", "Importe": 0 }, { "Impuesto": "002", "Importe": 0 } ], "Traslados": [ { "Base": 1, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 0.16 } ], "TotalImpuestosRetenidos": 0, "TotalImpuestosTrasladados": 0.16 }, "Complemento": { "Any": [ { "pfic:PFintegranteCoordinado": { "@xmlns:pfic": "http://www.sat.gob.mx/pfic", "@version": "1.0", "@ClaveVehicular": "12356789", "@Placa": "12345678" } } ] } } ``` --- # Renovación Y Sustitución De Vehículos 1.0 Fuente: https://developers.sw.com.mx/knowledge-base/cfdi40-renovacion-y-sustitucion-de-vehiculos/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento para incorporar la información relativa a los estímulos por la renovación del parque vehicular del autotransporte para el sector de autotransporte federal de carga, de pasajeros y de turismo, así como del servicio público de autotransporte de pasajeros urbano o suburbano, con el objeto de promover la sustitución de vehículos usados con los que se estuviera prestando dicho servicio, por unidades nuevas o seminuevas. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Ingreso ``` ``` ### Ejemplos JSON Ingreso ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "299", "Fecha": "2026-08-28T08:01:05", "FormaPago": 99, "CondicionesDePago": "CondicionesDePago", "SubTotal": 2000, "Moneda": "MXN", "TipoCambio": "1", "Total": 2000.16, "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "S01" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 1, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 0.16 } ] }, "ClaveProdServ": "01010101", "Cantidad": 1, "ClaveUnidad": "H87", "Unidad": "Servicio", "Descripcion": "Servicio", "ValorUnitario": 2000, "Importe": 2000, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 1, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 0.16 } ], "TotalImpuestosTrasladados": 0.16 }, "Complemento": { "Any": [ { "decreto:renovacionysustitucionvehiculos": { "@xmlns:decreto": "http://www.sat.gob.mx/renovacionysustitucionvehiculos", "@Version": "1.0", "@TipoDeDecreto":"01", "decreto:DecretoRenovVehicular": { "@VehEnaj": "02", "decreto:VehiculosUsadosEnajenadoPermAlFab": [ { "@PrecioVehUsado": "10000.00", "@TipoVeh": "01", "@Marca": "FORD", "@TipooClase": "MUSTANG", "@Año": "1998", "@NumPlacas": "JDA5529", "@NumFolTarjCir": "346521984587656", "@Foliofiscal":"444544DFO4645456" } ], "decreto:VehiculoNuvoSemEnajenadoFabAlPerm": [ { "@Año": "2011", "@Modelo": "Nissan Tsuru", "@NumPlacas": "TGK2405" } ] } } } ] } } ``` --- # Turista Pasajero Extranjero 1.0 Fuente: https://developers.sw.com.mx/knowledge-base/cfdi40-turista-pasajero-extranjero-10/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento para incorporar la información relacionada de turistas o pasajeros extranjeros. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Ingreso ``` ``` ### Ejemplos JSON Ingreso ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "289", "Fecha": "2026-08-28T08:01:05", "FormaPago": 99, "CondicionesDePago": "CondicionesDePago", "SubTotal": 2000, "Descuento": 1, "Moneda": "MXN", "TipoCambio": "1", "Total": 2318.84, "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "S01" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 1999, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 319.84 } ] }, "ClaveProdServ": "01010101", "Cantidad": 1, "ClaveUnidad": "H87", "Unidad": "Servicio", "Descripcion": "Servicio", "ValorUnitario": 2000, "Importe": 2000, "Descuento": 1, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 1999, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 319.84 } ], "TotalImpuestosTrasladados": 319.84 }, "Complemento": { "Any": [ { "tpe:TuristaPasajeroExtranjero": { "@xmlns:tpe": "http://www.sat.gob.mx/TuristaPasajeroExtranjero", "@version": "1.0", "@fechadeTransito": "2022-07-25T00:00:00", "@tipoTransito": "Salida", "tpe:datosTransito": { "@Via": "Terrestre", "@TipoId": "0123456789", "@NumeroId": "0123456789", "@Nacionalidad": "ESPAÑOLA", "@EmpresaTransporte": "AUTOBUSES SW SAPIEN", "@IdTransporte": "SW" } } } ] } } ``` --- # Vales De Despensa 1.0 Fuente: https://developers.sw.com.mx/knowledge-base/vales-de-despensa-1-0/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento que permite integrar a una factura información emitida por un prestador de servicios de monedero electrónico de vales de despensa. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Ingreso ``` ``` ### Ejemplos JSON Ingreso ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "301", "Fecha": "2026-08-28T08:01:06", "FormaPago": 99, "CondicionesDePago": "CondicionesDePago", "SubTotal": 2000, "Moneda": "MXN", "TipoCambio": "1", "Total": 2000.16, "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "S01" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 1, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 0.16 } ] }, "ClaveProdServ": "01010101", "Cantidad": 1, "ClaveUnidad": "H87", "Unidad": "Servicio", "Descripcion": "Servicio", "ValorUnitario": 2000, "Importe": 2000, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 1, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 0.16 } ], "TotalImpuestosTrasladados": 0.16 }, "Complemento": { "Any": [ { "valesdedespensa:ValesDeDespensa": { "@xmlns:valesdedespensa": "http://www.sat.gob.mx/valesdedespensa", "@version": "1.0", "@tipoOperacion": "monedero electrónico", "@registroPatronal": "AAAA1234", "@numeroDeCuenta": "123456789", "@total": "100.00", "valesdedespensa:Conceptos": { "valesdedespensa:Concepto": [ { "@identificador": "AAA123", "@fecha": "2022-07-24T00:00:00", "@rfc": "EKU9003173C9", "@curp": "REAS891222HDFZZV09", "@nombre": "Francisco", "@importe": "1000.00" } ] } } } ] } } ``` --- # Vehículo Usado 1.0 Fuente: https://developers.sw.com.mx/knowledge-base/vehiculo-usado/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento que permite a los contribuyentes incorporar información que realizan operaciones de enajenación de vehículos nuevos y que a cambio reciben un auto usado o nuevo. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos XML Ingreso ``` ``` ### Ejemplos JSON Ingreso ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "303", "Fecha": "2026-08-28T08:01:06", "FormaPago": 99, "CondicionesDePago": "CondicionesDePago", "SubTotal": 2000, "Moneda": "MXN", "TipoCambio": "1", "Total": 2000.16, "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "S01" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 1, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 0.16 } ] }, "ClaveProdServ": "01010101", "Cantidad": 1, "ClaveUnidad": "H87", "Unidad": "Servicio", "Descripcion": "Servicio", "ValorUnitario": 2000, "Importe": 2000, "ObjetoImp": "02" } ], "Impuestos": { "Traslados": [ { "Base": 1, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 0.16 } ], "TotalImpuestosTrasladados": 0.16 }, "Complemento": { "Any": [ { "vehiculousado:VehiculoUsado": { "@xmlns:vehiculousado": "http://www.sat.gob.mx/vehiculousado", "@Version": "1.0", "@montoAdquisicion": "10000.00", "@montoEnajenacion": "0.00", "@claveVehicular": "AAAABBB", "@marca": "FORD", "@tipo": "Mustang", "@modelo": "1989", "@numeroMotor": "123123123", "@numeroSerie": "12312323", "@NIV": "1234ASD", "@valor": "5000.00" } } ] } } ``` --- # Venta De Vehículos 1.1 Fuente: https://developers.sw.com.mx/knowledge-base/venta-de-vehiculos-1-1/ Categoria: Ejemplos CFDI 4.0, Retenciones y Complementos Complemento para añadir la información de la venta de un vehículo, permite incorporar a la factura la clave vehicular que corresponda a la versión de la venta y el número de identificación vehicular que corresponda al automóvil vendido. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ## Ejemplos XML Ingreso ``` ``` Ingreso con Información Aduanera ``` ``` ### Ejemplos JSON Ingreso ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "306", "Fecha": "2026-08-28T08:01:06", "FormaPago": 99, "CondicionesDePago": "CondicionesDePago", "SubTotal": 2000, "Moneda": "MXN", "TipoCambio": "1", "Total": 2000.16, "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "S01" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 1, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 0.16 } ] }, "ClaveProdServ": "01010101", "Cantidad": 1, "ClaveUnidad": "H87", "Unidad": "Servicio", "Descripcion": "Servicio", "ValorUnitario": 2000, "Importe": 2000, "ObjetoImp": "02", "ComplementoConcepto": { "Any": [ { "ventavehiculos:VentaVehiculos": { "@xmlns:ventavehiculos": "http://www.sat.gob.mx/ventavehiculos", "@version": "1.1", "@ClaveVehicular": "1231234", "@Niv": "12332" } } ] } } ], "Impuestos": { "Traslados": [ { "Base": 1, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 0.16 } ], "TotalImpuestosTrasladados": 0.16 } } ``` Ingreso con Información Aduanera ``` { "Version": "4.0", "Serie": "SW N8N Examples", "Folio": "307", "Fecha": "2026-08-28T08:01:06", "FormaPago": 99, "CondicionesDePago": "CondicionesDePago", "SubTotal": 2000, "Moneda": "MXN", "TipoCambio": "1", "Total": 2000.16, "TipoDeComprobante": "I", "Exportacion": "01", "MetodoPago": "PUE", "LugarExpedicion": "20000", "Emisor": { "Rfc": "EKU9003173C9", "Nombre": "ESCUELA KEMPER URGATE", "RegimenFiscal": 601 }, "Receptor": { "Rfc": "URE180429TM6", "Nombre": "UNIVERSIDAD ROBOTICA ESPAÑOLA", "DomicilioFiscalReceptor": "86991", "RegimenFiscalReceptor": 601, "UsoCFDI": "S01" }, "Conceptos": [ { "Impuestos": { "Traslados": [ { "Base": 1, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 0.16 } ] }, "ClaveProdServ": "01010101", "Cantidad": 1, "ClaveUnidad": "H87", "Unidad": "Servicio", "Descripcion": "Servicio", "ValorUnitario": 2000, "Importe": 2000, "ObjetoImp": "02", "ComplementoConcepto": { "Any": [ { "ventavehiculos:VentaVehiculos": { "@xmlns:ventavehiculos": "http://www.sat.gob.mx/ventavehiculos", "@version": "1.1", "@ClaveVehicular": "1231234", "@Niv": "12332", "ventavehiculos:InformacionAduanera": { "@aduana": "510, Nuevo Fuerte", "@fecha": "2024-03-19", "@numero": "00 00 0000 000000" } } } ] } } ], "Impuestos": { "Traslados": [ { "Base": 1, "Impuesto": "002", "TipoFactor": "Tasa", "TasaOCuota": 0.160000, "Importe": 0.16 } ], "TotalImpuestosTrasladados": 0.16 } } ``` --- # Errores comunes Fuente: https://developers.sw.com.mx/knowledge-base/errores-comunes/ Categoria: Elementos de Apoyo Elementos de Apoyo · Self Service # Errores Comunes Casos frecuentes de soporte con solución paso a paso — sin necesidad de abrir un ticket. Mayo 2026 Junio 2026 Julio 2026 Agosto 2026 La información de estará disponible próximamente. La información de estará disponible próximamente. Categorías: Todos 8 RFC / LCO Carta Porte Cuentas Login / Token Pruebas / Sandbox XML / Estructura Cancelaciones Datos Receptor Odoo / ERP ## Soluciones más buscadas Mostrando 6 de 9 temas Error 402 · LCO RFC / LCO Julio 2026 Mi RFC está activo y el CSD vigente, pero sigo recibiendo Error 402 El Error 402 indica que el RFC no tiene la validez de obligaciones necesaria en la LCO, aunque esté activo ante la autoridad. Esto es diferente al estatus del RFC y solo puede resolverlo el contribuyente directamente. FrecuenciaMuy frecuente ¿Cómo lo resuelvo? → Mensaje de error Error 402 — RFC del emisor no se encuentra en el régimen de contribuyentes (LCO). Detalle: El certificado debe contar con validez de obligaciones dentro de la lista LCO. Pasos para resolverlo 1Verifica el RFC y CSD con [Validador SAT para RFC](https://developers.sw.com.mx/knowledge-base/validador-sat-para-rfc-nombre-y-codigo-postal-2/) y [Validar CSD](https://developers.sw.com.mx/knowledge-base/validar-csd/). Si ambos están activos y el error persiste, el problema es la validez de obligaciones. 2**Si el error apareció de un día para otro:** puede ser un desfase de sincronización en la LCO. Espera a que se registre una nueva actualización — puedes consultar la última en la página de inicio de [developers.sw.com.mx](https://developers.sw.com.mx) — y vuelve a intentarlo. 3**Si ya pasaron varios días:** el RFC tiene valor 0 en validez de obligaciones. El emisor debe acudir con la autoridad para actualizar su situación fiscal. 4Consulta el estatus de la LCO en tiempo real en la página de inicio de [developers.sw.com.mx](https://developers.sw.com.mx). Para más detalle sobre validez de obligaciones consulta el video [TIPS-DEVS | Código de Error 402 — RFC del emisor no se encuentra en las listas LCO](https://www.youtube.com/watch?v=2Q03D-3c-hU&list=PLfJXKUQLHBqrIuTeHiHGN0y5ptSaCcMv7&index=13). También puedes consultar el estatus y la última actualización de la LCO directamente en la página de inicio de [developers.sw.com.mx](https://developers.sw.com.mx). Efisco · Descargas Integración API Julio 2026 Mis descargas masivas en Efisco llevan días “En proceso” o regresan vacías El servicio de descarga masiva está presentando intermitencias y lentitud. Las peticiones pueden tardar más de lo habitual o regresar vacías aunque sí exista información en el rango solicitado. FrecuenciaMuy frecuente ¿Cómo lo resuelvo? → ¿Por qué ocurre? Cuando el servicio presenta lentitud: → Las peticiones quedan “En proceso” por más tiempo del usual → Algunas regresan vacías aunque haya información en ese rango de fechas → La tasa de respuesta puede bajar significativamente Esto no está relacionado con tu cuenta ni con la configuración de Efisco. Recomendaciones 1**Divide las peticiones en rangos cortos** — en lugar de solicitar un mes completo, divide por quincenas o periodos de 15 días. Menor volumen por petición = mayor probabilidad de éxito. 2**Si una petición regresó con error o vacía**, genera una nueva petición con el mismo rango — no reutilices la petición anterior. Cada petición es independiente. 3**Monitorea la tasa de respuesta** en el portal de Efisco antes de generar nuevas peticiones — si la tasa está baja, espera a que mejore para evitar peticiones fallidas. 4**Verifica que tu FIEL esté vigente** en el aplicativo Efisco — una FIEL revocada o vencida genera errores en las descargas aunque la lentitud no sea el problema. Carga la FIEL actualizada si es necesario. 5Las peticiones en proceso **no se pueden cancelar**, pero son independientes a las nuevas — puedes generar nuevas peticiones sin afectar las que ya están en curso. Si llevas varios días sin respuesta y ya aplicaste las recomendaciones, abre un ticket a **soporte@sw.com.mx** — el equipo puede monitorear tus peticiones específicas y confirmarte si están avanzando o requieren reintento. Sandbox · Timbres Pruebas / Sandbox Julio 2026 Se me agotaron los timbres de prueba — ¿cómo obtengo más? Los timbres del ambiente sandbox no tienen costo pero tienen un límite inicial. Si necesitas más timbres de prueba para continuar con tu integración, puedes solicitarlos al equipo de soporte. FrecuenciaFrecuente ¿Cómo lo resuelvo? → Pasos para resolverlo 1Confirma que tu saldo de prueba llegó a cero revisando el [portal de pruebas](https://portal.test.sw.com.mx) — sección de saldo de timbres. 2Escribe a **soporte@sw.com.mx** o abre un ticket indicando: tu usuario sandbox, el RFC con el que estás probando y el número de timbres adicionales que necesitas para completar tu validación. 3Los timbres de prueba no representan un costo adicional y se asignan manualmente por el equipo de ventas — no hay proceso automático de recarga. Los timbres del ambiente sandbox no tienen costo ni representan consumo productivo — son exclusivamente para pruebas, por ello son limitados. Una vez en producción, tus timbres reales son independientes y se contratan por separado. Sandbox · Credenciales Pruebas / Sandbox Julio 2026 Soy integrador de una cuenta SW activa — ¿cómo obtengo credenciales de prueba propias? Cuando un integrador o desarrollador trabaja para un cliente que ya tiene cuenta productiva en SW, puede solicitar credenciales sandbox propias para desarrollar y probar sin afectar el ambiente de producción del cliente. FrecuenciaFrecuente ¿Cómo lo resuelvo? → Pasos para resolverlo 1Abre un ticket de soporte indicando: el RFC del cliente activo para el que estás integrando, el correo al que necesites que se ligue la cuenta de pruebas, y que necesitas credenciales sandbox para desarrollo. 2El equipo generará las credenciales de prueba y te las enviará al correo registrado — el proceso tarda normalmente menos de un día hábil. 3Usa esas credenciales exclusivamente en `services.test.sw.com.mx` o `api.test.sw.com.mx` — no uses las credenciales productivas del cliente, ya que se generará un error de autenticación. Las credenciales sandbox son independientes a las productivas del cliente — puedes hacer todas las pruebas que necesites sin riesgo de consumir timbres reales ni afectar la operación del cliente. REP · Cancelación Cancelaciones Julio 2026 ¿Se puede cancelar un Complemento de Pago (REP) ya timbrado? Duda fiscal frecuente: cuando se emitió un REP con datos incorrectos o el pago no se realizó, ¿es posible cancelarlo? Técnicamente sí es posible, pero el proceso tiene consideraciones fiscales importantes. FrecuenciaFrecuente ¿Cómo lo resuelvo? → ¿Qué dice la autoridad? Técnicamente: sí se puede cancelar un REP. Sin embargo, hay consideraciones fiscales: → Al cancelar el REP, la factura original regresa a estatus PPD pendiente de pago → Si el pago sí ocurrió, debes emitir un nuevo REP con los datos correctos → Si el pago NO ocurrió, cancela el REP y queda la factura original en PPD Recomendación: consulta con tu área fiscal antes de cancelar un REP para evitar inconsistencias contables. Pasos para cancelarlo 1La cancelación de un REP sigue el mismo proceso que cualquier CFDI — usa **Motivo 01** si emitirás uno nuevo con los datos correctos, o **Motivo 03** si el pago no ocurrió. 2Si usas Motivo 01: timbra primero el REP correcto con `TipoRelacion="04"` apuntando al UUID del REP a cancelar, luego cancela el original. 3Verifica el estatus de la cancelación en el [portal de verificación](https://verificacfdi.facturaelectronica.sat.gob.mx/) ingresando el UUID del REP. Cancelar un REP no cancela la factura original — solo elimina la constancia de pago. La factura vuelve a quedar en PPD pendiente. Asesórate con tu contador antes de proceder si tienes dudas sobre el impacto contable. XML · Sellado XML / Estructura Julio 2026 Error al timbrar — la razón social tiene el símbolo “&” y el XML falla después del sellado El error ocurre cuando el XML es modificado después de ser sellado. El símbolo “&” en la razón social u otros campos debe estar codificado como `&` en el XML antes de sellarlo — cualquier modificación posterior invalida la cadena original. FrecuenciaFrecuente ¿Cómo lo resuelvo? → La causa del error El error se presenta cuando el XML es modificado DESPUÉS del sellado. La cadena original se genera a partir del XML sellado — si algo cambia después, la cadena ya no coincide y el timbrado falla. El estándar técnico del SAT ya define las secuencias de escape para XML obligatorias: & para & < para < > para > " para “ Pasos para resolverlo 1Asegúrate de aplicar las secuencias de escape definidas en el estándar técnico **antes** de sellar el XML — no después. El símbolo `&` en la razón social debe codificarse como `&` en el XML antes del sellado. 2Revisa tu proceso: el flujo correcto es **1)** construir XML con caracteres correctamente codificados, **2)** sellar, **3)** enviar a timbrar. No modifiques el XML entre el sellado y el timbrado. 3Valida tu XML con [Validar CFDI 4.0](https://developers.sw.com.mx/knowledge-base/nuevo-validar-cfdi-4-0/) antes de sellarlo para detectar caracteres no codificados. Una librería XML estándar codifica automáticamente los caracteres especiales al construir el nodo — si estás armando el XML como string concatenado, ese es el origen del problema. Usa siempre un parser XML para construir el documento. Retenciones · URL Integración API Julio 2026 ¿Cuáles son las URLs actuales para timbrar retenciones? El servicio me da error de conexión Las URLs del servicio de timbrado de retenciones son diferentes a las del timbrado CFDI estándar. Si recibes error de conexión, verifica que estés usando el endpoint correcto para tu ambiente. FrecuenciaFrecuente ¿Cómo lo resuelvo? → Endpoints de retenciones URL base: Pruebas: services.test.sw.com.mx Producción: services.sw.com.mx Timbrado Retenciones: /retencion/stamp/{version} /retencion/stamp/json/{version}/{format} Emisión Timbrado Retenciones: /retencion/issue/{version} /retencion/issue/json/{version}/{format} Pasos para resolverlo 1Verifica que la URL base corresponda a tu ambiente — pruebas usa `services.test.sw.com.mx` y producción usa `services.sw.com.mx` o `api.sw.com.mx`. 2Consulta la documentación completa según el servicio que uses: [**Timbrado Retenciones**](https://developers.sw.com.mx/knowledge-base/timbrado-retenciones-cfdi-rest/) o [**Emisión Timbrado Retenciones**](https://developers.sw.com.mx/knowledge-base/emision-timbrado-retenciones/) — cada uno tiene paths y versiones específicos. 3El path de retenciones es diferente al de CFDI estándar `/cfdi33/stamp/{version}` — no son intercambiables. Asegúrate de usar el path correcto para retenciones. El token de autenticación y las credenciales son los mismos para retenciones y CFDI estándar — solo cambia el endpoint. No necesitas una cuenta diferente para timbrar retenciones. Encoding · UTF-8 XML / Estructura Julio 2026 El XML de respuesta trae caracteres extraños en el nombre del receptor Al procesar la respuesta del servicio, algunos sistemas muestran caracteres extraños en nombres con acentos o caracteres especiales. Esto ocurre cuando el encoding al leer la respuesta no coincide con el UTF-8 en que se devuelve el XML. FrecuenciaFrecuente ¿Cómo lo resuelvo? → ¿Por qué ocurre? El XML de respuesta viene en UTF-8. Si tu sistema lo procesa con otro encoding (ISO-8859-1, Latin-1) los caracteres especiales pueden verse así: á → á | é → é | ñ → ñ Asegúrate de leer la respuesta en UTF-8 para que los caracteres se muestren bien. Pasos para resolverlo 1Asegúrate de que tu sistema lee la respuesta HTTP en **UTF-8** — verifica el encoding al parsear el JSON o XML de respuesta. 2Si usas un cliente HTTP, establece explícitamente el charset: `Content-Type: application/json; charset=utf-8` tanto en el request como al procesar el response. 3Verifica el XML timbrado original descargándolo directamente desde el [portal SW](https://portal.sw.com.mx) o con el servicio de recuperación por UUID — si se ve bien ahí, el problema es tu proceso de lectura. Puedes validarlo fácilmente: descarga el XML desde el [portal SW](https://portal.sw.com.mx) o consúltalo con el servicio de recuperación por UUID. Si se ve bien ahí, solo necesitas ajustar el encoding en tu proceso de lectura a UTF-8. CSD · Sandbox Pruebas / Sandbox Junio 2026 Tengo credenciales de prueba pero no puedo timbrar — ¿qué más necesito configurar? Al intentar timbrar en el ambiente de pruebas, el servicio regresa error de certificado porque la cuenta sandbox no tiene cargado ningún CSD. Sin certificado, no es posible timbrar aunque las credenciales sean correctas. FrecuenciaMuy frecuente ¿Cómo lo resuelvo? → Pasos para resolverlo 1Descarga los [CSD de pruebas vigentes](https://developers.sw.com.mx/knowledge-base/donde-encuentro-csd-de-pruebas-vigentes/) desde el portal SW — son certificados especiales para el ambiente sandbox, diferentes a tu CSD productivo. 2Entra al portal de pruebas [portal.test.sw.com.mx](https://portal.test.sw.com.mx) con tus credenciales sandbox y carga el CSD descargado en la sección de **Emisores**. 3Una vez cargado el CSD, vuelve a intentar el timbrado. Si tu integración usa el RFC del CSD de pruebas, asegúrate de que coincida con el que configuraste en tu request. 4Para Carta Porte en sandbox: usa exactamente el RFC del CSD de pruebas que descargaste — no el RFC de tu empresa, ya que en pruebas usas certificados ficticios proporcionados por SW. Los CSD de pruebas tienen fecha de expiración. Si antes timbrabas bien en sandbox y de repente fallas, verifica que el CSD de pruebas siga vigente — puede necesitar actualizarse. AU2000 · Ambientes Pruebas / Sandbox Junio 2026 AU2000 — Mis credenciales son correctas pero el servicio me regresa usuario o contraseña inválidos Error AU2000 aunque las credenciales parecen correctas. La causa más frecuente es mezclar credenciales de un ambiente con el endpoint del otro — cada ambiente tiene su propio usuario, contraseña y URL de autenticación. FrecuenciaMuy frecuente ¿Cómo lo resuelvo? → Credenciales y endpoints por ambiente PRUEBAS: Autenticación: services.test.sw.com.mx /v2/security/authenticate Portal: portal.test.sw.com.mx Credenciales: las de tu cuenta sandbox PRODUCCIÓN: Autenticación: services.sw.com.mx (v1) api.sw.com.mx (v2) /v2/security/authenticate Portal: portal.sw.com.mx Credenciales: las de tu cuenta productiva ⚠ Mezclar credenciales genera AU2000. Pasos para resolverlo 1Verifica qué endpoint estás usando y que las credenciales correspondan a ese ambiente. Si apuntas a `services.test.sw.com.mx` usa credenciales de **pruebas**; si apuntas a `services.sw.com.mx` o `api.sw.com.mx` usa credenciales de **producción**. 2Valida tus credenciales entrando directamente al portal correspondiente — si puedes entrar, las credenciales son correctas y el problema está en la URL del endpoint. 3Si no tienes credenciales de prueba, solicítalas en [Ambiente de pruebas](https://developers.sw.com.mx/article-categories/get-started/) — son independientes a las productivas. Una forma rápida de identificar el problema: si el usuario de producción termina en `@tuempresa.com` y lo estás usando en el endpoint de pruebas, ese es el error — cada cuenta existe solo en su propio ambiente. Endpoints · Migración Integración API Junio 2026 ¿Cuáles son las URLs actuales de los servicios de SW? Necesito actualizar mis apuntadores SW actualizó sus endpoints. Si tu sistema aún apunta a URLs anteriores como `advans.com` necesitas actualizarlas a las direcciones actuales para evitar errores de conexión. FrecuenciaFrecuente ¿Cómo lo resuelvo? → URLs actuales PRUEBAS: Timbrado: services.test.sw.com.mx Cancelación: services.test.sw.com.mx Auth: services.test.sw.com.mx /v2/security/authenticate PRODUCCIÓN (dos dominios disponibles): services.sw.com.mx ← dominio principal api.sw.com.mx ← dominio alternativo Auth: /v2/security/authenticate Ambos dominios productivos son válidos. Solo cambia la URL base — token y credenciales siguen igual. Pasos para resolverlo 1Localiza en tu sistema o configuración la URL base del servicio SW y reemplázala por la URL actual correspondiente a tu ambiente. 2El cambio es solo en la URL base — el path del endpoint, el token y las credenciales **no cambian**. No necesitas regenerar token ni actualizar credenciales. 3Prueba con una petición de autenticación después del cambio para confirmar que la conexión es exitosa antes de reanudar el timbrado. Si tienes múltiples servicios configurados (timbrado, cancelación, consulta de estatus), actualiza todos. En producción puedes usar `services.sw.com.mx` o `api.sw.com.mx` — ambos son válidos. En pruebas usa siempre `services.test.sw.com.mx`. CACFDI33 · CA305 Cancelaciones Junio 2026 CACFDI33 / CA305 — Error de certificado inválido al solicitar una cancelación Al cancelar un CFDI aparece el error CACFDI33 con detalle CA305 — certificado inválido. Puede deberse al tipo de certificado, su vigencia o que se está usando la e.firma en lugar del CSD para la cancelación. FrecuenciaFrecuente ¿Cómo lo resuelvo? → Causas del error CACFDI33 — CA305 — Certificado inválido: Causa 1: Certificado vencido → El CSD expiró desde la emisión del CFDI Causa 2: Tipo de certificado incorrecto → Se usa e.firma (FIEL) en lugar del CSD Causa 3: CSD no corresponde al RFC emisor → El certificado es de otro RFC Pasos para resolverlo 1Valida la vigencia y tipo del certificado con [Validar CSD](https://developers.sw.com.mx/knowledge-base/validar-csd/) — confirma que es un CSD (no e.firma) y que no está vencido. 2Aunque el CSD esté vencido al momento de cancelar, la cancelación debe seguir siendo posible. Si el error persiste con un CSD vigente del mismo RFC, el problema puede ser el tipo de certificado — asegúrate de no estar enviando la e.firma. 3Verifica que el RFC del CSD que envías en la cancelación sea el mismo RFC emisor del CFDI que intentas cancelar. 4Si el error persiste después de verificar todo lo anterior, abre un ticket adjuntando el XML de la solicitud de cancelación para revisión manual. La e.firma y el CSD son certificados diferentes — la e.firma sirve para trámites ante la autoridad, el CSD es exclusivamente para sellar y cancelar CFDI. Verifica cuál estás usando antes de intentar la cancelación. ADT · Manifiesto Cuentas Junio 2026 No encuentro el manifiesto de términos en el ADT — ¿dónde está? El manifiesto de términos y condiciones del servicio está en el ADT dentro de la sección de Emisores. Aparece solo cuando hay términos pendientes de firma — si no lo ves, ya fue firmado anteriormente. FrecuenciaFrecuente ¿Cómo lo resuelvo? → Pasos para encontrarlo 1Entra al [portal SW](https://portal.sw.com.mx) con tu cuenta administradora — el manifiesto solo aparece desde la cuenta principal, no desde cuentas hijas. 2Ve a la sección de **Emisores** en el menú del ADT. Del lado derecho de cada emisor verás una pequeña flecha o ícono — haz clic ahí para ver las opciones del emisor incluyendo el manifiesto. 3Si el manifiesto no aparece en la lista, ya fue firmado anteriormente. No es necesario firmarlo de nuevo a menos que el sistema te lo solicite explícitamente. 4Si el RFC de tu empresa no aparece en la lista de Emisores, verifica que esté dado de alta en tu cuenta — necesitas agregarlo primero para que aparezca el manifiesto. El manifiesto se firma una sola vez por emisor. Si migraste de cuenta o cambiaste de administrador y no lo encuentras, es posible que ya esté firmado en la cuenta anterior — contacta a soporte para verificar el estatus. CCE · Decimales XML / Estructura Junio 2026 Mi CFDI de Comercio Exterior falla al timbrar y no identifico el error en los importes El complemento de Comercio Exterior falla al timbrar por inconsistencias en el manejo de decimales en los campos de cantidad o importe. Un decimal extra o mal redondeado puede hacer que la validación rechace el CFDI. FrecuenciaFrecuente ¿Cómo lo resuelvo? → Causas frecuentes Comercio Exterior valida aritmética estricta: – Decimales extra en CantidadAduana Ej: 10.000001 en lugar de 10.00 – ValorUnitarioAduana no cuadra con el importe total declarado – Más de 6 decimales en los importes (el estándar permite hasta 6) – Redondeo diferente al esperado por la autoridad en la conversión de moneda Pasos para resolverlo 1Revisa los campos numéricos del complemento CCE — especialmente `CantidadAduana`, `ValorUnitarioAduana` y `ValorDolares`. Asegúrate de que no tengan más de 6 decimales. 2Verifica que el cálculo `CantidadAduana × ValorUnitarioAduana` dé exactamente el valor declarado en los importes — sin diferencias por redondeo. 3Compara tu XML contra el ejemplo de CCE del [catálogo de ejemplos](https://developers.sw.com.mx/article-categories/ejemplos-4-0/) para confirmar que los tipos de dato son correctos. 4Valida tu XML con [Validar CFDI 4.0](https://developers.sw.com.mx/knowledge-base/nuevo-validar-cfdi-4-0/) antes de timbrar — detecta errores aritméticos antes de consumir un timbre. El error de decimales en CCE suele aparecer cuando el sistema genera los valores con aritmética de punto flotante. Usa siempre redondeo explícito a 2 o 6 decimales según el campo antes de armar el XML. XAXX · PPD · RFC Genérico XML / Estructura Junio 2026 ¿Es correcto emitir una factura a público en general con método PPD y forma de pago 99? Duda fiscal frecuente: al facturar a público en general con RFC `XAXX010101000`, ¿es válido usar PPD (pago en parcialidades) con forma de pago 99 (por definir)? FrecuenciaFrecuente ¿Cómo lo resuelvo? → Respuesta Técnicamente timbrará — la validación del servicio lo permite. Sin embargo, NO es correcto fiscalmente: – RFC XAXX (público en general) implica que no se conoce al receptor – PPD requiere emitir Complemento de Pago (REP) al recibir el pago – El REP no puede emitirse a XAXX porque requiere datos del receptor Recomendación: usa MetodoPago=”PUE” y FormaDeP=la real al momento de la operación. ¿Cuándo usar RFC genérico? 1Usa `XAXX010101000` solo para operaciones de **público en general** donde no se requiere identificar al receptor — típicamente para factura global o ventas al menudeo. 2Para estas operaciones usa siempre `MetodoPago="PUE"` (pago en una sola exhibición) — así no generas obligación de emitir REP. 3Si el cliente pagará a crédito o en parcialidades, necesitas su RFC real para poder emitir el Complemento de Pago correctamente — no uses XAXX en ese caso. Si tienes dudas sobre la correcta configuración fiscal de tus CFDI, consulta con tu contador o área fiscal — SW puede timbrar el documento técnicamente correcto, pero la validez fiscal depende de los datos que uses. Multi-RFC · Cuenta Cuentas Junio 2026 ¿Puedo timbrar con varios RFC emisores desde una sola cuenta sin configuración adicional? Una duda frecuente al integrar: si se necesita una cuenta o configuración especial para poder timbrar CFDI de diferentes RFC emisores desde una misma cuenta SW. FrecuenciaFrecuente ¿Cómo lo resuelvo? → ¿Cómo funciona Multi-RFC en SW? Los timbres de SW son Multi-RFC por default: ✓ No requiere activación especial ✓ No requiere una cuenta por empresa ✓ Desde una sola cuenta puedes timbrar CFDI de diferentes RFC emisores Solo necesitas: → Cargar el CSD de cada RFC en tu cuenta → Enviar el RFC correcto en cada request Pasos para configurarlo 1Entra al [portal SW](https://portal.sw.com.mx) con tu cuenta administradora y ve a la sección **Emisores**. 2Agrega cada RFC que necesites timbrar y carga su CSD correspondiente. Cada emisor necesita su propio certificado vigente. 3En tu integración, asegúrate de enviar el RFC correcto en el atributo `Emisor.Rfc` del CFDI — el servicio seleccionará automáticamente el CSD correspondiente. 4Si necesitas separar los timbres por empresa o dar acceso independiente a cada RFC, usa **cuentas hijas** desde el ADT — cada una tiene su propio saldo y acceso. No hay límite de RFC por cuenta — puedes agregar todos los emisores que necesites. El saldo de timbres es compartido entre todos los RFC de la cuenta, a menos que uses cuentas hijas con saldo asignado individualmente. Error 402 · LCO RFC / LCO Mayo 2026 Mi RFC está activo y el CSD vigente, pero sigo sin poder timbrar — Error 402 El RFC existe y el CSD está vigente, pero el SAT rechaza el timbrado porque el RFC no tiene registrada la **validez de obligaciones** para emitir CFDI. Esto es diferente al estatus activo — es un campo separado que solo aparece en la LCO privada que el SAT comparte con los PAC. FrecuenciaMuy frecuente ¿Cómo lo resuelvo? → Mensaje de error Error 402 — RFC del emisor no se encuentra en el régimen de contribuyentes (LCO). Detalle: El certificado debe contar con validez de obligaciones dentro de la lista LCO. ¿Por qué pasa si mi RFC está activo? La LCO valida un campo llamado “validez de obligaciones” (Anexo 29 RMF vigente, pág. 6): Valor 0 = sin obligaciones para emitir CFDI Valor 1-4 = habilitado para facturar Este campo es DISTINTO a: x Estatus activo del RFC (visible en portal SAT) x Fecha de vigencia del CSD x Validación pública de clave RFC Solo el SAT puede actualizarlo. SW no tiene control sobre este valor. Pasos para resolverlo 1Verifica primero que el RFC y el CSD estén vigentes con el [Validador SAT para RFC](https://developers.sw.com.mx/knowledge-base/validador-sat-para-rfc-nombre-y-codigo-postal-2/) y [Validar CSD](https://developers.sw.com.mx/knowledge-base/validar-csd/). Si ambos están bien y el error persiste, el problema es de validez de obligaciones. 2**Si el error apareció de un día para otro** y antes timbrabas sin problema: puede ser un desfase de sincronización. Espera a la siguiente actualización de la LCO — el SAT las realiza **a las 12:00 de la noche** — y vuelve a intentarlo. 3**Si ya pasaron varios días y el error persiste**: el RFC del emisor tiene valor 0 en validez de obligaciones. El emisor debe **acudir al SAT** para actualizar sus obligaciones fiscales. Una vez que el SAT lo actualice, el timbrado se reanudará en la siguiente actualización nocturna de la LCO. 4Consulta el estatus y horario de la última actualización de la LCO en la página de inicio de [developers.sw.com.mx](https://developers.sw.com.mx) — sección **Actualización de la LCO**. Más información: video [tipSW® — Validación de datos fiscales en LRFC y LCO](https://youtu.be/w51-TmpQCxk) y el [Anexo 29 RMF vigente (pág. 6)](http://omawww.sat.gob.mx/normatividad_RMF_RGCE/Paginas/documentos/rmf/anexos/Anexo_29-RMF_2023-12012023.pdf). Carta Porte 3.1 · QR Carta Porte Mayo 2026 El QR de Carta Porte no abre el portal de validación o redirige a una página de acceso Al escanear el código QR del complemento Carta Porte 3.1 o al acceder directamente al link de verificación, el portal redirige a una pantalla de inicio de sesión o muestra un mensaje de acceso denegado, sin poder validar el documento. FrecuenciaFrecuente ¿Cómo lo resuelvo? → ¿Qué está pasando? El portal específico de validación de Carta Porte: https://verificacfdi.facturaelectronica.sat.gob.mx /verificaccp/default.aspx?idCCP=… Actualmente presenta intermitencias — redirige a pantalla de login o muestra acceso denegado incluso al iniciar sesión. Esto NO significa que tu CFDI esté mal timbrado. El timbrado y la información del documento se generaron y enviaron correctamente. ¿Cómo valido mi Carta Porte mientras tanto? 1Usa el **portal general de verificación de CFDI** como alternativa — confirma la validez y vigencia del documento correctamente: [verificacfdi.facturaelectronica.sat.gob.mx](https://verificacfdi.facturaelectronica.sat.gob.mx/) 2Ingresa el **UUID** de tu Carta Porte en ese portal — el SAT confirmará directamente que el timbrado es válido y vigente. 3Esta situación se presenta de forma generalizada — no corresponde a un problema particular de tu operación ni de tu integración con SW. 4*Opción adicional:* si lo consideras conveniente, puedes acompañar el documento físico con la constancia de validación obtenida desde el portal general de verificación del SAT como respaldo complementario. Puedes confirmar que tu CFDI está correctamente timbrado ingresando el UUID directamente en el [portal de verificación del SAT](https://verificacfdi.facturaelectronica.sat.gob.mx/) — si aparece como vigente, el documento es válido. Token vacío · SDK Cuentas / Autenticación Mayo 2026 “El token debe contener 3 partes” — el token llega vacío o incompleto al timbrar La autenticación responde con éxito, pero al momento del timbrado el token no llega correctamente al header de la petición — viene vacío, truncado o con caracteres escapados. Es el error más frecuente al integrar con SDK o librería propia. FrecuenciaMuy frecuente ¿Cómo lo resuelvo? → Flujo correcto de autenticación y timbrado 1. POST /security/authenticate → Respuesta: { “data”: { “token”: “T2lYQ0t4L0…”, “expires\_in”: 1630012447, “token\_type”: “Bearer” }, “status”: “success” } 2. Extraer el valor de data.token 3. Incluirlo en el header del timbrado: Authorization: Bearer T2lYQ0t4L0… Causas más comunes – El token se extrae del objeto equivocado (ej. response en lugar de response.data.token) – El valor se está escapando o codificando al pasarlo al header – La versión del SDK está desactualizada – Se usa token de pruebas en producción o viceversa Pasos para resolverlo 1Verifica que estás extrayendo exactamente el campo `data.token` de la respuesta de autenticación — no el objeto completo ni otro campo. 2Revisa que el token no esté siendo codificado (encode) ni escapado al pasarlo al header. Debe enviarse tal cual como lo devuelve la respuesta. 3El header debe quedar exactamente así: `Authorization: Bearer T2lYQ0t4L0...` — con el prefijo `Bearer` seguido de un espacio y el token sin comillas ni caracteres extra. 4Si usas el **SDK de SW**: verifica que tienes la versión más reciente descargándola desde [Librerías SW](https://developers.sw.com.mx/knowledge-base/librerias/). Una versión desactualizada puede generar este comportamiento. 5Si el problema persiste o quieres evitar gestionar la expiración del token, considera usar un [**Token Infinito**](https://developers.sw.com.mx/knowledge-base/generar-un-token-infinito/) — no caduca y simplifica la integración. El [Token Infinito](https://developers.sw.com.mx/knowledge-base/generar-un-token-infinito/) es ideal si tu sistema no necesita rotar credenciales — lo generas una vez y lo configuras como constante en tu integración, eliminando por completo los errores de autenticación por expiración. Portal SW · Acceso Cuentas Mayo 2026 Olvidé mi contraseña o ya no puedo acceder al portal de SW No puedes iniciar sesión en el portal de SW porque olvidaste tu contraseña o la cambiaste y perdiste el acceso. El proceso de recuperación es directo desde el portal y llega a tu correo registrado. FrecuenciaMuy frecuente ¿Cómo lo resuelvo? → ¿A qué portal entro? Producción: https://portal.sw.com.mx Pruebas: https://portal.test.sw.com.mx Usa el portal que corresponde al ambiente de tu cuenta. Pasos para recuperar tu contraseña 1Entra al portal correspondiente a tu ambiente y haz clic en **“Recuperar Contraseña”** — está justo debajo del botón Ingresar. 2Ingresa el correo electrónico con el que registraste tu cuenta en SW y haz clic en **“Enviar”**. 3Revisa tu bandeja de entrada — incluyendo la carpeta de **spam o correo no deseado**. Recibirás un correo con las instrucciones para restablecer tu contraseña. 4Una vez restablecida la contraseña, si la tenías configurada en algún **ERP u otro sistema** (Odoo, SAP, etc.), recuerda actualizarla también ahí para que el timbrado no se interrumpa. Si recuperaste la contraseña del portal pero sigues sin poder timbrar desde tu sistema, recuerda que el **Bearer Token de la API es independiente** — debes regenerarlo también con `POST /security/authenticate` usando la nueva contraseña. AU2000 · HTTP 400 Login / Token Mayo 2026 AU2000 — “El usuario y/o contraseña son inválidos” al autenticarse vía API Las credenciales parecen correctas pero al autenticarse vía API recibes el error AU2000. Puede deberse a una contraseña incorrecta o desactualizada, o a estar usando un endpoint de autenticación desactualizado. FrecuenciaMuy frecuente ¿Cómo lo resuelvo? → Mensaje de error HTTP 400 AU2000 — El usuario y/o contraseña son inválidos, no se puede autenticar el servicio. Pasos para resolverlo 1Verifica que tu contraseña sea correcta intentando entrar directamente al portal: **Pruebas:** [portal.test.sw.com.mx](https://portal.test.sw.com.mx) · **Producción:** [portal.sw.com.mx](https://portal.sw.com.mx). Si no puedes entrar, el problema es la contraseña. 2Si no recuerdas tu contraseña, restablécela desde el portal correspondiente a tu ambiente — haz clic en **“Recuperar Contraseña”** e ingresa tu correo registrado. Recibirás un enlace para actualizarla. Pruebas: [portal.test.sw.com.mx/recuperar-contrasena](https://portal.test.sw.com.mx/recuperar-contrasena) 3Una vez que puedas entrar al portal, vuelve a intentar la autenticación vía API con la contraseña actualizada. 4Si el error persiste aunque la contraseña sea correcta, revisa que tu sistema o ERP no esté guardando una contraseña anterior — actualízala también en tu integración. Asegúrate de estar usando la versión actualizada del endpoint de autenticación — debe incluir `/v2/` en la URL: `services.test.sw.com.mx/v2/security/authenticate` (pruebas) `api.sw.com.mx/v2/security/authenticate` (producción). El endpoint sin `/v2/` es una versión anterior que puede reproducir este error. Motivo 01 · TipoRelacion 04 Cancelaciones Mayo 2026 Cancelé con Motivo 01 pero el CFDI sigue “Vigente” o no llega al SAT La cancelación con Motivo 01 requiere un paso previo que frecuentemente se omite: el CFDI sustituto debe incluir la relación `TipoRelacion="04"` apuntando al UUID del CFDI a cancelar. Sin esa relación, la solicitud se recibe pero no puede ser procesada por el SAT. FrecuenciaFrecuente ¿Cómo lo resuelvo? → El error más frecuente — falta TipoRelacion=”04″ El CFDI sustituto (factura B) DEBE incluir: Sin este nodo la cancelación se recibe pero NO puede ser autorizada por el SAT. Pasos para resolverlo — Motivo 01 1**Primero timbra el CFDI sustituto (factura B)** incluyendo el nodo `CfdiRelacionados` con `TipoRelacion="04"` y el UUID del CFDI original (factura A) que vas a cancelar. 2**Después** solicita la cancelación del CFDI original (factura A) con Motivo 01, incluyendo el UUID de la factura B en el campo `FolioSustitucion`. 3Verifica el estatus de la cancelación en el [portal de verificación del SAT](https://verificacfdi.facturaelectronica.sat.gob.mx/) ingresando el UUID de la factura A. 4Para más detalle sobre este flujo y otros escenarios de cancelación, consulta la [guía de preguntas frecuentes de cancelación del SAT](https://www.sat.gob.mx/cs/Satellite?blobcol=urldata&blobkey=id&blobtable=MungoBlo bs&blobwhere=1461176211410&ssbinary=true). El orden importa: **1)** timbra la factura B con relación 04 apuntando a la factura A, **2)** cancela la factura A con Motivo 01 incluyendo el folio de la factura B. Invertir el orden hace que la cancelación quede sin efecto aunque se reciba correctamente. CFDI40xxx · Receptor Datos Receptor Mayo 2026 Error en los datos del receptor — RFC, código postal fiscal o UsoCFDI En CFDI 4.0 los datos del receptor son obligatorios y deben coincidir exactamente con el SAT: RFC activo, nombre, código postal fiscal, régimen fiscal y UsoCFDI compatible con el régimen. FrecuenciaModerado ¿Cómo lo resuelvo? → Campos obligatorios del receptor en CFDI 4.0 Receptor.Rfc → RFC activo en SAT Receptor.Nombre → Razón social exacta SAT Receptor.DomicilioFiscalReceptor → CP fiscal (no el comercial) Receptor.RegimenFiscalReceptor → Régimen del receptor Receptor.UsoCFDI → Compatible con su régimen Pasos para resolverlo 1Valida el RFC de tu receptor con el [Validador SAT para RFC](https://developers.sw.com.mx/knowledge-base/validador-sat-para-rfc-nombre-y-codigo-postal-2/) — debe estar activo. 2El `DomicilioFiscalReceptor` es el **Código Postal registrado ante el SAT**, no el de la dirección de entrega ni el comercial. Pídelo directamente a tu cliente. 3Verifica que el `UsoCFDI` sea compatible con el `RegimenFiscalReceptor` en la [matriz de catálogos SAT](https://developers.sw.com.mx/article-categories/documentacion-4-0/). 4Para **público en general**: usa RFC `XAXX010101000` (México) o `XEXX010101000` (extranjero), con `UsoCFDI="S01"` y `RegimenFiscalReceptor="616"`. El error más frecuente es usar el Código Postal de la dirección comercial o de entrega. El `DomicilioFiscalReceptor` es exclusivamente el que el receptor tiene registrado ante el SAT — son campos distintos. Mira este video para más detalle: [TIPS-DEVS | Código de Error CFDI40147 — DomicilioFiscalReceptor](https://www.youtube.com/watch?v=vFmp1zn0HHU&list=PLfJXKUQLHBqrIuTeHiHGN0y5ptSaCcMv7&index=8). Error 305 · CSD · Odoo Odoo / ERP Mayo 2026 Error 305 en Odoo — Certificado no encontrado en LCO para validar vigencia Al intentar timbrar desde Odoo aparece el error 305. Las dos causas más frecuentes son: cargar la e.firma (FIEL) en lugar del CSD, o usar un certificado de pruebas con serie no registrada en la LCO del sandbox. FrecuenciaFrecuente ¿Cómo lo resuelvo? → Mensaje de error Error 305 — Certificado no encontrado en LCO para validar vigencia de obligaciones. Causa 1 — Estás cargando la e.firma (FIEL) en lugar del CSD La e.firma y el CSD son certificados diferentes: e.firma (FIEL) → para trámites ante el SAT → serie termina en …FIEL o similar → NO sirve para timbrar CSD (Certificado de Sello Digital) → para timbrar CFDI → debe estar registrado en el SAT → se tramita en el portal del SAT Causa 2 — CSD de pruebas con serie no registrada en LCO del sandbox No todos los CSD de pruebas están registrados en la LCO del ambiente sandbox. Si usas un certificado de pruebas con serie no registrada, obtendrás el error 305 aunque el CSD sea válido. Pasos para resolverlo 1Verifica qué tipo de certificado tienes cargado en Odoo — puedes consultarlo en el [portal de certificados del SAT](https://portalsat.plataforma.sat.gob.mx/RecuperacionDeCertificados/faces/consultaCertificados.xhtml). Si la serie corresponde a una e.firma, necesitas tramitar un CSD. 2Para producción: tramita tu **CSD (Certificado de Sello Digital)** directamente en el portal del SAT. Es diferente a la e.firma y es el único válido para timbrar CFDI. 3Para pruebas: descarga los [CSD de pruebas vigentes y validados](https://developers.sw.com.mx/knowledge-base/donde-encuentro-csd-de-pruebas-vigentes/) desde el portal SW — usa únicamente los certificados listados ahí, ya que son los que tienen serie registrada en la LCO del sandbox. Mira este video para más detalle sobre el error 305: [TIPS-DEVS | Código de Error 305 — Certificado no encontrado en LCO](https://www.youtube.com/watch?v=PIHSr6-AqvI&list=PLfJXKUQLHBqrIuTeHiHGN0y5ptSaCcMv7&index=10). ObjetoImp · CFDI 4.0 XML / Estructura Mayo 2026 ¿Cuándo uso ObjetoImp “01”, “02” o “03” en mis conceptos? En CFDI 4.0 el atributo `ObjetoImp` es obligatorio en cada concepto. Indica si el concepto genera impuestos o no, y determina si debes incluir el nodo de impuestos dentro del concepto. FrecuenciaFrecuente ¿Cómo lo resuelvo? → Valores del atributo ObjetoImp ObjetoImp=”01″ → No es objeto de impuesto Concepto exento de IVA/IEPS NO incluir nodo cfdi:Impuestos en el concepto ObjetoImp=”02″ → Sí es objeto de impuesto Concepto con IVA o IEPS SÍ incluir nodo cfdi:Impuestos en el concepto ObjetoImp=”03″ → Sí objeto, impuesto no desglosado Uso específico: factura global RESICO Regla práctica 1Si tu concepto **lleva IVA o IEPS** → usa `ObjetoImp="02"` e incluye el nodo `cfdi:Impuestos` con los traslados correspondientes dentro del concepto. 2Si tu concepto está **exento de impuestos** → usa `ObjetoImp="01"` y **no incluyas** el nodo `cfdi:Impuestos` en ese concepto. 3Si emites **facturas globales RESICO** → usa `ObjetoImp="03"`. El impuesto no se desglosa por concepto. 4Revisa los ejemplos que tenemos para ti en el [catálogo de ejemplos XML y JSON](https://developers.sw.com.mx/article-categories/ejemplos-4-0/) para ver la estructura correcta del nodo según tu tipo de CFDI. El error más frecuente es usar `ObjetoImp="02"` pero olvidar incluir el nodo `cfdi:Impuestos` dentro del concepto — o al revés, usar `ObjetoImp="01"` e incluir igualmente el nodo de impuestos. Ambos generan rechazo. ✕ ### ¿No encontraste la solución? Nuestro equipo de soporte técnico está listo para ayudarte. Crea un ticket y te respondemos en breve. [Crear ticket de soporte →](https://developers.sw.com.mx/knowledge-base/como-levantar-un-ticket/) 🔍 ### Sin resultados para esa búsqueda Intenta con otro término o [crea un ticket de soporte](https://developers.sw.com.mx/knowledge-base/como-levantar-un-ticket/). --- # Cambio de usuario Fuente: https://developers.sw.com.mx/knowledge-base/cambio-de-usuario/ Categoria: Guías de Funcionalidad Para nosotros, el correo asociado a tu cuenta es un activo importante. Para garantizar la seguridad y privacidad de la información, seguimos un proceso estructurado antes de realizar cualquier cambio. A continuación, te explicamos el flujo completo del proceso, los actores involucrados y las consideraciones a tener en cuenta. ## Flujo completo ![](https://developers.sw.com.mx/wp-content/uploads/2025/03/corregida.png) --- ## Proceso 1️⃣ Solicitud de cambio de correo 📨 Puedes solicitar el cambio de correo a través de una de las siguientes opciones: - Contactar a tu ejecutiva de ventas. - Enviar un correo a nuestro equipo de soporte. Si contactas a tu ejecutiva de ventas, ella se encargará de generar un ticket para el seguimiento del proceso. Si envías un correo directamente a soporte, el ticket se generará automáticamente y se le dará seguimiento desde ahí. 2️⃣ Documentación requerida 📄 Para procesar la solicitud, es necesario incluir en el correo la siguiente información: - **Usuario actual (correo registrado)** - **Nuevo correo al que deseas cambiar** - **Documentación requerida:** - Carta de solicitud indicando el usuario anterior, el nuevo usuario a registrar y una descripción breve con los motivos que justifican el cambio. Debe estar firmada por el representante legal. - Copia del acta constitutiva y poder del representante. - INE del representante legal. 3️⃣ Revisión y aprobación 📄🔍 Una vez que la solicitud ha sido enviada, la ejecutiva de ventas revisará a detalle la documentación proporcionada. Si toda la información es correcta, dará el visto bueno para proceder con el cambio. Si la documentación está incompleta o incorrecta, la ejecutiva notificará al cliente para que envíe la información faltante antes de continuar con el proceso. 4️⃣ Actualización y notificación ⚙️ Un ingeniero de soporte realizará la actualización del correo en el sistema. Posteriormente, notificará al cliente mediante el ticket generado previamente, confirmando que el cambio ha sido realizado con éxito. --- **Consideraciones importantes** - Asegúrate de que la información proporcionada sea clara y legible para evitar retrasos en el proceso. - Este proceso se lleva a cabo bajo estrictos protocolos para garantizar la privacidad y protección de la cuenta del cliente. - La solicitud puede tardar dependiendo del envío y revisión de documentos. - Asegúrate de que el nuevo correo esté activo y accesible, ya que será el medio principal de comunicación. - Si tienes preguntas o necesitas ayuda, puedes comunicarte con nuestro equipo de soporte. - Este proceso aplica tanto para **Usuario de timbrado Smarter** como para **Usuarios de Efisco**. - La contraseña seguirá siendo la misma. --- # Certificados SSL Fuente: https://developers.sw.com.mx/knowledge-base/certificados-ssl/ Categoria: Guías de Funcionalidad ### ¿Qué son los certificados SSL? **Los certificados SSL son esenciales para garantizar la seguridad de tus comunicaciones con nuestros servicios.** Nuestros dominios cuentan con certificados SSL que encriptan toda la información que intercambias, como contraseñas, datos personales y transacciones, protegiendo así tu privacidad. Esta medida no solo mejora la seguridad de tus datos, sino que también aumenta la confianza en nuestros servicios. A continuación, te proporcionamos los enlaces para descargar los certificados SSL de nuestros dominios. ### Certificados para dominio *services*: | | | | | | | --- | --- | --- | --- | --- | | **Dominio** | **Ambiente** | **Inicio de Vigencia** | **Fin de Vigencia** | **Certificado SSL** | | | Pruebas | 12/02/2026 18:00:00 hrs | 14/03/2027 17:59:59 hrs | [Descargar](https://developers.sw.com.mx/wp-content/uploads/2026/05/services.test_.sw_.com_.mx_.zip) | | | Productivo | 21/04/2026 18:00:00 hrs | 06/11/2026 17:59:59 hrs | [Descargar](https://developers.sw.com.mx/wp-content/uploads/2026/05/services.sw_.com_.mx_.zip) | ### Certificados para dominio *api*: | | | | | | | --- | --- | --- | --- | --- | | **Dominio** | **Ambiente** | **Inicio de Vigencia** | **Fin de Vigencia** | **Certificado SSL** | | | Pruebas | 12/02/2026 18:00:00 hrs | 14/03/2027 17:59:59 hrs | [Descargar](https://developers.sw.com.mx/wp-content/uploads/2026/05/api.test_.sw_.com_.mx_.zip) | | | Productivo | 04/08/2026 22:16:33 hrs | 18/02/2027 22:16:33 hrs | [Descargar](https://developers.sw.com.mx/wp-content/uploads/2026/08/api.sw_.com_.mx_.zip) | Los certificados tambien pueden ser descargados ingresando a la URL del servicio a consumir, haciendo uso del visor de certificados del navegador [**Descargar todos los certificados**](https://developers.sw.com.mx/wp-content/uploads/2026/08/certificados_sw_05082026.zip) --- # Complemento Nómina 1.2 Revision E Fuente: https://developers.sw.com.mx/knowledge-base/complemento-nomina-1-2-revision-e/ Categoria: Guías de Funcionalidad **Los cambios entrarán en vigor el 1 de enero de 2026** ![](https://developers.sw.com.mx/wp-content/uploads/2025/12/cambios_doc_sw.png) ## **********Principales cambios********** - **Estándar.** - **Se ajusta la validación de ImporteGravado.** - **Se incorpora la validación de ImporteExento.** - **En el atributo TipoPercepcion se incorpora una validación adicional para el uso de la clave 038 (Otros ingresos por salarios.)** - **Se actualizan las cantidades de la validación para el atributo SubsidioCausado.** - **Matriz de errores**. ![](https://developers.sw.com.mx/wp-content/uploads/2025/12/imagen-4-1024x159.png) ![](https://developers.sw.com.mx/wp-content/uploads/2025/12/image.png) ![](https://developers.sw.com.mx/wp-content/uploads/2025/12/imagen-6-1024x180.png) ![](https://developers.sw.com.mx/wp-content/uploads/2025/12/imagen-7-1024x194.png) ![](https://developers.sw.com.mx/wp-content/uploads/2025/12/update_doc_sw-2.png) ## ************Actualizaciones************ - **Se actualiza la validación y código de error NOM75, NOM101 y NOM108.** - **Se incorporan las validaciones y códigos de error correspondientes NOM109 y NOM110.** ![](https://developers.sw.com.mx/wp-content/uploads/2025/12/imagen.png) ![](https://developers.sw.com.mx/wp-content/uploads/2025/12/imagen-1.png) ![](https://developers.sw.com.mx/wp-content/uploads/2025/12/catalogos_doc_sw.png) ## **********Catálogos********** - **c\_TipoDeduccion\* se agregan *4* claves: *108* , *109* , *110* y *111*** - **c\_TipoPercepcion\* se agregan *2* claves: *054* y *055*** ![](https://developers.sw.com.mx/wp-content/uploads/2025/12/imagen-2.png) ![](https://developers.sw.com.mx/wp-content/uploads/2025/12/Captura-desde-2025-12-01-18-47-19.png) **Consulta la documentación SAT:** Te invitamos a visitar el inicio de nuestro sitio developers donde podrás consultar los servicios adicionales y las demás API’s que pueden ayudarte a mejorar tus procesos. SW developers - [Servicios](https://developers.sw.com.mx/article-categories/servicios/) - [SW API’s](https://developers.sw.com.mx/article-categories/apis/) --- # Complemento Servicios de Plataformas Tecnológicas Revisión E Fuente: https://developers.sw.com.mx/knowledge-base/complemento-servicios-de-plataformas-tecnologicas-revision-e/ Categoria: Guías de Funcionalidad **Los cambios entrarán en vigor el 1 de enero de 2026** ![](https://developers.sw.com.mx/wp-content/uploads/2025/12/cambios_doc_sw.png) ## **********Principales cambios********** - **Estándar Técnico:** Se actualiza - **Matriz de errores:** Se agregan 6 nuevas validaciones - **Matriz de errores:** Se ajustan 10 validaciones existentes - **Esquema XSD:** Se actualiza - **Catálogo CatPlataformasTecnologicas:** Se actualiza --- ![](https://developers.sw.com.mx/wp-content/uploads/2025/12/update_doc_sw-2.png) ## ************Actualizaciones************ - **Se incorporan 6 nuevas validaciones al complemento** - **Precisiones en 10 validaciones ya existentes** **Nuevas validaciones** | Código | Nodo / Sección | Atributo | Validación | | --- | --- | --- | --- | | SPT148 | Retenciones | MontoRet | Cálculo de MontoRet a partir de BaseRet con tasa aplicable cuando el atributo RfcR sea de 12 caracteres (RFC de persona moral y truncado a 2 decimales). | | SPT149 | Retenciones | ImpRetenidos | Para TipoDeServ = “10”, debe existir IEPS (ImpuestoRet = “003”) en ImpRetenidos. | | SPT150 | Retenciones | BaseRet | Consistencia de BaseRet asociada a IEPS (ImpuestoRet = “003”), truncado 2 decimales. | | SPT151 | ServiciosPlataformasTecnologicas | ImpuestosTrasladadosdelServicio | Para TipoDeServ = “11”, existencia de IEPS (Impuesto = “03”), si no aplica, no debe existir. | | SPT152 | ServiciosPlataformasTecnologicas | ContribucionGubernamental | Si Impuesto ≠ “02” (IVA), el nodo no debe existir. | | SPT153 | ServiciosPlataformasTecnologicas | ComisionDelServicio | Si Impuesto ≠ “02” (IVA), el nodo no debe existir. | **Precisiones a validaciones existentes** | Código | Tipo de cambio | Impacto | | --- | --- | --- | | SPT113 | Amplía alcance | Se incluye IEPS (003) además de ISR/IVA en la unicidad/estructura de ImpRetenidos. | | SPT126 | Precisión de sumatoria | Se acota la regla para considerar explícitamente casos aplicables a IVA (Impuesto “02”). | | SPT127 | Precisión de sumatoria | Se ajusta sumas/consistencia alineadas a Impuesto “02” (IVA). | | SPT128 | Precisión de impuestos trasladados | Se acota el criterio para IVA (02) en sumatorias/validaciones. | | SPT131 | Precisión de cálculo | Se afina el cálculo/consistencia del diferencial relacionado con IVA (02). | | SPT142 | Precisión de base | Se alinea Base contra PrecioServSinIVA cuando Impuesto = “02” (IVA). | | SPT146 | Criterio de existencia de nodo | Se acota el escenario aplicable según FormaPagoServ. | | SPT119 / SPT120 / SPT121 | Claridad de mensajes | Ajuste mínimo al mensaje de validación, indica explícitamente ISR/IVA según corresponda. | --- ![](https://developers.sw.com.mx/wp-content/uploads/2025/12/catalogos_doc_sw.png) ## **********Catálogos********** - **c\_TipoDeServ:** Se agrega 1 nueva clave de tipo de servicio(11) - Se actualiza la tasa de retención para ISR en las claves 05 y 06 para el ejercicio 2026 - Se agrega el listado de claves de tipo servicio para 2026 - **c\_SubTipoServ:** Se agregan 2 nuevas claves de SubtTipo de Servicio (08 y 09) asociadas al TipoDeServ 11 - **c\_TasaCuota:** Se agrega 1 nuevo registro para la tasa o cuota de impuesto de IEPS Actualizaciones a los catálogos **CatPlataformasTecnologicas** | Catálogo | Tipo de modificación | Clave | Descripción | Vigencia | | --- | --- | --- | --- | --- | | c\_SubTipoServ | Nueva clave | 08 | Juegos con apuestas. | 01/01/2026 | | c\_SubTipoServ | Nueva clave | 09 | Sorteos. | 01/01/2026 | | c\_TasaCuota | Nueva clave | 0.500000 | IEPS | (Según catálogo) | | c\_TipoDeServ | Nueva clave | 11 | Juegos con apuestas y sorteos… | 01/01/2026 | | c\_TipoDeServ | Actualización | 05 | Ajuste a ISR | 01/01/2026 | | c\_TipoDeServ | Actualización | 06 | Ajuste a ISR | 01/01/2026 | **Consulta la documentación SAT** --- Te invitamos a visitar el inicio de nuestro sitio Developers donde podrás consultar los servicios adicionales y las demás API’s que pueden ayudarte a mejorar tus procesos. SW developers - [Servicios](https://developers.sw.com.mx/article-categories/servicios/) - [SW API’s](https://developers.sw.com.mx/article-categories/apis/) --- # Conceptos Basicos Fuente: https://developers.sw.com.mx/knowledge-base/conceptos-basicos/ Categoria: Guías de Funcionalidad Una pequeña guía que te ayudara a entender mejor algunos conceptos básicos de las facturas electrónicas. ¿Qué es un CFDI? La factura electrónica o **Comprobante Fiscal Digital por Internet** (CFDI) en México es un comprobante digital implementado por la autoridad fiscal de nuestro país, apegado a los estándares definidos por el **Servicio de Administración Tributaria** (SAT). El SAT define que lineamento son los adecuados para emitir estos tipos de documentos de acuerdo a las necesidades que ellos creen que son indispensables para el correcto manejo de los impuestos. ¿Qué función tiene un CFDI? La factura electrónica o **Comprobante Fiscal Digital por Internet** (CFDI) funciona como un comprobante que describe un determinado bien o servicio adquirido, la fecha de la transacción, su costo y desglosa los impuestos correspondientes al pago de dicha transacción. También funcionan para respaldar todos los movimientos de ingresos y egresos de los contribuyentes ante la autoridad tributaria. ¿Cómo se compone un CFDI? Tanto las facturas que emitas como las que recibes deben cumplir con ciertos requisitos y contener ciertos datos para tener validez: - El Registro Federal de Contribuyentes (RFC) de quien expide el CFDI. - El régimen fiscal bajo el que está inscrito ante SAT. - Domicilio (si el contribuyente tiene más de un local se señala el domicilio en el que se está expidiendo la factura). - Número de folio que asigna el SAT. - Sello digital. - Lugar y fecha de expedición. - RFC de la persona que está solicitando el comprobante fiscal. - La descripción de los bienes, productos o servicios por los que se está expidiendo el CFDI, esto incluye cantidad, unidad de medida o clase de bienes. - El valor unitario de cada uno de ellos; debe estar consignado en número. - El importe total de la factura, puede estar señalado en número o en letra. - También debe asentarse si la prestación se pagó en una sola exhibición o en parcialidades. - Si es el caso, debe indicarse la cantidad de los impuestos trasladados, desglosados por tasa de impuesto, además de los impuestos retenidos. - Cómo se realizó el pago, es decir, si fue en efectivo, tarjeta de débito o crédito, transferencia electrónica, cheque o a través de algún monedero electrónico autorizado por el SAT. - Si fue una venta de primera mano de mercancías de importación, también debe indicarse el número y fecha del documento aduanero. - Fecha y hora de certificación. - Número de serie del certificado digital con el que se hizo el sellado. Estos requisitos se encuentran publicados en el [Formato de factura Anexo 20 de la Resolución Miscelánea Fiscal vigente.](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20_version3-3.htm) ¿Cuántos tipos de CFDI existen? Actualmente, existen seis tipos de CFDI: - CFDI de **Ingreso:** Se emiten principalmente en la prestación de servicios, enajenación de bienes o mercancías, arrendamiento o recibo de honorarios. Su objetivo es demostrar los ingresos de los contribuyentes. - CFDI de **Egreso:** Se emite cuando existe una devolución de mercancías o la anulación de un CDFI de ingreso. Su objetivo es amparar las salidas de dinero de un contribuyente. - CFDI de **Traslado:** Este CFDI respalda las mercancías que serán trasladadas de un punto a otro para comprobar la legalidad de la posesión de estos bienes. - CFDI de **Nomina**: Es el documento que contiene la información de las retenciones y pagos de los trabajadores. - CFDI de **Recepción de pagos:** Se genera cuando se recibe un pago, se aplica cuando el método de pagos se aplica en parcialidades. - CFDI de **Retención e información de pagos:** Respalda las retenciones de los impuestos que se efectúan o por los pagos que se realizan. ¿Cuál es la estructura técnica de un CFDI? El CFDI es un documento digital, en el que se genera un archivo con formato XML o Extensible Markup Language. Para que un comprobante sea válido debe cumplir con las siguientes características: - Los lineamientos técnicos de forma y sintaxis para la generación de archivos XML especificados por el consorcio W3C, establecidos en [www.w3.org](http://www.w3.org/) - Las reglas de validación adicionales establecidas en el [Anexo 20 de la Resolución Miscelánea Fiscal vigente](http://omawww.sat.gob.mx/informacion_fiscal/factura_electronica/Documents/Gu%C3%ADaAnexo20.pdf) - Las reglas de validación adicionales establecidas en cada complemento que se integre en el archivo XML - Las reglas de **validación****particulares** publicadas en el [Anexo 20 de la Resolución Miscelánea Fiscal vigente](http://omawww.sat.gob.mx/informacion_fiscal/factura_electronica/Documents/Gu%C3%ADaAnexo20.pdf) Te recordamos que contamos con una sección de [Ejemplos](https://developers.sw.com.mx/knowledge-base/ejemplos-4-0/) donde podrás encontrar la estructura de los distintos tipos de CFDI, así como nuestra sección de [Nuestras librerías](https://developers.sw.com.mx/knowledge-base/librerias/) donde podrás interactuar con distintos lenguajes de programación para la creación de tus comprobantes. ¿Qué es un Timbre Fiscal? Los timbres fiscales son **sellos** utilizados para la emisión de **CFDI** que son proveídos a través de empresas certificadas por el **SAT** comúnmente llamados **PACs** tal como nosotros **SmarterWeb** somos uno de ellos. ¿Qué es Timbrar un CFDI? El proceso en el que se agrega tanto el sello del emisor, como el de la autoridad tributaria. Para realizarlo, se puede acudir directamente a la plataforma del **SAT** o bien a través de los **Proveedores Autorizados de Certificación** (PAC). ¿Es lo mismo Timbrar que Sellar un CFDI? **No, Sellar** un CFDI se refiere a la firma del documento con nuestro Certificado de Sello Digital (CSD), de manera que se pueda verificar la autenticidad del documento. Para sellar el CFDI se hace la concatenación de los valores de los atributos importantes para el SAT, la cual representa a nuestra cadena original. Mientras que **Timbrar** se refiere a generar y colocar un Timbre Fiscal Digital que da la validez a un Comprobante Fiscal Digital por Internet. Este timbre fiscal lo obtenemos conectándonos por internet a un Proveedor Autorizado de Certificación (PAC). ¿Qué es un PDF de un CFDI? El **PDF** en este contexto es una representación impresa del CFDI, cuyo contenido es más parecido a las facturas que conocíamos antes. Este documento se puede imprimir, aunque no tiene ningún valor legal, ya que lo importante es el archivo digital. Si se desea tener una representación impresa se debe generar un código de barras o el número de folio fiscal del comprobante; el número de serie del Certificado de Sello Digital del emisor y del **SAT** y la cadena original del complemento de certificación digital. Además, deberá agregarse una leyenda que diga “Este documento es una representación impresa de un CFDI”. Fundamento legal: *RFM 2.7.1.7 Requisitos de las representaciones impresas del CFDI* ¿Qué es un XML de un CFDI? El **XML** es una adaptación del SGML (Standard Generalized Markup Language), un lenguaje que permite la organización y el etiquetado de documentos, en la facturación electrónica los XML se utilizan como protocolo de comunicación por el cual se envía la información que se quiere facturar. ¿Cómo estructurar un XML? Para que la estructura del XML sea válida, esta debe seguir los lineamientos técnicos de forma y sintaxis para la generación de archivos XML especificados por el consorcio W3C, establecidos en [www.w3.org](http://www.w3.org/) El documento XML debe expresarse bajo el estándar de codificación **UTF-8** y en particular se deben usar  secuencias de escape cuando en los valores especificados dentro de los atributos del archivo exista alguno de los siguientes casos especiales. - En el caso del **&** se debe usar la secuencia **&** - En el caso del**“** se debe usar la secuencia**"** - En el caso del **<** se debe usar la secuencia **<** - En el caso del **>** se debe usar la secuencia **>** - En el caso del **‘** se debe usar la secuencia**'** Para poder ser validado, debe estar referenciado al namespace del comprobante fiscal digital por Internet y referenciar la validación del mismo a la ruta publicada por el SAT en donde se encuentra el esquema XSD objeto de la presente sección. Puedes consultar [Nuestros ejemplos](https://developers.sw.com.mx/article-categories/ejemplos-4-0/) para una mayor referencia de esta estructura. ¿Cuál es la diferencia entre PDF y XML de un CFDI? **XML** es un lenguaje de marcado que define un conjunto de reglas para la codificación de documentos y el cual en este contexto representa la factura electrónica. Mientras que **PDF** (Formato Portátil de Documento por su siglas en ingles), usado para mostrar documentos en la forma electrónica, es una representación gráfica de la información expresada en el CFDI. ¿Qué es Emitir o sellar un XML? La **emisión** de un xml o el **sellado** no es más que el hecho de utilizar una **firma digital** que se genera a partir de la **información**que tiene nuestro **CFDI** para mantener segura nuestra información y asegurarnos que no se modifique posterior a la creación del mismo. para este proceso se utilizan algoritmos de encriptación para impedir la manipulación de nuestro xml. ¿Qué es un algoritmo de encriptación? Un algoritmo de encriptación (o cifrado) tradicional es una función que transforma un mensaje en una serie ilegible aparentemente aleatoria, usando una clave de encriptación que puede ser revertida (es decir, obtener el mensaje original) sólo por quienes conocen dicha clave. Por medio de la encriptación, la información privada puede ser enviada públicamente por internet sin mayor riesgo de que otros puedan tener acceso a ella. ¿Qué es una función Hash? Una función hash es método para generar claves o llaves que representen de manera unívoca a un documento o conjunto de datos. Es una operación matemática que se realiza sobre este conjunto de datos de cualquier longitud, y su salida es una huella digital, de tamaño fijo e independiente de la dimensión del documento original. El contenido es ilegible. ¿Qué es SHA-256? SHA-256 es un hash de 64 dígitos hexadecimales utilizado para firmar documentos de texto y/o ficheros el cual es casi único y de un tamaño fijo de 256 bits (32 bytes). Un hash solo se calcula en una dirección y no se puede decodificar de vuelta he ahí su ventaja y nivel de encriptación alta. --- # Consumo WebService Descarga Masiva SAT v1.5 Fuente: https://developers.sw.com.mx/knowledge-base/consumo-webservice-descarga-masiva-sat/ Categoria: Guías de Funcionalidad Descarga Masiva es una plataforma electrónica integral del SAT que facilita a los contribuyentes la obtención y gestión de sus comprobantes fiscales digitales. Haciendo uso de estos servicios, los contribuyentes pueden: - Descargar de manera masiva archivos XML. - Obtener los metadatos resumidos en archivos TXT. - Acceder tanto a CFDI emitidos como recibidos. *🤝* **¿Necesitas ayuda?:** Este servicio es proporcionado directamente por el SAT. Si tienes dudas o problemas con su funcionamiento, te recomendamos contactar a la Mesa de Ayuda del SAT, donde podrán brindarte asistencia especializada. Consulta sus canales de atención oficiales para recibir soporte. 💬 ![](https://developers.sw.com.mx/wp-content/uploads/2025/05/ws_descarga_masiva-1-1024x683.png) ### 📖 Documentación Oficial La documentación oficial proporciona por el SAT, la puedes encontrar en su [página oficial](https://www.sat.gob.mx/portal/public/tramites/factura-electronica), en la parte inferior del sitio, en la sección “Material adicional”. ![](https://developers.sw.com.mx/wp-content/uploads/2025/05/image-1-1024x477.png) ### 💡Flujo de operaciones *⚠️* **NOTA:** No existe un ambiente de pruebas, por lo que, para realizar tus pruebas será necesario utilizar datos reales (FIEL). Para completar el flujo de descarga masiva de XML por parte del SAT, **se necesitará consumir 4 servicios** que nos ayudarán a concluir el proceso. 1. ***El contribuyente se autentica en el servidor del SAT con:*** - FIEL, llave privada y contraseña. 2. ***El contribuyente realiza la solicitud de descarga.*** 3. ***El SAT recibe la petición, la procesa, obtiene los archivos XML y/o la información de los metadatos y genera paquetes que estarán disponibles para él contribuyente solicitante.*** 4. ***El contribuyente consulta su solicitud y descarga su resultado*.** ![](https://developers.sw.com.mx/wp-content/uploads/2025/05/ws_flujo-1024x643.png) ### ⚠️Puntos importantes - **Los Web Service son públicos y proporcionados directamente por el SAT**, por lo que cualquier falla o anomalía en los mismos tendrías que revisar el caso con el SAT directamente. - En las pruebas realizadas, el **proceso completo para completar una descarga, suele tardar hasta 72 horas en descarga la información**. De igual forma recomendamos verificar constantemente la solicitud para realizar la descarga cuando el paquete se encuentre listo. - Si luego de estas 72 horas no se tiene respuesta del servicios, **recomendamos realizar una nueva solicitud de información con un rango de fecha diferente**, o de ser posible, **dividir la petición original en dos partes** para tener más oportunidades de poder obtener respuesta de parte de los servicios ### 🔎Siguientes pasos 1. [Autenticación](https://developers.sw.com.mx/knowledge-base/descarga-masiva-sat-authenticacion) 2. [Solicitud de descarga](https://developers.sw.com.mx/knowledge-base/descarga-masiva-sat-solicitud/) 3. [Verificación de solicitud](https://developers.sw.com.mx/knowledge-base/descarga-masiva-sat-verificacion/) 4. [Descargar de paquetes](https://developers.sw.com.mx/knowledge-base/descarga-masiva-sat-descarga/) --- # Creación de archivo PFX Fuente: https://developers.sw.com.mx/knowledge-base/como-crear-un-pfx/ Categoria: Guías de Funcionalidad En diversos Web Services que ofrece Smarter Web se hace referencia al archivo PFX, en este artículo, te explicamos su propósito y te guiaremos en el proceso de creación. ### ¿Qué es un PFX? Es un formato binario utilizado para almacenar tanto el certificado digital como la llave privada en un solo archivo encriptado. En pocas palabras, un archivo PFX es una fusión de tu certificado y tu llave privada, todo en un único paquete seguro. ### ¿Cómo se crea el archivo PFX? Generador de Certificados PFX En SW contamos con una herramienta para generar certificados PFX, puedes encontrarla en: [Generador de Certificados PFX](https://developers.sw.com.mx/knowledge-base/herramienta-crear-pfx/) ### Pasos para crear un PFX con OpenSSL Te recomendamos ver nuestra siguiente capsula tipSW: **Video:** [tipSW® | ¿Cómo crear un PFX?](https://www.youtube.com/watch?v=4ZHLidLJ3BI) **O realiza los siguientes pasos:** Para la generación de este archivo necesitaremos un certificado (\*.cer) y su respectiva llave privada (\*.key), también necesitaremos el paquete de herramientas OpenSSL. Instalación de OpenSSL - Para Windows descargaremos el instalador en la siguiente página: ?**Puedes ver como instalar OpenSSL en el siguiente [enlace](https://developers.sw.com.mx/knowledge-base/trabajar-con-openssl/)** Comandos para crear archivo PFX - Una vez instalado, abriremos la consola de Windows, para ello iremos a “Inicio” y buscaremos “CMD” o “Símbolo del sistema“, ejecutaremos y después nos posicionaremos en el mismo directorio donde guardamos el archivo. Para este ejemplo utilizaremos la ruta “C:\Program Files\OpenSSL-Win64\bin” ![](https://developers.sw.com.mx/wp-content/uploads/2018/11/1.png) Los certificados deben estar en la misma carpeta donde está instalado OpenSSL. Deberás modificar el nombre de la llave privada, certificado y password según los nombres que tengas guardados. - Dentro de la consola utilizaremos los siguientes comandos donde *“CSD\_Sucursal\_1\_CACX7605101P8\_20230509\_130254.key”* es la llave privada, *“12345678a”* el password de la llave privada y “key.pem” como el archivo de salida resultante. ``` openssl pkcs8 -inform der -in CSD_Sucursal_1_CACX7605101P8_20230509_130254.key -passin pass:12345678a -out key.pem ``` - En este caso tenemos *“CSD\_Sucursal\_1\_CACX7605101P8\_20230509\_130254.cer”* como el certificado y “cer.pem” como el archivo de salida. ``` openssl x509 -inform der -in CSD_Sucursal_1_CACX7605101P8_20230509_130254.cer -out cer.pem ``` - Ejecutamos el último comando para realizar la exportación y generar el archivo PFX. ``` openssl pkcs12 -export -in cer.pem -inkey key.pem -out CACX7605101P8.pfx ``` - Al ejecutar el último comando, se te solicitará un password para el archivo PFX. Puedes utilizar el mismo password que tiene la llave privada (en este ejemplo, “12345678a”), o cualquier otro que prefieras. - De igual manera nos solicitara confirmar el password. (Ten en cuenta que al ingresar el password, no se mostrará en la consola por razones de seguridad, pero será considerado para la generación del archivo.). ![](https://developers.sw.com.mx/wp-content/uploads/2018/11/3-1024x377.jpg) Secuencia de ejecución de los comandos Creación de archivo .txt - Como paso final, en los Web Services que ofrece Smarter Web, es común solicitar el archivo PFX dentro del request como base64. Puedes hacer esto en tu implementación mediante código o utilizando OpenSSL con el siguiente comando: ``` openssl enc -base64 -in CACX7605101P8.pfx -out CACX7605101P8.txt ``` - Esto generará un archivo  .txt con la encriptación en base64 de los binarios del archivo PFX. *Tanto el archivo .txt como el archivo PFX estarán guardados en la misma ruta utilizada.* --- ? Artículos de apoyo: [Generador de Certificado PFX](https://developers.sw.com.mx/knowledge-base/herramienta-crear-pfx/) [Trabajar con OpenSSL](https://developers.sw.com.mx/knowledge-base/trabajar-con-openssl/) [Obtén CSD](https://developers.sw.com.mx/knowledge-base/donde-encuentro-csd-de-pruebas-vigentes/) --- # Descarga Masiva v1.5 - Autenticación Fuente: https://developers.sw.com.mx/knowledge-base/descarga-masiva-sat-autenticacion/ Categoria: Guías de Funcionalidad 🧾**En este artículo te explicamos cómo utilizar el Servicio de Autenticación de Descarga Masiva v1.5**, una herramienta clave para obtener un token de autenticación. 🔍 Para utilizar los servicios web para la descargar masiva del SAT **es necesario autentificarse ante el servidor de servicios web mediante un par de llaves proporcionadas por el SAT,** estas llaves son las correspondientes al certificado de Firma Electrónica (FIEL). *🤝* **¿Necesitas ayuda?:** Este servicio es proporcionado directamente por el SAT. Si tienes dudas o problemas con su funcionamiento, te recomendamos contactar a la Mesa de Ayuda del SAT, donde podrán brindarte asistencia especializada. Consulta sus canales de atención oficiales para recibir soporte. 💬 ### Requisitos Para la autenticación es necesario contar con los siguientes requisitos: - Certificado (\*.cer) de nuestra FIEL. - Llave privada (\*.key) de nuestra FIEL. - Password de llave privada. Para la guía y creación del XML, tomaremos de ejemplo el XML que aparece dentro de la guía que nos proporciona el SAT para el consumo de esté Web Service. 📄 Ejemplo de autenticación del SAT ``` POST https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/Autenticacion/Autenticacion.svc HTTP/1.1 Content-Type: text/xml; charset=utf-8 SOAPAction: "http://DescargaMasivaTerceros.gob.mx/IAutenticacion/Autentica" Host: cfdidescargamasivasolicitud.clouda.sat.gob.mx Content-Length: 4488 Expect: 100-continue Accept-Encoding: gzip, deflate 00000000-00000000-0000-000000000000 2022-02-15T19:06:32.002Z 2022-02-15T19:11:32.002Z MIIG6jCCBNKgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDk0MjQwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjExMDI5MDEzNTQzWhcNMjUxMDI5MDEzNTQzWjCCAhAxSTBHBgNVBAMTQFNJTkRJQ0FUTyBERSBDSE9GRVJFUyBERSBUQVhJUyBZIENPTUJJUyBERUwgU0VSVklDSU8gUFVCTElDTyBUUkExggEYMIIBFAYDVQQpE4IBC1NJTkRJQ0FUTyBERSBDSE9GRVJFUyBERSBUQVhJUyBZIENPTUJJUyBERUwgU0VSVklDSU8gUFVCTElDTyBUUkFOU1BPUlRJU1RBUyBERSBNQVRFUklBTEVTIFBBUkEgTEEgQ09OU1RSVUNDSU9OIFNFTUlMTEEgREVMIENBTVBPIFkgRU1QTEVBRE9TIERFIExBIENPTlNUUlVDQ0lPTiBDT05FWE9TIFkgU0lNSUxBUkVTIERFTCBFU1RBRE8gREUgTUlDSE9BQ0FOIExJQy4gUk9ET0xGTyBDSUVORlVFR09TIE1BUklOIFNJTiBUSVBPIERFIFNPQ0lFREFEIFMgQSBCIERFIEMgVjFJMEcGA1UEChNAU0lORElDQVRPIERFIENIT0ZFUkVTIERFIFRBWElTIFkgQ09NQklTIERFTCBTRVJWSUNJTyBQVUJMSUNPIFRSQTElMCMGA1UELRMcQVhUOTQwNzI3RlA4IC8gVkFBRTczMTAyMTEyMTEeMBwGA1UEBRMVIC8gVkFBRTczMTAyMUhNQ1pMRjAxMRUwEwYDVQQLEwxBWFQ5NDA3MjdGUDgwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCSz7GYj9+3USinhhFlu9TwLeFpq6kW9j9aS+3yqxdvYO/CBJvO7QCIxwwsyVLmkm5bdydEglmIELcJ/yRyytNU62sgIIxC1yKn9WgLkJPw0JTsQPJWO+wElpuO5cH7e2p/cpaVK5AUQlpb8RnH9cpwBUkXsZsVNKd8NR3547dqGNcIlec+m20Y744tDnEgZZ+T5E9+cGYOH/aZdnN8gKC/hSRCOlNIbVXKCjJuVTa2GV7ffhnpVtHrecSHlj5JNH7LGUKj+kjL8rY6DmdmkVe0bja63/Ou7dTAMHHYas1NOHly72PPvIT5S0/gMm/i/uSdtTTK8QEie7RDAB3+iGQFAgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBCwUAA4ICAQBeTqiXE4ikT+t69VcIEqV69O+EOHa92wqwcZN8LHcGc1mwEPlwoKeD3yy9AxH+Dr+mE/2DbjVrPLS9XYONpy/Ll4XU6rQQVP334v4rqi43GS+RLnoVITWrtj0VKIJmyAwKUmgtT4ZD/BmSrqQ5NP6B/uZuurSlOl05MXmE5M9Evo44/2C595rQmIM8r50LSj6OWPaWXd4rCf79gID8FFl6aSCnrOu7Gj5p33fugzDL6N99NJ4aRQdHfWLjGbHWBN3yTlMs22TRuYIilZEPhRogx6jlmOzgBA/70ItMbE1f+SuB7uZqYmROZzjLmcsAZ4XbUFXqJ2VvcYuYsKBzjh7Az+X59bCBLD26zOkqGy4jdIjk1lgbosOWChEQs8ehUi4rpYTOrfX9zl3KBNbN2UmIC2bGEpQI4BOkOF71Vi/AYhPFe5wB+8rLgJPu7AURu39UIMPlQM4N8so+1m2sjCFy+R1mAMGMdbtVbUjjfmpWmg6slAHENd/hjkmPtOQFZ3SULWwSISS3ak4taQakujIztTO6C1694WB2vXa72QHNe9wCoyDytIoq9mhJGusICFACfVVWKyL3S74yE1YNJsHcwgHm76umciaadO3ka3hzQ79u+5nhttNwkwuQAnwHCdVM0SE/3ptjFoyYRQ7BzNzWx6YQSI3K459miVfvhGaF7g== PGHeLUNdZvws7kjlTpPPxlY2XGM= K8vjpiExzxNDvD0hVPQlAXw5LOafN0xNyd6TpT0PF/aiE6wejLE8iyqk8IEehoKOe6MR3Fz0JKl1ELSkhlNU1RAZ6qQdQpPAP2HNE+hzHoGLitNycR30VZ3/aUVvesqNC/KZP+uRp3zPlED9OOO9rqUiN87xChi3yCHXm41cyrDSygUyzfIfS+GfseJxSbVBFcKs1AiHRAI8j4ZAhq/tOjjxr4mRYK4nKQ6yRYnIMR3OElsF27+4b0tCmWUNTLDpys7KG9XRkBZzNRmWIHNgnwSXop+uIPSeZkJmGt081tn+/EI9TtIBlFb2hBw41hS2Ugf17+ycv0F8mv017eUqgA== ``` ### Calcular datos necesarios A continuación se detallan los datos que se deben generar y el como hacerlo. 🗂️ Datos **Fecha inicial**: Fecha actual de inicio, declaradas como UTC Unix. Puedes consultar la fecha actual en dicho formato en la siguiente [página](https://www.unixtimestamp.com/). **Fecha final**: Fecha hasta cuándo será válido el token, declarada como UTC Unix. **Certificado**: Al igual que en CFDI 4.0, tomar los bytes del archivo .Cer de la FIEL y hacer un encode utilizando base64. **UUID**: Calcular un UUID en formato V4, para efectos prácticos puedes consultar un ejemplo en la siguiente web:  *Una vez calculado, añadir al principio “#uuid-” y al final “-4”, para tener algo como lo siguiente: “**#uuid-71ad46b3-dea8-49a8-a1ce-3fdbc3bb9cc5-4**“* **DigestValue**: Se debe calcular el SHA1 en formato binario del siguiente texto (Cabe aclarar que la fecha cambiara). *El texto es el del nodo con el namespace, pero dicho nodo debe ir sin espacios*. ``` 2025-05-15T19:06:32.002Z 2025-05-15T19:11:32.002Z ``` Y los bytes que obtienes codearlos a base64.Utilizando este nodo, el resultado sería el siguiente: ***vKqrH5suuIrWLnSK/qN4S7/xI0U=*** **SignatureValue**: Se debe calcular un algoritmo de digestión SHA1 utilizando la llave privada de la FIEL y el siguiente texto: ``` vKqrH5suuIrWLnSK/qN4S7/xI0U= ``` *Tener en consideración que el DigestValue anteriormente calculado aparece en dicho texto.* Una vez hecha la digestión, el resultado en bytes lo codeamos en base64. Utilizando la llave privada de la FIEL de pruebas “EWE1709045U0”, el resultado sería el siguiente: **k0cUWqgAcQNIxQFEXDKIrXAxgUd++UPqR82h0rCZ4rckdeZ3eA6d+/QKGjFvn9g0De/MHRncHbW/nKnO94c5/Qi6KhjURZJ2iAhcONfV7Zq6F8uRgG+nDcoaNNcqV06MTtN7cvd1eKCbZPJ8P7Ll2hT0aNGsffPEDIFUlGVmQxx61OHynZNff5H39VhEfgkg4ZjpgIzr1Thd7bN5s1XJa/gbPKuuJDgx9wjOumf3XsRibysfvhD2u1OarrsXFfHZi7CfDtDtmMv4kT8CdHaAzxU2yCvNiLZfISW94mPSLkEMU5nCHp3HXAaXxv6Ci7UIGPrxb73OqD/Y6Q81tRcTTQ==** ### Llenado de campos Una vez que tengamos los datos anteriormente calculados, procederemos a colocarlos sobre la plantilla del XML que se debe enviar al SAT. 📝 Llenado **Fecha Inicial** y **Fecha Final**: Estos campos, irán su correspondiente nodo que está dentro del nodo Timestamp. - **Fecha Inicial** va en el nodo Created. - **Fecha Final** va en el nodo Expires **UUID**: debe ir en las siguientes 2 posiciones: 1. s:Envelope/s:Header/o:Security/o:BinarySecurityToken[@u:Id] 2. s:Envelope/s:Header/o:Security/Signature/KeyInfo/o:SecurityTokenReference /o:Reference[@URI] **Certificado**: Es el texto que va en el nodo s:Envelope/s:Header/o:Security/o:BinarySecurityToken **DigestValue**: Es el texto que va en el nodo s:Envelope/s:Header/o:Security/Signature/SignedInfo/Reference/DigestValue **SignatureValue**: Es el texto que va en el nodo s:Envelope/s:Header/o:Security/Signature/SignatureValue ### Documento Final Después de hacer el cálculo y llenado de los datos, tendríamos el siguiente XML de ejemplo. 📄 Ejemplo XML creado ``` 00000000-00000000-0000-000000000000 2022-02-15T19:06:32.002Z 2022-02-15T19:11:32.002Z MIIG6jCCBNKgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDk0MjQwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjExMDI5MDEzNTQzWhcNMjUxMDI5MDEzNTQzWjCCAhAxSTBHBgNVBAMTQFNJTkRJQ0FUTyBERSBDSE9GRVJFUyBERSBUQVhJUyBZIENPTUJJUyBERUwgU0VSVklDSU8gUFVCTElDTyBUUkExggEYMIIBFAYDVQQpE4IBC1NJTkRJQ0FUTyBERSBDSE9GRVJFUyBERSBUQVhJUyBZIENPTUJJUyBERUwgU0VSVklDSU8gUFVCTElDTyBUUkFOU1BPUlRJU1RBUyBERSBNQVRFUklBTEVTIFBBUkEgTEEgQ09OU1RSVUNDSU9OIFNFTUlMTEEgREVMIENBTVBPIFkgRU1QTEVBRE9TIERFIExBIENPTlNUUlVDQ0lPTiBDT05FWE9TIFkgU0lNSUxBUkVTIERFTCBFU1RBRE8gREUgTUlDSE9BQ0FOIExJQy4gUk9ET0xGTyBDSUVORlVFR09TIE1BUklOIFNJTiBUSVBPIERFIFNPQ0lFREFEIFMgQSBCIERFIEMgVjFJMEcGA1UEChNAU0lORElDQVRPIERFIENIT0ZFUkVTIERFIFRBWElTIFkgQ09NQklTIERFTCBTRVJWSUNJTyBQVUJMSUNPIFRSQTElMCMGA1UELRMcQVhUOTQwNzI3RlA4IC8gVkFBRTczMTAyMTEyMTEeMBwGA1UEBRMVIC8gVkFBRTczMTAyMUhNQ1pMRjAxMRUwEwYDVQQLEwxBWFQ5NDA3MjdGUDgwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCSz7GYj9+3USinhhFlu9TwLeFpq6kW9j9aS+3yqxdvYO/CBJvO7QCIxwwsyVLmkm5bdydEglmIELcJ/yRyytNU62sgIIxC1yKn9WgLkJPw0JTsQPJWO+wElpuO5cH7e2p/cpaVK5AUQlpb8RnH9cpwBUkXsZsVNKd8NR3547dqGNcIlec+m20Y744tDnEgZZ+T5E9+cGYOH/aZdnN8gKC/hSRCOlNIbVXKCjJuVTa2GV7ffhnpVtHrecSHlj5JNH7LGUKj+kjL8rY6DmdmkVe0bja63/Ou7dTAMHHYas1NOHly72PPvIT5S0/gMm/i/uSdtTTK8QEie7RDAB3+iGQFAgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBCwUAA4ICAQBeTqiXE4ikT+t69VcIEqV69O+EOHa92wqwcZN8LHcGc1mwEPlwoKeD3yy9AxH+Dr+mE/2DbjVrPLS9XYONpy/Ll4XU6rQQVP334v4rqi43GS+RLnoVITWrtj0VKIJmyAwKUmgtT4ZD/BmSrqQ5NP6B/uZuurSlOl05MXmE5M9Evo44/2C595rQmIM8r50LSj6OWPaWXd4rCf79gID8FFl6aSCnrOu7Gj5p33fugzDL6N99NJ4aRQdHfWLjGbHWBN3yTlMs22TRuYIilZEPhRogx6jlmOzgBA/70ItMbE1f+SuB7uZqYmROZzjLmcsAZ4XbUFXqJ2VvcYuYsKBzjh7Az+X59bCBLD26zOkqGy4jdIjk1lgbosOWChEQs8ehUi4rpYTOrfX9zl3KBNbN2UmIC2bGEpQI4BOkOF71Vi/AYhPFe5wB+8rLgJPu7AURu39UIMPlQM4N8so+1m2sjCFy+R1mAMGMdbtVbUjjfmpWmg6slAHENd/hjkmPtOQFZ3SULWwSISS3ak4taQakujIztTO6C1694WB2vXa72QHNe9wCoyDytIoq9mhJGusICFACfVVWKyL3S74yE1YNJsHcwgHm76umciaadO3ka3hzQ79u+5nhttNwkwuQAnwHCdVM0SE/3ptjFoyYRQ7BzNzWx6YQSI3K459miVfvhGaF7g== PGHeLUNdZvws7kjlTpPPxlY2XGM= K8vjpiExzxNDvD0hVPQlAXw5LOafN0xNyd6TpT0PF/aiE6wejLE8iyqk8IEehoKOe6MR3Fz0JKl1ELSkhlNU1RAZ6qQdQpPAP2HNE+hzHoGLitNycR30VZ3/aUVvesqNC/KZP+uRp3zPlED9OOO9rqUiN87xChi3yCHXm41cyrDSygUyzfIfS+GfseJxSbVBFcKs1AiHRAI8j4ZAhq/tOjjxr4mRYK4nKQ6yRYnIMR3OElsF27+4b0tCmWUNTLDpys7KG9XRkBZzNRmWIHNgnwSXop+uIPSeZkJmGt081tn+/EI9TtIBlFb2hBw41hS2Ugf17+ycv0F8mv017eUqgA== ``` Dicho ejemplo fue realizado con la FIEL del certificado de pruebas “EWE1709045U0”. ### Response A continuación se comparten los ejemplos de respuesta del servicio, ante un error como un resultado exitoso. ✅ Ejemplo Response Exitoso ``` 2023-07-14T15:42:58.786Z 2023-07-14T15:47:58.786Z eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE2ODkzNDkzNzgsImV4cCI6MTY4OTM0OTk3OCwiaWF0IjoxNjg5MzQ5Mzc4LCJpc3MiOiJMb2FkU29saWNpdHVkRGVjYXJnYU1hc2l2YVRlcmNlcm9zIiwiYWN0b3J0IjoiMzMzMDMwMzAzMTMwMzAzMDMwMzAzMDM1MzAzMDMwMzAzMzM0MzEzNyJ9.1LRCKkQBXY93DfDf26y9u7rmP4PddQ-TBbyYlOCQ-8A%26wrap_subject%3d3330303031303030303030353030303033343137 ``` ❌ Ejemplo Response Error ``` a:InvalidSecurity An error occurred when verifying security for the message. ``` ### El siguiente servicio a consumir es: [Solicitud de descarga](https://developers.sw.com.mx/knowledge-base/descarga-masiva-sat-solicitud/) --- # Descarga Masiva v1.5 - Descarga de paquetes Fuente: https://developers.sw.com.mx/knowledge-base/descarga-masiva-sat-descarga/ Categoria: Guías de Funcionalidad 📦 En este artículo te explicamos cómo utilizar el **Servicio de Descarga de Paquetes v1.5**, el ultimo paso para obtener los paquetes generados a partir de una solicitud de descarga masiva de CFDI ante el SAT. 🔽 Este servicio te permite **descargar un paquete específico** que forma parte de una solicitud previamente aceptada. Al utilizar la operación correspondiente, obtendrás un **stream con el contenido del paquete**, el cual puedes guardar como archivo para su posterior procesamiento. **🤝¿Necesitas ayuda?** Este servicio es proporcionado directamente por el SAT. Si tienes dudas o problemas con su funcionamiento, te recomendamos contactar a la Mesa de Ayuda del SAT, donde podrán brindarte asistencia especializada. Consulta sus [canales de atención oficiales](https://chat.sat.gob.mx/) para recibir soporte. 💬 ### ✅ Pasos para descargar los paquetes listos 1️⃣ Autenticación 🔐 Obtén un **token de autenticación** utilizando tu certificado FIEL a través del [**servicio correspondiente**](https://developers.sw.com.mx/knowledge-base/descarga-masiva-sat-autentificacion/). Este debe ser enviado en la solicitud como un header, ademas que el valor debe seguir el formato: **“WRAP access\_token=”{Token}””** ![](https://developers.sw.com.mx/wp-content/uploads/2025/05/image.png) 2️⃣ Identificador de los paquetes listos 🧾 Corresponde al valor del atributo `IdsPaquetes`, el cual se obtiene como resultado al consumir el servicio de **[Verificación de Estatus de Solicitudes](https://developers.sw.com.mx/knowledge-base/descarga-masiva-v1-5-verificacion/).** 3️⃣ Generación de XML y envío de la solicitud 📤 🧾 **Construcción del XML** Una vez que cuentes con la información requerida, deberás integrarla en el XML correspondiente a esta petición, siguiendo la estructura definida por el SAT. Parámetros que debes incluir en el XML y cómo obtenerlos | Parámetro | Descripción | | --- | --- | | IdPaquete | Contiene el identificador del paquete que se desea descargar. | | RfcSolicitante | Contiene el RFC del solicitante que genero la petición de solicitud de descarga masiva. | | X509IssuerName | Obtener los datos del archivo .cer de la FIEL en el campo **“Issuer”** o **“Emisor”**. | | X509SerialNumber | Obtener los datos del archivo .cer de la FIEL en el campo **“Serial number”**o **“Número de serie”** | | X509Certificate | Se debe tomar los bytes del archivo .cer de la FIEL y hacer un encode utilizando base64. | | DigestValue | Contiene el valor hash del documento referenciado. | | SignatureValue | Contiene la firma digital del nodo `SignedInfo`. | Cómo generar el DigestValue 1. **Tomar el nodo XML que será referenciado**, por ejemplo: ``` ``` 2. **Eliminar todos los espacios, saltos de línea y tabulaciones** para dejarlo en una sola línea continua. 3. **Aplicar un algoritmo SHA-1** sobre ese texto (en formato binario). 4 . **Codificar el resultado en base64**. Ese será el valor del `DigestValue`. Cómo generar el SignatureValue 1. **Construir el nodo `` completo**, que incluya el `DigestValue` que generaste antes: ``` leZ4dK/Q/RNbckYkY7WOOnCjK5Q= ``` 2. **Aplicar la canonicalización XML** al nodo ``, es decir, convertirlo en una versión estandarizada (sin espacios, atributos ordenados, etc.). 3. **Firmar el resultado usando la clave privada de la FIEL** del emisor. El algoritmo debe ser SHA-1 con RSA. 4. **Codificar la firma obtenida en base64**. Ese será tu `SignatureValue`. Ejemplo de XML del Servicio de Descarga de Paquetes ``` POST https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/DescargaMasivaTercerosService.svc HTTP/1.1 Accept-Encoding: gzip,deflate Content-Type: text/xml;charset=UTF-8 SOAPAction: "http://DescargaMasivaTerceros.sat.gob.mx/IDescargaMasivaTercerosService/Descargar" Authorization: WRAP access_token="eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3NDcwOTc5MjUsImV4cCI6MTc0NzA5ODUyNSwiaWF0IjoxNzQ3MDk3OTI1LCJpc3MiOiJMb2FkU2VydmljaW9EZWNhcmdhTWFzaXZhVGVyY2Vyb3MiLCJhY3RvcnQiOiIzMzMwMzAzMDMxMzAzMDMwMzAzMDMwMzUzMDMwMzAzMDM0MzUzNjMwIn0._eOSO175aj_Op9S1wFf1iXKOnJkdnMwxnGyQmJyblg&wrap_subject=3330303031303030303030353030303034353630" Content-Length: 4979 Host: cfdidescargamasivasolicitud.clouda.sat.gob.mx leZ4dK/Q/RNbckYkY7WOOnCjK5Q= BuuRjPmgk4Qwl2ER7vjL7+57WiqNZMRD12Hjfh65irEI1Cu8biQSqeHHiaZ7NnmB/LsjyGaHQmZMW50mfnDtNzowAdytB6FS0RNUNLoajAZAdii8bYHYoW0BqrLaXSImwbZYaHgi4TlPch1OpXZHmUOqfS1qnEEsRXVBN2DvEh1RbAYupmQxBMW75eo4HZZm/lRug44mb47Evm9428ejTzTnu6LDPEAZEmHV4jOwRzqmM4GgiW7aEptqHOhdSxV+QzPSQ2/H5s8AZZ41 LCK+3gSdCq3Kmf9S2H5R3BRS6VSam5J9xa0I2CvzJf/REwrxHsc7Xk9uXwXWOofjeTI1Bw== OID.1.2.840.113549.1.9.2=Responsable: ACDMA, OID.2.5.4.45=SAT970701NN3, L=Coyoacán, S=Distrito Federal, C=MX, PostalCode=06300, STREET="Av. Hidalgo 77, Col. Guerrero", E=asisnet@pruebas.sat.gob.mx, OU=Administración de Seguridad de la Información, O=Servicio de Administración Tributaria, CN=A.C. 2 de pruebas(4096) 292233162870206001759766198425879490509036075057 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 ``` 4️⃣ Análisis de la respuesta 🔍 Revisa los datos devueltos por el servicio, como el `CodEstatus` y si la solicitud no presento problema, obtendrás `Paquete` con la información solicitada. Información que recibirás en la respuesta | Parámetro | Tipo de Dato | Descripción | | --- | --- | --- | | CodEstatus | String ubicado en el Header | Código de estatus de la solicitud. *(Se adjunta tabla de descripciones en este mismo apartado)* | | Mensaje | String ubicado en el Header | Pequeña descripción del código estatus. | | Paquete | Stream | Representa el paquete que se desea descargar | Ejemplo de respuesta del servicio ``` HTTP/1.1 200 OK Cache-Control: private Transfer-Encoding: chunked Content-Type: text/xml; charset=utf-8 Content-Encoding: gzip Vary: Accept-Encoding Server: Microsoft-IIS/10.0 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Thu, 10 May 2018 16:30:49 GMT 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 ``` Descripción de los codigos para el atributo CodEstatus | Código | Mensaje | Observaciones | | --- | --- | --- | | **300** | **Usuario No Válido** | Este código indica que el usuario proporcionado no es reconocido o no tiene permisos para realizar la operación solicitada. | | **301** | X**ML Mal Formado** | Este código de error se regresa cuando el request posee información invalida, ejemplo: un RFC de receptor no valido. | | **302** | **Sello Mal Formado** | El sello digital enviado no cumple con el formato esperado, lo que impide la validación del documento. | | **303** | **Sello no corresponde con RfcSolicitante** | El sello digital no coincide con el RFC del solicitante registrado en la petición, generando una inconsistencia en la autenticidad. | | **304** | **Certificado Revocado o Caduco** | El certificado puede ser invalido por múltiples razones como son el tipo, la vigencia, etc. | | **305** | **Certificado Inválido** | El certificado puede ser invalido por múltiples razones como son el tipo, la vigencia, etc. | | **5000** | **Solicitud recibida con éxito** | La petición fue recibida correctamente y está en proceso para su análisis o respuesta. | | **5003** | **Tope máximo de elementos de la consulta** | La solicitud sobrepasa el máximo de resultados por tipo de solicitud (Metadata y CFDI) | | **5004** | **No se encontró la información** | No se encontró la información de la solicitud de descarga que se pretende verificar. | | **5011** | **Límite de descargas por folio por día** | Se ha alcanzado o sobrepasado el límite de descargas diarias por folio. | --- # Descarga Masiva v1.5 - Solicitud Fuente: https://developers.sw.com.mx/knowledge-base/descarga-masiva-sat-solicitud/ Categoria: Guías de Funcionalidad 🧾 **En este artículo te explicamos cómo utilizar el Servicio de Solicitud de Descarga Masiva v1.5**, una herramienta clave para realizar solicitudes de descarga de CFDIs o Metadata. 🔍Es un servicio web que **permite realizar solicitudes de descarga de CFDIs o Metadata por un rango de fechas,** para que la petición sea aceptada debe ser realizada por el emisor o receptor de los CFDIs de los cuales se quiere descargar. La siguiente es una guía dirigida para la generación del XML de la petición de solicitud de descarga. *🤝* **¿Necesitas ayuda?:** Este servicio es proporcionado directamente por el SAT. Si tienes dudas o problemas con su funcionamiento, te recomendamos contactar a la Mesa de Ayuda del SAT, donde podrán brindarte asistencia especializada. Consulta sus canales de atención oficiales para recibir soporte. 💬 En la actual versión del servicio de descarga Masiva podemos dividir las solicitudes de descarga en 3: ![logo ddescarga](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_13-consultas.png) ### SolicitaDescargaEmitidos Esta operación permite solicitar la descarga de CFDIs o Metadata de comprobantes emitidos. ![logo descarga](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_13-consultas.png) ### SolicitaDescargaRecibidos Esta operación permite solicitar la descarga de CFDIs o Metadata de comprobantes recibidos. ![logo descarga](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_17-guias.png) ### SolicitaDescargaFolio Esta operación permite solicitar la descarga de un CFDI. ### Requisitos Para la autentificación es necesario contar con los siguientes requisitos: - Certificado (\*.cer) de nuestra FIEL. - Llave privada (\*.key) de nuestra FIEL. - Password de llave privada. Para la obtención del token de autentificación puedes consultar el [siguiente enlace](https://developers.sw.com.mx/knowledge-base/descarga-masiva-sat-autentificacion/). ### Calcular datos necesarios Los parámetros enviados en el XML y que calcularemos son los siguientes: 🗂️ Datos de solicitud de Descarga Emitidos **Fecha inicial** (Obligatorio): Fecha de inicio, con formato AAAA-MM-DDThh:mm:ss. **Fecha final** (Obligatorio): Fecha de fin del rango, con formato AAAA-MM-DDThh:mm:ss. **RFC Receptor** (opcional): Contiene un arreglo de el/los RFCs receptores de los cuales se quiere consultar los CFDIs (Máximo 5). **RFC Emisor** (Obligatorio): Contiene el RFC del emisor del cual se quiere consultar los CFDI. **RFC solicitante** (Opcional): Contiene el RFC del que está realizando la solicitud de descarga. Este parámetro es opcional, pero en caso de proporcionarse debe coincidir con el RFC Emisor. **Tipo de Solicitud** (Obligatorio): Tipo de solicitud que se realizará al SAT, **CFDI** o **Metadata**. **Tipo de Comprobante** (Opcional): Define el tipo de comprobante (Null, I = Ingreso, E = Egreso, T= Traslado, N = Nomina, P = Pago). Null es el valor predeterminado y en caso de no declararse, se obtendrán todos los comprobantes sin importar el tipo comprobante. **Estado del comprobante** (Opcional): Define el estado del comprobante (Todos, Cancelado, Vigente). En caso de que no se proporcione, se considerara Vigente como valor por defecto. **RFC A Cuenta de Terceros** (Opcional): Contiene el RFC del a cuenta a tercero del cual se quiere consultar los CFDIs. **Complemento (Opcional):** Define el complemento de CFDI a descargar. null es el valor predeterminado y en caso de no declararse, se obtendrán todos los comprobantes sin importar el complemento asociado a los comprobantes. **Datos del Certificado** (Obligatorio): Obtener los datos del Certificado en el campo “Issuer” o “Emisor”. Utilizando la FIEL de pruebas, el resultado sería:  **OID.1.2.840.113549.1.9.2=responsable: ACDMA-SAT, OID.2.5.4.45=2.5.4.45, L=COYOACAN, S=CIUDAD DE MEXICO, C=MX, PostalCode=06370, STREET=3ra cerrada de caliz, E=oscar.martinez@sat.gob.mx, OU=SAT-IES Authority, O=SERVICIO DE ADMINISTRACION TRIBUTARIA, CN=AC UAT** **Número de Certificado** (Obligatorio): Obtener el dato del Certificado en el campo “Serial number”. Utilizando la FIEL de pruebas, el resultado sería:  ***292233162870206001759766198462772978647781684784*** **Certificado** (Obligatorio): Al igual que en CFDI 4.0, tomar los bytes del archivo .Cer de la FIEL y hacer un encode utilizando base64. **DigestValue** (Obligatorio): Se debe calcular el SHA1 en formato binario del siguiente texto (obviamente los datos cambiarán según situación) *Por texto, nos referimos a el siguiente nodo con el namespace, pero dicho nodo debe ir sin espacios* ``` VADA800927DJ3 ``` Y los bytes que obtienes codearlos a base64.Utilizando este nodo, el resultado sería el siguiente: **EmjkJoOL6FL3lbJr+DZuBrVRXDg=** **SignatureValue** (Obligatorio): Se debe calcular con un algoritmo de digestión SHA1 utilizando la llave privada de la FIEL y el siguiente texto: ``` EmjkJoOL6FL3lbJr+DZuBrVRXDg= ``` **NOTA:** *Tener en consideración que el DigestValue anteriormente calculado aparece en dicho texto.* Una vez hecha la digestión, el resultado en bytes lo codeamos en base64. Utilizando la llave privada de la FIEL de pruebas “AXT940727FP8”, el resultado sería el siguiente: **F8IY+ssdqxgWGXcaO4N1VBtT5VEPUbTdLDqgepHpK5FS2zQWPaUcxtedz+7aEC6mdFXjGzfs4vAI4KPCBOQ3jXScw+ksXU1AGMglCEgONT1KTgzgdSNYAePozrwTJJYYNVKRkEao56M0v155e6Q5gyc48ePvX+Wk1i8Ipdey/EI1h7HZbUQCE6+dHnxEMlomymlEyoHEDG0/MzVtuW4s2riceZ6Z63Mn8KRah3kVyLuslW0iwP5S59adkH8bpPkrCHQBg7sMYpSBxHSJm9g5BL7o35tygcdBgaxmTdCNQXnoyIW9oazlPJbGnqx2UVnHROixaXxAYu56j0A0i1YfAg==** *⚠️* **NOTA:** Signature representa la firma digital de la solicitud, generada utilizando el certificado FIEL (e.firma) del solicitante. La estructura de la solicitud debe estar ordenada alfabéticamente por nombre de campo para que la validación de la firma sea exitosa. 🗂️ Datos de solicitud de Descarga Recibidos **Fecha inicial** (Obligatorio): Fecha de inicio, con formato AAAA-MM-DDThh:mm:ss. **Fecha final** (Obligatorio): Fecha de fin del rango, con formato AAAA-MM-DDThh:mm:ss. **RFC Receptor** (Obligatorio): Contiene el RFC Receptor el cual corresponde con el contribuyente del cual se requiere la información. **RFC Emisor** (Opcional): Contiene el RFC del emisor del cual se quiere consultar los CFDI. **RFC solicitante** (Opcional): Contiene el RFC del que está realizando la solicitud de descarga. Este parámetro es opcional, pero en caso de proporcionarse debe coincidir con el RFC Receptor. **Tipo de Comprobante** (Opcional): Define el tipo de comprobante (Null, I = Ingreso, E = Egreso, T= Traslado, N = Nomina, P = Pago). Null es el valor predeterminado y en caso de no declararse, se obtendrán todos los comprobantes sin importar el tipo comprobante. **Estado del comprobante** (Opcional): Define el estado del comprobante (Todos, Cancelado, Vigente). En caso de que no se proporcione, se considerara Vigente como valor por defecto. *REGLA:* Para efectos de la metadata el listado solo incluirá los comprobantes vigentes y cancelados, para efectos de la descarga de XML, solo se incluirán los vigentes. Por lo tanto, el servicio no descargará XML cancelados. **RFC A Cuenta de Terceros** (Opcional): Contiene el RFC del a cuenta a tercero del cual se quiere consultar los CFDIs. **Complemento (Opcional):** Define el complemento de CFDI a descargar. null es el valor predeterminado y en caso de no declararse, se obtendrán todos los comprobantes sin importar el complemento asociado a los comprobantes. **Datos del Certificado** (Obligatorio): Obtener los datos del Certificado en el campo “Issuer” o “Emisor”. Utilizando la FIEL de pruebas, el resultado sería:  **OID.1.2.840.113549.1.9.2=responsable: ACDMA-SAT, OID.2.5.4.45=2.5.4.45, L=COYOACAN, S=CIUDAD DE MEXICO, C=MX, PostalCode=06370, STREET=3ra cerrada de caliz, E=oscar.martinez@sat.gob.mx, OU=SAT-IES Authority, O=SERVICIO DE ADMINISTRACION TRIBUTARIA, CN=AC UAT** **Número de Certificado** (Obligatorio): Obtener el dato del Certificado en el campo “Serial number”. Utilizando la FIEL de pruebas, el resultado sería:  ***292233162870206001759766198462772978647781684784*** **Certificado** (Obligatorio): Al igual que en CFDI 4.0, tomar los bytes del archivo .Cer de la FIEL y hacer un encode utilizando base64. **DigestValue** (Obligatorio): Se debe calcular el SHA1 en formato binario del siguiente texto (obviamente los datos cambiarán según situación) *Por texto, nos referimos a el siguiente nodo con el namespace, pero dicho nodo debe ir sin espacios* ``` ``` Y los bytes que obtienes codearlos a base64.Utilizando este nodo, el resultado sería el siguiente: **lARf47malXkXG1F03V0qYoDTwss=** **SignatureValue** (Obligatorio): Se debe calcular con un algoritmo de digestión SHA1 utilizando la llave privada de la FIEL y el siguiente texto: ``` lARf47malXkXG1F03V0qYoDTwss= ``` **NOTA:** *Tener en consideración que el DigestValue anteriormente calculado aparece en dicho texto.* Una vez hecha la digestión, el resultado en bytes lo codeamos en base64. Utilizando la llave privada de la FIEL de pruebas “AXT940727FP8”, el resultado sería el siguiente: **KSUcJjL11MqKFSW8Jgj7fjkF/W0m0ILDdS+Y1jWVNggTljdd1NFAHQItll1iDR7HgywPhysKTJA+Z/eAu8TMNmlLV9dmmYvSXQkcUId09K4IxKYIqbtmnJrgyGqOeaATro34+lXKNIQ5Nw46GnnS+AUccjW6CoYTzGazJztcpmA4quc4/x1K5fGTmdHMvxRy+gw0EFmNl1tF1bCRsWDr/rLq5y5VCgh0Ia60KPpJ5veu3O9Ct4zeiBr/183y0b5NPR0K7e3VnHoBCkDS XwxLKYWMU9vEKacMiLfTy1mNXBvLio5EOGbTQuTFS3jU4+wCtAIwxMjhLj992lgYcUpLAQ==** *⚠️* **NOTA:** Signature representa la firma digital de la solicitud, generada utilizando el certificado FIEL (e.firma) del solicitante. La estructura de la solicitud debe estar ordenada alfabéticamente por nombre de campo para que la validación de la firma sea exitosa. 🗂️ Datos de solicitud de Descarga Folio **RFC solicitante** (Opcional): Contiene el RFC del que está realizando la solicitud de descarga. **Folio** (Obligatorio): Folio Fiscal con formato: XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX **Datos del Certificado** (Obligatorio): Obtener los datos del Certificado en el campo “Issuer” o “Emisor”. Utilizando la FIEL de pruebas, el resultado sería:  **OID.1.2.840.113549.1.9.2=responsable: ACDMA-SAT, OID.2.5.4.45=2.5.4.45, L=COYOACAN, S=CIUDAD DE MEXICO, C=MX, PostalCode=06370, STREET=3ra cerrada de caliz, E=oscar.martinez@sat.gob.mx, OU=SAT-IES Authority, O=SERVICIO DE ADMINISTRACION TRIBUTARIA, CN=AC UAT** **Número de Certificado** (Obligatorio): Obtener el dato del Certificado en el campo “Serial number”. Utilizando la FIEL de pruebas, el resultado sería:  ***292233162870206001759766198462772978647781684784*** **Certificado** (Obligatorio): Al igual que en CFDI 4.0, tomar los bytes del archivo .Cer de la FIEL y hacer un encode utilizando base64. **DigestValue** (Obligatorio): Se debe calcular el SHA1 en formato binario del siguiente texto (obviamente los datos cambiarán según situación) *Por texto, nos referimos a el siguiente nodo con el namespace, pero dicho nodo debe ir sin espacios* ``` ``` Y los bytes que obtienes codearlos a base64.Utilizando este nodo, el resultado sería el siguiente: **gVetTO4TSoM1y2d2uFihkNt7Blk=** **SignatureValue** (Obligatorio): Se debe calcular con un algoritmo de digestión SHA1 utilizando la llave privada de la FIEL y el siguiente texto: ``` gVetTO4TSoM1y2d2uFihkNt7Blk= ``` **NOTA:** *Tener en consideración que el DigestValue anteriormente calculado aparece en dicho texto.* Una vez hecha la digestión, el resultado en bytes lo codeamos en base64. Utilizando la llave privada de la FIEL de pruebas “AXT940727FP8”, el resultado sería el siguiente: **NZujWT9Cp7ZZuSIBmKMZeIrrtBu8yCaxIszhFVbwC+WRXB5MqbiX3MrC5LSqZFIGnv//ATcLuadd1yso4swTWk3UeK5lb8g+UqkFxYVxWDnCE/vf969mZGfpPoYvl2MqP8yoDxSm2dMXZk/vjpvo/G95//sNx+hV3gW0w1+6JBVaHTzII7X5+iHx3lO7cjsl769tjFAyeCeYTn49AsgpxJ1PJjSpiLMLRuk+hgANPyH0a8VpTlnFagB+552yDN75m6/tH55525nZcNSa wRmdxSzGSRNwkbKibIwWVft0zJjX0UiUzqkwVyH/cQhactHPIslucQM8Oa5100EjPUz71g==** *⚠️* **NOTA:** Signature representa la firma digital de la solicitud, generada utilizando el certificado FIEL (e.firma) del solicitante. La estructura de la solicitud debe estar ordenada alfabéticamente por nombre de campo para que la validación de la firma sea exitosa. *⚠️* **NOTA:** La opción de Descarga de Emitidos es la unica opción donde permite descargar documentos vigentes y cancelados. ### Llenado de campos Una vez que tengamos los datos anteriormente calculados, procederíamos a ponerlos sobre la plantilla del XML que se debe enviar al SAT. 📝 Llenado de solicitud de Descarga Emitidos **Fecha Inicial** y **Fecha Final**: Estos campos, irán dentro del nodo de solicitud. **RFC** **Emisor y RFC Solicitante:** Estos datos también van dentro del nodo de solicitud. **Tipo de Solicitud**: Este dato va dentro del nodo solicitud y solo puede llevar como valor “CFDI” o “Metadata”. **Estado Comprobante y Tipo de comprobantes:** Estos datos también van dentro del nodo de solicitud. **RFC Receptor:** En esta versión de solicitud el RFC del receptor o los RFC´s de los Receptores irán dentro del nodo RfcReceptores. De la siguiente manera. Ejemplo 1 receptor ``` VADA800927DJ3 ``` **Certificado**: Es el texto que va dentro del nodo s:Envelope/s:Body/o:Security/des:SolicitaDescarga/des:solicitud/ Signature/KeyInfo/X509Data/X509Certificate **Datos del Certificado**: Es el texto que va dentro del nodo s:Envelope/s:Body/o:Security/des:SolicitaDescarga/des:solicitud/ Signature/KeyInfo/X509Data/X509IssuerSerial/X509IssuerName **Número de Certificado**: Es el texto que va dentro del nodo s:Envelope/s:Body/o:Security/des:SolicitaDescarga/des:solicitud/ Signature/KeyInfo/X509Data/X509IssuerSerial/X509SerialNumber **DigestValue**: Es el texto que va dentro del nodo s:Envelope/s:Body/o:Security/des:SolicitaDescarga/des:solicitud/Signature/ SignedInfo/Reference/DigestValue **SignatureValue**: Es el texto que va dentro del nodo s:Envelope/s:Body/o:Security/des:SolicitaDescarga/des:solicitud/Signature/ SignatureValue 📝 Llenado de solicitud de Descarga Recibidos **Fecha Inicial** y **Fecha Final**: Estos campos, irán dentro del nodo de solicitud. **RFC** **Receptor y RFC Solicitante:** Estos datos también van dentro del nodo de solicitud. **Tipo de Solicitud**: Este dato va dentro del nodo solicitud y solo puede llevar como valor “CFDI” o “Metadata”. **Estado Comprobante y Tipo de comprobantes:** Estos datos también van dentro del nodo de solicitud. **Certificado**: Es el texto que va dentro del nodo s:Envelope/s:Body/o:Security/des:SolicitaDescarga/des:solicitud/ Signature/KeyInfo/X509Data/X509Certificate **Datos del Certificado**: Es el texto que va dentro del nodo s:Envelope/s:Body/o:Security/des:SolicitaDescarga/des:solicitud/ Signature/KeyInfo/X509Data/X509IssuerSerial/X509IssuerName **Número de Certificado**: Es el texto que va dentro del nodo s:Envelope/s:Body/o:Security/des:SolicitaDescarga/des:solicitud/ Signature/KeyInfo/X509Data/X509IssuerSerial/X509SerialNumber **DigestValue**: Es el texto que va dentro del nodo s:Envelope/s:Body/o:Security/des:SolicitaDescarga/des:solicitud/Signature/ SignedInfo/Reference/DigestValue **SignatureValue**: Es el texto que va dentro del nodo s:Envelope/s:Body/o:Security/des:SolicitaDescarga/des:solicitud/Signature/ SignatureValue 📝 Llenado de solicitud de Descarga Folio **RFC Solicitante y Folio:** Estos datos van dentro del nodo de solicitud. **Certificado**: Es el texto que va dentro del nodo s:Envelope/s:Body/o:Security/des:SolicitaDescarga/des:solicitud/ Signature/KeyInfo/X509Data/X509Certificate **Datos del Certificado**: Es el texto que va dentro del nodo s:Envelope/s:Body/o:Security/des:SolicitaDescarga/des:solicitud/ Signature/KeyInfo/X509Data/X509IssuerSerial/X509IssuerName **Número de Certificado**: Es el texto que va dentro del nodo s:Envelope/s:Body/o:Security/des:SolicitaDescarga/des:solicitud/ Signature/KeyInfo/X509Data/X509IssuerSerial/X509SerialNumber **DigestValue**: Es el texto que va dentro del nodo s:Envelope/s:Body/o:Security/des:SolicitaDescarga/des:solicitud/Signature/ SignedInfo/Reference/DigestValue **SignatureValue**: Es el texto que va dentro del nodo s:Envelope/s:Body/o:Security/des:SolicitaDescarga/des:solicitud/Signature/ SignatureValue ### Documento Final Después de hacer el cálculo y llenado de los datos, tendríamos el siguiente XML de ejemplo según la solicitud creada. 📄 Ejemplo de solicitud de Descarga Emitidos ``` POST https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/SolicitaDescargaService.svc HTTP/1.1 Accept-Encoding: gzip,deflate Content-Type: text/xml;charset=UTF-8 SOAPAction: "http://DescargaMasivaTerceros.sat.gob.mx/ISolicitaDescargaService/SolicitaDescargaEmitidos" Authorization: WRAP access_token="eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3NDcwOTc5MjUsImV4cCI6MTc0NzA5ODUyNSwiaWF0IjoxNzQ3MDk3OTI1LCJpc3MiOiJMb2FkU2VydmljaW9EZWNhcmdhTWFzaXZhVGVyY2Vyb3MiLCJhY3RvcnQiOiIzMzMwMzAzMDMxMzAzMDMwMzAzMDMwMzUzMDMwMzAzMDM0MzUzNjMwIn0._eOSO175aj_Op9S1wFf1iXKOnJkdnMwxnGyQmJyblg&wrap_subject=3330303031303030303030353030303034353630" Content-Length: 4979 Host: cfdidescargamasivasolicitud.clouda.sat.gob.mx VADA800927DJ3 EmjkJoOL6FL3lbJr+DZuBrVRXDg= F8IY+ssdqxgWGXcaO4N1VBtT5VEPUbTdLDqgepHpK5FS2zQWPaUcxtedz+7aEC6mdFXjGzfs4vAI4KPCBOQ3jXScw+ksXU1AGMglCEgONT1KTgzgdSNYAePozrwTJJYYNVKRkEao56M0v155e6Q5gyc48ePvX+Wk1i8Ipdey/EI1h7HZbUQCE6+dHnxEMlomymlEyoHEDG0/MzVtuW4s2riceZ6Z63Mn8KRah3kVyLuslW0iwP5S59adkH8bpPkrCHQBg7sMYpSBxHSJm9g5BL7o35tygcdBgaxmTdCNQXnoyIW9oazlPJbGnqx2UVnHROixaXxAYu56j0A0i1YfAg== OID.1.2.840.113549.1.9.2=responsable: ACDMA-SAT, OID.2.5.4.45=2.5.4.45, L=COYOACAN, S=CIUDAD DE MEXICO, C=MX, PostalCode=06370, STREET=3ra cerrada de caliz, E=oscar.martinez@sat.gob.mx, OU=SAT-IES Authority, O=SERVICIO DE ADMINISTRACION TRIBUTARIA, CN=AC UAT 292233162870206001759766198462772978647781684784 MIIHMDCCBRigAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDQ1NjAwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMxMDIyMjIyMjU5WhcNMjcxMDIxMjIyMjU5WjCCAiQxSTBHBgNVBAMTQFNJTkRJQ0FUTyBERSBDSE9GRVJFUyBERSBUQVhJUyBZIENPTUJJUyBERUwgU0VSVklDSU8gUFVCTElDTyBUUkExggEYMIIBFAYDVQQpE4IBC1NJTkRJQ0FUTyBERSBDSE9GRVJFUyBERSBUQVhJUyBZIENPTUJJUyBERUwgU0VSVklDSU8gUFVCTElDTyBUUkFOU1BPUlRJU1RBUyBERSBNQVRFUklBTEVTIFBBUkEgTEEgQ09OU1RSVUNDSU9OIFNFTUlMTEEgREVMIENBTVBPIFkgRU1QTEVBRE9TIERFIExBIENPTlNUUlVDQ0lPTiBDT05FWE9TIFkgU0lNSUxBUkVTIERFTCBFU1RBRE8gREUgTUlDSE9BQ0FOIExJQy4gUk9ET0xGTyBDSUVORlVFR09TIE1BUklOIFNJTiBUSVBPIERFIFNPQ0lFREFEIFMgQSBCIERFIEMgVjFJMEcGA1UEChNAU0lORElDQVRPIERFIENIT0ZFUkVTIERFIFRBWElTIFkgQ09NQklTIERFTCBTRVJWSUNJTyBQVUJMSUNPIFRSQTELMAkGA1UEBhMCTVgxHDAaBgkqhkiG9w0BCQEWDWF4dEBnbWFpbC5jb20xJTAjBgNVBC0THEFYVDk0MDcyN0ZQOCAvIFZBQUU3MzEwMjExMjExHjAcBgNVBAUTFSAvIFZBQUU3MzEwMjFITUNaTEYwMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK4VLoUISn9xHGd39XQu5CSeu4EbHhwkcAy7XMHKOoBLOl+369SBAijjbhFAHdGN6lMJYZ0Ez2Z/U5SZR2bLsWF0zywvrZeX98WZfUvhnQvgcBbdTuwe/FUCknuS/+Z/WzjgxqTc8cUccR0s6D28qKTzr0CkNB03XmuiXu8wt7qCr3UPe9OvVnT9OZBrbvGBPfzzzmQ4fBLm5HD8nI+lQpspqQCVEErtn4utcYUVZjE1PDwHbKnrrsPFtf9ukFx7h1Xha4IeMqZB1OHjT09PD8wVkaUjGcSQaGIIScS7O3pvulVGeiDcO6XU6eIwpUSfG0jCjBCC9y0XrPkvvxO6EZcCAwEAAaNPME0wDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCA9gwEQYJYIZIAYb4QgEBBAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMEBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAgEAV5/rOsZ0rWUo5qXdcUPy6l7ye81tjh8OHliS0aEVFpceRiMEVioS2hNKfKBobbvtegvR+gzVBnTIWMryiOZQ03fF9ovWXt8iasYySFX7qQa1S+DTaECwOFaUBDNt8ZLWbAVvcQ6aBk1q6eXYENT4rTgwMSVKh49i4m4HgWng4e2H8isM3+FFQ+lnSNJBpVAyQt5lMCo9G+4Ji5r3nUQWxS4NsQv/rFp+CJ/l8HQ1APM2HXD8CbYYStEkvC3EKR+ny74PwcRD6dROzOaGwCwi4zYcx1vPZc9CsnjisxSTjEU3pkkx1P13Tcg5iv8zgUQCkbj2JlhCBDjwRqjTeas2B3p03iZQoKqDA48Zq8WQR9AaP1qjkIwY1xP7MMJd07qISc9TABhgSWwW25GPWY65KhIAtzV/0peQBmXFzXT0dwcryKRlZntzT6mAbtwxpX/MV/djZ44id+r9/geEOWeIBkCFp1H6mF/0a/c6c0SMwnvRI3iych6Fsx2JeKelpitJMYGhQh8IH4w1b5WLmmf7OJsxe7x1DCY4of7kqgaUV3OhGNknOCCLHDhlf61mRWfXSwrg0q0tRBZTDGZF7FQ7Mf8SmOiibdEWsYr4MdyAdmGnAUwToS1NIsKRExLV0NgbFsGN6okNdyXx2lXULkas0LDwi8ky/Vc0ky/P1Xucg1E= ``` 📄 Ejemplo de solicitud de Descarga Recibidos ``` POST https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/SolicitaDescargaService.svc HTTP/1.1 Accept-Encoding: gzip,deflate Content-Type: text/xml;charset=UTF-8 SOAPAction: "http://DescargaMasivaTerceros.sat.gob.mx/ISolicitaDescargaService/SolicitaDescargaRecibidos" Authorization: WRAP access_token="eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3NDcxMDY5MTcsImV4cCI6MTc0NzEwNzUxNywiaWF0IjoxNzQ3MTA2OTE3LCJpc3MiOiJMb2FkU2VydmljaW9EZWNhcmdhTWFzaXZhVGVyY2Vyb3MiLCJhY3RvcnQiOiIzMzMwMzAzMDMxMzAzMDMwMzAzMDMwMzUzMDMwMzAzMDM0MzUzNjMwIn0.VZUTvZujvsarne_38T5HIEHxxtTKfT3K48vSm7QmFk0&wrap_subj ect=3330303031303030303030353030303034353630" Content-Length: 4833 Host: cfdidescargamasivasolicitud.clouda.sat.gob.mx lARf47malXkXG1F03V0qYoDTwss= KSUcJjL11MqKFSW8Jgj7fjkF/W0m0ILDdS+Y1jWVNggTljdd1NFAHQItll1iDR7HgywPhysKTJA+Z/eAu8TMNmlLV9dmmYvSXQkcUId09K4IxKYIqbtmnJrgyGqOeaATro34+lXKNIQ5Nw46GnnS+AUccjW6CoYTzGazJztcpmA4quc4/x1K5fGTmdHMvxRy+gw0EFmNl1tF1bCRsWDr/rLq5y5VCgh0Ia60KPpJ5veu3O9Ct4zeiBr/183y0b5NPR0K7e3VnHoBCkDS XwxLKYWMU9vEKacMiLfTy1mNXBvLio5EOGbTQuTFS3jU4+wCtAIwxMjhLj992lgYcUpLAQ== OID.1.2.840.113549.1.9.2=responsable: ACDMA-SAT, OID.2.5.4.45=2.5.4.45, L=COYOACAN, S=CIUDAD DE MEXICO, C=MX, PostalCode=06370, STREET=3ra cerrada de caliz, E=oscar.martinez@sat.gob.mx, OU=SAT-IES Authority, O=SERVICIO DE ADMINISTRACION TRIBUTARIA, CN=AC UAT 292233162870206001759766198462772978647781684784 MIIHMDCCBRigAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDQ1NjAwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMxMDIyMjIyMjU5WhcNMjcxMDIxMjIyMjU5WjCCAiQxSTBHBgNVBAMTQFNJTkRJQ0FUTyBERSBDSE9GRVJFUyBERSBUQVhJUyBZIENPTUJJUyBERUwgU0VSVklDSU8gUFVCTElDTyBUUkExggEYMIIBFAYDVQQpE4IBC1NJTkRJQ0FUTyBERSBDSE9GRVJFUyBERSBUQVhJUyBZIENPTUJJUyBERUwgU0VSVklDSU8gUFVCTElDTyBUUkFOU1BPUlRJU1RBUyBERSBNQVRFUklBTEVTIFBBUkEgTEEgQ09OU1RSVUNDSU9OIFNFTUlMTEEgREVMIENBTVBPIFkgRU1QTEVBRE9TIERFIExBIENPTlNUUlVDQ0lPTiBDT05FWE9TIFkgU0lNSUxBUkVTIERFTCBFU1RBRE8gREUgTUlDSE9BQ0FOIExJQy4gUk9ET0xGTyBDSUVORlVFR09TIE1BUklOIFNJTiBUSVBPIERFIFNPQ0lFREFEIFMgQSBCIERFIEMgVjFJMEcGA1UEChNAU0lORElDQVRPIERFIENIT0ZFUkVTIERFIFRBWElTIFkgQ09NQklTIERFTCBTRVJWSUNJTyBQVUJMSUNPIFRSQTELMAkGA1UEBhMCTVgxHDAaBgkqhkiG9w0BCQEWDWF4dEBnbWFpbC5jb20xJTAjBgNVBC0THEFYVDk0MDcyN0ZQOCAvIFZBQUU3MzEwMjExMjExHjAcBgNVBAUTFSAvIFZBQUU3MzEwMjFITUNaTEYwMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK4VLoUISn9xHGd39XQu5CSeu4EbHhwkcAy7XMHKOoBLOl+369SBAijjbhFAHdGN6lMJYZ0Ez2Z/U5SZR2bLsWF0zywvrZeX98WZfUvhnQvgcBbdTuwe/FUCknuS/+Z/WzjgxqTc8cUccR0s6D28qKTzr0CkNB03XmuiXu8wt7qCr3UPe9OvVnT9OZBrbvGBPfzzzmQ4fBLm5HD8nI+lQpspqQCVEErtn4utcYUVZjE1PDwHbKnrrsPFtf9ukFx7h1Xha4IeMqZB1OHjT09PD8wVkaUjGcSQaGIIScS7O3pvulVGeiDcO6XU6eIwpUSfG0jCjBCC9y0XrPkvvxO6EZcCAwEAAaNPME0wDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCA9gwEQYJYIZIAYb4QgEBBAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMEBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAgEAV5/rOsZ0rWUo5qXdcUPy6l7ye81tjh8OHliS0aEVFpceRiMEVioS2hNKfKBobbvtegvR+gzVBnTIWMryiOZQ03fF9ovWXt8iasYySFX7qQa1S+DTaECwOFaUBDNt8ZLWbAVvcQ6aBk1q6eXYENT4rTgwMSVKh49i4m4HgWng4e2H8isM3+FFQ+lnSNJBpVAyQt5lMCo9G+4Ji5r3nUQWxS4NsQv/rFp+CJ/l8HQ1APM2HXD8CbYYStEkvC3EKR+ny74PwcRD6dROzOaGwCwi4zYcx1vPZc9CsnjisxSTjEU3pkkx1P13Tcg5iv8zgUQCkbj2JlhCBDjwRqjTeas2B3p03iZQoKqDA48Zq8WQR9AaP1qjkIwY1xP7MMJd07qISc9TABhgSWwW25GPWY65KhIAtzV/0peQBmXFzXT0dwcryKRlZntzT6mAbtwxpX/MV/djZ44id+r9/geEOWeIBkCFp1H6mF/0a/c6c0SMwnvRI3iych6Fsx2JeKelpitJMYGhQh8IH4w1b5WLmmf7OJsxe7x1DCY4of7kqgaUV3OhGNknOCCLHDhlf61mRWfXSwrg0q0tRBZTDGZF7FQ7Mf8SmOiibdEWsYr4MdyAdmGnAUwToS1NIsKRExLV0NgbFsGN6okNdyXx2lXULkas0LDwi8ky/Vc0ky/P1Xucg1E= ``` 📄 Ejemplo de solicitud de Descarga Folio ``` POST https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/SolicitaDescargaService.svc HTTP/1.1 Accept-Encoding: gzip,deflate Content-Type: text/xml;charset=UTF-8 SOAPAction: "http://DescargaMasivaTerceros.sat.gob.mx/ISolicitaDescargaService/SolicitaDescargaFolio" Authorization: WRAP access_token="eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3NDcxMDY5MTcsImV4cCI6MTc0NzEwNzUxNywiaWF0IjoxNzQ3MTA2OTE3LCJpc3MiOiJMb2FkU2VydmljaW9EZWNhcmdhTWFzaXZhVGVyY2Vyb3MiLCJhY3RvcnQiOiIzMzMwMzAzMDMxMzAzMDMwMzAzMDMwMzUzMDMwMzAzMDM0MzUzNjMwIn0.VZUTvZujvsarne_38T5HIEHxxtTKfT3K48vSm7QmFk0&wrap_subj ect=3330303031303030303030353030303034353630" Content-Length: 4833 Host: cfdidescargamasivasolicitud.clouda.sat.gob.mx gVetTO4TSoM1y2d2uFihkNt7Blk= NZujWT9Cp7ZZuSIBmKMZeIrrtBu8yCaxIszhFVbwC+WRXB5MqbiX3MrC5LSqZFIGnv//ATcLuadd1yso4swTWk3UeK5lb8g+UqkFxYVxWDnCE/vf969mZGfpPoYvl2MqP8yoDxSm2dMXZk/vjpvo/G95//sNx+hV3gW0w1+6JBVaHTzII7X5+iHx3lO7cjsl769tjFAyeCeYTn49AsgpxJ1PJjSpiLMLRuk+hgANPyH0a8VpTlnFagB+552yDN75m6/tH55525nZcNSa wRmdxSzGSRNwkbKibIwWVft0zJjX0UiUzqkwVyH/cQhactHPIslucQM8Oa5100EjPUz71g== OID.1.2.840.113549.1.9.2=responsable: ACDMA-SAT, OID.2.5.4.45=2.5.4.45, L=COYOACAN, S=CIUDAD DE MEXICO, C=MX, PostalCode=06370, STREET=3ra cerrada de caliz, E=oscar.martinez@sat.gob.mx, OU=SAT-IES Authority, O=SERVICIO DE ADMINISTRACION TRIBUTARIA, CN=AC UAT 292233162870206001759766198462772978647781684784 MIIHMDCCBRigAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDQ1NjAwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMxMDIyMjIyMjU5WhcNMjcxMDIxMjIyMjU5WjCCAiQxSTBHBgNVBAMTQFNJTkRJQ0FUTyBERSBDSE9GRVJFUyBERSBUQVhJUyBZIENPTUJJUyBERUwgU0VSVklDSU8gUFVCTElDTyBUUkExggEYMIIBFAYDVQQpE4IBC1NJTkRJQ0FUTyBERSBDSE9GRVJFUyBERSBUQVhJUyBZIENPTUJJUyBERUwgU0VSVklDSU8gUFVCTElDTyBUUkFOU1BPUlRJU1RBUyBERSBNQVRFUklBTEVTIFBBUkEgTEEgQ09OU1RSVUNDSU9OIFNFTUlMTEEgREVMIENBTVBPIFkgRU1QTEVBRE9TIERFIExBIENPTlNUUlVDQ0lPTiBDT05FWE9TIFkgU0lNSUxBUkVTIERFTCBFU1RBRE8gREUgTUlDSE9BQ0FOIExJQy4gUk9ET0xGTyBDSUVORlVFR09TIE1BUklOIFNJTiBUSVBPIERFIFNPQ0lFREFEIFMgQSBCIERFIEMgVjFJMEcGA1UEChNAU0lORElDQVRPIERFIENIT0ZFUkVTIERFIFRBWElTIFkgQ09NQklTIERFTCBTRVJWSUNJTyBQVUJMSUNPIFRSQTELMAkGA1UEBhMCTVgxHDAaBgkqhkiG9w0BCQEWDWF4dEBnbWFpbC5jb20xJTAjBgNVBC0THEFYVDk0MDcyN0ZQOCAvIFZBQUU3MzEwMjExMjExHjAcBgNVBAUTFSAvIFZBQUU3MzEwMjFITUNaTEYwMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK4VLoUISn9xHGd39XQu5CSeu4EbHhwkcAy7XMHKOoBLOl+369SBAijjbhFAHdGN6lMJYZ0Ez2Z/U5SZR2bLsWF0zywvrZeX98WZfUvhnQvgcBbdTuwe/FUCknuS/+Z/WzjgxqTc8cUccR0s6D28qKTzr0CkNB03XmuiXu8wt7qCr3UPe9OvVnT9OZBrbvGBPfzzzmQ4fBLm5HD8nI+lQpspqQCVEErtn4utcYUVZjE1PDwHbKnrrsPFtf9ukFx7h1Xha4IeMqZB1OHjT09PD8wVkaUjGcSQaGIIScS7O3pvulVGeiDcO6XU6eIwpUSfG0jCjBCC9y0XrPkvvxO6EZcCAwEAAaNPME0wDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCA9gwEQYJYIZIAYb4QgEBBAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMEBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAgEAV5/rOsZ0rWUo5qXdcUPy6l7ye81tjh8OHliS0aEVFpceRiMEVioS2hNKfKBobbvtegvR+gzVBnTIWMryiOZQ03fF9ovWXt8iasYySFX7qQa1S+DTaECwOFaUBDNt8ZLWbAVvcQ6aBk1q6eXYENT4rTgwMSVKh49i4m4HgWng4e2H8isM3+FFQ+lnSNJBpVAyQt5lMCo9G+4Ji5r3nUQWxS4NsQv/rFp+CJ/l8HQ1APM2HXD8CbYYStEkvC3EKR+ny74PwcRD6dROzOaGwCwi4zYcx1vPZc9CsnjisxSTjEU3pkkx1P13Tcg5iv8zgUQCkbj2JlhCBDjwRqjTeas2B3p03iZQoKqDA48Zq8WQR9AaP1qjkIwY1xP7MMJd07qISc9TABhgSWwW25GPWY65KhIAtzV/0peQBmXFzXT0dwcryKRlZntzT6mAbtwxpX/MV/djZ44id+r9/geEOWeIBkCFp1H6mF/0a/c6c0SMwnvRI3iych6Fsx2JeKelpitJMYGhQh8IH4w1b5WLmmf7OJsxe7x1DCY4of7kqgaUV3OhGNknOCCLHDhlf61mRWfXSwrg0q0tRBZTDGZF7FQ7Mf8SmOiibdEWsYr4MdyAdmGnAUwToS1NIsKRExLV0NgbFsGN6okNdyXx2lXULkas0LDwi8ky/Vc0ky/P1Xucg1E= ``` ### Response A continuación se comparten los ejemplos de respuesta del servicio. ✅ Ejemplo Response Exitoso de solicitud de Descarga Emitidos ``` ``` ✅ Ejemplo Response Exitoso de solicitud de Descarga Recibidos ``` ``` ✅ Ejemplo Response Exitoso de solicitud de Descarga Folio ``` ``` ### Códigos de error A continuación se detallan los códigos de error retornados por el servicio, junto con su descripción. 📋 Códigos de error de solicitud de Descarga Emitidos | Evento | Mensaje | Observaciones | | --- | --- | --- | | 300 | Usuario No Válido | | | 301 | XML Mal Formado | Este código de error se regresa cuando el request posee información inválida, ejemplo: un RFC de receptor no válido. | | 302 | Sello Mal Formado | | | 303 | Sello no corresponde con RfcEmisor | | | 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. | | 5000 | Solicitud de descarga recibida con éxito | | | 5001 | Tercero no autorizado | Se da cuando se trata de descargar comprobantes que no son propios. | | 5002 | Se han agotado las solicitudes de por vida | Se ha alcanzado el límite de solicitudes, con el mismo criterio. | | 5005 | Ya se tiene una solicitud registrada | Ya existe una solicitud activa con los mismos criterios. | | 404 | Error no controlado | | 📋 Códigos de error de solicitud de Descarga Recibidos | Evento | Mensaje | Observaciones | | --- | --- | --- | | 300 | Usuario No Válido | | | 301 | XML Mal Formado | Este código de error se regresa cuando el request posee información inválida, ejemplo: un RFC de receptor no válido. | | 302 | Sello Mal Formado | | | 303 | Sello no corresponde con RfcReceptor | | | 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. | | 5000 | Solicitud de descarga recibida con éxito | | | 5001 | Tercero no autorizado | Se da cuando se trata de descargar comprobantes que no son propios. | | 5002 | Se han agotado las solicitudes de por vida | Se ha alcanzado el límite de solicitudes, con el mismo criterio. | | 5005 | Ya se tiene una solicitud registrada | Ya existe una solicitud activa con los mismos criterios. | | 404 | Error no controlado | | 📋 Códigos de error de solicitud de Descarga Folio | Evento | Mensaje | Observaciones | | --- | --- | --- | | 300 | Usuario No Válido | | | 301 | XML Mal Formado | Este código de error se regresa cuando el request posee información inválida, ejemplo: un RFC de receptor no válido. | | 302 | Sello Mal Formado | | | 303 | Sello no corresponde con RfcSolicitante | | | 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. | | 5000 | Solicitud de descarga recibida con éxito | | | 5001 | Tercero no autorizado | Se da cuando se trata de descargar comprobantes que no son propios. | | 5002 | Se han agotado las solicitudes de por vida | Se ha alcanzado el límite de solicitudes, con el mismo criterio. | | 5005 | Ya se tiene una solicitud registrada | Ya existe una solicitud activa con los mismos criterios. | | 5012 | No se permite la descarga de xml que se encuentren cancelados | | | 404 | Error no controlado | | ### Siguientes pasos: [Verificación de solicitud](https://developers.sw.com.mx/knowledge-base/descarga-masiva-v1-5-verificacion/) --- # Descarga Masiva v1.5 - Verificación Fuente: https://developers.sw.com.mx/knowledge-base/descarga-masiva-sat-verificacion/ Categoria: Guías de Funcionalidad 🧾 **En este artículo te explicamos cómo utilizar el Servicio de Verificación de Descarga Masiva v1.5**, una herramienta clave para consultar el estatus de las solicitudes de descarga de CFDI realizadas ante el SAT. 🔍 Este servicio te permite conocer si tu solicitud fue **aceptada**, si se encuentra **en proceso**, o si ya está **lista para descarga**. Una vez finalizada exitosamente, podrás obtener los **identificadores de los paquetes** que contienen los CFDI disponibles. **🤝¿Necesitas ayuda?** Este servicio es proporcionado directamente por el SAT. Si tienes dudas o problemas con su funcionamiento, te recomendamos contactar a la Mesa de Ayuda del SAT, donde podrán brindarte asistencia especializada. Consulta sus [canales de atención oficiales](https://chat.sat.gob.mx/) para recibir soporte. 💬 ### ✅ Pasos para consultar el estatus de tus solicitudes 1️⃣ Autenticación 🔐 Obtén un **token de autenticación** utilizando tu certificado FIEL a través del [**servicio correspondiente**](https://developers.sw.com.mx/knowledge-base/descarga-masiva-sat-autentificacion/). Este debe ser enviado en la solicitud como un header, ademas que el valor debe seguir el formato: **“WRAP access\_token=”{Token}””** ![](https://developers.sw.com.mx/wp-content/uploads/2025/05/image.png) 2️⃣ Identificador de la solicitud 🧾 Corresponde al valor del atributo `IdSolicitud`, el cual se obtiene como resultado al consumir el servicio de **[Solicitud de Descarga Masiva](https://developers.sw.com.mx/wp-admin/post.php?post=17343&action=edit)**. Asegúrate de conservar este identificador, ya que es indispensable para consultar el estatus de la solicitud y obtener los paquetes disponibles para descarga. 3️⃣ Generación de XML y envío de la solicitud 📤 Prepara el XML incluyendo tu **RFC solicitante**, el **ID de la solicitud** y la **firma generada con tu FIEL**. Una vez listo, **envía la solicitud al servicio de verificación** incluyendo el **token de autenticación**. Asegúrate de que el XML cumpla con el formato especificado por el SAT para evitar errores. 🧾 **Construcción del XML** Una vez que cuentes con la información requerida, deberás integrarla en el XML correspondiente a esta petición, siguiendo la estructura definida por el SAT. Parámetros que debes incluir en el XML y cómo obtenerlos | Parámetro | Descripción | | --- | --- | | IdSolicitud | Contiene el Identificador de la solicitud que se pretende consultar. | | RfcSolicitante | Contiene el RFC del solicitante que genero la petición de solicitud de descarga masiva. | | X509IssuerName | Obtener los datos del archivo .cer de la FIEL en el campo **“Issuer”** o **“Emisor”**. | | X509SerialNumber | Obtener los datos del archivo .cer de la FIEL en el campo **“Serial number”**o **“Número de serie”** | | X509Certificate | Se debe tomar los bytes del archivo .cer de la FIEL y hacer un encode utilizando base64. | | DigestValue | Contiene el valor hash del documento referenciado. | | SignatureValue | Contiene la firma digital del nodo `SignedInfo`. | Cómo generar el DigestValue 1. **Tomar el nodo XML que será referenciado**, por ejemplo: ``` ``` 2. **Eliminar todos los espacios, saltos de línea y tabulaciones** para dejarlo en una sola línea continua. 3. **Aplicar un algoritmo SHA-1** sobre ese texto (en formato binario). 4 . **Codificar el resultado en base64**. Ese será el valor del `DigestValue`. Cómo generar el SignatureValue 1. **Construir el nodo `` completo**, que incluya el `DigestValue` que generaste antes: ``` leZ4dK/Q/RNbckYkY7WOOnCjK5Q= ``` 2. **Aplicar la canonicalización XML** al nodo ``, es decir, convertirlo en una versión estandarizada (sin espacios, atributos ordenados, etc.). 3. **Firmar el resultado usando la clave privada de la FIEL** del emisor. El algoritmo debe ser SHA-1 con RSA. 4. **Codificar la firma obtenida en base64**. Ese será tu `SignatureValue`. Ejemplo de XML del Servicio de Verificación de Solicitudes ``` POST https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/VerificaSolicitudDescargaService.svc HTTP/1.1 Accept-Encoding: gzip,deflate Content-Type: text/xml;charset=UTF-8 SOAPAction: "http://DescargaMasivaTerceros.sat.gob.mx/IVerificaSolicitudDescargaService/VerificaSolicitudDescarga" Authorization: WRAP access_token="eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3NDcwOTc5MjUsImV4cCI6MTc0NzA5ODUyNSwiaWF0IjoxNzQ3MDk3OTI1LCJpc3MiOiJMb2FkU2VydmljaW9EZWNhcmdhTWFzaXZhVGVyY2Vyb3MiLCJhY3RvcnQiOiIzMzMwMzAzMDMxMzAzMDMwMzAzMDMwMzUzMDMwMzAzMDM0MzUzNjMwIn0._eOSO175aj_Op9S1wFf1iXKOnJkdnMwxnGyQmJyblg&wrap_subject=3330303031303030303030353030303034353630" Content-Length: 4641 Host: cfdidescargamasivasolicitud.clouda.sat.gob.mx leZ4dK/Q/RNbckYkY7WOOnCjK5Q= BuuRjPmgk4Qwl2ER7vjL7+57WiqNZMRD12Hjfh65irEI1Cu8biQSqeHHiaZ7NnmB/LsjyGaHQmZMW50mfnDtNzowAdytB6FS0RNUNLoajAZAdii8bYHYoW0BqrLaXSImwbZYaHgi4TlPch1OpXZHmUOqfS1qnEEsRXVBN2DvEh1RbAYupmQxBMW75eo4HZZm/lRug44mb47Evm9428ejTzTnu6LDPEAZEmHV4jOwRzqmM4GgiW7aEptqHOhdSxV+QzPSQ2/H5s8AZZ41 LCK+3gSdCq3Kmf9S2H5R3BRS6VSam5J9xa0I2CvzJf/REwrxHsc7Xk9uXwXWOofjeTI1Bw== OID.1.2.840.113549.1.9.2=Responsable: ACDMA, OID.2.5.4.45=SAT970701NN3, L=Coyoacán, S=Distrito Federal, C=MX, PostalCode=06300, STREET="Av. Hidalgo 77, Col. Guerrero", E=asisnet@pruebas.sat.gob.mx, OU=Administración de Seguridad de la Información, O=Servicio de Administración Tributaria, CN=A.C. 2 de pruebas(4096) 292233162870206001759766198425879490509036075057 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 ``` 4️⃣ Análisis de la respuesta 🔍 Revisa los datos devueltos por el servicio, como el `EstadoSolicitud` y los `IdsPaquetes`, para determinar si la solicitud ya fue finalizada y si los paquetes están disponibles para descarga. Información que recibirás en la respuesta | Parámetro | Tipo de Dato | Descripción | | --- | --- | --- | | IdsPaquetes | String | Contiene los identificadores de los paquetes que componen la solicitud de descarga masiva. **Solo se devuelve cuando la solicitud posee un estatus de finalizado.** | | EstadoSolicitud | Int | Contiene el número correspondiente al estado de la solicitud de descarga *(Se adjunta tabla de descripciones en este mismo apartado)* | | CodigoEstadoSolicitud | String | Contiene el código de estado de la solicitud de descarga. Para más referencia ver: **[Solicitud de Descarga Masiva](https://developers.sw.com.mx/wp-admin/post.php?post=17343&action=edit)**. | | NumeroCFDIs | Int | Numero de CFDIs que conforman la solicitud de descarga consultada. | | CodEstatus | String | Código de estatus de la petición de verificación. *(Se adjunta tabla de descripciones en este mismo apartado)* | | Mensaje | String | Pequeña descripción del código estatus correspondiente a la petición de verificación. | Ejemplo de respuesta del servicio ``` HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Encoding: gzip Vary: Accept-Encoding Server: Microsoft-IIS/10.0 X-Powered-By: ASP.NET Date: Thu, 10 May 2018 16:38:15 GMT Content-Length: 430 4e80345d-917f-40bb-a98f4a73939343c5_01 4e80345d-917f-40bb-a98f4a73939343c5_02 4e80345d-917f-40bb-a98f4a73939343c5_03 4e80345d-917f-40bb-a98f4a73939343c5_04 4e80345d-917f-40bb-a98f4a73939343c5_05 4e80345d-917f-40bb-a98f4a73939343c5_06 ``` Descripción de los codigos para el atributo EstadoSolicitud | Código | Descripción | | --- | --- | | 1 | ✅ Aceptada | | 2 | ⏳ EnProceso | | 3 | 🏁 Terminada | | 4 | ❌ Error | | 5 | 🚫 Rechazada | | 6 | ⏰ Vencida\* | \*Esta sucede 72 hrs después de que se generó el paquete de descarga. Descripción de los codigos para el atributo CodEstatus | Código | Mensaje | Observaciones | | --- | --- | --- | | **300** | **Usuario No Válido** | Este código indica que el usuario proporcionado no es reconocido o no tiene permisos para realizar la operación solicitada. | | **301** | X**ML Mal Formado** | Este código de error se regresa cuando el request posee información invalida, ejemplo: un RFC de receptor no valido. | | **302** | **Sello Mal Formado** | El sello digital enviado no cumple con el formato esperado, lo que impide la validación del documento. | | **303** | **Sello no corresponde con RfcSolicitante** | El sello digital no coincide con el RFC del solicitante registrado en la petición, generando una inconsistencia en la autenticidad. | | **304** | **Certificado Revocado o Caduco** | El certificado puede ser invalido por múltiples razones como son el tipo, la vigencia, etc. | | **305** | **Certificado Inválido** | El certificado puede ser invalido por múltiples razones como son el tipo, la vigencia, etc. | | **5000** | **Solicitud recibida con éxito** | La petición fue recibida correctamente y está en proceso para su análisis o respuesta. | | **5003** | **Tope máximo de elementos de la consulta** | La solicitud sobrepasa el máximo de resultados por tipo de solicitud (Metadata y CFDI) | | **5004** | **No se encontró la información** | No se encontró la información de la solicitud de descarga que se pretende verificar. | | **5011** | **Límite de descargas por folio por día** | Se ha alcanzado o sobrepasado el límite de descargas diarias por folio. | ### ✅ Listo! Una vez que hayas obtenido la información en `IdsPaquetes` indicando que la solicitud fue completada con éxito, dirígete al paso final para descargar tu información. [Ir a Servicio de Descarga de Paquetes](https://developers.sw.com.mx/knowledge-base/descarga-masiva-v1-5-descarga-de-paquetes/) --- # Error CA305 – "Certificado Inválido" al cancelar un CFDI Fuente: https://developers.sw.com.mx/knowledge-base/error-ca305-certificado-invalido-al-cancelar-un-cfdi/ Categoria: Guías de Funcionalidad ⚠️ **¿A quién afecta?** Emisores que solicitan la cancelación de un CFDI y reciben el error `CACFDI33` con detalle `CA305`, aunque ese mismo CSD timbre sin ningún problema. Afecta principalmente a quienes generaron su CSD entre el 3 y el 24 de mayo de 2023. --- ## ¿Qué significa?: El SAT no valida tu CSD al cancelar Al solicitar la cancelación de un CFDI, el servicio del SAT devuelve el siguiente error: 📚 Respuesta que devuelve el servicio ``` { "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CA305 - Certificado Inválido.", "data": null, "status": "error" } ``` Esto indica que el servicio de cancelación del SAT no pudo validar el **Certificado de Sello Digital** (CSD) enviado, aunque ese mismo certificado sí permita timbrar sin ningún problema. Es decir: no es un error de tu factura ni de tu CSD en términos generales, sino de la validación específica que hace el SAT al momento de cancelar. 💡 **Nota técnica:** el **timbrado** y la **cancelación** son servicios distintos del SAT y aplican validaciones distintas sobre el mismo certificado. Que uno funcione no garantiza que el otro también lo haga. --- ## Causas: Las 2 razones detrás del CA305 El error CA305 responde a dos escenarios distintos. Identificar cuál aplica en tu caso determina si basta con reintentar o si necesitas un certificado nuevo. 📡 ### Intermitencia del SAT Temporal El error aparece una sola vez y el CSD está vigente. Se resuelve reintentando. 📅 ### CSD de mayo 2023 3 al 24 de mayo 2023 Certificados expedidos con un carácter inválido en el campo Emisor. Requiere CSD nuevo. | Característica | Intermitencia del SAT | CSD de mayo 2023 (3 al 24) | | --- | --- | --- | | Cómo identificarla | El error aparece una sola vez; el CSD está vigente y fue generado fuera de mayo 2023. | El error se repite siempre con el mismo CSD; la fecha de expedición cae dentro de ese rango. | | Origen | Falla puntual del servicio de cancelación del SAT. | Carácter especial inválido en el campo Emisor del certificado. | | ¿Afecta el timbrado? | No | No | | Solución | Reintentar la misma cancelación 10–15 minutos después. | Solicitar un nuevo CSD ante el SAT. | --- ## Diagnóstico: 4 pasos que casi siempre resuelven el inconveniente Sabemos que ver un error al cancelar no es nada agradable, pero la buena noticia es que casi siempre se resuelve por tu cuenta. Sigue los pasos en orden: en la mayoría de los casos todo se resuelve en el Paso 3. ✅ Paso 1 — Confirma que tu CSD esté vigente Revisa en tu constancia de Certificado de Sello Digital, o en el portal del SAT, que el certificado no esté vencido ni revocado. - Si ya estás timbrando con normalidad, el certificado casi siempre está vigente - Aun así, es importante descartarlo antes de continuar con los siguientes pasos [🔎 Consultar el estatus de tus certificados en el SAT →](https://portalsat.plataforma.sat.gob.mx/RecuperacionDeCertificados/faces/consultaCertificados.xhtml) 📅 Paso 2 — Revisa la fecha de generación del certificado Abre tu archivo `.cer` y localiza la **fecha de expedición**. - **Entre el 3 y el 24 de mayo de 2023:** es muy probable que sea la causa del error. Durante ese periodo el SAT expidió certificados con un carácter especial inválido en el campo Emisor. Ese carácter no afecta el timbrado, pero impide que el servicio de cancelación reconozca el CSD - **Fuera de ese rango:** continúa con el Paso 3 Si no sabes cómo leer el archivo, en Developers SW tenemos una herramienta que te muestra la fecha de expedición y los datos del certificado sin instalar nada. [🛠️ Abrir el Validador de Certificados →](https://developers.sw.com.mx/knowledge-base/herramienta-validador-certificados/) 🔁 Paso 3 — Reintenta la cancelación En varios casos este error se ha presentado como una intermitencia puntual del servicio del SAT: la misma solicitud, enviada minutos u horas después, se procesa sin problema. - Espera de 10 a 15 minutos y reenvía la misma solicitud de cancelación (mismo UUID y mismo motivo) - Verifica el estatus del UUID ante el SAT; si ya aparece cancelado, no se requiere ninguna acción adicional 🆕 Paso 4 — Solicita un nuevo CSD Aplica si tu certificado corresponde al rango de fechas del Paso 2, o si después de varios reintentos el error persiste siempre con el mismo CSD. - Genera un nuevo Certificado de Sello Digital desde el portal del SAT (SAT ID / Oficina Virtual) - Sustituye el CSD anterior por el nuevo en tu sistema de facturación - Vuelve a intentar la cancelación; el flujo debe completarse con normalidad una vez sustituido el certificado [📄 Trámite de Certificado de Sello Digital en el SAT →](https://www.sat.gob.mx/portal/public/tramites/certificado-de-sello-digital) --- ## Soporte: Qué información enviar si el error persiste ¿Hiciste todo lo anterior y el error sigue ahí? No te preocupes, con gusto lo revisamos. Escríbenos con la siguiente información y lo atenderemos a la brevedad. 🆔 ### UUID 36 caracteres Folio fiscal del CFDI que intentas cancelar. 🏢 ### RFC emisor 12–13 caracteres RFC con el que se emitió el comprobante. 🕒 ### Fecha y hora Zona CDMX Momento exacto del intento de cancelación. 📦 ### Payload enviado JSON Parámetros de la solicitud: RFC, UUID y motivo. 🔗 **Recurso relacionado:** SW publicó un comunicado detallado sobre el incidente de certificados de mayo 2023 y las soluciones recomendadas. [Cambio de certificados raíz y sugerencia de solución para errores causados por CSD y e.firma](https://developers.sw.com.mx/knowledge-base/25-mayo-2023-cambio-de-certificados-raiz-y-sugerencia-de-solucion-para-errores-causados-por-csd-y-e-firma/) — 25 de mayo de 2023 --- --- # Estatus de Obligaciones y Listas LCO Fuente: https://developers.sw.com.mx/knowledge-base/estatus-de-obligaciones-y-listas-lco/ Categoria: Guías de Funcionalidad Para emitir facturas electrónicas (CFDI) de manera exitosa, no basta con que el archivo XML o JSON esté bien estructurado. Es fundamental que el emisor cuente con la Validez de Obligaciones vigente ante las autoridades fiscales. ### **¿Qué es la Validez de Obligaciones?** Es el estatus que determina si un contribuyente está facultado para emitir comprobantes fiscales. El SAT gestiona esta información a través de listas de control que los Proveedores Autorizados de Certificación (PAC) consultan para autorizar el timbrado. El SAT actualiza diariamente estos valores. Si el RFC no tiene un valor valido para el timbrado, no se puede hacer el flujo. ![](https://developers.sw.com.mx/wp-content/uploads/2026/05/image-20250917-172811.png) El fundamento [RMF\_2026-DOF-2812202](https://www.sat.gob.mx/minisitio/NormatividadRMFyRGCE/documentos2026/rmf/rmf/RMF_2026-DOF-28122025.pdf) ### Te recomendamos ver nuestra siguiente capsula tipSW **Video:** [TIPS-DEVS | ¿Qué es la Validez de Obligaciones?](https://www.youtube.com/watch?v=MV3wK3beICA) **💡Nota Importante:**, La información contenida en estas listas es de carácter privado y no puede ser compartida por ningún medio. **La Lista de Contribuyentes Obligados (LCO)** - La LCO es la lista oficial que contiene los RFCs y los Certificados de Sello Digital (CSD) autorizados. Cuando intentas generar una factura, se verifica que tu RFC esté activo y con permisos de emisión en esta lista. **Identificación del Error 402** - El error 402 es uno de los mensajes más frecuentes en el flujo de timbrado. Se presenta con la siguiente descripción: ``` { "message":"402 - RFC del emisor no se encuentra en el régimen de contribuyentes (Lista de validación de régimen) LCO.", "messageDetail":"Detalle Error: El certificado debe contar con validez de obligaciones dentro de la lista LCO.", "data":null, "status":"error" } ``` Dependiendo de la herramienta que utilices, el error se manifiesta de forma similar: **En Odoo / ERP:** Aparecerá un cuadro de diálogo de error al intentar “Publicar” o “Validar” la factura, impidiendo que se genere el folio fiscal. **En Postman:** Verás una respuesta JSON con el código 402 y el mensaje de error en el cuerpo de la respuesta. **Diferencia clave: ¿Estás usando el archivo correcto? (FIEL vs. CSD)** - Uno de los errores más comunes que causan el fallo en la **Lista LCO** es intentar timbrar con la **e.firma (antes FIEL)**. Aunque ambos son certificados emitidos por el SAT, tienen propósitos distintos: **e.firma (FIEL):** Es tu firma digital personal. Sirve para entrar al portal del SAT, firmar declaraciones o realizar trámites legales. No sirve para timbrar facturas con un PAC. **CSD (Certificado de Sello Digital):** Es un certificado específico para la expedición de comprobantes fiscales. Es el único que aparece en la lista LCO para autorizar el timbrado. [Validador de certificados](https://developers.sw.com.mx/knowledge-base/herramienta-validador-certificados/) ### **¿Preguntas frecuentes?** **Acabo de renovar mi sello hoy, ¿puedo facturar de inmediato?** - Normalmente el SAT debe actualizar sus listas y “avisar” a los proveedores de timbrado. Este proceso suele tardar entre 24 y 48 horas. Te recomendamos intentar el timbrado al día siguiente de la generación. Como dato adicional, en nuestra página [Timbrado masivo CFDI](https://developers.sw.com.mx/) contamos con información de cuándo se actualizó la LCO del SAT. Esto te ayudará a validar si tu actualización ya está disponible. **¿Cómo sé si mi certificado sigue vigente?** - Solo necesitas ingresar tu RFC y el código de seguridad para consultar la lista de todos tus certificados ahí podrás verificar fácilmente las fechas de vencimiento de cada certificado [Recuperación de certificados](https://portalsat.plataforma.sat.gob.mx/RecuperacionDeCertificados/faces/consultaCertificados.xhtml). --- Artículos de apoyo: [Timbrado masivo CFDI](https://developers.sw.com.mx) [Obtén CSD](https://developers.sw.com.mx/knowledge-base/donde-encuentro-csd-de-pruebas-vigentes/) [Validador de certificados](https://developers.sw.com.mx/knowledge-base/herramienta-validador-certificados/) [Recuperación de certificados](https://portalsat.plataforma.sat.gob.mx/RecuperacionDeCertificados/faces/consultaCertificados.xhtml) --- # Generar Sello Fuente: https://developers.sw.com.mx/knowledge-base/generar-sello-40/ Categoria: Guías de Funcionalidad ## ¿Qué es el sello? El sello es el resultado de la firma de la cadena original del CFDI en base64, tiene como propósito emitir comprobantes, acreditar al creador, autenticar y dar integridad al mismo. Para poder generar el sello es necesaria la cadena original del comprobante a sellar, así como los certificados de sello digital (\*.cer y \*.key). ?***Nota: No confundir estos certificados con la e.firma*** (FIEL) Requisitos Para poder generar el sello es necesario contar con los siguientes elementos: - Cadena Original del XML a sellar - Certificado de Sello Digital en formato PEM y su correspondiente llave privada también en formato PEM. - Algoritmos de criptografía para la generación de la Digestión o Hash. - Utilerías o funciones de criptografía (por ej. [OpenSSL](https://www.openssl.org/)) ## ¿Qué es la cadena original? Se entiende como cadena original a la secuencia de datos formada con la información contenida dentro del comprobante, está bajo la norma del estándar Anexo 20. Reglas para generar la cadena original - Al inicio y al finalizar la cadena original se encuentra marcado mediante una secuencia de caracteres **||** (doble pleca). - Se debe de expresar únicamente la información del dato sin expresar el atributo al que hace referencia. Es decir, si el valor de un campo es “A” y el nombre del campo es “Concepto”, sólo se expresa |A| y nunca |Concepto A|. - Cada dato individual se debe separar de su dato subsiguiente, en caso de existir, mediante un carácter **|** (pleca sencilla). - Los espacios en blanco que se presenten dentro de la cadena original son tratados de la siguiente manera: - Se deben de reemplazar todos los tabuladores, retornos de carro y saltos de línea por el carácter espacio (ASCII 32). - Acto seguido se elimina cualquier espacio al principio y al final de cada separador **|** (pleca). - Finalmente, toda secuencia de caracteres en blanco se sustituye por un único carácter espacio (ASCII 32). - Los datos opcionales no expresados, no aparecen en la cadena original y no tienen delimitador alguno. - Toda la cadena original se expresa en el formato de codificación UTF-8. - El nodo o nodos adicionales se integra a la cadena original como se indica en la secuencia de formación en su numeral 10, respetando la secuencia de formación y número de orden del Complemento:Concepto. - El nodo o nodos adicionales se integra al final de la cadena original respetando la secuencia de la formación para cada complemento y número de orden del Complemento ## ¿Cómo generar la cadena original para CFDI 4.0? Para poder extraer la cadena original de un XML (CFDI) es necesario hacer uso de un lenguaje de transformación de documentos como lo es el XSLT, en este caso nos permite obtener/trasnsformar la información contenida en el XML a una cadena de texto, con la secuencia de datos y lineamientos que la plantilla de Secuencia de CadenaOriginal (XSLT) del SAT especifica. Secuencia de Cadena Original (XSLT)  Requisitos y resultados Los elementos que debemos de considerar para la extracción de la cadena original son los siguientes: - XML del CFDI a sellar - [Secuencia de Cadena Original (XSLT)](http://omawww.sat.gob.mx/sitio_internet/cfd/3/cadenaoriginal_3_3/cadenaoriginal_3_3.xslt) - [XSLT Test Tool](http://xslttest.appspot.com/)(Herramienta para poder extraer la cadena original) Para poder utilizar la herramienta XSLT, solo es necesario copiar y pegar el contenido del XML, en el recuadro donde lo indique y en el segundo cuadro se estará agregando el contenido del XSLT es decir secuencia de la cadena original. ?**Es importante mencionar que la cadena original se debe de extraer la misma cantidad de veces que dicho comprobante de CFDI sufra algún cambio.** El resultado de la extracción de la cadena original quedaría de la siguiente manera, el cual estaremos guardando en un archivo, en este paso para efecto del ejemplo le pondremos como nombre **“cadena\_original.txt**”: ``` ||4.0|MX|63893|2023-02-22T11:42:38|30001000000400002434|0|XXX|0|P|01|21090|EKU9003173C9|ESCUELA KEMPER URGATE|601|MICV9209288D2|VIANEY OMARA MIRANDA CASTRO|83556|612|CP01|84111506|1|ACT|Pago|0|0|01|2.0|13072.82|1045.83|94794.07|0.00|109086.61|2023-02-20T12:00:00|03|MXN|1|109086.61|63893|BMN930209927|0113054288|ACF0BEF4-4509-46CC-99EB-4C8F71C20B40|ML|265419|MXN|1|2|109086.61|109086.61|0.00|02|161.086413|003|Tasa|0.080000|12.886913|13072.820532|002|Tasa|0.080000|1045.825643|94794.069918|002|Tasa|0.000000|0.000000|13072.820532|002|Tasa|0.080000|1045.825643|94794.069918|002|Tasa|0.000000|0.000000|161.086413|003|Tasa|0.080000|12.886913|| ``` ## ¿Cómo generar el sello para CFDI 4.0? Para la generación del sello digital de los comprobantes CFDI’s tal como lo especifica el Anexo 20 en el inciso I Sección B es necesario utilizar alguno de los siguientes algoritmos: - SHA-2 o SHA-256, para el sellado del Comprobante Fiscal Digital a través de Internet. Generación del sello A continuación, mostraremos una serie de pasos a seguir para poder obtener la digestión, utilizando los comandos de [OpenSSL](https://www.openssl.org/). ?*****Nota: Para este paso es necesario contar previamente con la cadena original ya que esta se requiere para poder generar el sello final, para efectos de este ejemplo asumiremos que guardamos la cadena original en el archivo de texto con nombre “cadena\_original.txt”.***** Paso 1.- Convertir el certificado en formato PEM. ``` openssl x509 -in "CSD_Escuela_Kemper_Urgate_EKU9003173C9_20190617_131753s.cer" -inform DER -out "EKU9003173C9.cer.pem" -outform PEM ``` Paso 2.- Convertir la llave privada en formato PEM. ``` openssl pkcs8 -inform DER -in "CSD_Escuela_Kemper_Urgate_EKU9003173C9_20190617_131753.key" -passin pass:12345678a -out "EKU9003173C9.key.pem ``` Paso 3.- Generar la Digestión haciendo uso de la cadena original previamente guardada. ``` openssl dgst -sha256 -sign "EKU9003173C9.key.pem" -out "digest.txt" "cadena_original.txt" ``` Paso 4.- Generamos el sello digital. ``` openssl enc -in "digest.txt" -out "sello.txt" -base64 -A -K "EKU9003173C9.key.pem" ``` Ejemplo de un sello generado. ``` Gk78oNHtr+vQ8/VB1wqU8EYkch5VPqv5AVZ2Rgx4Zmff1sQLKye/qRVzaxxZlKyFjTZca/TgZfpUBfRAZ959enRm5d/nnfHupiHdVNBv8vF1UfXRZzaxo7YdtVAYByqErKeefFBCbAO716zgbRZSDpyWRaiQgV6/hwSADizNpA8cUVBV3gXyRQ9fwMJy2FZzbYVsrgm7X38ogtGlfPnVW1qYS7Wbpm4Stz1YUZ4kpZu/TS/kMCmgg4UTAmyzs4bfRnZrDeVZmKVClEtWgwmDnPGDyoDV+sqCTrUS6hmOKa5mmvGBfmFdK6zzPRaKACzRplXONuQGMfXz1egNUcTjJQ== ``` --- ? Artículos de apoyo: [Trabajar con OpenSSL](https://developers.sw.com.mx/knowledge-base/trabajar-con-openssl/) [Obtén CSD](https://developers.sw.com.mx/article-categories/csd/) [¿Cómo crear un PFX?](https://developers.sw.com.mx/knowledge-base/como-crear-un-pfx/) --- # Generar Token Infinito Fuente: https://developers.sw.com.mx/knowledge-base/generar-un-token-infinito/ Categoria: Guías de Funcionalidad El token infinito de tipo JWT, a diferencia de un token obtenido por el servicio de [autenticación](https://developers.sw.com.mx/knowledge-base/autenticar-rapido/), no cuenta con vigencia, y permanecerá válido hasta que sea revocado y se genere un nuevo token. Para poder realizar alguno de estos procesos, debes acceder al portal **ADT**(Administrador de Timbres) con tus credenciales. **💡Recuerda..** El token es tu llave de acceso para consumir el servicio, mantén una política de seguridad en torno al token. #### URL´s 🛠️ Pruebas: `https://portal.test.sw.com.mx` 📄 🚀 Productivo: `https://portal.sw.com.mx` 📄 --- #### Obtener Token Infinito 1.- Configuración En el panel lateral izquierdo del ADT, selecciona la opción “***Configuración***“. ![](https://developers.sw.com.mx/wp-content/uploads/2017/05/adt_menu.jpg) 2.- Credenciales de Acceso Selecciona la opción ***“Credenciales de Acceso”***, aquí podrás ***“Mostrar”*** el token infinito o copiarlo dando clic al botón ***“Copiar”***. ![](https://developers.sw.com.mx/wp-content/uploads/2017/05/portal_senalando-1.png) **¡Listo!** Podrás utilizar este token para autenticarte y consumir nuestras [APIs](https://developers.sw.com.mx/article-categories/apis/) y servicios de [timbrado](https://developers.sw.com.mx/article-categories/timbrado/). --- #### Revocar y Regenerar Token Infinito El token infinito también puede ser revocado, en dado caso así sea requerido, porque se debe cambiar por temas de actualización de tu sistema, por políticas de seguridad o por un cambio en la lógica de tu negocio, siguiendo estos sencillos pasos: 1.- Configuración En el panel lateral izquierdo del ADT, selecciona la opción “***Configuración***“. ![](https://developers.sw.com.mx/wp-content/uploads/2017/05/adt_menu.jpg) 2.- Crecenciales de Acceso Selecciona la opción ***“Credenciales de Acceso”*** y da clic sobre ***“Regenerar”***. ![](https://developers.sw.com.mx/wp-content/uploads/2017/05/portal_senalando-1.png) 3.- Regenerar Al dar clic sobre esta opción aparece el siguiente mensaje, debes confirmar para realizar la revocación y regeneración del token. ![](https://developers.sw.com.mx/wp-content/uploads/2017/05/adt_revocar.jpg) **Advertencia: Este proceso no es reversible, no lo hagas a menos sea estrictamente requerido.** Al concluir el proceso aparecerá el siguiente mensaje de confirmación. ![](https://developers.sw.com.mx/wp-content/uploads/2017/05/adt_revocar_success.jpg) **¡Listo!** Se habrá revocado el token y regenerado uno nuevo, esto revocará al anterior. Recuerda que debes cambiar el token anterior por el nuevo para poder seguir consumir nuestras [APIs](https://developers.sw.com.mx/article-categories/apis/) y servicios de [timbrado](https://developers.sw.com.mx/article-categories/timbrado/). --- # Hidrocarburos y Petrolíferos Rev. B | Comercio Exterior Rev. A Fuente: https://developers.sw.com.mx/knowledge-base/hidro-y-petro-rev-b-cce-rev-a/ Categoria: Guías de Funcionalidad Vigente a partir del **25 de mayo de 2026** ⚠️ **¿A quién afecta?** Emisores que usen **Hidrocarburos y Petrolíferos** o **Comercio Exterior**. **Único cambio:** La lista de complementos con los que pueden coexistir en un CFDI. ## Hidrocarburos y Petrolíferos: Complemento Concepto — Rev. B La Revisión B extiende la lista de complementos con los que el complemento concepto **Hidrocarburos y Petrolíferos** puede coexistir dentro de un CFDI, para esta revisión, se incorporan cuatro nuevos complementos. | Complemento compatible | Rev. A | Rev. B | | --- | --- | --- | | Timbre Fiscal Digital | ✓ Sí | ✓ Sí | | Consumo de Combustibles | ✓ Sí | ✓ Sí | | Estado de Cuenta de Combustibles para Monederos Electrónicos Autorizados por el SAT | ✓ Sí | ✓ Sí | | Carta Porte | ✓ Sí | ✓ Sí | | Comercio Exterior | — No | ✚ Nuevo | | INE | — No | ✚ Nuevo | | Impuestos Locales | — No | ✚ Nuevo | | Leyendas Fiscales | — No | ✚ Nuevo | 💡 **Complementos que se incorporan a Hidrocarburos y Petrolíferos Revisión B:** Comercio Exterior INE Impuestos Locales Leyendas Fiscales 📄 Estándar técnico — Validación Rev. A ![Estándar técnico Rev. A](https://developers.sw.com.mx/wp-content/uploads/2026/05/HydroYPetro_Old_Estandar.png) Rev. B ![Estándar técnico Rev. B](https://developers.sw.com.mx/wp-content/uploads/2026/05/HydroYPetro_New_Estandar.png) 📋 Matriz de errores — Actualización CCHYP106 Rev. A ![Matriz de errores Rev. A](https://developers.sw.com.mx/wp-content/uploads/2026/05/HydroYPetro_Old_Matriz.png) Rev. B ![Matriz de errores Rev. B](https://developers.sw.com.mx/wp-content/uploads/2026/05/HydroYPetro_New_Matriz.png) Documentos Relacionados - Documentación SAT: [Hidrocarburos y Petrolíferos](https://www.sat.gob.mx/portal/public/tramites/complementos-de-factura) *Complementos concepto → Hidrocarburos y petrolíferos* - Ejemplos: [Hidrocarburos y Petrolíferos](https://developers.sw.com.mx/knowledge-base/hidrocarburos-y-petroliferos-1-0-2/) --- ## Comercio Exterior: v2.0 — Revisión A La Revisión A del complemento **Comercio Exterior 2.0** amplía la lista de complementos con los que puede coexistir el nodo `cce20:ComercioExterior`, incorporando de forma explícita aquellos **Complementos Concepto** que definan su relación con este complemento. | Complemento compatible | Antes | Rev. A | | --- | --- | --- | | Timbre Fiscal Digital | ✓ Sí | ✓ Sí | | Otros Derechos e Impuestos | ✓ Sí | ✓ Sí | | Leyendas Fiscales | ✓ Sí | ✓ Sí | | CFDI Registro Fiscal | ✓ Sí | ✓ Sí | | Carta Porte | ✓ Sí | ✓ Sí | | Complementos Concepto con relación definida (\*) | — No | ✚ Nuevo | 💡 **(\*) ¿Cuáles Complementos Concepto aplican?** Únicamente aquellos cuyo estándar técnico declare de forma explícita la coexistencia con Comercio Exterior en su sección de validaciones. Si un Complemento Concepto no lo menciona, **no puede coexistir**. 📄 Estándar técnico — Validación Antes ![Estándar técnico Antes](https://developers.sw.com.mx/wp-content/uploads/2026/05/CCE_Old_Estandar.png) Rev. A ![Estándar técnico Rev. A](https://developers.sw.com.mx/wp-content/uploads/2026/05/CCE_New_Estandar.png) 📋 Matriz de errores — Código CCE115 Antes ![Matriz de errores Antes](https://developers.sw.com.mx/wp-content/uploads/2026/05/CCE_Old_Matriz.png) Rev. A ![Matriz de errores Rev. A](https://developers.sw.com.mx/wp-content/uploads/2026/05/CCE_New_Matriz.png) Documentos Relacionados - Documentación SAT: [Comercio Exterior](https://www.sat.gob.mx/portal/public/tramites/complemento-para-comercio-exterior) *Complementos → Complemento para Comercio Exterior* - Ejemplos: [Comercio Exterior 2.0](https://developers.sw.com.mx/knowledge-base/comercio-exterior-2-0/) --- Te invitamos a visitar el inicio de nuestro sitio developers donde podrás consultar los servicios adicionales y las demás API’s que pueden ayudarte a mejorar tus procesos. - [Servicios](https://developers.sw.com.mx/article-categories/servicios/) - [SW API’s](https://developers.sw.com.mx/article-categories/apis/) --- # HTTPS y TLS 1.2 Fuente: https://developers.sw.com.mx/knowledge-base/https-y-tls-1-2/ Categoria: Guías de Funcionalidad **HTTPS (Hypertext Transfer Protocol Secure)** es una versión segura de HTTP, el protocolo mediante el cual se transfieren datos entre tu aplicativo y el servidor web, HTTPS utiliza un cifrado **TLS (Transport Layer Security)** para proteger la confidencialidad y la integridad de los datos transmitidos. **TLS 1.2** es una versión del protocolo de seguridad TLS que proporciona un alto nivel de cifrado y autenticación para proteger las comunicaciones en línea, a partir de TLS 1.2, se introducen mejoras significativas en la seguridad y eficiencia del cifrado en comparación con versiones anteriores. ¿Por qué recomendamos actualizar? La seguridad de tu información es nuestra prioridad, realizar conexiones no seguras a través de HTTP o versiones obsoletas de TLS (como TLS 1.0 o 1.1) expone la comunicación entre tu sistema y nuestras APIs a posibles ataques, como la interceptación de datos sensibles, para prevenir estos riesgos, sugerimos implementar las siguientes recomendaciones: 1. **Uso de HTTPS:** Todas las conexiones a nuestras API REST deberán realizarse a través de HTTPS, garantizando que los datos estén cifrados y protegidos contra accesos no autorizados. 2. **Utilizar TLS 1.2 o superior:** Las conexiones que utilicen versiones de TLS anteriores a la 1.2 son menos seguras y susceptibles a ataques, realizar este ajuste asegura que se utilicen los más altos estándares de cifrado y seguridad. ¿Cómo saber en qué versión estoy? A continuación, te presentamos diferentes escenarios generales y cómo puedes realizar esta verificación: **Aplicaciones en navegadores web:** - **Paso 1:** Abre tu navegador y accede a la consola de desarrollador (usualmente presionando F12). - **Paso 2:** Ve a la pestaña “Network” o “Red”. - **Paso 3:** Realiza una solicitud a nuestra API, en la lista de solicitudes, selecciona la que corresponda y verifica que la URL comience con `https://` y que el protocolo de seguridad indique `TLS 1.2` o superior. - **Paso 4:** Asegúrate de colocarte sobre la petición que ejecutó la conexión para poder visualizar la versión de TLS utilizada. Posteriormente, dirígete a la sección “Privacy and Security” para confirmar los detalles del protocolo. **Nota:** La ubicación o el nombre de las pestañas puede variar según el navegador que utilices. **Aplicaciones en servidores (puede variar):** - **Windows Server:** - Abre la “Consola de Administración de IIS” y selecciona tu sitio web. - Ve a “Configuración SSL” y verifica que esté habilitada la opción para requerir SSL, luego, asegúrate de que el protocolo de seguridad configurado sea TLS 1.2 o superior. - También puedes revisar el registro de eventos para comprobar si el servidor está rechazando conexiones que no usen TLS 1.2. - **Linux/Apache/Nginx:** - Revisa la configuración de tu servidor web (en archivos como `ssl.conf` o `nginx.conf`) y asegúrate de que solo se permitan conexiones mediante `TLSv1.2` o superior. - Puedes utilizar comandos como `openssl s_client -connect yourdomain.com:443 -tls1_2` para probar si la conexión se establece correctamente utilizando TLS 1.2. **Entornos de desarrollo personalizados:** - Verifica la configuración de la librería de HTTP client que tu software utiliza, asegúrate de que esté configurada para usar TLS 1.2 o superior. - Si utilizas .NET, verifica que la propiedad `ServicePointManager.SecurityProtocol` esté configurada para `SecurityProtocolType.Tls12`. - En Java, asegúrate de que la versión de `Java Runtime Environment (JRE)` esté actualizada y que el cliente HTTP esté configurado para `TLSv1.2` o superior. - Consulta la documentación de la herramienta o el framework que utilizas para asegurarte de que soporta TLS 1.2 y que esté correctamente configurado. ¿Cómo actualizarlos? #### **Actualización a HTTPS** 1. **Modificar la URL de conexión:** Si actualmente utilizas `http://`, simplemente cámbialo a `https://` en la configuración de tu aplicación o sistema. 2. **Certificado SSL:** Asegúrate de que tu servidor tenga un certificado SSL válido para establecer conexiones HTTPS. #### **Actualización a TLS 1.2 o superior** 1. **Actualizar la configuración del servidor:** Asegúrate de que tu servidor esté configurado para usar TLS 1.2 o superior, esto puede requerir actualizar el software del servidor o la configuración de la aplicación. 2. **Verificar compatibilidad:** Algunos entornos más antiguos pueden no ser compatibles con TLS 1.2, si este es tu caso, considere actualizar su infraestructura o utilizar un middleware que soporte TLS 1.2. Ejemplos para identificar la versión y actualizar TLS en tu código C# / .NET ``` // VERIFICAR versión TLS actual Console.WriteLine("TLS actual: " + ServicePointManager.SecurityProtocol); // FORZAR TLS 1.2 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; // En App.config agregar: // // // ``` Java ``` // VERIFICAR versión TLS System.out.println("TLS configurado: " + System.getProperty("https.protocols")); // FORZAR TLS 1.2 System.setProperty("https.protocols", "TLSv1.2"); System.setProperty("jdk.tls.client.protocols", "TLSv1.2"); ``` PHP ``` // VERIFICAR versión OpenSSL echo "OpenSSL: " . OPENSSL_VERSION_TEXT . "\n"; // FORZAR TLS 1.2 $ch = curl_init(); curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2); ``` Python ``` import ssl import requests # VERIFICAR print("OpenSSL version:", ssl.OPENSSL_VERSION) # FORZAR TLS 1.2 requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS = 'ALL:@SECLEVEL=1' ``` Javascript ``` // VERIFICAR versión Node.js console.log("Node.js version:", process.version); // FORZAR TLS 1.2 const https = require('https'); const agent = new https.Agent({ secureProtocol: 'TLSv1_2_method', minVersion: 'TLSv1.2' }); // Para axios const axios = require('axios'); axios.defaults.httpsAgent = agent; ``` Ruby ``` # VERIFICAR versión OpenSSL puts "OpenSSL: #{OpenSSL::OPENSSL_VERSION}" # FORZAR TLS 1.2 require 'net/http' http = Net::HTTP.new('services.test.sw.com.mx', 443) http.use_ssl = true http.ssl_version = :TLSv1_2 ``` Delphi ``` // FORZAR TLS 1.2 en Indy HTTP IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1_2; // O en REST Client RESTClient1.SecureProtocols := [TSSLProtocol.TLSv1_2]; ``` Visual Basic .NET ``` ' VERIFICAR versión TLS Console.WriteLine("TLS actual: " + ServicePointManager.SecurityProtocol.ToString()) ' FORZAR TLS 1.2 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 ``` Mi integración ya configura TLS 1.2 por defecto ¿Debo realizar algo adicional? La mejor práctica para mitigar el riesgo futuro es **forzar el uso de TLS 1.2 o superior** que garantiza la continuidad de su integración a largo plazo, independientemente de cómo evolucionen las dependencias y configuraciones externas. Esto asegura que: - La aplicación **continuará funcionando** aunque una futura actualización de una dependencia decida deshabilitar por defecto TLS 1.2 o inferior (como ya ha sucedido con TLS 1.0/1.1 en muchos entornos). - **Protección contra Downgrade de Protocolo:** Al forzarlo, se asegura de que su aplicación **nunca** utilice una versión más débil de TLS (como TLS 1.0 o 1.1) si el servidor remoto lo permite, o si una dependencia se actualiza y accidentalmente restablece la negociación a un protocolo menos seguro por defecto. Si utilizas alguna de nuestras [librerías](https://developers.sw.com.mx/knowledge-base/librerias/) asegúrate de tener la versión actualizada, todas nuestras librerías cuentan con la configuración para TLS 1.2 o superior. En SW nos importa tu seguridad, por lo que, sugerimos mantener actualizados los sistemas operativos, servidores y bibliotecas para garantizar la compatibilidad con los últimos estándares de seguridad. También recomendamos realizar pruebas de los cambios en un entorno de testing para asegurar que todo funciones correctamente, y si tu sistema depéndete de múltiples conexiones API, o una infraestructura modular, considera migrar gradualmente cada una para minimizar incidentes. --- # Nuevo Complemento Concepto: Hidrocarburos y petrolíferos v1.0 Fuente: https://developers.sw.com.mx/knowledge-base/nuevo-complemento-concepto-hidrocarburos-y-petroliferos-v1-0/ Categoria: Guías de Funcionalidad Nuevo complemento obligatorio del SAT: Facturación de Hidrocarburos y Petrolíferos Complemento Concepto v1.0 — Vigente a partir del 📅 24 de abril de 2026 ⚠️ **¿A quién afecta?** Gasolineras, distribuidores de combustibles, comercializadores de petrolíferos y empresas con permisos de la Comisión Nacional de Energía (CNE) que emitan facturas por la venta de hidrocarburos o petrolíferos. 📚 Fuente oficial del SAT Consulta el portal oficial del SAT para descargar el XSD, el estándar técnico y los catálogos actualizados del complemento. 📸 Ver capturas de referencia del sitio SAT ![Captura del sitio SAT — sección de complementos](https://developers.sw.com.mx/wp-content/uploads/2026/03/img_hidroypetro-1.png) ![Captura del sitio SAT — Información](https://developers.sw.com.mx/wp-content/uploads/2026/03/img_hidroypetro.png) --- ## ¿Qué es?: El nuevo complemento HidroYPetro El SAT publicó el **Complemento Concepto para Facturación de Hidrocarburos y Petrolíferos v1.0**, un nuevo nodo obligatorio que debe incluirse en cada concepto de las facturas relacionadas con la venta de combustibles. A diferencia de los complementos convencionales, este opera a nivel `ComplementoConcepto`, no a nivel Comprobante. 💡 **Nota técnica:** El elemento se llama `HidroYPetro`, se ubica dentro de `Comprobante/Conceptos/Concepto/ComplementoConcepto` y utiliza el namespace `http://www.sat.gob.mx/hidrocarburospetroliferos`. --- ## Estructura: Los 5 atributos requeridos El elemento `HidroYPetro` requiere exactamente **5 atributos obligatorios** en cada concepto de la factura que registre la venta de un hidrocarburo o petrolífero. 🔖 ### Version Valor fijo Siempre **“1.0”**. No se acepta otro valor. 🪪 ### TipoPermiso PER01–PER11 Tipo de permiso CNE según la actividad. Ver catálogo → 🔢 ### NumeroPermiso 15–35 caracteres Número de permiso CNE vigente en lista **L\_CNE**. ⚗️ ### ClaveHYP 3 claves SAT Clave del producto del catálogo SAT. Ver catálogo → 🧪 ### SubProductoHYP SP16–SP48 9 subproductos entre gasolinas y dieseles. Ver catálogo → 📄 Ver ejemplo: antes y después en el XML del CFDI ❌ Sin complemento ``` ``` ✅ Con complemento HidroYPetro ``` ``` 💡 Son **5 atributos obligatorios** por concepto: `Version`, `TipoPermiso`, `NumeroPermiso`, `ClaveHYP` y `SubProductoHYP`. El resto de la estructura del CFDI 4.0 no cambia. --- ## Comparativa: HidroYPetro vs otros complementos de combustibles Existen 3 complementos relacionados con combustibles en el CFDI 4.0. Pueden coexistir en una misma factura y cada uno registra información diferente. | Característica | HidroYPetro (NUEVO) | Consumo de Combustibles | Estado de Cuenta Combustibles | | --- | --- | --- | --- | | Nivel en CFDI | `ComplementoConcepto` | `Complemento` | `Complemento` | | Obligatoriedad | Obligatorio desde 24/04/2026 | Opcional | Opcional | | ¿Qué registra? | Permiso CNE y tipo de producto | Entrega física (estación, medidores, volumen) | Transacciones con monedero electrónico autorizado | | Namespace | `hidrocarburospetroliferos` | `consumodecombustibles` | `ecc12` | | Compatible con | TFD, Consumo de Combustibles, Estado de Cuenta | TFD, HidroYPetro | TFD, HidroYPetro | 📋 Ver los 4 escenarios de uso posibles Escenario 1 — Venta directa en gasolinera - ✅ **HidroYPetro** (obligatorio) — registra el permiso PER07 y la clave del producto - ⬜ Consumo de Combustibles — no aplica si no se documentan medidores volumétricos - ⬜ Estado de Cuenta Combustibles — no aplica si no interviene un monedero electrónico Escenario 2 — Distribución con entrega física documentada - ✅ **HidroYPetro** (obligatorio) — registra el permiso de distribución (PER06) - ✅ **Consumo de Combustibles** (opcional) — documenta el despacho con ID de estación y medidores - ⬜ Estado de Cuenta Combustibles — no aplica en este escenario Escenario 3 — Venta con monedero electrónico - ✅ **HidroYPetro** (obligatorio) - ⬜ Consumo de Combustibles — no aplica necesariamente - ✅ **Estado de Cuenta Combustibles** (opcional) — documenta las transacciones del monedero autorizado Escenario 4 — Los 3 complementos coexistiendo - ✅ **HidroYPetro** (obligatorio) - ✅ **Consumo de Combustibles** (opcional) - ✅ **Estado de Cuenta Combustibles** (opcional) Los 3 complementos pueden coexistir en una misma factura sin conflicto. --- ## Validaciones: Las 11 reglas que aplica el SAT El SAT aplica 11 reglas automáticas al recibir el CFDI. Tu sistema debe considerar estas reglas antes de enviar al PAC. 🔍 ### Validaciones SAT CCHYP101–CCHYP999 11 reglas que aplica el SAT al timbrar el CFDI. Ver las 11 validaciones → 🔗 **Cadena original:** `Version|TipoPermiso|NumeroPermiso|ClaveHYP|SubProductoHYP` Valores separados por pipe (`|`), codificada en UTF-8. Se integra al proceso de sellado del CFDI 4.0. --- ## Implementación: ¿Qué debes actualizar en tu sistema? 🛠️ Paso 1 — Preparación del sistema **1.1 — Actualizar el XSD** Descarga e integra el esquema `hidrocarburospetroliferos.xsd` en flujo de generación CFDI 4.0. - **Namespace:** `http://www.sat.gob.mx/hidrocarburospetroliferos` - El XSD define el elemento `HidroYPetro` con sus 5 atributos obligatorios --- **1.2 — Numero de permiso contra L\_CNE** - El `NumeroPermiso` debe existir y estar vigente en la listas **L\_CNE** - El RFC del emisor debe corresponder al permiso registrado en L\_CNE - Esta lista es generada y administrada por el SAT, siendo de carácter privado ⚙️ Paso 2 — Integración en la generación del CFDI **2.1 — Implementar prevalidaciones** (CCHYP101–CCHYP110) - Solo comprobantes tipo I (Ingreso) o E (Egreso) - `ClaveProdServ` del Concepto = `ClaveHYP` - `ClaveUnidad` = `LTR` - Sin nodo `ACuentaTerceros` en el Concepto - Un solo nodo `HidroYPetro` por Concepto --- **2.2 — Generar el nodo XML** ``` ``` 📌 Cadena original: `Version|TipoPermiso|NumeroPermiso|ClaveHYP|SubProductoHYP` — UTF-8 --- --- # Objeto de Impuesto 05 PODEBI Fuente: https://developers.sw.com.mx/knowledge-base/objeto-de-impuesto-05-podebi/ Categoria: Guías de Funcionalidad --- Recientemente el SAT realizó una actualización en el catálogo **c\_ObjetoImp** agregando como nueva clave **05 – Sí objeto de impuesto, IVA crédito PODEBI**, es indispensable conozcas algunos datos importantes, para que puedas utilizarla correctamente, por lo cual te compartimos la siguiente información: ![](https://developers.sw.com.mx/wp-content/uploads/2023/12/Infografia-ObjetoImp05-PODEBI-1024x512.png) ¿Qué es o a que se refiere el termino PODEBI? PODEBI = Polos de Desarrollo para el Bienestar del Istmo de Tehuantepec Es un decreto que establece estímulos en el Impuesto Sobre la Renta (ISR) y el Impuesto al Valor Agregado (IVA) a los contribuyentes que lleven a cabo actividades económicas productivas dentro de los Polos de Desarrollo para el Bienestar del Istmo de Tehuantepec (PODEBI). ¿Para que me sirve la clave 05 del catálogo ObjetoImp? Mediante esta clave los contribuyentes que tengan constancia de cumplimiento PODEBI podrán reflejar el uso al estímulo correspondiente. ![](https://developers.sw.com.mx/wp-content/uploads/2023/12/c_ObjetoImp.png) ¿Que pasa si no tengo la constancia PODEBI, puedo hacer uso del ObjetoImp 05? No sería correcto el uso para efectos fiscales, sin embargo cabe señalar que actualmente no existe a nivel documentación técnica SAT alguna validación que impida el timbrado o responda con algún mensaje de error. ¿Si quiero ser parte de este estimulo PODEBI, debo tramitar con el SAT algún permiso o similar para la emisión de mis documentos fiscales? Si, se debe de tramitar una Constancia de cumplimiento, misma que se hace referencia en el Artículo Segundo del Decreto ¿Cuáles son las zonas que se incluyen en este decreto PODEBI? Coatzacoalcos I Coatzacoalcos II Texistepec San Juan Evangelista Salina Cruz ¿Cuándo se realizó la publicación oficial de esta clave en los catálogos SAT? En la pagina oficial SAT se actualizó el día 12 – Diciembre – 2023, a continuación te dejamos el link del comunicado en donde te compartimos dicha información: [Actualización de Catálogos, Archivo XSD y Ajuste a Matriz de Errores.](https://developers.sw.com.mx/knowledge-base/12-diciembre-2023-actualizacion-de-catalogos-archivo-xsd-y-ajuste-a-matriz-de-errores/) **Para más información te sugerimos acercarte con tu asesor fiscal, si deseas consultar más detalles te compartimos la publicación del Diario Oficial de la Federación;** [**DOF: 05/06/2023**](https://www.dof.gob.mx/nota_detalle.php?codigo=5691049&fecha=05/06/2023#gsc.tab=0) --- # POSTMAN Guía de Instalación y funcionamiento. Fuente: https://developers.sw.com.mx/knowledge-base/guia-se-instalacion-y-funcionamiento-de-postman/ Categoria: Guías de Funcionalidad ### ¿Qué es Postman? Es uno de los programas más populares para trabajar en el desarrollo de APIs. Es gratuito y lo puedes usar sin límites, aunque también tiene su versión premium con características extra. Básicamente permite configurar rutas de endpoints del API y ejecutarlas, para ejercitar el backend de las aplicaciones. **Video:** [SW® | Tutorial de Instalación y funcionamiento POSTMAN.](https://www.youtube.com/watch?v=rd4BtgAEyvI) ### Instalación de POSTMAN Desde cualquier navegador podemos buscar POSTMAN y una vez que nos mande los resultados entrar a Download Postman o bien puedes ingresar directamente desde la siguiente liga https://www.postman.com/downloads/ ![](https://developers.sw.com.mx/wp-content/uploads/2023/04/image-1024x729.png) Una vez en el sitio de descargas de POSTMAN, vamos a dar clic en el botón naranja en este ejemplo es Windows 64-bit pero podría ser de acuerdo a tu sistema operativo. ![](https://developers.sw.com.mx/wp-content/uploads/2023/04/image-2-1024x507.png) Ya una vez descargado el programa procederemos a abrir el archivo .exe ![](https://developers.sw.com.mx/wp-content/uploads/2023/04/image-3.png) Una vez que se abra el programa nos saldrá una pequeña ventana con la leyenda “Installing Postman” ![Esta imagen tiene un atributo ALT vacío; su nombre de archivo es main4.png](https://developers.sw.com.mx/wp-content/uploads/2019/12/main4.png) Al finalizar ya nos saldrá la pantalla principal del programa. Ya en este punto la instalación habrá concluido. ![](https://developers.sw.com.mx/wp-content/uploads/2023/04/image-4-1024x377.png) ### Funcionamiento de POSTMAN Como anteriormente mencionamos básicamente nos permite realizar peticiones de una manera simple para testear **APIs** de tipo **REST** o **SOAP**propias o de terceros. Postman cuenta con distintos métodos para las diferentes peticiones. - **GET**: Obtener información - **POST**: Agregar información - **PUT**: Reemplazar la información - **PATCH**: Actualizar alguna información - **DELETE**: Borrar información ### Probando una API de SW Para este ejemplo utilizaremos la [API de Autenticación](https://developers.sw.com.mx/knowledge-base/autenticar-rapido/), que tiene como objetivo mandar nuestro usuario y contraseña de esa manera obtener de vuelta el token de autenticación para nuestros servicios. Podemos observar rapidamente la configuración para esta API, utilizaremos la URL de pruebas, ademas del endpoint que sera enviado mediante POST y dos Headers usuario y contraseña. ![](https://developers.sw.com.mx/wp-content/uploads/2023/04/image-5.png) Para configurarlo en POSTMAN es de la siguiente manera: 1.- Dar clic en New ![](https://developers.sw.com.mx/wp-content/uploads/2023/04/image-6.png) 2.- Seleccionar HTTP Request ![](https://developers.sw.com.mx/wp-content/uploads/2023/04/image-7.png) 3.- Configuramos de acuerdo a los datos de la API de la siguiente forma: ![](https://developers.sw.com.mx/wp-content/uploads/2023/04/image-8.png) Podemos observar en la imagen anterior la URL de pruebas , el endpoint del API asi como los Headers “user” y “password”, del lado derecho los valores respectivamente. Una vez habiendo configurado lo necesario podemos dar clic en enviar. ![](https://developers.sw.com.mx/wp-content/uploads/2023/04/image-9.png) El servicio nos reponderá, en este caso con un Status “200 OK” es decir exitoso y el objetivo de la peticion fue cumplido ya que la respuesta nos regresa el token de autenticación. ![](https://developers.sw.com.mx/wp-content/uploads/2023/04/image-11-1024x187.png) ### Exportar e Importar colección Para este ejemplo también utilizaremos la API de autenticación, dentro del articulo podemos observer el siguiente boton en la parte inferior del mismo. [Probar en Postman](https://www.postman.com/red-shadow-569412/workspace/sw-api/request/15933150-b1e14c31-99e2-4db6-8e74-a7efe185eaad) Al dar clic nos mandara a la coleccion de POSTMAN de SW ![](https://developers.sw.com.mx/wp-content/uploads/2023/04/image-13.png) Podemos observar que nos manda en este caso directamente a la de Autenticar, para exportar e importar haremos lo siguiente: ![](https://developers.sw.com.mx/wp-content/uploads/2023/04/image-14.png) Vamos a dar clic en los tres puntos al lado de la coleccion Authenticate y nos saldra la opcion Export, ahi daremos nuevamente clic, nos saldra la ventana siguiente donde solo daremos clic nuevamente en export. ![](https://developers.sw.com.mx/wp-content/uploads/2023/04/image-15.png) Ahora vamos a importar la coleccion en nuestro POSTMAN, para eso vamos a dar clic en el boton Import y seleccionar el archivo que acabamos de descargar. ![](https://developers.sw.com.mx/wp-content/uploads/2023/04/image-17.png) ![](https://developers.sw.com.mx/wp-content/uploads/2023/04/image-16.png) Una vez ahi , vamos a dar clic en Upload Files y seleccionamos el archivo que descargamos que tiene un formato .json para finalizar le damos clic en el boton naranja Import ![](https://developers.sw.com.mx/wp-content/uploads/2023/04/image-18.png) Ya podemos visualizar la coleccion Autenticar en nuestro POSTMAN ![](https://developers.sw.com.mx/wp-content/uploads/2023/04/image-19.png) Te dejamos la URL de POSTMAN para que puedas revisar mas a detalle sobre esta excelente herramienta. https://www.postman.com --- # Preguntas Frecuentes: Nueva Versión 3.1 Carta Porte. Fuente: https://developers.sw.com.mx/knowledge-base/preguntas-frecuentes-nueva-version-3-1-carta-porte/ Categoria: Guías de Funcionalidad A continuación te compartimos algunos casos y dudas que hemos recibido en soporte, esperando sean de apoyo y utilidad para TI. ¿La versión 3.0 y la versión 3.1 del complemento carta porte tendrán periodo de convivencia? No existe periodo de convivencia, **la versión 3.1 es obligatoria a partir del 17 de julio del 2024.** ¿En SW sapien ya tienen disponible el ambiente de pruebas para la nueva versión 3.1 del complemento carta porte? Si, ya contamos con un ambiente de pruebas disponible desde el pasado 18 de Junio 2024. ¿La versión 3.0 del complemento carta porte dejará de funcionar y/o ser valida el día 16 de Julio 2024? Es correcto, hasta el momento con base en lo publicado por la autoridad, esta versión 3.0 del complemento carta porte finalizará vigencia el día 16 de Julio 2024. Si los cambios los tengo desarrollados antes del 17 de Julio, ¿podría empezar a timbrar en ambiente productivo el complemento de carta porte 3.1? No es posible iniciar el timbrado en productivo antes de la fecha de inicio de vigencia dictaminado por la autoridad, en este caso 17 Julio 2024, **antes de dicha fecha, solo podrás timbrar en ambiente de pruebas.** Para esta nueva versión 3.1 del complemento carta porte; ¿el idCCP es un valor que debemos generar en nuestros sistemas, o es algo que retorna el SAT ya en el timbrado? El IdCCP es un valor que debe generar tu sistema con base en el estándar RFC 4122 (lo genera el emisor del comprobante). Puedes apoyarte de nuestra herramienta de Generación de Idccp: [Generador de IdCCP](https://developers.sw.com.mx/knowledge-base/idccp/) ¿Para esta nueva versión 3.1 del complemento carta porte tendré que actualizar: cadenaoriginal40,sw.tools,BouncyCastle.Crypto etc etc?? Si sera necesario actualizarla. ¿ Se va a respetar las zonas horarias para el vencimiento de la version 3.0 del complemento carta porte? Si se respetaran. ¿El régimen aduanero se deberá declara por bien transportado ó a nivel documento? Se incorpora en el complemento, Se debe registrar el regimen que corresponda a cada tipo de mercancía, según sea el caso Cuando se emite una carta porte nueva versión 3.1 con materiales peligrosos y se renta el transporte, ¿Quién debe emitirla: el dueño del producto o el transportista? El transportista con los datos que debe entregar el dueño de la mercancía ¿El campo RegimenAduanero es obligatorio únicamente cuando el campo TranspInternac sea si, o siempre se debe indicar? El nodo de RegimenesAduaneros se deberá integrar si el valor registrado en el atributo TranspInternac es = Sí, La validación así lo establece si se ingresa Sí en el campo TranspInternac, este nodo es condicional una vez que se ingrese el Sí el regimen es requerido Si trasladamos remolques, ¿es necesario poner el peso del Remolque y el tractor? Si lo trasladas como un servicio, si debes incluir el peso ya que es considerado como un traslado de mercancía ¿Cómo se debe manejar cuando mi vehículo transporta varios pedidos de diferentes clientes y todos van en la misma ruta de entrega? A cada uno de los clientes se le debe emitir un CFDI con o sin complemento carta porte --- # Servicio Estatus SW smarter® Fuente: https://developers.sw.com.mx/knowledge-base/servicio-estatus-sw-smarter/ Categoria: Guías de Funcionalidad Conoce el significado de los estados que se muestran, en nuestra Herramienta de Estatus de Servicios SW smarter®. **Status:** Estado del servicio según nuestra métricas de disponibilidad ## Posibles estados del servicio: ****Operational**:** Nuestros servicios están operando para TI y tus peticiones han sido exitosas, con un tiempo promedio de respuesta de 200 milisegundos. **Partial\_outage:**Nuestros servicios están operando parcialmente y entre 1-10% de tus peticiones podrían regresar timeouts. **Degraded\_performance:** Nuestros servicios excenden los tiempos promedio de respuesta, sin embargo todas tus peticiones serán procesadas. **Major\_outage:**Nuestros servicios están operando parcialmente y más del 50% de tus peticiones regresan timeouts. **Under\_maintenance:** Estamos en proceso de mantenimiento de nuestro servicio. **Consulta la disponibilidad del servicio SW Smarter®** [Status del Servicio](https://status.sw.com.mx/) --- # Servicios de Generación de PDF - ¿Cuál es la mejor opción para TI? Fuente: https://developers.sw.com.mx/knowledge-base/que-servicio-de-generacion-de-pdf-debo-usar/ Categoria: Guías de Funcionalidad 📄 **¿Quieres generar el PDF de tus CFDI con nosotros, pero no sabes qué servicio elegir?** ¡Estás en el lugar correcto! En este articulo te ayudamos a identificar qué servicio se adapta mejor a tus necesidades. ### 🔍¿Qué vas a encontrar? | 🧩 Tema | ✅ Qué incluye | | --- | --- | | **[Tipos de Plantillas](https://developers.sw.com.mx/knowledge-base/que-servicio-de-generacion-de-pdf-debo-usar/#tipos-de-plantillas)** | Diferencias entre plantillas **genéricas** y **personalizadas** | | **[Datos Adicionales](https://developers.sw.com.mx/knowledge-base/que-servicio-de-generacion-de-pdf-debo-usar/#datos-adicionales-%f0%9f%93%9d)** | Qué tipo de información puedes mostrar en el PDF y las formas de agregarlos. | | **[Servicios disponibles](https://developers.sw.com.mx/knowledge-base/que-servicio-de-generacion-de-pdf-debo-usar/#servicios-disponibles-%f0%9f%9b%a0)** | ¿Necesitas generar el PDF al timbrar? ¿Después? ¿Regenerarlo? ¿Mandarlo por correo? Aquí te decimos cómo. | | **[Combinaciones Útiles](https://developers.sw.com.mx/knowledge-base/que-servicio-de-generacion-de-pdf-debo-usar/#combinaciones-utiles-%f0%9f%a4%9d)** | Te damos combinaciones ideales según el objetivo que tengas: automatización, personalización, ahorro de tiempo, etc. | | [**Preguntas frecuentes**](https://developers.sw.com.mx/knowledge-base/que-servicio-de-generacion-de-pdf-debo-usar/#preguntas-rapidas-%f0%9f%a7%90) | Consulta rápida de preguntas frecuentes y casos comunes para elegir el servicio adecuado. | ### **Tipos de Plantillas** 📄 | Tipo de Plantilla | ¿Qué incluye? | ¿Cuándo usarla? | | --- | --- | --- | | **[Genérica](https://developers.sw.com.mx/knowledge-base/plantillas-pdf/)** | Plantilla estándar compatible con los complementos más comunes (Ingresos y Egresos, Pagos, Nómina, Carta Porte, etc.). Solo se muestran los datos básicos del XML. | Cuando no necesitas personalización. Se puede usar tu logo (en algunos servicios) o parámetros genéricos. | | **Customizada** | Personalizada con tu diseño, colores, logotipo (por RFC o fijo), agregar todos los datos del XML que requieres para tu operación y posibilidad de agregar datos adicionales en el PDF. | Cuando necesitas que el PDF tenga tu imagen corporativa, datos adicionales o ajustes específicos. | **📌 ¿Qué cuenta como personalización?** - Cambiar el diseño visual de la plantilla. - Agregar tu logotipo estático (incluso si es el único cambio). - Agregar al PDF datos que no sean básicos y que estén dentro del XML de tu factura. - Incluir información adicional en el PDF desde la addenda o un nodo especial JSON. --- ### Datos Adicionales 📝 **¿Qué son?** Son datos que no están considerados en las plantillas genéricas SW, pero que pueden ser importantes para tu empresa. Algunos de ellos pueden venir en el XML del CFDI, y otros pueden ser externos, como información operativa o de control interno. *💡* **Ejemplos de datos adicionales:** Vendedor, Matriz/Sucursal, Domicilio del Receptor, Número de Teléfono, entre otros. #### 🔧 ¿Cómo se agregan datos extra? Te mostramos los 2 caminos: 📝 Nodo JSON de extras: Disponible únicamente para servicios de generación o regeneración PDF. No aplica para timbrado especial directo con creación de PDF. Ejemplo JSON: ``` "extras":{ "CalleCliente": "EMILIANO ZAPATA", "CalleSucursal": "VENUSTIANO CARRANZA - 600 METROS OESTE DE JARDINES DEL RECUERDO", "ClaveCliente": "CLIENTE-202501", "ClaveSucursal": "SUCURSAL-00779", "CodigoPostalCliente": "575-3", "CodigoPostalSucursal": "575-3", "ColoniaCliente": "Colonia Prueba", "ColoniaSucursal": "Colonia Prueba" } ``` **Existen algunos datos extra JSON sin costo adicional ¡Pruebalos!:** - “REFERENCIA”- Para la plantilla **cfdi40** - “OBSERVACIONES” – Para la plantilla **billoflading40cp31** Así se visualizaría en el PDF: ![](https://developers.sw.com.mx/wp-content/uploads/2025/04/EJEMPLO-DATOS-EXTRAS-1024x160.png) 📝 Addenda: Extension del XML timbrado, donde puedes agregar los datos que necesites, siempre y cuando obedezcan la estructura del XML. Este metodo lo puedes usar, en la mayoria de servicios con los que contamos, pero son obligatorios para datos extras cuando uses los servicios que generan el PDF al momento de timbrarlos (Timbrado V4 especial + PDF, o Email) **💡 La addenda debe estar guardada en SW para poder tomar datos extras de ella:** Por lo que debe ser timbrada con un servicio especial de timbrado para almacenarla ya que el servicio básico de timbrado no la guarda. Ejemplo de Addenda: ``` ``` Así se visualizaría en el PDF: ![](https://developers.sw.com.mx/wp-content/uploads/2025/04/EJEMPLO-DATOS-EXTRAS-ADDENDA-1024x158.png) --- ### Servicios Disponibles 🛠 💡 **Explora nuestros servicios diseñados para ti** Te presentamos las distintas opciones que tenemos disponibles, detallando sus características y formas de uso. Ya sea que necesites timbrar, generar PDF o enviar tus comprobantes. **👀 Mira el [Diagrama de Servicios](https://developers.sw.com.mx/knowledge-base/que-servicio-de-generacion-de-pdf-debo-usar/)** ¡seguro encuentras la solución perfecta para ti! 🚀 ✅ Generación de PDF - Recibe el XML ya timbrado - Disponible para plantillas genéricas o customizadas - Permite enviar logo o parámetros extra por JSON, aunque tambien puedes enviar una Addenda con datos extras - **Resultado:** PDF en base64 para que tú lo almacenes o envíes - 📌No estará disponible en nuestro sistema (ADT) ni se podrá enviar el PDF por el servicio de [**📧 Reenvío de Email**](https://developers.sw.com.mx/knowledge-base/reenvio-pdf-email//) [**📄 Ve a la documentación**](https://developers.sw.com.mx/knowledge-base/servicio-de-generacion-de-pdf/) 🔄 Regeneración de PDF - Solo para CFDIs timbrados con nosotros - Se recibe el UUID de tu factura para generar el PDF. - Permite incluir un logo y parámetros adicionales mediante JSON. - También puedes enviar una addenda con datos extra. - **Nota:** La addenda debe estar guardada en SW para poder tomar datos extras de ella, por lo que debe ser timbrada con un servicio especial de timbrado para almacenarla ya que el servicio básico de timbrado no la guarda. - **Resultado:** PDF generado y almacenado por nosotros en el Administrador de Timbres (ADT) por lo que sí podrás enviar el PDF por el servicio de [**📧 Reenvío de Email**](https://developers.sw.com.mx/knowledge-base/reenvio-pdf-email/) - 📌 Detecta automáticamente la plantilla vinculada o si tienes alguna customizada puedes enviarla por el body JSON [**📄 Ve a la documentación**](https://developers.sw.com.mx/knowledge-base/regenerar-pdf/) 🧾 Timbrado V4 + PDF - Timbra (en XML o JSON) y genera PDF en un solo paso - Compatible con plantillas genéricas o customizadas - Solo admite datos extra mediante Addenda - **Resultado:** XML timbrado + PDF + almacenamiento - 📌 No puedes enviar JSON de extras aquí, si necesitas colocar tu logo, contaría como personalización [**📄 Ve a la documentación**](https://developers.sw.com.mx/knowledge-base/timbrado-version-4-pdf/) 📩 Timbrado V4 + Email - Igual que el anterior, pero además envía PDF y XML por correo - Hasta 5 correos por solicitud - Correos separados por coma - Compatible con plantillas genéricas y customizadas [**📄 Ve a la documentación**](https://developers.sw.com.mx/knowledge-base/timbradov4-email/) 📧 Reenvío de Email - Envía XML (y PDF si ya fue generado) - Hasta 5 correos - Usa UUID del CFDI timbrado por nosotros - No genera PDF, pero puede ayudar en tus procesos - 📌 PDF debe haberse generado antes con nuestros servicios [**📄 Ve a la documentación**](https://developers.sw.com.mx/knowledge-base/reenvio-pdf-email/) **🤝¿Necesitas ayuda?** Ponte en contacto con tu ejecutiva de ventas para conocer los detalles de costos, o con nuestro equipo de soporte (soporte@sw.com.mx) si deseas una presentación del servicio que más te interese. Estamos aquí para apoyarte. 💬 --- ### Combinaciones Útiles 🤝 💡 **¿No sabes qué servicios combinar para lograr lo que necesitas?** En esta tabla te mostramos combinaciones prácticas según el flujo que quieras implementar. Aquí tienes las opciones más recomendadas: | Necesidad | Combinación recomendada | | --- | --- | | Quiero PDF y lo voy a almacenar yo | Generación PDF | | Quiero PDF y que lo almacenen ustedes | Regeneración PDF | | Quiero timbrar, generar PDF y almacenarlo | Timbrado V4 + PDF | | Quiero timbrar, PDF y enviar por email | Timbrado V4 + Email | | Quiero un flujo flexible y controlado | Timbrado + Regeneración PDF+ Reenvío Email | ### Preguntas Frecuentes 🧐 🔍 Encuentra respuestas a preguntas frecuentes sobre la personalización de PDF, timbrado, y cómo elegir el servicio ideal para tus necesidades, ya sea para almacenar PDFs 📄, agregar datos extra 💡 o enviar por correo 📧. 📌 Consulta algunas preguntas frecuentes - **¿Puedo usar mi propio logo sin pagar por personalización?** ✅ Sí, solo en plantillas genéricas mediante el parámetro de logo, y únicamente en servicios de generación o regeneración de PDF. - **¿Puedo enviar datos adicionales?** ✅ Sí, puedes hacerlo por JSON en servicios de generación o regeneración, o mediante Addenda si es un servicio de timbrado. - **¿Puedo tener una plantilla distinta por RFC?** ✅ Sí, al personalizarla puedes configurar logotipos diferentes por cada RFC. 📌 Solución a casos comunes - **👤 Quiero mi logo y datos extra, y que el PDF lo almacene SW** 🧠 Usa una *plantilla personalizada* para enviar tus datos extra en *Addenda o JSON* según el servicio que uses . ✅ Recomendación: **Timbrado V4 + PDF** o **Timbrado + Regeneración PDF** - **👤 Solo quiero que el PDF tenga mi logo y que se almacene en SW** 🧠 Solo necesitas una *plantilla personalizada con logo*, sin datos extras, o bien aprovecha el servicio de Regenerar PDF. ✅ Recomendación: **Timbrado V4 + PDF** o **Timbrado + Regeneración PDF** - **👤 Quiero agregar mi logo al PDF, pero lo almacenaré por mi cuenta** 🧠 Puedes generar el PDF con tu logo y descargarlo en base64. ✅ Recomendación: **Generación PDF** (con plantilla generica). - **👤 Tengo muchos XMLs timbrados en SW y quiero enviar sus PDFs por correo** 🧠 Primero necesitas generar los PDFs y luego enviarlos. ✅ Recomendación: **Regeneración PDF** + **Reenvío de Email** - **👤 Tengo XMLs timbrados con otro PAC y quiero usar mi plantilla con datos extra** 🧠 Si tus XMLs ya incluyen una **Addenda** con los datos adicionales que necesitas, solicita la configuración de tu plantilla personalizada con Addenda. 📄 Si no cuentan con Addenda, no te preocupes puedes solicitar el uso de datos extra mediante **JSON** para acompañar cada PDF. ✅ Recomendación: **Generación PDF** con **plantilla personalizada** *💡* **¿Tienes un caso distinto o quieres validar cuál es tu mejor opción?**💬 ¡Contáctanos a nuestro correo soporte@sw.com.mx y te ayudamos a elegir el servicio ideal para TI! --- # Trabajar con OpenSSL Fuente: https://developers.sw.com.mx/knowledge-base/trabajar-con-openssl/ Categoria: Guías de Funcionalidad Este post te ayudará a convertir archivos .cer y .key a distintos formatos como pem o pfx. Para esto será necesario contar con: - Tener instalado Open SSL en tu máquina. - Tener descargados los archivos .cer y .key con los que se desea trabajar. ## Obtener Certificados Para la siguiente prueba se utilizaron los archivos del siguiente RFC de pruebas: **RFC: XIA190128J61 Contraseña: 12345678a** ?**Para esta prueba en concreto se utilizaron los siguientes** [**archivos**](https://developers.sw.com.mx/tools/cerkey.rar). **Pero puedes consultar los certificados de pruebas vigentes en el siguiente [enlace](https://developers.sw.com.mx/knowledge-base/donde-encuentro-csd-de-pruebas-vigentes/)** ## Instalar OpenSSL Sera necesario instalar la OpenSSL en nuestra máquina. ?**Puedes descargar el ejecutable en el siguiente [enlace](https://wiki.openssl.org/index.php/Binaries)** Proceso de instalación **1**.**Una vez descargando el archivo, ejecuta el archivo .exe y aceptamos los términos**. ![](https://developers.sw.com.mx/wp-content/uploads/2020/06/1.png) **2**.**Seleccionamos el directorio donde se instalará, Es importante recordar la dirección donde fue instalada.** ![](https://developers.sw.com.mx/wp-content/uploads/2020/06/2.png) **3. Dejamos lo que esta seleccionado y damos al botón de siguiente.** ![](https://developers.sw.com.mx/wp-content/uploads/2020/06/3.png) **4. Seleccionar la opción de instalar.** ![](https://developers.sw.com.mx/wp-content/uploads/2020/06/4.png) ## Creación de archivos con OpenSSL Una vez que este instalado y podemos hacer uso de Open SSL para crear archivos. Para manejar los archivos será necesario que se encuentren en la misma ubicación donde se tenga instalado Open SSL. Importante Si deseas utilizar comandos de OpenSSL desde cualquier lugar será necesario que agregues OpenSSL como “Environment Variables”. Proceso de instalación 1.**En este caso ingresamos a la dirección donde seleccionamos la instalación en este caso es “C:\Program Files\OpenSSL-Win64”**. ![](https://developers.sw.com.mx/wp-content/uploads/2020/06/5.png) 2.**Abrimos OpenSSL.EXE** ![](https://developers.sw.com.mx/wp-content/uploads/2020/06/6.png) 3.**Una vez iniciada la consola podemos ejecutar comando OpenSSL.** **A)** **Generar un archivo .PEM de la llave privada .KEY** ``` //Ejemplo de comando openssl pkcs8 -inform DET -in archivo.key -passin pass:ContraseñaArchivo -out ArchivoSalida.pem ``` Ejecución en consola con archivos de ejemplo. ![](https://developers.sw.com.mx/wp-content/uploads/2020/06/6.png) Aquí ya tendremos el archivo .PEM de la llave privada o el archivo .KEY --- **B) Generar archivo PEM de llave publica .CER** ``` //Ejemplo de comando openssl x509 -inform der -in Archivo.cer -out ArchivoSalida.pem ``` Ejecución en consola con archivos de ejemplo. ![](https://developers.sw.com.mx/wp-content/uploads/2020/06/7.png) Con esto ya tendríamos los archivos .PEM en la carpeta raíz de OpenSSL --- # Versiones De Respuesta Fuente: https://developers.sw.com.mx/knowledge-base/versiones-de-respuesta-timbrado/ Categoria: Guías de Funcionalidad ### Versión 1 **💡Nota:** Versión de respuesta recomendada si lo que desea es maximizar el rendimiento en el proceso de timbrado. | Parámetro | Descripción | | --- | --- | | v1 | Respuesta que devuelve el timbre fiscal digital | **Ejemplo Respuesta** ``` { "data": { "tfd": "" }, "status": "success" } ``` --- ### Versión 2 | Parámetro | Descripción | | --- | --- | | v2 | Respuesta que devuelve el timbre fiscal digital y el cfdi timbrado | **Ejemplo Respuesta** ``` { "data": { "tfd": "", "cfdi": "" }, "status": "success" } ``` --- ### Versión 3 | Parámetro | Descripción | | --- | --- | | v3 | Respuesta que devuelve el CFDI timbrado | **Ejemplo Respuesta** ``` { "data": { "cfdi": "" }, "status": "success" } ``` --- ### Versión 4 | Parámetro | Descripción | | --- | --- | | v4 | Respuesta que devuelve todos los datos del timbrado | **Ejemplo Respuesta** ``` { "data": { "cadenaOriginalSAT": "||1.1|2ca12fd1-5224-4522-9997-9ba3ed31c4be|2022-02-04T19:02:32|SPR190613I52|dP3Ul3sYaN+ERwLw4/l41sfq36mjK1fepNDqiA5qiDkXA6IkgF7bZP1+ef0jppXmlA5sVCEBQJ3eQ6lsp/Cq9QDGiUmQs6Q6TqsRmgJQplgoWDgaCEupmL1GlstELM16ZJ0MvB37GCjNGqbe9ICTM11eCJdfCztRA5WBGsmuKIA2e4PF6pitvQMoPU/1YAlbDmVogf7WsMo1gFucoI4XVLQIo4Q5SehcySseruD/c19nH1a5eGkInpxbjWXUx3Op+cL/lrsaThXcgSC7CXMoW85i1ysz8GG3vpQt93E8PPWu6V4lDS2k/tEHtDX7F2gWIBGIH0mxl1ka1uAZNc66rQ==|30001000000400002495||", "noCertificadoSAT": "30001000000400002495", "noCertificadoCFDI": "30001000000400002434", "uuid": "2ca12fd1-5224-4522-9997-9ba3ed31c4be", "selloSAT": "RI0ciiCr1FIl+/tEvX6FX1j2YVpiwxaE4x7L7hjemT2T0ZwPgG1MM+n/wWcEYuDjAN5klm2+eAtg6GUQRF7y/P8HQ8MPyHYkmNXrdRIdqQxZzRUss9v+X7MiEE4WE7QFGaI47DhVcY6xl3V+Ke0Up8eqEtwnKQwFFkEY1+z4O+f1ONEiRW9oAmPhnE8ncE2RsUBweg5VyDk5mjbdSctlRqv5DhkyD4s5HfzOSmS52lWoTghapZLxGKXiprQqtw3dBqDkswvQMjcjoSRarnhEJboPWMPb7oW2GqwRPU3VnENQx2JxAQRmKvowrSfsZuaWL6dFluewGsj6Njzto9ltgA==", "selloCFDI": "dP3Ul3sYaN+ERwLw4/l41sfq36mjK1fepNDqiA5qiDkXA6IkgF7bZP1+ef0jppXmlA5sVCEBQJ3eQ6lsp/Cq9QDGiUmQs6Q6TqsRmgJQplgoWDgaCEupmL1GlstELM16ZJ0MvB37GCjNGqbe9ICTM11eCJdfCztRA5WBGsmuKIA2e4PF6pitvQMoPU/1YAlbDmVogf7WsMo1gFucoI4XVLQIo4Q5SehcySseruD/c19nH1a5eGkInpxbjWXUx3Op+cL/lrsaThXcgSC7CXMoW85i1ysz8GG3vpQt93E8PPWu6V4lDS2k/tEHtDX7F2gWIBGIH0mxl1ka1uAZNc66rQ==", "fechaTimbrado": "2022-02-04T19:02:32", "qrCode": "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", "cfdi": "" }, "status": "success" } ``` --- # Versiones De Respuesta Retenciones Fuente: https://developers.sw.com.mx/knowledge-base/versiones-de-respuesta-retenciones/ Categoria: Guías de Funcionalidad En el siguiente articulo podrás visualizar las distintas versiones de respuesta que maneja el servicio de timbrado de retenciones y que atributos son retornados en cada una de ellas. ### Versión 1 **💡Nota:** Versión de respuesta recomendada si lo que desea es maximizar el rendimiento en el proceso de timbrado. | Parámetro | Descripción | | --- | --- | | v1 | Respuesta que devuelve el timbre fiscal digital. | **Ejemplo Respuesta** ``` { "data": { "tfd": "" }, "status": "success" } ``` --- ### Versión 2 | Parámetro | Descripción | | --- | --- | | v2 | Respuesta que devuelve el timbre fiscal digital y la retención timbrada. | **Ejemplo Respuesta** ``` { "data": { "tfd": "", "retencion": "" }, "status": "success" } ``` --- ### Versión 3 | Parámetro | Descripción | | --- | --- | | v3 | Respuesta que devuelve la retención timbrada. | **Ejemplo Respuesta** ``` { "data": { "retencion": "" }, "status": "success" } ``` --- ### Versión 4 | Parámetro | Descripción | | --- | --- | | v4 | Respuesta que devuelve todos los datos del timbrado de la retención. | **Ejemplo Respuesta** ``` { "data": { "cadenaOriginalSAT": "||1.1|7287d5bd-f085-45b0-9673-54a4a8d71f1e|2026-07-23T11:14:27|SPR190613I52|bLfnwJdIYv5BKoWXsY1YOLwHpKGS9C1bEueOsukP1aGgPTYmyl89NfKyshpJ0p9kBVkxMDe6AHBpZflk01yFRKHo22EP0wtKtgIy/BPm67QhJswmSNqDQ5Z/tb1CS3Dq0Zr/SgldVmMAbBF/uo/ZQSSX0cXNZ6OStWz8K4vzjyGsIFzYCKyuzHqZZvGLtqbGcVrFFyAkWyGxfmUrY1nNVxIoN5HhT+9y7v0JvZIbSZp9SqGME/DYdCSIBLanxSuCBljL628MziEEijwseflB2Glrq1HZ/pyfqoH3Wvvzg4YNpox4xU1T+6AWO/MqJUUumLJcJea0lm+NvfNChdPmQg==|30001000000500003456||", "noCertificadoSAT": "30001000000500003456", "noCertificadoRetencion": "30001000000500003416", "uuid": "7287d5bd-f085-45b0-9673-54a4a8d71f1e", "selloSAT": "OjGIbaCDCKjyrvnc4Zq/J3wXeqhtMeWXy4kslPlyK1TiM+dwGDzPrgM3f5T9tkrkr9Id6BEl2sDP5viwtEOJGNhdJzEdItGXuMWTJtb1zEXldwD1vV1mBLQJt/xcDCEjzJcIbCAxy5oIN5c7ClEMl5sqXi+8LKkajCA3mKQEPyoVV1mL56SIGfTny5Pxe5IIiU7M138bgm7j/dcR5fqNOrS+Ueqw6iw5RbEflI/iXQYqihIcAH2RHuXCUs2I2OqWVBoRYRIhBiI2hl5ireBEVaL+pmKBGRhD8d0OntgmyplPNe4ZY2gKXNY6I9199GG4xSPtt+6iFQHfOpGoERzMxg==", "selloRetencion": "bLfnwJdIYv5BKoWXsY1YOLwHpKGS9C1bEueOsukP1aGgPTYmyl89NfKyshpJ0p9kBVkxMDe6AHBpZflk01yFRKHo22EP0wtKtgIy/BPm67QhJswmSNqDQ5Z/tb1CS3Dq0Zr/SgldVmMAbBF/uo/ZQSSX0cXNZ6OStWz8K4vzjyGsIFzYCKyuzHqZZvGLtqbGcVrFFyAkWyGxfmUrY1nNVxIoN5HhT+9y7v0JvZIbSZp9SqGME/DYdCSIBLanxSuCBljL628MziEEijwseflB2Glrq1HZ/pyfqoH3Wvvzg4YNpox4xU1T+6AWO/MqJUUumLJcJea0lm+NvfNChdPmQg==", "fechaTimbrado": "2026-07-23T11:14:27", "qrCode": "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", "retencion": "" }, "status": "success" } ``` --- # ¿Cómo diferenciar entre FIEL y CSD? Fuente: https://developers.sw.com.mx/knowledge-base/como-diferenciar-entre-fiel-y-csd/ Categoria: Guías de Funcionalidad Si bien estos archivos pueden ser similares a simple vista, abordaremos algunas diferencias, así como la detección de algo que cambia entre uno y otro mediante nuestro lenguaje de programación para automatizar el proceso. **Puedes recuperar los certificados desde el siguiente [enlace](https://portalsat.plataforma.sat.gob.mx/RecuperacionDeCertificados/)** ⏯️**Te invitamos a ver el siguiente video informativo:** **Video:** [tipSW® | Cómo diferenciar la FIEL o E.Firma de los CSD](https://www.youtube.com/watch?v=V3mR4t7jvCw) ## **📋** Definición Antes de comenzar es buena idea buscar comprender que es cada uno de estos conceptos: - **FIEL:** La Firma Electrónica Avanzada (FIEL) o E.FIRMA es un conjunto de datos que se adjuntan a un mensaje electrónico, cuyo propósito es identificar al emisor del mensaje como autor legítimo de éste al realizar trámites por internet en el SAT e incluso en otras dependencias del Gobierno de la República. - **CSD:** Un certificado de sello digital (CSD), es un documento electrónico mediante el cual una autoridad de certificación (SAT) garantiza la vinculación entre la identidad de un sujeto o entidad y su clave pública. Los certificados de sello digital son expedidos por el SAT, y para un propósito específico: firmar digitalmente las facturas electrónicas. Ahora que conocemos la definición de cada uno, es momento de conconer algunas formas en que podemos diferenciarlos, que son las siguientes: ### Por proceso de obtención Una forma en que se pueden diferenciar la FIEL y CSD puede ser la forma en la que se obtienen. FIEL - ***El trámite se realiza directamente en las oficinas del SAT mediante una cita. (Presencial)*** **Personas físicas**: Se toman datos de identidad, como: huellas digitales, fotografías de frente, fotografías del iris, firma y digitalización de los documentos originales. **Personas morales**: Se toman datos de identidad, consistentes en la digitalización de los documentos originales. CSD - ***Es un trámite posterior al de la FIEL o E.FIRMA, este trámite de los CSD se pueden realizar en línea por medio de la aplicación Certifica (Antes SOLCEDI), sin necesidad de acudir presencialmente a las oficinas del SAT.*** Para tramitar los CSD se necesita: Descargar la aplicación Certifica, y contar con tu FIEL o E.FIRMA vigente. ### De forma visual Otra forma en la que podemos diferenciar la FIEL y un CSD es de forma visual mediante el nombre del archivo y una de sus propiedades. FIEL Por ejemplo, para la FIEL, el archivo clave que tiene un icono de hoja en blanco contiene en el nombre “Clave privada\_FIEL\_rfc y terminación .key” y para el archivo certificado correspondiente a la FIEL aparece el icono de forma de diploma donde el nombre es el RFC. ![](https://developers.sw.com.mx/wp-content/uploads/2023/06/image-1.png) Adicionalmente, al abrir en Windows el archivo certificado, dentro de la pestaña “Detalles” en la propiedad “Key usage” o “Uso de la clave” nos encontraremos que cuenta con los siguientes valores: - Firma digital (O puede ser “Digital Signature”) - Sin repudio (O puede ser “Non-Repudiation) - Cifrado de datos (O puede ser “Data Encipherment) - Acuerdo de clave (O puede ser “Key Agreement) ![](https://developers.sw.com.mx/wp-content/uploads/2023/06/imagen-0.png) ![](https://developers.sw.com.mx/wp-content/uploads/2023/06/imagen-1-3.png) ![](https://developers.sw.com.mx/wp-content/uploads/2023/06/imagen-2-3.png) CSD Por ejemplo, para los CSD, el archivo clave que tiene un icono de hoja en blanco contiene en el nombre “CSD\_nombre\_rfc y terminación .key” y para el archivo certificado correspondiente al CSD aparece el icono de forma de diploma donde el nombre es “CSD\_nombre\_rfc\_número de certificado”. ![](https://developers.sw.com.mx/wp-content/uploads/2023/06/image-6.png) Adicionalmente, al abrir en Windows el archivo certificado, dentro de la pestaña “Detalles” en la propiedad “Key usage” o “Uso de la clave” nos encontraremos que cuenta con los siguientes valores: - Firma digital (O puede ser “Digital Signature”) - Sin repudio (O puede ser “Non-Repudiation) ![](https://developers.sw.com.mx/wp-content/uploads/2023/06/imagen-0-1.png) ![](https://developers.sw.com.mx/wp-content/uploads/2023/06/imagen-1-4.png) ![](https://developers.sw.com.mx/wp-content/uploads/2023/06/imagen-2-4.png) ### Mediante conversiones y código Por último, abordaremos otra manera de diferenciar un archivo FIEL de un CSD que es mediante la conversión a hexadecimal de una de sus propiedades y la automatización de este proceso en un lenguaje de programación. Conversión Primeramente, será necesario abrir el certificado que queremos comprobar, y dirigirnos a la pestaña de “Details (O “Detalles”) al atributo “Key usage (O “Uso de la clave”). ![](https://developers.sw.com.mx/wp-content/uploads/2019/01/FIELvsCSD.png) **FIEL** Dentro de esta propiedad llamado “Key Usage” o “Uso de clave” contiene algunas descripciones y un hexadecimal al final. Este hexadecimal se obtiene de los datos que hay anteriormente, teniendo un arreglo de bytes lo traduciríamos de la siguiente manera: **CSD** Dentro de esta propiedad llamado “Key Usage” o “Uso de clave” contiene algunas descripciones y un hexadecimal al final. Este hexadecimal se obtiene de los datos que hay anteriormente, teniendo un arreglo de bytes lo traduciríamos de la siguiente manera: Código Para la automatización del proceso de conversión, ponemos de ejemplo un proyecto en C# donde se realiza la comprobación de estos campos. En dicho ejemplo se incluye un CSD y una FIEL a ser comprobadas, el resultado mostrado es el siguiente: ![](https://developers.sw.com.mx/wp-content/uploads/2019/01/CSD-o-FIEL-Proyect.png) Para utilizar el programa, solo es necesario descargar el proyecto, abrir la solución y cambiar la ruta de los archivos a la ruta donde se tengan los archivos a comprobar. Puedes encontrar la carpeta del proyecto en el siguiente [enlace](https://drive.google.com/file/d/1AL26bnJjhcW0lXAPkMBMq3kKRYMZL64l/view?usp=sharing). ### Mediante Herramientas SW En SW te proveemos de una herramienta para agilizar este proceso, puedes visitar la herramienta: [**Validar Certificados**](https://developers.sw.com.mx/knowledge-base/herramienta-validador-certificados/) --- # ¿Cómo se calcula la antigüedad en Nómina 1.2? Fuente: https://developers.sw.com.mx/knowledge-base/como-se-calcula-la-antiguedad-en-nomina-1-2/ Categoria: Guías de Funcionalidad ### **Problema** No sé cómo se calcula la antigüedad en formato PYMD o PW para el complemento Nómina 1.2 ### **Solución** La entidad SAT no proporciona una fórmula para calcular el campo antigüedad en el comprobante Nómina 1.2 por lo que esa decisión se la deja a cada (PAC) **Proveedor Autorizado para la Certificación de CFDI.** En SmarterWeb calculamos la antigüedad de ambos formatos de la siguiente manera: ### Ejemplos **Empleado con antigüedad de varios años** *Para este ejemplo tendremos los datos:* Fecha de inicio de relación laboral: 30-06-2019 Fecha final de pago: 03-03-2023 **1.- Cálculo de años:** Es el resultado de la diferencia entre el año de pago menos el año de inicio de relación laboral, se hace la resta **de años completos:** 30-06-2019 a 30-06-2020 = año 1 30-06-2020 a 30-06-2021 = año 2 30-06-2021 a 30-06-2022 = año 3 *30-06-2022 a 30-06-2023 no sería válido debido a que ya rebasa la fecha final de pago (03-03-2019).* Entonces el cálculo sería= 30-06-2019 a 03-03-2023 = **3Y** (Porque son 3 años completos). A la fecha inicial se le suma el valor en años: entonces nuestro nuevo valor ahora es**30-06-2022** **2.- Cálculo de meses:** Es el resultado de la diferencia entre el mes de ingreso y el mes del pago (de nuevo **mes completo sin exceder la fecha de pago)** Es la diferencia del mes de ingreso al mes del pago (de junio a marzo). 30-06-2022 a 03-03-2023 = 8 meses. Entonces el cálculo sería= **8M** (Porque son 8 meses completos). A la fecha de ingreso se le suman los meses de diferencia= **30-02-2023\*** **\* A pesar de no existir la fecha, se tomaría en su lugar el día válido anterior, lo cual sería 28-02-2023** **3.- Cálculo de días:** Es el resultado de la diferencia entre el día del pago y el día del ingreso: 28-02-2023 al 03-03-2023 = 3 días Entonces el cálculo sería= **3D**. **Resultado** El dato completo del ejemplo será: **P3Y8M3D** **Antigüedad de meses en la empresa** *Para este ejemplo tendremos los datos:* Fecha de inicio de relación laboral: 01-12-2022 Fecha final de pago: 15-03-2023 **1.- Cálculo de años** Es el resultado de la diferencia entre el año de pago menos el año de inicio de relación laboral, se hace la resta **de años completos:** 01-12-2022 a 15-03-2023 = 0 años Entonces el cálculo sería= **0Y** **2.- Cálculo de meses** Es el resultado de la diferencia entre el mes de ingreso y el mes del pago (de nuevo **mes completo sin exceder la fecha de pago)** 01-12-2022 a 15-03-2023 = 3 meses Entonces el cálculo sería = **3M** A la fecha de ingreso se le suman los meses de diferencia= **01-03-2023** **3.- Cálculo de días** Es el resultado de la diferencia entre el día del pago y el día del ingreso: 01-03-2023 a 15-03-2023 = 14 días Entonces el cálculo sería = **14D** **Resultado** El dato completo del ejemplo será = **P0Y3M14D**o **P3M14D** **Ingreso en el mismo mes, la antigüedad expresada en semanas** *Para este ejemplo tendremos los datos:* Fecha de inicio de relación laboral: 04-03-2023 Fecha fin de pago: 30-03-2023 **1.- Cálculo de años:** Es el resultado de la diferencia entre el año de pago menos el año de inicio de relación laboral, se hace la resta **de años completos:** 04-03-2023 a 30-03-2023 = 0 años Entonces el cálculo sería= **0Y** **2.- Cálculo de meses:** Es el resultado de la diferencia entre el mes de ingreso y el mes del pago (de nuevo **mes completo sin exceder la fecha de pago)** 04-03-2023 a 30-03-2023 = 0 meses Entonces el cálculo sería = **0M** **3.- Cálculo de días:** Es el resultado de la diferencia entre el día del pago y el día del ingreso: 04-03-2023 a 30-03-2023 = 26 días Entonces el cálculo sería = **26D** **4.- Cálculo de semanas:** El resultado anterior de los días se divide entre 7 para obtener el número de semanas ya que la diferencia de meses fue 0. 26 / 7= 3.71 semanas (se redondea hacía abajo) Entonces el cálculo sería = **3W** **Resultado** El dato completo del ejemplo será: **P3W** ? **Utiliza nuestra herramienta para calcular la antigüedad:** [Cálculo de antigüedad para complemento Nómina 1.2](https://developers.sw.com.mx/knowledge-base/calculo-de-antiguedad-para-complemento-nomina-1-2/). --- # ¿Necesitas ayuda técnica? Fuente: https://developers.sw.com.mx/knowledge-base/como-levantar-un-ticket/ Categoria: Guías de Funcionalidad A continuación te mostramos lo fácil que es contactar a nuestros Ingenieros especialistas de soporte mediante un ticket de servicio, para este proceso utilizamos el servicio de “Mesa de Ayuda” desarrollado por [Atlassian.](https://www.atlassian.com/es/software/jira/service-management/features/service-desk) ## ¿Cómo levantar un ticket? **1 –** Regístrate para disfrutar los beneficios de interactuar mediante un ticket con el equipo de soporte [¿Necesitas una cuenta? Regístrate](https://smarterweb.atlassian.net/servicedesk/customer/portal/1/user/signup) **2 –** Una vez registrado, tenemos creadas platillas para que puedas de forma simple enviarnos tu consulta **3 –** Monitorea el seguimiento: - Tablero personalizado - Monitorea consultas de forma simple - Documenta tus seguimientos de forma simple **Video:** [SW Sapien | Registro y envío de solicitud de soporte](https://www.youtube.com/watch?v=5k_91vIFP18) [¿Ya tienes una cuenta? Iniciar sesión](https://smarterweb.atlassian.net/servicedesk/customer/portal/1/group/-1) --- # ¿Qué es una variable de entorno? Fuente: https://developers.sw.com.mx/knowledge-base/variable-de-entorno/ Categoria: Guías de Funcionalidad Es un valor que se utiliza dentro del código de un programa para personalizar su comportamiento o acceder a información relevante. Estas variables son especialmente útiles en archivos de configuración, donde permiten adaptar la aplicación a diferentes entornos sin necesidad de modificar el código fuente. Podemos tomar como ejemplo los servicios de SW, donde cuando integramos, lo hacemos con el entorno de pruebas, pero en algún momento pasaremos a producción, entonces si hacemos un archivo de configuración donde asignamos dichas variables podemos cambiar de una manera muy sencilla de entorno, de pruebas a producción o viceversa y sin cambiar tantas líneas de código. ### Ejemplo: Archivo de configuración. Generamos un json para pruebas y otro para producción. ``` Archivo configPruebas.json { "url": "services.test.sw.com.mx", "endpoint": "/cfdi33/stamp/v4", "token": "..." } Archivo configProduccion.json { "url": "services.sw.com.mx", "endpoint": "/cfdi33/stamp/v4", "token": "..." } ``` Si revisamos la petición ya podemos sustituir las variables. Utilizaremos PHP para esto. ``` < ? php // Leer archivo de configuración $config = json_decode(file_get_contents('configPruebas.json'), true); // Variables de configuración $url = $config [ ' url']; $endpoint = $config [ ' endpoint']; $token = $config [ ' token']; // Ruta del archivo XML $xmlFile = "/C:/Users/Admin/Documents/SW/Prueba.xml"; // Construir la URL completa $requestUrl = $url . $endpoint; // Inicializar cURL $ch = curl_init(); // Establecer opciones de cURL curl_setopt($ch, CURLOPT_URL, $requestUrl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( "Authorization: Bearer $token" )); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, array( 'xml' => new CURLFile($xmlFile) )); // Ejecutar la solicitud $response = curl_exec($ch); // Verificar si hubo errores if (curl_errno($ch)) { echo 'Error en la solicitud cURL: ' . curl_error($ch); } else { // Procesar la respuesta echo $response; } // Cerrar la sesión cURL curl_close($ch); ? > ``` Si observamos el código, para cambiar de ambiente, solo debemos cambiar la siguiente línea: ``` // Leer archivo de configuración Pruebas $config = json_decode(file_get_contents('configPruebas.json'), true); // Leer archivo de configuración Producción $config = json_decode(file_get_contents('configProduccion.json'), true); ``` ### Variables de entorno en el sistema operativo. Una variable de entorno en un sistema operativo es una configuración global que define valores específicos para ciertos aspectos del sistema. Estas variables se utilizan para influir en el comportamiento de los programas y procesos que se ejecutan en el sistema. Las variables de entorno pueden contener información como rutas de búsqueda de archivos, configuraciones de idioma, ubicaciones de bibliotecas, ajustes de seguridad, entre otros. Son utilizadas por el sistema operativo y las aplicaciones para acceder a información relevante y adaptar su comportamiento en consecuencia. Algunos lenguajes como Java, Python, C y C++ trabajan con variables de entorno desde el sistema operativo. ![](https://developers.sw.com.mx/wp-content/uploads/2023/06/image.png) ### Las variables de entorno son buenas prácticas. Otro beneficio importante es que el uso de variables de entorno facilita la colaboración en proyectos, ya que cada desarrollador puede tener su propia configuración personalizada sin afectar al código base. Además, al utilizar variables de entorno, se fomenta una separación clara entre la lógica del programa y su configuración, lo que facilita el mantenimiento y la escalabilidad. En conclusión, las variables de entorno en la programación son valores que se utilizan en el código para personalizar el comportamiento de una aplicación y acceder a información relevante. Su uso en archivos de configuración permite una mayor flexibilidad y adaptabilidad del código, facilitando la portabilidad, la seguridad y la colaboración en proyectos. Al sustituir valores codificados en el código por variables de entorno, se logra un código más modular y mantenible. --- # ¿SOAP o REST? Fuente: https://developers.sw.com.mx/knowledge-base/soap-o-rest/ Categoria: Guías de Funcionalidad **Video:** [tipSW® | Diferencias entre SOAP y REST ¿Cuál es mejor?](https://www.youtube.com/watch?v=hEEh0b21dIw) Cuando hablamos de servicios web utilizados por un PAC (Proveedor Autorizado de Certificación), nos encontramos con dos tipos principales: los que ofrecen servicios REST y los que usan SOAP. Entender sus diferencias es crucial para elegir la opción que mejor se adapte a tus necesidades. ### ¿Qué es REST o RESTful como WebService? REST #### Definición y Características REST (Transferencia de Estado Representacional) se caracteriza por su facilidad de implementación y modificación, brindando visibilidad y portabilidad entre plataformas. Las API que siguen el estilo arquitectónico de REST se denominan API REST, y los servicios web que implementan esta arquitectura son llamados servicios web RESTful. #### Ventajas de REST - **Flexibilidad:** Permite diferentes formatos de datos (JSON, XML, texto plano). - **Rendimiento:** Mejor escalabilidad y almacenamiento en caché. - **Facilidad de Uso:** No requiere herramientas costosas ni lenguajes de programación específicos. ### ¿Qué es SOAP como WebService? SOAP #### Definición y Características SOAP (Protocolo de Acceso a Objetos Simples, por sus siglas en inglés: Simple Object Access Protocol) es un protocolo estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML. #### Ventajas de SOAP - **Estandarización y Complejidad:** SOAP impone reglas estrictas y estándares integrados que garantizan la fiabilidad de las operaciones, aunque esto también aumenta la complejidad y la sobrecarga. - **Operaciones con Nombre:** SOAP se enfoca en acceder a operaciones específicas, cada una implementando una lógica de negocios particular. - **Confiabilidad:** Los estándares de cumplimiento integrados forman un conjunto de propiedades que garantizan operaciones confiables, especialmente en la interacción con bases de datos. #### Uso de WSDL El uso de SOAP en un servicio web específico se describe mediante la definición de WSDL (Web Services Description Language), que especifica la interfaz que el servicio web expone a los clientes. ### Diferencias SOAP - WSDL define el esquema entre el cliente y el servicio y es estático por su naturaleza. - SOAP construye un protocolo basado en XML sobre HTTP o, a veces, TCP / IP. - SOAP es un sucesor de XML-RPC y es muy similar, pero describe una forma estándar de comunicación. - Varios lenguajes de programación tienen soporte nativo para SOAP, normalmente necesita de una URL de servicio web y puede llamar a sus funciones de web service sin la necesidad de un código específico. REST - REST permite muchos formatos de datos diferentes, mientras que SOAP solo permite XML. Uno de los formatos más utilizados y recomendado es el formato JSON. JSON es más ligero y transmite menos bytes en el intercambio de datos. REST permite un mejor soporte para los clientes del navegador debido a su soporte para JSON. - REST tiene mejor rendimiento y escalabilidad. Las lecturas REST se pueden almacenar en caché; las lecturas basadas en SOAP no se pueden almacenar en caché. - No se requiere de ninguna herramienta costosa para interactuar con el servicio web. Incluso en lenguajes de programación antiguos se puede hacer la comunicación a través de un HTTP. - Eficiente (SOAP usa XML para todos los mensajes, REST puede usar formatos de mensajes más pequeños como son texto plano, HTML, XML, JSON etc.). - Rápido (no requiere procesamiento extenso). ### Ejemplo de Request-Response Tomando como ejemplo un consumo de WebService para la obtención del token, tenemos los siguientes casos. SOAP **Request** ``` POST http://pruebascfdi.smartweb.com.mx/Autenticacion/wsAutenticacion.asmx HTTP/1.1 Accept-Encoding: gzip,deflate Content-Type: text/xml;charset=UTF-8 SOAPAction: "http://sufacturacion.com/AutenticarBasico" Content-Length: 402 Host: pruebascfdi.smartweb.com.mx Connection: Keep-Alive User-Agent: Apache-HttpClient/4.1.1 (java 1.5) demo 123456789 ``` **Response** ``` HTTP/1.1 200 OK Cache-Control: private, max-age=0 Content-Type: text/xml; charset=utf-8 Server: Microsoft-IIS/7.5 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Fri, 23 Feb 2023 16:28:40 GMT Content-Length: 1313 T2lYQ0t4L0RHVkR4dHZ5Nkk1VHNEakZ3Y0J4Nk9GODZuRyt4cE1wVm5tbXB3YVZxTHdOdHAwVXY2NTdJb1hkREtXTzE3dk9pMmdMdkFDR2xFWFVPUTQyWFhnTUxGYjdKdG8xQTZWVjFrUDNiOTVrRkhiOGk3RHladHdMaEM0cS8rcklzaUhJOGozWjN0K2h6R3gwQzF0c0g5aGNBYUt6N2srR3VoMUw3amtvPQ.T2lYQ0t4L0RHVkR4dHZ5Nkk1VHNEakZ3Y0J4Nk9GODZuRyt4cE1wVm5tbFlVcU92YUJTZWlHU3pER1kySnlXRTF4alNUS0ZWcUlVS0NhelhqaXdnWTRncklVSWVvZlFZMWNyUjVxYUFxMWFxcStUL1IzdGpHRTJqdS9Zakw2UGRiMTFPRlV3a2kyOWI5WUZHWk85ODJtU0M2UlJEUkFTVXhYTDNKZVdhOXIySE1tUVlFdm1jN3kvRStBQlpLRi9NeWJrd0R3clhpYWJrVUMwV0Mwd3FhUXdpUFF5NW5PN3J5cklMb0FETHlxVFRtRW16UW5ZVjAwUjdCa2g0Yk1iTExCeXJkVDRhMGMxOUZ1YWlIUWRRVC8yalFTNUczZXdvWlF0cSt2UW0waFZKY2gyaW5jeElydXN3clNPUDNvU1J2dm9weHBTSlZYNU9aaGsvalpQMUxtMVdoaHdsM2JrVE9uTXJuZmpIYkVablgvK2lrRDlPYy9XanViRjNhb3h6Z0hBbDF1eDM4dXFiKzhsRG5saXdpaXpieVFtdjJEWUp5YjB6b3Zwc05kTnM4bVl5anhCQ21UNSt2N29YU1B2QVAwaXJXeU55YjRoVzE3OC83NVJlWWFVdmFzcGFaSjMvZTBiT3dSeTBzazg9.ux9Wx968vjlsY7HXR0j-JtZjvDRwm8na9Yn5A0AumI4 ``` REST **Request** ``` POST http://services.test.sw.com.mx/security/authenticate HTTP/1.1 Content-Type: application/json user: demo password: 123456789 Content-Length: 0 cache-control: no-cache User-Agent: PostmanRuntime/7.4.0 Accept: */* Host: services.test.sw.com.mx accept-encoding: gzip, deflate Connection: keep-alive ``` **Response** ``` HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Vary: Accept-Encoding Server: Kestrel X-Powered-By: ASP.NET Date: Fri, 23 Feb 2023 16:30:08 GMT Content-Length: 1018 { "data": { "token": "T2lYQ0t4L0RHVkR4dHZ5Nkk1VHNEakZ3Y0J4Nk9GODZuRyt4cE1wVm5tbXB3YVZxTHdOdHAwVXY2NTdJb1hkREtXTzE3dk9pMmdMdkFDR2xFWFVPUTQyWFhnTUxGYjdKdG8xQTZWVjFrUDNiOTVrRkhiOGk3RHladHdMaEM0cS8rcklzaUhJOGozWjN0K2h6R3gwQzF0c0g5aGNBYUt6N2srR3VoMUw3amtvPQ.T2lYQ0t4L0RHVkR4dHZ5Nkk1VHNEakZ3Y0J4Nk9GODZuRyt4cE1wVm5tbFlVcU92YUJTZWlHU3pER1kySnlXRTF4alNUS0ZWcUlVS0NhelhqaXdnWTRncklVSWVvZlFZMWNyUjVxYUFxMWFxcStUL1IzdGpHRTJqdS9Zakw2UGRiMTFPRlV3a2kyOWI5WUZHWk85ODJtU0M2UlJEUkFTVXhYTDNKZVdhOXIySE1tUVlFdm1jN3kvRStBQlpLRi9NeWJrd0R3clhpYWJrVUMwV0Mwd3FhUXdpUFF5NW5PN3J5cklMb0FETHlxVFRtRW16UW5ZVjAwUjdCa2g0Yk1iTExCeXJkVDRhMGMxOUZ1YWlIUWRRVC8yalFTNUczZXdvWlF0cSt2UW0waFZKY2gyaW5jeElydXN3clNPUDNvU1J2dm9weHBTSlZYNU9aaGsvalpQMUxpZHRBczZIVFRnRUhhaFR5WW1KUndIZmNYWWRIamg5SnVIWFFJSmFUTDNsVFNKQVJUZUQyTUFNWnhUeVJaMUhhQUQ1aHZvZ2I5M0pBRUNlQ0pCL2VsVlVKM1VZUHQwcThYWlE2Tm9kbjlpT0xVR05IdXFpeTNDdGh2cktBdFB1YjhuUGZtMFRmUHVSdUpDNGYrNHhzRVk9.42C9cyxIrlkMMPvrZAwRMRyp84t8ag-kC2N2EJ_Ft_w", "expires_in": 1542997809, "tokeny_type": "Bearer" }, "status": "success" } ``` En SOAP tenemos 402 bytes como request y 1313 como response, lo que nos dejaría con un total de 1715 bytes transmitidos en un tiempo de 193 ms. En REST tenemos 0 bytes como request y 1018 bytes como response, lo que nos deja con un total de 1018 bytes, transmitidos en un tiempo de 87 ms. Señalar, que en este ejemplo el SOAP solo recibe el token y a través del servicio REST se envían datos adicionales, como un timestamp, y el tipo de token. ### Conclusiones #### SOAP - **Tiempo de Procesamiento:** 2-15 segundos para emisión de una factura. - **Carga del Servicio:** Mayor saturación con aumento de usuarios. #### REST - **Tiempo de Procesamiento:** 100ms – 1 segundo para emisión de una factura. - **Escalabilidad:** Fácilmente escalable con más instancias en la nube. Para la emisión de facturas electrónicas, REST se destaca por su rapidez y escalabilidad. SOAP, aunque más robusto en términos de estándares, puede volverse lento con el aumento de la carga del servicio. --- # Categoria: Herramientas Herramientas web interactivas disponibles en developers.sw.com.mx. Cada una requiere uso interactivo en navegador (subir archivos, formularios, etc.); por eso se listan aquí como referencia en lugar de generar artículos individuales. **Categorías:** Herramientas **Total:** 12 artículos **Generado:** 2026-08-28T19:51:33+00:00 --- ### [Convertidor y Validador PDF VUCEM](https://developers.sw.com.mx/knowledge-base/convertidor-y-validador-pdf-vucem/) _Publicado: 2026-08-06_ ¿Qué es VUCEM? Es la plataforma donde el gobierno recibe tus documentos de comercio exterior (importación/exportación). Es necesario subir el PDF a la plataforma en un formato técnico específico — conviértelos aquí en segundos y evita rechazos. ### [Convertidor Base64](https://developers.sw.com.mx/knowledge-base/convertidor-base64/) _Publicado: 2024-05-06 · Actualizado: 2026-08-06_ Con esta herramienta podrás convertir archivos a Base64 y viceversa de forma segura, sin salir de tu navegador. ### [Sellar XML CFDI y Retenciones](https://developers.sw.com.mx/knowledge-base/herramienta-sellar-xml/) _Publicado: 2023-09-25 · Actualizado: 2026-03-12_ Con esta herramienta se podrá sellar un XML de CFDI 4.0, Retenciones 2.0 y sus complementos, haciendo uso de un archivo [PFX.](https://developers.sw.com.mx/knowledge-base/como-crear-un-pfx/) ### [Validar CFDI 4.0](https://developers.sw.com.mx/knowledge-base/nuevo-validar-cfdi-4-0/) _Publicado: 2024-10-11 · Actualizado: 2026-01-28_ A través de esta herramienta web se podrán validar archivos (.xml) para versión CFDI 4.0 ### [Validar CSD](https://developers.sw.com.mx/knowledge-base/validar-csd/) _Publicado: 2025-09-12 · Actualizado: 2025-11-07_ Esta herramienta permite validar certificados emitidos por el Servicio de Administración Tributaria (SAT) de México de tipo Certificados de Sello Digital (CSD). ### [Códigos De Error](https://developers.sw.com.mx/knowledge-base/listado-de-codigos-de-errores/) _Publicado: 2025-03-18 · Actualizado: 2025-09-26_ Los servicios de SW devuelven un código de error en caso de fallo en la solicitud, este código aparece en el campo *“message”* del objeto **JSON** de la respuesta *(excepto en servicios SOAP)* y puede provenir de las matrices de errores del **SAT** o **ser un error interno**. ### [Validar Certificados](https://developers.sw.com.mx/knowledge-base/herramienta-validador-certificados/) _Publicado: 2023-09-20 · Actualizado: 2025-09-12_ Esta herramienta permite validar certificados emitidos por el Servicio de Administración Tributaria (SAT) de México, incluyendo Certificados de Sello Digital (CSD) y Firma Electrónica Avanzada (FIEL). ### [Calculadora De Antigüedad Para Nómina 1.2](https://developers.sw.com.mx/knowledge-base/calculadora-de-antiguedad-para-nomina-1-2/) _Publicado: 2025-03-24 · Actualizado: 2025-03-28_ Esta herramienta permite calcular la antigüedad de un empleado en el complemento de Nómina 1.2 ### [Generador de IdCCP](https://developers.sw.com.mx/knowledge-base/idccp/) _Publicado: 2024-05-14 · Actualizado: 2025-03-27_ En el contexto del complemento Carta Porte, es necesario el IdCCP que es un atributo requerido para expresar los 36 caracteres del folio del complemento de Carta Porte, es decir, un identificador único que se asigna al folio del complemento Carta Porte (CCP) en la transacción de timbrado, con el propósito de identificar de manera única el CFDI relacionado con dicho complemento. ### [Generador de Ejemplos XML](https://developers.sw.com.mx/knowledge-base/herramienta-generador-ejemplos/) _Publicado: 2023-09-27 · Actualizado: 2025-03-27_ Con esta herramienta se podrá generar XML de ejemplo de comprobantes fiscales sellados y listos para ser timbrados. ### [Firmar XML](https://developers.sw.com.mx/knowledge-base/herramienta-firmar-xml/) _Publicado: 2023-09-21 · Actualizado: 2025-03-27_ Con esta herramienta se podrá generar y agregar el Signature a un XML haciendo uso de un archivo PFX. ### [Generador de Certificado PFX](https://developers.sw.com.mx/knowledge-base/herramienta-crear-pfx/) _Publicado: 2023-09-21 · Actualizado: 2025-03-27_ Con esta herramienta se podrá generar el documento [PFX](https://developers.sw.com.mx/knowledge-base/como-crear-un-pfx/), enviando tu certificado, la llave y su contraseña. --- # Integra con nosotros en 7 pasos Fuente: https://developers.sw.com.mx/knowledge-base/nuevo-inicio-rapido/ Categoria: Inicio Rápido **Se parte de**SW® de forma ágil y rápida con nuestra guía de 7 pasos **Video:** [SW® | Conoce el flujo de timbrado para el consumo de los Servicio SW®](https://www.youtube.com/watch?v=ilqiX7KxzAs) ![](https://developers.sw.com.mx/wp-content/uploads/2022/04/Paso-1.png) ## ****1 – Conceptos de facturación: Lo que necesitas saber****. Antes de comenzar, puede ser necesario que conozcas un poco más de algunos temas que se implican en la facturación. **📝 ¿Qué es un PAC y cuál es su función en temas de facturación?** Un “**PAC** = **P**roveedor **A**utorizado de **C**ertificación”, es una empresa que cuenta con la autorización del SAT para generar y procesar los CFDI para efectos fiscales por medios electrónicos y de manera 100% digital. Una de las actividades que realizan son las validaciones que consisten en revisar la integración del archivo XML, asegurándose que cumple con el estándar tecnológico vigente definido por el SAT, así mismo tiene como obligación, enviar a la autoridad la copia de los CFDI que validen de sus clientes. Una vez que el PAC realiza todas las validaciones, timbra o certifica el archivo y así este se convierte en una Factura Digital. ![](https://developers.sw.com.mx/wp-content/uploads/2023/02/Proceso-Facturacion-1.png) [🔎 Visualizar](https://developers.sw.com.mx/knowledge-base/nuevo-inicio-rapido/) ✍ **Lo que debes Saber:** **SW Sapien®** : es nuestro Nombre o Identificador Comercial **LunaSoft®**: es nuestro registro ante el SAT como **P**roveedor **A**utorizado de ****C****ertificación(PAC) con numero de autorización 16543. Fuente oficial SAT: [Proveedores Autorizados de Certificación (PAC´S)](https://www.sat.gob.mx/consulta/76969/proveedores-autorizados-de-certificacion-(pac%C2%B4s)-#:~:text=Un%20Proveedor%20Autorizado%20de%20Certificaci%C3%B3n,y%20de%20manera%20100%25%20digital.) 📝 Conceptos básicos para entender el CFDI Antes de seguir, te invitamos a conocer los conceptos más utilizados para el tema de la facturación en México, y de esta manera facilitar el proceso y comprensión al ir avanzando en la documentación: [**Conoce los conceptos básicos Aquí.**](https://developers.sw.com.mx/knowledge-base/conceptos-basicos/) 📝 ¿Cuales son los Tipos de CFDI que existen? Actualmente, existen seis tipos de CFDI: - **CFDI de Ingreso:** Se emiten principalmente en la prestación de servicios, enajenación de bienes o mercancías, arrendamiento o recibo de honorarios. Su objetivo es demostrar los ingresos de los contribuyentes, por ejemplo: factura electrónica simple, recibo de honorarios, notas de cargo, recibo de arrendamiento, etc. - **CFDI de Egreso:** Se emite cuando existe una devolución de mercancías o la anulación de un CDFI de ingreso. Su objetivo es amparar las salidas de dinero de un contribuyente. - **CFDI de Traslado:** Este CFDI respalda las mercancías que serán trasladadas de un punto a otro para comprobar la legalidad de la posesión de estos bienes. - **CFDI de Nomina:** Es el documento que contiene la información de las retenciones y pagos de los trabajadores. - **CFDI de Recepción de pagos:** Se genera cuando se recibe un pago, se aplica cuando el método de pagos se aplica en parcialidades. - **CFDI de Retención e información de pagos:** Respalda las retenciones de los impuestos que se efectúan o por los pagos que se realizan. 📝 ¿Qué son los complementos de un CFDI? Adicional al CFDI, existen los llamados “Complementos”, es importante que los identifiques y sepas que estos son una extensión determinada a los CFDI. Los Complementos de factura son un comprobante que se adiciona al CFDI, contiene información extra relevante que sirve proporcionar una serie de datos precisos de acuerdo con el sector o actividad fiscal determinada. [**Conoce los complementos Aquí.**](http://omawww.sat.gob.mx/factura/Paginas/emite_complementosdefactura.htm) 📝 ¿Cuáles son los principales requisitos para emitir una factura o CFDI? **Estos son los 5 puntos más importantes que debes tener en cuenta para poder expedir Facturas.** 1 – Estar registrado ante el SAT Es necesario tener registro correcto y valido ante el SAT, ya sea como como Persona Moral o Física. [Saber más](https://www.sat.gob.mx/consulta/09789/lo-que-debes-saber-como-emprendedor-) 2 – Contar con FIEL o E.FIRMA Es necesario contar con FIEL o E.FIRMA (Firma Electrónica Avanzada) emitida por el SAT, este archivo es muy importante ya que te ayudara afirmar electrónicamente algunos tramites. [FIEL o E.FIRMA para personas Morales](https://www.sat.gob.mx/tramites/17074/obten-el-certificado-de-e.firma-para-tu-empresa) [FIEL o E.FIRMA para personas Físicas](https://www.sat.gob.mx/tramites/16703/obten-tu-certificado-de-e.firma) 3 – Contar con CSD Una vez obtenida la FIEL o E.FIRMA lo siguiente es tramitar los Certificados de Sello Digital “CSD”, estos archivos ayudan a sellar los CFDI ya que contienen la información fiscal del emisor. [Guía SAT para tramitar CSD](https://www.gob.mx/sat/acciones-y-programas/certificado-de-sello-digital) [Video apoyo: Cómo tramitar los CSD](https://www.youtube.com/watch?v=cGtCqccfLU8) 4 – Contar con Validez de Obligaciones Debes asegurarte que tus certificados cuenten con validez de obligaciones arriba de “0 (cero)” esto con base a tu situación fiscal, de contar con el numero 0 (cero) en tu validez no podrás expedir facturas y deberás revisar este tema directo con el SAT. ![](https://developers.sw.com.mx/wp-content/uploads/2023/01/Validez-de-Obligaciones.png") 5 – Contar con un sistema de Emisión de Facturas Debes contar con un sistema que cumpla con las validaciones oficiales del SAT y que este a su vez respaldado por un “PAC”, o si cuentas con un sistema propio debes estar conectado de igual forma a los servicios de un “PAC” como lo es SW Sapien® con numero de autorización 16543. --- ![](https://developers.sw.com.mx/wp-content/uploads/2022/04/Paso-2.png) ## **2 –** Credenciales de acceso: **Obtén tu usuario de pruebas para que puedas comenzar tu integración.** **EnSW®** endentemos lo importante que es para ti poder realizar pruebas de tu sistema y estar seguro al momento de lanzarlo al ambiente real. Por lo que contamos con ambiente de pruebas para todos nuestros servicios. Pasos a seguir: 1. El ambiente de Pruebas tiene credenciales de acceso especiales: [Solicita credenciales del “ambiente de pruebas”](https://developers.sw.com.mx/knowledge-base/usuario-de-prueba/) 2. Conoce nuestro ⚒ **Url de Pruebas**: https://services.test.sw.com.mx 3. Identifica y utiliza nuestros [CSD especiales de pruebas](https://developers.sw.com.mx/knowledge-base/donde-encuentro-csd-de-pruebas-vigentes/), ten cuidado de no confundir los CSD con la FIEL o E. FIRMA [¿Cómo diferenciar entre FIEL y CSD?](https://developers.sw.com.mx/knowledge-base/como-diferenciar-entre-fiel-y-csd/) *💡* **Consejo:** Puedes usar RFC reales en este ambiente, pero recomendamos utilizar los de pruebas. --- ![](https://developers.sw.com.mx/wp-content/uploads/2022/04/Paso-4.png) ## **3 –********Autentificación:****** Los primeros pasos Este es el primer paso, donde con tus credenciales realizaras el proceso de autentificación con las que obtendrás un token que te permitirá consumir todos nuestros servicios. ![logo timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_01-inicio-rapido.png) ### Autentificación mediante API Descubre como obtener un token temporal con duración de 3 horas mediante nuestra API [¿Cómo autentificarme?](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) ![logo timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_07-admin.png) ### Autentificación mediante portal ADT Obtén un token infinito que te permitirá consumir los servicios sin necesidad de generarlo en cada petición o cada cierto tiempo. [¿Cómo autentificarme?](https://developers.sw.com.mx/knowledge-base/generar-un-token-infinito/) *💡* **Consejo:** Cada ambiente tiene sus credenciales por lo que es importante no mezclarlas para evitar errores. --- ![](https://developers.sw.com.mx/wp-content/uploads/2022/04/Paso-3.png) ## **4 –** ******Timbrado:****** Conoce nuestras opciones de timbrado Buscamos ofrecerte la mayor comodidad en tus procesos, por lo que ofrecemos diferentes opciones para el timbrado. Contamos con opciones donde puedes sellar y timbrar o simplemente timbrar según tu proceso actual. 📄 Sellar vs Timbrar ¿Cuál es la diferencia entre cada una? Estos términos suelen utilizarse muy frecuentemente en la facturación, Pero ¿qué significan en palabras simples? - **Sellado:** Es el proceso que se establece en la documentación oficial del SAT mediante el cual se toman todos los datos del XML y se encriptan con ayuda de los certificados CSD. Esto genera una cadenada llamada sello que se incluye en el XML y que ayuda a evitar duplicidad y poder verificar la autenticidad del contenido, ya que cualquier alteración en el contenido en el XML posterior al sellado provocara que no concuerde el contenido con el sello. - **Timbrado:** Es el proceso donde el PAC realiza todas las validaciones vigentes que establece el SAT en el XML enviado, incluyendo la validación del sello. Una vez el XML cumple con todas las validaciones, el PAC le asigna un identificador único conocido como UUID y agregó un nodo con toda la información del timbrado que exige la autoridad en su documentación, como lo es, PAC que timbro, UUID, Fecha de timbrado, entre otras cosas. El proceso de sellado puede ser gestionado tanto por el PAC, como el sistema que creara la factura. Únicamente el Timbrado puede ser realizado por el PAC. 📄 ¿Cómo se hace el sellado o en qué consiste? Es el proceso que se establece en la documentación oficial del SAT mediante el cual se toman todos los datos del XML y se encriptan con ayuda de los certificados CSD. Esto genera una cadenada llamada sello que se incluye en el XML y que ayuda a evitar duplicidad y poder verificar la autenticidad del contenido. El sello es el resultado de la firma de la cadena original del CFDI en base64, tiene como propósito emitir comprobantes, acreditar al creador, autenticar y dar integridad al mismo. [**Conoce el proceso de sellado Aquí.**](https://developers.sw.com.mx/knowledge-base/generar-sello-40/) 📄 ¿Dónde puedo ver la estructura de XML y JSON? Entendemos que tener un ejemplo puede ser de gran utilidad para el proceso de timbrado. Hemos creado una sección de ejemplos donde podrás ver los distintos CFDI y sus complementos tanto en formato XML como JSON. **Consulta los ejemplos aquí:** [Ver ejemplos](https://developers.sw.com.mx/article-categories/ejemplos-4-0/) [📜 Anexo 20: Documentación para el armado de un CFDI](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm) [📂 Complementos: Documentación de todos los documentos](https://www.sat.gob.mx/portal/public/tramites/complementos-de-factura) **Selecciona el servicio que mejor se acople a tu desarrollo:** ![logo timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_08-tipos-timbrado.png) ### Emisión timbrado Servicio mediante el cual recibimos un XML para ser sellado y timbrado. Conócelo aquí ![logo timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_08-tipos-timbrado.png) ### Emisión timbrado JSON Servicio que recibe un JSON para ser transformado en XML, sellado y timbrado. Conócelo aquí ![logo timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_10-timbrado-v4.png) ### Timbrado También conocido como timbrado corporativo, es un servicio donde recibimos un XML previamente sellado para únicamente timbrarlo. Conócelo aquí *💡* **Consejo:** Cualquiera de los servicios de timbrado permite timbrar un CFDI con cualquier complemento, sin necesidad de especificarlo en la petición. --- ![](https://developers.sw.com.mx/wp-content/uploads/2022/04/Paso-2.png) ## **5 –** ****Extras:**** Conoce que más tenemos para TI **¿Necesitas algo más?** Es posible que adicional al timbrado, se necesite la generación de PDF, él envió de un Email o algunas características extras. Puedes ver algunas opciones que ofrecemos para TI ![logo timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_18-erp.png) ### PDF y Email Conoce nuestros servicios para la generación y regeneración del PDF de tus CFDI´s, así como la opción para enviar un email a 1 o máximo 5 correos Conócelo aquí ![logo timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_09-retenciones.png) ### Timbrado V4 Servicio de timbrado que te permitirá realizar más funcionalidades en un mismo paso. Disponible en los 3 tipos de timbrado Conócelo aquí ![logo timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_12-complementarios.png) ### Validaciones y listas Descubre nuestro servicio de validación de CFDI sin importar que n no haya sido timbrado con nosotros y tambien nuestro servicio para validar que un RFC no se encuentrre en la Lista 69-B Conócelo aquí *💡* **Consejo:** Algunos servicios pueden tener costo extra por lo que recomendamos acercarse con su ejecutiva. --- ![](https://developers.sw.com.mx/wp-content/uploads/2022/04/Paso-6.png) ## **6 –**************Cancelaciones************ Completa el flujo de la facturación con nosotros Entendemos que es importante completar el flujo en la facturación, por lo que en SW contamos con el servicio de cancelación y servicios relacionados a este, para que estes preparado. ![logo timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_13-consultas.png) ### Flujo de cancelación Las cancelaciones de CFDI implican el proceso de invalidar una factura electrónica previamente emitida. Este procedimiento es esencial para corregir errores, evitar problemas fiscales. Puedes encontrar lo que necesitas saber en este artículo. [Conócelo aquí](https://developers.sw.com.mx/knowledge-base/proceso-de-cancelacion-de-cfdi/) ![logo timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_11-cancelaciones.png) ### Proceso para la cancelación El proceso completo de cancelación puede requerir ejecutar ciertos pasos, conócelos aquí. Consulta los servicios *💡* **Consejo:** Recomendamos que después de cada cancelación, se realice la consulta del estatus de la factura. --- ![](https://developers.sw.com.mx/wp-content/uploads/2022/04/Paso-7.png) ## **7 –****************¡**************Pase a productivo**************!************** Ya estás en el último paso Ahora que has realizado con éxito tus pruebas, será momento de dar el último paso y empezar a facturar. Pasos a seguir: - El ambiente productivo tiene credenciales de acceso especiales por lo que será necesario que se las solicites a tu ejecutiva o mandarnos un correo a soporte@sw.com.mx - Conoce nuestro ⚒ **Url Productivo**: https://services.sw.com.mx - Es momento de usar los CSD reales y mandar tu primera factura. **¡Listo!** Ahora eres parte de SW® --- **EnSW® endentemos que pueden surgir dudas puntuales con los servicios o algún error en el proceso, por lo que puedes contactarnos a** *soporte@sw.com.mx* --- # Integrate your service with SW sapien®, even if you are outside of Mexico. Fuente: https://developers.sw.com.mx/knowledge-base/integrate-your-service-with-sw-sapien-even-if-you-are-outside-of-mexico/ Categoria: Inicio Rápido Material in English designed especially for you. ![](https://developers.sw.com.mx/wp-content/uploads/2022/04/Paso-1.png) ## 1 – Information and basic concepts of the CFDI (invoice): ****What You Need to Know****. The following articles will help you understand the invoice in Mexico: ![logo timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_01-inicio-rapido.png) ### Electronic invoice (CFDI) version 4.0 [Start Here!?](https://developers.sw.com.mx/knowledge-base/electronic-invoice-cfdi-version-4-0/) ![logo timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_07-admin.png) ### Basic concept [Learn the Basics](https://developers.sw.com.mx/knowledge-base/basic-concepts/) --- ![](https://developers.sw.com.mx/wp-content/uploads/2022/04/Paso-2.png) ## **2 –** Access Credentials: **Get your test user so you can start your integration****.** At **SW®**, we understand how important it is for you to test your system and ensure its security before launching it in the production environment. That’s why we provide a testing environment for all our services. Steps to follow: 1. The testing environment has special access credentials: [Request test environment credentials](https://developers.sw.com.mx/knowledge-base/usuario-de-prueba/) 2. Get to know our ⚒**Test URL**: https://services.test.sw.com.mx 3. Identify and use our **[special test CSDs](https://developers.sw.com.mx/knowledge-base/new-valid-csds-for-testing/)**. Be careful not to confuse CSDs with FIEL or E. FIRMA. *💡* **TIP:** You can use real RFCs in this environment, but we recommend using test RFCs. --- ![](https://developers.sw.com.mx/wp-content/uploads/2022/04/Paso-4.png) ## **3 –********Authentication:****** The first steps This is the first step, where with your credentials you will carry out the authentication process with which you will obtain a token that will allow you to consume all our services. There are two ways to obtain the token: - **API Token:** Obtain a temporary token with a 3-hour validity period through our API. - **Infinite Token:** Obtain an infinite token that will allow you to consume services without having to generate it for each request or every certain period of time. ![logo timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_07-admin.png) ### Authentication Learn both ways to obtain the token here [Learn More](https://developers.sw.com.mx/knowledge-base/generate-access-token/) *💡* **TIP:** Each environment has its own credentials, so it is important not to mix them up to avoid mistakes. --- ![](https://developers.sw.com.mx/wp-content/uploads/2022/04/Paso-3.png) ## **4 –** ******Types of stamping:****** Learn about our stamping options We strive to offer you the greatest convenience in your processes, which is why we offer different stamping options. We offer options where you can seal and stamp, or simply stamp, depending on your current process. 📄 Is ‘Timbrar’ the same as ‘Sellar’ a CFDI? No, ‘Sellar’ a CFDI refers to signing the document with our Digital Stamp Certificate (CSD), so that the authenticity of the document can be verified. To seal the CFDI, the values of important attributes for the SAT are concatenated, representing our original chain. On the other hand, ‘Timbrar’ refers to generating and placing a Digital Fiscal Stamp that validates a Digital Fiscal Receipt over the Internet. This fiscal stamp is obtained by connecting to an Authorized Certification Provider (PAC) over the internet. 📄 Where can I see the structure of XML and JSON? We understand that having an example can be very useful for the stamping process. We’ve created an examples section where you can see the different CFDI forms and their complements in both XML and JSON formats. **See the examples here:** [Examples](https://developers.sw.com.mx/article-categories/ejemplos-4-0/) [📜 Annex 20: Documentation for the preparation of a CFDI](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm) [📂 Add-ons: Complete documentation](https://www.sat.gob.mx/portal/public/tramites/complementos-de-factura) **Select the service that best suits your development:** ![logo timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_08-tipos-timbrado.png) ### Issue Stamping Service through which we receive an XML to be issued and stamped. Explore Now ![logo timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_08-tipos-timbrado.png) ### Issue Stamping JSON Service through which we receive an JSON to be issued and stamped. Explore Now ![logo timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_10-timbrado-v4.png) ### Stamp Also known as corporate stamping, it is a service where we receive a pre-issued XML file and then stamp it. Explore Now *💡* **TIP:** Any of the stamping services allows you to stamp a CFDI with any add-on, without needing to specify it in the request. --- ![](https://developers.sw.com.mx/wp-content/uploads/2022/04/Paso-6.png) ## **5 –**************Cancellations:************ Complete the billing flow with us We understand the importance of completing your billing workflow, so at SW, we offer cancellation and related services to help you prepare. ![logo cancellation](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_11-cancelaciones.png) ### Cancellation of CFDI Learn about the cancellation process Explore Now *💡* **TIP:** We recommend checking the invoice status after each cancellation. --- ![](https://developers.sw.com.mx/wp-content/uploads/2022/04/Paso-7.png) ## **6 –**Go productive**************!************** You’re now on the final step. Now that you’ve successfully completed your tests, it’s time to take the final step and start billing. Steps to follow: - The production environment has special access credentials, so you will need to request them from your executive or send us an email to soporte@sw.com.mx - Get to know our ⚒ **Productive URL**: https://services.sw.com.mx - It’s time to use the real CSDs and send your first real invoice. **Done!**You’re now part of SW® --- At SW® your opinion is very important, please help us by rating this article and leaving your comments. --- # Librerías que facilitan tu proceso de integración Fuente: https://developers.sw.com.mx/knowledge-base/librerias/ Categoria: Inicio Rápido Librerías que facilitan la conexión entre tus aplicaciones y nuestros servicios. **Conoce más de ellas en el siguiente video:** [Librerías](https://www.youtube.com/watch?v=Fil4uuXrxGE). ![](https://developers.sw.com.mx/wp-content/uploads/2021/06/Developers-Icons_C.png) ## Librería de Lenguaje C# - [C# .Net Framework](https://github.com/lunasoft/sw-sdk-dotnet) - [C# .Net Standard, .Net, .Net Core](https://github.com/lunasoft/SW-sdk-NetStandard) - [C# Tools](https://github.com/lunasoft/sw-tools-dotnet) --- ![](https://developers.sw.com.mx/wp-content/uploads/2021/06/Developers-Icons_java.png) ## Librería de Lenguaje Java - [Java 1.6](https://github.com/lunasoft/sw-sdk-java) - [Java 1.8](https://github.com/lunasoft/sdk-java18) --- ![](https://developers.sw.com.mx/wp-content/uploads/2021/06/Developers-Icons_php.png) ## Librería de Lenguaje PHP - [PHP 5.0, 7.0](https://github.com/lunasoft/sw-sdk-php) --- ![](https://developers.sw.com.mx/wp-content/uploads/2021/06/Developers-Icons_FoxPro.png) ## Librería de Lenguaje Visual FoxPro - [Visual FoxPro VFP9](https://github.com/lunasoft/sw-sdk-visual-fox-pro) --- ![](https://developers.sw.com.mx/wp-content/uploads/2021/06/Developers-Icons_visualBasic6.png) ## Librería de Lenguaje Visual Basic 6 - [Visual Basic 6 VB6](https://github.com/lunasoft/sw-sdk-visual-basic-6) --- ![](https://developers.sw.com.mx/wp-content/uploads/2021/06/Developers-Icons_delphi.png) ## Librería de Lenguaje Delphi - [Delphi](https://github.com/lunasoft/sw-sdk-visual-delphi) --- ![](https://developers.sw.com.mx/wp-content/uploads/2022/09/python.png) ## Librería de Lenguaje Python - [Python 3 o](https://github.com/lunasoft/sw-sdk-python) [S](https://github.com/lunasoft/sw-sdk-python)[uperior](https://github.com/lunasoft/sw-sdk-python) --- ![](https://developers.sw.com.mx/wp-content/uploads/2022/08/ruby.png) ## Librería de Lenguaje Ruby - [Ruby 12.2](https://github.com/lunasoft/sw-sdk-ruby) --- ![](https://developers.sw.com.mx/wp-content/uploads/2023/06/js-logo.png) ## Librería de Lenguaje JavaScript - [Node.js](https://github.com/lunasoft/sw-sdk-nodejs) --- [![](https://developers.sw.com.mx/wp-content/uploads/2022/08/Librerias-Imagen-Recortada-1.png)](https://github.com/orgs/lunasoft/repositories) --- # Soluciones para TODOS: Integra tu servicio web con SW sapien®, aún si estas fuera de México. Fuente: https://developers.sw.com.mx/knowledge-base/soluciones-para-todos-integra-tu-servicio-web-con-sw-sapien-aun-si-estas-fuera-de-mexico/ Categoria: Inicio Rápido **Espacio pensado especialmente para TI que estas fuera de México.** [](https://developers.sw.com.mx/wp-content/uploads/2023/01/Video-integracion-extranjero-2-1.mp4) En SW® hemos creado este espacio pensado especialmente para TI que estas fuera de México y que tienes la necesidad de integrarte a los servicios de facturación en nuestro país, es por ello que a continuación encontrarás a manera de guía el contexto y proceso necesario para tener las bases y facilitar la comprensión en el tema de la facturación. ![](https://developers.sw.com.mx/wp-content/uploads/2022/04/Paso-1.png) ## ****1 – Facturación en México: Antecedentes y Contexto**** **Contexto.** 📝 Antecedentes La facturación en México tiene como antecedente la expedición del documento mediante formato impreso o “papel”, en el año 2004 se avala por la autoridad Fiscal “**SAT” (S**ervicio de **A**dministración **Tributaria) e**l nuevo esquema de Facturación Electrónica. En 2005 surge la primera factura digitalizada, nombrada **“CFD**” (**C**omprobante **F**iscal **D**igital), esta sería la **Versión 1.0** cuya característica principal es que se podía almacenar en una computadora, sin contar aun con mayores autorizaciones para el timbrado. A lo largo de estos primeros añosse van aplicando nuevas medidas y en el **año 2010 se inicia la versión 2.0**, esto trae consigo la aparición de los denominados “**PAC”**  (**P**roveedores **A**utorizados de **C**ertificación)  con la intención de validar y certificar los comprobantes digitales. En este mismo año el CFD evoluciona y se convierte en “**CFDI”** (**C**omprobante **F**iscal **D**igital por **I**nternet) siendo este modelo de factura electrónica el que se mantiene hasta la actualidad. En el año 2012 se expiden las ultimas facturas en “papel”, a partir de ese año comienza la obligatoriedad total del **CFDI**. A lo largo de los años va evolucionando la facturación, así como las versiones del **CFDI**, actualmente para **este año 2025 contamos en México con la Versión del CFDI más reciente versión que es CFDI 4.0** **mismo** **que es único y obligatorio desde el 01 abril 2023.** 📝 ¿Qué es el SAT y cuál es su función en temas de facturación? El “**SAT** = **S**ervicio de **A**dministración **T**ributaria”, es una dependencia pública federal que se encarga de la recaudación, impuestos y vigilar el cumplimiento de las obligaciones fiscales en México. Podemos interpretar al SAT como la máxima autoridad para temas de facturación o CFDI en México. 📝 ¿Qué es un PAC y cuál es su función en temas de facturación? Un “**PAC** = **P**roveedor **A**utorizado de **C**ertificación”, es una empresa que cuenta con la autorización del SAT para generar y procesar los CFDI para efectos fiscales por medios electrónicos y de manera 100% digital. Una de las actividades que realizan son las validaciones que consisten en revisar la integración del archivo XML, asegurándose que cumple con el estándar tecnológico vigente definido por el SAT, así mismo tiene como obligación, enviar a la autoridad la copia de los CFDI que validen de sus clientes. Una vez que el PAC realiza todas las validaciones, timbra o certifica el archivo y así este se convierte en una Factura Digital. ![](https://developers.sw.com.mx/wp-content/uploads/2023/02/Proceso-Facturacion-1.png) ✍ **Lo que debes Saber:** **SW Sapien®** es nuestro Nombre o Identificador Comercial **LunaSoft®**es nuestro registro ante el SAT como **P**roveedor **A**utorizado de ****C****ertificación(PAC) con numero de autorización 16543. Fuente oficial SAT: [Proveedores Autorizados de Certificación (PAC´S)](https://www.sat.gob.mx/consulta/76969/proveedores-autorizados-de-certificacion-(pac%C2%B4s)-#:~:text=Un%20Proveedor%20Autorizado%20de%20Certificaci%C3%B3n,y%20de%20manera%20100%25%20digital.) 📝 Conceptos básicos para entender el CFDI Antes de seguir, te invitamos a conocer los conceptos más utilizados para el tema de la facturación en México, y de esta manera facilitar el proceso y comprensión al ir avanzando en la documentación: [Conceptos Básicos](https://developers.sw.com.mx/knowledge-base/conceptos-basicos/) 📝 ¿Cuáles son los Tipos de CFDI que existen? Actualmente, existen seis tipos de CFDI: **CFDI de Retención e información de pagos:** Respalda las retenciones de los impuestos que se efectúan o por los pagos que se realizan. **CFDI de Ingreso:** Se emiten principalmente en la prestación de servicios, enajenación de bienes o mercancías, arrendamiento o recibo de honorarios. Su objetivo es demostrar los ingresos de los contribuyentes, por ejemplo: factura electrónica simple, recibo de honorarios, notas de cargo, recibo de arrendamiento, etc. **CFDI de Egreso:** Se emite cuando existe una devolución de mercancías o la anulación de un CDFI de ingreso. Su objetivo es amparar las salidas de dinero de un contribuyente. **CFDI de Traslado:** Este CFDI respalda las mercancías que serán trasladadas de un punto a otro para comprobar la legalidad de la posesión de estos bienes. **CFDI de Nomina:** Es el documento que contiene la información de las retenciones y pagos de los trabajadores. **CFDI de Recepción de pagos:** Se genera cuando se recibe un pago, se aplica cuando el método de pagos se aplica en parcialidades. 📝 ¿Qué son los complementos de un CFDI? Adicional al CFDI, existen los llamados “Complementos”, es importante que los identifiques y sepas que estos son una extensión determinada a los CFDI. Los Complementos de factura son un comprobante que se adiciona al CFDI, contiene información extra relevante que sirve proporcionar una serie de datos precisos de acuerdo con el sector o actividad fiscal determinada. [Ver Complementos de Factura](http://omawww.sat.gob.mx/factura/Paginas/emite_complementosdefactura.htm) **Estructura y documentación.** 📝 ¿Cuáles son los principales requisitos para emitir una factura o CFDI? **Estos son los 5 puntos más importantes que debes tener en cuenta para poder expedir Facturas.** 📝 1 – Estar registrado ante el SAT Es necesario tener registro correcto y valido ante el SAT, ya sea como como Persona Moral o Física. [Saber más](https://www.sat.gob.mx/consulta/09789/lo-que-debes-saber-como-emprendedor-) 📝 2 – Contar con FIEL o E.FIRMA Es necesario contar con FIEL o E.FIRMA (Firma Electrónica Avanzada) emitida por el SAT, este archivo es muy importante ya que te ayudara afirmar electrónicamente algunos trámites. [FIEL o E.FIRMA para personas Morales](https://www.sat.gob.mx/tramites/17074/obten-el-certificado-de-e.firma-para-tu-empresa) [FIEL o E.FIRMA para personas Fisicas](https://www.sat.gob.mx/tramites/16703/obten-tu-certificado-de-e.firma) 📝 3 – Contar con CSD Una vez obtenida la FIEL o E.FIRMA lo siguiente es tramitar los Certificados de Sello Digital “CSD”, estos archivos ayudan a sellar los CFDI ya que contienen la información fiscal del emisor. [Guía SAT para tramitar CSD](https://www.gob.mx/sat/acciones-y-programas/certificado-de-sello-digital) [Video apoyo: Cómo tramitar los CSD](https://www.youtube.com/watch?v=cGtCqccfLU8) 📝 4 – Contar con Validez de Obligaciones Debes asegurarte de que tus certificados cuenten con validez de obligaciones arriba de “0 (cero)” esto con base a tu situación fiscal, de contar con el numero 0 (cero) en tu validez no podrás expedir facturas y deberás revisar este tema directo con el SAT. ![](https://developers.sw.com.mx/wp-content/uploads/2023/01/Validez-de-Obligaciones.png") 📝 5 – Contar con un sistema de Emisión de Facturas Debes contar con un sistema que cumpla con las validaciones oficiales del SAT y que este a su vez respaldado por un “PAC”, o si cuentas con un sistema propio debes estar conectado de igual forma a los servicios de un “PAC” como lo es SW Sapien® con numero de autorización 16543. 📝 Normatividad **Fundamentos Básicos** 📝 ¿Por qué debo facturar? En México conforme al artículo 29 del Código Fiscal de la Federación, todos los contribuyentes están obligados a emitir Factura Electrónica, esto quiere decir que toda persona física y moral, al realizar sus actividades por las que reciben un ingreso, tienen la obligación de expedir un comprobante electrónico llamado CFDI (Comprobante fiscal digital por internet), este comprobante digital sirve como prueba o evidencia a la hora de presentar los impuestos o de alguna revisión por parte de la autoridad. El Código Fiscal de la Federación o CFF se encarga de regular la aplicación de las contribuciones que impone el Estado, como son: impuestos, aportaciones de seguridad social, contribuciones de mejoras y derechos. [Código Fiscal de la Federación o CFF](https://www.gob.mx/profepa/documentos/codigo-fiscal-de-la-federacion) 📝 Tipos de Contribuyentes El termino “Contribuyente” es aquella figura que tenga actividad económica, puedes ser: - **Contribuyente persona Física** = Un individuo con actividad económica. - **Contribuyente persona Moral** = Varios Individuos formando una Empresa (Unidad Contribuyente). Los Contribuyentes deben pertenecer a un llamado “Régimen Fiscal”, de acuerdo a su actividad económica, podemos interpretar como que el “régimen” son las normas y obligaciones que deberá seguir el contribuyente de acuerdo a su actividad. [Identifica el régimen fiscal al que perteneces](https://www.sat.gob.mx/consulta/09788/emprendedor,-conoce-los-regimenes-fiscales-de-las-personas-fisicas) **Ley y Documentos Fiscales** 📝 ¿Qué leyes conforman el CFDI? Existen diferentes leyes o documentos legales que intervienen en la creación del CFDI o Factura, cada uno de estos documentos regulan tanto el momento de la emisión como los elementos que lo componen. Así como los diferentes elementos fiscales que debe de contener. **Código Fiscal de la Federación CFF** Esta ley nos muestra las generalidades del CFDI, el por qué estamos obligados a emitir, las multas en las que podemos incurrir al no cumplir la obligación y diferentes cuestiones relacionadas a este tema. Esta es la ley en donde podemos encontrar más información y obligaciones respecto a este tema. **Ley IVA** En esta ley podemos encontrar todas las cuestiones relacionadas con este impuesto, y de cómo este mismo debe de ser expresado dentro del CFDI. **Ley ISR** La ley del ISR nos dice la importancia que tienen los CFDI a la hora de calcular dicho impuesto, ya que estos son la evidencia de las ventas que tuvimos en determinado mes. **Miscelánea Fiscal** Este documento nos da una serie de reglas que se deben de seguir para dar un buen cumplimiento a nuestras obligaciones fiscales tanto de impuestos como de expedición de CFDI. 📝 Estructura de un CFDI La estructura dependerá del “**Tipo de CFDI**“, cada uno tiene elementos diferentes. En SW® tenemos construidos ejemplos en formato XML para facilitar este proceso, también te sugerimos siempre tener a la mano la documentación oficial del SAT. A continuación, te compartimos los links así como una descripción|y tips para un mejor aprovechamiento de cada uno de ellos: [Ejemplos SW®](https://developers.sw.com.mx/article-categories/ejemplos-4-0/) [Documentación SAT](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20_version3-3.htm)[CFDI Ingreso | Egreso](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20_version3-3.htm) [Documentación SAT](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/complemento_nomina.htm)[CFDI de Nómina](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/complemento_nomina.htm) [Documentación SAT](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/CFDI_retenciones.htm)[CFDI de Retención e Información de Pagos](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/CFDI_retenciones.htm) [Documentación SAT](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/complemento_carta_porte.htm)[CFDI de Traslado (Complemento Carta Porte)](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/complemento_carta_porte.htm) [Documentación SAT CFDI de Pagos](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/recepcion_de_pagos.htm) [Documentación SAT CFDI Comercio Exterior V1.1](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/complemento_comercio_exterior.htm) --- **Tips de Interpretación ¿Para qué me sirve cada documento?** A continuación de forma breve describiremos uso y algunos Tips que facilitaran tu interacción con cada documento: ⚙ **Documentos para construcción y estructura** 📝 Esquema (xsd) Se utiliza para describir la estructura, las restricciones o reglas definidas para construir un archivo XML. **TIP:** Este documento te ayudará a entender la estructura XML de un CFDI y ver su composición, también puede ayudarte a resolver alguna duda estructural, te sugerimos buscar el atributo de forma precisa para ver su composición. 📝 Estándar Documentación técnica en donde puedes encontrar la validación de cada atributo haciendo referencia al XML, puede servir como guía para las validaciones de cada nodo. **Tip:** Te sugerimos para una mejor comprensión previamente revisar las guías de llenado, después este documento estándar te servirá para aclarar dudas, por ejemplo; verificar el tipo de datos, cantidad de decimales o caracteres que son aceptados. 📝 Matriz de Errores Es un documento que recopila las claves de errores, descripción, así como el atributo que se ve afectado y sus posibles causas de acuerdo a la estructura del CFDI y Complementos. **Tip:** Para una mejor comprensión sugerimos leer tanto la columna descripción como validación, ya que, en esta se suele dar algunas causas del error, también debes saber que este documento hacer referencia y las reglas que se validan están descritas en el Estándar, puede que ahí sea más entendible la estructura. 📝 Secuencia de cadena original Es una secuencia de datos formada con la información más relevante contenida dentro del CFDI (concatenación de datos), se requiere para la generación del sello. **Tip:** En el Estándar se menciona como crearla y las reglas, considerar tener la más actualizada. 📝 Catálogo de datos (xsd) Es una lista de valores admitidos en un atributo del CFDI, este formato de catálogo contiene únicamente la Clave sin descripción, (La descripción la pues encontrar en el Catálogo ordinario que no es xsd). **Tip:** Si no se elige algún valor de dicho catálogo o lista se producirá un error y no se logrará el timbrado del CFDI. 📝 Patrón de Datos Es el formato de acuerdo al SAT en el que tiene que ir cada atributo, cuanta con ciertas validaciones para dar un formato en específico. **Tip:** Se recomienda tenerlo a la par con el Esquema (xsd). Fuente: [Sitio oficial del SAT](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20_version3-3.htm) --- **Documentos para realizar el llena** 📝 Guías de llenado Estas guías apoyan al usuario final para el correcto llenado del CFDI. **Tip:** Si tienes duda de cómo se debe completar un campo a nivel usuario puedes apoyarte de estas guías, toma en cuenta que existen una para cada versión del CFDI 3.3 o CFDI 4.0 y su contenido puede variar. 📝 Catálogos Es una lista de valores admitidos del CFDI, este catálogo si contiene la clave y descripción a diferencia del Catálogo de datos (xsd) que es únicamente la clave. **Tip:** **[Ver Video: ¿Cómo ubicar e Interpretar los catálogos para CFDI 4.0?](https://www.youtube.com/watch?v=oayEIbr_koM)** Fuente: [Sitio oficial del SAT](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20_version3-3.htm) 📝 Ejemplos de CFDI y Complementos Consulta nuestros ejemplos que facilitaran la construcción de tus CFDI y Complementos: [Ejemplos 4.0 en XML o JSON](https://developers.sw.com.mx/article-categories/ejemplos-4-0/) ![](https://developers.sw.com.mx/wp-content/uploads/2022/04/Paso-2.png) ## **2 –** Servicios y Herramientas SW®: **Métodos de Timbrado, Ambiente de pruebas y más…** Conoce los servicios que ofrecemos, así como sus distintos métodos para completar tu sistema de facturación. ![Timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_10-timbrado-v4.png) ## Servicio de Timbrado ![Timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_10-timbrado-v4.png) ### Timbrado Timbramos tu comprobante en XML previamente sellado. [Conoce más](https://developers.sw.com.mx/knowledge-base/servicio-de-timbrado/) ![Timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_10-timbrado-v4.png) ### Emisión Timbrado Timbramos y sellamos tu comprobante en XML. [Conoce más](https://developers.sw.com.mx/knowledge-base/emision-timbrado-cfdi/) ![Timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_10-timbrado-v4.png) ### Emisión Timbrado JSON Timbramos y sellamos tu comprobante en JSON. [Conoce más](https://developers.sw.com.mx/knowledge-base/emision-timbrado-json-cfdi/) ![Cancelación](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_11-cancelaciones.png) ## Servicios de Cancelación y servicios relacionados ![cancelación](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_11-cancelaciones.png) ### Consulta de estatus Mediante este servicio podras consultar el estatus de una factura. [Ver más](https://developers.sw.com.mx/knowledge-base/servicio-publico-de-consulta-estatus-cfdi-sat/) ![cancelación](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_11-cancelaciones.png) ### Consulta de CFDI relacionados antes de cancelar Mediante este servicio podrás consultar los CFDI que estén relacionados a una factura y sabes si es susceptible a ser cancelada o no. [Ver más](https://developers.sw.com.mx/knowledge-base/consulta-cfdi-relacionados/) ![cancelación](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_11-cancelaciones.png) ### Consulta solicitudes pendientes de aceptación y rechazo Mediante este servicio podrás consultar las solicitudes pendientes de aceptación o rechazo. [Ver más](https://developers.sw.com.mx/knowledge-base/consulta-de-solicitudes-pendientes-de-cancelacion/) ![cancelación](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_11-cancelaciones.png) ### Aceptar o rechazar solicitudes del receptor Servicio mediante el cual el receptor podrá manifestar la aceptación o rechazo de la solicitud de cancelación. [Ver más](https://developers.sw.com.mx/knowledge-base/aceptar-o-rechazar-cancelacion-cfdi/) ![cancelación](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_11-cancelaciones.png) ### Cancelación de CFDI Servicio mediante el cual podrás realizar las cancelaciones de tus comprobantes a través de los diferentes métodos disponibles. [Ver más](https://developers.sw.com.mx/knowledge-base/cancelacion-cfdi/) ![Otros](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_09-retenciones.png) ## Otros servicios ![](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_17-guias.png) ### Validaciones Servicio mediante el cual se valida integridad, sello, errores de estructura, matriz de errores del SAT incluyendo complementos. [Ver más](https://developers.sw.com.mx/knowledge-base/validacion-cfdi/) ![](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_17-guias.png) ### Lista 69B Servicio mediante el cual puedes identificar EFOS, es decir, si un contribuyente está en la lista 69-B [Ver más](https://developers.sw.com.mx/knowledge-base/lista-69-b/) ![](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_13-consultas.png) ### Recupera XML por UUID Servicio para recuperar información de un XML timbrado con SW. [Ver más](https://developers.sw.com.mx/knowledge-base/recuperar-xml-por-uuid/) ![](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_03-ejemplos.png) ### Generación de PDF Servicio mediante el cual se genera un PDF a partir de un documento XML y una plantilla. [Ver más](https://developers.sw.com.mx/knowledge-base/servicio-de-generacion-de-pdf/) ![](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_03-ejemplos.png) ### Regeneración de PDF Servicio mediante el cual podrá generar o regenerar un PDF de un CFDI previamente timbrados y podrá guardar el PDF en nuestro ADT. [Ver más](https://developers.sw.com.mx/knowledge-base/regenerar-pdf/) ![](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_01-inicio-rapido.png) ### Reenvío de email Servicio mediante el cual puedes realizar el reenvío de un XML y/o PDF existente mediante su UUID a través de correo electrónico. [Ver más](https://developers.sw.com.mx/knowledge-base/reenvio-pdf-email/) ![](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_07-admin.png) ### Usuarios Servicio para gestionar los Usuarios y sus movimientos de saldos. [Ver más](https://developers.sw.com.mx/knowledge-base/api-usuarios-v2/) ![](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_06-apoyo.png) ### Certificados Servicio para gestionar los certificados CSD de tu cuenta, será posible cargar, consultar y eliminar los certificados. [Ver más](https://developers.sw.com.mx/knowledge-base/api-certificados/) ![](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_02-servicios.png) ### Timbrado V4 Servicio de Timbrado en donde se pueden especificar parámetros extras, como lo son; Custom ID, Envío Email, o Guardar PDF. [Ver más](https://developers.sw.com.mx/article-categories/timbrado-customid/) ![Timbrado](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_18-erp.png) ## Extras y herramientas ![](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_06-apoyo.png) ### Librerías Conoce nuestras librerías que facilitan la conexión entre tus aplicaciones y nuestros servicios. [Ver más](https://developers.sw.com.mx/knowledge-base/librerias/) ![](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_16-herramientas.png) ### Api Reference Conoce nuestra Api Reference con todos nuestras APIs y su respectiva información para el consumo de nuestros servicio. [Ver más](https://www.postman.com/development-swsapien/sw-api-developers/overview) ![](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_07-admin.png) ### Administrador de Timbres (ADT) Conoce nuestro sistema administrador de timbres o ADT donde se almacenan y muestran tus CFDI timbrados junto con otras funcionalidades y dispónible en ambos ambientes. [Ver más](https://developers.sw.com.mx/knowledge-base/manual-administrador-de-timbres/) ![](https://developers.sw.com.mx/wp-content/uploads/2022/04/Paso-5.png) ## **3 –** **********Fácil proceso de Integración********** creado especialmente para clientes fuera de México. Queremos acompañarte en tu proceso, por lo que te compartimos una serie de pasos a seguir. 1️⃣ Credenciales de acceso y Autentificación 🔑 **Obtén tus credenciales de pruebas** **EnSW®** endentemos lo importante que es para ti poder realizar pruebas de tu sistema y estar seguro al momento de lanzarlo al ambiente real. Por lo que contamos con ambiente de pruebas para todos nuestros servicios. Pasos a seguir: Identifica y utiliza nuestros [CSD especiales de pruebas](https://developers.sw.com.mx/knowledge-base/donde-encuentro-csd-de-pruebas-vigentes/), ten cuidado de no confundir los CSD con la FIEL o E. FIRMA [¿Cómo diferenciar entre FIEL y CSD?](https://developers.sw.com.mx/knowledge-base/como-diferenciar-entre-fiel-y-csd/) El ambiente de Pruebas tiene credenciales de acceso especiales: [Solicita credenciales del “ambiente de pruebas”](https://developers.sw.com.mx/knowledge-base/usuario-de-prueba/) Conoce nuestro ⚒ **Url de Pruebas**: https://services.test.sw.com.mx **Autentificación** Este es el primer paso, donde con tus credenciales realizaras el proceso de autentificación con las que obtendrás un token que te permitirá consumir todos nuestros servicios. Existen 2 formas de autentificarte: - **Token temporal:** Descubre como obtener un token temporal con duración de 3 horas mediante nuestra API: [Más información](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) - **Token infinito:** Obtén un token infinito que te permitirá consumir los servicios sin necesidad de generarlo en cada petición o cada cierto tiempo. [Más información](https://developers.sw.com.mx/knowledge-base/generar-un-token-infinito/) 2️⃣ Selecciona el servicio de timbrado 📄 Lo primero es familiarizarte e identificar el tipo de servicio o método de timbrado que vas a consumir, en el punto 2 tuviste oportunidad de conocer nuestras opciones; - [Timbrado](https://developers.sw.com.mx/knowledge-base/timbrado/) = Timbramos tu comprobante en XML previamente sellado. - [Emisión Timbrado](https://developers.sw.com.mx/knowledge-base/emision-timbrado-cfdi-3-3/) = Timbramos y sellamos tu comprobante en XML - [Emisión Timbrado JSON](https://developers.sw.com.mx/knowledge-base/emision-timbrado-json-cfdi-3-3/)= Timbramos y sellamos tu comprobante en Json Recomendación de los expertos: Contamos con distintas versiones de respuesta donde cada una te regresa cierta cantidad de datos, procura tener identificada la versión de respuesta que vas a consumir Versiones [De Respuesta – Timbrado Masivo CFDI (sw.com.mx)](https://developers.sw.com.mx/knowledge-base/versiones-de-respuesta-timbrado/) 3️⃣ Realiza las pruebas necesarias 🛠️🔍 Una vez que has seleccionado el tipo de timbrado y te has autentificado, puedes realizar tus primeros timbres en pruebas. Recomendación de los expertos: - Si necesitas ejemplos de la estructura, puede consultar nuestros [Ejemplos en XML o JSON](https://developers.sw.com.mx/article-categories/ejemplos-4-0/) - Si necesitas un ejemplo listo para timbrarse, prueba con nuestra [herramienta para generar ejemplos.](https://developers.sw.com.mx/knowledge-base/herramienta-generador-ejemplos/) - Si lo necesitas vuelve a revisar nuestro [Repositorio de Librerías](https://github.com/orgs/lunasoft/repositories) en distintos lenguajes - Recuerda que tenemos una colección de [API´S](https://developers.sw.com.mx/article-categories/apis/) que te facilitaran el proceso. **Si deseas conocer cuáles son los atributos del CFDI, sus características y si son requeridos, condicionales u opcionales, la autoridad brinda [estándares y guías de llenado que puedes encontrar aquí.](https://developers.sw.com.mx/knowledge-base/documentacion-sat-4-0-catalogos/)** 4️⃣ Revisa servicios extra y ayuda ⚙️📌 **¿Necesitas algo más?** Es posible que adicional al timbrado, se necesite la cancelación de facturas, la generación de PDF, él envió de un Email o algunas características extras. En el punto 2 se comparten nuestros servicios, los cuales te invitamos a revisarlos a detalle. **¿Ayuda?** *Entendemos que este proceso puede ser algo complicado, por eso, ante cualquier duda y/o código de error, no dudes en contactarnos a* **soporte@sw.com.mx** *y con gusto un Ingeniero de soporte te asesorará personalmente para que puedas continuar* 5️⃣ Pase a productivo 🚀🎉 Ahora que has realizado con éxito tus pruebas, será momento de dar el último paso y empezar a facturar. Pasos a seguir: - El ambiente productivo tiene credenciales de acceso especiales por lo que será necesario que se las solicites a tu ejecutiva o mandarnos un correo a soporte@sw.com.mx - Conoce nuestro ⚒ **Url Productivo**: https://services.sw.com.mx - Es momento de usar los CSD reales y mandar tu primera factura. **¡Listo!** Ahora eres parte de SW® *💡* **Consejo:** Esta serie de pasos es una versión resumida, por lo que te invitamos a consultar nuestro articulo más amplio de integración. [Integra con nosotros en 7 pasos.](https://developers.sw.com.mx/knowledge-base/nuevo-inicio-rapido/) --- ✨ **Bienvenido a SW Sapien®**, **A continuación, te compartimos vínculos de importancia para TI.** - Conoce nuestro [Sistema Administrador de Timbre “ADT”](https://developers.sw.com.mx/article-categories/administrador-de-timbres-adt-2-0/) - [Consulta la disponibilidad del servicio SW Smarter®](https://status.sw.com.mx/) - Mantente siempre informado visitando la sección [“Avisos”](https://developers.sw.com.mx/?s=avisos&ht-kb-search=1) - Visita nuestra sección [“tipSW”](https://developers.sw.com.mx/article-categories/tipssw/) para solución de problemas y sugerencias - Si tienes dudas acerca de los datos ingresados en el CFDI puedes utilizar: [Validador SAT para RFC, nombre y código postal.](https://developers.sw.com.mx/knowledge-base/validador-sat-para-rfc-nombre-y-codigo-postal-2/) --- # Portal de Nóminas Fuente: https://developers.sw.com.mx/knowledge-base/portal-de-nominas/ Categoria: Portales Corporativos Válida en automático tus comprobantes de nóminas. Es un sistema para la consulta de recibos de nómina por parte de los empleados y administración. Los empleados podrán consultar, confirmar y enviar por correo sus recibos de nómina sustituyendo la entrega de recibos físicos. ![](https://developers.sw.com.mx/wp-content/uploads/2025/03/Diagrama-Portal-Nominas-1024x552.png) ![](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_14-servicio.png) **Contáctanos** --- # Portal de Proveedores  Fuente: https://developers.sw.com.mx/knowledge-base/portal-de-proveedores/ Categoria: Portales Corporativos Automatiza el proceso de recepción y validación de documentos de tus proveedores hasta en un 90%. Es una solución que apoya a la recepción, administración y validación de los comprobantes fiscales digitales emitidos por los proveedores, además de generar afectaciones a los módulos del ERP de forma automática permitiendo el ahorro de tiempo y eliminando errores. ![](https://developers.sw.com.mx/wp-content/uploads/2025/03/Diagrama-CEPDI-1024x516.png) **Video:** [Portal de Proveedores administra y valida CFDIs](https://www.youtube.com/watch?v=CRjnAKI3HnE&t=2s) ![](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_14-servicio.png) **Contáctanos** --- # Portal de Web tickets Fuente: https://developers.sw.com.mx/knowledge-base/portal-de-web-tickets/ Categoria: Portales Corporativos Portal Web de Emisión de CFDI donde tus clientes, con un ticket de compra, podrán emitir, consultar y descargar sus facturas electrónicas en todo lugar y en todo momento. ![](https://developers.sw.com.mx/wp-content/uploads/2025/03/Diagrama-Portal-Web-tickets-1024x561.png) ![](https://developers.sw.com.mx/wp-content/uploads/2024/07/developers-icons_14-servicio.png) **Contáctanos** --- # Preguntas Frecuentes | Conceptual - Fiscal Fuente: https://developers.sw.com.mx/knowledge-base/faq-conceptual-fiscal/ Categoria: Preguntas Frecuentes - FAQ Total de preguntas: 14 · 6 categorías. ## CFDI 4.0 ### ¿Se pueden emitir notas de crédito a público en general? Tecnológicamente se puede realizar, fiscalmente la autoridad puede poner focos rojos a estas operaciones y generar requerimientos de información para aclarar la operación. --- Fundamento Legal: Anexo 20 de la RMF vigente, Guía de llenado del CFDI (Anexo 20) Apéndice 2 Clasificación de los tipos de CFDI, Apéndice 5 Emisión de CFDI de Egresos, Guía de llenado de CFDI Globales. ### ¿Cuál es la versión actual y valida de CFDI? CFDI 4.0, esta versión inicio de vigencia el 1 de enero de 2022, sin embargo la autoridad otorgo un periodo de convivencia para facilitar la adaptación entre el antecesor “CFDI 3.3” y esta nueva versión “CFDI 4.0”, dicha prorroga finalizo el 31 de marzo de 2023, quedando como única y obligatoria la versión CFDI 4.0 a partir del 01 de abril del 2023. --- **Fuente:** [Anexo 20](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm) ### Respecto al tema de Objeto de impuesto clave 01: Una partida con el 100% de descuento ¿también se considera no objeto de impuesto, y puede cambiarse a objeto 01 alguno que sea 02? Los conceptos de objeto o no objeto del impuesto se refieren a que los actos o actividades aludidos son o no objeto del IVA. En la Ley del IVA se especifican las actividades objeto de IVA, las exentas, así como las no objeto, estas últimas son todos los actos que de acuerdo con las definiciones del IVA no sean enajenación de bienes, presentación de servicios, uso de goce temporal, ni importación, entre estas están: Indemnizaciones de seguros en caso de siniestros, premios por algún sorteo, apoyo de becas gubernamentales, Igualmente se consideran no objeto del IVA aquellos que el contribuyente no realiza en territorio nacional conforme a lo establecido en los articulo 10,16 y 21 de la LIVA, no se puede acreditar los gastos relacionados a un acto o actividad no objeto (4-A-A de la LIVA). Sí en una operación conforme a la Ley del IVA el acto o actividad es objeto del impuesto, entonces, de existir un descuento, este se debe de registrar con la clave 02 que corresponde a Sí objeto de impuesto, ya que, aunque la base sea 0 se debe de desglosar los impuestos. --- Fundamento Legal: Artículo 4-A, 5, 10,16 y 21 de la LIVA. ### ¿Cuál es la forma correcta de aplicar un descuento del 100% a una factura? Realizar la factura con los precios reales, y emitir una NC ligada a ese CFDI de ingresos, por el descuento: “sería facturar el total de los productos, y hacer una NC con el descuento que se hará para aplicarla a la factura de ingreso, y de esa manera restar lo que se ofreció de descuento”. --- **Fuente:** [Emisión de notas de crédito](http://omawww.sat.gob.mx/informacion_fiscal/factura_electronica/Documents/Jornada_Material/CDMX_SALA_3/6_Eminotacredito.pdf) ### ¿Qué es Objeto de Impuesto 05 PODEBI? Es un impuesto agregado a los catálogos del CFDI 4.0 a finales del año 2023, este impuesto aplica como un estimulo fiscal a los contribuyentes que lleven a cabo actividades económicas productivas dentro de los Polos de Desarrollo para el Bienestar del Istmo de Tehuantepec (PODEBI). --- **Fuente:** [Objeto de Impuesto 05 PODEBI | SW](https://developers.sw.com.mx/knowledge-base/objeto-de-impuesto-05-podebi/) ### El atributo “FacAtrAdquiriente” habla sobre un PCECFDI: ¿Qué es un PCECFDI y como se interpreta para este atributo? Un “PCECFDI” = “Proveedor de Certificación de expedición de CFDI” En contexto a la interpretación del atributo “FacAtrAdquiriente”, un “PCECFDI”; tiene la autorización para ofrecer el servicio de emisión de CFDI pero por medio del adquiriente de bienes o servicios, es decir, emitir facturas a través de la persona que adquiere tus servicios, compra tus productos o le proporcionas el uso o goce de bienes inmuebles. --- **Fuente:** [PCECFDI | SAT](https://www.sat.gob.mx/gobmx/Paginas/SAT-07-005.html) ## Cancelación ### ¿Hasta qué fecha tengo para cancelar un CFDI del año o ejercicio 2023, y fiscalmente que sucede si cancelo fuera de ese periodo? Se tiene como entendido el plazo para cancelar a más tardar en el mes en que se deba presentar la declaración anual; Persona Física 30 Abril 2024, Persona Moral 31 Marzo 2024. Las consecuencias de hacer la cancelación de un CFDI fuera del tiempo establecido, puede ser una multa que va del 5% al 10% del monto de cada comprobante fiscal. --- Fundamento Legal: Artículo 81 fracción XLVI y artículo 82 fracción XLII del CFF. ### ¿Cuál es la forma correcta de cancelar una factura que tiene 3 tipos de productos y se pide cancelar la factura y emitir 3 distintas? Ejemplo caso practico: Nuestro cliente emite una factura con 3 tipos de combustibles, Magna, Premium y Diesel, su cliente le pide Cancelar la factura y emitir 3 distintas, separando una Maga, otra Premium y otra Diesel, la pregunta es ¿al generar la cancelación cuál Folio Sustitución se debe poner y que motivo, y si en las tres nuevas facturas se debe colocar algún tipo de relación con la factura original?. Respuesta: Se considera que la mejor práctica es, que la factura incorrecta se cancele con el motivo 02: CFDI emitido con errores SIN relación, y cuando haga sus tres facturas, en cada una de ellas le ponga el folio de la que cancelo y tipo de relación es: Sustitución de CFDI previos. Otra opción sería, cancelar con motivo 01: Comprobantes emitidos con errores con relación, y elegir uno de los tres folios de sustitución. --- Recomendamos acercarte con tú Contador o Asesor Fiscal, para de acuerdo con tus procesos fiscales y los de tú clientes, tomen la mejor decisión al respecto. ### Para la cancelación de CFDI con complemento de Nomina, ¿Cómo se expedirá la aceptación? Para la cancelación de este tipo de comprobantes procederá sin la aceptación del receptor sin límite temporal. Solo deberás tomar en cuenta efectos de aplicar la deducción del CFDI de nómina asesorándote con tu contador en todo momento antes de proceder a cancelar. --- **Fuente:** [Proceso de cancelación | SAT](http://omawww.sat.gob.mx/factura/Paginas/cancela_procesocancelacion.htm) ## Carta Porte 3.1 ### En tema del complemento carta porte ¿Hay algún problema fiscalmente en dicho complemento en caso de que un vehículo remolque traiga placas extranjeras, o tienen que ser nacionales forzosamente? Tecnológicamente no existe una validación para el campo Placa del Elemento Remolque, únicamente que cumpla el patrón. Fiscalmente no debe de existir algún inconveniente ya que el transportista debe de documentar su flotilla o el arrendamiento de esta, en su caso. --- Fundamento Legal: Complemento Carta Porte, Instructivos Carta Porte, Preguntas frecuentes complemento Carta Porte. ## Factura Global ### En el tema de la nueva validación de la factura global, ¿se puede relacionar un CFDI de egreso normal? La autoridad fiscal sigue dejando esta facilidad incluso para facturación de CFDI nominativos de operaciones incluidas en una factura global (Apéndice de Guía de llenado de CFDI Globales). --- Fundamento Legal: Anexo 20 de la RMF vigente, Guía de llenado del CFDI (Anexo 20) Apéndice 2 Clasificación de los tipos de CFDI, Apéndice 5 Emisión de CFDI de Egresos, Guía de llenado de CFDI Globales. ### ¿Se puede colocar solo un concepto general por todas las ventas del mes para no tener que agregarlos uno por uno, y además en el importe se puede colocar la suma del total de las ventas sin tener que desglosarlas? No, no es correcto ni recomendable, en virtud de que la autoridad fiscal establece en la regla 2.7.1.21., de la RMF vigente, la forma de expedir comprobantes en operaciones con el público en general, en esta se señalan los requisitos a cumplir para poder facturar con esta facilidad que es la factura global, dentro de los cuales, en el primer párrafo de la regla citada se encuentra la mención de que “los contribuyentes podrán elaborar un CFDI diario, semanal o mensual donde consten los importes correspondientes a cada una de las operaciones realizadas con el público en general del periodo al que corresponda y el número de folio o de operación de los comprobantes de operaciones con el público en general que se hubieran emitido, así contar con sistemas de registro contable electrónico que permitan identificar en forma expresa el valor total de las operaciones celebradas cada día con el público en general, así como el monto de los impuestos trasladados en dichas operaciones”. En los CFDI globales se deberá separar el monto del IVA e IEPS a cargo del contribuyente. Igualmente, en la Guía de llenado del CFDI global Versión 4.0 del CFDI, se establece la forma correcta de llenado de estos comprobantes. --- Fundamento Legal: Regla 2.7.1.21., de la RMF vigente, Anexo 20 de la RMF. ## Pagos 2.0 ### ¿Cuánto tiempo tengo después de terminado el mes para expedir los complementos de pago? El complemento para recepción de pagos debe emitirse a más tardar al quinto día natural del mes inmediato siguiente al que corresponda el o los pagos recibidos --- Fundamento: Regla 2.7.1.32. de la RMISC ## Recibo de Honorarios ### ¿Los Recibos de Honorarios se manejan como un CFDI de tipo Ingreso normal? o hay algún complemento o diferencia en la estructura? Los recibos de honorarios son CFDI de tipo Ingreso como cualquier otro, la diferencia radica en los impuestos que deben agregarse, pero eso dependerá si la persona física le factura a una moral. --- Recomendamos acercarte con tú Contador o Asesor Fiscal, para de acuerdo con tus procesos fiscales y los de tú clientes, tomen la mejor decisión al respecto. --- # Preguntas Frecuentes | Técnico Fuente: https://developers.sw.com.mx/knowledge-base/faq-tecnico/ Categoria: Preguntas Frecuentes - FAQ Total de preguntas: 27 · 8 categorías. ## Addenda ### ¿Puedo agregar/modificar una Addenda a un XML timbrado y se tienen que hacer en un portal en específico o se puede hacer la modificación manual? La addenda sí puede ser colocada posterior al timbrado. Puede ser por medio de un portal o de forma manual, siempre y cuando se cumpla con la estructura requerida. La modificación de la Addenda se basa en la siguiente explicación: - La validez de un comprobante la da el sello que se genera, este sello debe generarse siguiendo ciertos procedimientos, los cuales están en el Anexo 20, incluyen que se use el XSLT correspondiente, que se aplique un método de digestión en conjunto con los certificados del emisor del comprobante, esto es lo que le da validez. - Una vez que el comprobante fue timbrado no puede modificarse ya que al modificarse cualquier dato, la validación del sello no procede. Sin embargo todo esto no aplica para la Addenda, ya que si bien está definido en el XSD que se pueda incluir, no está definida en el XSLT, por lo tanto no forma parte de la cadena original ni del sello. Por eso se dice que la Addenda puede incluirse posterior al timbrado y puede modificarse. --- **Fuente:** [Anexo 20](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm) ### Si al validar un XML manda una advertencia en la addenda, ¿tiene alguna implicación fiscal? Depende en que atributo este la advertencia: - Si es en los impuestos o algún detalle que si sea más fiscal si podría tener cierta implicación (se debe revisar el error en particular). - En caso de que sea un error por motivo de que “algún portal o sistema particular”, (como los de cadenas comerciales) no está logrando leer o cargar la addenda, estaríamos hablando de posibles tema administrativo entre el vendedor (proveedor) y la cadena comercial. Para este caso sugerimos acercarse directamente con el equipo técnico del sistema en donde se desea cargar la addenda. --- Recomendamos acercarte con tu equipo fiscal o contable para consultar dudas en particular con tu operación ## CCE 2.0 ### ¿En dónde puedo consultar ejemplos y documentación técnica del Complemento de Comercio Exterior? Podras encontrarla en nuestro sitio Developers, asi como en el portal del SAT. - https://developers.sw.com.mx/knowledge-base/comercio-exterior-2-0/ - http://omawww.sat.gob.mx/tramitesyservicios/Paginas/complemento\_comercio\_exterior.htm --- **Fuente:** [Developers | SW](https://developers.sw.com.mx/) ### ¿Cuáles fueron los cambios que se aplicaron a esta ultima actualización del complemento de comercio exterior? A continuación te compartimos el comunicado oficial SW® en donde te compartimos los cambios más significativos para esta nueva versión: - https://developers.sw.com.mx/knowledge-base/21-diciembre-2023-publicacion-sat-nueva-version-2-0-complemento-comercio-exterior/ --- **Fuente:** [Developers | SW](https://developers.sw.com.mx/) ### ¿Cuál es la versión oficial vigente para Complemento Comercio Exterior? Actualmente se tiene el Complemento de Comercio Exterior Versión 2.0 - Inicio de vigencia el 18 Enero 2024. --- **Fuente:** [Complemento Comercio Exterior | SAT](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/complemento_comercio_exterior.htm) ## CCP 3.0 ### ¿Cuáles fueron los cambios que se aplicaron a esta ultima actualización del complemento carta porte 3.0? El pasado 25 de septiembre 2023 el SAT publicó una actualización al complemento de carta porte, denominándolo 3.0. Dicha publicación actualiza los documentos: - Documento Estándar - Esquema de Carta Porte - Secuencia de cadena original - Matriz de errores - Esquema de catálogos A su vez, también hay actualización en los catálogos del complemento, y se agregan 7 nuevos: - c\_RegimenAduanero. - c\_RegistroISTMO. - c\_SectorCOFEPRIS. - c\_FormaFarmaceutica. - c\_CondicionesEspeciales. - c\_TipoMateria. - c\_DocumentoAduanero. --- **Fuente:** [Complemento Carta Porte | SAT](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/complemento_carta_porte.htm) ### ¿Cuál es la versión oficial vigente para Complemento Carta Porte? Complemento Carta Porte Versión 3.0 aplicaría como única obligatoria a partir del 01 Abril 2024. - Fin de Vigencia Complemento Carta Porte Versión 2.0 - 31 Marzo 2024 --- **Fuente:** [DOF 29/12/2023 RMF 2024](https://dof.gob.mx/nota_detalle.php?codigo=5713259&fecha=29/12/2023#gsc.tab=0) ## CCP 3.1 ### ¿Dónde puedo consultar ejemplos y documentación técnica? Podras encontrarla en nuestro sitio Developers, asi como en el portal del SAT. - https://developers.sw.com.mx/knowledge-base/carta-porte-3-1-cfdi-4-0/ - http://omawww.sat.gob.mx/tramitesyservicios/Paginas/complemento\_carta\_porte.htm --- **Fuente:** [Developers | SW](https://developers.sw.com.mx/) ### Si tengo más dudas; ¿Dónde puede ver más preguntas frecuentes de este tema? Consulta nuestra sección especial: - https://developers.sw.com.mx/knowledge-base/nueva-version-de-carta-porte-3-1/ --- **Fuente:** [Complemento Carta Porte 3.1 | Developers SW](https://developers.sw.com.mx/knowledge-base/nueva-version-de-carta-porte-3-1/) ## CFDI 4.0 ### ¿Se puede agregar un producto a un CFDI con el 100% descuento colocando la Base como 0.000001 ya que no acepta Base= 0 ? Se puede declarar el costo del producto normalmente en el nodo concepto, solo con el valor del atributo Descuento con la misma cantidad declarada en el atributo Importe. En el nodo de Impuestos trasladados, se debe colocar Base=0 y TasaOCuota=0.000000. --- **Fuente:** [Anexo 20](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm) ### El atributo exportación; ¿Es obligatorio en CFDI 4.0? Si, este atributo es obligatorio --- **Fuente:** [Anexo 20](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm) ### ¿En donde puedo consultar sus ejemplos para CFDI 4.0? Te compartimos nuestra sección especial de ejemplos: - https://developers.sw.com.mx/article-categories/ejemplos-4-0/ --- **Fuente:** [Ejemplos CFDI 4.0 | SW](https://developers.sw.com.mx/article-categories/ejemplos-4-0/) ### ¿En donde puedo consultar la documentación técnica SAT actualizada para CFDI 4.0? En el siguiente articulo, podrás encontrar agrupados las paginas oficiales SAT con la documentación técnica oficial que necesitas: - https://developers.sw.com.mx/article-categories/documentacion-4-0/ --- **Fuente:** [Documentación SAT](https://developers.sw.com.mx/article-categories/documentacion-4-0/) ### ¿Cuentan con un ambiente de pruebas para CFDI 4.0? Si, contamos con un ambiente de pruebas que es exactamente igual al ambiente productivo, con la seguridad de que es un ambiente controlado especial para tus pruebas. --- **Fuente:** [Develpers | SW](https://developers.sw.com.mx/) ### ¿Cuál es la versión actual y valida de CFDI? En este año 2024 es la Versión oficial es CFDI 4.0. Esta versión inicio de vigencia el 1 de enero de 2022, sin embargo la autoridad otorgo un periodo de convivencia para facilitar la adaptación entre el antecesor “CFDI 3.3” y esta nueva versión “CFDI 4.0”, dicha prorroga finalizo el 31 de marzo de 2023, quedando como única y obligatoria la versión CFDI 4.0 a partir del 01 de abril del 2023. --- **Fuente:** [Anexo 20](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm) ## Cancelaciones ### Envié la solicitud de cancelación, y el SAT la acepto y me regreso el acuse de cancelación, al consultar el estatus de la factura me sigue indicando como ACTIVA o VIGENTE ¿A que se debe esta situación? Si se obtiene una repuesta de “cancelación exitosa” con nuestro servicio de cancelación, se sugiere consultar el estatus dentro del Sistema Administrador de Timbres “ADT 2.0” a través del botón: “Actualizar estatus”. Posteriormente verificar de nuevo si el estatus del CFDI cambió a “Cancelado” o a “Cancelación en proceso”, de ser así entonces la petición de cancelación llegó al SAT exitosamente. Si este botón no hace un cambio de estatus y se sigue visualizando como vigente, se sugiere verificar el estatus del comprobante a través de la página de verificación de CFDI https://verificacfdi.facturaelectronica.sat.gob.mx/ proporcionando el UUID y los RFC’s emisor y receptor de comprobante, esto dará información detallada del CFDI y su estatus de cancelación, si no se canceló o no hay estatus de cancelación en proceso, entonces la petición de cancelación no fue exitosa y se deberá enviar nuevamente. --- **Fuente:** [Proceso de cancelación | SAT](http://omawww.sat.gob.mx/factura/Paginas/cancela_procesocancelacion.htm) ### Tengo una factura (“A”) que necesito cancelar con MOTIVO 01, pero la factura ya esta relacionada con otro documento (“B”), ¿Cómo es el proceso y que pasa con el documento que ya está relacionado? Para ejemplificar este proceso, usaremos la siguiente nomenclatura: - La factura por cancelar será el documento “A” - El documento ya existente relacionado a la factura a será “B” - La nueva factura que se debe expedir en sustitución será el documento “C” Paso 1: Se debe elaborar el nuevo documento “C”, al momento de expedirlo debe quedar relacionado al documento “A”. Paso 2: El documento “B” que ya estaba inicialmente relacionado al documento “A”, pasará a ser heredado automáticamente al nuevo documento “C”. Paso 3: Procesa o envía tu solicitud de cancelación para el documento “A” , notarás que el estatus estará como NO CANCELABLE, sin embargo DEBES CONTINUAR Y ENVIAR LA SOLICITUD DE CANCELACIÓN AL SAT BAJO EL MOTIVO 01, el SAT al recibir la solicitud, detectara que dicha solicitud procede de un motivo 01 y que ya existe una relación de documento, así como un tercer documento relacionado que será heredado a la nueva factura “C”, con base en ello procederá satisfactoriamente con tu petición de cancelación únicamente para el documento “A”, el documento “B” quedara activo y ahora relacionado automáticamente al “C” --- **Fuente:** [Proceso de cancelación | SAT](http://omawww.sat.gob.mx/factura/Paginas/cancela_procesocancelacion.htm) ### ¿Cómo es el proceso para la cancelación MOTIVO 01? Para ejemplificar este proceso, usaremos la siguiente nomenclatura: - La factura por cancelar será el documento “A”, - La nueva factura será el documento “B”. Paso 1: Elaborar la factura “B”, al momento de su expedición se debe relacionar a la factura “A” usando el TIPO DE RELACION 04 = SUSTITUCÍÓN DE LOS CFDI PREVIOS. Paso 2: Notaras que al consultar la factura “A” estará con el estatus de NO CANCELABLE, sin embargo DEBES CONTINUAR Y ENVIAR LA SOLICITUD DE CANCELACIÓN AL SAT BAJO EL MOTIVO 01, el SAT al recibir la solicitud, detectara que dicha solicitud procede de un motivo 01 y que ya existe una relación de documento y procederá satisfactoriamente con tu petición de cancelación. --- **Fuente:** [Proceso de cancelación | SAT](http://omawww.sat.gob.mx/factura/Paginas/cancela_procesocancelacion.htm) ### ¿Hasta qué fecha tengo para cancelar un CFDI del año o ejercicio 2023? Se tiene como entendido el plazo para cancelar a más tardar en el mes en que se deba presentar la declaración anual: - Persona Moral 31 Marzo 2024. - Persona Física 30 Abril 2024. --- **Fuente:** [Proceso de cancelación | SAT](http://omawww.sat.gob.mx/factura/Paginas/cancela_procesocancelacion.htm) ### ¿Cuáles son los tipos o modalidades de cancelación? Para el caso de CDFI Cancelable, la cancelación puede proceder: - De forma directa = Sin Aceptación del recepto - De forma Indirecta = Con Aceptación del Receptor. Nota: - En caso de presentar el estatus CFDI NO Cancelable, esto se deberá a que presenta un documento relacionado. --- **Fuente:** [Proceso de cancelación | SAT](http://omawww.sat.gob.mx/factura/Paginas/cancela_procesocancelacion.htm) ## General ### ¿Qué es un PCECFDI? Un “PCECFDI” o “Proveedor de Certificación de expedición de CFDI” a través del adquiriente de bienes o servicios tiene la autorización para ofrecer el servicio de emisión de CFDI pero por medio del adquiriente de bienes o servicios, es decir, emitir facturas a través de la persona que adquiere tus servicios, compra tus productos o le proporcionas el uso o goce de bienes inmuebles. --- **Fuente:** [PCECFDI | SAT](https://www.sat.gob.mx/gobmx/Paginas/SAT-07-005.html) ## Pagos 2.0 ### ¿Cómo saber interpretar el Motivo de Error CRP20238 y CRP20277, Pagos 2.0 Rev. B? Consulta nuestra capsula donde te explicamos como interpretar estos errores y como solucionarlos. --- **Fuente:** [tipSW® | Motivo de Error CRP20238 y CRP20277, Pagos 2.0 Rev. B (Atributo Monto - EquivalenciaDR)](https://youtu.be/L1DZwlTrLAw?si=QtMjTP6Zlg0VL-_L) ### ¿Cómo calculo la EquivalenciaDR para Pagos 2.0 Rev. B? La EquivalenciaDR es igual al tipo de cambio del documento relacionado. Es decir, si el documento relacionado está en USD se representará en USD, si está en Euros se representará en Euros. Es requerido cuando la Moneda de Pago es diferente a la del documento relacionado, es decir: - Si el pago es en MXN y el DecRelacionado es en USD. - La EquivalenciaDR es el numero de unidades en la moneda del Documento relacionado que equivalen a la moneda de pago. - EquivalenciaDR = ImpPagado/Monto(Del Pago) Ejemplo: Tenemos un pago realizado en MXN y el DocRelacionado esta en USD. El monto del pago es de “2000.00 MXN” y El ImpPagado del DocRelacionado es de “102.28 USD” Entonces EquivalenciaDR es igual a 102.28/2000.00 Que da como resultado = 0.05114 Estos 0.05114 Equivalen a 1 Peso MXN --- **Fuente:** [Factura de recepción de pagos | SAT](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/recepcion_de_pagos.htm) ### ¿Cuáles son las nuevas validaciones para el complemento Pagos 2.0 Rev. B? Actualización y ajustes al documento Estándar Se adiciona texto en el numeral iii de la validación correspondiente al Monto, y se ajusta la formula para el limite inferior y superior del numeral iv respecto a la validación Monto. Se adicionan dos párrafos de la validación correspondiente al Monto. Respecto a las validaciones adicionales de BaseP e ImporteP se realizaron precisiones. - Ajustes a la Matriz de Errores - Se adiciona el código de error: CRP20277 - Se realiza un ajuste a los códigos de error siguientes: CRP20238, CRP20267, CRP20268, CRP20273, CRP20274, CRP20275, CRP20276 --- **Fuente:** [Publicación SAT “complemento de recepción de pagos 2.0 revisión B” | Developers SW](https://developers.sw.com.mx/knowledge-base/18-diciembre-2023-publicacion-sat-complemento-de-recepcion-de-pagos-2-0-revision-b/) ### ¿Dónde puedo consultar ejemplos y documentación técnica de Pagos 2.0 Rev B. ? Podras encontrarla en nuestro sitio Developers, asi como en el portal del SAT. - https://developers.sw.com.mx/knowledge-base/complemento-recepcion-de-pagos-2-0-revision-b/ - http://omawww.sat.gob.mx/tramitesyservicios/Paginas/recepcion\_de\_pagos.htm --- **Fuente:** [Developers | SW](https://developers.sw.com.mx/) ### ¿Cuáles fueron los cambios que se aplicaron a esta ultima actualización del complemento de pagos? Te compartimos el comunicado en donde se brinda el detalle de los principales cambios, así como el video informativo: - https://youtu.be/aUrnsgeMZrk?si=7el8hAqeoxLo8vBe --- **Fuente:** [Publicación SAT “complemento de recepción de pagos 2.0 revisión B” | SW](https://developers.sw.com.mx/knowledge-base/18-diciembre-2023-publicacion-sat-complemento-de-recepcion-de-pagos-2-0-revision-b/) ### Cuál es la versión oficial vigente 2024 para Complemento Recepción de Pagos? Actualmente es: Complemento Recepción de Pagos Versión 2.0 Revisión B. - Inicio de vigencia 15 Enero 2024. --- **Fuente:** [Factura de recepción de pagos | SAT](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/recepcion_de_pagos.htm) --- # API Balance V2 – Gestión de Timbres Fuente: https://developers.sw.com.mx/knowledge-base/api-balance-gestion-de-timbres/ Categoria: SW API´S API para la gestión y administración de los saldos como sus movimientos. #### URL´s 🛠️ Pruebas: `https://api.test.sw.com.mx` 📄 🚀 Productivo: `https://api.sw.com.mx` 📄 --- ### **Consulta de Timbres** Revisa el detalle de los timbres disponibles de la cuenta asociada al token solicitado. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **GET** | /management/v2/api/users/balance | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | #### Ejemplo Request ``` curl --location 'https://api.test.sw.com.mx/management/v2/api/users/balance' --header 'Authorization: Bearer $token' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "idUserBalance": "98d97b7b-0000-0000-a090-24840a860a8c", "idUser": "dec88317-0000-4000-9d23-9bb687444600", "stampsBalance": 9284, "stampsUsed": 549, "stampsAssigned": 10000, "isUnlimited": false, "expirationDate": null }, "meta": null, "links": null, "status": "success" } ``` ``` { "message": "El usuario no existe", "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | status | string | Indica el estado de la respuesta. Puede ser “success” o “error”. | | message | String | Solo aparece en respuestas con error. Describe la causa del fallo. | | data | Object/null | Contiene la información relacionada con el saldo del usuario y ultima transacción. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-ce2f46d7-71a8-410a-af35-f48fc03c734e) --- ### **Consulta de Timbres** por ID Servicio que permite revisar el detalle de los timbres disponibles en una subcuenta filtrando por ID. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **GET** | /management/v2/api/dealers/balance/users/{idUser} | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | #### 📍 Parámetros Path | Propiedad | Tipo | Uso | Descripción | | --- | --- | --- | --- | | idUser | guid | Requerido | ID del usuario al que se le agregaran timbres. Se puede consultar este dato mediante la [API de consulta usuarios.](https://developers.sw.com.mx/knowledge-base/api-usuarios-v2/) | #### Ejemplo Request ``` curl --location 'http://api.test.sw.com.mx/management/v2/api/dealers/balance/users/a8b8881a-3456-481b-96b9-e02fd895f5be' \ --header 'Authorization: bearer $token' ``` **💡Nota Importante:** Si el ID del usuario tiene estructura incorrecta se obtiene el código de respuesta http 400. En caso de que el Id de la cuenta no pertenezca a la cuenta padre se obtendrá el código de respuesta http 404. #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (404) 📘 Atributos de la respuesta ``` { "data": { "idUserBalance": "e5e39df2-6201-41b1-975c-d5b1150d2013", "idUser": "a8b8881a-3456-481b-96b9-e02fd895f5be", "stampsBalance": 0, "stampsUsed": 0, "stampsAssigned": 0, "isUnlimited": false, "expirationDate": null }, "meta": null, "links": null, "status": "success" } ``` ``` { "message": "El usuario no existe para distribuidor", "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | status | string | Indica el estado de la respuesta. Puede ser “success” o “error”. | | message | String | Solo aparece en respuestas con error. Describe la causa del fallo. | | data | String/null | Muestra la cantidad de timbres de la cuenta después del abono de timbres. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-4ab76bb6-f5be-43a5-90df-c17e17235cc0) --- ### **Añadir Timbres** Servicio que permite agregar una cantidad de timbres a tus clientes. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /management/v2/api/dealers/users/**{userId}**/stamps | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 📍 Parámetros Path | Propiedad | Tipo | Uso | Descripción | | --- | --- | --- | --- | | userId | guid | Requerido | ID del usuario al que se le agregaran timbres. Se puede consultar este dato mediante la [API de consulta usuarios.](https://developers.sw.com.mx/knowledge-base/api-usuarios-v2/) | #### 🧾 Parámetros JSON | Propiedad | Tipo | Uso | Descripción | | --- | --- | --- | --- | | stamps | int | Requerido | Numero de timbres a abonar. | | comment | string | Opcional | Comentario agregado al movimiento. | #### Ejemplo Request ``` curl --location 'https://api.test.sw.com.mx/management/v2/api/dealers/users/d1defb8a-0000-0000-83f2-989458750cfa/stamps' --header 'Authorization: bearer $token' --header 'Content-Type: application/json' --data '{ "stamps": 1, "comment": "Abono de timbres" }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": 72,//Total de timbres después del abono "meta": null, "links": null, "status": "success" } ``` ``` { "message": "El usuario no fue encontrado.", "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | status | string | Indica el estado de la respuesta. Puede ser “success” o “error”. | | message | String | Solo aparece en respuestas con error. Describe la causa del fallo. | | data | String/null | Muestra la cantidad de timbres de la cuenta después del abono de timbres. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-67ab476f-8e04-4352-8c46-c270a79e9eb4) --- ### **Eliminar Timbres** Servicio que te permite remover una cantidad de timbres a tus clientes. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **DELETE** | /management/v2/api/dealers/users/**{userId}**/stamps | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 📍 Parámetros Path | Propiedad | Tipo | Uso | Descripción | | --- | --- | --- | --- | | userId | guid | Requerido | ID del usuario al que se le retiraran timbres. Se puede consultar este dato mediante la [API de consulta usuarios.](https://developers.sw.com.mx/knowledge-base/api-usuarios-v2/) | #### 🧾 Parámetros JSON | Propiedad | Tipo | Uso | Descripción | | --- | --- | --- | --- | | stamps | int | Requerido | Cantidad de timbres a descontar | | comment | string | Opcional | Comentario agregado al movimiento | #### Ejemplo Request ``` curl --location --request DELETE 'https://api.test.sw.com.mx/management/v2/api/dealers/users/d1defb8a-0000-0000-83f2-989458750cfa/stamps' --header 'Authorization: bearer $token' --header 'Content-Type: application/json' --data '{ "stamps": 1, "comment": "Se elimina 1 timbre" }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": 71,//Total de timbres despues de remover "meta": null, "links": null, "status": "success" } ``` Respuesta de error. ``` { "message": "El usuario no fue encontrado.", "status": "error" } ``` Respuesta de error cuando el cliente no tiene suficiente saldo para remover esa cantidad de timbres. ``` { "message": "El cliente no tiene suficiente saldo para remover esa cantidad de timbres.", "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | status | string | Indica el estado de la respuesta. Puede ser “success” o “error”. | | message | String | Solo aparece en respuestas con error. Describe la causa del fallo. | | data | String/null | Muestra la cantidad de timbres de la cuenta después de remover los timbres. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-7151a589-b669-4c06-8700-7dc6aabce924) --- # API Certificados Fuente: https://developers.sw.com.mx/knowledge-base/api-certificados/ Categoria: SW API´S API para gestionar los certificados CSD de tu cuenta, será posible cargar, consultar y eliminar los certificados. Para administrar los certificados de manera gráfica, puede hacerlo desde el [Administrador de timbres](https://portal.sw.com.mx/). #### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 --- ### Cargar Certificado Servicio para cargar un certificado, el cuál recibe el CSD en Base64. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /certificates/save | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾 Parámetros JSON | Propiedad | Tipo | Uso | Descripción | | --- | --- | --- | --- | | type | string | Requerido | Colocar el valor ‘stamp’ | | b64Cer | string | Requerido | CSD en Base64 | | b64Key | string | Requerido | Key en Base64 | | password | string | Requerido | Contraseña del certificado | #### Ejemplo Request ``` curl --request POST \ --url https://services.test.sw.com.mx/certificates/save \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "type":"stamp", "b64Key":"$b64Key", "b64Cer":"$b64Cer", "password":"12345678a" }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": "CSD Guardados Correctamente.", "status": "success" } ``` ``` { "message": "Certificados", "messageDetail": "Te hacen falta archivos o el password esta vacio", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | mensaje cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | String/null | Mensaje de confirmación que los CSD se han guardado cuando ha sido exitoso. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-bdbcceaa-699e-41b2-b2e1-be9fd8313522) --- ### Consultar Certificados Servicio para consultar todos los certificados cargados en la cuenta. **💡Nota Importante:** En caso de que no se tenga ningún certificado cargado, el servicio responderá con un “success” y un arreglo data vacío. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **GET** | /certificates | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | #### Ejemplo Request ``` curl --request GET \ --url https://services.test.sw.com.mx/certificates \ --header 'Authorization: Bearer $token' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": [ { "issuer_rfc": "EKU9003173C9", "certificate_number": "30001000000400002434", "csd_certificate": "MIIFuzCCA6OgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDI0MzQwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNjE3MTk0NDE0WhcNMjMwNjE3MTk0NDE0WjCB4jEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gWElRQjg5MTExNlFFNDEeMBwGA1UEBRMVIC8gWElRQjg5MTExNk1HUk1aUjA1MR4wHAYDVQQLExVFc2N1ZWxhIEtlbXBlciBVcmdhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCN0peKpgfOL75iYRv1fqq+oVYsLPVUR/GibYmGKc9InHFy5lYF6OTYjnIIvmkOdRobbGlCUxORX/tLsl8Ya9gm6Yo7hHnODRBIDup3GISFzB/96R9K/MzYQOcscMIoBDARaycnLvy7FlMvO7/rlVnsSARxZRO8Kz8Zkksj2zpeYpjZIya/369+oGqQk1cTRkHo59JvJ4Tfbk/3iIyf4H/Ini9nBe9cYWo0MnKob7DDt/vsdi5tA8mMtA953LapNyCZIDCRQQlUGNgDqY9/8F5mUvVgkcczsIgGdvf9vMQPSf3jjCiKj7j6ucxl1+FwJWmbvgNmiaUR/0q4m2rm78lFAgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBCwUAA4ICAQBcpj1TjT4jiinIujIdAlFzE6kRwYJCnDG08zSp4kSnShjxADGEXH2chehKMV0FY7c4njA5eDGdA/G2OCTPvF5rpeCZP5Dw504RZkYDl2suRz+wa1sNBVpbnBJEK0fQcN3IftBwsgNFdFhUtCyw3lus1SSJbPxjLHS6FcZZ51YSeIfcNXOAuTqdimusaXq15GrSrCOkM6n2jfj2sMJYM2HXaXJ6rGTEgYmhYdwxWtil6RfZB+fGQ/H9I9WLnl4KTZUS6C9+NLHh4FPDhSk19fpS2S/56aqgFoGAkXAYt9Fy5ECaPcULIfJ1DEbsXKyRdCv3JY89+0MNkOdaDnsemS2o5Gl08zI4iYtt3L40gAZ60NPh31kVLnYNsmvfNxYyKp+AeJtDHyW9w7ftM0Hoi+BuRmcAQSKFV3pk8j51la+jrRBrAUv8blbRcQ5BiZUwJzHFEKIwTsRGoRyEx96sNnB03n6GTwjIGz92SmLdNl95r9rkvp+2m4S6q1lPuXaFg7DGBrXWC8iyqeWE2iobdwIIuXPTMVqQb12m1dAkJVRO5NdHnP/MpqOvOgLqoZBNHGyBg4Gqm4sCJHCxA1c8Elfa2RQTCk0tAzllL4vOnI1GHkGJn65xokGsaU4B4D36xh7eWrfj4/pgWHmtoDAYa8wzSwo2GVCZOs+mtEgOQB91/g==", "is_active": true, "issuer_business_name": "ESCUELA KEMPER URGATE SA DE CV", "valid_from": "2019-06-17T14:44:14", "valid_to": "2023-06-17T14:44:14", "certificate_type": "stamp" }, { "issuer_rfc": "FUNK671228PH6", "certificate_number": "30001000000400002321", "csd_certificate": "MIIFijCCA3KgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDIzMjEwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNTI5MTcxNzQwWhcNMjMwNTI5MTcxNzQwWjCBsTEdMBsGA1UEAxMUS0FSTEEgRlVFTlRFIE5PTEFTQ08xHTAbBgNVBCkTFEtBUkxBIEZVRU5URSBOT0xBU0NPMR0wGwYDVQQKExRLQVJMQSBGVUVOVEUgTk9MQVNDTzEWMBQGA1UELRMNRlVOSzY3MTIyOFBINjEbMBkGA1UEBRMSRlVOSzY3MTIyOE1DTE5MUjA1MR0wGwYDVQQLExRLQVJMQSBGVUVOVEUgTk9MQVNDTzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALcigR0/27nsBVgrbB/neBsY7R3cRvR3Ka9w4ovRtpN2pe62A5dfew7eNaaXQESF/bcbaq/bI9VuI5NJqxx0QVIRRn+pAJb53PsMVVAj81JoPUislh0AlxuMHhI8TxpGmwrVU+PejfuQ49wqfQsOnqYAuHi0PvvzE/N2Ja32+yEOMzE40B0OqoBO2t93I+he+/THXhijEKeeSO4s+kgNBUKvZNqu/00Rrqu5DjfFLFHCwqBQraym1xlSBt7C3m8nGsPbn/R0BMypfSZPSuQJNxDX0W3+zhlKrnFMMQWEHgMJ75kQPIhHLN+/MKUe3j75ViDL6ejupN/DO/AtYHcMtPsCAwEAAaMdMBswDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCBsAwDQYJKoZIhvcNAQELBQADggIBACdpf+YqxKhVyH/nTxnZHTbg4BzMoCrC5NXKU4XUvZ37/E1fzqLIcLaNZUIwdwhKw5qQrNIbn0AEtWA/PIHUeAffoJOMWklNlGMOeXlX6PmAF692ywISLxhy7Nt9aLYIr4yT6P8a8zR9em0B6guW3BudSNKIui+FpTYNmCpttSPfJ07lvYY1VYvGwAqwnAzWUWHqoh1S6Y+qKxvUAw6Cj3n3A1iQiWqrCFBeaoe2iw050jTRT/THx4qIGAqQJSYiO+z5xjiUxTnxZBj7ZGAjjNITg+AEnqEnyYUnjhRLq38BlJTvaPrAmXuisJV8YGvwvuyrBG/eSZqnLf1MkD2Z5aX2L2blmvUxpTSUw9kz2scXUVUBiBiW3AXztrtM5Dyg3O/vGdFOPh1f9CNuzDCgbUAe2ifIyPYtJKAmicMatc279+Z14MpqpsWkgvHHPE2D8tlsnnrIs5eT+ghKhOtQKCXrwv7khTU3szJOjTFvANy6V6iiEswABn4fbKVwK3XbwwtWa9oMFj4hHVi6LAz9ze8R36MFq+O6ERIlVqD/sVcypU2mEEjqRypP8lu6qO6oUo1lt91TqqBLjFz1dIN9B4o+vpikUlCJldOSvhHNtwmg/lgepxR9P2RYJhH5xz+6tlM1/Fs9SAYY52g6nqMmxcddfMNQKp15u0DW5ue+4F5m", "is_active": true, "issuer_business_name": "KARLA FUENTE NOLASCO", "valid_from": "2019-05-29T12:17:40", "valid_to": "2023-05-29T12:17:40", "certificate_type": "stamp" }, { "issuer_rfc": "OÑO120726RX3", "certificate_number": "30001000000400002464", "csd_certificate": "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", "is_active": true, "issuer_business_name": "ORGANICOS ÑAVEZ OSORIO S.A DE C.V SA DE CV", "valid_from": "2019-06-20T15:58:17", "valid_to": "2023-06-20T15:58:17", "certificate_type": "stamp" }, { "issuer_rfc": "RAQÑ7701212M3", "certificate_number": "30001000000400002453", "csd_certificate": "MIIFkDCCA3igAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDI0NTMwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNjE3MjMzMzI1WhcNMjMwNjE3MjMzMzI1WjCBtzEeMBwGA1UEAxQV0UVWRVMgUkFNSVJFWiBRVUVaQURBMR4wHAYDVQQpFBXRRVZFUyBSQU1JUkVaIFFVRVpBREExHjAcBgNVBAoUFdFFVkVTIFJBTUlSRVogUVVFWkFEQTEWMBQGA1UELRQNUkFR0Tc3MDEyMTJNMzEbMBkGA1UEBRMSUkFRTjc3MDEyMUhERk1aVjA4MSAwHgYDVQQLFBfRRVZFUyBSQU1JUkVaIFFVRVpBREEgMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJRP66ngVa3/EOOuKQFsZX81s+F8482Emdq80cK5TzlycTdYnyMyPpHHjORdKwcV8FnNlpIx2Qe6kA8nSVL+x9P13ZCij6TsE8CvIA/YxGnCM1AYl6ZineHrBVssX+GurKDWWPl4jgMti54M30FjAIGaZrfJ9wz3sf/DAEXF6S/cbidwuQwkemSA9WroNetByTVWVA3CSR6oY/8pPSW40/c1/GJtkKjCntMjdasRNF4DEmu93fMNdB9nLvNFyOQAPjw7/WTdQhrAl6EZZ2TCrJegamE4yWje71Ux2MVrVaXAtN8w51Kg74BktrKypc5Vh94pa90rwVL1WlNaSwTuOdECAwEAAaMdMBswDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCBsAwDQYJKoZIhvcNAQELBQADggIBAD5Gowv5g7XrJ/j3o7zP40D/yCut/Wki7usmI/EWnmvghwmas4ZHWzJY5y4tWNll+Kj6NfTicKpnZ8Ph8JKM5BhvrT1kLqh+uj9L9ZRUkQmi3MnYprwds9D+VT6eeqnGeHH544W6am5MLj9c88E3KvWgTM5cC+QKpAKBFOrf07Bm3PEi3sJBufdVz0yAWLA6xrOVfjBieJySCdpYQ6ESvWBUx9CMRlYMxIGZdll5vsQ4WsbilrzeyT7tifzHcCtuGDLeMyZ3nKIkXftT2JvVR92pbjY09RHiuVZNmoLnpAorK2tNyJ/Tkv679qRrSNabgTtAkP/yIC0hy/IJjbZf20xoIv0Q9dtri4s+URBNdqYIsKIcBGb13aBkGqBcIsLs91Ji345U7bAkPWV78dJaU7da2nYHYrtk1WKWP4s4WuCoDPBnGwTalBu30CnCEMPTU4+FvFTE4OKSq0fpgVhqLS1wOnV7w3JrNKNmJMxyvb6XBA8K5l8otXEWEoxAbi26GfSl0x0fQMHytIbl0bOOnQD60OAwZo6Q1cgukH5xJi9Nh4Qi/0o6HPfvnW7dMDlmBpTENgeur5EHWmRtIiy1L7xFRxTYlgsSdInwPP+V8HTuGEEMYhRzqvqOtbo63IItO7fXArfByYPL3EctYW/1u0sq+wS/muBbIunC+8YsMpoB", "is_active": false, "issuer_business_name": "ÑEVES RAMIREZ QUEZADA", "valid_from": "2019-06-17T18:33:25", "valid_to": "2023-06-17T18:33:25", "certificate_type": "stamp" }, { "issuer_rfc": "RAQÑ7701212M3", "certificate_number": "30001000000400002448", "csd_certificate": "MIIFjjCCA3agAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDI0NDgwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNjE3MjExMTA5WhcNMjMwNjE3MjExMTA5WjCBtTEeMBwGA1UEAxQV0UVWRVMgUkFNSVJFWiBRVUVaQURBMR4wHAYDVQQpFBXRRVZFUyBSQU1JUkVaIFFVRVpBREExHjAcBgNVBAoUFdFFVkVTIFJBTUlSRVogUVVFWkFEQTEWMBQGA1UELRQNUkFR0Tc3MDEyMTJNMzEbMBkGA1UEBRMSUkFRTjc3MDEyMUhERk1aVjA4MR4wHAYDVQQLFBXRRVZFUyBSQU1JUkVaIFFVRVpBREEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzC7243Db2FuASY1LbkcLfv7GaTdeX0++rTYCsgvpyCQoE48F3hWe/ku60HGIdm8b7DlTqjrR+BJ0JRzpJ0A7O0U9XXxtHDC1vHFKMtXOVPxPoRsrfF00/SWFnJaIAT3jXVXU5C3psci08f0UryTdgtAmvfp9H30s5668sPywNPmy8TMLQq/Pj35CZKzWuD2R64ZJHAV/lV6JMZX4LaKQnRxZ29vUta06CN94R3hUCTNzp45pxaUZznsS+VgDngt3CUxlLIPsqXhqNn9+j8tGFXFJCYxMmYV2RXoJwxXO/9WfTU621a7mYNafOSYWNOwYfYU+Vvip/aVn6CBBZR8+PAgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBCwUAA4ICAQCBxVD5mG92x8UMYDepwQlZPMIgAYqVLNAZMNBNPiNJFvBgRNVZhAovC7rQ9wq4mQu4actWcBDTDdLlJiuU1M1PMMsQiwf5NLz9sDcC01ouV1JwaGLU2iYV/sLCSXjbt4UtEnt2YCiPv6lvY32iEzyJGhnT5UxNlE6JN0b1oOv6B5BfPDF51LN17F32C6H6d9bm9scjX4FgNL/Zm8mBe+fWGVtEewV6jm6QR9K8s7D4L58kbzFMK80aI7p3MTZFdiHCSveyKlnKRP1IbgYmXx4nrrVczsWkh2r5iH6SRztQwiVNET1xWoblwgQf3pZRfeCEU13jDOzB1b3ueTJ8htsVWbSDbJDyB3jnbjT9LF+QXs1ShOMNX28fk1VdntyRc7gcMwDT5O2aIh+AOub8bYpYjAfGZ5ig4a9nrpDawNledO77iRK8wKU8IJzgf5MzoDEwFtlAcsKclDGn7mQU6OUxtDrTKWFBIAV3TYxOqDnfaLnj+dHxmZXJEkRHSUnaUix49x2F1QAHcpUeN8FSxXUaVBXLGiRsD1L4L0gU8lEjVfAGJy68Twu6fTq9b/2i3wqNu0pMPgL39tBAdRahtxtIKKbxqn/kuUiONX1RgsMUTKT2RDC1ZB1VFOFM6oqD/0qDWmxzwZf1fXHZYPP4e1lIcRYxuu+ZZpQoj1kHXG7y4g==", "is_active": true, "issuer_business_name": "ÑEVES RAMIREZ QUEZADA", "valid_from": "2019-06-17T16:11:09", "valid_to": "2023-06-17T16:11:09", "certificate_type": "stamp" }, { "issuer_rfc": "XIA190128J61", "certificate_number": "30001000000400002443", "csd_certificate": "MIIFyDCCA7CgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDI0NDMwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNjE3MjA0MDUxWhcNMjMwNjE3MjA0MDUxWjCB7zEqMCgGA1UEAxMhWEVOT04gSU5EVVNUUklBTCBBUlRJQ0xFUyBTIERFIENWMSowKAYDVQQpEyFYRU5PTiBJTkRVU1RSSUFMIEFSVElDTEVTIFMgREUgQ1YxKjAoBgNVBAoTIVhFTk9OIElORFVTVFJJQUwgQVJUSUNMRVMgUyBERSBDVjElMCMGA1UELRMcWElBMTkwMTI4SjYxIC8gS0FITzY0MTEwMUIzOTEeMBwGA1UEBRMVIC8gS0FITzY0MTEwMUhOVExLUzA2MSIwIAYDVQQLExlYZW5vbiBJbmR1c3RyaWFsIEFydGljbGVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiJQ5YcSgjwsGf29+3go7VGdtMZCcH9wUpn46ZMAlFwUojnCPTvwJ3+cSwjqJnw8ahr3DuRwekvGR4BJAb5b9Xi8kyoiWtwcGOSWxO38Bp9J1e/BO9HMbQBPAtLDuG47oqnH8zWLOeaoYRJDpARw4RX1ko2+9tbj0ntBtM7Vk1E8EWiA/h2Meq0LIv1+ySGTUrEW46FM01J5pzELv5XupBghuJxR5DG9fiOW7u3dR5s3tZoVLwA1KdjJtY0mmnfCwxg6i5AqhvY+FAI5D6CF6/lHA8PWg63WasvrhuIv70xCLjgPT/j00ZcPrLvBf1DefGVic980Ch/SDvC+MdJ1F5wIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEACjfTPoKY2N5MxjmAMltd5XZCV1vgAwEtrIRYTodhE8R0Tp1QanAXb0luPyBv5hIXWK4VqAI4fcTtP+n7kkrwfha6ErkPWFNJWJm8ZsMmby/3WgVoJkOFyRYQqr5Il3N6wMa5kiDBtDRbqB3iEXmvtrvjWSHyxAER+zo3jWGFlhBZ0nQNRtjx8sPFihVc5TUH682HJiU4oWvT63Dnra8ncqiW/uCuY86crnUq0fW7Lw/3+PY5xXjNxR/Hh3sUPITfJrGaLWurD1J9npr9yGAJ6t9zrhhZnepIC0DUMc5+j4pg1DrO32jzwUOLQqErDizh84NoJCWwbg+US8wi3zD0ZKiDv7XsTNWAW2Ap2JkzykKHjFTZiEm3uZOkJNfcu3o+kefr5HfXFT+iN9K5FUEhaQwgUeZBRJ8V5F6gmhz3d6ixVbiZoFNhYR8e2k8gF9gGrVMrEbJGQrl+6+ZYQLFiauXeG7fu1svk19PuyredRJGnseJqyV4RzcRGhJA+cLnmpdDOTEhignnvnhEuY6HVRYYXhOTyeeluET7KRCxbJGqO7TdWgjrHL3HRbNE4NY5GAdOZuLaWxElG5ZVCHqtG0Nh7UQAhcz+EKyZBAewv5XuH0OomZXw6mM2mY2soL6z1224NusM8/BbJcYTQUlAEKblEChhGK1XlxiVOU2nc9KE=", "is_active": true, "issuer_business_name": "XENON INDUSTRIAL ARTICLES S DE CV", "valid_from": "2019-06-17T15:40:51", "valid_to": "2023-06-17T15:40:51", "certificate_type": "stamp" } ], "status": "success" } ``` ``` { "message": "El token debe contener 3 partes", "messageDetail": "", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | Array/null | Arreglo de objetos con información de los certificados CSD del emisor, como RFC, vigencia, número de serie y estado. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-ff7b1122-42ac-4632-b2b9-030144b2c207) --- ### Consultar Certificado Por NoCertificado Servicio para obtener un certificado cargado enviando como parámetro el número de certificado. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **GET** | /certificates/**{noCertificado}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | #### 📍 Parámetros Path | Propiedad | Descripción | | --- | --- | | noCertficado | Número de certificado a obtener | #### Ejemplo Request ``` curl --request GET \ --url https://services.test.sw.com.mx/certificates/30001000000400002321 \ --header 'Authorization: Bearer $token' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "issuer_rfc": "CACX7605101P8", "certificate_number": "30001000000400002335", "csd_certificate": "MIIFijCCA3KgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDIzMzUwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNTI5MTk1MDAxWhcNMjMwNTI5MTk1MDAxWjCBsTEdMBsGA1UEAxMUWE9DSElMVCBDQVNBUyBDSEFWRVoxHTAbBgNVBCkTFFhPQ0hJTFQgQ0FTQVMgQ0hBVkVaMR0wGwYDVQQKExRYT0NISUxUIENBU0FTIENIQVZFWjEWMBQGA1UELRMNQ0FDWDc2MDUxMDFQODEbMBkGA1UEBRMSQ0FDWDc2MDUxME1HVFNIQzA0MR0wGwYDVQQLExRYT0NISUxUIENBU0FTIENIQVZFWjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKvYaTyUuvtUIwymg88xS3Ri7W2J758lusEgwUaxdyIyxLQK2736yrK6RotjDu7pfbzqD5CyJ6gkT70x29QNe5MHUgcNPnARoYK2+0a0kWjpweNqjb0pCOMevUCzblF72c7MkErbW5qolIRIsI4UFSZOlLDI9O9lKm0Tk85Ab0siaqUefGl9lOOkjPT7Pr/CkHk4jxZJOzY2cWVey00vgFh/t9xxbF6Rvi738dfZ9R9h2TVEpaRRYb+m4rpTMos6HEfmhuKSsNe2/M8NDxC4zkcwdC5WS9NhNd4kUQ+7TFLmIo14tOXXSBZVVsg49/L+lq/eh44K1Ze3iSW9M7Ii8mECAwEAAaMdMBswDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCBsAwDQYJKoZIhvcNAQELBQADggIBAK1bJ6vhkqIF0Y4XnDUFQ/nZUOsQCXbs+czwu62kVaOffHWcKhJ1mTaSwkmFoqykV3VAib7RYKYTXcERow21uGEfnOhNxeSi4l2An7y6PtJOGy4wTjAX++iAeoh+ZDel3VBhvNYv6IZAcsVqdTl0Mfs/E7EuCc6YqumEBTbFTMcp92A31HWHqkI+UnXcogYndsaIK2m+iER6AHhUokfOjOiSJmSEovaXmaJVkmjbv3g07FeMB2fZ8fp3rrRtHjgTzbZyPY2LjhBnV/0vaTnGZH4l1RWZ+dgFn5/09GJJYLgaTBHpuRNBI6JRQ9/iR4NMjOEbNXDIpKibnIg3zG1yqQtUwQBUic0lF958n1KOg7fM+Msgq9Fjg2FY3aI2DAoGWKJR8PTiFbXy+Arpzd669QWzgIusT7KLwlFhKm+a+9dmE2lp0WUj2QH0drJdfSuvqA9ZIu3I0yvnpUT0jlun0PZyoloTOd5X+8z2kLSAxbZaOu9I4XATcwZntZK0FIueh4Htom524ne/MNp6nEXzpxV4HPiW626VoykB4AHJwIp7ljcg8D4IJ7oIF/0UEduwbsx3amAfDeg/9YtPRC4j5M0h3l7zLcJ2/BFwr8qYM74d0v00Hm4msirCPkE+kr58oL1NjwN7vvPA96HbSeBohH+f/X8FcZ965FhmjmZWgj0W", "is_active": false, "issuer_business_name": "XOCHILT CASAS CHAVEZ", "valid_from": "2019-05-29T14:50:01", "valid_to": "2023-05-29T14:50:01", "certificate_type": "stamp" }, "status": "success" } ``` ``` { "message": "Certificados", "messageDetail": "No se encontro certificado con el numero de certificado 3000100000040000233 activo.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | Array/null | Arreglo de objetos con información de los certificados CSD del emisor, como RFC, vigencia, número de serie y estado. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-c758398c-4f0f-4a0e-bcef-f3580060c394) --- ### Consultar Certificados Por RFC Servicio para obtener un certificado cargado enviando como parámetro el RFC del contribuyente. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **GET** | /certificates/rfc/**{rfc}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | #### 📍 Parámetros Path | Propiedad | Descripción | | --- | --- | | rfc | RFC del contribuyente a consultar | #### Ejemplo Request ``` curl --request GET \ --url https://services.test.sw.com.mx/certificates/rfc/EKU9003173C9 \ --header 'Authorization: Bearer $token' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": [ { "issuer_rfc": "EKU9003173C9", "certificate_number": "30001000000400002434", "csd_certificate": "MIIFuzCCA6OgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDI0MzQwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNjE3MTk0NDE0WhcNMjMwNjE3MTk0NDE0WjCB4jEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gWElRQjg5MTExNlFFNDEeMBwGA1UEBRMVIC8gWElRQjg5MTExNk1HUk1aUjA1MR4wHAYDVQQLExVFc2N1ZWxhIEtlbXBlciBVcmdhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCN0peKpgfOL75iYRv1fqq+oVYsLPVUR/GibYmGKc9InHFy5lYF6OTYjnIIvmkOdRobbGlCUxORX/tLsl8Ya9gm6Yo7hHnODRBIDup3GISFzB/96R9K/MzYQOcscMIoBDARaycnLvy7FlMvO7/rlVnsSARxZRO8Kz8Zkksj2zpeYpjZIya/369+oGqQk1cTRkHo59JvJ4Tfbk/3iIyf4H/Ini9nBe9cYWo0MnKob7DDt/vsdi5tA8mMtA953LapNyCZIDCRQQlUGNgDqY9/8F5mUvVgkcczsIgGdvf9vMQPSf3jjCiKj7j6ucxl1+FwJWmbvgNmiaUR/0q4m2rm78lFAgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBCwUAA4ICAQBcpj1TjT4jiinIujIdAlFzE6kRwYJCnDG08zSp4kSnShjxADGEXH2chehKMV0FY7c4njA5eDGdA/G2OCTPvF5rpeCZP5Dw504RZkYDl2suRz+wa1sNBVpbnBJEK0fQcN3IftBwsgNFdFhUtCyw3lus1SSJbPxjLHS6FcZZ51YSeIfcNXOAuTqdimusaXq15GrSrCOkM6n2jfj2sMJYM2HXaXJ6rGTEgYmhYdwxWtil6RfZB+fGQ/H9I9WLnl4KTZUS6C9+NLHh4FPDhSk19fpS2S/56aqgFoGAkXAYt9Fy5ECaPcULIfJ1DEbsXKyRdCv3JY89+0MNkOdaDnsemS2o5Gl08zI4iYtt3L40gAZ60NPh31kVLnYNsmvfNxYyKp+AeJtDHyW9w7ftM0Hoi+BuRmcAQSKFV3pk8j51la+jrRBrAUv8blbRcQ5BiZUwJzHFEKIwTsRGoRyEx96sNnB03n6GTwjIGz92SmLdNl95r9rkvp+2m4S6q1lPuXaFg7DGBrXWC8iyqeWE2iobdwIIuXPTMVqQb12m1dAkJVRO5NdHnP/MpqOvOgLqoZBNHGyBg4Gqm4sCJHCxA1c8Elfa2RQTCk0tAzllL4vOnI1GHkGJn65xokGsaU4B4D36xh7eWrfj4/pgWHmtoDAYa8wzSwo2GVCZOs+mtEgOQB91/g==", "is_active": false, "issuer_business_name": "ESCUELA KEMPER URGATE SA DE CV", "valid_from": "2019-06-17T14:44:14", "valid_to": "2023-06-17T14:44:14", "certificate_type": "stamp" }, { "issuer_rfc": "EKU9003173C9", "certificate_number": "30001000000500003416", "csd_certificate": "MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE=", "is_active": true, "issuer_business_name": "ESCUELA KEMPER URGATE SA DE CV", "valid_from": "2023-05-18T05:43:51", "valid_to": "2027-05-18T05:43:51", "certificate_type": "stamp" } ], "status": "success" } ``` ``` { "message": "Certificados", "messageDetail": "El Rfc proporcionado es invalido. Favor de verificar.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | Array/null | Arreglo de objetos con información de los certificados CSD del emisor, como RFC, vigencia, número de serie y estado. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-2795aa02-d96e-4fef-91c9-5c15c2a98f19) --- ### Eliminar Certificado Servicio para eliminar un certificado de la cuenta enviando como parámetro el número de certificado. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **DELETE** | /certificates/**{noCertificado}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | #### 📍 Parámetros Path | Propiedad | Descripción | | --- | --- | | noCertficado | Número de certificado a eliminar | #### Ejemplo Request ``` curl --request DELETE \ --url https://services.test.sw.com.mx/certificates/30001000000400002335 \ --header 'Authorization: Bearer $token' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": "Certificado 30001000000400002448 desactivado.", "status": "success" } ``` ``` { "message": "Certificados", "messageDetail": "One or more errors occurred.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | mensaje cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | String/null | Mensaje de confirmación que los CSD se han eliminado de forma exitosa. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-38446216-8647-4c7b-af21-6c43a8944e9d) --- # API Firma de Manifiesto Fuente: https://developers.sw.com.mx/knowledge-base/api-firma-de-manifiesto/ Categoria: SW API´S API mediante la cual se firma el manifiesto de un Emisor Mediante esta API, se puede firmar el manifiesto enviando los archivos requeridos correspondientes a la **FIEL** junto con la contraseña y el correo electrónico relacionado con el emisor, de igual manera al finalizar la petición les llegará un correo con el Manifiesto adjunto. #### URL´s 🛠️ Pruebas: `https://api.test.sw.com.mx` 📄 🚀 Productivo: `https://api.sw.com.mx` 📄 --- ### Firma de Manifiesto y Envío de Manifiesto Método en un solo paso para firmar el manifiesto, enviando certificado y llave privada correspondientes a la **FIEL**, junto con su contraseña, como respuesta se obtendrá el PDF del Manifiesto Firmado #### 🔗 Endpoint | Método | Descripción | | --- | --- | | **POST** | /management/v2/api/dealers/manifests | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | B64Cer | Requerido | Certificado en base 64. | | B64Key | Requerido | Llave privada en base 64. | | Password | Requerido | Contraseña de los certificados para firmar el Manifiesto. | | SendEmail | Requerido | Se especifica si se enviara el documento del Manifiesto por correo. | | Email | Requerido | Correo electrónico a donde llegara el Manifiesto ya firmado. | #### Ejemplo Request ``` curl --location 'https://api.test.sw.com.mx/management/v2/api/dealers/manifests' \ --header 'Authorization: Bearer token' \ --header 'Content-Type: application/json' \ --data-raw '{ "B64Cer":"MIIF0...", "B64Key":"MIIFD...", "Password":"12345678a", "SendEmail":true, "Email":"correo@gmail.com" }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` La respuesta exitosa sera el archivo pdf del Manifiesto firmado. ``` [manifiesto\_CACX7605101P8](https://developers.sw.com.mx/wp-content/uploads/2024/05/manifiesto_CACX7605101P8.pdf)[Descarga](https://developers.sw.com.mx/wp-content/uploads/2024/05/manifiesto_CACX7605101P8.pdf) ``` { "message": "El certificado publico no es base64", "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | mensaje regresado cuando existe un error. | | status | String | “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-da6fcb49-b891-4abb-b152-4b515680805c) --- ## Firma Manifiesto en dos pasos. ### 1.-Obtener Leyenda de Firma Manifiesto Método para obtener la leyenda del manifiesto únicamente enviando el certificado público, correspondiente a la **FIEL** para obtenerlo con los datos de dicho certificado. Posteriormente, deberás enviar Sellado el texto de Firma Manifiesto. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **PATCH** | /management/v2/api/dealers/manifests | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | B64Cer | Requerido | Certificado en base 64. | #### Ejemplo Request ``` curl --location 'https://api.test.sw.com.mx/management/v2/api/dealers/manifests' \ --header 'Authorization: Bearer token' \ --header 'Content-Type: application/json' \ --data-raw '{ "B64Cer":"MIIF0...", }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "rfc": null, "company_name": null, "contentB64": "UG9yIG1lZGlvIGRlbCBwcmVzZW50ZSwgWE9DSElMVCBDQVNBUyBDSEFWRVosIGNvbiBSRkMgQ0FDWDc2MDUxMDFQOCwgbWFuaWZpZXN0byBtaSBjb25mb3JtaWRhZCB5IGF1dG9yaXphY2nDs24gcGFyYSBxdWUgbGEgZW1wcmVzYSBMVU5BIFNPRlQsUy5BLiBERSBDLlYuLCBQcm92ZWVkb3IgQXV0b3JpemFkbyBkZSBDZXJ0aWZpY2FjacOzbiBkZSBDRkRJIGNvbiBuw7ptZXJvIGRlIGF1dG9yaXphY2nDs24gMTY1NDMsIHByb2NlZGEgYSBlbnRyZWdhciBhbCBTZXJ2aWNpbyBkZSBBZG1pbmlzdHJhY2nDs24gVHJpYnV0YXJpYSwgY29waWEgZGUgbG9zIGNvbXByb2JhbnRlcyBmaXNjYWxlcyBxdWUgbWUgaGF5YSBjZXJ0aWZpY2FkbywgZGUgYWN1ZXJkbyBhIGxvIGVzdGFibGVjaWRvIGVuIGxhIHJlZ2xhIDIuNy4yLjcgZGUgbGEgUmVzb2x1Y2nDs24gTWlzY2Vsw6FuZWEgRmlzY2FsIHBhcmEgMjAxOSBwdWJsaWNhZGEgZW4gZWwgRGlhcmlvIE9maWNpYWwgZGUgbGEgRmVkZXJhY2nDs24gZWwgMjkgZGUgQWJyaWwgZGUgMjAxOS4gQWwgbWlzbW8gdGllbXBvIGFjZXB0byBxdWUgZW1wcmVzYSBMVU5BIFNPRlQsIFMuQS4gREUgQy5WLiwgc2VhIHF1aWVuIG1lIHByb3BvcmNpb25lIGEgbWkgbm9tYnJlIG8gYWwgZGUgbWkgcmVwcmVzZW50YWRhLCBlbCAqU2VydmljaW8gZGUgQ2VydGlmaWNhY2nDs24gcGFyYSB0b2RvcyBsb3MgQ29tcHJvYmFudGVzIEZpc2NhbGVzIERpZ2l0YWxlcyBwb3IgSW50ZXJuZXQgKENGREkpIHF1ZSBlbWl0YSBjb21vIHBlcnNvbmEgZsOtc2ljYSBvIGNvbW8gcGVyc29uYSBtb3JhbC4gKlNlcnZpY2lvIGRlIENlcnRpZmljYWNpw7NuOiBzZSByZWZpZXJlIGEgdmFsaWRhY2nDs24geSB0aW1icmFkbyBkZSBDb21wcm9iYW50ZXMgRmlzY2FsZXMgRGlnaXRhbGVzIHBvciBJbnRlcm5ldCAoQ0ZESSku", "contentBytesSize": 921 }, "meta": null, "links": null, "status": "success" } ``` ``` { "message": "El certificado publico no es base64", "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | mensaje regresado cuando existe un error. | | data | Object/null | Objeto de datos con la leyenda del manifiesto en base 64 cuando ha sido exitoso. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-0e15cd79-40df-4b39-b3ee-f680d86adff3) --- ### 2.-Firma de Manifiesto mediante el Sello Método en dos pasos para firmar el manifiesto, el sello del texto del manifiesto y el texto del manifiesto, como respuesta se obtendrá el PDF del Manifiesto Firmado. (Deberás obtener la leyenda de Firma Manifiesto) #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **PUT** | /management/v2/api/dealers/manifests | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | B64Cer | Requerido | Certificado en base 64. | | B64ManifestText | Requerido | Texto de Manifiesto. | | B64ManifestSignature | Sello (Requerido) | Sello del texto de Manifiesto. | | SendEmail | Requerido | Se especifica si se enviara el documento del Manifiesto por correo. | | Email | Requerido | Correo electrónico a donde llegara el Manifiesto ya firmado. | #### Ejemplo Request ``` curl --location --request PUT 'https://api.test.sw.com.mx/management/v2/api/dealers/manifests' \ --header 'Authorization: bearer token' \ --header 'Content-Type: application/json' \ --data-raw '{ "B64Cer":"MIIF0TCCA7mgAwIBAgIUMzA", "B64ManifestText":"UG9yIG1lZGlvIG", "B64ManifestSignature":"EyMAa4VuNizObpS4=", "SendEmail":true, "Email":"correo@correo.com" }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` La respuesta exitosa sera el archivo pdf del Manifiesto firmado. ``` [manifiesto\_CACX7605101P8](https://developers.sw.com.mx/wp-content/uploads/2024/05/manifiesto_CACX7605101P8.pdf)[Descarga](https://developers.sw.com.mx/wp-content/uploads/2024/05/manifiesto_CACX7605101P8.pdf) ``` { "message": "El certificado publico no es base64", "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | mensaje regresado cuando existe un error. | | status | String | “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-6974e072-e9f2-40ba-a6a7-e3f5bf3cc685) --- # API Usuarios V2 Fuente: https://developers.sw.com.mx/knowledge-base/api-usuarios-v2/ Categoria: SW API´S Nueva versión de API para gestionar los Usuarios y sus movimientos de saldos. #### URL´s 🛠️ Pruebas: `https://api.test.sw.com.mx` 📄 🚀 Productivo: `https://api.sw.com.mx` 📄 --- ### Crear Usuario Mejora la gestión de tus clientes creando cuentas hijas desde tu cuenta distribuidora. Accede a una vista gráfica en el [Portal SW](https://portal.sw.com.mx/) > Clientes para supervisarlas fácilmente. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /management/v2/api/dealers/users | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾 Parámetros JSON | Propiedad | Tipo | Uso | Descripción | | --- | --- | --- | --- | | name | string | Requerido | Nombre del usuario. | | taxId | string | Requerido | RFC del usuario. | | email | string | Requerido | Correo del usuario. | | stamps | int | Requerido | Timbres a asignar en la creación | | isUnlimited | boolean | Requerido | Especificar si tendrá timbres ilimitados. | | password | string | Requerido | Contraseña del usuario. | | notificationEmail | string | Opcional | Correo a donde quieres recibir notificaciones. | | phone | string | Opcional | Número de teléfono del usuario. | Políticas para la contraseña del usuario **Políticas para la contraseña** - La contraseña no debe ser igual que el nombre de usuario. - La contraseña debe incluir al menos una letra mayúscula. - La contraseña debe incluir al menos una letra minúscula - La contraseña debe incluir al menos un número. - La contraseña debe incluir al menos un símbolo (carácter especial). - La contraseña no debe incluir espacios en blanco. - La contraseña debe tener mínimo 8 caracteres . - La contraseña no debe incluir símbolos especiales fuera de lo común. Los caracteres especiales aceptados son los siguientes: !@#$%^&\*()\_+=[{]};:<>|./?,-] #### Ejemplo Request ``` curl --location 'https://api.test.sw.com.mx/management/v2/api/dealers/users' \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data-raw '{ "name": "Prueba Usuario V2", "taxId": "XIA190128J61", "email": "correo.example@gmail.com", "stamps": 10, "isUnlimited": false, "password": "SWpass1!", "notificationEmail":"correo.example@gmail.com", "phone": "0000000000" }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "idUser": "798299e2-0000-0000-91ce-00c1c7693807", "idDealer": "dec88317-0000-0000-9d23-9bb687444600", "name": "Prueba Usuario V2", "taxId": "XIA190128J61", "username": "correo.example@gmail.com", "lastPasswordChange": "2024-04-11T13:29:58.5576372", "email": "correo.example@gmail.com", "isAdmin": false, "profile": 3, "isActive": true, "registeredDate": "2024-04-11T13:29:58.5572504", "accessToken": null, "phone": "0000000000" }, "meta": null, "links": null, "status": "success" } ``` ``` { "message": "El email 'correo.example@gmail.com' ya esta en uso.", "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | status | String | Indica el estado de la respuesta. Puede ser “success” o “error”. | | message | String | Solo aparece en respuestas de error. Describe la razón del error. | | data | Object/null | Contiene la información del usuario consultado, incluyendo sus datos de registro y configuración. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-13b6ddd1-0e85-42da-9bd8-ed61ed9e9e90) --- ### Consulta de Usuarios Método que proporciona la funcionalidad de consultar una lista de usuarios asociados a un token enviado en la solicitud. Permite filtrar los resultados utilizando una variedad de atributos, lo que posibilita la búsqueda de usuarios con características específicas. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **GET** | /management/v2/api/dealers/users | Se pueden agregar parámetros Query al final del path para aplicar un filtro en la consulta. #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | #### 📍 Parámetros Query **💡Nota Importante:** Para aplicar el uso de filtros en la consulta se pueden agregar parámetros query, el cual comienza con el signo ‘?’ al inicio de la consulta y agrega un ‘&’ para incluir múltiples atributos. Por ejemplo: ‘/management/v2/api/dealers/users?Email=correo@example.com&IsActive=false’. | Propiedad | Uso | Descripción | | --- | --- | --- | | TaxId | Opcional | RFC ligado al Usuario a consultar. | | Email | Opcional | Dirección de correo del Usuario a consultar. | | Name | Opcional | Nombre del Usuario a consultar. | | IdUser | Opcional | GUID identificador del Usuario. | | IsActive | Opcional | Indica si el Usuario es activo o no (true o false). | | Page | Opcional | Página que se extrae en la consulta (Por default = 1). | | PerPage | Opcional | Número de registros que se obtienen por página(Por default = 10 máx. 50). | #### Ejemplo Request Ejemplo de request para obtener usuarios sin filtro. ``` curl --request GET --url 'https://api.test.sw.com.mx/management/v2/api/dealers/users' \ --header 'Authorization: Bearer $token' ``` Ejemplos de consultas usando filtros como ID, RFC o varios filtros Consulta de usuarios por RFC. ``` curl --location 'http://api.test.sw.com.mx/management/v2/api/dealers/users?TaxId=XIA190128J63' \ --header 'Authorization: bearer $token' ``` Consulta de usuarios por ID. ``` curl --location 'http://api.test.sw.com.mx/management/v2/api/dealers/users?IdUser=a8b8881a-3456-481b-96b9-e02fd895f5be' \ --header 'Authorization: bearer $token' ``` Consulta de usuarios por varios filtros. ``` curl --request GET --url 'https://api.test.sw.com.mx/management/v2/api/dealers/users?Email=correo@example.com&IsActive=true' \ --header 'Authorization: Bearer $token' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": [ { "idUser": "7300db9e-70d3-0000-0000-d25620290282", "idDealer": "dec88317-0000-0000-9d23-9bb687444600", "name": "Pruebas User", "taxId": "XAXX010101000", "username": "correo@example.com", "lastPasswordChange": "2023-09-01T13:31:36.837", "email": "correo@example.com", "isAdmin": false, "profile": 3, "isActive": true, "registeredDate": "2023-09-01T13:31:38.483", "accessToken": null, "phone": null, "stamps": 91, "isUnlimited": false } ], "meta": { "page": 1, "perPage": 10, "pageCount": 1, "totalCount": 1, "totalPages": 1 }, "links": { "Self": "?page=1&perPage=10&email=correo@example.com&isActive=true", "First": "?page=1&perPage=10&email=correo@example.com&isActive=true", "End": "?page=1&perPage=10&email=correo@example.com&isActive=true" }, "status": "success" } ``` ``` { "messageDetail": "Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).", "message": "An exception was thrown while attempting to evaluate a LINQ query parameter expression. See the inner exception for more information. To show additional information call 'DbContextOptionsBuilder.EnableSensitiveDataLogging'.", "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | status | String | Indica el estado de la respuesta. Puede ser “success” o “error”. | | message | String | Solo aparece en respuestas de error. Describe la razón del error. | | messageDetail | String | Proporciona detalles adicionales del error cuando existe. | | data | Array/null | Lista de objetos con información de usuarios. Cada elemento contiene los datos de un usuario registrado. | | meta | Object/null | Contiene información de paginación: página actual, total de elementos, etc. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-299b631a-35b1-49d3-ac85-8b215dd1ebf0) --- ### Actualizar Usuario Realiza la modificación de alguno de los datos de tus cuentas hijas por este método. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **PUT** | /management/v2/api/dealers/users/**{userId}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | userId | Requerido | ID del usuario a actualizar. Se puede obtener mediante el método de “Consultar usuarios”. | #### 🧾 Parámetros JSON **💡Importante:** Puedes omitir las propiedades que no vayas a actualizar o simplemente asignarles “null”. | Propiedad | Tipo | Uso | Descripción | | --- | --- | --- | --- | | iduser | guid | Requerido | ID del usuario a actualizar. | | name | string | Opcional | Nuevo nombre del usuario. | | taxId | string | Opcional | Nuevo RFC del usuario. | | notificationEmail | string | Opcional | Nuevo correo de notificaciones. | | phone | string | Opcional | Nuevo número telefónico del usuario. | | isUnlimited | boolean | Opcional | Especificar si tendrá timbres ilimitados. | #### Ejemplo Request ``` curl --location --request PUT 'https://api.test.sw.com.mx/management/v2/api/dealers/users/798299e2-0000-0000-91ce-00c1c7693807' \ --header 'Authorization: bearer $token' \ --header 'Content-Type: application/json' \ --data-raw '{ "name": null, "taxId": null, "isUnlimited": false, "iduser":"798299e2-0000-0000-91ce-00c1c7693807", "notificationEmail":"correo.cambio@gmail.com", "phone": "3325115682" }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": "798299e2-0000-0000-91ce-00c1c7693807", "meta": null, "links": null, "status": "success" } ``` ``` { "message": "No es posible actualizar, los dato enviados son identicos a los actuales", "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | status | String | Indica el estado de la respuesta. Puede ser “success” o “error”. | | message | String | Solo aparece en respuestas de error. Describe la razón del error. | | data | String | UUID del usuario que fue actualizado exitosamente. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-7dec61b6-0982-495d-a7cb-4be8f0141a88) --- ### Actualizar Contraseña Realiza la actualización de la contraseña de una de tus cuenta hijas desde tu cuenta distribuidora a traves de este método. **🗒️ Nota:** Este método únicamente actualiza la contraseña del usuario hijo. El `userId` requerido en el path puede obtenerse mediante el método de [Consultar Usuarios](https://developers.sw.com.mx/knowledge-base/api-usuarios-v2/). #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **PATCH** | /management/v2/api/dealers/users/**{userId}**/password | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | userId | Requerido | D del usuario a actualizar. Se puede obtener mediante el método de “[Consultar usuarios](https://developers.sw.com.mx/knowledge-base/api-usuarios-v2/)“. | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | newPassword | Requerido | Nueva contraseña que será asignada al usuario. No puede ser una cadena vacía | #### Ejemplo Request ``` curl --location --request PATCH 'https://api.test.sw.com.mx/management/v2/api/dealers/users/09324265-928e-4e37-a8a6-fa5488c72703/password' --header 'Content-Type: application/json' --header 'Authorization: bearer $token' --data '{ "newPassword": "Prueba12345a" }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": "contraseña modificada", "meta": null, "links": null, "status": "success" } ``` ``` { "message": "No puedes reutilizar contraseñas anteriores.", "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | data | Object/null | Contiene la confirmacion de la peticion. | | status | String | Indica el estado de la respuesta. Puede ser “success” o “error”. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-cd7d9b0e-8013-4cf1-887d-e4f16556870f) ### Activar/Desactivar Usuario Realiza la activación/desactivación de una de tus cuentas hijas por este método. **🗒️Nota:** Se recomienda utilizar este método si lo que deseas es desactivar temporalmente una cuenta. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **PATCH** | /management/v2/api/dealers/users/**{userId}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | userId | Requerido | ID del usuario a actualizar. Se puede obtener mediante el método de “Consultar usuarios”. | #### 🧾 Parámetros JSON | Propiedad | Tipo | Uso | Descripción | | --- | --- | --- | --- | | isActive | bool | Requerido | Acción a realizar. Activar o desactivar al usuario. | #### Ejemplo Request ``` curl --location --request PATCH 'https://api.test.sw.com.mx/management/v2/api/dealers/users/798299e2-0000-0000-91ce-00c1c7693807' \ --header 'Authorization: bearer $token' \ --header 'Content-Type: application/json' \ --data-raw '{ "isActive": false }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "idUser": "798299e2-0000-0000-91ce-00c1c7693807", "idDealer": "dec88317-0000-0000-9d23-9bb687444600", "name": "Prueba Usuario V2", "taxId": "XIA190128J61", "username": "correo.example@gmail.com", "lastPasswordChange": "2024-04-11T13:29:58.5576372", "email": "correo.example@gmail.com", "profile": 3, "isActive": true, "registeredDate": "2024-04-11T13:29:58.5576372", "accessToken": null, "phone": "0000000000" }, "meta": null, "links": null, "status": "success" } ``` ``` { "message": "A non-empty request body is required.", "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | status | String | Indica el estado de la respuesta. Puede ser “success” o “error”. | | message | String | Solo aparece en respuestas de error. Describe la razón del error. | | data | Object/null | Contiene la información del usuario activado/desactivado, como sus datos de registro y configuración. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-cd7d9b0e-8013-4cf1-887d-e4f16556870f) ### Eliminar Usuario Deshabilita las cuentas de tus clientes que no necesites con este método. **🚨Importante:** Este método **elimina definitivamente** la cuenta, si únicamente desea deshabilitar temporalmente una cuenta recomendamos usar el método [**Activar/Desactivar Cuenta**](https://developers.sw.com.mx/knowledge-base/api-usuarios-v2/#activar-desactivar-usuario). #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **DELETE** | /management/v2/api/dealers/users/**{userId}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | userId | Requerido | ID del usuario a eliminar. Se puede obtener mediante el método de “Consultar usuarios”. | #### Ejemplo Request ``` curl --location --request DELETE 'https://api.test.sw.com.mx/management/v2/api/dealers/users/798299e2-0000-0000-91ce-00c1c7693807' \ --header 'Authorization: Bearer $token' ``` #### Ejemplo Response ✅ Response Ok (204) ❌ Response Error (400) 📘 Atributos de la respuesta ``` Recibirás un HTTP Code 204 - No Content ``` ``` { "message": "El usuario no se puede eliminar, tiene saldo de 6", "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | status | String | Indica el estado de la respuesta. | | message | String | Solo aparece en respuestas de error. Describe la razón del error. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-bff0bead-cd24-4d72-93d9-decb97ecea76) --- # Autenticación V2 Fuente: https://developers.sw.com.mx/knowledge-base/autenticacion-v2/ Categoria: SW API´S Servicio de autenticación a los servicios de SW mediante un usuario y contraseña, el cuál generará un token temporal con vigencia de dos horas que se podrá utilizar para conectarse a los servicios de SW. En caso de requerir un token sin vigencia, puede obtener un [token infinito](https://developers.sw.com.mx/knowledge-base/generar-un-token-infinito/) asignado a su cuenta desde el [Administrador De Timbres](https://portal.sw.com.mx/). Para solicitar unas credenciales para ambiente de pruebas, puede hacerlo desde nuestro [formulario](https://developers.sw.com.mx/knowledge-base/usuario-de-prueba/). ### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 --- #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /v2/security/authenticate | #### 🔐 Headers | Header | Value | | --- | --- | | Content-Type | application/json | #### **🧾Parámetros JSON** | Propiedad | Tipo | Uso | Descripción | | --- | --- | --- | --- | | user | string | requerido | correo del usuario | | password | string | requerido | contraseña | #### Ejemplo Request ``` curl --location 'https://services.test.sw.com.mx/v2/security/authenticate' \ --header 'Content-Type: application/json' \ --data-raw '{ "user":" usuario@pruebas.com", "password":"contraseña1234" }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "token": "T2lYQ0t4L0...", "expires_in": 1630012447, "tokeny_type": "Bearer" }, "status": "success" } ``` ``` { "message": "AU2000 - El usuario y/o contraseña son inválidos, no se puede autenticar el servicio.", "messageDetail": null, "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto de datos que incluye el token para usar los servicios. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-bf4d1eed-a240-4de6-b172-e8536544d53c) **Video:** [SW® | Conoce el flujo de timbrado para el consumo de los Servicio SW®](https://www.youtube.com/watch?v=ilqiX7KxzAs) --- # Efisco® API Fuente: https://developers.sw.com.mx/knowledge-base/api-efisco/ Categoria: SW API´S # Efisco® API Efisco® permite gestionar la descarga masiva de XML y generar reportes de los archivos descargados. Para poder generar las descargas es necesario contar con un [token de acceso temporal](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) o [token infinito](https://developers.sw.com.mx/knowledge-base/generar-un-token-infinito/) válido. ## URL´s Marca tu ambiente activo — los botones de copiar ruta de cada endpoint arman la URL completa con la base que elijas aquí. 🛠️ Pruebas: `https://api.test.sw.com.mx` 📄 🚀 Productivo: `https://api.sw.com.mx` 📄 **🚨Importante:** Los servicios de descarga del **SAT** no cuentan con ambiente de pruebas. El ambiente de **pruebas Efisco®** apunta a los servicios productivos del SAT y deberás cargar una **FIEL vigente** para poder realizar solicitudes de descarga. **💡Nota:** **Efisco®** permite implementar un proceso de descargas programadas haciendo uso de un **webhook**, para mas información, escribenos a **soporte@sw.com.mx** o contacta con tu ejecutiva de ventas, ten en cuenta que el proceso de integración puede tomar tiempo. 📍 Documentación ▾ 📖 En esta referencia 🔄 Flujo de descarga Efisco 📖 Documentación 🪪 FIEL▾ Cargar FIEL Obtener FIEL por RFC Obtener FIELs paginados Eliminar FIEL 🔑 CIEC▾ Cargar CIEC Obtener CIEC por ID Obtener CIEC’s paginadas Actualizar CIEC Eliminar CIEC 📥 Crear solicitud de descarga▾ Scraping | Portal SAT Web Service Metadata Programar descarga 🔍 Consulta de estatus▾ Consulta por requestId Consulta paginada Consulta registros de peticiones programadas 📦 Descarga de solicitud concluida 📏 Reglas y límites ## 🔄 Flujo de descarga Efisco [📊 Visualiza el flujo de descarga Efisco® 🔎](https://developers.sw.com.mx/knowledge-base/api-efisco/) Tres pasos, en orden. El paso 1 tiene varios métodos disponibles (Web Service, Scraping, Metadata, Programada) — usa el que corresponda a tu caso. 1. `POST /gestion/v1/api/massiveservicemanager/request/create/webservice` (u otro método) Crea la solicitud de descarga. Responde con un `requestId` que se usa en los siguientes pasos. Ver Crear solicitud de descarga → Web Service. 2. `GET /gestion/v1/api/gestionxml/{requestId}` → poll Consulta el estatus de la solicitud hasta que `statusRequest` indique que terminó. Ver Consulta por requestId. 3. `POST /gestion/v1/api/file` Con el `pathFile` obtenido en el paso anterior, genera la URL pública de descarga. Ver Descarga de solicitud concluida. ## 📖 Documentación requestType | processType documentType processType statusRequest cfdiType cfdiComplement (Web Service) cfdiComplement (Scraping) Errores del SAT ### requestType | processType | requestType \| processType | Valor | Descripción | | --- | --- | --- | | `WebService` | `0` | Petición realizada vía servicio web | | `WebPortal` | `1` | Petición realizada por Scraping \| Portal SAT | | `Metadata` | `2` | Petición de información metadatos | | `WebService (Sin metadata)` | `3` | Petición realizada vía web service que no contiene metadata | ### documentType | documentType | Valor | Descripción | | --- | --- | --- | | `Emision` | `0` | Documento que emitió el RFC que genera la solicitud | | `Recepcion` | `1` | Documento que recibió el RFC que genera la solicitud | ### processType (`processes`) | processType (`processes`) | Valor | Descripción | | --- | --- | --- | | `CFDI` | `0` | Generación de reportes y descargas de archivos XML | | `PDF` | `1` | Generación de archivos PDF de los XML descargados | | `Metadata` | `2` | Reportes centrados en información de metadatos | ### statusRequest | statusRequest | Valor | Descripción | | --- | --- | --- | | `InProgress` | `1` | Petición en curso | | `Error` | `3` | Ocurrió un error durante el proceso | | `Expired` | `4` | Petición expirada o ya no disponible | | `Completed` | `6` | Proceso terminado con éxito | ### cfdiType | cfdiType | Valor | Descripción | | --- | --- | --- | | `Todos` | `null` | Recuperar todos los tipos de comprobante | | `Pagos` | `P` | Comprobante de tipo Pagos | | `Nómina` | `N` | Comprobante de tipo Nómina | | `Ingreso` | `I` | Comprobante de tipo Ingreso | | `Egreso` | `E` | Comprobante de tipo Egreso | | `Traslados` | `T` | Comprobante de tipo Traslados | ### cfdiComplement (Web Service) | cfdiComplement (Web Service) | Valor | Descripción | | --- | --- | --- | | `Todos` | `null` | Recupera todos los complementos | | `Acreditamiento de IEPS` | `acreditamientoieps10` | Complemento de Acreditamiento de IEPS | | `Aerolíneas` | `aerolineas` | Complemento de Aerolíneas | | `Certificado de Destrucción` | `certificadodedestruccion` | Complemento de Certificado de Destrucción | | `CFDI Registro Fiscal` | `cfdiregistrofiscal` | Complemento de CFDI Registro Fiscal | | `Comercio Exterior` | `comercioexterior10` | Complemento de Comercio Exterior | | `Comercio Exterior 1.1` | `comercioexterior11` | Complemento de Comercio Exterior 1.1 | | `Comprobante` | `comprobante` | Complemento de Comprobante | | `Consumo de Combustibles` | `consumodecombustibles` | Complemento de Consumo de Combustibles | | `Consumo de Combustibles 1.1` | `consumodecombustibles11` | Complemento de Consumo de Combustibles 1.1 | | `Sector de Ventas a Detalle` | `detallista` | Complemento de Sector de Ventas a Detalle | | `Compra Venta de Divisas` | `divisas` | Complemento de Compra Venta de Divisas | | `Donatarias` | `donat11` | Complemento de Donatarias | | `Estado de Cuenta de Combustibles de Monederos Electrónicos` | `ecc11` | Complemento de Estado de Cuenta de Combustibles de Monederos Electrónicos | | `Estado de Cuenta de Combustibles 1.2` | `ecc12` | Complemento de Estado de Cuenta de Combustibles 1.2 | | `Gastos de Hidrocarburos` | `gastoshidrocarburos10` | Complemento de Gastos de Hidrocarburos | | `Instituciones Educativas Privadas` | `iedu` | Complemento de Instituciones Educativas Privadas | | `Otros Derechos e Impuestos` | `implocal` | Complemento de Otros Derechos e Impuestos | | `INE 1.1` | `ine11` | Complemento de INE 1.1 | | `Ingresos de Hidrocarburos` | `ingresoshidrocarburos` | Complemento de Ingresos de Hidrocarburos | | `Leyendas Fiscales` | `leyendasfiscales` | Complemento de Leyendas Fiscales | | `Recibo de Pago de Salarios` | `nomina11` | Complemento de Recibo de Pago de Salarios | | `Recibo de Pago de Salarios 1.2` | `nomina12` | Complemento de Recibo de Pago de Salarios 1.2 | | `Notarios Públicos` | `notariospublicos` | Complemento de Notarios Públicos | | `Obras de arte y antigüedades` | `obrasarteantiguedades` | Complemento de Obras de arte y antigüedades | | `Pago en Especie` | `pagoenespecie` | Complemento de Pago en Especie | | `Recepción de Pagos` | `pagos10` | Complemento de Recepción de Pagos | | `Persona Física Integrante de Coordinado` | `pfic` | Complemento de Persona Física Integrante de Coordinado | | `Sustitución y Renovación Vehicular` | `renovacionysustitucionvehiculos` | Complemento de Sustitución y Renovación Vehicular | | `Servicios Parciales de Construcción` | `servicioparcialconstruccion` | Complemento de Servicios Parciales de Construcción | | `SPEI de Tercero a Tercero` | `spei` | Complemento de SPEI de Tercero a Tercero | | `Terceros` | `terceros11` | Complemento de Terceros | | `Turista o Pasajero Extranjero` | `turistapasajeroextranjero` | Complemento de Turista o Pasajero Extranjero | | `Vales de Despensa` | `valesdedespensa` | Complemento de Vales de Despensa | | `Vehículo Usado` | `vehiculousado` | Complemento de Vehículo Usado | | `Venta de Vehículos` | `ventavehiculos11` | Complemento de Venta de Vehículos | ### cfdiComplement (Portal SAT | Scraping) | cfdiComplement (Portal SAT \| Scraping) | Valor | Descripción | | --- | --- | --- | | `Todos` | `TODOS` | Recupera todos los complementos | | `Recibo de Pago de Salarios` | `RECIBO_PAGO_SALARIOS` | Complemento de Recibo de Pago de Salarios (Nómina) | | `Recibo de Pago de Salarios 1.2` | `RECIBO_PAGO_SALARIOS_12` | Complemento de Recibo de Pago de Salarios (Nómina) versión 1.2 | | `Vales de Despensa` | `VALES_DESPENSA` | Complemento de Vales de Despensa | | `INE 1.1` | `INE_11` | Complemento de INE versión 1.1 | | `Estado de Cuenta Bancario` | `ESTADO_CUENTA_BANCARIO` | Complemento de Estado de Cuenta Bancario | | `Persona Física Integrante de Coordinado` | `PERSONA_FISICA_COORDINADO` | Complemento de Persona Física Integrante de Coordinado | | `Comercio Exterior` | `COMERCIO_EXTERIOR` | Complemento de Comercio Exterior | | `Comercio Exterior 1.1` | `COMERCIO_EXTERIOR_11` | Complemento de Comercio Exterior versión 1.1 | | `Comercio Exterior 2.0` | `COMERCIO_EXTERIOR_20` | Complemento de Comercio Exterior versión 2.0 | | `Sustitución y Renovación Vehicular` | `SUSTITUCION_RENOVACION_VEHICULAR` | Complemento de Sustitución y Renovación Vehicular | | `Estado de Cuenta de Combustibles 1.2` | `ESTADO_CUENTA_COMBUSTIBLES_12` | Complemento de Estado de Cuenta de Combustibles versión 1.2 | | `Estado de Cuenta de Combustibles de Monederos Electrónicos` | `ESTADO_CUENTA_COMBUSTIBLES_MONEDEROS` | Complemento de Estado de Cuenta de Combustibles de Monederos Electrónicos | | `Recepción de Pagos` | `RECEPCION_PAGOS` | Complemento de Recepción de Pagos | | `Recepción de Pagos (versión anterior)` | `RECEPCION_PAGOS_OLD` | Complemento de Recepción de Pagos (versión anterior) | | `Carta Porte` | `CARTA_PORTE` | Complemento Carta Porte (genérico) | | `Carta Porte 2.0` | `CARTA_PORTE_20` | Complemento Carta Porte versión 2.0 | | `Carta Porte 3.0` | `CARTA_PORTE_30` | Complemento Carta Porte versión 3.0 | | `Carta Porte 3.1` | `CARTA_PORTE_31` | Complemento Carta Porte versión 3.1 | | `Vehículo Usado` | `VEHICULO_USADO` | Complemento de Vehículo Usado | | `Consumo de Combustibles` | `CONSUMO_COMBUSTIBLES` | Complemento de Consumo de Combustibles | | `Consumo de Combustibles 1.1` | `CONSUMO_COMBUSTIBLES_11` | Complemento de Consumo de Combustibles versión 1.1 | | `Donatarias` | `DONATARIAS` | Complemento de Donatarias | | `Recibo de Donativo` | `RECIBO_DONATIVO` | Complemento de Recibo de Donativo | | `Aerolíneas` | `AEROLINEAS` | Complemento de Aerolíneas | | `Acreditamiento de IEPS` | `ACREDITAMIENTO_IEPS` | Complemento de Acreditamiento de IEPS | | `Ingresos de Hidrocarburos` | `INGRESOS_HIDROCARBUROS` | Complemento de Ingresos de Hidrocarburos | | `Gastos de Hidrocarburos` | `GASTOS_HIDROCARBUROS` | Complemento de Gastos de Hidrocarburos | | `SPEI de Tercero a Tercero` | `SPEI_TERCERO_TERCERO` | Complemento de SPEI de Tercero a Tercero | | `Timbre Fiscal Digital` | `TIMBRE_FISCAL_DIGITAL` | Complemento de Timbre Fiscal Digital | | `Leyendas Fiscales` | `LEYENDAS_FISCALES` | Complemento de Leyendas Fiscales | | `Instituciones Educativas Privadas` | `INSTITUCIONES_EDUCATIVAS` | Complemento de Instituciones Educativas Privadas | | `Venta de Vehículos` | `VENTA_VEHICULOS` | Complemento de Venta de Vehículos | | `Servicios Parciales de Construcción` | `SERVICIOS_CONSTRUCCION` | Complemento de Servicios Parciales de Construcción | | `Obras de arte y antigüedades` | `OBRAS_ARTE_ANTIGUEDADES` | Complemento de Obras de arte y antigüedades | | `Compra Venta de Divisas` | `COMPRA_VENTA_DIVISAS` | Complemento de Compra Venta de Divisas | | `Pago en Especie` | `PAGO_ESPECIE` | Complemento de Pago en Especie | | `Terceros (variante 1)` | `TERCEROS_1` | Complemento de Terceros (variante 1) | | `Terceros (variante 2)` | `TERCEROS_2` | Complemento de Terceros (variante 2) | | `Turista o Pasajero Extranjero` | `TURISTA_PASAJERO_EXTRANJERO` | Complemento de Turista o Pasajero Extranjero | | `Mis Cuentas` | `MIS_CUENTAS` | Complemento de Mis Cuentas | | `Certificado de Destrucción` | `CERTIFICADO_DESTRUCCION` | Complemento de Certificado de Destrucción | | `Otros Derechos e Impuestos` | `OTROS_DERECHOS_IMPUESTOS` | Complemento de Otros Derechos e Impuestos | | `Sector de Ventas a Detalle` | `SECTOR_VENTAS_DETALLE` | Complemento de Sector de Ventas a Detalle | | `Notarios Públicos` | `NOTARIOS_PUBLICOS` | Complemento de Notarios Públicos | | `Estándar` | `ESTANDAR` | CFDI estándar (sin complemento) | ### Códigos de error devueltos por el SAT | Código | Mensaje | Descripción | | --- | --- | --- | | `304` | `Certificado Revocado o Caduco` | El certificado fue revocado o bien la fecha de vigencia expiró. | | `305` | `Certificado Inválido` | El certificado puede ser inválido por múltiples razones como son el tipo, la vigencia, etc. | | `404` | `Error no controlado` | Error no controlado devuelto por el SAT | | `5002` | `Se han agotado las solicitudes de por vida` | Se ha alcanzado el límite de solicitudes, con el mismo criterio | | `5003` | `Tope máximo` | Indica que con base en los parámetros de consulta se está superando el tope máximo de CFDI o Metadata, por solicitud de descarga masiva. | | `5004` | `No se encontró la información` | No se encontró la información con los datos proporcionados, inténtalo con otros parámetros de búsqueda. | | `5006` | `Error interno en el proceso` | Error interno en el proceso devuelto por el SAT | ## Cargar FIEL Cargar una nueva FIEL en el sistema. #### 🔗 Endpoint POST https://api.test.sw.com.mx/gestion/v1/api/certificates/create/fiel 📄 | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | | `Content-Type` | `application/json` | #### 🧾 Parámetros JSON | Propiedad | Tipo | Uso | Descripción | | --- | --- | --- | --- | | `privatekey` | string | Requerido | Key en Base64 | | `publickey` | string | Requerido | CSD en Base64 | | `password` | string | Requerido | Contraseña del certificado | #### Ejemplo Request ``` curl --location --request POST 'https://api.sw.com.mx/gestion/v1/api/certificates/create/fiel' \ --header 'Authorization: Bearer {{token}}' \ --header 'Content-Type: application/json' \ --data-raw '{ "privatekey": "{{base64Key}}", "publickey": "{{base64Cer}}", "password": "12345678a" }' ``` #### Respuesta ✅ Éxito (200) ❌ Error (400) 📋 Atributos ``` { "data": { "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "taxId": "CACX7605101P8", "createdDate": "2025-04-11T18:31:04.9935201+00:00", "serialNumber": "30001000000500003282", "name": "XOCHILT CASAS CHAVEZ", "notBefore": "2023-05-09T18:05:49+00:00", "notAfter": "2027-05-08T18:05:49+00:00", "encryptedPfx": "8nFGs1nqir...", "encryptedPK": "nxG25f9lPwt...", "encryptedPassword": "g109dSBauF8P3Fb7BNwBbg==" }, "status": "success", "message": "OK", "messageDetail": "" } ``` ``` { "data": null, "status": "error", "message": "Verifique que el certificado y la contraseña sean correctos", "messageDetail": "" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | `data` | object/null | Objeto de datos referente a la solicitud cuando es exitoso. | | `status` | String | “success” o “error” | | `message` | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. | | `messageDetail` | String | Mensaje más descriptivo del error cuando existe uno. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/eqwz1ij/almacenar-certificados) ## Obtener FIEL por RFC Consulta la FIEL específica de un RFC perteneciente al usuario del token. #### 🔗 Endpoint POST https://api.test.sw.com.mx/gestion/v1/api/certificates/get/fiel?filter={taxId} 📄 #### 📍 Parámetros Query | Propiedad | Uso | Descripción | | --- | --- | --- | | `filter` | Requerido | RFC de la FIEL a buscar | | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | #### Ejemplo Request ``` curl --location --request POST 'https://api.sw.com.mx/gestion/v1/api/certificates/get/fiel?filter={taxId}' \ --header 'Authorization: Bearer {{token}}' ``` #### Respuesta ✅ Éxito (200) ❌ Error (400) 📋 Atributos ``` { "data": { "metaData": { "page": 1, "perPage": 10, "pageCount": 1, "totalCount": 1, "links": { "current": "?page=1&per_page=10" } }, "records": [ { "taxId": "CACX7605101P8", "createdDate": "2025-04-11T18:39:09", "serialNumber": "30001000000500003282", "name": "XOCHILT CASAS CHAVEZ", "notBefore": "2023-05-09T18:05:49", "notAfter": "2027-05-08T18:05:49" } ] }, "status": "success", "message": "OK", "messageDetail": "" } ``` ``` { "data": { "metaData": { "page": 1, "perPage": 10, "pageCount": 0, "totalCount": 0, "links": { "current": "?page=1&per_page=10" } }, "records": [] }, "status": "success", "message": "OK", "messageDetail": "" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | `data` | array/null | Lista de objetos con información de paginación y datos filtrados. Cada elemento contine datos diferentes. | | `status` | String | “success” o “error” | | `message` | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. | | `messageDetail` | String | Mensaje más descriptivo del error cuando existe uno. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/9sqihj1/obtener-certificados-por-rfc) ## Obtener FIELs paginados Consulta paginada de FIEL pertenecientes al usuario del token. #### 🔗 Endpoint POST https://api.test.sw.com.mx/gestion/v1/api/certificates/get/fiel?page=1&per\_page=10 📄 #### 📍 Parámetros Query | Propiedad | Uso | Descripción | | --- | --- | --- | | `page` | Requerido | Pagina que se extrae en la consulta | | `per_page` | Requerido | Numero de registros por pagina | | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | #### Ejemplo Request ``` curl --location --request POST 'https://api.sw.com.mx/gestion/v1/api/certificates/get/fiel?page=1&per_page=10' \ --header 'Authorization: Bearer {{token}}' ``` #### Respuesta ✅ Éxito (200) ❌ Error (400) 📋 Atributos ``` { "data": { "metaData": { "page": 1, "perPage": 10, "pageCount": 2, "totalCount": 2, "links": { "current": "?page=1&per_page=10" } }, "records": [ { "taxId": "CACX7605101P8", "createdDate": "2025-04-11T18:39:09", "serialNumber": "30001000000500003282", "name": "XOCHILT CASAS CHAVEZ", "notBefore": "2023-05-09T18:05:49", "notAfter": "2027-05-08T18:05:49" }, { "taxId": "XIQB891116QE4", "createdDate": "2025-04-11T18:44:05", "serialNumber": "30001000000500003301", "name": "BERENICE XIMO QUEZADA", "notBefore": "2023-05-09T18:42:24", "notAfter": "2027-05-08T18:42:24" } ] }, "status": "success", "message": "OK", "messageDetail": "" } ``` ``` { "data": { "metaData": { "page": 1, "perPage": 10, "pageCount": 0, "totalCount": 0, "links": { "current": "?page=1&per_page=10" } }, "records": [] }, "status": "success", "message": "OK", "messageDetail": "" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | `data` | array/null | Lista de objetos con información de paginación y datos filtrados. Cada elemento contine datos diferentes. | | `status` | String | “success” o “error” | | `message` | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. | | `messageDetail` | String | Mensaje más descriptivo del error cuando existe uno. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/3j94rkg/obtener-certificados-paginados) ## Eliminar FIEL Elimina una FIEL almacenada. #### 🔗 Endpoint DELETE https://api.test.sw.com.mx/gestion/v1/api/certificates/{taxId} 📄 | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | `taxId` | Requerido | RFC de la FIEL a eliminar | #### Ejemplo Request ``` curl --location --request DELETE 'https://api.sw.com.mx/gestion/v1/api/certificates/{taxId}' \ --header 'Authorization: Bearer {{token}}' ``` #### Respuesta ✅ Éxito (200) ❌ Error (400) 📋 Atributos ``` { "data": "Certificado 30001000000500003282 eliminado exitosamente.", "status": "success", "message": "OK", "messageDetail": "" } ``` ``` { "data": null, "status": "error", "message": "El certificado que se intenta eliminar no se encuentra en la base de datos.", "messageDetail": "" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | `data` | object/null | Objeto de datos referente a la solicitud cuando es exitoso. | | `status` | String | “success” o “error” | | `message` | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. | | `messageDetail` | String | Mensaje más descriptivo del error cuando existe uno. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/xgxi8nu/eliminar-certificados) ## Cargar CIEC Cargar una nueva CIEC en el sistema. #### 🔗 Endpoint POST https://api.test.sw.com.mx/gestion/v1/api/ciecs 📄 | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | | `Content-Type` | `application/json` | #### 🧾 Parámetros JSON | Propiedad | Tipo | Uso | Descripción | | --- | --- | --- | --- | | `taxId` | string | Requerido | RFC relacionado a la CIEC | | `password` | string | Requerido | Contraseña CIEC | #### Ejemplo Request ``` curl --location --request POST 'https://api.sw.com.mx/gestion/v1/api/ciecs' \ --header 'Authorization: Bearer {{token}}' \ --header 'Content-Type: application/json' \ --data '{ "taxId": "EKU9003173C9", "password": "12345678a" }' ``` #### Respuesta ✅ Éxito (200) ❌ Error (400) 📋 Atributos ``` { "data": { "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "6fa459ea-ee8a-11e3-ac10-0800200c9a66", "idDealer": "6fa459ea-ee8a-11e3-ac10-0800200c9a66", "taxId": "EKU9003173C9", "password": "QXJnb...", "createdDate": "2025-04-11T13:56:37.9289642" }, "status": "success", "message": "OK", "messageDetail": "" } ``` ``` { "data": null, "status": "error", "message": "Password no valido para RFC.", "messageDetail": "" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | `data` | object/null | Objeto de datos referente a la solicitud cuando es exitoso. | | `status` | String | “success” o “error” | | `message` | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. | | `messageDetail` | String | Mensaje más descriptivo del error cuando existe uno. | Postman no disponible ## Obtener CIEC por ID Consulta por ID de una CIEC perteneciente al usuario del token. #### 🔗 Endpoint GET https://api.test.sw.com.mx/gestion/v1/api/ciecs/{id} 📄 | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | #### 📍 Parámetros Path | Propiedad | Tipo | Uso | Descripción | | --- | --- | --- | --- | | `id` | string | Requerido | ID relacionado a la CIEC cargada | #### Ejemplo Request ``` curl --location --request GET 'https://api.sw.com.mx/gestion/v1/api/ciecs/{id}' \ --header 'Authorization: Bearer {{token}}' ``` #### Respuesta ✅ Éxito (200) ❌ Error (400) 📋 Atributos ``` { "data": { "id": "9615e32e-d5ef-445f-938c-ff2809d9d963", "idUser": "6fa459ea-ee8a-11e3-ac10-0800200c9a66", "idDealer": "6fa459ea-ee8a-11e3-ac10-0800200c9a66", "taxId": "EKU9003173C9", "createdDate": "2025-04-11T14:01:11" }, "status": "success", "message": "OK", "messageDetail": "" } ``` ``` { "data": null, "status": "error", "message": "Object reference not set to an instance of an object.", "messageDetail": "" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | `data` | object/null | Objeto de datos referente a la solicitud cuando es exitoso. | | `status` | String | “success” o “error” | | `message` | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. | | `messageDetail` | String | Mensaje más descriptivo del error cuando existe uno. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/ru9wx4i/obtener-ciec-por-id) ## Obtener CIEC´s paginadas Consulta paginada de CIEC´s perteneciente al usuario del token. #### 🔗 Endpoint GET https://api.test.sw.com.mx/gestion/v1/api/ciecs?page=1&per\_page=10 📄 | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | #### 📍 Parámetros Query | Propiedad | Uso | Descripción | | --- | --- | --- | | `page` | Requerido | Pagina que se extrae en la consulta | | `per_page` | Requerido | Numero de registros por pagina | #### Ejemplo Request ``` curl --location --request GET 'https://api.sw.com.mx/gestion/v1/api/ciecs?page=1&per_page=10' \ --header 'Authorization: Bearer {{token}}' ``` #### Respuesta ✅ Éxito (200) ❌ Error (400) 📋 Atributos ``` { "data": { "metaData": { "page": 1, "perPage": 10, "pageCount": 2, "totalCount": 2, "links": { "current": "?page=1&per_page=10" } }, "records": [ { "id": "1b671a64-40d5-491e-99b0-da01ff1f3341", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "taxId": "CACX7605101P8", "createdDate": "2025-04-11T13:56:38" }, { "id": "6fa459ea-ee8a-11e3-ac10-0800200c9a66", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "taxId": "EKU9003173C9", "createdDate": "2025-04-11T14:01:11" } ] }, "status": "success", "message": "OK", "messageDetail": "" } ``` ``` { "data": { "metaData": { "page": 1, "perPage": 10, "pageCount": 0, "totalCount": 0, "links": { "current": "?page=1&per_page=10" } }, "records": [] }, "status": "success", "message": "OK", "messageDetail": "" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | `data` | array/null | Lista de objetos con información de paginación y datos filtrados. Cada elemento contine datos diferentes. | | `status` | String | “success” o “error” | | `message` | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. | | `messageDetail` | String | Mensaje más descriptivo del error cuando existe uno. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/6d1umfy/obtener-ciecs-paginadas) ## Actualizar CIEC Actualizar CIEC perteneciente al usuario del token. #### 🔗 Endpoint PUT https://api.test.sw.com.mx/gestion/v1/api/ciecs/{id} 📄 | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | | `Content-Type` | `application/json` | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | `id` | Requerido | ID relacionado con la CIEC a actualizar | #### Ejemplo Request ``` curl --location --request PUT 'https://api.sw.com.mx/gestion/v1/api/ciecs/{id}' \ --header 'Authorization: Bearer {{token}}' \ --header 'Content-Type: application/json' \ --data '{ "taxId": "EKU9003173C9", "password": "12345678a" }' ``` #### Respuesta ✅ Éxito (200) ❌ Error (400) 📋 Atributos ``` { "data": { "id": "9615e32e-d5ef-445f-938c-ff2809d9d963", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "taxId": "EKU9003173C9", "password": "12345678a", "createdDate": "2025-04-11T12:41:37" }, "status": "success", "message": "OK", "messageDetail": "" } ``` ``` { "data": null, "status": "error", "message": "Password no valido para RFC.", "messageDetail": "" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | `data` | object/null | Objeto de datos referente a la solicitud cuando es exitoso. | | `status` | String | “success” o “error” | | `message` | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. | | `messageDetail` | String | Mensaje más descriptivo del error cuando existe uno. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/gmweaju/actualizar-ciec) ## Eliminar CIEC Eliminar CIEC perteneciente al usuario del token. #### 🔗 Endpoint DELETE https://api.test.sw.com.mx/gestion/v1/api/ciecs/{id} 📄 | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | `id` | Requerido | ID relacionado con la CIEC a eliminar | #### Ejemplo Request ``` curl --location --request DELETE 'https://api.sw.com.mx/gestion/v1/api/ciecs/{id}' \ --header 'Authorization: Bearer {{token}}' ``` #### Respuesta ✅ Éxito (200) ❌ Error (400) 📋 Atributos ``` { "data": "Ciec con id f47ac10b-58cc-4372-a567-0e02b2c3d479 eliminado correctamente.", "status": "success", "message": "OK", "messageDetail": "" } ``` ``` { "data": null, "status": "error", "message": "No se encontro ciec con ese id.", "messageDetail": "" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | `data` | object/null | Objeto de datos referente a la solicitud cuando es exitoso. | | `status` | String | “success” o “error” | | `message` | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. | | `messageDetail` | String | Mensaje más descriptivo del error cuando existe uno. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/7p63764/eliminar-ciec) ## Scraping | Portal SAT #### 🔗 Endpoint POST https://api.test.sw.com.mx/gestion/v1/api/massiveservicemanager/request/create/webportal 📄 | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | | `Content-Type` | `application/json` | #### 🧾 Parámetros JSON | Propiedad | Tipo | Uso | Descripción | | --- | --- | --- | --- | | `documentType` | string | Requerido | Tipo de documento a descargar | | `startDate` | string | Requerido | Fecha de inicio (“aaaa-mm-dd hh:mm:ss”) | | `endDate` | string | Requerido | Fecha de fin (“aaaa-mm-dd hh:mm:ss”) | | `taxId` | string | Requerido | RFC | | `cfdiComplement` | string | Opcional | (Default = null) Especifica el tipo de complemento a buscar (si es null busca todos los tipos de complementos) | | `generatePDF` | bool | Opcional | (Default = false) Especificar si se generaran los PDFs de los documentos descargadas | | `googleDrive` | bool | Opcional | (Default = false) Especificar si se guarda la descarga en Google Drive (si existe cuenta vinculada) | #### Ejemplo Request ``` curl --location --request POST 'https://api.sw.com.mx/gestion/v1/api/massiveservicemanager/request/create/webportal' \ --header 'Authorization: Bearer {{token}}' \ --header 'Content-Type: application/json' \ --data '{ "documentType": "Emision", "startDate": "2025-01-01 00:00:00", "endDate": "2025-01-29 23:59:59", "taxId": "XIQB891116QE4", "cfdiComplement": null, "generatePDF": false, "googleDrive": false }' ``` #### Respuesta ✅ Éxito (200) ❌ Error (400) 📋 Atributos ``` { "data": { "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "requestId": "0dc44f00-b66b-495c-acce-5a0aeee88fec", "taxId": "XIQB891116QE4", "createdDate": "2025-04-11T15:05:40.7868786", "dateFrom": "2025-01-01T00:00:00", "dateTo": "2025-01-31T23:59:59", "requestType": 1, "documentType": 0, "statusRequest": 1, "message": "La solicitud de descarga de xml se encuentra en progreso", "totalFiles": 0, "rfcEmisor": null, "rfcReceptor": null, "efosIndicator": 0, "rfcTPAccount": null, "cfdiType": null, "cfdiComplement": null, "processes": [ { "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "requestId": "0dc44f00-b66b-495c-acce-5a0aeee88fec", "processType": 0, "statusProcess": 1, "message": "", "url": null, "createdDate": "2025-04-11T15:05:40.7868786" }, { "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "requestId": "0dc44f00-b66b-495c-acce-5a0aeee88fec", "processType": 1, "statusProcess": 1, "message": "", "url": null, "createdDate": "2025-04-11T15:05:40.7868786" } ] }, "status": "success", "message": "OK", "messageDetail": "" } ``` ``` { "data": null, "status": "error", "message": "Ya existe una solicitud con los mismos parámetros : 2025-01-01-2025-01-31 . RFC XIQB891116QE4", "messageDetail": "" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | `data` | object/null | Objeto de datos referente a la solicitud cuando es exitoso. | | `status` | String | “success” o “error” | | `message` | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. | | `messageDetail` | String | Mensaje más descriptivo del error cuando existe uno. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/bzcq1ps/solicitud-scraping-portal-del-sat) ## Web Service #### 🔗 Endpoint POST https://api.test.sw.com.mx/gestion/v1/api/massiveservicemanager/request/create/webservice 📄 | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | | `Content-Type` | `application/json` | #### 🧾 Parámetros JSON | Propiedad | Tipo | Uso | Descripción | | --- | --- | --- | --- | | `documentType` | string | Requerido | Tipo de documento a descargar | | `startDate` | string | Requerido | Fecha de inicio (“aaaa-mm-dd hh:mm:ss”) | | `endDate` | string | Requerido | Fecha de fin (“aaaa-mm-dd hh:mm:ss”) | | `taxId` | string | Requerido | RFC del usuario | | `generatePDF` | bool | Opcional | (Default = false) Especifica si se generarán los PDFs de los documentos descargados | | `googleDrive` | bool | Opcional | (Default = false) Especificar si se guarda la descarga en Google Drive (si existe cuenta vinculada) | | `rfcReceptor` | array | Opcional | (Default = empty) Especifica el RFC receptor a buscar en los XML descargados (en caso de descarga de tipo Emisión) | | `cfdiType` | string | Opcional | (Default = null) Especifica el tipo de comprobante a descargar (si es null busca todos los tipos de comprobantes) | | `cfdiComplement` | string | Opcional | (Default = null) Especifica el tipo de complemento a buscar (si es null busca todos los tipos de complementos) | | `cfdiStatus` | string | Opcional | (Default = “Todos”) Indica el estatus del CFDI a descargar: `Vigente`, `Cancelado` o `Todos`. Solo aplica para peticiones de tipo Web Service y con `documentType = Emision`. | | `includeStatus` | bool | Opcional | (Default = false) Solicita que se agregue el archivo de metadata al reporte, y que los reportes Excel generados incluyan el estatus del CFDI (con base en esa metadata). | #### Ejemplo Request ``` curl --location --request POST 'https://api.sw.com.mx/gestion/v1/api/massiveservicemanager/request/create/webservice' \ --header 'Authorization: Bearer {{token}}' \ --header 'Content-Type: application/json' \ --data '{ "documentType": "Emision", "startDate": "2025-01-01 00:00:00", "endDate": "2025-01-21 23:59:58", "taxId": "CACX7605101P8", "generatePDF": false, "googleDrive": false, "rfcReceptor": [], "cfdiType": null, "cfdiComplement": null, "includeStatus": false, "cfdiStatus": "Todos" }' ``` #### Respuesta ✅ Éxito (200) ❌ Error (400) 📋 Atributos ``` { "data": { "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "requestId": "b72ef0e3-27e6-4082-bfbc-f91c240a3063", "taxId": "CACX7605101P8", "createdDate": "2025-04-11T15:24:57.4954099", "dateFrom": "2025-01-01T00:00:00", "dateTo": "2025-01-31T23:59:58", "requestType": 0, "documentType": 0, "statusRequest": 1, "message": "La solicitud de descarga de xml se encuentra en progreso", "totalFiles": 0, "rfcEmisor": null, "rfcReceptor": "", "efosIndicator": 0, "rfcTPAccount": null, "cfdiType": null, "cfdiComplement": null, "processes": [ { "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "requestId": "b72ef0e3-27e6-4082-bfbc-f91c240a3063", "processType": 0, "statusProcess": 1, "message": "", "url": null, "createdDate": "2025-04-11T15:24:57.4954099" }, { "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "requestId": "b72ef0e3-27e6-4082-bfbc-f91c240a3063", "processType": 1, "statusProcess": 1, "message": "", "url": null, "createdDate": "2025-04-11T15:24:57.4954099" } ] }, "status": "success", "message": "OK", "messageDetail": "" } ``` ``` { "data": null, "status": "error", "message": "Ya existe una solicitud con los mismos parámetros : 2025-01-01 00:00:00-2025-01-31 23:59:58 . RFC CACX7605101P8", "messageDetail": "" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | `data` | object/null | Objeto de datos referente a la solicitud cuando es exitoso. | | `status` | String | “success” o “error” | | `message` | String | Mensaje informativo sobre la petición generada. Varía si la petición fue “success” o “error”. | | `messageDetail` | String | Mensaje más descriptivo del error cuando existe uno. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/o51s8pf/solicitud-web-service) ## Metadata #### 🔗 Endpoint POST https://api.test.sw.com.mx/gestion/v1/api/MassiveServiceManager/request/create/webservice/metadata 📄 | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | | `Content-Type` | `application/json` | #### 🧾 Parámetros JSON | Propiedad | Tipo | Uso | Descripción | | --- | --- | --- | --- | | `documentType` | string | Requerido | Tipo de documento a descargar | | `startDate` | string | Requerido | Fecha de inicio (“aaaa-mm-dd hh:mm:ss”) | | `endDate` | string | Requerido | Fecha de fin (“aaaa-mm-dd hh:mm:ss”) | | `taxId` | string | Requerido | RFC | #### Ejemplo Request ``` curl --location --request POST 'https://api.sw.com.mx/gestion/v1/api/MassiveServiceManager/request/create/webservice/metadata' \ --header 'Authorization: Bearer {{token}}' \ --header 'Content-Type: application/json' \ --data '{ "documentType": "Emision", "startDate": "2025-01-01 00:00:00", "endDate": "2025-01-31 23:59:58", "taxId": "CACX7605101P8" }' ``` #### Respuesta ✅ Éxito (200) ❌ Error (400) 📋 Atributos ``` { "data": { "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "requestId": "5705cbf0-4886-4132-8c98-94fdfd8f2b93", "taxId": "CACX7605101P8", "createdDate": "2025-04-11T15:32:53.3265727", "dateFrom": "2025-01-01T00:00:00", "dateTo": "2025-01-31T23:59:58", "requestType": 2, "documentType": 0, "statusRequest": 1, "message": "La solicitud de descarga se encuentra en progreso", "totalFiles": 0, "rfcEmisor": null, "rfcReceptor": null, "efosIndicator": 0, "rfcTPAccount": null, "cfdiType": null, "cfdiComplement": null, "processes": [ { "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "requestId": "5705cbf0-4886-4132-8c98-94fdfd8f2b93", "processType": 2, "statusProcess": 1, "message": "", "url": null, "createdDate": "2025-04-11T15:32:53.3265727" } ] }, "status": "success", "message": "OK", "messageDetail": "" } ``` ``` { "data": null, "status": "error", "message": "El certificado del RFC es inválido, por favor actualícelo. (305)", "messageDetail": "" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | `data` | object/null | Objeto de datos referente a la solicitud cuando es exitoso. | | `status` | String | “success” o “error” | | `message` | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. | | `messageDetail` | String | Mensaje más descriptivo del error cuando existe uno. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/on7f4kf/solicitud-metadata) ## Programar descarga Se crea tarea programada de descarga de CFDI periódicamente. #### 🔗 Endpoint POST https://api.test.sw.com.mx/gestion/v1/api/gestionxml/scheduler/create 📄 | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | | `Content-Type` | `application/json` | #### 🧾 Parámetros JSON | Propiedad | Tipo | Uso | Descripción | | --- | --- | --- | --- | | `active` | int | Requerido | Estatus de la descarga | | `schedule` | string | Requerido | Hora de ejecución de la descarga, siempre se ejecuta a las 00:00:00 hrs | | `documentType` | string | Requerido | Tipo de documento a descargar | | `taxId` | string | Requerido | RFC del usuario | | `lapseDays` | int | Requerido | Rango de días de la información a descargar | | `processType` | int | Requerido | Tipo de proceso a ejecutar | | `frecuencyInDays` | int | Requerido | Frecuencia en dias con la que se hará la descarga | | `generatePdf` | int | Opcional | (Default = 0) Especificar si se generaran los PDFs de los documentos descargadas | | `googleDrive` | int | Opcional | (Default = 0) Especificar si se guarda la descarga en Google Drive (si existe cuenta vinculada) | | `cfdiType` | string | Opcional | (Default = null) Especifica el tipo de comprobante a descargar (si es null busca todos los tipos de comprobantes) | | `cfdiComplement` | string | Opcional | (Default = null) Especifica el tipo de complemento a buscar (si es null busca todos los tipos de complementos) | #### Ejemplo Request ``` curl --location --request POST 'https://api.sw.com.mx/gestion/v1/api/gestionxml/scheduler/create' \ --header 'Authorization: Bearer {{token}}' \ --header 'Content-Type: application/json' \ --data '[ { "active": 1, "schedule": "00:00:00", "documentType": 2, "taxId": "CACX7605101P8", "lapseDays": 1, "processType": 2, "frecuencyInDays": 2, "generatePdf": 0, "googleDrive": 0, "cfdiType": null, "cfdiComplement": null } ]' ``` #### Respuesta ✅ Éxito (200) ❌ Error (400) 📋 Atributos ``` { "data": "Datos insertados.", "status": "success", "message": "OK", "messageDetail": "" } ``` ``` { "data": null, "status": "error", "message": "Rfc no declarado o vacío", "messageDetail": "" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | `data` | String/null | Descripción referente a la solicitud cuando es exitoso. | | `status` | String | “success” o “error” | | `message` | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. | | `messageDetail` | String | Mensaje más descriptivo del error cuando existe uno. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/5ib1stq/descarga-programada) ## Consulta por requestId Consulta una petición por medio del requestId de la solicitud perteneciente al usuario del token. #### 🔗 Endpoint GET https://api.test.sw.com.mx/gestion/v1/api/gestionxml/{requestId} 📄 | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | `idRequest` | Requerido | ID de la solicitud | #### Ejemplo Request ``` curl --location -g --request GET 'https://api.sw.com.mx/gestion/v1/api/gestionxml/{requestId}' \ --header 'Authorization: Bearer {{token}}' ``` #### Respuesta ✅ Éxito (200) ❌ Error (400) 📋 Atributos ``` { "data": { "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "requestId": "14624457-0134-4e1d-993d-7862861ccf2c", "taxId": "CACX7605101P8", "createdDate": "2025-04-11T15:41:33", "dateFrom": "2025-02-01T00:00:00", "dateTo": "2025-02-28T23:59:59", "requestType": 2, "documentType": 1, "statusRequest": 1, "message": "La solicitud de descarga de xml se encuentra en progreso", "totalFiles": 0, "rfcEmisor": null, "rfcReceptor": null, "efosIndicator": 0, "rfcTPAccount": null, "cfdiType": null, "cfdiComplement": null, "processes": [ { "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "requestId": "14624457-0134-4e1d-993d-7862861ccf2c", "processType": 2, "statusProcess": 1, "message": "", "url": null, "createdDate": "2025-04-11T15:41:33" } ] }, "status": "success", "message": "OK", "messageDetail": "" } ``` ``` { "data": null, "status": "success", "message": "OK", "messageDetail": "" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | `data` | object/null | Objeto de datos referente a la solicitud cuando es exitoso. | | `status` | String | “success” o “error” | | `message` | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. | | `messageDetail` | String | Mensaje más descriptivo del error cuando existe uno. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/othi6lg/consulta-por-requestid) ## Consulta paginada Consulta paginada de solicitudes creadas pertenecientes al usuario del token. #### 🔗 Endpoint GET https://api.test.sw.com.mx/gestion/v1/api/gestionxml/request?page=1&per\_page=1 📄 #### 📍 Parámetros Query | Propiedad | Uso | Descripción | | --- | --- | --- | | `page` | Requerido | Pagina que se extrae en la consulta | | `per_page` | Requerido | Numero de registros por pagina | | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | #### Ejemplo Request ``` curl --location --request GET 'https://api.sw.com.mx/gestion/v1/api/gestionxml/request?page=1&per_page=1' \ --header 'Authorization: Bearer {{token}}' ``` #### Respuesta ✅ Éxito (200) ❌ Error (400) 📋 Atributos ``` { "data": { "metaData": { "page": 1, "perPage": 3, "pageCount": 3, "totalCount": 56, "links": { "current": "?page=1&per_page=3", "next": "?page=2&per_page=3" } }, "records": [ { "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "requestId": "14624457-0134-4e1d-993d-7862861ccf2c", "taxId": "CACX7605101P8", "createdDate": "2025-04-11T15:41:33", "dateFrom": "2025-02-01T00:00:00", "dateTo": "2025-02-28T23:59:59", "requestType": 2, "documentType": 1, "statusRequest": 1, "message": "La solicitud de descarga de xml se encuentra en progreso", "totalFiles": 0, "rfcEmisor": null, "rfcReceptor": null, "efosIndicator": 0, "rfcTPAccount": null, "cfdiType": null, "cfdiComplement": null, "processes": [ { "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "requestId": "14624457-0134-4e1d-993d-7862861ccf2c", "processType": 2, "statusProcess": 1, "message": "", "url": null, "createdDate": "2025-04-11T15:41:33" } ] }, { "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "requestId": "d7e649c6-5241-41db-bd0f-84b4c6229e79", "taxId": "CACX7605101P8", "createdDate": "2025-04-11T15:41:22", "dateFrom": "2025-03-01T00:00:00", "dateTo": "2025-03-31T23:59:59", "requestType": 1, "documentType": 1, "statusRequest": 1, "message": "La solicitud de descarga de xml se encuentra en progreso", "totalFiles": 0, "rfcEmisor": null, "rfcReceptor": null, "efosIndicator": 0, "rfcTPAccount": "", "cfdiType": null, "cfdiComplement": null, "processes": [ { "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "requestId": "d7e649c6-5241-41db-bd0f-84b4c6229e79", "processType": 0, "statusProcess": 1, "message": "", "url": null, "createdDate": "2025-04-11T15:41:22" }, { "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "requestId": "d7e649c6-5241-41db-bd0f-84b4c6229e79", "processType": 1, "statusProcess": 1, "message": "", "url": null, "createdDate": "2025-04-11T15:41:22" } ] }, { "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "requestId": "bb17ab8b-7913-4c9b-b3b4-330a6640ca28", "taxId": "CACX7605101P8", "createdDate": "2025-04-11T15:41:12", "dateFrom": "2025-03-01T00:00:00", "dateTo": "2025-03-31T23:59:59", "requestType": 0, "documentType": 0, "statusRequest": 3, "message": " No se encontró la información con los datos proporcionados, inténtalo con otros parámetros de búsqueda (5004)", "totalFiles": 0, "rfcEmisor": null, "rfcReceptor": null, "efosIndicator": 0, "rfcTPAccount": "", "cfdiType": null, "cfdiComplement": null, "processes": [ { "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "requestId": "bb17ab8b-7913-4c9b-b3b4-330a6640ca28", "processType": 0, "statusProcess": 3, "message": " No se encontró la información con los datos proporcionados, inténtalo con otros parámetros de búsqueda (5004)", "url": null, "createdDate": "2025-04-11T15:41:12" }, { "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "requestId": "bb17ab8b-7913-4c9b-b3b4-330a6640ca28", "processType": 1, "statusProcess": 1, "message": "", "url": null, "createdDate": "2025-04-11T15:41:12" } ] } ] }, "status": "success", "message": "OK", "messageDetail": "" } ``` ``` { "data": { "metaData": { "page": 1, "perPage": 3, "pageCount": 0, "totalCount": 0, "links": { "current": "?page=1&per_page=3" } }, "records": [] }, "status": "success", "message": "OK", "messageDetail": "" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | `data` | array/null | Lista de objetos con información de paginación y datos filtrados. Cada elemento contine datos diferentes. | | `status` | String | “success” o “error” | | `message` | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. | | `messageDetail` | String | Mensaje más descriptivo del error cuando existe uno. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/de8t9vo/consulta-paginada) ## Consulta registros de peticiones programadas Consulta registros de peticiones programadas creadas pertenecientes al usuario del token. #### 🔗 Endpoint GET https://api.test.sw.com.mx/gestion/v1/api/gestionxml/scheduler?page=1&perPage=2 📄 #### 📍 Parámetros Query | Propiedad | Uso | Descripción | | --- | --- | --- | | `page` | Requerido | Pagina que se extrae en la consulta | | `per_page` | Requerido | Numero de registros por pagina | | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | #### Ejemplo Request ``` curl --location --request GET 'https://api.sw.com.mx/gestion/v1/api/gestionxml/scheduler?page=1&perPage=2' \ --header 'Authorization: Bearer {{token}}' ``` #### Respuesta ✅ Éxito (200) ❌ Error (400) 📋 Atributos ``` { "data": { "metaData": { "page": 1, "perPage": 2, "pageCount": 2, "totalCount": 2, "links": { "current": "?page=1&per_page=2" } }, "records": [ { "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "active": 0, "lapseDays": 90, "schedule": "00:00:00", "documentType": 0, "taxId": "CACX7605101P8", "token": "T2lYQ0t4L0...", "visited": "2025-04-09T16:21:37", "processType": 0, "nextSchedule": "2025-05-11T00:00:00", "frequencyInDays": 90, "generatePdf": 1, "googleDrive": 1, "cfdiType": null, "cfdiComplement": null }, { "idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "active": 1, "lapseDays": 180, "schedule": "00:00:00", "documentType": 1, "taxId": "CACX7605101P8", "token": "T2lYQ0t4L0...", "visited": "2025-04-11T14:21:37", "processType": 0, "nextSchedule": "2025-04-24T00:00:00", "frequencyInDays": 90, "generatePdf": 1, "googleDrive": 1, "cfdiType": null, "cfdiComplement": null } ] }, "status": "success", "message": "OK", "messageDetail": "" } ``` ``` { "data": { "metaData": { "page": 1, "perPage": 2, "pageCount": 0, "totalCount": 0, "links": { "current": "?page=1&per_page=2" } }, "records": [] }, "status": "success", "message": "OK", "messageDetail": "" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | `data` | array/null | Lista de objetos con información de paginación y datos filtrados. Cada elemento contine datos diferentes. | | `status` | String | “success” o “error” | | `message` | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. | | `messageDetail` | String | Mensaje más descriptivo del error cuando existe uno. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/0z5y2ii/consulta-peticiones-programadas) ## Descarga de solicitud concluida ### Obtener URL de descarga Genera path público de descarga de documentos mediante el path privado de S3. #### 🔗 Endpoint POST https://api.test.sw.com.mx/gestion/v1/api/file 📄 | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | | `Content-Type` | `application/json` | #### 🧾 Parámetros JSON | Propiedad | Tipo | Uso | Descripción | | --- | --- | --- | --- | | `pathFile` | string | Requerido | Path privado de S3 | #### Ejemplo Request ``` curl --location --request POST 'https://api.sw.com.mx/gestion/v1/api/file' --header 'Authorization: Bearer {{token}}' --header 'Content-Type: application/json' --data '{ "pathFile": "f47ac10b-58cc-4372-a567-0e02b2c3d479/11-04-2025/Report_6fa459ea-ee8a-11e3-ac10-0800200c9a66.zip" }' ``` #### Respuesta ✅ Éxito (200) ❌ Error (400) 📋 Atributos ``` { "data": "https://smarter-gestion-xml-s3-prod.s3.amazonaws.com/f47ac10b-58cc-4372-a567-0e02b2c3d479/11-04-2025/Report_6fa459ea-ee8a-11e3-ac10-0800200c9a66.zip?AWSAccessKeyId=AKIEVRP5AMYOYVPEJ3XV&Expires=1744491409&Signature=IZAshfH7k%2F7%2B4%2F8b3ycoaEDhmOc%3D", "status": "success", "message": "OK", "messageDetail": "" } ``` ``` { "data": null, "status": "error", "message": "La ruta del archivo no corresponde al usuario de la petición", "messageDetail": "" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | `data` | String/null | URL de descarga cuando es exitoso. | | `status` | String | “success” o “error” | | `message` | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. | | `messageDetail` | String | Mensaje más descriptivo del error cuando existe uno. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/ilepmy4/obtener-url-de-descarga-pblica) ## 📏 Reglas y límites #### Scraping | Portal SAT ***ℹ️*Notas** - Único servicio que permite obtener archivos **XML Emitidos** con estatus **cancelado**. - Límite diario de **2,000 documentos por RFC**, con un tiempo de respuesta promedio de **48 horas**. #### Web Service ***ℹ️*Notas** - Este servicio solo recupera CFDIs vigentes, permitiendo descargar información histórica **(de hasta 5 años)** y del ejercicio actual. - Límite por petición de hasta **200,000 documentos**, con un tiempo de respuesta de hasta **6 días**. #### Metadata ***ℹ️*Notas** - Permite descargar hasta **1 millon de registros** por petición. - Únicamente retorna la metadata de los comprobantes, con un tiempo de respuesta de hasta **6 días**. --- # Generación de PDF Fuente: https://developers.sw.com.mx/knowledge-base/servicio-de-generacion-de-pdf/ Categoria: SW API´S API mediante el cual se genera un PDF a  partir de un documento XML y una plantilla. Se puede utilizar la plantilla general o una personalizada más ajustada a sus necesidades. [Aquí](https://developers.sw.com.mx/knowledge-base/plantillas-pdf/) puedes consultar las plantillas generales disponibles. **💡Visita nuestro artículo: [👉 Servicios de Generación de PDF – ¿Cuál es la mejor opción para TI?](https://developers.sw.com.mx/knowledge-base/que-servicio-de-generacion-de-pdf-debo-usar/)** El servicio genera PDFs de hasta 4000 conceptos. Si requieres una plantilla personalizada para tu empresa, o agregar propiedades extras (Arreglo de objetos, observaciones y/o datos extras relacionados con domicilio, teléfono, correo, etc.) acercate con tu asesor de ventas. #### URL´s 🛠️ Pruebas: `https://api.test.sw.com.mx` 📄 🚀 Productivo: `https://api.sw.com.mx` 📄 --- ### Generación de PDF #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /pdf/v1/api/GeneratePdf | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | xmlContent | Requerido | XML con formato UTF-8 del comprobante del cual se requiere el PDF . | | logo | Opcional | El logotipo para mostrarse en el PDF en base 64. | | extras | Opcional | Arreglo de objetos donde se mencionan las observaciones y/o datos extras relacionados (Domicilio, teléfono, correo, etc.) **NOTA:** Servicio disponible solo para plantillas personalizadas, si lo requieres acércate con tu asesor de ventas | | templateId | Requerido | Identificador de la plantilla que deseas usar. [Plantillas PDF generales.](https://developers.sw.com.mx/knowledge-base/plantillas-pdf/) | #### Ejemplo Request ``` curl --request POST \ --url https://api.test.sw.com.mx/pdf/v1/api/GeneratePdf\ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "xmlContent":"", "logo": "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", "extras":{ "OBSERVACIONES":"Observaciones ejemplo", "CalleCliente": "#111", "NumeroExteriorCliente": "CUSTOM ADDRESS" }, "templateId":"cfdi40" }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "contentB64": "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wslIEaxytzNY2xMzeTFR0SnrGKnJHEYkj8OJzxSs/QPXexMOCmVuZHN0cmVhbQplbmRvYmoKMyAwIG9iagoyNDcyCmVuZG9iago0IDAgb2JqClsvSUNDQmFzZWQgMiAwIFJdCmVuZG9iago1IDAgb2JqCjw8CiAgL1R5cGUgL01ldGFkYXRhCiAgL1N1YnR5cGUgL1hNTAogIC9MZW5ndGggNiAwIFIKPj4Kc3RyZWFtCjw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+PHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyI+CjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiByZGY6YWJvdXQ9IiI+CjxkYzpmb3JtYXQ+YXBwbGljYXRpb24vcGRmPC9kYzpmb3JtYXQ+CjxkYzpsYW5ndWFnZT54LXVua25vd248L2RjOmxhbmd1YWdlPgo8ZGM6ZGF0ZT4yMDIyLTA5LTEzVDE1OjQwOjQ0WjwvZGM6ZGF0ZT4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIiByZGY6YWJvdXQ9IiI+CjxwZGY6UHJvZHVjZXI+QXBhY2hlIEZPUCBWZXJzaW9uIDIuMzwvcGRmOlByb2R1Y2VyPgo8cGRmOlBERlZlcnNpb24+MS40PC9wZGY6UERGVmVyc2lvbj4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiByZGY6YWJvdXQ9IiI+Cjx4bXA6Q3JlYXRvclRvb2w+QWx0b3ZhIFN0eWxlVmlzaW9uIEVudGVycHJpc2UgRWRpdGlvbiAyMDIwIHNwMSAoeDY0KSAoaHR0cDovL3d3dy5hbHRvdmEuY29tKTwveG1wOkNyZWF0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czp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcEdJbWc9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9nL2ltZy8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6aWxsdXN0cmF0b3I9Imh0dHA6Ly9ucy5hZG9iZS5jb20vaWxsdXN0cmF0b3IvMS4wLyIKICAgICAgICAgICAgeG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIgogICAgICAgICAgICB4bWxuczpwZGZ4PSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZngvMS4zLyI+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvanBlZzwvZGM6Zm9ybWF0PgogICAgICAgICA8ZGM6dGl0bGU+CiAgICAgICAgICAgIDxyZGY6QWx0PgogICAgICAgICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPldlYjwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpBbHQ+CiAgICAgICAgIDwvZGM6dGl0bGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgSWxsdXN0cmF0b3IgMjQuMSAoTWFjaW50b3NoKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAyMC0wNi0xMVQxNTo0Njo1My0wNTowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDIwLTA2LTExVDIwOjQ2OjU3WjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMjAtMDYtMTFUMTU6NDY6NTMtMDU6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4bXA6VGh1bWJuYWlscz4KICAgICAgICAgICAgPHJkZjpBbHQ+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8eG1wR0ltZzp3aWR0aD4yNTY8L3htcEdJbWc6d2lkdGg+CiAgICAgICAgICAgICAgICAgIDx4bXBHSW1nOmhlaWdodD4xMjA8L3htcEdJbWc6aGVpZ2h0PgogICAgICAgICAgICAgICAgICA8eG1wR0ltZzpmb3JtYXQ+SlBFRzwveG1wR0ltZzpmb3JtYXQ+CiAgICAgICAgICAgICAgICAgIDx4bXBHSW1nOmltYWdlPi85ai80QUFRU2taSlJnQUJBZ0VBU0FCSUFBRC83UUFzVUdodmRHOXphRzl3SURNdU1BQTRRa2xOQSswQUFBQUFBQkFBU0FBQUFBRUEmI3hBO0FRQklBQUFBQVFBQi8rNEFEa0ZrYjJKbEFHVEFBQUFBQWYvYkFJUUFCZ1FFQkFVRUJnVUZCZ2tHQlFZSkN3Z0dCZ2dMREFvS0N3b0smI3hBO0RCQU1EQXdNREF3UURBNFBFQThPREJNVEZCUVRFeHdiR3hzY0h4OGZIeDhmSHg4Zkh3RUhCd2NOREEwWUVCQVlHaFVSRlJvZkh4OGYmI3hBO0h4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zi84QUFFUWdBZUFFQUF3RVImI3hBO0FBSVJBUU1SQWYvRUFhSUFBQUFIQVFFQkFRRUFBQUFBQUFBQUFBUUZBd0lHQVFBSENBa0tDd0VBQWdJREFRRUJBUUVBQUFBQUFBQUEmI3hBO0FRQUNBd1FGQmdjSUNRb0xFQUFDQVFNREFnUUNCZ2NEQkFJR0FuTUJBZ01SQkFBRklSSXhRVkVHRTJFaWNZRVVNcEdoQnhXeFFpUEImI3hBO1V0SGhNeFppOENSeWd2RWxRelJUa3FLeVkzUENOVVFuazZPek5oZFVaSFREMHVJSUpvTUpDaGdaaEpSRlJxUzBWdE5WS0JyeTQvUEUmI3hBOzFPVDBaWFdGbGFXMXhkWGw5V1oyaHBhbXRzYlc1dlkzUjFkbmQ0ZVhwN2ZIMStmM09FaFlhSGlJbUtpNHlOam8rQ2s1U1ZscGVZbVomI3hBO3FibkoyZW41S2pwS1dtcDZpcHFxdXNyYTZ2b1JBQUlDQVFJREJRVUVCUVlFQ0FNRGJRRUFBaEVEQkNFU01VRUZVUk5oSWdaeGdaRXkmI3hBO29iSHdGTUhSNFNOQ0ZWSmljdkV6SkRSRGdoYVNVeVdpWTdMQ0IzUFNOZUpFZ3hkVWt3Z0pDaGdaSmpaRkdpZGtkRlUzOHFPend5Z3AmI3hBOzArUHpoSlNrdE1UVTVQUmxkWVdWcGJYRjFlWDFSbFptZG9hV3ByYkcxdWIyUjFkbmQ0ZVhwN2ZIMStmM09FaFlhSGlJbUtpNHlOam8mI3hBOytEbEpXV2w1aVptcHVjblo2ZmtxT2twYWFucUttcXE2eXRycSt2L2FBQXdEQVFBQ0VRTVJBRDhBOVU0cTdGWGpmbU8vMXJ6TDVvazAmI3hBO3lCbVpGbWVDMXR1VkVBakpxN0RwV2lsaWM0cldaY3VxMUJ4anZvRDNkWHJ0Sml4NmZBSm51c24zcS84QXlxdnpQL1BiZjhqRy93Q2EmI3hBO2NuL0lPZjhBby9QOWpEK1dzUDhBUytYN1hmOEFLcS9NL3dEUGJmOEFJeHYrYWNmNUJ6LzBmbit4ZjVhdy93Qkw1ZnRkL3dBcXI4ei8mI3hBO0FNOXQvd0FqRy81cHgva0hQL1IrZjdGL2xyRC9BRXZsKzEzL0FDcXZ6UDhBejIzL0FDTWIvbW5IK1FjLzlINS9zWCtXc1A4QVMrWDcmI3hBO1hmOEFLcS9NL3dEUGJmOEFJeHYrYWNmNUJ6LzBmbit4ZjVhdy93Qkw1ZnRkL3dBcXI4ei9BTTl0L3dBakcvNXB4L2tIUC9SK2Y3Ri8mI3hBO2xyRC9BRXZsKzEzL0FDcXZ6UDhBejIzL0FDTWIvbW5IK1FjLzlINS9zWCtXc1A4QVMrWDdVRHFmbFB6TDVhRU9wTVFvamNjYmkzWXQmI3hBOzZiZHVWUUtBOVBEdGxHZnMvUHBxeWQzVWRHN0RyY09vdUgySHE5RjhtZWM3ZlhiZjBacVJhbkVQM3NYUU9CKzJuOFIyenBPemUwbzYmI3hBO2lOSGFZKzN6RG9PME96emdOamVCWk5tMWRhN0ZYWXE3RlhZcTdGWFlxN0ZXSi9tUHJ0NXBXalJwWnVZcDd1VDAvV1hZcWdGVzRuc1QmI3hBOzQ1cU8yZFZMRmlIRHNaR3JkcDJUcG81Y25xM0VXQTZUNUU4eGF6WnJxRVhwaUtZbmkwemtNOURRdHNHNytPYzlwK3lzMmFQR0tvOTUmI3hBO2Q1bjdTdzRaY0J1eDNJMy9BSlZYNW4vbnR2OEFrWTMvQURUbDM4ZzUvd0NqOC8yTlg4dFlmNlh5L2E3L0FKVlg1bi9udHY4QWtZMy8mI3hBO0FEVGovSU9mK2o4LzJML0xXSCtsOHYydS93Q1ZWK1ovNTdiL0FKR04vd0EwNC95RG4vby9QOWkveTFoL3BmTDlydjhBbFZmbWYrZTImI3hBOy93Q1JqZjhBTk9QOGc1LzZQei9Zdjh0WWY2WHkvYTcvQUpWWDVuL250djhBa1kzL0FEVGovSU9mK2o4LzJML0xXSCtsOHYydS93Q1YmI3hBO1YrWi81N2IvQUpHTi93QTA0L3lEbi9vL1A5aS95MWgvcGZMOXJSL0t2ek9BVHl0ajdlbzMvTk9QOGc1LzZQei9BR0wvQUMxaC9wZkomI3hBO2Q1UzgyMzNsdStiU3RWVnhaQnlza2JENDRIN3NvN3FlNCtrZTU3UDdRbnBwK0hrK24vY28xMmhqcUk4Y1BxKzk2ekRORlBFazBMaVMmI3hBO0tRQmtkVFVFSGNFRVoxOFpDUXNiZ3ZMU2lRYVBOZmtrT3hWMkt2SXZLMy9relA4QW81dlArSVM1eHVoL3g3L09uOTBucTlaL2lmOEEmI3hBO214L1E5ZHpzbmxIWXE3RlhZcTdGWFlxN0ZXRWVWZk84M21UVUpOTXU3S0piZDRYWndDVzVBRURpUTIxRHl6UTZEdFE2bVp4eWlLcDMmI3hBO090N09HbmdKeGtidGpYbTN5bGZlVzc1ZFYwcG5Ga0hEUnlLZmpnZnNySHVwN0g2RDc2enREcytlbW40bVA2Zjl5N0hRNjZPb2p3VCsmI3hBO3I3MmJlVFBPZHZydHY2TTFJdFRpSDcyTG9IQS9iVCtJN1p2T3plMG82aU5IYVkrM3pEcCswT3p6Z05qZUJaTm0xZGE3RlhZcTdGWFkmI3hBO3E3RlhZcXdIODNmK09kcC8vR1ovK0k1ejN0RDlFZmU3M3NQNjVlNVAvSVgvQUNpT25mNmpmOG5Hellkay93Q0xRL0hVdUIybi9qRXYmI3hBO3gwVC9BRFl1QzdGWFlxN0ZYWXE3RldLK2R2T1Z6NWVsdEVodDBuRndybGk1SXB3SUcxUG5tbzdUN1NscGpFQUEzYnRPejlCSE9EWnEmI3hBO2xIWHZMRVBtclE3VFU0MVczMVdTM2psUmg5bHVhQnZUWStHK3g3WkRWNkVhdkZISU5zaGlEOW5KbHB0WWRObGxBN3c0aVAyc1Q4cGUmI3hBO2JiN3kzZk5wV3FxNHNnNVdTTmg4Y0Q5MlVkMVBjZlNQZlVkbjlvVDAwL0R5ZlQvdVhhYTdReDFFZU9IMWZlOVpobWluaVNhRnhKRkkmI3hBO0F5T3BxQ0R1Q0NNNitNaElXTndYbHBSSU5IbXZ5U0hZcThpOHJmOEFrelAram04LzRoTG5HNkgvQUI3L0FEcC9kSjZ2V2Y0bi9teC8mI3hBO1E5ZHpzbmxIWXE3RlhZcTdGWFlxN0ZYa1g1Vi84cE8vL01OSi93QVNYT043Qi92L0FQTlA2SHErMnY3bi9PSDZYclUwTVU4VHd6SUomI3hBO0lwQVZkR0ZRUWRpQ0RuWVNpSkNqdUM4ckdSQnNjM2szbTN5bGZlVzc1ZFYwcG5Ga0hEUnlLZmpnZnNySHVwN0g2RDc4aDJoMmZQVFQmI3hBOzhUSDlQKzVlcDBPdWpxSThFL3ErOW5Qa3J6YW12MlRDVmZUdnJZS0xoUVBoYmxXanI4NmRPMmI3c3p0QWFpTy8xeDV1bDdRMFBnUzImI3hBOytrOG1SNXMzWHV4VjJLdXhWMkt1eFZnUDV1LzhjN1QvQVBqTS93RHhIT2U5b2ZvajczZTloL1hMM0ovNUMvNVJIVHY5UnY4QWs0MmImI3hBO0Rzbi9BQmFINDZsd08wLzhZbCtPaWY1c1hCZGlyc1ZkaXJzVmRpcnpQODMvQVBlblRQOEFVbC9XbWN2N1JmVkQ0L29lajdDNVQrSDYmI3hBO1dkZVd2K1VjMHIvbUR0LytUUzV2dEYvY1EvcVIrNTBtci92cC93QlkvZWxmblB5WmI2N2IrdERTTFU0aCs2bDZCd1AySC9nZTJZbmEmI3hBO1hac2RSR3h0TWZiNUZ5dXorMERnTkhlQllUNVM4MjMzbHUrYlN0VlZ4WkJ5c2tiRDQ0SDdzbzdxZTQra2UrajdQN1FucHArSGsrbi8mI3hBO0FITHVOZG9ZNmlQSEQ2dnZldVoyTHlyc1ZlUmVWdjhBeVpuL0FFYzNuL0VKYzQzUS93Q1BmNTAvdWs5WHJQOEFFLzhBTmoraDY3blomI3hBO1BLT3hWMkt1eFYyS3V4VjJLdkgwL0xQemFocWl4S2ZFU2daeGc3RTFJNVY4M3JEMnZnUGY4bC8vQUNybnpuNHAvd0Fqc1A4QUkycS8mI3hBO0JSL0t1bi9BZWhhcEJKRDVLdTRKcUdXTFRwRWs3L0VrQkIzK1l6cE04REhTeUI1akdmOEFjdWd3eUIxSUk1R1krOWgzNVFmNzA2bi8mI3hBO0FLa1g2M3pTK3p2MVQrSDZYYjl1OG9mSDlEMHpPb2VjZGlyc1ZkaXJzVmRpckFmemQvNDUybi84Wm4vNGpuUGUwUDBSOTd2ZXcvcmwmI3hBOzdrLzhoZjhBS0k2ZC9xTi95Y2JOaDJUL0FJdEQ4ZFM0SGFmK01TL0hSUDhBTmk0THNWZGlyc1ZkaXJzVllYK1lYbFhWdGNtc25zRlImI3hBO2hBc2drNXNGM1lyU24zWm8rMTlCa3ptSmhXMXU0N0wxdVBDSmNmV21Lajh1UE9RQUFLQURZQVRacWY1RzFYbDgzWi95dHAvd0dWZVEmI3hBO3ZMR3U2UGVYVXVwRlNrc2FySFNUbnVHcm0yN0owT1hES1JuMUhlNnp0UFdZc3NRSWREM01WL05RQWVaMW9PdHRIWC9nbXpVOXZmMy8mI3hBO0FQbWo5THMreGY3bi9PTDE3T3llVWRpcnlMeXQvd0NUTS82T2J6L2lFdWNib2Y4QUh2OEFPbjkwbnE5Wi9pZitiSDlEMTNPeWVVZGkmI3hBO3JzVmRpcnNWZGlyc1ZkaXJzVlMzekwveWptcS84d2R4L3dBbW16RjF2OXhQK3BMN25JMG45OUQrc1B2WUwrVUgrOU9wL3dDcEYrdDgmI3hBOzBQczc5VS9oK2wzZmJ2S0h4L1E5TXpxSG5IWXE3RlhZcTdGWFlxd0g4M2YrT2RwLy9HWi8rSTV6M3REOUVmZTczc1A2NWU1UC9JWC8mI3hBO0FDaU9uZjZqZjhuR3pZZGsvd0NMUS9IVXVCMm4vakV2eDBUL0FEWXVDN0ZYWXE3RlhZcTdGWFlxN0ZYWXE4aS9OVC9sSjAvNWhvLysmI3hBO0pObkc5dmYzL3dEbWo5TDFmWXY5ei9uSDlEMTNPeWVVZGlyeUx5dC81TXovQUtPYnovaUV1Y2JvZjhlL3pwL2RKNnZXZjRuL0FKc2YmI3hBOzBQWGM3SjVSMkt1eFYyS3V4VjJLdXhWMkt1eFZMZk12L0tPYXIvekIzSC9KcHN4ZGIvY1QvcVMrNXlOSi9mUS9yRDcyQy9sQi92VHEmI3hBO2YrcEYrdDgwUHM3OVUvaCtsM2ZidktIeC9ROU16cUhuSFlxN0ZYWXE3RlhZcXdIODNmOEFqbmFmL3dBWm4vNGpuUGUwUDBSOTd2ZXcmI3hBOy9ybDdrLzhBSVgvS0k2ZC9xTi95Y2JOaDJUL2kwUHgxTGdkcC93Q01TL0hSUDgyTGd1eFYyS3V4VjJLdXhWMkt1eFYyS3ZJdnpVLzUmI3hBO1NkUCtZYVAvQUlrMmNiMjkvZjhBK2FQMHZWOWkvd0J6L25IOUQwelUvTVdpYVc0Uy92STRKRzNFWkpMMDhlSzFOTTZuUHJNV0xhY2cmI3hBO0M4NWgwdVRKdkdKS0IveDc1Ui82dUtmOERKL3pUbVAvQUN0cHY1LzMvcWJ2NU0xSDgzN25tM2wvVmRQdHZQZjZSbm1DV1hyM0wrc1EmI3hBO1NPTWlTQlRRQ3UvSVp6R2t6d2pxK01uMDNMZjMyOUZxc001YVhnQTlWUi9ROUoveDc1Ui82dUtmOERKL3pUblQvd0FyYWIrZjkvNm4mI3hBO25mNU0xSDgzN25mNDk4by85WEZQK0JrLzVweC9sYlRmei92L0FGTC9BQ1pxUDV2M08veDc1Ui82dUtmOERKL3pUai9LMm0vbi9mOEEmI3hBO3FYK1ROUi9OKzUzK1BmS1AvVnhUL2daUCthY2Y1VzAzOC83L0FOUy95WnFQNXYzTy93QWUrVWYrcmluL0FBTW4vTk9QOHJhYitmOEEmI3hBO2YrcGY1TTFIODM3bmY0OThvLzhBVnhUL0FJR1QvbW5IK1Z0Ti9QOEF2L1V2OG1haitiOXpZOCtlVWlRUDBpbS9pc2cvNDF3L3lycHYmI3hBOzU0KzFmNU56L3dBMzdrNnQ3bTN1WVZudDVGbWhjVlNSQ0dVajJJek9oT01oY1RZY09jREUwUlJWTWt4UzN6TC9BTW81cXY4QXpCM0gmI3hBOy9KcHN4ZGIvQUhFLzZrdnVjalNmMzBQNncrOWd2NVFmNzA2bi9xUmZyZk5EN08vVlA0ZnBkMzI3eWg4ZjBQVE02aDV4Mkt1eFYyS3AmI3hBO2ZxZm1EUmRMS3JmM2NjRHR1cUUxWWp4NHJVMHpHejZ2RmkrdVFEZmgwdVRKOUVTVUIvajN5ai8xY1UvNEdUL21uTWYrVnROL1ArLzkmI3hBO1RmOEF5WnFQNXYzTU8vTW56Rm91cTJObkhwOTB0dzhjck00QVlVQlduN1FHYVh0cldZc3NJaUVyb3UzN0owdVRGS1JtS3NKejVRODMmI3hBOytXN0h5M1kydDFmTEZjUkt3a2pLdVNDWFk5bEk2SE0zczd0SEJqd1JqS1ZFZS92Y1BYYUhOUE5LVVkyQ25IK1BmS1AvQUZjVS93Q0ImI3hBO2svNXB6Ti9sYlRmei92OEExT0ovSm1vL20vYzcvSHZsSC9xNHAvd01uL05PUDhyYWIrZjkvd0NwZjVNMUg4MzduZjQ5OG8vOVhGUCsmI3hBO0JrLzVweC9sYlRmei92OEExTC9KbW8vbS9jNy9BQjc1Ui82dUtmOEFBeWY4MDQveXRwdjUvd0IvNmwva3pVZnpmdWQvajN5ai93QlgmI3hBO0ZQOEFnWlArYWNmNVcwMzgvd0MvOVMveVpxUDV2M08veDc1Ui93Q3Jpbi9BeWY4QU5PUDhyYWIrZjkvNmwva3pVZnpmdWQvajN5ai8mI3hBO0FOWEZQK0JrL3dDYWNmNVcwMzgvNy8xTC9KbW8vbS9jcVFlZHZLczhxeFI2bEZ6YlljK1NEL2dtQ2pKUTdUMDhqUW1FUzdQenhGbUomI3hBO1R2TTl3bmtYNXFmOHBPbi9BRERSL3dERW16amUzdjcvQVB6UitsNnZzWCs1L3dBNC9vUzNRZExuODErWXBFdWJneHZNSG5ubHB5YWcmI3hBO0kyVWZTQjhzeHRKZ09yemtTUFBjdVJxY3cwMkVjSTViQm1QL0FDcUxUdjhBcTRUZjhBdWJyL1E5RCtjWFUveTVQK2FIZjhxaTA3L3EmI3hBOzRUZjhBdVAraDZIODRyL0xrLzVvZC95cUxUdityaE4vd0M0LzZIb2Z6aXY4dVQvbWgzL0tvdE8vNnVFMy9BTGovb2VoL09LL3k1UCsmI3hBO2FIZjhxaTA3L3E0VGY4QXVQK2g2SDg0ci9May81b2QveXFMVHYrcmhOL3dDNC82SG9meml2OHVUL21oMy9Lb3RPLzZ1RTMvQUxqL28mI3hBO2VoL09LL3k1UCthSGY4cWkwNy9xNFRmOEF1UCtoNkg4NHIvTGsvNW9RbXEvbFZhMnVtM056QmZPMHNFYlNxc2lqaWVBNUVHbS9RWlQmI3hBO243QmpDQmtKR3dMYk1QYlVwVEVUSFlsMzVSWGx3WmIrekxFMjRWSlZROUExZUpJK1k2NCt6MlEzS1BUbW50ekdLakxyeWVrNTA3enEmI3hBO1crWmYrVWMxWC9tRHVQOEFrMDJZdXQvdUovMUpmYzVHay92b2YxaDk3QmZ5Zy8zcDFQOEExSXYxdm1oOW5mcW44UDB1NzdkNVErUDYmI3hBO0hwbWRRODQ3RlhZcTdGWGllbjZmY2Vhdk5rc2R4T1kybmVTU1dUN1JDSjBWUjdDZ0djTGh3eTFlb0lrZWR2WlpjbzAyQUVEbFRMdismI3hBO1ZSYWQvd0JYQ2IvZ0Z6Yy82SG9memk2citYSi96UTcvQUpWRnAzL1Z3bS80QmNmOUQwUDV4WCtYSi96UTcvbFVXbmY5WENiL0FJQmMmI3hBO2Y5RDBQNXhYK1hKL3pRNy9BSlZGcDMvVndtLzRCY2Y5RDBQNXhYK1hKL3pRNy9sVVduZjlYQ2IvQUlCY2Y5RDBQNXhYK1hKL3pRNy8mI3hBO0FKVkZwMy9Wd20vNEJjZjlEMFA1eFgrWEovelE3L2xVV25mOVhDYi9BSUJjZjlEMFA1eFgrWEovelE3L0FKVkZwMy9Wd20vNEJjZjkmI3hBO0QwUDV4WCtYSi96UTcvbFVXbmY5WENiL0FJQmNmOUQwUDV4WCtYSi96UTcvQUpWRnAzL1Z3bS80QmNmOUQwUDV4WCtYSi96UWtYbS8mI3hBOzh2NDlEMDFiKzN1Mm1RT0VsU1JRRDhYUXFSbXY3UjdJR0NISEdWN3Vib2Uwem1ud2tVelA4dHI2NHUvSzhYcnNYYTNrZUZXSnFlSzAmI3hBO0tqNkExTTNmWXVVejA0dm9hZFIydGpFYzVycUxZVithbi9LVHAvekRSLzhBRW16Ujl2ZjMvd0RtajlMdU94ZjduL09QNkhmbFgveWsmI3hBOzcvOEFNTkoveEpjZXdmNy9BUHpUK2hlMnY3bi9BRGgrbDZINXE4MFdubCt4RTBpK3JjU2tyYlFBMDVFZFNUMlVWM3pwTmZybzZlRm4mI3hBO2VSNUIwR2kwY3M4cUd3SE1zUnR0Vi9OTFZZaGZXVWFRMnIvRkduR0ZRNDdjZlZxNUh2WE5ORFVkb1poeHdGUitINmQzYXp3YUxFZUcmI3hBO1J1WHgvUW5YbHZ6TnIxN0JxRnRxZGsxdmVXTWJINnlGS3B5QzFDc0dxT1hmYllqOGM3UmE3Tk1UamtqVW9qbTRlcjBlS0JpWVN1TWomI3hBO3lZem9HdS9tTnJ2ci9VTDlEOVg0ZXB6amdYN2ZLbFAzZitTYzFlazFXdHozd1NIcDhvOWZnN0xVNmJSNGE0NDgvTS9yWkJwMGY1ancmI3hBO1hQcmFwZHhQWXh4eXRLcWlHdFJFM0Q3S0E3UFROamhqcm95dkpJY0FCN3U0MTA3M0F5blJ5alVBZUt4MzkvdjdtT2FKNWcvTWpXL1cmI3hBOy9SMTJzbjFmajZ2SkxaS2M2OGZ0SVA1VG10MHVyMTJlK0NWMTVSL1U3RFVhWFI0YTQ0OC82MzYwYy9uRHp0NWV1WWw4dzJ5ejIwcCsmI3hBOzJBaWtnZGVEeGZCVWVCR1hudEhWYWVROFlYRSs3OUd6UU5CcHM4VDRSb2ozL3AzVFh6ejVxdnJUUnRPMURSYm4wMHZHcno0STlVSzEmI3hBO0FvNGFtWmZhbXZuREZDZUkxeGU3OUxqZG5hS01za29aQjlLZGZXWnJyeVY5Wm5ibk5QcHZxU3ZRQ3JQQnlZMEZCMU9aM0daYVhpUE0mI3hBOzQ3LzJMaDhBanFhSElULzN6Q2Z5aS80NldvZjhZVS80bG1pOW52cmw3bmM5dWZSSDN2VU02dDVwTGZNdi9LT2FyL3pCM0gvSnBzeGQmI3hBO2IvY1QvcVMrNXlOSi9mUS9yRDcyQy9sQi92VHFmK3BGK3Q4MFBzNzlVL2grbDNmYnZLSHgvUTlNenFIbkhZcTdGWFlxOGkvTG4vbE0mI3hBO3ovcVRaeHZZMytOZk42dnRYL0Yva3pYV3Z6RDBYU05UbTA2NWd1WG1nNDgyaldNcWVhQnhRczZubzNobTkxUGJHTERrTUpDVmp1cjMmI3hBOzk3cHRQMlhreXdFd1kwZmYrcGJwMzVsK1diMjRXQXRMYXM1b3JYQ3FxMVArVXJPQjlPUnc5dDRKbXQ0Ky93REJaWmV5TTBCZTB2Y24mI3hBO210YXhaNlBwMGwvZDh2UmpvT0tBRm1MR2dDZ2tiL1RtdzFPcGpoZ1p5NUJ3ZFBnbGxtSXg1cVBsN3pIcCt2V2ozTmtIVlkzOU40NVEmI3hBO0ZjR2dQUlN3b2ErT1Y2UFd3MUVlS043ZDdQVmFTZUNYREw3RlBYUE51aDZLUWw3UCsvWVZFRVk1eVU4U0IwK25JNnJ0REZnMm1kKzcmI3hBO3F5MDJoeTV0NGpidlN1eC9NM3l2ZFRDSjJtdGVSb0huUUJmcEtNOVBwekZ4ZHQ2ZVpvM0gzL2d1VGs3SHpSRjdTOXljNng1azBiU0kmI3hBO0VtdmJoVUVnckVpL0U3anhWUjI5K21adXAxdUxDTG1lYmlZTkpreW1vaEpMYjgwZks4MDNwdjY4QUpvSkpJeHgrZndNNS9ETUNIYnUmI3hBO25rYVBFUGVQMU9aUHNiTUJleCtLZlgrdjZSWTZjdW8zRnlndEhwNlVpbmx6cjBDY2E4czJHWFY0OGNPTW4wL2U0T1BUWkp6NEFQVXgmI3hBOzVQelY4c3RMd0tYS0wvdjFvMTQvZzViOE0xdzdld0UxVXZsKzEyQjdGelZmcCtmN0cvekhuaXVQSm91SVc1UlRTUXZHMUNLcTI0TkQmI3hBO1E5TWUyWmlXbXNjaVFqc21KanFLUE1XMStWZi9BQ2pEL3dETVRKL3hGY2V3ZjdqL0FEaitoZTJ2NzcvTkg2V0ovbXAveWs2Zjh3MGYmI3hBOy9FbXpUOXZmMy84QW1qOUx0ZXhmN24vT1A2SGZsWC95azcvOHcwbi9BQkpjZXdmNy93RHpUK2hlMnY3bi9PSDZVYithWC9LUmFiOVkmI3hBO3I5VDlGYS84alc5VC9oYVpmMjcvQUg4T0w2YS9UdTA5amYzTXErcS8wYlBUby9UOU5mU3A2ZEJ3NDA0OGFiVXAyenFvMVczSjVzM2UmI3hBOzZqcVAvSFB1ditNTW4vRVRrTTMwUzl4WjR2ckh2RHlIeVJybXRhWDlkL1JtbVBxUHJlbDZ2QlpHNGNlZkd2QUg3WEk5ZkRPTjdMMVcmI3hBO1hGeGVIQXp1dS9ibjNQVjlvNmJIbDRlT1hCVjkza3puU2ZNT3Y2bkZmeGFqcE1tbnhKYlNPa2pwSW9acVU0MWNBZERtKzArc3paUkkmI3hBO1RnWURoUGYrbDB1ZlM0c1ppWVRFanhEdVNYOG52K2x2L3dCRy93RHpOekI5bmY4QUtmNXYrK2N6dDcrRC9PL1FudjVtZlZ2OEp6K3ImI3hBO1QxUFVpK3IxL241aXRQOEFZY3MySGJmRCtYTjg3RmUvK3kzQjdJdnh4WGNiL0h2cGdlcCtyL3lyL1J2VXJ4K3N6K2xYK1dwLzQycm4mI3hBO1A1Ny9BQ2VPL3dDZEozbUd2emM2L21oNlBiZjhvRkYvMnlsLzZoODZXSCtKai9oZis5ZWVuL2pSL3dDR2Y3NWgzNVJmOGRMVVArTUsmI3hBO2Y4U3pTK3ozMXk5enQrM1BvajczcUdkVzgwbHZtWC9sSE5WLzVnN2ovazAyWXV0L3VKLzFKZmM1R2svdm9mMWg5N0JmeWcvM3AxUC8mI3hBO0FGSXYxdm1oOW5mcW44UDB1NzdkNVErUDZIcG1kUTg0N0ZYWXE3RlhrWDVjL3dES1puL1VtempleHY4QUd2bTlYMnIvQUl2OGtacWQmI3hBOy9ZV0g1cXkzZCs0UzBqNCtveFV1Qnlzd28rRlF4KzBSMnkvUGxoajdRTXAvU1A4QWlHbkRqbFBRaU1QcVAvRkxQUHV1K1hkWmd0TGImI3hBO1IwK3NYb2wvdlk0bVE4U0NQVEhKVlk4bUlQVEk5cmFyRG5FWTR0NVgzZlluc3pUWnNKa2NtMGE3L3RWdk5OeUx1KzBQeTFkM0tSUlcmI3hBO3NjTGFuUEk2b3ZxY0J5cXhJRlFnTlA4QVd5ZXZueHp4NEpHaEVEaVBuWDZ2dlk2T0hESEptaUxNaWVFZkg4ZkpVME8rMDdSUFBrMXAmI3hBO1pYRU11azZwUVJtRjFkRWRxbEZxcElGSHFvSGdjbHBjc01Hck1Za0hIazd2cyszWmpxTWM4MmxFcEFpY08vOEFIeFV2eS9zcmJXOWUmI3hBOzFQVXRVUVQzTVJWMGlsK0lCcEdhcDRuK1RpQVBESTlrWW81ODA1NU41RHY4L3dCVEx0VEpMRGloQ0d3UDZQMXN1ODJONVhzYkdHNTEmI3hBO2V5V2FFVEtrWENOU3dlaFlkMStINGR4bTQ3UU9ueHdFc3NiRjl6cXRFTTg1R09PVkd1OWgrancydm1EOHdydHI5ZWR2YmgydDdkL3MmI3hBO2xZbVZJMTQ5S1VQS21hYlR4anFOYkxqNUM2SHUySDYzYlo1U3dhUWNITTh6NytmNm1mYXZvR2thaHAwdHRjUVJySHdQR1FLRk1aQTImI3hBO1pTT2xNNkhVYVRIa2dZeUFyN25SNE5Ua2hNU0JQNjNrdWthUHJXdTZGTkJaMWxYVFpoSWtCYW5JVHFlWEd1MVY5SUdudWM0L1Q2YkwmI3hBO3FNSkVkK0E4dmY4QTJmYTlUbno0OE9VR1czR09mdS90Wk9QT2kyY0tXZm1IeTU2RU5BaEt4Z0lSMCtHT1JRUHViTnIvQUNsd0RoelkmI3hBO3FIdS9RZjF1dC9rL2pQRmh5MmZmK2tmcVRIei9BSGRwZWVSMHViTmcxdEs4TFJFQ253MUlwVHRUTW50YkpHZWs0by9TU0hIN01oS0cmI3hBO3A0WmN4YXArVmY4QXlqRC9BUE1USi94RmNsMkQvY2Y1eC9ReDdhL3Z2ODBmcFluK2FuL0tUcC96RFIvOFNiTlAyOS9mL3dDYVAwdTEmI3hBOzdGL3VmODQvb2QrVmYvS1R2L3pEU2Y4QUVseDdCL3YvQVBOUDZGN2EvdWY4NGZwZWhlYS9LOXI1Z3NCREkzcFhNVld0cDZWNGs5UVImI3hBOzNVMDN6cE5mb1k2aUZIYVE1RjBHaTFrc0VyRzRQTU1TdHRLL05MU29oWTJVaVRXcWZERy9LRmdvN2NmVm80SHRUTk5EVDlvWVJ3UU4mI3hBO3grSDZkM2F6emFMS2VLUXFYeC9RblhscnkzNWpzN2ZVWjlVdlRjWEY5R3crckJ1Uzh5dEF4WnFmRjIyMnArR2RvdEZuZ0puSkt6SWMmI3hBO3ZOdzlYcThNekVRalFqMVVQeTI4dTZ6bzM2Ui9TVnY2SHIrajZYeG85ZUhxY3ZzTTFLY2gxeXZzWFI1Y1BIeGlycnU4KzVuMnRxc2UmI3hBO2JoNERkWDMrVEw3Mk41TE9lTkJWM2pkVkhTcEtrRHJtNnlnbUpBN25WWXpVZ1Qzdkx0RTh2L21Sb25yZm82MFdQNnh4OVhrOXM5ZUYmI3hBO2VQMm5QOHh6bE5McE5kZ3ZnalYrY2YxdlM2alZhUE5YSExsL1cvVWpuOG4rZHZNTnpFM21HNUVGdEVmc0FveEE3OEVpK0NwOFNjdlAmI3hBO1oycTFFaDR4cUk5MzZObWthL1RZSW53aFpQdi9BRXBwNTU4cTMxM28ybmFmbzF0NmlXYlU0YzBTaWhhQWt1VnFUbVgycG9KenhRaGkmI3hBO0Y4UHUvUzR2WjJ0akhKS2VRL1VuZjFhYTE4bGZWcDE0VFFhYjZjcVZCb3lRY1dGUlVkUm1kd0dPbDRUekdPdjlpNGZHSmFteHlNLzkmI3hBOzh3bjhvdjhBanBhaC93QVlVLzRsbWk5bnZybDduYzl1ZlJIM3ZVTTZ0NXBMZk12L0FDam1xLzhBTUhjZjhtbXpGMXY5eFA4QXFTKzUmI3hBO3lOSi9mUS9yRDcyQy9sQi92VHFmK3BGK3Q4MFBzNzlVL2grbDNmYnZLSHgvUTlNenFIbkhZcTdGWFlxOGkvTG4vbE16L3FUWnh2WTMmI3hBOytOZk42dnRYL0Yva3lLNzhvMzk1K1lUNmpkV1N6YU05T2J1MFpVMHRnZ3FoYmwvZUR3elpaT3o1ejF2SEtONHZoL05ybHo1dXZocm8mI3hBO3cwbkJHVlpQai9PNy9jeXUzMGJTZFBWNXJEVDRVblZTVjlORVIyTlBzaHpTbGZubTRocHNlUGVFQmZrQTZ1V295Wk5wU05NUjh2OEEmI3hBO2tTUzl1YisvODFXdks1dUpPVVVYcW5hdFN4ckUvVGNBQ3ZiTk5wT3lqT1VwNmlQcUo3LzFGMnVxN1NFQkdHQTdBZDM2d3U4MGZsMWEmI3hBO0N4amw4dTJoanY0cFZiaUpXK0pmWXl2UUVHaHc2N3NhUEFEZ2pVd2Uvd0RXVWFQdFdYRldZM0VqdS9VRU9mSjNtaTF1STliMGQxdE4mI3hBO1JtV3Q3WXN5MEVoL3ZBcEhLTmtadDZkc3JQWjJvaElaY1hwbWZxajU5ZktpMmZuOEVnY1dUMVFISS9kNTIxcVdoL21GNWppaXM5VVMmI3hBOzN0TFdPUVNGcXFmaUFLOHZnTWhPekhiYkJtMHV0MUlFY2dqR04vamxhY1dvMG1uSmxEaWxLdnh6cEg2NzVGdnhmUTZ2b055SU5TaFYmI3hBO0JJcmZDcnNpaGVRKzBCVURkVHNjeU5WMlZQakdUQ2FtUHRhTk4ybERoT1BLTGdVTGRXbjVvYXRBMWhkTEJaMjhud3l6S3lBc3A2L1kmI3hBO1oyb2ZZREtzbVBYNWh3U3FNVHpPMzZMYklUMFdJOFVia2ZqK3hHbnlucitqYVRhMi9sdTZRWENTTkxldEtBUFdZZ0FBQWhnRkE3SDcmI3hBOzY1Zi9BQ2Ztd1l3TUVoZDNLK3JUK2R4WnNoT1liVlE4a3YxR3cvTXZXN1U2YmZXOXRiMnNoWDFKZVVlL0VnajdMU04xRmRobU5teGEmI3hBOzdQSGdtSWlKOTM2eTVHTExvOE11T0prWmZIOWlJODVhVEhwUDVmUTZjamN4YnlSZ3ZTbkptWXN4cDdzVGxuYVduR0hSaUE2RU5lZ3omI3hBO25McXpNOVFVVitWZi9LTVAvd0F4TW4vRVZ5N3NIKzQvemoraHE3YS92djhBTkg2V0ovbXAvd0FwT24vTU5IL3hKczAvYjM5Ly9tajkmI3hBO0x0ZXhmN24vQURqK2hDL2w5cVZscGZtUDFMK1FXOGJSUEZ6ZllLNUlQeGVIMmNxN0l6UnhaN21hRkVObmFtR1dURFVSZTl2VWY4VysmI3hBO1dQOEFxNlczL0l4ZjY1MWY4b1lQNThmbTgxK1J6ZnpKZkozK0xmTEgvVjB0ditSaS93QmNmNVF3Zno0L05meU9iK1pMNU8veGI1WS8mI3hBOzZ1bHQvd0FqRi9yai9LR0QrZkg1citSemZ6SmZKMytMZkxIL0FGZExiL2tZdjljZjVRd2Z6NC9OZnlPYitaTDVPL3hiNVkvNnVsdC8mI3hBO3lNWCt1UDhBS0dEK2ZINXIrUnpmekpmSjMrTGZMSC9WMHR2K1JpLzF4L2xEQi9QajgxL0k1djVrdms3L0FCYjVZLzZ1bHQveU1YK3UmI3hBO1A4b1lQNThmbXY1SE4vTWw4bmY0dDhzZjlYUzIvd0NSaS8xeC9sREIvUGo4MS9JNXY1a3ZrZ2RkODIrVy93QkRYeXBxRU1ydkJJaVImI3hBO3hzSFlzNmxRQUI3bktOVjJoZzhLVlRCMkxmcHREbThTTnhJM0RGUHloQi9TR29OVFlRb0NlMVN4L3BtbzluaDY1KzRPejdkK2lQdmUmI3hBO241MVR6YVcrWmY4QWxITlYvd0NZTzQvNU5ObUxyZjdpZjlTWDNPUnBQNzZIOVlmZXdYOG9QOTZkVC8xSXYxdm1oOW5mcW44UDB1NzcmI3hBO2Q1UStQNkhwbWRRODQ3RlhZcTdGWGpIazdVclRTdk4zcTN6K2pGV1dKbkkyVm1OQnk4QlhPSTdOelJ4YW01N0RjUFg2L0ZMTHA2anUmI3hBO2RpOVIvd0FXK1dQK3JwYmY4akYvcm5WL3loZy9ueCtielg1SE4vTWw4bmY0dDhzZjlYUzIvd0NSaS8xeC9sREIvUGo4MS9JNXY1a3YmI3hBO2s3L0Z2bGovQUt1bHQveU1YK3VQOG9ZUDU4Zm12NUhOL01sOG5mNHQ4c2Y5WFMyLzVHTC9BRngvbERCL1BqODEvSTV2NWt2azcvRnYmI3hBO2xqL3E2VzMvQUNNWCt1UDhvWVA1OGZtdjVITi9NbDhuZjR0OHNmOEFWMHR2K1JpLzF4L2xEQi9QajgxL0k1djVrdms3L0Z2bGovcTYmI3hBO1czL0l4ZjY0L3dBb1lQNThmbXY1SE4vTWw4bmY0dDhzZjlYUzIvNUdML1hIK1VNSDgrUHpYOGptL21TK1R2OEFGdmxqL3E2VzMvSXgmI3hBO2Y2NC95aGcvbngrYS9rYzM4eVh5ZC9pM3l4LzFkTGIvQUpHTC9YSCtVTUg4K1B6WDhqbS9tUytURmZ6Rzh5NkpkNkNMTzB1NDdtZVcmI3hBO1ZXQ3hFTUFFM0pZanBtcDdaMXVLZUhoaklTSlBSMmZaV2t5eHk4VWhRQTZwaitWaU12bGVwRkE5eEl5bnhGRkg2eG1UMkVQOEgvemkmI3hBOzBkc245LzhBQU1SL05UL2xKMC81aG8vK0pObW03ZS92L3dETkg2WGE5aS8zUCtjZjBNcTEvd0RMTFRkVHZIdkxXNGF5bGxKYVZBZ2smI3hBO1FzZHl3V3FFVjc3NXQ5WDJKRExJeWllRW40aDFlbTdZbmpqd3lIRUI4RXIvQU9WUGY5cmYvcDMvQU92dVluK2gzL2JQOWoveDV5djUmI3hBO2Uvb2Y3TDlqRU5MOHZmWC9BRE4raFBySHAvdkpvdnJIRGwvY3F4cnc1RHJ3OGMwMkRSK0puOEs2M0l2M1grcDJ1YlZjR0h4YTZEYjMmI3hBOzB5Ly9BSlU5L3dCcmYvcDMvd0N2dWJuL0FFTy83Wi9zZitQT3EvbDcraC9zdjJPLzVVOS8ydC8rbmY4QTYrNC82SGY5cy8yUC9IbC8mI3hBO2w3K2gvc3YyTy81VTkvMnQvd0RwMy82KzQvNkhmOXMvMlA4QXg1ZjVlL29mN0w5anYrVlBmOXJmL3AzL0FPdnVQK2gzL2JQOWoveDUmI3hBO2Y1ZS9vZjdMOWp2K1ZQZjlyZjhBNmQvK3Z1UCtoMy9iUDlqL0FNZVgrWHY2SCt5L1k3L2xUMy9hMy82ZC93RHI3ai9vZC8yei9ZLzgmI3hBO2VYK1h2NkgreS9ZMlB5ZUZSWFZxanVCYjAvNW1ZLzZIZjZmK3gvYWorWGY2SDIvc1psNWU4dWFkb05tYmF6RE1YUEthWjZGM2IzcFQmI3hBO1lkaG03MGVpaHA0OE1maVhVYXJWenp5dVNhWmx1TWx2bVgvbEhOVi81ZzdqL2swMll1dC91Si8xSmZjNUdrL3ZvZjFoOTdCZnlnLzMmI3hBO3AxUC9BRkl2MXZtaDluZnFuOFAwdTc3ZDVRK1A2SHBtZFE4NDdGWFlxN0ZXSWVZL3kyMDNWcng3MkNkcks0bE5acUlIUm03dHhxdEMmI3hBO2UrK2FiV2Rpd3pTNGdlRW5uMWR0cE8xcDRvOEpIRUFrL3dEeXA3L3RiLzhBVHY4QTlmY3d2OUR2KzJmN0gvanpsL3k5L1EvMlg3RWcmI3hBOzgzK1NQOE8yMXZOOWQrdGV1NVRqNlhwMG9LMXJ6ZXVhN3RIc3o4dEVIaTRyOHEvU1hPMFBhUDVna2NQRFhuZjZFZm9QNVovcGJTTGImI3hBO1VmMGw2UDFnRnZTOUhueG94WDdYcUxYcDRaazZUc1R4c1lueDFmbCsxbzFQYS9oWkREaHV2UDhBWW1IL0FDcDcvdGIvQVBUdi93QmYmI3hBO2N5UDlEdjhBdG4reC93Q1BOSDh2ZjBQOWwreDMvS252KzF2L0FOTy8vWDNIL1E3L0FMWi9zZjhBankveTkvUS8yWDdIZjhxZS93QzEmI3hBO3YvMDcvd0RYM0gvUTcvdG4reC80OHY4QUwzOUQvWmZzZC95cDcvdGIvd0RUdi8xOXgvME8vd0MyZjdIL0FJOHY4dmYwUDlsK3gzL0smI3hBO252OEF0Yi85Ty84QTE5eC8wTy83Wi9zZitQTC9BQzkvUS8yWDdIZjhxZS83Vy84QTA3LzlmY2Y5RHY4QXRuK3gvd0NQTC9MMzlEL1omI3hBO2ZzZC95cDcvQUxXLy9Udi9BTmZjZjlEdisyZjdIL2p5L3dBdmYwUDlsK3hVdC95Z3QxbFUzR3B2SkVQdElrSVJqL3NpNy9xeVVQWjImI3hBO0lQcW5ZOTFmcExHWGJwcmFHL3YvQUdNOHNiSzFzYlNLMHRVRWR2Q3ZHTkIyR2RCaXhSeHhFWWlnSFI1TWtweU1wYmt2S2Z6VS93Q1UmI3hBO25UL21Hai80azJjajI5L2Yvd0NhUDB2VWRpLzNQK2NmMFBYYzdKNVIyS3ZJZkxES3Y1bGdzUUI5WnV4VStKU1VET04wSi93Ny9PbCsmI3hBO2w2dldEL0EvODJQNkhyMmRrOG83RlhZcTdGWFlxN0ZYWXE3RlhZcWx2bWRsWHkzcXBZZ0Q2cE9LbnhNYkFaaTY0L3VKL3dCV1gzT1QmI3hBO294KytoL1dIM3NGL0tEL2VuVS85U0w5YjVvZlozNnAvRDlMdXUzZVVQaitoNlpuVVBPT3hWMkt1eFYyS3V4VmdQNXUvOGM3VC93RGomI3hBO00vOEF4SE9lOW9mb2o3M2U5aC9YTDNKOTVCWlQ1UjA2aEJvcmcwOGZVYk5oMlNmOEdoK09yZzlwai9DSmZqb3lETmk0RHNWZGlyc1YmI3hBO2RpcnNWZGlyc1ZkaXJ5SDgwMlUrWndBUVN0dkdHSGdhc2Y0NXh2Yngvd0FJL3dBMGZwZXI3R0g3bi9PTDE3T3llVWRpcnpQelgrWGUmI3hBO3J0cTB1b2FLQktrN21VeEIxamVPUW1wSUxGUlN1NDN6bHRmMlBrT1F6eGIyYjdpQzlIb3UxY2ZoaUdUYXR1KzB1L3d0K1puL0FDOC8mI3hBOzlKaWY5VmN4dnlPdS9wZjZjZjhBRk9SK2MwZjlIL1Mvc2QvaGI4elArWG4vQUtURS93Q3F1UDVIWGYwdjlPUCtLWDg1by82UCtsL1kmI3hBOzcvQzM1bWY4dlA4QTBtSi8xVngvSTY3K2wvcHgvd0FVdjV6Ui93QkgvUy9zZC9oYjh6UCtYbi9wTVQvcXJqK1IxMzlML1RqL0FJcGYmI3hBO3ptai9BS1ArbC9ZNy9DMzVtZjhBTHovMG1KLzFWeC9JNjcrbC9weC94Uy9uTkgvUi93QkwreDMrRnZ6TS93Q1huL3BNVC9xcmorUjEmI3hBOzM5TC9BRTQvNHBmem1qL28vd0NsL1k3L0FBdCtabi9Mei8wbUovMVZ4L0k2NytsL3B4L3hTL25OSC9SLzB2N0hmNFcvTXovbDUvNlQmI3hBO0UvNnE0L2tkZC9TLzA0LzRwZnptai9vLzZYOWp2OExmbVoveTgvOEFTWW4vQUZWeC9JNjcrbC9weC94Uy9uTkgvUi8wdjdGT2J5ZCsmI3hBO1lsd25wWEVjMGtURWNsa3VvMlhZOVNESWNqTHM3V3lGU0JJL3JEOWFZNi9TUk5nZ0grcWYxTTg4aitVMjBDeWxOdzZ2ZTNSVXpjTjEmI3hBO1VMWGlvSjY5VFU1MEhaZlovd0NYZ2VMNnBjM1NkbzYzeDVDdnBESmMyanJuWXE3RlhZcTdGWFlxa2ZuRHkwdXY2VjlXVnhIY3hONmwmI3hBO3ZJM1RsUWppMU96VnpBN1IwWDVqSHc4cERjT2JvTlg0RTc1ZzgzblVQa3I4d2JRTkZheHl4eDFyKzV1WTBVbnBXbnFMK3JPYWoyWnImI3hBO0liUkJBOHBEOWIwRXUwTkpMZVJIeGlmMUtuK0Z2ek0vNWVmK2t4UCtxdVMvSTY3K2wvcHgvd0FVeC9PYVArai9BS1g5anY4QUMzNW0mI3hBO2Y4dlAvU1luL1ZYSDhqcnY2WCtuSC9GTCtjMGY5SC9TL3NkL2hiOHpQK1huL3BNVC9xcmorUjEzOUwvVGovaWwvT2FQK2ovcGYyTy8mI3hBO3d0K1puL0x6L3dCSmlmOEFWWEg4anJ2NlgrbkgvRkwrYzBmOUgvUy9zZC9oYjh6UCtYbi9BS1RFL3dDcXVQNUhYZjB2OU9QK0tYODUmI3hBO28vNlArbC9ZNy9DMzVtZjh2UDhBMG1KLzFWeC9JNjcrbC9weC93QVV2NXpSL3dCSC9TL3NkL2hiOHpQK1huL3BNVC9xcmorUjEzOUwmI3hBOy9Uai9BSXBmem1qL0FLUCtsL1k3L0MzNW1mOEFMei8wbUovMVZ4L0k2NytsL3B4L3hTL25OSC9SL3dCTCt4MytGdnpNL3dDWG4vcE0mI3hBO1QvcXJqK1IxMzlML0FFNC80cGZ6bWovby93Q2wvWWlkRS9MZlhyclUwdU5iSHBXNnVIbTV5TExKTFRmajhKYnIzSk9XNlhzWE5QSngmI3hBO1pkaDEzc2xyMUhhMktNS3hibjNVQS8vWjwveG1wR0ltZzppbWFnZT4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOkFsdD4KICAgICAgICAgPC94bXA6VGh1bWJuYWlscz4KICAgICAgICAgPHhtcE1NOlJlbmRpdGlvbkNsYXNzPmRlZmF1bHQ8L3htcE1NOlJlbmRpdGlvbkNsYXNzPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnV1aWQ6NjVFNjM5MDY4NkNGMTFEQkE2RTJEODg3Q0VBQ0I0MDc8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo0OGMzMzA1YS01OGY2LTQ4OGItODIyMi1lZWIzMDNiNDVmZGQ8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NDhjMzMwNWEtNThmNi00ODhiLTgyMjItZWViMzAzYjQ1ZmRkPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjVjNDkxMWMzLTU2ZTgtNDhlNy1iNGI5LTZkZWIzNzQzYjI3ZTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDo1YzQ5MTFjMy01NmU4LTQ4ZTctYjRiOS02ZGViMzc0M2IyN2U8L3N0UmVmOmRvY3VtZW50SUQ+CiAgICAgICAgICAgIDxzdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+dXVpZDo2NUU2MzkwNjg2Q0YxMURCQTZFMkQ4ODdDRUFDQjQwNzwvc3RSZWY6b3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICAgICA8c3RSZWY6cmVuZGl0aW9uQ2xhc3M+ZGVmYXVsdDwvc3RSZWY6cmVuZGl0aW9uQ2xhc3M+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo1YzQ5MTFjMy01NmU4LTQ4ZTctYjRiOS02ZGViMzc0M2IyN2U8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMjAtMDYtMTFUMTU6NDY6MzEtMDU6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIElsbHVzdHJhdG9yIDI0LjEgKE1hY2ludG9zaCk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjQ4YzMzMDVhLTU4ZjYtNDg4Yi04MjIyLWVlYjMwM2I0NWZkZDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMC0wNi0xMVQxNTo0Njo1My0wNTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgSWxsdXN0cmF0b3IgMjQuMSAoTWFjaW50b3NoKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8aWxsdXN0cmF0b3I6U3RhcnR1cFByb2ZpbGU+V2ViPC9pbGx1c3RyYXRvcjpTdGFydHVwUHJvZmlsZT4KICAgICAgICAgPGlsbHVzdHJhdG9yOkNyZWF0b3JTdWJUb29sPkFkb2JlIElsbHVzdHJhdG9yPC9pbGx1c3RyYXRvcjpDcmVhdG9yU3ViVG9vbD4KICAgICAgICAgPHBkZjpQcm9kdWNlcj5BZG9iZSBQREYgbGlicmFyeSAxNS4wMDwvcGRmOlByb2R1Y2VyPgogICAgICAgICA8cGRmeDpDcmVhdG9yVmVyc2lvbj4yMS4wLjA8L3BkZng6Q3JlYXRvclZlcnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz7/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAQECAQEBAgICAgICAgICAQICAgICAgICAgL/2wBDAQEBAQEBAQEBAQECAQEBAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgL/wAARCABIAEgDAREAAhEBAxEB/8QAHQAAAgIDAAMAAAAAAAAAAAAAAAcGCAQFCQECCv/EAD4QAAAGAQICAwwK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IC9TIC9EID4+XSA+PgplbmRvYmoKeHJlZgowIDQyCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMTk3IDAwMDAwIG4gCjAwMDAwMDI3NTQgMDAwMDAgbiAKMDAwMDAwMjc3NCAwMDAwMCBuIAowMDAwMDAyODA3IDAwMDAwIG4gCjAwMDAwMDM4MDAgMDAwMDAgbiAKMDAwMDAwMzgxOSAwMDAwMCBuIAowMDAwMDA2NTIwIDAwMDAwIG4gCjAwMDAwMDY1NDAgMDAwMDAgbiAKMDAwMDAwNjU3MyAwMDAwMCBuIAowMDAwMDM0OTM0IDAwMDAwIG4gCjAwMDAwMzQ5NTYgMDAwMDAgbiAKMDAwMDAzNTY5NSAwMDAwMCBuIAowMDAwMDM1NzE1IDAwMDAwIG4gCjAwMDAwNDAxODcgMDAwMDAgbiAKMDAwMDA0MDIwOCAwMDAwMCBuIAowMDAwMDc1MzQzIDAwMDAwIG4gCjAwMDAwNzUxNjkgMDAwMDAgbiAKMDAwMDA0MDQwMiAwMDAwMCBuIAowMDAwMDQwNTA2IDAwMDAwIG4gCjAwMDAwNDA3NTcgMDAwMDAgbiAKMDAwMDA1ODUyOCAwMDAwMCBuIAowMDAwMDU4NTA2IDAwMDAwIG4gCjAwMDAwNTg2NjMgMDAwMDAgbiAKMDAwMDA1ODY4MiAwMDAwMCBuIAowMDAwMDU5MjY2IDAwMDAwIG4gCjAwMDAwNTg4MzYgMDAwMDAgbiAKMDAwMDA1OTgwMiAwMDAwMCBuIAowMDAwMDU5ODIyIDAwMDAwIG4gCjAwMDAwNTk5MjggMDAwMDAgbiAKMDAwMDA2MDE4NiAwMDAwMCBuIAowMDAwMDczODEzIDAwMDAwIG4gCjAwMDAwNzM3OTEgMDAwMDAgbiAKMDAwMDA3Mzk0NCAwMDAwMCBuIAowMDAwMDczOTYzIDAwMDAwIG4gCjAwMDAwNzQ1MjkgMDAwMDAgbiAKMDAwMDA3NDEyMiAwMDAwMCBuIAowMDAwMDc1MDM4IDAwMDAwIG4gCjAwMDAwNzUwNTggMDAwMDAgbiAKMDAwMDA3NTIyOSAwMDAwMCBuIAowMDAwMDc1NTc3IDAwMDAwIG4gCnRyYWlsZXIKPDwKICAvUm9vdCA0MCAwIFIKICAvSW5mbyAxIDAgUgogIC9JRCBbPDM3MkZCOUIxMjYwMTM3OTdDRjVFMkI3NzdFNTI0MkY1PiA8MzcyRkI5QjEyNjAxMzc5N0NGNUUyQjc3N0U1MjQyRjU+XQogIC9TaXplIDQyCj4+CnN0YXJ0eHJlZgo3NTYyMQolJUVPRgo=", "contentSizeBytes": 76625, "uuid": "4e9b6c33-73d5-4cde-b094-d624e62c4481", "serie": "Serie", "folio": "Folio", "stampDate": "2022-09-13T10:02:33", "issuedDate": "2022-09-12T09:58:55", "rfcIssuer": "EKU9003173C9", "rfcReceptor": "URE180429TM6", "total": "199.16" }, "status": "success", "responseCode": 200 } ``` ``` Error: El xml proporcionado no cuenta con un Timbre Fiscal Digital ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | data | object/null | Objeto de datos referente al XML enviado y el PDF resultante en base 64. | | status | String | “success”. | | responseCode | Int | 200 cuando ha sido exitosa la petición. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-d1454120-bdb5-4678-92d2-dbee2cd89a91) --- **💡Nota:** Puede interesarte también nuestra variedad de plantillas PDF genéricas como representación impresa del CFDI: [Plantillas PDF](https://developers.sw.com.mx/knowledge-base/plantillas-pdf/) **Video:** [SW® | Servicio de Generación PDF](https://www.youtube.com/watch?v=6qS7U3_qEdk) --- # Plantillas PDF Fuente: https://developers.sw.com.mx/knowledge-base/plantillas-pdf/ Categoria: SW API´S En el siguiente articulo se muestran la variedad de plantillas PDF genéricas como representación impresa del CFDI. **💡Visita nuestro artículo: [👉 Servicios de Generación de PDF – ¿Cuál es la mejor opción para TI?](https://developers.sw.com.mx/knowledge-base/que-servicio-de-generacion-de-pdf-debo-usar/)** **🚨Importante:** Si necesitas campos adicionales o personalizados en tu PDF, contactate a **soporte@sw.com.mx** y/o con tu ejecutivo para cotizar estos ajustes en un **PDF personalizado** ### CFDI 4.0 | CFDI | Template ID | Ejemplo | | --- | --- | --- | | Factura Ingreso, Egreso, Traslado | cfdi40 | [Vista Previa](https://developers.sw.com.mx/knowledge-base/plantillas-pdf/) | | Nómina | payroll40 | [Vista Previa](https://developers.sw.com.mx/knowledge-base/plantillas-pdf/) | | Pagos 2.0 | payment20 | [Vista Previa](https://developers.sw.com.mx/knowledge-base/plantillas-pdf/) | | Carta Porte 3.0 | billoflading40cp30 | [Vista Previa](https://developers.sw.com.mx/knowledge-base/plantillas-pdf/) | | Comercio Exterior 2.0 | comercio20 | [Vista Previa](https://developers.sw.com.mx/knowledge-base/plantillas-pdf/) | | Carta Porte 3.1 | billoflading40cp31 | [Vista Previa](https://developers.sw.com.mx/knowledge-base/plantillas-pdf/) | Para la generación de cada una de estas plantillas puedes consultar el [servicio de generación de PDF](https://developers.sw.com.mx/knowledge-base/servicio-de-generacion-de-pdf/). --- # Recuperar XML por UUID Fuente: https://developers.sw.com.mx/knowledge-base/recuperar-xml-por-uuid/ Categoria: SW API´S Servicio para recuperar información de un XML timbrado con SW. #### URL´s 🛠️ Pruebas: `https://api.test.sw.com.mx` 📄 🚀 Productivo: `https://api.sw.com.mx` 📄 --- ### Recuperar por UUID Método para recuperar la información de un XML enviando el UUID de la factura, así como el token de la cuenta en la cual fue timbrada. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **GET** | /datawarehouse/v1/live/**{uuid}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | uuid | Requerido | UUID de la factura a recuperar | #### Ejemplo Request ``` curl --request GET \ --url http://api.test.sw.com.mx/datawarehouse/v1/live/acc1d155-fb8a-42f4-9735-e43513eb9a32 \ --header 'Authorization: Bearer $token' ``` #### Ejemplo Response **💡Nota Importante:** En caso de que el UUID proporcionado no exista, esté mal escrito o no haya sido timbrado con la cuenta autenticada, el servicio responderá con un status igual a “success”, pero el arreglo records será vacío. Esto indica que no se encontraron coincidencias, sin que represente un error en la ejecución del servicio. ✅ Response Ok (200) ❌ Response Error 📘 Atributos de la respuesta ``` { "data": { "metaData": { "page": 1, "perPage": 10, "pageCount": 1, "totalCount": 1, "links": { "current": "?page=1&perPage=10" } }, "records": [ { "status": "Vigente", "urlPDF": null, "urlAckCfdi": "https://smarter-datawarehouse-storage-test.s3.amazonaws.com/acusecfdi/2021/8/10/bbf8387e-aeef-45ba-92c1-939e28905e8e/bbf8387e-aeef-45ba-92c1-939e28905e8e/URE180429TM6/ab21a13a-7385-4493-bec1-52cfb53ec9a7.xml?AWSAccessKeyId=ASIAWONWNULEZNRAZU56&Expires=1686378331&x-amz-security-token=IQoJb3JpZ2luX2VjEBoaCXVzLWVhc3QtMSJHMEUCIEXVbFQXHjAXEfHlkE35WTeLZ9AomNPCApQHKZMv2DLnAiEAnFFbgIOJBaGyHtD5TRa9%2Bid92yi4oxkTUJub5Y5ut4sqowQIIhAAGgw0NDMzMDEwNzc3MDUiDM%2Fw5LveRzhXovVYZyqABORw%2FHAynMv407X8WOT7ghx4irkARE6co3GEGpRioXSG2p3o4VdobxsLIIDTrRvC7%2F6caBj%2FL2MVuuCn43s0OAS84OA9p%2FyNfe7euTDnW8LrlsUDX2BI1kuWMqnUt46g0Ti41UKy2N1J7JaxG8GYZXXZRZQC2QIEuW9jpn0RYgL0uXB%2FUER9bQMhN%2BG9THCODZqcciQ18IwcayT8p5OBb%2BZWZBNWW1aFPpRh6%2BzmKc1nNk1ugQ4TqSmJVH9JBPRCsJMknMsf2dJQzvRzTinSuFQyTfHiXP9XYhbTzjhxKD5TRDebq4MfcQ7DnWTOEkYCxVp6hDIbA6yautFJsfEV6wTLyfP1Eb4RWD4qSiopn%2BR%2B4kyk9X%2FpzXvpoytQNU3xr%2BVzPYhySQNqQOkSIFfcZFzJwnKmAr4WgAp%2BfPfBksTxmjK6SeoAokMQDFPvay8VWqOngoqUIsBGM%2FXUrCRk0l4gqHTWD4rz6%2FAoMTASM0RUcFC%2FlutWZjm8fkky3LYNZxob%2FMktbSpTGnoXUBpY00wf3mkpBR%2FiDi3Y2JixWGtQaVZXow%2FWcVw5o%2FZHKzqJ%2BtZu%2BOyqLwP%2FJclzKaqYbkpIT6rKCHtyzXVkdnSGxpGr7crCiHArnMhStHRX%2FWWyb5WtpBEazTd1zlsA7i78BiH545GBpK30bjENRZuSrWZRMMKxipUGOqYBdPAdbO%2B1iToxmd2BkDXP5Ye33BgSeCAelHKTsyghbPETZl61kzQtfKEp4rKzoSmNSjhQgYIcZ5xZTPSzNgtpNlwClCetCcXgireWuavioNH57RJpFPczsDAKfI7Hn8Hv2GG89zLrtDk6YPoGINuLr9W2PCrQbPlSSFUkyPVVhYt1rXXE27L9nHYTdIU50kBQS01p6Lge0JsADz%2F5bZZRPa95pSM65Q%3D%3D&Signature=0NRioq6AHp%2BKceHaJrMhUL%2FA", "urlAckCancellation": null, "hasAddenda": false, "addenda": null, "urlAddenda": null, "fechaGeneracionPdf": null, "idDealer": "bbf8387e-aeef-45ba-92c1-939e2898e", "idUser": "bbf8387e-aeef-45ba-92c1-939e2898e", "version": "3.3", "serie": "-", "folio": "2080427802", "fecha": "2021-08-09T23:58:30", "numeroCertificado": "30001000000400002444", "subTotal": 0, "descuento": 0, "total": 0, "moneda": "XXX", "tipoCambio": 1, "tipoDeComprobante": "T", "metodoPago": "-", "formaPago": "-", "condicionesPago": "-", "luegarExpedicion": "50071", "emisorRfc": "URE180429TM6", "emisorNombre": "CV", "regimenFiscal": "624", "receptorRfc": "S1231112301231", "receptorNombre": "receptor, S.A. DE C.V.", "residenciaFiscal": "-", "numRegIdTrib": "-", "usoCFDI": "P01", "totalImpuestosTraslados": 0, "totalImpuestosRetencion": 0, "trasladosIVA": 0, "trasladosIEPS": 0, "retencionesISR": 0, "retencionesIVA": 0, "retencionesIEPS": 0, "totalImpuestosLocalesTraslados": 0, "totalImpuestosLocalesRetencion": 0, "complementos": "CartaPorte TimbreFiscalDigital", "uuid": "ab21a13a-7385-4493-bec1-52cfb53ec9a7", "fechaTimbrado": "2021-08-10T09:42:20", "rfcProvCertif": "SPR190613I52", "selloCFD": "Og1WO8ddkx3PgddGvBlcDPbr3SNFEvTu7TzCKtQ5P4N5w91vIi4zX28Io/AIOJwGWZa2Wd0UHxlEnioJulyj5vLnOeH740kczwUqhdtR3bI3hAs123WlZd5lls9AUsNVaPwnsKd3cPZF32NBEyfDWSUXAlkX64fGjUZxTQeerrRLwokfhwnLUZ+mCHBWqlXdPq73cIgu/ReWBv3euWDaQX48sBuqvuw7zL/ryRTRVKtkNNSXyZ1Ru/iO57HulD/jL0tHlMektVhfxmT5SsEYQncBxs6iBo5SyRhfEAmAsi24uUS3iMtqnMWAZR6TZXwgK91GrCK/vtwL2UPBw+ag==", "urlXml": "https://smarter-datawarehouse-storage-test.s3.amazonaws.com/cfdi33/2021/8/10/bbf8387e-aeef-45ba-92c1-939e28905e8e/bbf8387e-aeef-45ba-92c1-939e28905e8e/URE180429TM6/ab21a13a-7385-4493-bec1-52cfb53ec9a7.xml?AWSAccessKeyId=ASIAWONWNULEZNRAZU56&Expires=1686378331&x-amz-security-token=IQoJb3JpZ2luX2VjEBoaCXVzLWVhc3QtMSJHMEUCIEXVbFQXHjAXEfHlkE35WTeLZ9AomNPCApQHKZMv2DLnAiEAnFFbgIOJB123Ra9%2Bid92yi4oxkTUJub5Y5ut4sqowQIIhAAGgw0NDMzMDEwNzc3MDUiDM%2Fw5LveRzhXovVYZyqABORw%2FHAynMv407X8WOT7ghx4irkARE6co3GEGpRioXSG2p3o4VdobxsLIIDTrRvC7%2F6caBj%2FL2MVuuCn43s0OAS84OA9p%2FyNfe7euTDnW8LrlsUDX2BI1kuWMqnUt46g0Ti41UKy2N1J7JaxG8GYZXXZRZQC2QIEuW9jpn0RYgL0uXB%2FUER9bQMhN%2BG9THCODZqcciQ18IwcayT8p5OBb%2BZWZBNWW1aFPpRh6%2BzmKc1nNk1ugQ4TqSmJVH9JBPRCsJMknMsf2dJQzvRzTinSuFQyTfHiXP9XYhbTzjhxKD5TRDebq4MfcQ7DnWTOEkYCxVp6hDIbA6yautFJsfEV6wTLyfP1Eb4RWD4qSiopn%2BR%2B4kyk9X%2FpzXvpoytQNU3xr%2BVzPYhySQNqQOkSIFfcZFzJwnKmAr4WgAp%2BfPfBksTxmjK6SeoAokMQDFPvay8VWqOngoqUIsBGM%2FXUrCRk0l4gqHTWD4rz6%2FAoMTASM0RUcFC%2FlutWZjm8fkky3LYNZxob%2FMktbSpTGnoXUBpY00wf3mkpBR%2FiDi3Y2JixWGtQaVZXow%2FWcVw5o%2FZHKzqJ%2BtZu%2BOyqLwP%2FJclzKaqYbkpIT6rKCHtyzXVkdnSGxpGr7crCiHArnMhStHRX%2FWWyb5WtpBEazTd1zlsA7i78BiH545GBpK30bjENRZuSrWZRMMKxipUGOqYBdPAdbO%2B1iToxmd2BkDXP5Ye33BgSeCAelHKTsyghbPETZl61kzQtfKEp4rKzoSmNSjhQgYIcZ5xZTPSzNgtpNlwClCetCcXgireWuavioNH57RJpFPczsDAKfI7Hn8Hv2GG89zLrtDk6YPoGINuLr9W2PCrQbPlSSFUkyPVVhYt1rXXE27L9nHYTdIU50kBQS01p6Lge0JsADz%2F5bZZRPa95pSM65Q%3D%3D&Signature=4vy4lQRhTAxzdCeEfaz%2FdHJNpD8%3D", "yearMonth": 202108 } ] }, "status": "success" } ``` ``` { "data": { "metaData": { "page": 1, "perPage": 10, "pageCount": 0, "totalCount": 0, "links": { "current": "?page=1&perPage=10" } }, "records": [] }, "status": "success" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | data | object/null | Contiene los datos de la consulta, incluyendo metadatos de paginación (`metaData`) y el arreglo `records`. Dentro de “records” vendrá la información referente al XML, como el URL para descargar el XML y el PDF en caso de existir. | | status | String | “success”. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-06f32b30-1e1e-4706-9810-fce863440c75) --- # Reenvío Email (PDF, XML) Fuente: https://developers.sw.com.mx/knowledge-base/reenvio-pdf-email/ Categoria: SW API´S Servicio mediante el cual puedes realizar el reenvío de un XML y/o PDF existente mediante su UUID a través de correo electrónico. **💡Visita nuestro artículo: [👉 Servicios de Generación de PDF – ¿Cuál es la mejor opción para TI?](https://developers.sw.com.mx/knowledge-base/que-servicio-de-generacion-de-pdf-debo-usar/)** #### URL´s 🛠️ Pruebas: `https://api.test.sw.com.mx` 📄 🚀 Productivo: `https://api.sw.com.mx` 📄 --- ### Reenvío PDF email #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /comprobante/resendemail | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | uuid | Requerido | Folio fiscal de la factura | | to | Requerido | Correo electrónico (máximo 5 correos separados por ” , ” ) | #### Ejemplo Request ``` curl --request POST \ --url 'https://api.test.sw.com.mx/comprobante/resendemail' \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "uuid" : 'e6511c95-afe0-pb97-a776-ecc6b0408e6f', "to" : 'correo@test.com.mx,desk@crp.com.mx' }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "status": "success", "data": "email sent ok", "message": "OK", "messageDetail": "OK" } ``` ``` { "statusCode": 400, "status": "error", "message": "can't get the document Not documents found", "messageDetail": "No se definieron detalles" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | mensaje de error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | string/null | Mensaje de confirmación de envió cuando ha sido exitoso. | | statusCode | int | Código de estatus cuando hay un error. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-900abe73-44ea-4a69-b83d-1bd5bfff701e) --- # Regenerar PDF Fuente: https://developers.sw.com.mx/knowledge-base/regenerar-pdf/ Categoria: SW API´S API que podrá generar o regenerar un PDF de un CFDI previamente timbrados y podrá guardar o remplazar el archivo PDF para ser visualizado posteriormente desde el [Portal Administrador de Timbres.](https://portal.sw.com.mx/admin) **💡Visita nuestro artículo: [👉 Servicios de Generación de PDF – ¿Cuál es la mejor opción para TI?](https://developers.sw.com.mx/knowledge-base/que-servicio-de-generacion-de-pdf-debo-usar/)** #### URL´s 🛠️ Pruebas: `https://api.test.sw.com.mx` 📄 🚀 Productivo: `https://api.sw.com.mx` 📄 --- ### Regenerar PDF #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /pdf/v1/api/RegeneratePdf/**{uuid}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | #### 📍 Parámetros Path | Propiedad | Descripción | | --- | --- | | uuid | UUID del documento del cual se generara o regenerara el PDF | **💡Nota importante:** El servicio de Regeneración de PDF, permite él envió de algunos parámetros extra OPCIONALES en el body con la intención de que estos se vean reflejados en el PDF que se genere o regenere. #### 🧾 *(Opcional)* Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | logo | Opcional | El logotipo para mostrarse en el PDF en base 64. | | extras | Opcional | Arreglo de objetos donde se mencionan las observaciones y/o datos extras relacionados (Domicilio, teléfono, correo, etc.) **NOTA:** Servicio disponible solo para plantillas personalizadas, si lo requieres acércate con tu asesor de ventas. | | templateId | Opcional | Id de la plantilla customizada a generar o regenerar (Solicítalo con Soporte Técnico) | #### Ejemplo Request Ejemplo de request. ``` curl --request POST \ --url http://api.test.sw.com.mx/pdf/v1/api/RegeneratePdf/00000000-0000-0000-0000-000000000000 \ --header 'Authorization: Bearer $token' \ ``` Ejemplo de Request donde se mandan parámetros opcionales. ``` curl --location 'http://api.test.sw.com.mx/pdf/v1/api/RegeneratePdf/00000000-0000-0000-0000-000000000000' \ --header 'Authorization: bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "logo": "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", "extras":{ "OBSERVACIONES":"Observaciones ejemplo", "CalleCliente": "#111", "NumeroExteriorCliente": "CUSTOM ADDRESS" }, "templateId":"ecc12" }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "message": "Solicitud se proceso correctamente." } ``` ``` { "message": "No se encontro el UUID." } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Mensaje de éxito o error en la petición. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-41d58cff-d7a9-4fd4-9f59-f0e75923db37) --- #### Códigos de respuesta | Codigo | Estatus | Descripción | | --- | --- | --- | | 200 | OK | Indica que la solicitud se procesó correctamente, esto realiza una solicitud para la generación del PDF. | | 404 | NotFound | Indica que el UUID no fue encontrado en nuestros servicios o no fue encontrado con el token utilizado por el dueño del XML. | | 401 | Unauthorized | Indica que el token utilizado no es válido. | | 400 | BadRequest | Indica un posible error al procesar la solicitud. | --- # Validacion CFDI Fuente: https://developers.sw.com.mx/knowledge-base/validacion-cfdi/ Categoria: SW API´S Servicio que recibe un Comprobante Fiscal Digital por Internet (CFDI) versión 3.3 o 4.0, y realiza la validación de su integridad, sello digital y estructura conforme al estándar del SAT. Incluye la verificación de reglas y matriz de errores del SAT, así como la validación de complementos aplicables. Además, confirma la existencia del CFDI en la base de datos del SAT y consulta su estatus fiscal (vigente, cancelado o no encontrado), independientemente del Proveedor Autorizado de Certificación (PAC) que haya emitido el CFDI. **🚨Importante:** Las facturas de retenciones e información de pagos y sus complementos **no se validan**. #### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 ### Validación CFDI #### 🔗 Endpoint | Metodo | Ruta | | --- | --- | | **POST** | /validate/cfdi | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | multipart/form-data | #### 🧾 Parámetros Form | Propiedad | Uso | Descripción | | --- | --- | --- | | xml | Requerido | XML del comprobante a ser validado. | #### 📍 Parámetros Query | Propiedad | Uso | Permitidos | Descripción | | --- | --- | --- | --- | | validatestatus | Opcional | false | Indicar omisión de consulta de estatus cfdi; si no se registra, consulta siempre. | #### Ejemplos de Request Ejemplo de Request (Consulta el Estatus del CFDI por default) ``` curl --request POST \ --url http://services.test.sw.com.mx/validate/cfdi \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \ --form 'xml=cfdi.xml' ``` Ejemplo de Request donde se omite la consulta del estatus del CFDI. ``` curl --request POST \ --url http://services.test.sw.com.mx/validate/cfdi?validatestatus=false \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \ --form 'xml=cfdi.xml' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "status": "success", "detail": [ { "detail": [ { "message": "OK", "messageDetail": "Validacion de Estructura Correcta", "type": 1, "typeValue": "Information" } ], "section": "CFDI33 - Validacion de Estructura" }, { "detail": [ { "message": "OK", "messageDetail": "Validaciones Proveedor Comprobante ( CFDI33 ) Correcta", "type": 1, "typeValue": "Information" } ], "section": "CFDI33 - Validaciones Proveedor Comprobante ( CFDI33 )" }, { "detail": [ { "message": "OK", "messageDetail": "CFDI33 - Validaciones Proveedor Complemento cartaporte20:CartaPorte Correcta", "type": 1, "typeValue": "Information" } ], "section": "CFDI33 - Validaciones Proveedor Complemento cartaporte20:CartaPorte" } ], "cadenaOriginalSAT": "||1.1|fbbc0b7c-b3fd-4cca-a9e6-4f4d28d1a68a|2022-06-13T10:53:33|SPR190613I52|fPBy9+zmUeF5Fuml7Mj5uMNVvrfyhOwP5H5I/e+SZ4X7lU5l0VtyNZHiAOCQrJX/IupUqwH4nMhDKDBmJj8E6n1cSO6WMDti5exGTE1uVyCAMTOYVxQiwj/hzRNsr3UUuLMl7i73HTGAbA43YTAEsEa8VJiB9c4BKFuJyYmF8002Jj9S3iMBagx4jSwkNGPakpDxnwkPKknbzi3uACAyKS/7u4wLxvpwnDN7D+87oIvoKK01u8oOV5keH+E7xRLjZC6jOM9QlTYFkKz6Z7VcNVTWa12LujDItTa4CFY6VuW/71CmauR1BRRoCP1dpFIZlzaReO2NIUl4TfFp7oYHLw==|30001000000400002495||", "cadenaOriginalComprobante": "||3.3|A|11793|2022-06-11T00:00:00|99|30001000000400002434|7100|USD|19.4953|7100|I|PPD|64850|EKU9003173C9|ESCUELA KEMPER URGATE|601|KME110831G32|KRISTAFILMS DE MEXICO SA DE CV|G03|78101806|ET-0622-13908|1|E48|Servicio|FLETE EXPORTACION TERRESTRE|7100|7100|7100|002|Tasa|0.000000|0.00|7100|002|Tasa|0.000000|0.00|002|0.00|0.00|002|Tasa|0.000000|0.00|0.00|2.0|Sí|Salida|MEX|01|3297.51|Origen|KME110831G32|KRISTAFILMS|2022-06-01T00:00:00|SEGUNDA ORIENTE|206|206|1354|01|006|NLE|AFG|66600|Destino|KME110831G32|CP CONVERTERS BRISTOL|2022-06-09T00:00:00|3297.51|2201|2201|Bristol|Pensilvania|Pensilvania|PA|AFG|19007|44|KGM|44|1|13111212|POLIPROPILENO ORIENTADO AXIALMENTE\\nPELICULA METALIZADA|44|H87|KGM|No|44|42000.00|MXN|3920200599|TPAF02|1938DTM29012021021001002|C3R2|43LA6C|2020|QUALITAS COMPAÑÍA DE SEGUROS, S.A.B. DE C.V.|0640499881-173886|1.00|CTR004|BE2028|01|CATO8503166K5|NVOL025207|CRISTOBAL TREVINO RODRIGUEZ|NOGALES|205|NLE|MEX|67350||", "uuid": "fbbc0b7c-b3fd-4cca-a9e6-4f4d28d1a68a", "statusSat": "Vigente", "statusCodeSat": "S - Comprobante obtenido satisfactoriamente.", "isCancelable": "Cancelable con aceptación", "statusCancelation": "" } ``` ``` { "message": "301 - La estructura del comprobante es incorrecta.", "messageDetail": "Error al leer el documento XML. La estructura del documento no es un Xml valido y/o la codificación del documento no es UTF8. Root element is missing.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Mensaje de error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | Array/null | Arreglo de objetos con información referente a las validaciones. | | status | String | “success” o “error” | | cadenaOriginalSAT | String/null | Cadena original del timbre fiscal. | | cadenaOriginalComprobante | String/null | Cadena original del CFDI validado. | | uuid | String/null | Folio fiscal (UUID) del CFDI validado. | | statusSat | String/null | Estado del CFDI consultado ante el SAT. | | statusCodeSat | String/null | Muestra si el comprobante fue encontrado. | | isCancelable | String/null | Muestra si es cancelable con aceptación, sin aceptación o no cancelable. | | statusCancelation | String/null | Estado actual del proceso de cancelación del CFDI. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-77cac8f0-d8b9-43e8-a1dc-15de761e120f) --- # Lista 69 y 69-B Fuente: https://developers.sw.com.mx/knowledge-base/lista-69-b/ Categoria: Servicios Complementarios Verificar a tus clientes y proveedores nunca había sido tan fácil. Con este servicio puedes identificar en segundos si un contribuyente aparece en las listas negras oficiales del SAT, evitando riesgos fiscales y protegiendo tu negocio. - **Lista 69:** contribuyentes con RFC cancelado o con irregularidades graves. - **Lista 69-B:** empresas que facturan operaciones simuladas (EFOS). ### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 --- ### Lista 69-B Consulta directa a la lista 69-B en la versión 1 del servicio, permitiendo verificar un RFC específico bajo demanda, ideal para revisiones puntuales. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **GET** | /taxpayers/**{rfc}** | #### 🔐Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | #### 📍Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | rfc | Requerido | RFC del contribuyente a validar | #### Ejemplo Request ``` curl --request GET --url https://services.test.sw.com.mx/taxpayers/JUFA7608212V6 --header 'Authorization: Bearer $token' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta Response Sentencia Favorable ``` { "data": { "id": "8369", "rfc": "MOTA790904G", "nombre_Contribuyente": "MORA TONIO", "situacion_del_contribuyente": "Sentencia Favorable", "numero_y_fecha_oficio_global_presuncion": "500-05-2017-32156 de fecha 18 de septiembre de 2017", "publicacion_pagina_SAT_presuntos": "18/09/2017", "publicacion_DOF_presuntos": "20/10/2017", "publicacion_pagina_SAT_desvirtuados": "", "numero_fecha_oficio_global_contribuyentes_que_desvirtuaron": "", "publicacion_DOF_desvirtuados": "", "numero_fecha_oficio_global_definitivos": "", "publicacion_pagina_SAT_definitivos": "500-05-2018-32782 de fecha 12 de diciembre de 2018", "publicacion_DOF_definitivos": "12/12/2018", "numero_fecha_oficio_global_sentencia_favorable": "500-05-2018-32782 de fecha 12 de diciembre de 2018", "publicacion_pagina_SAT_sentencia_favorable": "14/01/2019", "publicacion_DOF_sentencia_favorable": "500-05-2020-13643 de fecha 04 de junio de 2020" }, "status": "success" } ``` Response Desvirtuado ``` { "data": { "id": "2", "rfc": "AAA0910148", "nombre_Contribuyente": " SUSTENTABLE, S.C.", "situacion_del_contribuyente": "Desvirtuado", "numero_y_fecha_oficio_global_presuncion": "500-05-2016-38728 de fecha 16 de diciembre de 2016", "publicacion_pagina_SAT_presuntos": "01/01/2017", "publicacion_DOF_presuntos": "19/01/2017", "publicacion_pagina_SAT_desvirtuados": "500-05-2017-38533 de fecha 13 de octubre de 2017", "numero_fecha_oficio_global_contribuyentes_que_desvirtuaron": "13/10/2017", "publicacion_DOF_desvirtuados": "500-05-2017-38533 de fecha 13 de octubre de 2017", "numero_fecha_oficio_global_definitivos": "02/11/2017", "publicacion_pagina_SAT_definitivos": "", "publicacion_DOF_definitivos": "", "numero_fecha_oficio_global_sentencia_favorable": "", "publicacion_pagina_SAT_sentencia_favorable": "", "publicacion_DOF_sentencia_favorable": "" }, "status": "success" } ``` Response Definitivo ``` { "data": { "id": "4", "rfc": "AAA1207308", "nombre_Contribuyente": "AGRICOLAS, S. DE R.L. DE C.V.", "situacion_del_contribuyente": "Definitivo", "numero_y_fecha_oficio_global_presuncion": "500-05-2016-38728 de fecha 16 de diciembre de 2016", "publicacion_pagina_SAT_presuntos": "01/01/2017", "publicacion_DOF_presuntos": "19/01/2017", "publicacion_pagina_SAT_desvirtuados": "", "numero_fecha_oficio_global_contribuyentes_que_desvirtuaron": "", "publicacion_DOF_desvirtuados": "", "numero_fecha_oficio_global_definitivos": "", "publicacion_pagina_SAT_definitivos": "500-05-2018-14172 de fecha 25 de mayo de 2018", "publicacion_DOF_definitivos": "25/05/2018", "numero_fecha_oficio_global_sentencia_favorable": "500-05-2018-14172 de fecha 25 de mayo de 2018", "publicacion_pagina_SAT_sentencia_favorable": "28/06/2018", "publicacion_DOF_sentencia_favorable": "" }, "status": "success" } ``` Response Presunto ``` { "data": { "id": "107", "rfc": "AAMR7312046", "nombre_Contribuyente": "ROCIO", "situacion_del_contribuyente": "Presunto", "numero_y_fecha_oficio_global_presuncion": "500-05-2018-32765 de fecha 4 de diciembre de 2018", "publicacion_pagina_SAT_presuntos": "04/12/2018", "publicacion_DOF_presuntos": "18/01/2019", "publicacion_pagina_SAT_desvirtuados": "", "numero_fecha_oficio_global_contribuyentes_que_desvirtuaron": "", "publicacion_DOF_desvirtuados": "", "numero_fecha_oficio_global_definitivos": "", "publicacion_pagina_SAT_definitivos": "", "publicacion_DOF_definitivos": "", "numero_fecha_oficio_global_sentencia_favorable": "", "publicacion_pagina_SAT_sentencia_favorable": "", "publicacion_DOF_sentencia_favorable": "" }, "status": "success" } ``` **💡Nota Importante:** En caso de que el RFC que se desea consultar no figure en la lista, se generará un mensaje de error: “CS1002 – La consulta no arrojo resultados.” indicando que el contribuyente no se encuentra registrado en el sistema de EFOS. Response Error ``` { "message": "CS1002 - La consulta no arrojo resultados.", "messageDetail": null, "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto de datos referente al RFC consultado cuando es exitoso. Ver tabla siguiente para ver estatus de **situación de contribuyente**. | | status | String | “success” o “error” | **La propiedad situacion\_del\_contribuyente obtenida en la respuesta puede tener los siguientes 4 estatus**. | Estatus | Descripción | | --- | --- | | Definitivo | Contribuyente que aportó evidencias insuficientes o en su caso las omitió, confirmando la inexistencia de las operaciones. | | Presunto | Contribuyente recién publicado, está pendiente de presentar evidencias para desvirtuarse. | | Desvirtuado | Contribuyente que aportó evidencias suficientes para demostrar la existencia de las operaciones. | | Sentencia Favorable | Contribuyente que presentó un medio de defensa ante la presunción de operaciones inexistentes. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-c7fdfbb4-ed2b-4173-abf2-a99d03c260d0) --- ### Lista 69 y Lista 69-B La versión 2 del servicio te ofrece dos ventajas clave: búsqueda simultánea en listas 69 y 69-B, y la posibilidad de consultar hasta 100 RFCs en una sola solicitud. #### 🔗Endpoint | Método | Ruta | | --- | --- | | **GET** | /taxpayers/v2/**{rfc1,rfc2,…,rfc100}** | #### 🔐Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | #### 📍Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | rfcs | Requerido | RFCs de contribuyentes a validar, separados por “,” entre sí | #### Ejemplo Request ``` curl --request GET --url https://services.test.sw.com.mx/taxpayers/v2/ZIT150707U64,ZEHD630424369 --header 'Authorization: Bearer $token' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta Response Sentencia Favorable ``` { "data": [ { "rfcConsulta": "MEX110606KY6", "listado69B": { "no": 8657, "rfc": "MEX110606KY6", "nombreDelContribuyente": "MEXFRUTVELEG, S.A. DE C.V.", "situacionDelContribuyente": "Sentencia Favorable", "numeroFechaOficioGlobalPresuncionSat": "500-05-2016-21479 de fecha 01 de julio de 2016", "publicacionPaginaSatPresuntos": "01/07/2016", "numeroFechaOficioGlobalPresuncionDof": "500-05-2016-21479 de fecha 01 de julio de 2016", "publicacionDofPresuntos": "04/08/2016", "numeroFechaOficioGlobalDesvirtuaronSat": "", "publicacionPaginaSatDesvirtuados": "", "numeroFechaOficioGlobalDesvirtuaronDof": "", "publicacionDofDesvirtuados": "", "numeroFechaOficioGlobalDefinitivosSat": "500-05-2017-2494 de fecha 16 de febrero de 2017", "publicacionPaginaSatDefinitivos": "16/02/2017", "numeroFechaOficioGlobalDefinitivosDof": "500-05-2017-2494 de fecha 16 de febrero de 2017", "publicacionDofDefinitivos": "02/03/2017", "numeroFechaOficioGlobalSentenciaFavorableSat": "500-05-2019-27922 de fecha 08 de octubre de 2019", "publicacionPaginaSatSentenciaFavorable": "08/10/2019", "numeroFechaOficioGlobalSentenciaFavorableDof": "500-05-2019-27922 de fecha 08 de octubre de 2019", "publicacionDofSentenciaFavorable": "24/10/2019" }, "listado69": { "cancelados": null, "canceladosArticulo146A": null, "reduccionMultas": null, "condonados": null, "condonados2007A2015": null, "condonadosDeConcursoMercantil": null, "condonadosPorDecreto": null, "reduccionCargos21": null, "retornoInversiones": null, "exigibles": null, "firmes": null, "noLocalizados": null, "sentencias": null } } ], "status": "success" } ``` Response Desvirtuado ``` { "data": [ { "rfcConsulta": "ZIT150707U64", "listado69B": { "no": 13426, "rfc": "ZIT150707U64", "nombreDelContribuyente": "ZAFIRO INDUSTRIAL TDM, S.A. DE C.V. ", "situacionDelContribuyente": "Desvirtuado", "numeroFechaOficioGlobalPresuncionSat": "500-05-2018-29883 de fecha 6 de noviembre de 2018", "publicacionPaginaSatPresuntos": "06/11/2018", "numeroFechaOficioGlobalPresuncionDof": "500-05-2018-29883 de fecha 6 de noviembre de 2018", "publicacionDofPresuntos": "03/12/2018", "numeroFechaOficioGlobalDesvirtuaronSat": "500-05-2019-18202 de fecha 27 de junio de 2019", "publicacionPaginaSatDesvirtuados": "27/06/2019", "numeroFechaOficioGlobalDesvirtuaronDof": "500-05-2019-18202 de fecha 27 de junio de 2019", "publicacionDofDesvirtuados": "07/08/2019", "numeroFechaOficioGlobalDefinitivosSat": "", "publicacionPaginaSatDefinitivos": "", "numeroFechaOficioGlobalDefinitivosDof": "", "publicacionDofDefinitivos": "", "numeroFechaOficioGlobalSentenciaFavorableSat": "", "publicacionPaginaSatSentenciaFavorable": "", "numeroFechaOficioGlobalSentenciaFavorableDof": "", "publicacionDofSentenciaFavorable": "" }, "listado69": { "cancelados": null, "canceladosArticulo146A": null, "reduccionMultas": null, "condonados": null, "condonados2007A2015": null, "condonadosDeConcursoMercantil": null, "condonadosPorDecreto": null, "reduccionCargos21": null, "retornoInversiones": null, "exigibles": null, "firmes": null, "noLocalizados": null, "sentencias": null } } ], "status": "success" } ``` Response Definitivo ``` { "data": [ { "rfcConsulta": "SMO1102218X7", "listado69B": { "no": 12000, "rfc": "SMO1102218X7", "nombreDelContribuyente": "SURTIDORA DE MEDICAMENTOS Y ORTOPEDIA PUMA, S.A. DE C.V.", "situacionDelContribuyente": "Definitivo", "numeroFechaOficioGlobalPresuncionSat": "500-05-2018-20880 de fecha 02 de agosto de 2018", "publicacionPaginaSatPresuntos": "02/08/2018", "numeroFechaOficioGlobalPresuncionDof": "500-05-2018-20880 de fecha 02 de agosto de 2018", "publicacionDofPresuntos": "27/08/2018", "numeroFechaOficioGlobalDesvirtuaronSat": "", "publicacionPaginaSatDesvirtuados": "", "numeroFechaOficioGlobalDesvirtuaronDof": "", "publicacionDofDesvirtuados": "", "numeroFechaOficioGlobalDefinitivosSat": "500-05-2019-7288 de fecha 15 de febrero de 2019", "publicacionPaginaSatDefinitivos": "15/02/2019", "numeroFechaOficioGlobalDefinitivosDof": "500-05-2019-7288 de fecha 15 de febrero de 2019", "publicacionDofDefinitivos": "28/03/2019", "numeroFechaOficioGlobalSentenciaFavorableSat": "", "publicacionPaginaSatSentenciaFavorable": "", "numeroFechaOficioGlobalSentenciaFavorableDof": "", "publicacionDofSentenciaFavorable": "" }, "listado69": { "cancelados": null, "canceladosArticulo146A": null, "reduccionMultas": null, "condonados": null, "condonados2007A2015": null, "condonadosDeConcursoMercantil": null, "condonadosPorDecreto": null, "reduccionCargos21": null, "retornoInversiones": null, "exigibles": null, "firmes": null, "noLocalizados": null, "sentencias": null } } ], "status": "success" } ``` Response Presunto ``` { "data": [ { "rfcConsulta": "COC140804C80", "listado69B": { "no": 3349, "rfc": "COC140804C80", "nombreDelContribuyente": "CLOVEN ORGANIZACIÓN COMERCIAL, S.A. DE C.V.", "situacionDelContribuyente": "Presunto", "numeroFechaOficioGlobalPresuncionSat": "500-05-2019-27980 de fecha 1 de octubre de 2019", "publicacionPaginaSatPresuntos": "01/10/2019", "numeroFechaOficioGlobalPresuncionDof": "500-05-2019-27980 de fecha 1 de octubre de 2019", "publicacionDofPresuntos": "18/10/2019", "numeroFechaOficioGlobalDesvirtuaronSat": "", "publicacionPaginaSatDesvirtuados": "", "numeroFechaOficioGlobalDesvirtuaronDof": "", "publicacionDofDesvirtuados": "", "numeroFechaOficioGlobalDefinitivosSat": "", "publicacionPaginaSatDefinitivos": "", "numeroFechaOficioGlobalDefinitivosDof": "", "publicacionDofDefinitivos": "", "numeroFechaOficioGlobalSentenciaFavorableSat": "", "publicacionPaginaSatSentenciaFavorable": "", "numeroFechaOficioGlobalSentenciaFavorableDof": "", "publicacionDofSentenciaFavorable": "" }, "listado69": { "cancelados": null, "canceladosArticulo146A": null, "reduccionMultas": null, "condonados": null, "condonados2007A2015": null, "condonadosDeConcursoMercantil": null, "condonadosPorDecreto": null, "reduccionCargos21": null, "retornoInversiones": null, "exigibles": null, "firmes": null, "noLocalizados": null, "sentencias": null } } ], "status": "success" } ``` **💡Nota Importante:** En caso de que el RFC que se desea consultar no figure en la lista, se generará un mensaje de error: “CS1002 – La consulta no arrojo resultados.” indicando que el contribuyente no se encuentra registrado en el sistema de EFOS. Response Error ``` { "message": "Error en la consulta.", "messageDetail": "CS1002 - La consulta no arrojo resultados.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | array/null | Array de datos referente al RFC consultado cuando es exitoso. Ver tabla siguiente para ver estatus de **situación de contribuyente**. | | status | String | “success” o “error” | **La propiedad situacion\_del\_contribuyente obtenida en la respuesta puede tener los siguientes 4 estatus**. | Estatus | Descripción | | --- | --- | | Definitivo | Contribuyente que aportó evidencias insuficientes o en su caso las omitió, confirmando la inexistencia de las operaciones. | | Presunto | Contribuyente recién publicado, está pendiente de presentar evidencias para desvirtuarse. | | Desvirtuado | Contribuyente que aportó evidencias suficientes para demostrar la existencia de las operaciones. | | Sentencia Favorable | Contribuyente que presentó un medio de defensa ante la presunción de operaciones inexistentes. | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-ced9f48b-ddbb-4761-a822-e6ae9fa6d132) --- --- # Ejemplos CFDI 4.0, Retenciones y Complementos Fuente: https://developers.sw.com.mx/knowledge-base/ejemplos-cfdi-4-0-retenciones-y-complementos/ Categoria: Sin categoría Todos Frecuentes Transporte de Mercancía Sector Combustibles Vehiculos Otro [📄 CFDI 4.0 Frecuentes](https://developers.sw.com.mx/knowledge-base/ejemplos-4-0/) [🧾 Retenciones 2.0 Frecuentes](https://developers.sw.com.mx/knowledge-base/cfdi40-retenciones-2-0/) [🗒️ Leyendas Fiscales Frecuentes](https://developers.sw.com.mx/knowledge-base/leyendas-fiscales-2/) [➕ Estructura Addenda 4.0 Frecuentes](https://developers.sw.com.mx/knowledge-base/estructura-addenda-4-0/) [💵 Pagos 2.0 Revisión B Frecuentes](https://developers.sw.com.mx/knowledge-base/pagos-2-0-revision-b/) [🚚 Carta Porte 3.1 Transporte de Mercancía](https://developers.sw.com.mx/knowledge-base/carta-porte-3-1-cfdi-4-0/) [👥 Nómina 1.2 Rev. E Frecuentes](https://developers.sw.com.mx/knowledge-base/nomina-1-2/) [🌎 Comercio Exterior 2.0 Transporte de Mercancía](https://developers.sw.com.mx/knowledge-base/comercio-exterior-2-0/) [🏦 Donatarias Sector](https://developers.sw.com.mx/knowledge-base/donatarias/) [🛒 Detallista Sector](https://developers.sw.com.mx/knowledge-base/detallista-2/) [🏳️ INE 1.1 Sector](https://developers.sw.com.mx/knowledge-base/ine-1-1/) [🎓 Instituciones Educativas Privadas 1.0 Sector](https://developers.sw.com.mx/knowledge-base/cfdi40-instituciones-educativas-privadas10/) [🏛️ Impuestos Locales 1.0 Sector](https://developers.sw.com.mx/knowledge-base/cfdi40-impuestos-locales-10/) [🛢️ Hidrocarburos y petrolíferos 1.0 Combustibles](https://developers.sw.com.mx/knowledge-base/hidrocarburos-y-petroliferos-1-0-2/) [⛽ Consumo de Combustibles 1.1 Combustibles](https://developers.sw.com.mx/knowledge-base/consumo-de-combustibles-1-1/) [📊 Estado de Cuenta Combustibles 1.2 Combustibles](https://developers.sw.com.mx/knowledge-base/cfdi40-estado-de-cuenta-combustibles-12/) [💰 Gastos Hidrocarburos 1.0 Combustibles](https://developers.sw.com.mx/knowledge-base/gastos-hidrocarburos-1-0/) [🚐 Persona Física Integrante de Coordinados 1.0 Vehiculos](https://developers.sw.com.mx/knowledge-base/persona-fisica-integrante-de-coordinados-1-0/) [♻️ Certificado de Destrucción 1.0 Vehiculos](https://developers.sw.com.mx/knowledge-base/cfdi40-certificado-de-destruccion-10/) [🔄 Renovación y Sustitución de Vehículos 1.0 Vehiculos](https://developers.sw.com.mx/knowledge-base/cfdi40-renovacion-y-sustitucion-de-vehiculos/) [🚗 Vehículo Usado Vehiculos](https://developers.sw.com.mx/knowledge-base/vehiculo-usado/) [🚙 Venta de Vehículos 1.1 Vehiculos](https://developers.sw.com.mx/knowledge-base/venta-de-vehiculos-1-1/) [🖋️ Notarios Públicos 1.0 Otro](https://developers.sw.com.mx/knowledge-base/notarios-publicos-1-0/) [🏗️ Parciales Construcción 1.0 Otro](https://developers.sw.com.mx/knowledge-base/cfdi40-parciales-construccion10/) [💱 Divisas 1.0 Otro](https://developers.sw.com.mx/knowledge-base/divisas-1-0/) [✈️ Aerolíneas 1.0 Otro](https://developers.sw.com.mx/knowledge-base/aerolineas-1-0/) [🛂 Turista Pasajero Extranjero 1.0 Otro](https://developers.sw.com.mx/knowledge-base/cfdi40-turista-pasajero-extranjero-10/) [🎨 Obras de Artes Plásticas y Antigüedades 1.0 Otro](https://developers.sw.com.mx/knowledge-base/cfdi40-obras-de-artes-10/) [🎁 Pago en Especie 1.0 Otro](https://developers.sw.com.mx/knowledge-base/pago-en-especie-1-0/) [🛍️ Vales de Despensa 1.0 Otro](https://developers.sw.com.mx/knowledge-base/vales-de-despensa-1-0/) Sin resultados. Prueba con otro termino. --- # Políticas de Seguridad de la Información Fuente: https://developers.sw.com.mx/knowledge-base/politicas-de-seguridad-de-la-informacion-2/ Categoria: Sin categoría Este contenido está protegido por contraseña. Para verlo introduce tu contraseña a continuación: Contraseña: --- # Servicio Estatus SW smarter® Fuente: https://developers.sw.com.mx/knowledge-base/servicio-statuspage/ Categoria: Sin categoría Este contenido está protegido por contraseña. Para verlo introduce tu contraseña a continuación: Contraseña: --- # Smarter Learning Fuente: https://developers.sw.com.mx/knowledge-base/smarter-learning/ Categoria: Sin categoría ![Banner](https://developers.sw.com.mx/wp-content/uploads/2025/03/banner_talleres.png) ## Categorías [![Category 1](https://developers.sw.com.mx/wp-content/uploads/2025/03/tipsdevs_img.png) ### TipsDevs Video capsulas técnicas especiales para Developres que explican soluciones a códigos de error o de algún tema relevante en la construcción del CFDI.](https://developers.sw.com.mx/knowledge-base/tipsdevs/) [![Category 2](https://developers.sw.com.mx/wp-content/uploads/2025/03/talleres_img.png) ### Talleres De manera estructurada y guiado por nuestros Ingenieros de Servicio iras aprendiendo modulo a modulo las bases conceptuales y técnicas del CFDI, hasta llegar a las implementarlas utilizando nuestras herramientas y servicios.](https://developers.sw.com.mx/knowledge-base/taller-sw/) [![Category 3](https://developers.sw.com.mx/wp-content/uploads/2025/03/webinar_img.png) ### Webinar En SW® realizamos Seminarios web con invitados y temas precisos altamente importantes en materia de: Cambios importantes del CFDI, Impactos fiscales, y más…](https://www.youtube.com/playlist?list=PLfJXKUQLHBqrtjyyyuebqDvShIlFosCXa) [![Category 4](https://developers.sw.com.mx/wp-content/uploads/2025/03/tutoriales_img.png) ### Tutoriales Para facilitarte la interacción con nuestras herramientas, creamos videos tutoriales que te ayudarán en tus procesos de timbrado.](https://www.youtube.com/playlist?list=PLfJXKUQLHBqrzk7GruUJwOa7zNfju1QeI) ## Destacados --- # Talleres SW® Fuente: https://developers.sw.com.mx/knowledge-base/talleres-sw/ Categoria: Sin categoría # Bienvenidos al **Taller SW®** Es un gusto poder compartir contigo todo nuestro conocimiento, estamos seguros de que este contenido será de gran valor para TI, nuestros Ingenieros de Servicio te guiaran modulo por modulo estratégicamente construidos para que puedas obtener la información conceptual y técnica que necesitas del mundo CFDI. Gracias por brindarnos tu tiempo, no dudes que será muy bien aprovechado. **En SW® transformamos la información en conocimiento.** # Taller de Cancelaciones Este taller esta especialmente diseñado para TI que quieres conocer a detalle como funcionan las cancelaciones del CFDI, desde la parte conceptual, hasta la construcción e implementación técnica, si eres un Developer o solo gustas de adquirir información de interés, este contenido te será de gran utilidad. [![Workshop 1](https://developers.sw.com.mx/wp-content/uploads/2025/03/Cancelaciones_Modulo-1.png) ## Módulo 1: Modelo Actual de Cancelaciones Impartidor: Ingenieros de Soporte SW® En este módulo te aprenderás el origen, concepto y funcionamiento básico de las cancelaciones, así como los diversos contextos que influyen en el proceso. Ingresar](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=1) [![Workshop 1](https://developers.sw.com.mx/wp-content/uploads/2025/03/Cancelaciones_Modulo-2.png) ## Módulo 2: Implementación del proceso de cancelación (Desmostración técnica) Impartidor: Ingenieros de Soporte SW® En este módulo te enseñamos cómo es el proceso técnico de implementación, aprenderás cuales son los principales puntos para verificar, y ejecutar adecuadamente el modelo de cancelación. Ingresar](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=2) [![Workshop 1](https://developers.sw.com.mx/wp-content/uploads/2025/03/Cancelaciones_Modulo-3.png) ## Módulo 3: Construcción técnica y uso de API´S Impartidor: Ingenieros de Soporte SW® En este modulo aprenderás a utilizar las API´S necesarias para el proceso de cancelación, así como la implementación de los servicios necesarios para la correcta ejecución. Ingresar](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=3) --- # Timbrado ZIP Fuente: https://developers.sw.com.mx/knowledge-base/timbrado-zip/ Categoria: Sin categoría Servicio de timbrado que recibe un XML en formato .zip debido al tamaño del documento, el servicio únicamente devuelve la [versión 1(v1)](https://developers.sw.com.mx/knowledge-base/versiones-de-respuesta-timbrado/) de repuesta. El servicio recibe un XML con un rango de entre 10,000 y 180,000 nodos concepto, y un tamaño máximo de 76 MB **(en productivo)**. **💡 Notas Importantes** - **Peso máximo del XML antes de comprimir:** Productivo 76 MB | Pruebas 40 MB - **Numero de Conceptos:** Productivo 180k | Pruebas 100k - **Rate limit:** Pruebas 1 req/min | Productivo 10 req/min (recomendado 5) - El servicio puede demorar **hasta 2:30 min** en entregar respuesta, por lo que recomendamos configurar un timeout de al menos 5 min ### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 ℹ️ Para realizar pruebas en volumen o con archivos de mayor peso, contacte a **soporte@sw.com.mx** o a su ejecutivo de cuenta para coordinar el soporte necesario y ajuste a la infraestructura. --- ### Emisión Timbrado Servicio que realiza el sellado y timbrado de un comprobante que se recibe en formato .zip 💡 Si buscas el mejor rendimiento, recomendamos utilizar el servicio de **Timbrado**. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /cfdi/issue/v1/zip | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticar-rapido/) | | Content-Type | multipart/form-data | #### 🧾 Parámetros Form | Propiedad | Uso | Descripción | | --- | --- | --- | | xml | Requerido | XML del comprobante a timbrar en formato .zip | #### Ejemplo Request ``` curl --location 'https://services.test.sw.com.mx/cfdi/issue/v1/zip' \ --header 'Authorization: Bearer Token' \ --form 'xml=@"/C:/Users/xml.zip"' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "tfd": "" }, "status": "success" } ``` ``` { "message": "El archivo es mayor al tamaño permitido, tamaño permitido 45 MB, tamaño del archivo xml 69 MB", "messageDetail": null, "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto con el TFD (TimbreFiscalDigital) cuando el timbrado es exitoso. El servicio retorna únicamente la respuesta V1. | | status | String | “success” o “error” | --- ### Timbrado Servicio que realiza el timbrado de un comprobante que se recibe en formato .zip #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /cfdi/stamp/v1/zip | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticar-rapido/) | | Content-Type | multipart/form-data | #### 🧾 Parámetros Form | Propiedad | Uso | Descripción | | --- | --- | --- | | xml | Requerido | XML del comprobante a timbrar en formato .zip | #### Ejemplo Request ``` curl --location 'https://services.test.sw.com.mx/cfdi/stamp/v1/zip' \ --header 'Authorization: Bearer Token' \ --form 'xml=@"/C:/Users/xml.zip"' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "tfd": "" }, "status": "success" } ``` ``` { "message": "CFDI40102 - El resultado de la digestión debe ser igual al resultado de la desencripción del sello.", "messageDetail": "....", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto con el TFD (TimbreFiscalDigital) cuando el timbrado es exitoso. El servicio retorna únicamente la respuesta V1. | | status | String | “success” o “error” | --- # Timbrado por Lotes — REST Fuente: https://developers.sw.com.mx/knowledge-base/timbrado-por-lotes-rest/ Categoria: Timbrado V4 # Timbrado por Lotes — REST **Timbrado por Lotes** es un servicio **BATCH** que realiza el timbrado masivo de comprobantes previamente sellados [CFDI 4.0](https://developers.sw.com.mx/article-categories/ejemplos-4-0/) en formato XML, comprimidos dentro de un archivo `.zip`. El procesamiento es **asíncrono**, aceptar el lote responde en milisegundos y devuelve un `batchId`, el timbrado corre después. En ambiente de pruebas se pueden usar certificados reales, pero recomendamos hacer uso de los [CSD de pruebas](https://developers.sw.com.mx/knowledge-base/donde-encuentro-csd-de-pruebas-vigentes/). ### ✅ Antes de empezar **💡 Nota:** Tras un periodo de inactividad, el primer lote puede demorar de **1–3 minutos** en iniciar. **💡 Nota:** Para utilizar este servicio, tu cuenta debe estar configurada previamente, escríbenos a **soporte@sw.com.mx** para apoyarte, ten en cuenta que el proceso puede demorar algo de tiempo. **🚨 Importante:** Si tu cuenta no está configurada, cualquier intento de crear un lote responde `409 SETTING_MISSING`. ### 🌐 Ambientes Marca tu ambiente activo — los botones de copiar ruta de cada endpoint arman la URL completa con la base que elijas aquí. 🛠️ Pruebas: `https://batchstamp-smarter-rest.test.swsapien.com/v2/batchstamp` 📄 🚀 Productivo: `https://batchstamp-smarter-rest.swsapien.com/v2/batchstamp` 📄 📑 Índice de la referencia ▼ 📖 Documentación 🔄 Flujo timbrado por Lotes 1 Crear lote 2 Subir ZIP 3 Finalizar lote 4 Consultar estado 5 Descargar resultados 🧭 Catálogo de errores 📏 Reglas y límites ### 🔄 Flujo timbrado por Lotes 1. `POST /batches` → **201** Crea el lote. Devuelve `batchId` + `uploadUrl` presignado. 2. `PUT ` (cuerpo = ZIP) → **200** Sube el ZIP en binario directo a S3 con la URL presignada. 3. `POST /batches/{batchId}/finalize` → **200** Valida el ZIP, pasa el lote a Recibido y dispara el procesamiento. 4. `GET /batches/{batchId}` → poll Consulta el estatus del lote hasta llegar a Completado. 5. `GET /batches/{batchId}/downloads` → **200** URLs de reportes, XML timbrados y PDFs (si aplica). Si tienes configurado un webhoook, recibirás esta informacición en tu endpoint. ### 1️⃣ Crear lote POST `/batches` 📄 | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | | `Content-Type` | `application/json` | #### Ejemplo request ``` curl --location --request POST 'https://batchstamp-smarter-rest.test.swsapien.com/v2/batchstamp/batches' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer Token' \ --data '{ "reportConfig": { "variant": "both", "format": "XLSX" }, "pdf": { "generate": true, "templateId": "cfdi40" } }' ``` #### Respuesta ✅ Éxito (201) ❌ Error 📋 Atributos ``` { "batchId": "86d096d2-c5f8-4e42-90b4-fa617bdcd2b1", "uploadUrl": "https://smarter-batch-stamp-test.s3.us-east-1.amazonaws.com/batches/2fb21d29-1716-4d6b-b01c-3d6c242b8eaf/86d096d2-c5f8-4e42-90b4-fa617bdcd2b1/input.zip?...hm=CRC32&x-amz-tagging=lifecycle%3Dpending-upload&x-id=PutObject", "uploadMethod": "PUT", "uploadHeaders": { "Content-Type": "application/zip" }, "expiresAt": "2026-07-14T16:15:53.358Z" } ``` ``` { "success": false, "error": { "issues": [ { "received": "XLSXX", "code": "invalid_enum_value", "options": [ "CSV", "XLSX" ], "path": [ "reportConfig", "format" ], "message": "Invalid enum value. Expected 'CSV' | 'XLSX', received 'XLSXX'" } ], "name": "ZodError" } } ``` | Atributo | Descripción | | --- | --- | | `batchId` | Identificador del lote. Se usa en los pasos 3, 4 y 5. | | `uploadUrl` | URL presignada (S3, PUT). Vigente **15 minutos**. | | `uploadMethod` | Método HTTP a utilizar al subir el ZIP. | | `uploadHeaders` | Headers que deben utilizarse al subir el ZIP (van firmados en la URL). | | `expiresAt` | Momento en que expira `uploadUrl` (ISO 8601). | #### ⚙️ Opciones avanzadas del cuerpo (opcionales) Ambas van dentro del mismo `POST /batches`. **📄 reportConfig** | Propiedad | Tipo | Valores | Default | | --- | --- | --- | --- | | `variant` | string | `errors` · `complete` · `both` | `both` | | `format` | string | `CSV` · `XLSX` | `XLSX` | **🖨️ pdf** | Propiedad | Tipo | Descripción | | --- | --- | --- | | `generate` | bool | Default `false`. Genera PDF de cada documento del lote. | | `templateId` | string | Opcional. Si se omite, el sistema detecta la plantilla por tipo de documento (nómina, pagos, carta porte, etc.). Si se envía, esa plantilla se aplica a **todos** los documentos del lote. | **💡 Recomendación:** omite `templateId` salvo que todos los documentos del lote sean del mismo tipo. [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/a8au0fr/crear-lote "https://www.postman.com/development-swsapien/sw-api-developers/request/a8au0fr/crear-lote") ### 2️⃣ Subir el ZIP PUT `` **💡 Nota:** Sin autenticación adicional — la URL ya está firmada. Envía exactamente los `uploadHeaders` devueltos al crear el lote. **🚨 Importante:** `uploadUrl` expira a los **15 minutos** de creado el lote. Si expira, hay que crear el lote de nuevo (paso 1). #### Ejemplo request ``` curl --location --request PUT '' \ --header 'Content-Type: application/zip' \ --data-binary '@batch.zip' ``` Respuesta: **200** (directo de S3, sin cuerpo relevante). #### Respuesta ✅ Éxito (200) ``` Estatus 200 (directo de S3, sin cuerpo relevante). ``` [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/1gu7sgb/subir-zip "https://www.postman.com/development-swsapien/sw-api-developers/request/1gu7sgb/subir-zip") ### 3️⃣ Finalizar lote POST `/batches/{batchId}/finalize` 📄 | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | Valida el ZIP (solo `.xml`, planos en la raíz, sin subcarpetas), pasa el lote a Recibido y dispara el procesamiento. #### Ejemplo request ``` curl --location --request POST 'https://batchstamp-smarter-rest.test.swsapien.com/v2/batchstamp/batches/86d096d2-c5f8-4e42-90b4-fa617bdcd2b1/finalize' \ --header 'Authorization: Bearer Token' ``` #### Respuesta ✅ Éxito (200) ❌ Error 📋 Atributos ``` { "batchId": "86d096d2-c5f8-4e42-90b4-fa617bdcd2b1", "status": "Recibido", "totalDocuments": 10, "metrics": { "processed": 0, "failed": 0, "successful": 0, "warnings": 0 }, "reportConfig": { "variant": "both", "format": "XLSX" }, "createdAt": "2026-07-14T16:16:17.613Z", "updatedAt": "2026-07-14T16:20:36.932Z", "pdf": { "generate": true, "templateId": "cfdi40" } } ``` ``` { "success": false, "error": { "issues": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "batchId" ] } ], "name": "ZodError" } } ``` | Atributo | Descripción | | --- | --- | | `batchId` | Identificador único del lote. | | `status` | Estado del lote: `Recibido`. | | `totalDocuments` | Cantidad de XML encontrados en el ZIP. | | `metrics` | Objeto con métricas del lote. | | `reportConfig` | Objeto con la configuración de reportes del lote. | | `createdAt` | Fecha de creación del lote (ISO 8601). | | `updatedAt` | Fecha de última actualización del lote (ISO 8601). | | `pdf` | Objeto con la configuración de generación de PDFs del lote (si aplica). | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/a77rzy6/finalizar-lote "https://www.postman.com/development-swsapien/sw-api-developers/request/a77rzy6/finalizar-lote") ### 4️⃣ Consultar estado GET `/batches/{batchId}` 📄 | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | Devuelve el estado, las métricas del lote y, cuando llega a Completado, información sobre el envío de notificaciones (correo y/o webhook). #### Estados posibles | Estado | Significado | | --- | --- | | Recibido | Lote finalizado, en cola para procesarse. | | EnProceso | Timbrando documentos. Puede incluir el arranque en frío (ver nota al inicio del artículo). | | Completado | El lote **siempre** termina aquí, incluso con documentos fallidos. Ver Reglas y límites. | | FalloCritico | Falla de plataforma, no de los datos del cliente. Debe escalarse a soporte. | #### Ejemplo request ``` curl --location --request GET 'https://batchstamp-smarter-rest.test.swsapien.com/v2/batchstamp/batches/86d096d2-c5f8-4e42-90b4-fa617bdcd2b1' \ --header 'Authorization: Bearer Token' ``` #### Respuesta ✅ Éxito (200) ❌ Error 📋 Atributos ``` { "batchId": "86d096d2-c5f8-4e42-90b4-fa617bdcd2b1", "status": "Completado", "totalDocuments": 10, "metrics": { "failed": 10, "processed": 10, "successful": 0, "warnings": 0 }, "reportConfig": { "variant": "both", "format": "XLSX" }, "createdAt": "2026-07-14T16:16:17.613Z", "updatedAt": "2026-07-14T16:21:11.385Z", "pdf": { "generate": true, "templateId": "cfdi40" }, "notifications": { "email": { "lastAttemptedAt": "2026-07-14T16:21:10.132Z", "state": "Enviado" }, "webhook": { "attemptCount": 1, "lastAttemptedAt": "2026-07-14T16:21:11.385Z", "state": "Pendiente" } } } ``` Cuando `status` es `Completado`, la respuesta también incluye información del envío de notificaciones (correo y, si la cuenta tiene webhook, del intento de entrega). ``` { "success": false, "error": { "issues": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "batchId" ] } ], "name": "ZodError" } } ``` | Atributo | Descripción | | --- | --- | | `batchId` | Identificador único del lote. | | `status` | Estado del lote: `Completado`. | | `totalDocuments` | Cantidad de XML procesados en el ZIP. | | `metrics` | Objeto con métricas del lote. | | `reportConfig` | Objeto con la configuración de reportes del lote. | | `createdAt` | Fecha de creación del lote (ISO 8601). | | `updatedAt` | Fecha de última actualización del lote (ISO 8601). | | `pdf` | Objeto con la configuración de generación de PDFs del lote (si aplica). | | `notifications` | Objeto con información de los intentos de envío de notificaciones (correo y/o webhook). | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/n0rv9cv/consultar-estado "https://www.postman.com/development-swsapien/sw-api-developers/request/n0rv9cv/consultar-estado") ### 5️⃣ Descargar resultados GET `/batches/{batchId}/downloads` 📄 | Header | Valor | | --- | --- | | `Authorization` | `Bearer Token` | **💡 Nota:** Solo disponible cuando el lote está Completado. Las URLs tienen una vigencia de**7 días**. #### Ejemplo request ``` curl --location --request GET 'https://batchstamp-smarter-rest.test.swsapien.com/v2/batchstamp/batches/86d096d2-c5f8-4e42-90b4-fa617bdcd2b1/downloads' \ --header 'Authorization: Bearer Token' ``` #### Respuesta ✅ Éxito (200) ❌ Error 📋 Atributos ``` { "batchId": "86d096d2-c5f8-4e42-90b4-fa617bdcd2b1", "status": "Completado", "artifacts": { "reports": [ { "kind": "errors", "format": "XLSX", "url": "https://smarter-batch-stamp-test.s3.us-east-1.amazonaws.com/batches/e8750a58-90cc-4f47-a75f-b6dc01cbadae/86d096d2-c5f8-4e42-90b4-fa617bdcd2b1/artifacts/report-errors.xlsx?X...amz-checksum-mode=ENABLED&x-id=GetObject", "expiresAt": "2026-07-21T16:27:42.099Z" }, { "kind": "complete", "format": "XLSX", "url": "https://smarter-batch-stamp-test.s3.us-east-1.amazonaws.com/batches/e8750a58-90cc-4f47-a75f-b6dc01cbadae/86d096d2-c5f8-4e42-90b4-fa617bdcd2b1/artifacts/report-complete.xlsx?X...amz-checksum-mode=ENABLED&x-id=GetObject", "expiresAt": "2026-07-21T16:27:42.100Z" } ], "stampedXmls": { "url": "https://smarter-batch-stamp-test.s3.us-east-1.amazonaws.com/batches/e8750a58-90cc-4f47-a75f-b6dc01cbadae/86d096d2-c5f8-4e42-90b4-fa617bdcd2b1/artifacts/stamped-xmls.zip?X...amz-checksum-mode=ENABLED&x-id=GetObject", "expiresAt": "2026-07-21T16:27:42.101Z" }, "pdfs": { "url": "https://smarter-batch-stamp-test.s3.us-east-1.amazonaws.com/batches/e8750a58-90cc-4f47-a75f-b6dc01cbadae/86d096d2-c5f8-4e42-90b4-fa617bdcd2b1/artifacts/pdfs.zip?X...amz-checksum-mode=ENABLED&x-id=GetObject", "expiresAt": "2026-07-21T16:27:42.111Z" } } } ``` ``` { "success": false, "error": { "issues": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "batchId" ] } ], "name": "ZodError" } } ``` | Atributo | Descripción | | --- | --- | | `batchId` | Identificador único del lote. | | `status` | Estado del lote: `Completado`. | | `artifacts` | Objeto con URLs de reportes, reportes, XML timbrados y PDFs (si aplica). | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/mtyr7d8/descargar-resultados "https://www.postman.com/development-swsapien/sw-api-developers/request/mtyr7d8/descargar-resultados") ### 🧭 Catálogo de errores #### Errores de API (HTTP) | HTTP | code | Significado | | --- | --- | --- | | 401 | `UNAUTHENTICATED` | Falta el header `Authorization: Bearer`. | | 401 | `INVALID_TOKEN` | SW rechazó el token de la petición. | | 402 | `NO_BALANCE` | La cuenta no tiene saldo de timbres disponible. | | 404 | `BATCH_NOT_FOUND` | El lote no existe o es de otra cuenta. | | 409 | `SETTING_MISSING` | Se intentó crear un lote sin que la cuenta tenga alta previa. | | 409 | `BATCH_NOT_READY` | Se pidieron las descargas antes de llegar a `Completado`. | | 400 | `INVALID_BATCH` | ZIP inválido al finalizar (subcarpetas o archivos no `.xml`). El lote se borra. | | 422 | `UPLOAD_NOT_COMPLETED` | `finalize` llamado sin haber subido el ZIP. | | 422 | `INVALID_SW_TOKEN` | El token guardado en la configuración de la cuenta ya no valida. | | 503 | `POST_PROCESS_FAILED` | El lote quedó en FalloCritico. | #### Errores por documento (columna `MensajeError` del reporte) | Código | Tipo | Significado | | --- | --- | --- | | `ACCOUNT_TOKEN_EXPIRED` | Error | El token venció a medio lote. | | `PARSE_ERROR` | Error | El XML no se pudo interpretar. | | `CFDIXXXXX` y otros | Error | Código devuelto directamente por el PAC. | | `UNKNOWN` | Error | Sin clasificar. | | `TIMBRE_PREVIO` | Advertencia | El CFDI ya estaba timbrado. Cuenta como **exitoso con advertencia**, no como error — el sistema devuelve el timbre anterior y no descuenta doble ese documento. | PDF — columna `EstatusPdf` = `Fallido`: | Código | Significado | | --- | --- | | `PDF_TIMEOUT` | La generación del PDF tardó más de lo permitido. | | `PDF_METADATA_MISSING` | Faltan datos necesarios para generar el PDF. | | `PDF_ENQUEUE_FAILED` | No se pudo encolar la generación del PDF. | | `PDF_XML_UNAVAILABLE` | El XML timbrado no estaba disponible al generar el PDF. | | `PDF_COLLECT_ERROR` | Falló la recolección del PDF ya generado. | **💡 Nota:** Un PDF fallido **nunca** afecta el timbrado — el XML sí quedó timbrado y sí está en su ZIP. ### 📏 Reglas y límites #### El lote siempre termina en Completado Un documento fallido **no tumba el lote**. Llega a Completado con sus métricas (`processed = successful + failed`) y el detalle por documento en los reportes. FalloCritico se reserva para fallas de plataforma, no de los datos del cliente. **🚨 No reenvíes un lote a la ligera:** Reenviarlo vuelve a timbrar **todos** los documentos — consume timbres reales y puede generar CFDIs duplicados ante el SAT. Antes de reenviar, confirma el estado real con `GET /batches/{batchId}`; si ya está `Completado`, los archivos están disponibles y no hace falta reenviar. Un CFDI ya timbrado que se reenvía sale como `TIMBRE_PREVIO` (advertencia, no se descuenta doble) — el riesgo real está en los documentos que **aún no** se habían timbrado. #### Límites | Límite | Valor | | --- | --- | | Documentos por lote (certificado) | **10,000** | | Tamaño del ZIP | **500 MB** | | Vigencia de las URLs de descarga | **7 días** | | Vigencia de `uploadUrl` | **15 minutos** | | Vida del token | **2 h (expira)** | | Arranque en frío | ~1–3 min tras inactividad | Tiempos de referencia: 1,000 documentos ≈ 6–8 min · 10,000 documentos ≈ 60–70 min. #### Otras limitaciones | Restricción | Detalle | | --- | --- | | Re-solicitud de PDF | No existe individual — solo reenviando el lote completo (con la advertencia de arriba). | | Estructura del ZIP | Solo archivos `.xml` planos en la raíz, sin subcarpetas. | | Token vencido a media corrida | Marca los documentos afectados como `Fallido / ACCOUNT_TOKEN_EXPIRED`; el lote igual termina, se recomienda utilizar token infinito. | --- # Timbrado V4 - CustomID Fuente: https://developers.sw.com.mx/knowledge-base/timbradov4-customid/ Categoria: Timbrado V4 El servicio de timbrado recibe un CFDI en formato XML o JSON para su procesamiento, incluyendo [**complementos de CFDI**](https://developers.sw.com.mx/article-categories/ejemplos-4-0/), y es compatible con la versión vigente. Junto con el comprobante, se requiere un encabezado denominado **CustomID**, el cual actúa como un filtro adicional para prevenir duplicaciones en caso de fallos no controlados durante el envío. El **CustomID** es un valor definido por el usuario, con un máximo de 100 caracteres. No tiene restricciones de formato y su vigencia es de 72 horas a partir de su primer uso. ℹ️Recomendamos **colapsar los espacio en blanco** del customid a enviar. **💡Nota Importante:** 👉 Por motivos de **compatibilidad**, aunque el path de nuestros servicios indique **/cfdi33**, este mismo endpoint acepta la versión actual del CFDI. #### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 --- ### Emisión Timbrado Servicio de timbrado que sella y timbra un comprobante CFDI 4.0 en formato XML. Es requerido [cargar los certificados](https://developers.sw.com.mx/knowledge-base/api-certificados/) del emisor previamente a la cuenta de timbrado. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /**v4**/cfdi33/issue/**{version}/{format}** | **Nota:***Aunque el path dice*`/cfdi33`*, el servicio es compatible con la versión vigente del CFDI. El nombre se conserva por compatibilidad.* #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | multipart/form-data | | customid | $string | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | version | Requerido | [Versión de la respuesta](https://developers.sw.com.mx/knowledge-base/timbradov4-customid/#versiones-de-respuesta-timbrado-v4-customid) que devolverá el servicio. | | format | Opcional | (Default=b64) Parámetro para especificar si el XML esta en formato base 64. | #### 🧾 Parámetros Form | Propiedad | Uso | Descripción | | --- | --- | --- | | xml | Requerido | XML del comprobante a ser timbrado. | #### Ejemplo Request ``` curl --request POST \ --url http://services.test.sw.com.mx/v4/cfdi33/issue/v4 \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: multipart/form-data' \ --header 'customid: myCustomId' \ --form 'xml=@cfdi.xml' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "tfd": "" }, "status": "success" } ``` ``` { "message": "CFDI3307 - Timbre duplicado. El customId proporcionado está duplicado.", "messageDetail": null, "data": { "tfd": "", "cfdi": "" }, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto de datos referente al timbrado cuando es exitoso. Los parámetros varían según la versión de respuesta. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-c783b932-0e3c-4b3f-81d6-546aade3fe25) --- ### Emisión Timbrado JSON Servicio de timbrado que sella y timbra un comprobante CFDI 4.0 en formato JSON. Es requerido [cargar los certificados](https://developers.sw.com.mx/knowledge-base/api-certificados/) del emisor previamente a la cuenta de timbrado. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /**v4**/cfdi33/issue/json/**{version}** | **Nota:***Aunque el path dice*`/cfdi33`*, el servicio es compatible con la versión vigente del CFDI. El nombre se conserva por compatibilidad.* #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/jsontoxml | | customid | $string | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | version | Requerido | [Versión de la respuesta](https://developers.sw.com.mx/knowledge-base/timbradov4-customid/#versiones-de-respuesta-timbrado-v4-customid) que devolverá el servicio. | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | data | Requerido | JSON del comprobante a ser timbrado. | #### Ejemplo Request ``` curl --request POST \ --url http://services.test.sw.com.mx/v4/cfdi33/issue/json/v4 \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/jsontoxml' \ --header 'customid: myCustomId' \ --data "{\n \"Version\": \"4.0\",\n \"Serie\": \"Serie\",\n \"Folio\": \"Folio\",\n \"Fecha\": \"2022-07-27T00:02:00\",\n \"FormaPago\": 99,\n \"CondicionesDePago\": \"CondicionesDePago\",\n \"SubTotal\": 2000,\n \"Descuento\": 1,\n \"Moneda\": \"MXN\",\n \"TipoCambio\": 1,\n \"Total\": 1999.16,\n \"TipoDeComprobante\": \"I\",\n \"Exportacion\": \"01\",\n \"MetodoPago\": \"PUE\",\n \"LugarExpedicion\": \"20000\",\n \"Emisor\": {\n \"Rfc\": \"EKU9003173C9\",\n \"Nombre\": \"ESCUELA KEMPER URGATE\",\n \"RegimenFiscal\": 601\n },\n \"Receptor\": {\n \"Rfc\": \"URE180429TM6\",\n \"Nombre\": \"UNIVERSIDAD ROBOTICA ESPAÑOLA\",\n \"DomicilioFiscalReceptor\": \"65000\",\n \"RegimenFiscalReceptor\": 601,\n \"UsoCFDI\": \"S01\"\n },\n \"Conceptos\": [\n {\n \"Impuestos\": {\n \"Traslados\": [\n {\n \"Base\": 1,\n \"Impuesto\": \"002\",\n \"TipoFactor\": \"Tasa\",\n \"TasaOCuota\": 0.16,\n \"Importe\": 0.16\n }\n ]\n },\n \"ClaveProdServ\": \"01010101\",\n \"Cantidad\": 1,\n \"ClaveUnidad\": \"H87\",\n \"Unidad\": \"Servicio\",\n \"Descripcion\": \"Servicio\",\n \"ValorUnitario\": 2000,\n \"Importe\": 2000,\n \"Descuento\": 1,\n \"ObjetoImp\": \"02\",\n \"ComplementoConcepto\": {\n \"Any\": [\n {\n \"ventavehiculos:VentaVehiculos\": {\n \"@xmlns:ventavehiculos\": \"http://www.sat.gob.mx/ventavehiculos\",\n \"@version\": \"1.1\",\n \"@ClaveVehicular\": \"1231234\",\n \"@Niv\": \"12332\"\n }\n }\n ]\n }\n }\n ],\n \"Impuestos\": {\n \"Traslados\": [\n {\n \"Base\": 1,\n \"Impuesto\": \"002\",\n \"TipoFactor\": \"Tasa\",\n \"TasaOCuota\": 0.16,\n \"Importe\": 0.16\n }\n ],\n \"TotalImpuestosRetenidos\": 0,\n \"TotalImpuestosTrasladados\": 0.16\n }\n}" ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "tfd": "" }, "status": "success" } ``` ``` { "message": "Xml CFDI no proporcionado o viene vacio.", "messageDetail": null, "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto de datos referente al timbrado cuando es exitoso. Los parámetros varían según la versión de respuesta. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-40714e2d-15cb-4125-9bf9-9eeda73ef1ec) --- ### Timbrado Servicio de timbrado que timbra un comprobante CFDI 4.0 previamente sellado en formato XML. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /**v4**/cfdi33/stamp/**{version}/{format}** | **Nota:***Aunque el path dice*`/cfdi33`*, el servicio es compatible con la versión vigente del CFDI. El nombre se conserva por compatibilidad.* #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | multipart/form-data | | customid | $string | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | version | Requerido | [Versión de la respuesta](https://developers.sw.com.mx/knowledge-base/timbradov4-customid/#versiones-de-respuesta-timbrado-v4-customid) que devolverá el servicio. | | format | Opcional | (Default=b64) Parámetro para especificar si el XML esta en formato base 64. | #### 🧾 Parámetros Form | Propiedad | Uso | Descripción | | --- | --- | --- | | xml | Requerido | XML del comprobante a ser timbrado. | #### Ejemplo Request ``` curl --request POST \ --url http://services.test.sw.com.mx/v4/cfdi33/stamp/v4 \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: multipart/form-data' \ --header 'customid: myCustomId' \ --form 'xml=@cfdi.xml' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "tfd": "" }, "status": "success" } ``` ``` { "message": "CFDI3307 - Timbre duplicado. El customId proporcionado está duplicado.", "messageDetail": null, "data": { "tfd": "", "cfdi": "" }, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto de datos referente al timbrado cuando es exitoso. Los parámetros varían según la versión de respuesta. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-ad92b9d3-ead6-4d55-b2af-180a4291e78f) --- ## Versiones de Respuesta Timbrado V4 CustomId #### Respuesta exitosa Versiones de respuesta en Respuestas exitosas | Versión | Descripción de la respuesta | | --- | --- | | v1 | Timbre Fiscal Digital. | | v2 | Timbre Fiscal Digital y CFDI timbrado. | | v3 | CFDI timbrado. | | v4 | Todos los datos del timbrado. | #### Respuestas no exitosas Respuestas Erróneas al duplicar CustomID o Sello En caso de que se produzca un error al enviar en la solicitud el mismo CustomId o el mismo XML, el servicio proporciona versiones de respuesta especiales. Dependiendo de la versión de respuesta que utilices, la información devuelta será la siguiente: | Versión | **Respuesta al enviar mismo CustomId** | **Respuesta al enviar mismo XML/JSON (sello)** | | --- | --- | --- | | v1 | Timbre Fiscal Digital. | Timbre Fiscal Digital y CFDI Timbrado. | | v2 | Timbre Fiscal Digital. | Timbre Fiscal Digital y CFDI Timbrado. | | v3 | Timbre Fiscal Digital. | Timbre Fiscal Digital y CFDI Timbrado. | | v4 | Devuelve *el UUID* y el mensaje “Timbre duplicado. El customId proporcionado está duplicado.” | Devuelve toda la información relevante del CFDI. | --- # Timbrado V4 - Pdf Fuente: https://developers.sw.com.mx/knowledge-base/timbrado-version-4-pdf/ Categoria: Timbrado V4 Servicio de timbrado que recibe un comprobante CFDI, incluyendo sus **[complementos](https://developers.sw.com.mx/article-categories/ejemplos-4-0/)**, y es compatible con la versión vigente. Permite la certificación del comprobante y admite un encabezado adicional llamado ***extra***, el cual indica si se debe generar el PDF del CFDI timbrado y almacenarlo automáticamente en el portal [**ADT**](https://portal.sw.com.mx/). En ambiente de pruebas se permite el uso de certificados reales, aunque se recomienda utilizar los **[CSD de pruebas](https://developers.sw.com.mx/knowledge-base/donde-encuentro-csd-de-pruebas-vigentes/)**. **💡Visita nuestro artículo: [👉 Servicios de Generación de PDF – ¿Cuál es la mejor opción para TI?](https://developers.sw.com.mx/knowledge-base/que-servicio-de-generacion-de-pdf-debo-usar/)** **💡Nota Importante:** 👉 Por motivos de **compatibilidad**, aunque el path de nuestros servicios indique **/cfdi33**, este mismo endpoint acepta la versión actual del CFDI. #### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 --- ### Emisión Timbrado Servicio de timbrado que sella y timbra un comprobante CFDI 4.0 en formato XML. Es requerido [cargar los certificados](https://developers.sw.com.mx/knowledge-base/api-certificados/) del emisor previamente a la cuenta de timbrado. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /**v4**/cfdi33/issue/**{version}/{format}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | multipart/form-data | | extra | pdf | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | version | Requerido | [Versión de la respuesta](https://developers.sw.com.mx/knowledge-base/timbradov4-customid/#versiones-de-respuesta-timbrado-v4-customid) que devolverá el servicio. | | format | Opcional | (Default=b64) Parámetro para especificar si el XML esta en formato base 64. | #### 🧾 Parámetros Form | Propiedad | Uso | Descripción | | --- | --- | --- | | xml | Requerido | XML del comprobante a ser timbrado. | #### Ejemplo Request ``` curl --request POST \ --url http://services.test.sw.com.mx/v4/cfdi33/issue/v4 \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: multipart/form-data; boundary=-- -011000010111000001101001' \ --header 'extra: pdf'\ --form 'xml=cfdi.xml' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "cfdi": "" }, "status": "success" } ``` ``` { "message": "Xml CFDI33 no proporcionado o viene vacio.", "messageDetail": null, "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto de datos referente al timbrado cuando es exitoso. Los parámetros varían según la versión de respuesta. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-4d246f70-66d2-4e93-899d-278b562df1f6) --- ### Emisión Timbrado JSON Servicio de timbrado que sella y timbra un comprobante CFDI 4.0 en formato JSON. Es requerido [cargar los certificados](https://developers.sw.com.mx/knowledge-base/api-certificados/) del emisor previamente a la cuenta de timbrado. #### 🔗 Endpoint | Metodo | Ruta | | --- | --- | | **POST** | /**v4**/cfdi33/issue/json/**{version}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/jsontoxml | | extra | pdf | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | version | Requerido | [Versión de la respuesta](https://developers.sw.com.mx/knowledge-base/timbradov4-customid/#versiones-de-respuesta-timbrado-v4-customid) que devolverá el servicio. | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | data | Requerido | JSON del comprobante a ser timbrado. | #### Ejemplo Request ``` curl --request POST \ --url http://services.test.sw.com.mx/v4/cfdi33/issue/json/v4 \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --header 'extra: pdf'\ --data "{\n \"Version\":\"4.0\",\n \"FormaPago\":\"01\",\n....}" ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "cfdi": "" }, "status": "success" } ``` ``` { "message": "Xml CFDI33 no proporcionado o viene vacio.", "messageDetail": null, "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto de datos referente al timbrado cuando es exitoso. Los parámetros varían según la versión de respuesta. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-e3b29269-2f5f-4191-ba1a-f5724ec5a059) --- ### Timbrado Servicio de timbrado que timbra un comprobante CFDI 4.0 previamente sellado en formato XML. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /**v4**/cfdi33/stamp/**{version}/{format}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | multipart/form-data | | extra | pdf | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | version | Requerido | [Versión de la respuesta](https://developers.sw.com.mx/knowledge-base/timbradov4-customid/#versiones-de-respuesta-timbrado-v4-customid) que devolverá el servicio. | | format | Opcional | (Default=b64) Parámetro para especificar si el XML esta en formato base 64. | #### 🧾 Parámetros Form | Propiedad | Uso | Descripción | | --- | --- | --- | | xml | Requerido | XML del comprobante a ser timbrado. | #### Ejemplo Request ``` curl --request POST \ --url http://services.test.sw.com.mx/v4/cfdi33/stamp/v4 \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: multipart/form-data; boundary=-- -011000010111000001101001' \ --header 'extra: pdf'\ --form 'xml=cfdi.xml' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "cfdi": "" }, "status": "success" } ``` ``` { "message": "Xml CFDI33 no proporcionado o viene vacio.", "messageDetail": null, "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto de datos referente al timbrado cuando es exitoso. Los parámetros varían según la versión de respuesta. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-8ff44c55-b9ed-4d4e-b7de-540fc85631ee) --- # Timbrado V4 – Email Fuente: https://developers.sw.com.mx/knowledge-base/timbradov4-email/ Categoria: Timbrado V4 El servicio de timbrado recibe un CFDI en formato XML o JSON para su procesamiento, incluyendo [**complementos de CFDI**](https://developers.sw.com.mx/article-categories/ejemplos-4-0/), y es compatible con la versión vigente. Adicionalmente recibe un header conocido como ***email***, el cuál tiene como objetivo indicar uno o hasta 5 correos electrónicos a los que se requiera enviar el XML timbrado así como también su PDF. En caso de que no se cuente con una plantilla PDF customizada los PDFs serán generados con las **[plantillas genéricas](https://developers.sw.com.mx/knowledge-base/plantillas-pdf/)**. **💡Visita nuestro artículo: [👉 Servicios de Generación de PDF – ¿Cuál es la mejor opción para TI?](https://developers.sw.com.mx/knowledge-base/que-servicio-de-generacion-de-pdf-debo-usar/)** **💡Nota Importante:** 👉 Por motivos de **compatibilidad**, aunque el path de nuestros servicios indique **/cfdi33**, este mismo endpoint acepta la versión actual del CFDI. #### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 --- ### Emisión Timbrado Servicio de timbrado que sella y timbra un comprobante CFDI 4.0 en formato XML. Es requerido [cargar los certificados](https://developers.sw.com.mx/knowledge-base/api-certificados/) del emisor previamente a la cuenta de timbrado. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /**v4**/cfdi33/issue/**{version}/{format}** | **Nota:***Aunque el path dice*`/cfdi33`*, el servicio es compatible con la versión vigente del CFDI. El nombre se conserva por compatibilidad.* #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | multipart/form-data | | email | string | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | version | Requerido | [Versión de la respuesta](https://developers.sw.com.mx/knowledge-base/versiones-de-timbrado/) que devolverá el servicio. | | format | Opcional | (Default=b64) Parámetro para especificar si el XML esta en formato base 64. | #### 🧾 Parámetros Form | Propiedad | Uso | Descripción | | --- | --- | --- | | xml | Requerido | XML del comprobante a ser timbrado. | #### Ejemplo Request ``` curl --request POST \ --url http://services.test.sw.com.mx/v4/cfdi33/issue/v4 \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: multipart/form-data' \ --header 'email: email@test.com.mx' \ --form 'xml=@cfdi.xml' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "cfdi": "" }, "status": "success" } ``` ``` { "message": "Xml CFDI33 no proporcionado o viene vacio.", "messageDetail": null, "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto de datos referente al timbrado cuando es exitoso. Los parámetros varían según la versión de respuesta. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-e2754f4a-18da-4943-8024-21d587523438) --- ### Emisión Timbrado JSON Servicio de timbrado que sella y timbra un comprobante CFDI 4.0 en formato JSON. Es requerido [cargar los certificados](https://developers.sw.com.mx/knowledge-base/api-certificados/) del emisor previamente a la cuenta de timbrado. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /**v4**/cfdi33/issue/json/**{version}** | **Nota:***Aunque el path dice*`/cfdi33`*, el servicio es compatible con la versión vigente del CFDI. El nombre se conserva por compatibilidad.* #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/jsontoxml | | email | string | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | version | Requerido | [Versión de la respuesta](https://developers.sw.com.mx/knowledge-base/versiones-de-timbrado/) que devolverá el servicio. | #### 🧾 Parámetros Form | Propiedad | Uso | Descripción | | --- | --- | --- | | data | Requerido | JSON del comprobante a ser timbrado. | #### Ejemplo Request ``` curl --request POST \ --url http://services.test.sw.com.mx/v4/cfdi33/issue/json/v4 \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/jsontoxml' \ --header 'email: email@test.com.mx' \ --data "{\n \"Version\": \"4.0\",\n \"Serie\": \"Serie\",\n \"Folio\": \"Folio\",\n \"Fecha\": \"2022-07-27T00:02:00\",\n \"FormaPago\": 99,\n \"CondicionesDePago\": \"CondicionesDePago\",\n \"SubTotal\": 2000,\n \"Descuento\": 1,\n \"Moneda\": \"MXN\",\n \"TipoCambio\": 1,\n \"Total\": 1999.16,\n \"TipoDeComprobante\": \"I\",\n \"Exportacion\": \"01\",\n \"MetodoPago\": \"PUE\",\n \"LugarExpedicion\": \"20000\",\n \"Emisor\": {\n \"Rfc\": \"EKU9003173C9\",\n \"Nombre\": \"ESCUELA KEMPER URGATE\",\n \"RegimenFiscal\": 601\n },\n \"Receptor\": {\n \"Rfc\": \"URE180429TM6\",\n \"Nombre\": \"UNIVERSIDAD ROBOTICA ESPAÑOLA\",\n \"DomicilioFiscalReceptor\": \"65000\",\n \"RegimenFiscalReceptor\": 601,\n \"UsoCFDI\": \"S01\"\n },\n \"Conceptos\": [\n {\n \"Impuestos\": {\n \"Traslados\": [\n {\n \"Base\": 1,\n \"Impuesto\": \"002\",\n \"TipoFactor\": \"Tasa\",\n \"TasaOCuota\": 0.16,\n \"Importe\": 0.16\n }\n ]\n },\n \"ClaveProdServ\": \"01010101\",\n \"Cantidad\": 1,\n \"ClaveUnidad\": \"H87\",\n \"Unidad\": \"Servicio\",\n \"Descripcion\": \"Servicio\",\n \"ValorUnitario\": 2000,\n \"Importe\": 2000,\n \"Descuento\": 1,\n \"ObjetoImp\": \"02\",\n \"ComplementoConcepto\": {\n \"Any\": [\n {\n \"ventavehiculos:VentaVehiculos\": {\n \"@xmlns:ventavehiculos\": \"http://www.sat.gob.mx/ventavehiculos\",\n \"@version\": \"1.1\",\n \"@ClaveVehicular\": \"1231234\",\n \"@Niv\": \"12332\"\n }\n }\n ]\n }\n }\n ],\n \"Impuestos\": {\n \"Traslados\": [\n {\n \"Base\": 1,\n \"Impuesto\": \"002\",\n \"TipoFactor\": \"Tasa\",\n \"TasaOCuota\": 0.16,\n \"Importe\": 0.16\n }\n ],\n \"TotalImpuestosRetenidos\": 0,\n \"TotalImpuestosTrasladados\": 0.16\n }\n}" ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "cfdi": "" }, "status": "success" } ``` ``` { "message": "Xml CFDI33 no proporcionado o viene vacio.", "messageDetail": null, "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto de datos referente al timbrado cuando es exitoso. Los parámetros varían según la versión de respuesta. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-971cb1b3-e812-4d51-a64f-213aaf662acd) --- ### Timbrado Servicio de timbrado que timbra un comprobante CFDI 4.0 previamente sellado en formato XML. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /**v4**/cfdi33/stamp/**{version}/{format}** | **Nota:***Aunque el path dice*`/cfdi33`*, el servicio es compatible con la versión vigente del CFDI. El nombre se conserva por compatibilidad.* #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | multipart/form-data | | email | string | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | version | Requerido | [Versión de la respuesta](https://developers.sw.com.mx/knowledge-base/versiones-de-timbrado/) que devolverá el servicio. | | format | Opcional | (Default=b64) Parámetro para especificar si el XML esta en formato base 64. | #### 🧾 Parámetros Form | Propiedad | Uso | Descripción | | --- | --- | --- | | xml | Requerido | XML del comprobante a ser timbrado. | #### Ejemplo Request ``` curl --request POST \ --url http://services.test.sw.com.mx/v4/cfdi33/stamp/v4 \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: multipart/form-data' \ --header 'email: email@test.com.mx' \ --form 'xml=@cfdi.xml' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "cfdi": "" }, "status": "success" } ``` ``` { "message": "Xml CFDI33 no proporcionado o viene vacio.", "messageDetail": null, "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto de datos referente al timbrado cuando es exitoso. Los parámetros varían según la versión de respuesta. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-55934fa9-af42-4d07-8f9a-c89fe82c24c4) --- # Cancelación Retenciones Fuente: https://developers.sw.com.mx/knowledge-base/cancelacion-retenciones-cfdi-rest/ Categoria: Timbrado de Retenciones Servicio que permite cancelar facturas de retenciones e información de pagos con sus **[complementos](https://developers.sw.com.mx/knowledge-base/cfdi40-retenciones-2-0/#ejemplos-complementos)** a través de un Web Service de tipo REST. Esto se realiza enviando un archivo XML o utilizando Certificados de Sellos Digitales (CSD). En ambiente de pruebas solo se permite el uso de CSD de pruebas. Encuéntralos aquí: [**certificados de prueba.**](https://developers.sw.com.mx/knowledge-base/donde-encuentro-csd-de-pruebas-vigentes/) #### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 ### **CancelaUno()** Servicio para cancelar enviando un XML con la información y folios de las facturas a cancelar. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /retencion/cancel/xml | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | multipart/form-data | #### 🧾Parámetros Form | Propiedad | Uso | Descripción | | --- | --- | --- | | xml | Requerido | XML estructurado conforme al [estándar anexo 20](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20_version3-3.htm) (pág. 110, en el portal oficial del SAT), con la información de los comprobantes a cancelar | #### Ejemplo Request ``` curl --request POST 'https://services.test.sw.com.mx/retencion/cancel/xml' \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: multipart/form-data' \ --form 'xml=retencion.xml' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "acuse": "3044CC3F-572F-4535-85E2-374C205F5B11120202falsenot(ancestor-or-self::*[local-name()='Signature'])Ky5b3ESjfWTfYXJXTdaNNPpkN6aDdrXDj37lp7+4lqj0lZfODDXCDf9F/rkolszkszKdPMUGHHrdj/mfsi2DjA==3gojaldMWMHCMygaM0gGd2vVRakASqwmrafr/GiGEOvWePPH65z80oT33MbfuUr7LbCjr+E25UiT0jt6mggTxA==30001000000500002554hUcUOoGEtSDAlrF8KegQkGKY8aDAe9tNRkf48uj1+YirDP4cMEd8YEelQY1jLu1GINYKf9N9XxmOfHdL4FUr+cuOgrBviaGWcIsJfZ80IGpvox6kUSHoRt+h32yQayW0HuNOp0b3yiBp9Y6jTdYTFTAVzgzUjf4LfVt8n5FejVZ2xERIyROnGgbK8A4xBsPpFazHQkK2PCiYe+LYBm0Ux9UZYkYJ9Mu9rL5c51Sjgq8JJekorp0BzfKadRrSEFyD2Z6GwB0RswjLZQspojZGxUnqlbldvO6TjFUV4MT7EV8P7f2VTS0yr4qSwx0y080zoK10CbIoJXfsFROHypFj5w==AQAB", "uuid": { "3044CC3F-572F-4535-85E2-374C205F5B11": "1202" } }, "status": "success" } ``` ``` { "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CR1309 - Firma mal formada o inválida", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno | | data | object/null | Contiene información del acuse de cancelación emitido por el SAT, incluyendo el XML del acuse y el estatus del UUID. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-e8b34001-69cb-45e6-b93d-bc82ea33be31) --- ### **CancelaUnoCSD()** Método utilizado para la cancelación de un único UUID utilizando el certificado y llave privada del emisor. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | POST | /retencion/cancel/csd | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | uuid | Requerido | UUID del comprobante | | rfc | Requerido | RFC del emisor | | motivo | Requerido | Clave para expresar el motivo de la cancelación | | folioSustitucion | Opcional | UUID del comprobante que sustituye | | b64Cer | Requerido | Archivo Cer en Base64 | | b64Key | Requerido | Archivo Key en Base64 | | password | Requerido | Contraseña del certificado | #### Ejemplo Request ``` curl --location 'https://services.test.sw.com.mx/retencion/cancel/csd' \ --header 'Authorization: Bearer T2lYQ0...' \ --header 'Content-Type: application/json' \ --data '{ "uuid": "1fae5735-ca51-4be4-9180-827c44fdb227", "password": "12345678a", "rfc": "EKU9003173C9", "motivo": "02", "b64Cer": "MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE=", "b64Key": "MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIAgEAAoIBAQACAggAMBQGCCqGSIb3DQMHBAgwggS/AgEAMASCBMh4EHl7aNSCaMDA1VlRoXCZ5UUmqErAbucoZQObOaLUEm+I+QZ7Y8Giupo+F1XWkLvAsdk/uZlJcTfKLJyJbJwsQYbSpLOCLataZ4O5MVnnmMbfG//NKJn9kSMvJQZhSwAwoGLYDm1ESGezrvZabgFJnoQv8Si1nAhVGTk9FkFBesxRzq07dmZYwFCnFSX4xt2fDHs1PMpQbeq83aL/PzLCce3kxbYSB5kQlzGtUYayiYXcu0cVRu228VwBLCD+2wTDDoCmRXtPesgrLKUR4WWWb5N2AqAU1mNDC+UEYsENAerOFXWnmwrcTAu5qyZ7GsBMTpipW4Dbou2yqQ0lpA/aB06n1kz1aL6mNqGPaJ+OqoFuc8Ugdhadd+MmjHfFzoI20SZ3b2geCsUMNCsAd6oXMsZdWm8lzjqCGWHFeol0ik/xHMQvuQkkeCsQ28PBxdnUgf7ZGer+TN+2ZLd2kvTBOk6pIVgy5yC6cZ+o1Tloql9hYGa6rT3xcMbXlW+9e5jM2MWXZliVW3ZhaPjptJFDbIfWxJPjz4QvKyJk0zok4muv13Iiwj2bCyefUTRz6psqI4cGaYm9JpscKO2RCJN8UluYGbbWmYQU+Int6LtZj/lv8p6xnVjWxYI+rBPdtkpfFYRp+MJiXjgPw5B6UGuoruv7+vHjOLHOotRo+RdjZt7NqL9dAJnl1Qb2jfW6+d7NYQSI/bAwxO0sk4taQIT6Gsu/8kfZOPC2xk9rphGqCSS/4q3Os0MMjA1bcJLyoWLp13pqhK6bmiiHw0BBXH4fbEp4xjSbpPx4tHXzbdn8oDsHKZkWh3pPC2J/nVl0k/yF1KDVowVtMDXE47k6TGVcBoqe8PDXCG9+vjRpzIidqNo5qebaUZu6riWMWzldz8x3Z/jLWXuDiM7/Yscn0Z2GIlfoeyz+GwP2eTdOw9EUedHjEQuJY32bq8LICimJ4Ht+zMJKUyhwVQyAER8byzQBwTYmYP5U0wdsyIFitphw+/IH8+v08Ia1iBLPQAeAvRfTTIFLCs8foyUrj5Zv2B/wTYIZy6ioUM+qADeXyo45uBLLqkN90Rf6kiTqDld78NxwsfyR5MxtJLVDFkmf2IMMJHTqSfhbi+7QJaC11OOUJTD0v9wo0X/oO5GvZhe0ZaGHnm9zqTopALuFEAxcaQlc4R81wjC4wrIrqWnbcl2dxiBtD73KW+wcC9ymsLf4I8BEmiN25lx/OUc1IHNyXZJYSFkEfaxCEZWKcnbiyf5sqFSSlEqZLc4lUPJFAoP6s1FHVcyO0odWqdadhRZLZC9RCzQgPlMRtji/OXy5phh7diOBZv5UYp5nb+MZ2NAB/eFXm2JLguxjvEstuvTDmZDUb6Uqv++RdhO5gvKf/AcwU38ifaHQ9uvRuDocYwVxZS2nr9rOwZ8nAh+P2o4e0tEXjxFKQGhxXYkn75H3hhfnFYjik/2qunHBBZfcdG148MaNP6DjX33M238T9Zw/GyGx00JMogr2pdP4JAErv9a5yt4YR41KGf8guSOUbOXVARw6+ybh7+meb7w4BeTlj3aZkv8tVGdfIt3lrwVnlbzhLjeQY6PplKp3/a5Kr5yM0T4wJoKQQ6v3vSNmrhpbuAtKxpMILe8CQoo=" }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "acuse": "1fae5735-ca51-4be4-9180-827c44fdb227120202falsenot(ancestor-or-self::*[local-name()='Signature'])Abdk2w4HjDfvbHxb02i0+ugoibtzKC+dfl/EprymZmuE2QT/pVFBe88PX5UQLrxYICMNdwBaFtl2jDjK9lZYAQ==NiAJqjTq5McWeJtgXGHJEZp9dltASEN69mkSgS1nZJeAPtiq1Fua1mtNkzUaIE8jzMBwcLeKxlNBGogRtgZKug==30001000000500002554hUcUOoGEtSDAlrF8KegQkGKY8aDAe9tNRkf48uj1+YirDP4cMEd8YEelQY1jLu1GINYKf9N9XxmOfHdL4FUr+cuOgrBviaGWcIsJfZ80IGpvox6kUSHoRt+h32yQayW0HuNOp0b3yiBp9Y6jTdYTFTAVzgzUjf4LfVt8n5FejVZ2xERIyROnGgbK8A4xBsPpFazHQkK2PCiYe+LYBm0Ux9UZYkYJ9Mu9rL5c51Sjgq8JJekorp0BzfKadRrSEFyD2Z6GwB0RswjLZQspojZGxUnqlbldvO6TjFUV4MT7EV8P7f2VTS0yr4qSwx0y080zoK10CbIoJXfsFROHypFj5w==AQAB", "uuid": { "1fae5735-ca51-4be4-9180-827c44fdb227": "1202" } }, "status": "success" } ``` ``` { "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CR1308 - Certificado revocado o caduco", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene información del acuse de cancelación emitido por el SAT, incluyendo el XML del acuse y el estatus del UUID. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-dd1a9056-8978-4e7f-861e-df2d9f8fbf3a) --- ### **CancelaUnoPFX()** Método utilizado para la cancelación de un único UUID utilizando el archivo .PFX del emisor. **💡Visita nuestra herramienta:** [Generador de Certificado PFX](https://developers.sw.com.mx/knowledge-base/herramienta-crear-pfx/) #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /retencion/cancel/pfx | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | uuid | Requerido | UUID del comprobante | | rfc | Requerido | RFC del emisor | | motivo | Requerido | Clave para expresar el motivo de la cancelación | | folioSustitucion | Opcional | UUID del comprobante que sustituye | | b64Pfx | Requerido | Archivo PFX en Base64 | | password | Requerido | Contraseña del certificado | #### Ejemplo Request ``` curl --request POST \ --url https://services.test.sw.com.mx/retencion/cancel/pfx \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "uuid":"578052ce-710f-4d0b-9ffc-6ca73daf92a5", "password": "12345678a", "rfc": "EKU9003173C9", "motivo": "01", "folioSustitucion":"fe4e71b0-8959-4fb9-8091-f5ac4fb0fef8" "b64Pfx": "$Pfx" }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "acuse": "578052CE-710F-4D0B-9FFC-6CA73DAF92A5120202falsenot(ancestor-or-self::*[local-name()='Signature'])Abdk2w4HjDfvbHxb02i0+ugoibtzKC+dfl/EprymZmuE2QT/pVFBe88PX5UQLrxYICMNdwBaFtl2jDjK9lZYAQ==NiAJqjTq5McWeJtgXGHJEZp9dltASEN69mkSgS1nZJeAPtiq1Fua1mtNkzUaIE8jzMBwcLeKxlNBGogRtgZKug==30001000000500002554hUcUOoGEtSDAlrF8KegQkGKY8aDAe9tNRkf48uj1+YirDP4cMEd8YEelQY1jLu1GINYKf9N9XxmOfHdL4FUr+cuOgrBviaGWcIsJfZ80IGpvox6kUSHoRt+h32yQayW0HuNOp0b3yiBp9Y6jTdYTFTAVzgzUjf4LfVt8n5FejVZ2xERIyROnGgbK8A4xBsPpFazHQkK2PCiYe+LYBm0Ux9UZYkYJ9Mu9rL5c51Sjgq8JJekorp0BzfKadRrSEFyD2Z6GwB0RswjLZQspojZGxUnqlbldvO6TjFUV4MT7EV8P7f2VTS0yr4qSwx0y080zoK10CbIoJXfsFROHypFj5w==AQAB", "uuid": { "578052CE-710F-4D0B-9FFC-6CA73DAF92A5": "1202" } }, "status": "success" } ``` ``` { "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CR1308 - Certificado revocado o caduco", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene información del acuse de cancelación emitido por el SAT, incluyendo el XML del acuse y el estatus del UUID. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-431e3842-fe62-40af-ab17-37a7f1e7fc71) --- ### **CancelacionMasiva()** Método utilizado para la cancelación de múltiples UUIDs utilizando un XML de cancelación previamente firmado. **💡Nota Importante:** Para lograr un mejor rendimiento, es recomendable enviar un archivo XML con un máximo de 500 UUID de CFDI para su cancelación. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | | | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | | | #### Parámetros | Propiedad | Uso | Descripción | | --- | --- | --- | | | | | **💡Nota Importante:** Si desconoces la estructura del XML de cancelación, mira el siguiente video: [¿Cómo crear XML de Cancelación para CFDI y Retenciones?](https://www.youtube.com/watch?v=Z7WYGAs8MKk). También puede ser útil: [Herramienta para Firmar XML](https://developers.sw.com.mx/knowledge-base/herramienta-firmar-xml/) #### Ejemplo Request ``` ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` ``` ``` ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | | | | [Probar en Postman](https://developers.sw.com.mx/knowledge-base/cancelacion-retenciones-cfdi-rest/) --- ### **ConsultaAcuseCancelacion()** Método para consultar el estado de UUIDs cancelados previamente, especialmente útil para verificar facturas canceladas a través de nuestro servicio de cancelación masiva. **💡Nota Importante:** El tiempo de disponibilidad de los acuses de cancelación devueltos por este servicio varía en proporción a la cantidad de UUID enviados para su cancelación. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | | | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | | | #### Parámetros | Propiedad | Uso | Descripción | | --- | --- | --- | | | | | #### Ejemplo Request ``` ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` ``` ``` ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | | | | [Probar en Postman](https://developers.sw.com.mx/knowledge-base/cancelacion-retenciones-cfdi-rest/) ### Códigos de respuesta de folios de cancelación de retenciones | Código | Mensaje | | --- | --- | | 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. | --- # Cancelación Retenciones Masivas Fuente: https://developers.sw.com.mx/knowledge-base/cancelacion-retenciones-masivas/ Categoria: Timbrado de Retenciones Servicio que permite cancelar de manera masiva facturas de retenciones e información de pagos con sus **[complementos](https://developers.sw.com.mx/knowledge-base/cfdi40-retenciones-2-0/#ejemplos-complementos)** a través de un Web Service de tipo REST. Esto se realiza enviando un archivo XML o utilizando Certificados de Sellos Digitales (CSD). #### URL´s 🛠️ Pruebas: https://services.test.sw.com.mx 📄 🚀 Productivo: https://services.sw.com.mx 📄 💡 Para este servicio también puedes utilizar los **[CSD de pruebas](https://developers.sw.com.mx/knowledge-base/donde-encuentro-csd-de-pruebas-vigentes/)** proporcionados por el SAT. ℹ️ **Nota:** Estos endpoints corresponden al servicio de cancelación masiva de **retenciones** (`/retencion/cancel/masiva/`). Son independientes a los endpoint de cancelación de **[retenciones convencional](https://developers.sw.com.mx/knowledge-base/cancelacion-retenciones-cfdi-rest/)**. --- ## Valores válidos del campo *motivo* El campo `motivo` es requerido en todos los métodos de cancelación. Los valores aceptados son: Tabla con los motivos. | Clave | Descripción | ¿Requiere *“FolioSustitución”*? | | --- | --- | --- | | 01 | Comprobante emitido con errores con relación | ✅ **Sí**, **obligatorio** | | 02 | Comprobante emitido con errores sin relación | ❌ No enviarse | | 03 | No se llevó a cabo la operación | ❌ No enviarse | | 04 | Operación nominativa relacionada en factura global | ❌ No enviarse | ⚠️ **Importante:** `folioSustitucion` **solo es requerido cuando `motivo = "01"`**. Para cualquier otro motivo, este campo debe enviarse como `null` u omitirse. --- ## Cancelación masiva por XML Servicio para cancelar enviando un XML con la información y folios de las facturas a cancelar. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /retencion/cancel/masiva/xml | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | multipart/form-data | #### 📋 Parámetros Form-Data | Propiedad | Uso | Descripción | | --- | --- | --- | | `xml` | Requerido | XML estructurado conforme al [estándar anexo 20](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm) (pág. 62, en el portal oficial del SAT), con la información de los comprobantes a cancelar | #### Ejemplo Request 📌 Ejemplo — Envío de archivo XML 📄 Estructura del XML ``` curl --request POST \ --url https://services.test.sw.com.mx/retencion/cancel/masiva/xml \ --header 'Authorization: Bearer $token' \ --form 'xml=@/ruta/cancelacion.xml' ``` ``` Rndk9QwYQRV/rZVWv/YUzIYgSzk= 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 CN=AC UAT, O=SERVICIO DE ADMINISTRACION TRIBUTARIA, OU=SAT-IES Authority, E=oscar.martinez@sat.gob.mx, STREET=3ra cerrada de caliz, PostalCode=06370, C=MX, ST=CIUDAD DE MEXICO, L=COYOACAN, OID.2.5.4.45=2.5.4.45, OID.1.2.840.113549.1.9.2=responsable: ACDMA-SAT 3330303031303030303030353030303033343136 ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "folioSeguimiento": "1C4C60BC-0BA1-40FF-8D1F-F4DC80B52E25" }, "status": "success" } ``` ``` { "message": "CACFDI33 - Problemas con los campos.", "messageDetail": "La solicitud no puede ser nula.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene la información del resultado de la cancelación masiva. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/l44anyi/cancelacin-masiva-por-xml) --- ## Cancelación masiva por CSD Cancelación masiva enviando los certificados CSD del emisor en Base64 directamente en el body del request, junto con el arreglo de folios a cancelar. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /retencion/cancel/masiva/csd | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | rfc | Requerido | RFC del emisor | | b64Cer | Requerido | Certificado .cer del emisor en Base64 | | b64Key | Requerido | Llave privada .key del emisor en Base64 | | password | Requerido | Contraseña del certificado | | folios | Requerido | Arreglo de folios a cancelar | | folios[].uuid | Requerido | UUID de la retención a cancelar | | folios[].motivo | Requerido | Clave del motivo de cancelación | | folios[].folioSustitucion | Condicional | UUID del comprobante que sustituye. Requerido solo cuando motivo = “01” | #### Ejemplo Request 📌 Ejemplo — Con folioSustitucion (motivo 01) 📌 Ejemplo — Sin folioSustitucion (motivo 02) ``` curl --request POST \ --url https://services.test.sw.com.mx/retencion/cancel/masiva/csd \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "rfc": "EKU9003173C9", "b64Cer": "$cer", "b64Key": "$key", "password": "12345678a", "folios": [ { "uuid": "286C2251-C152-4530-9D80-B7E3376B2D17", "motivo": "01", "folioSustitucion": "FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8" } ] }' ``` ``` curl --request POST \ --url https://services.test.sw.com.mx/retencion/cancel/masiva/csd \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "rfc": "EKU9003173C9", "b64Cer": "$cer", "b64Key": "$key", "password": "12345678a", "folios": [ { "uuid": "286C2251-C152-4530-9D80-B7E3376B2D17", "motivo": "02", "folioSustitucion": null } ] }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "folioSeguimiento": "1C4C60BC-0BA1-40FF-8D1F-F4DC80B52E25" }, "status": "success" } ``` ``` { "message": "CACFDI33 - Problemas con los campos.", "messageDetail": "La solicitud no puede ser nula.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene la información del resultado de la cancelación masiva. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/8vuv3t6/cancelacin-masiva-por-csd) --- ## Cancelación masiva por PFX Cancelación masiva enviando el archivo PFX (combinación de certificado y llave privada) en Base64, junto con el arreglo de folios a cancelar. **💡 Artículo de apoyo:** [¿Cómo crear un PFX?](https://developers.sw.com.mx/knowledge-base/como-crear-un-pfx/) #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /retencion/cancel/masiva/pfx | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | rfc | Requerido | RFC del emisor | | b64Pfx | Requerido | Archivo PFX del emisor en Base64 (combina .cer y .key) | | password | Requerido | Contraseña del archivo PFX | | folios | Requerido | Arreglo de folios a cancelar | | folios[].uuid | Requerido | UUID de la retención a cancelar | | folios[].motivo | Requerido | Clave del motivo de cancelación | | folios[].folioSustitucion | Condicional | UUID del comprobante que sustituye. Requerido solo cuando motivo = “01” | #### Ejemplo Request 📌 Ejemplo — Con folioSustitucion (motivo 01) 📌 Ejemplo — Sin folioSustitucion (motivo 02) ``` curl --request POST \ --url https://services.test.sw.com.mx/retencion/cancel/masiva/pfx \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "rfc": "EKU9003173C9", "b64Pfx": "$pfx", "password": "12345678a", "folios": [ { "uuid": "286C2251-C152-4530-9D80-B7E3376B2D17", "motivo": "01", "folioSustitucion": "FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8" } ] }' ``` ``` curl --request POST \ --url https://services.test.sw.com.mx/retencion/cancel/masiva/pfx \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "rfc": "EKU9003173C9", "b64Pfx": "$pfx", "password": "12345678a", "folios": [ { "uuid": "286C2251-C152-4530-9D80-B7E3376B2D17", "motivo": "02", "folioSustitucion": null } ] }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "folioSeguimiento": "1C4C60BC-0BA1-40FF-8D1F-F4DC80B52E25" }, "status": "success" } ``` ``` { "message": "CACFDI33 - Problemas con los campos.", "messageDetail": "La solicitud no puede ser nula.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene la información del resultado de la cancelación masiva. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/9r3m028/cancelacin-masiva-por-pfx) --- ## Cancelación masiva por UUID Cancelación masiva utilizando el certificado del emisor previamente [cargado en la cuenta](https://developers.sw.com.mx/knowledge-base/api-certificados/). El RFC del emisor se incluye directamente en la ruta del endpoint. ⚠️ **Importante:** El `rfc` del emisor va en la **ruta de la petición** (`/retencion/cancel/masiva/{rfc}`), **no en el body**. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /retencion/cancel/masiva/**{rfc}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | rfc | Requerido | RFC del emisor | #### 🧾 Parámetros JSON (Body) | Propiedad | Uso | Descripción | | --- | --- | --- | | folios | Requerido | Arreglo de folios a cancelar | | folios[].uuid | Requerido | UUID de la retención a cancelar | | folios[].motivo | Requerido | Clave del motivo de cancelación | | folios[].folioSustitucion | Condicional | UUID del comprobante que sustituye. Requerido solo cuando motivo = “01” | #### Ejemplo Request 📌 Ejemplo — Con folioSustitucion (motivo 01) 📌 Ejemplo — Sin folioSustitucion (motivo 02) ``` curl --request POST \ --url https://services.test.sw.com.mx/retencion/cancel/masiva/EKU9003173C9 \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "folios": [ { "uuid": "286C2251-C152-4530-9D80-B7E3376B2D17", "motivo": "01", "folioSustitucion": "FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8" } ] }' ``` ``` curl --request POST \ --url https://services.test.sw.com.mx/retencion/cancel/masiva/EKU9003173C9 \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "folios": [ { "uuid": "286C2251-C152-4530-9D80-B7E3376B2D17", "motivo": "02", "folioSustitucion": null } ] }' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "folioSeguimiento": "1C4C60BC-0BA1-40FF-8D1F-F4DC80B52E25" }, "status": "success" } ``` ``` { "message": "CACFDI33 - Problemas con los campos.", "messageDetail": "La solicitud no puede ser nula.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Contiene la información del resultado de la cancelación masiva. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/z3pnon5/cancelacin-masiva-por-uuid) --- ## Consulta de acuse de cancelación Consulta el acuse de cancelación emitido por el SAT a partir del `folioSeguimiento` obtenido en la respuesta de cualquier método de cancelación masiva. ℹ️ **Nota:** El parámetro `folioSeguimiento` se envía como **query param** en la URL. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /retencion/cancel/acuse?**folioSeguimiento={uuid}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | #### 🔎 Query Params | Parámetro | Uso | Descripción | | --- | --- | --- | | `folioSeguimiento` | Requerido | UUID de seguimiento obtenido en la respuesta de la cancelación masiva | #### Ejemplo Request 📌 Ejemplo — Consulta por folioSeguimiento ``` curl --request POST \ --url 'https://services.test.sw.com.mx/retencion/cancel/acuse?folioSeguimiento=1C4C60BC-0BA1-40FF-8D1F-F4DC80B52E25' \ --header 'Authorization: Bearer $token' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "acuse": "286C2251-C152-4530-9D80-B7E3376B2D17120102falsenot(ancestor-or-self::*[local-name()='Signature'])LvwvRFg1m0qMEsFucy+CTHgcpPcvMeNBgcu/Q0Bnhm9IydrvFDvYSbZcXC06AHFXt/bDPgw4WUCOX5rEfV9s+Q==7+kgxLMbZ0Srn6EiMY7v9P5I2n7hnhROjHX2KdQwXhjxtedIAt7GQJwAGb0HARuEsA9eIdMusk2CCi6ZWJANfQ==30001000000500002554kaqT7gZEh0uBLPcVUR2uOFkJN7hiOmNLhpjUi+DvS1Q0dYpZv+nLQK1IZZHpfJlo54x1QQqU0UGZuXTlQpYrVNzjVmtLZQ9JhB9N4x7stjk9+RQQo6m4RrSPjcqW1oy2aQKnflKEPUypzP88/B+tvKKI2toAk+NJukbQy0cI1y35z3msCspUTYsBJ4E67UKGnbQYK9u6kUCL9Ydt9tlJsXjTLdEiKGRDi259suZCYt4qIPw91HzTQrt7a8fAYXQPdR6OgnPog0+zyvVrsL3/sCQqG2m/tTlElrqCgJp8zjLiDfdhe9Y3S7NnYmLUn0RJrENotSweqEu9f3UkUFD/eQ==AQAB", "uuid": { "286C2251-C152-4530-9D80-B7E3376B2D17": "1201" } }, "status": "success" } ``` ``` { "message": "CR1006 - CR1006 - Mensaje SAT.", "messageDetail": "El folio de seguimiento no es un identificador válido.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto con el resultado del acuse de cancelación. | | data.acuse | String | XML del acuse de cancelación emitido por el SAT. | | data.uuid | Object | Diccionario donde la clave es el UUID cancelado y el valor es el código de estatus SAT (e.g. “1201”). | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/0n2u95a/consulta-de-acuse-de-cancelacin) --- ## Códigos de respuesta de folios Códigos que el SAT puede devolver en el campo `EstatusUUID` del acuse, o como parte del mensaje de respuesta al procesar la cancelación de cada folio. Tabla de códigos de respuesta. | Código | Mensaje | | --- | --- | | `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. | --- # Emisión Timbrado Retenciones Fuente: https://developers.sw.com.mx/knowledge-base/emision-timbrado-retenciones/ Categoria: Timbrado de Retenciones Servicio que realiza el timbrado de un comprobante CFDI de retenciones en formato XML, acepta **[complementos](https://developers.sw.com.mx/knowledge-base/cfdi40-retenciones-2-0/#ejemplos-complementos)** y es compatible con la versión vigente. Los atributos `Sello`, `Certificado`y `NoCertificado`deben enviarse vacíos. Se recomienda utilizar los [**certificados de prueba.**](https://developers.sw.com.mx/knowledge-base/donde-encuentro-csd-de-pruebas-vigentes/) ### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 --- ### Emisión Timbrado Retenciones multipart/form-data Recibe el XML de retenciones sin sellar como archivo en un form-data. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /retencion/issue/****{version}**** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | multipart/form-data | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | versión | Requerido | [Versión de la respuesta](https://developers.sw.com.mx/knowledge-base/versiones-de-respuesta-retenciones/) que devolverá el servicio. | #### 🧾 Parámetros FORM | Propiedad | Uso | Descripción | | --- | --- | --- | | xml | Requerido | XML del comprobante a ser timbrado | #### Ejemplo de Request ``` curl --request POST --url 'https://services.test.sw.com.mx/retencion/issue/v3' --header 'Authorization: Bearer $token' --header 'Content-Type: multipart/form-data' --form 'xml=retencion.xml' ``` #### Ejemplo de response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "retencion": "" }, "status": "success" } ``` ``` { "message": "401 - El rango de la fecha de generación no debe de ser mayor a 72 horas para la emisión del timbre.", "messageDetail": "Retenciones.FechaExp. Fecha de emisión: 2026-02-05T10:30:14 Fecha del Servidor: 2026-02-13T12:45:00. Rango permitido: 2026-02-10T12:45:00 - 2026-02-13T12:50:00", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto de datos referente al timbrado cuando es exitoso. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-ffd60b7d-3fd2-45bb-9259-f4326523fdc8) --- ### Emisión Timbrado Retenciones application/json Recibe el XML de retenciones sin sellar como string en un JSON Body. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /retencion/issue/json/**{version}**/**{format}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | version | Requerido | [Versión de la respuesta](https://developers.sw.com.mx/knowledge-base/versiones-de-respuesta-retenciones/) que devolverá el servicio. | | format | Opcional | (Default=b64) Parámetro para especificar si el XML está en formato base64 | #### 🧾 Parámetros JSON | Propiedad | Uso | Tipo | Descripción | | --- | --- | --- | --- | | data | Requerido | string | XML del comprobante a ser timbrado | #### Ejemplo de Request ``` curl --request POST --url 'https://services.test.sw.com.mx/retencion/issue/json/v3' --header 'Authorization: Bearer $token' --header 'Content-Type: application/json' --data '{"data": ""}' ``` #### Ejemplo de response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "retencion": "" }, "status": "success" } ``` ``` { "message": "401 - El rango de la fecha de generación no debe de ser mayor a 72 horas para la emisión del timbre.", "messageDetail": "Retenciones.FechaExp. Fecha de emisión: 2026-02-05T10:30:14 Fecha del Servidor: 2026-02-13T12:45:00. Rango permitido: 2026-02-10T12:45:00 - 2026-02-13T12:50:00", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto de datos referente al timbrado cuando es exitoso. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-f809cdcd-8d47-47a3-845c-12550f0fcd3f) --- # Retenciones 2.0 (Ejemplos) Fuente: https://developers.sw.com.mx/knowledge-base/cfdi40-retenciones-2-0/ Categoria: Timbrado de Retenciones Comprobante que avala las retenciones de los impuestos que se efectúan o por los pagos realizados incluyendo que estos sean residentes en el extranjero. Los ejemplos aquí expuestos son material actualizado de referencia y no reproducciones de escenarios reales. Para obtener más información o detalles adicionales sobre los nodos y los valores de cada atributo, consulte [Documentación SAT](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/). ### Ejemplos Retenciones 2.0 Retención Receptor Nacional ``` ``` Retención Receptor Extranjero ``` ``` ### Ejemplos Complementos Dividendos ``` ``` Planes de retiro ``` ``` Relacionados ``` ``` Plataformas Tecnológicas ``` ``` Operaciones Con Derivados ``` ``` Intereses Hipotecarios ``` ``` Sector Financiero ``` ``` Enajenación De Acciones ``` ``` Pagos a Extranjeros ``` ``` Premios ``` ``` Fideicomisos No Empresariales ``` ``` Intereses ``` ``` Arrendamiento fideicomiso ``` ``` --- Visita también: [Documentación SAT para CFDI de Retenciones y sus Complementos](https://developers.sw.com.mx/knowledge-base/documentacion-4-0-catalogos/) --- # Timbrado Retenciones Fuente: https://developers.sw.com.mx/knowledge-base/timbrado-retenciones-cfdi-rest/ Categoria: Timbrado de Retenciones Servicio que realiza el timbrado de un comprobante CFDI de retenciones previamente sellado en formato XML, acepta **[complementos](https://developers.sw.com.mx/knowledge-base/cfdi40-retenciones-2-0/#ejemplos-complementos)** y es compatible con la versión vigente. En ambiente de pruebas se permite el uso de CSD reales, aunque se recomienda utilizar los [**certificados de prueba.**](https://developers.sw.com.mx/knowledge-base/donde-encuentro-csd-de-pruebas-vigentes/) ### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 --- ### Timbrado Retenciones multipart/form-data Recibe el XML de retenciones previamente sellado como archivo en un form-data. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /retencion/stamp/**{version}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | multipart/form-data | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | version | Requerido | [Versión de la respuesta](https://developers.sw.com.mx/knowledge-base/versiones-de-respuesta-retenciones/) que devolverá el servicio. | #### 🧾 Parámetros FORM | Propiedad | Uso | Descripción | | --- | --- | --- | | xml | Requerido | XML del comprobante a ser timbrado | #### Ejemplo de Request ``` curl --request POST \ --url 'https://services.test.sw.com.mx/retencion/stamp/v3' \ --header 'Authorization: bearer $token' \ --header 'Content-Type: multipart/form-data' \ --form 'xml=retencion.xml' ``` #### Ejemplo de response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "retencion": "" }, "status": "success" } ``` ``` { "message": "Reten20101 - El resultado de la digestión debe ser igual al resultado de la desencripción del sello.", "messageDetail": "El sello es incorrecto, la cadena original es: ||2.0|30001000000500003416|e0ff5458087c204afa08|2025-07-17T12:59:01|45110|01|EKU9003173C9|ESCUELA KEMPER URGAT|601|Nacional|URE180429TM6|UNIVERSIDAD ROBOTICA ESPAÑOLA|86991|01|03|2023|2000.00|2000.00|0|580.00|2000|001|580.00|03||", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto de datos referente al timbrado cuando es exitoso. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-b9dc6433-f963-4329-a645-2cccdfd14485) --- ### Timbrado Retenciones application/json Recibe el XML de retenciones como string en un JSON Body. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /retencion/stamp/json/**{version}**/**{format}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | version | Requerido | [Versión de la respuesta](https://developers.sw.com.mx/knowledge-base/versiones-de-respuesta-retenciones/) que devolverá el servicio. | | format | Opcional | (Default=b64) Parámetro para especificar si el XML está en formato base64 | #### 🧾 Parámetros JSON | Propiedad | Uso | Tipo | Descripción | | --- | --- | --- | --- | | data | Requerido | string | XML del comprobante a ser timbrado | #### Ejemplo de Request ``` curl --request POST \ --url 'https://services.test.sw.com.mx/retencion/stamp/json/v3' \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{"data": ""}' ``` #### Ejemplo de response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "retencion": "" }, "status": "success" } ``` ``` { "message": "Reten20101 - El resultado de la digestión debe ser igual al resultado de la desencripción del sello.", "messageDetail": "El sello es incorrecto, la cadena original es: ||2.0|30001000000500003416|e0ff5458087c204afa08|2025-07-17T12:59:01|45110|01|EKU9003173C9|ESCUELA KEMPER URGAT|601|Nacional|URE180429TM6|UNIVERSIDAD ROBOTICA ESPAÑOLA|86991|01|03|2023|2000.00|2000.00|0|580.00|2000|001|580.00|03||", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto de datos referente al timbrado cuando es exitoso. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-b1df33d4-3d74-483b-b839-5a1ff7f55db8) --- # Emisión Timbrado Fuente: https://developers.sw.com.mx/knowledge-base/emision-timbrado-cfdi/ Categoria: Tipos de Timbrado Servicio de timbrado que recibe un CFDI en formato XML, acepta **[complementos de CFDI](https://developers.sw.com.mx/article-categories/ejemplos-4-0/)** y es compatible con la versión vigente. Los atributos `Sello`, `Certificado` y `NoCertificado` deben enviarse vacíos. En ambiente de pruebas se permite el uso de CSD reales, aunque se recomienda utilizar los **[certificados de prueba.](https://developers.sw.com.mx/knowledge-base/donde-encuentro-csd-de-pruebas-vigentes/)** **💡Nota Importante:** 👉 Por motivos de **compatibilidad**, aunque el path de nuestros servicios indique **/cfdi33**, este mismo endpoint acepta la versión actual del CFDI. ### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 **💡Nota:** Si su implementación está prevista para gestionar un considerable volumen de transacciones en periodos de tiempo reducidos, o si su objetivo es maximizar el rendimiento en el proceso de timbrado, le recomendamos integrar el método [multipart/form-data](https://developers.sw.com.mx/knowledge-base/emision-timbrado-cfdi/#emision-timbrado-multipart-form-data), enviar el XML sin codificación base64, en conjunto con la versión de respuesta [V1](https://developers.sw.com.mx/knowledge-base/versiones-de-respuesta-timbrado/). Esta estrategia le permitirá alcanzar el máximo rendimiento y eficiencia en todas sus operaciones de timbrado. --- ### Emisión Timbrado multipart/form-data Recibe el XML como archivo en un form-data. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /cfdi33/issue/**{version}/{format}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | multipart/form-data | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | version | Requerido | [Versión de la respuesta](https://developers.sw.com.mx/knowledge-base/versiones-de-timbrado/) que devolverá el servicio. | | format | Opcional | (Default=b64) Parámetro para especificar si el XML esta en formato base 64 | #### 🧾 Parámetros Form | Propiedad | Uso | Descripción | | --- | --- | --- | | xml | Requerido | XML del comprobante a ser timbrado | #### Ejemplo Request ``` curl --request POST \ --url http://services.test.sw.com.mx/cfdi33/issue/v4 \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \ --form 'xml=cfdi.xml' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "cadenaOriginalSAT": "||1.1|fd53505e-d737-43ab-815c-8090edec3655|2022-09-05T13:04:29|SPR190613I52|NZaBl4TmCMq9zkUbWnD8a3AOzw4oScGyruxcZXonV1jIOWzrNGqwJbSDBLiSDJlKSXAueDBF+CVGuIu1wKok+FDT0pbSdKwwR+5K3X4U0uUEMiayfWAHInr2HsUbfNaCUWrndhsQyMVdnYh4v/qWAFkJfPJC+uZQHfqJD46GfgDORVMF0ZT93pu7qYuZLj2LEntQvbbp7GFmHMP96H1ccnnXXaik7fNSRKPmovPZfbC2hX5P4bwMBdh/aFwNI7iR7fsjNfdsIoluT1JQIrZdM/FsTvnm53GOJisdhEi5gSttiPCYsJ1Gd6U8H235IBBXXwJ9I8rF2ifHPquQizCINQ==|30001000000400002495||", "noCertificadoSAT": "30001000000400002495", "noCertificadoCFDI": "30001000000400002434", "uuid": "fd53505e-d737-43ab-815c-8090edec3655", "selloSAT": "EVlPWO7rWg9xwNzQX3Wpt6tEGyizljFdH/9jpp0IklJsrEnxROOCpIpyZuzxfoSoEf7rR7v5sc4GImCvpGpb/6aXsFhmPLDko40rj26kkhGz/zDA++JHfUie9U5EBWPLnnQFFcpNydHyuCwyDWab8B7xgOsOtKbYqNg3VssjALid9QF3XRSHcVvJ7FV+i6rqwPgZMZUdkiQreDL7UKCx5WS2Hnvs5Vw3FiCDMxx/30duOzcOTCOPAOql1sKLb/5ohQqNyWRGQBdXBWYyGOgH2Y2W4ljCEty1HoTLPSAy4+gCoilXAER0I7KFe7aiidfj1QHwRzpyMd7XnWSWbUthyQ==", "selloCFDI": "NZaBl4TmCMq9zkUbWnD8a3AOzw4oScGyruxcZXonV1jIOWzrNGqwJbSDBLiSDJlKSXAueDBF+CVGuIu1wKok+FDT0pbSdKwwR+5K3X4U0uUEMiayfWAHInr2HsUbfNaCUWrndhsQyMVdnYh4v/qWAFkJfPJC+uZQHfqJD46GfgDORVMF0ZT93pu7qYuZLj2LEntQvbbp7GFmHMP96H1ccnnXXaik7fNSRKPmovPZfbC2hX5P4bwMBdh/aFwNI7iR7fsjNfdsIoluT1JQIrZdM/FsTvnm53GOJisdhEi5gSttiPCYsJ1Gd6U8H235IBBXXwJ9I8rF2ifHPquQizCINQ==", "fechaTimbrado": "2022-09-05T13:04:29", "qrCode": "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", "cfdi": "" }, "status": "success" } ``` ``` { "message": "CFDI40101 - El campo Fecha no cumple con el patrón requerido.", "messageDetail": "The 'Fecha' attribute is invalid - The value '2022-09-0T00:18:10' is invalid according to its datatype 'http://www.sat.gob.mx/sitio_internet/cfd/tipoDatos/tdCFDI:t_FechaH' - The Pattern constraint failed.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto de datos referente al timbrado cuando es exitoso. Los parámetros varían según la versión de respuesta. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-47293b8d-bc17-4c7a-9da9-77673d0436d7) --- ### Emisión Timbrado application/json Recibe el XML como string en un JSON Body. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /cfdi33/issue/json/**{version}/{format}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | version | Requerido | [Versión de la respuesta](https://developers.sw.com.mx/knowledge-base/versiones-de-timbrado/) que devolverá el servicio. | | format | Opcional | (Default=b64) Parámetro para especificar si el XML esta en formato base 64 | #### 🧾 Parámetros JSON | Propiedad | Uso | Tipo | Descripción | | --- | --- | --- | --- | | data | Requerido | string | XML del comprobante a ser timbrado | #### Ejemplo Request ``` curl --request POST \ --url http://services.test.sw.com.mx/cfdi33/issue/json/v4/b64 \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{ "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxjZmRpOkNvbXByb2JhbnRlIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5zYXQuZ29iLm14L2NmZC80IGh0dHA6Ly93d3cuc2F0LmdvYi5teC9zaXRpb19pbnRlcm5ldC9jZmQvNC9jZmR2NDAueHNkIiBWZXJzaW9uPSI0LjAiIFNlcmllPSJTZXJpZSIgRm9saW89IkZvbGlvIiBGZWNoYT0iMjAyMi0wMi0wNFQxMDoxODoxMCIgU2VsbG89ImUiIENvbmRpY2lvbmVzRGVQYWdvPSJDb25kaWNpb25lc0RlUGFnbyIgU3ViVG90YWw9IjAiIERlc2N1ZW50bz0iMCIgTW9uZWRhPSJBTUQiIFRpcG9DYW1iaW89IjEiIFRvdGFsPSIwIiBUaXBvRGVDb21wcm9iYW50ZT0iVCIgRXhwb3J0YWNpb249IjAxIiBMdWdhckV4cGVkaWNpb249IjIwMDAwIiAgeG1sbnM6Y2ZkaT0iaHR0cDovL3d3dy5zYXQuZ29iLm14L2NmZC80IiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4NCiAgPGNmZGk6RW1pc29yIFJmYz0iRUtVOTAwMzE3M0M5IiBOb21icmU9IkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDViIgUmVnaW1lbkZpc2NhbD0iNjAxIiAvPg0KICA8Y2ZkaTpSZWNlcHRvciBSZmM9IlVSRTE4MDQyOVRNNiIgTm9tYnJlPSJVTklWRVJTSURBRCBST0JPVElDQSBFU1BBw5FPTEEgU0EgREUgQ1YiIERvbWljaWxpb0Zpc2NhbFJlY2VwdG9yPSI2NTAwMCIgUmVnaW1lbkZpc2NhbFJlY2VwdG9yPSI2MDEiIFVzb0NGREk9IkcwMSIgLz4NCiAgPGNmZGk6Q29uY2VwdG9zPg0KICAgIDxjZmRpOkNvbmNlcHRvIENsYXZlUHJvZFNlcnY9IjUwMjExNTAzIiBOb0lkZW50aWZpY2FjaW9uPSJVVDQyMTUxMSIgQ2FudGlkYWQ9IjEiIENsYXZlVW5pZGFkPSJIODciIFVuaWRhZD0iUGllemEiIERlc2NyaXBjaW9uPSJDaWdhcnJvcyIgVmFsb3JVbml0YXJpbz0iMC4wMCIgSW1wb3J0ZT0iMC4wMCIgIE9iamV0b0ltcD0iMDEiPg0KICAgICAgPGNmZGk6SW5mb3JtYWNpb25BZHVhbmVyYSBOdW1lcm9QZWRpbWVudG89IjIxICA0NyAgMzgwNyAgODAwMzgzMiIgLz4NCiAgICAgIDxjZmRpOlBhcnRlIENsYXZlUHJvZFNlcnY9IjUwMjExNTAzIiBWYWxvclVuaXRhcmlvPSIyMDAuMDAiIEltcG9ydGU9IjIwMC4wMCIgQ2FudGlkYWQ9IjEiIFVuaWRhZD0iUGllemEiIE5vSWRlbnRpZmljYWNpb249IjEyMyIgRGVzY3JpcGNpb249ImNvc2FzIiAvPg0KICAgIDwvY2ZkaTpDb25jZXB0bz4NCiAgPC9jZmRpOkNvbmNlcHRvcz4NCjwvY2ZkaTpDb21wcm9iYW50ZT4=" } ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "cadenaOriginalSAT": "||1.1|24b927ff-e5fa-4662-9ba0-9176a4c218b1|2022-09-06T14:35:31|SPR190613I52|iWUs4UrTN2CcZ5QwIEKIR21RVlU4VL355eU/njBtFUcjvHOuT1FZPPbJrm8Moj0C85+xTSiKQO2XDhJL0ziS504jrRDnt7GipsExlpt6Xv4ZBPjU1CzuRKvdqw/pEEXd7P4xgwOr/68lEQ+E0qbMr/4pkxlUDPHIiCT9k+ulzP+6bKtd8TQHRdxSCy+j3LEre0qT+Ujff5eCepOCnA615WfwsIelj7XGQjRKZSIcL5sBAsxpjnEHSBsJH0Pvb1W01Lx1Cmxs1zIdWIJRXlOKtq56mDckaP8ObTNTxHF61bG4Uzqll/dHsalsCKi8S0dLqLD1HNchZX0DSvJPkjanLA==|30001000000400002495||", "noCertificadoSAT": "30001000000400002495", "noCertificadoCFDI": "30001000000400002434", "uuid": "24b927ff-e5fa-4662-9ba0-9176a4c218b1", "selloSAT": "H6EE1RW5r0s781bevdbjfdxbUQ8iujfm3zdn9ua2CAoxCPic8STISjyEUMAGxJImnB5jXhZmf0XNxN+a+9/vamqR0NvE28kRb0tu7yYd4/8FB2AW8P3jRAxTTPcJfrx7Vw3KaOIf72esadLgkiGhci83Vop8QDp/8k5lzqMlNAYuNP1IsdHmj2dlYOiHVQ0egW8SfUa6EOz+AZl772kwIWKi4O8ralgQSIcKdHeoZPJYQsF9CcjBtKEmLWzUqn/hbH+col1X5MAcLZdvJJd0smhg5DBOum50xrte6G7FfebmtGk5jZTaf4lO6tVFBvMVUjNhrWEibOdDILXPcr7f8g==", "selloCFDI": "iWUs4UrTN2CcZ5QwIEKIR21RVlU4VL355eU/njBtFUcjvHOuT1FZPPbJrm8Moj0C85+xTSiKQO2XDhJL0ziS504jrRDnt7GipsExlpt6Xv4ZBPjU1CzuRKvdqw/pEEXd7P4xgwOr/68lEQ+E0qbMr/4pkxlUDPHIiCT9k+ulzP+6bKtd8TQHRdxSCy+j3LEre0qT+Ujff5eCepOCnA615WfwsIelj7XGQjRKZSIcL5sBAsxpjnEHSBsJH0Pvb1W01Lx1Cmxs1zIdWIJRXlOKtq56mDckaP8ObTNTxHF61bG4Uzqll/dHsalsCKi8S0dLqLD1HNchZX0DSvJPkjanLA==", "fechaTimbrado": "2022-09-06T14:35:31", "qrCode": "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", "cfdi": "" }, "status": "success" } ``` ``` { "message": "301 - La estructura del comprobante es incorrecta.", "messageDetail": "Error al leer el documento XML. La estructura del documento no es un Xml valido y/o la codificación del documento no es UTF8. Name cannot begin with the '<' character, hexadecimal value 0x3C. Line 1, position 1363.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto de datos referente al timbrado cuando es exitoso. Los parámetros varían según la versión de respuesta. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-bdd3fade-3825-4974-b60e-9a5152fff3e9) --- [**Consulta nuestras librerias para el timbrado.**](https://developers.sw.com.mx/knowledge-base/librerias/) --- # Emisión Timbrado JSON Fuente: https://developers.sw.com.mx/knowledge-base/emision-timbrado-json-cfdi/ Categoria: Tipos de Timbrado Servicio de timbrado que realiza el sellado y timbrado de un comprobante CFDI en formato JSON. Es compatible con la versión vigente y permite incluir **[complementos de CFDI](https://developers.sw.com.mx/article-categories/ejemplos-4-0/).** El servicio recibe un archivo JSON con una estructura definida, en la que los atributos `Sello`, `Certificado` y `NoCertificado` deben enviarse vacíos, ya que serán generados automáticamente utilizando los certificados previamente cargados en nuestro sistema, ya sea desde el portal [**ADT**](https://developers.sw.com.mx/knowledge-base/tutorial-administrador-de-timbres-version-2-0-adt-2-0/) o mediante nuestra **[API](https://developers.sw.com.mx/knowledge-base/api-certificados/)**[.](https://developers.sw.com.mx/knowledge-base/api-certificados/) La selección del certificado se realiza con base en el atributo `Emisor → Rfc` del documento. **💡Nota Importante:** 👉 Por motivos de **compatibilidad**, aunque el path de nuestros servicios indique **/cfdi33**, este mismo endpoint acepta la versión actual del CFDI. ### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 --- ### Emisión Timbrado JSON #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /v3/cfdi33/issue/json/**{version}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/jsontoxml | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | version | Requerido | [Versión de la respuesta](https://developers.sw.com.mx/knowledge-base/versiones-de-respuesta-timbrado/) que devolverá el servicio. | #### 🧾 Parámetros JSON | Propiedad | Uso | Descripción | | --- | --- | --- | | data | Requerido | JSON del comprobante a ser timbrado. | #### Ejemplo Request ``` curl --request POST \ --url http://services.test.sw.com.mx/v3/cfdi33/issue/json/v4 \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/jsontoxml' \ --data "{\n \"Version\":\"4.0\",\n \"FormaPago\":\"01\",\n \"Serie\":\"FCO\",\n \"Folio\":\"420\",\n \"Fecha\":\"2022-06-03T01:30:23\",\n \"Sello\":\"\",\n \"NoCertificado\":\"\",\n \"Certificado\":\"\",\n \"CondicionesDePago\":\"CondicionesDePago\",\n \"SubTotal\":\"13788.78\",\n \"Descuento\":\"0.00\",\n \"Moneda\":\"MXN\",\n \"TipoCambio\":\"1\",\n \"Total\":\"14,201.75\",\n \"TipoDeComprobante\":\"I\",\n \"Exportacion\":\"01\",\n \"LugarExpedicion\":\"55040\",\n \"Emisor\":{\n \"Rfc\":\"EKU9003173C9\",\n \"Nombre\":\"ESCUELA KEMPER URGATE\",\n \"RegimenFiscal\":\"601\"\n },\n \"Receptor\":{\n \"Rfc\":\"XAXX010101000\",\n \"Nombre\":\"VENTA AL PUBLICO SUCURSAL VÍA MORELOS\",\n \"DomicilioFiscalReceptor\":\"55040\",\n \"RegimenFiscalReceptor\":\"616\",\n \"UsoCFDI\":\"CP01\"\n },\n \"Conceptos\":[\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5694\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"100.0000\",\n \"Importe\":\"100.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5696\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"306.9200\",\n \"Importe\":\"306.9200\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5697\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"122.0000\",\n \"Importe\":\"122.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5698\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"310.0000\",\n \"Importe\":\"310.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5699\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"159.0517\",\n \"Importe\":\"159.0517\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"159.0517\",\n \"Importe\":\"25.4483\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5700\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"150.0000\",\n \"Importe\":\"150.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5701\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"102.1600\",\n \"Importe\":\"102.1600\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5702\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"159.0517\",\n \"Importe\":\"159.0517\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"159.0517\",\n \"Importe\":\"25.4483\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5703\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"278.9200\",\n \"Importe\":\"278.9200\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5704\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"125.0000\",\n \"Importe\":\"125.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5706\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"315.0000\",\n \"Importe\":\"315.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5708\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"261.0000\",\n \"Importe\":\"261.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5711\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"159.0517\",\n \"Importe\":\"159.0517\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"159.0517\",\n \"Importe\":\"25.4483\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5713\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"133.6500\",\n \"Importe\":\"133.6500\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5714\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"100.0000\",\n \"Importe\":\"100.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5715\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"110.1800\",\n \"Importe\":\"110.1800\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5716\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"318.1034\",\n \"Importe\":\"318.1034\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"318.1034\",\n \"Importe\":\"50.8965\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5717\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"215.0000\",\n \"Importe\":\"215.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5718\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"100.0000\",\n \"Importe\":\"100.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5719\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"210.0000\",\n \"Importe\":\"210.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5720\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"791.3793\",\n \"Importe\":\"791.3793\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"791.3793\",\n \"Importe\":\"126.6206\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5721\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"555.9200\",\n \"Importe\":\"555.9200\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5722\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"434.1500\",\n \"Importe\":\"434.1500\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5723\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"110.0000\",\n \"Importe\":\"110.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5724\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"135.0000\",\n \"Importe\":\"135.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5726\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"159.0517\",\n \"Importe\":\"159.0517\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"159.0517\",\n \"Importe\":\"25.4483\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5727\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"310.0000\",\n \"Importe\":\"310.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5728\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"585.8000\",\n \"Importe\":\"585.8000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5729\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"406.1400\",\n \"Importe\":\"406.1400\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5730\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"300.0000\",\n \"Importe\":\"300.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5732\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"300.0000\",\n \"Importe\":\"300.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5733\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"310.0000\",\n \"Importe\":\"310.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5734\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"172.4800\",\n \"Importe\":\"172.4800\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5735\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"330.0000\",\n \"Importe\":\"330.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5736\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"172.4138\",\n \"Importe\":\"172.4138\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"172.4138\",\n \"Importe\":\"27.5862\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5737\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"159.0517\",\n \"Importe\":\"159.0517\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"159.0517\",\n \"Importe\":\"25.4483\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5738\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"386.5000\",\n \"Importe\":\"386.5000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5739\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"521.4000\",\n \"Importe\":\"521.4000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5740\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"119.3900\",\n \"Importe\":\"119.3900\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5741\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"200.0000\",\n \"Importe\":\"200.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5742\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"500.0000\",\n \"Importe\":\"500.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5743\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"600.0000\",\n \"Importe\":\"600.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5745\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"244.0000\",\n \"Importe\":\"244.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5747\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"370.0000\",\n \"Importe\":\"370.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5748\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"172.4138\",\n \"Importe\":\"172.4138\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"172.4138\",\n \"Importe\":\"27.5862\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5749\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"210.1400\",\n \"Importe\":\"210.1400\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5751\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"581.0000\",\n \"Importe\":\"581.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5753\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"255.5000\",\n \"Importe\":\"255.5000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5754\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"389.5517\",\n \"Importe\":\"389.5517\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"159.0517\",\n \"Importe\":\"25.4483\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5755\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"100.0000\",\n \"Importe\":\"100.0000\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"01\"\n },\n {\n \"ClaveProdServ\":\"01010101\",\n \"NoIdentificacion\":\"O5756\",\n \"Cantidad\":\"1\",\n \"ClaveUnidad\":\"ACT\",\n \"Unidad\":\"Pieza\",\n \"Descripcion\":\"Venta\",\n \"ValorUnitario\":\"172.4138\",\n \"Importe\":\"172.4138\",\n \"Descuento\":\"0.00\",\n \"ObjetoImp\":\"02\",\n \"Impuestos\":{\n \"Traslados\":[\n {\n \"Base\":\"172.4138\",\n \"Importe\":\"27.5862\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n }\n ],\n \"Impuestos\":{\n \"TotalImpuestosTrasladados\":\"412.97\",\n \"Traslados\":[\n {\n \"Base\":\"2581.03\",\n \"Importe\":\"412.97\",\n \"Impuesto\":\"002\",\n \"TasaOCuota\":\"0.160000\",\n \"TipoFactor\":\"Tasa\"\n }\n ]\n }\n}\n" ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "cadenaOriginalSAT": "||1.1|283278da-b743-48bc-8001-62ce33471607|2022-09-13T10:28:09|SPR190613I52|jJhgoSOG0p09F/eNN5kYSFcCaIXRsG2heQkQhQzxng/AfYNXnDVqtT/xMPqg5SZbVfihkg86edu+6MRHl7sg2Ss3w8LKES1ZR/KRtEpc7hVmM8eADBtVAcvAWTP/sKfk1JtGnblET6yBs73LTxNhISz5zzVyK9Z8NKRC5NplJbYCWM5oNkuSnxw3HK+OVJPWz/jAVcxFMJT74CgFJnE8wHCQRlgdC4K6EiQ5V+o6oyze5eEN7GLprQ+uCNRX/TVLPh5zGLDFCD8/86dRBzkECeF51aT/VOfRvPWl7/xzjtf/UhelVGY94Qqbx22IMTYQYp+2H9uup3j9RGHwaqsSwA==|30001000000400002495||", "noCertificadoSAT": "30001000000400002495", "noCertificadoCFDI": "30001000000400002434", "uuid": "283278da-b743-48bc-8001-62ce33471607", "selloSAT": "Bki4iHQhSKHiKNGrcQiOv2as8Uj0eUlx1MnJXuqVGTF7VFqNVWrZWZBqBKyOpmFzqSfSUMNh5zX2G2QvWKidycu+fL6qgzXi2IwWlbOyz+BbnjfFanjZyVvKkwhoyDp2nGsqOl1kyqhyLIYeSCleqiOkZeUl54rRRdRB6c4vxxhzE1NWXpxGVoOi/ChEdUF3/nGtnXGcHnEhyFLKKxAvFmmToJlkjr4//gjHSnAbVxD2NOpA/8mKkSN2hLP2rLKfUgcEWnkzYDUPqG2iAESf4+v0MT2KTcevnIo6BNva/sxxUyZJMRfyym6EmuRwM28K2AJVRt1IS5lL8c/Ty56SzQ==", "selloCFDI": "jJhgoSOG0p09F/eNN5kYSFcCaIXRsG2heQkQhQzxng/AfYNXnDVqtT/xMPqg5SZbVfihkg86edu+6MRHl7sg2Ss3w8LKES1ZR/KRtEpc7hVmM8eADBtVAcvAWTP/sKfk1JtGnblET6yBs73LTxNhISz5zzVyK9Z8NKRC5NplJbYCWM5oNkuSnxw3HK+OVJPWz/jAVcxFMJT74CgFJnE8wHCQRlgdC4K6EiQ5V+o6oyze5eEN7GLprQ+uCNRX/TVLPh5zGLDFCD8/86dRBzkECeF51aT/VOfRvPWl7/xzjtf/UhelVGY94Qqbx22IMTYQYp+2H9uup3j9RGHwaqsSwA==", "fechaTimbrado": "2022-09-13T10:28:09", "qrCode": "iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAYAAACuwEE+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAxRSURBVHhe7ZLRigRJDgP3/396j4YJMEGqnVnlhuXIAD1IVnrcQ/3z7+VywP1gLkfcD+ZyxP1gLkfcD+ZyxP1gLkfcD+ZyxP1gLkfcD+ZyxP1gLkfcD+ZyxP1gLkfcD+ZyxP1gLkfcD+ZyxP1gLkfcD+ZyxMgH888//zxSYtX9COxNfVN79tDlnTpS7zQH5qeaYGTL6rgdJVbdj8De1De1Zw9d3qkj9U5zYH6qCUa2nB70tO93zhHYm/rmm8De1DcrQcphd77Laf8bI1t+/QPo+51zBPamvvkmsDf1zUqQctid73La/8bIFh+EtyB5y3S5BV0O9oZ5J7CHpz1wjrfA/g0jW9KBFiRvmS63oMvB3jDvBPbwtAfO8RbYv2FkSzrQguSTjPPOJ9K7U3U87cOut8D+DSNb0oEWJJ9knHc+kd6dquNpH3a9BfZvGNmSDrSg85ByQ8/9Lofa+SZYzT5KpJ5zK+F5fVMF9m8Y2ZIOtKDzkHJDz/0uh9r5JljNPkqknnMr4Xl9UwX2bxjZcnqQ++k9+dO5Sb3uPfOuB+51HsjTHLq5Oe1/Y2TL2x+Q3pM/nZvU694z73rgXueBPM2hm5vT/jdGtnDQqeD6Z/5UE4xsWR23I7j+mT/VBDNbXrL6cSvBavZRYtVdKeF5fbMS7OZJ/0X+E1et/lkrwWr2UWLVXSnheX2zEuzmSf9FRq7yD6w/+ps6un7KTd2x6nu+q47TvknvnSf9gpGtPrAe/U0dXT/lpu5Y9T3fVcdp36T3zpN+wejWdHDKjXsWrGY7gi43qZdysDfMk4zzt70nzGz5g8N8YMqNexasZjuCLjepl3KwN8yTjPO3vSeMbOkOTN45dLmV2O2Be0+9c3PaM87xzn/ByHYfuuudQ5dbid0euPfUOzenPeMc7/wXjGxPB9ubrm9vmFuQ/G4OaZ5ySLmpO6qM81M/wcg2DvOB9qbr2xvmFiS/m0OapxxSbuqOKuP81E8wu+2P7lDP8Z1gNfvolPSuy9M84XfIOK/dVQ7JWxPMbBHdgZ7jO8Fq9tEp6V2Xp3nC75BxXrurHJK3JhjZ8vSw1K+7dua7gtWsClazHZmUm7pjpw/du5Q/YWRLPfbksNSvu3bmu4LVrApWsx2ZlJu6Y6cP3buUP2FkSz22ClazbwJ7qN3V3KS+PdTuat7hd6c+Qc9959YkI9tWR34Eq9k3gT3U7mpuUt8eanc17/C7U5+g575za5KRbasjP4LTHDxHsOstczpHkPKO9C7l0M2hmz9hZFs9vgpOc/Acwa63zOkcQco70ruUQzeHbv6E2W2i/qg3gs4DeRJ0OSSfcqidVW5Oc2CeNMnsNrE6/omg80CeBF0OyaccameVm9McmCdNMrJtdWRVYrdnuncph/r2pLerhOf1zU5u3ENgP8HItnrsSondnunepRzq25PerhKe1zc7uXEPgf0Eo9vSgeSdYDX76JT0ru6sc3vTzYFep11Wbz8yKZ9kdHv3QzrBavbRKeld3Vnn9qabA71Ou6zefmRSPsno9u5gz7v+Lmlvl1u7uF93VJk0d94p0c0nGN1++oO6/i5pb5dbu7hfd1SZNHfeKdHNJxjZXn/ME71ltXMl2M0RdN4wd6/LoXaqTMqhm58wsoWDnuotq50rwW6OoPOGuXtdDrVTZVIO3fyEkS0+CJ9knKee6Xqepz55mkPqpfwpaV/yzk03P2Fkiw/CJxnnqWe6nuepT57mkHopf0ral7xz081PmNkiTn8A3oIuh9qpgs7Dbo5/K0g+5WAPKX/D7LY/ukM9x1vQ5VA7VdB52M3xbwXJpxzsIeVvGNnWHZzm0PU8R7DrLUg5OO88pByYu+fcAntT33zrnTCyJR1Uj13Noet5jmDXW5BycN55SDkwd8+5BfamvvnWO2Fmyx8+rB67I+i8YW51rN7sCOwT9e1KZtV5o0lGt/nAevSOoPOGudWxerMjsE/UtyuZVeeNJpndJnYP9zz5XcFqVgX2JvWdJ972USL1Uv6GmS2B3YM9T35XsJpVgb1JfeeJt32USL2Uv2Fmyx/pMOfJdzlKeF7f7AiSd25SL/kk47zzv2T0r6TDnSff5SjheX2zI0jeuUm95JOM887/kp/8FX6AlfC8vvmWW5D8bm7cQ7DrTwX2pr6pvZS/YWaL8KEo4Xl98y23IPnd3LiHYNefCuxNfVN7KX/DzJY/fFg99kS7rN5+ZNLc+a7A3tQ3K5k0d74rsH/DzJY/0qGn2mX19iOT5s53BfamvlnJpLnzXYH9G2a2iHSg89SD1HcOzmv3W97JOK/dbzmC5J2D89qtOXTzJ8xsEelA56kHqe8cnNfut7yTcV6733IEyTsH57Vbc+jmT5jZ8ocPS945dHOz24PUJz+d20PtVsFqVmW6Oez23jC61Ycm7xy6udntQeqTn87toXarYDWrMt0cdntv+MnWdHjyzk3X6+bQ9TxHZtX5JljNVgJ7qN06t/8FP9lef0z9Ack7N12vm0PX8xyZVeebYDVbCeyhduvc/heMbE+HOwfntVtzk3r2kPJEt8faZfddmte3K5lu/oaRbT6sHltzcF67NTepZw8pT3R7rF1236V5fbuS6eZvGNnmwzoPKU+4j7dgNfsm47x2aw5P806wmlVB598wsqU70B5SnnAfb8Fq9k3Gee3WHJ7mnWA1q4LOv2Fmi+BAH+q8k1l1qhJdz3MEKU+4V99Wgb2pb1a90/wNs9v+4FAf7LyTWXWqEl3PcwQpT7hX31aBvalvVr3T/A0j2zjMB3YeUs+CzsPTHjjH7+Ydfocg+dN8kpFt9dh6YOch9SzoPDztgXP8bt7hdwiSP80nGdmWDjvNwXN8J+M89aDr4y1IPuWmduu8y03truZvGNmWDjvNwXN8J+M89aDr4y1IPuWmduu8y03truZvmN32hw+2jPPOA/muYDX7COyhduv8NO/wO5TwvPNvmNkiODDJOO88kO8KVrOPwB5qt85P8w6/QwnPO/+GkS0clA5znnrA3L3kLeg8dD28c+PeU52y2lE1yci27kDnqQfM3Uvegs5D18M7N+491SmrHVWTjGxbHfmR2c0733HaB79Le7qefUd67xyc127Nf8HIdh+MzG7e+Y7TPvhd2tP17DvSe+fgvHZr/gtGt3cH1x9Ve/amvqmClMPTuT10eZJxnnrQ9e1/wej27mDm7tmb+qYKUg5P5/bQ5UnGeepB17f/BaPbObiTSfNdv5ubNK9vv6mj63mO73IE9qabnzCz5Q8O62TSfNfv5ibN69tv6uh6nuO7HIG96eYnjGzhIB/mPAlSDmne5WBvUt+C5LvcMrs53jmk/A0j2+rR9UDnSZBySPMuB3uT+hYk3+WW2c3xziHlbxjdVo/fOdS9p+92mdrvefLOE+7VtzUHz1Gim58ws+WPevzOge49fbfL1H7Pk3eecK++rTl4jhLd/ISZLYF0KLn1Fu/pPJDvCjoP5J7bQ+o91SSz20Q6uP6Yqrd4T+eBfFfQeSD33B5S76kmmd32kO4HOq/dqoTn9U1VwvPOG+ap57x2qxKpl/I3zGx5SffDnNduVcLz+qYq4XnnDfPUc167VYnUS/kbRrb4sF2ZLk8yp3MEyafcdD18yqF2VjnY/5KRv8LBpzJdnmRO5wiST7npeviUQ+2scrD/JSN/5fRg9/EWpBw8R7CafQT2puvbG+ap57x2qxJdL+VPGNlyepD7eAtSDp4jWM0+AnvT9e0N89RzXrtVia6X8ieMbPFBeAs6D6mX8kTXx+8Kkk8yKYf69onA/g0jW9KBFnQeUi/lia6P3xUkn2RSDvXtE4H9G0a2pAMtSN4yae7cguSdg+cW7OYIku90ytN3K0a2+CC8BclbJs2dW5C8c/Dcgt0cQfKdTnn6bsXIFh+EtyB558Y9y6w6VbCaVZmp+Sl+h7cg5W8Y2eKD6pFVkLxz455lVp0qWM2qzNT8FL/DW5DyN4xsOT2o6zPvegm/R8b5aS8J7KF2q8AepvI3jGw7PazrM+96Cb9HxvlpLwnsoXarwB6m8jeMbOOwU0HK4TQ39NxPeaLrT+UdvLPAfpKRrfXoE0HK4TQ39NxPeaLrT+UdvLPAfpLfbL3833I/mMsR94O5HHE/mMsR94O5HHE/mMsR94O5HHE/mMsR94O5HHE/mMsR94O5HHE/mMsR94O5HHE/mMsR94O5HHE/mMsR94O5HPDvv/8DUoNnnI4zZGYAAAAASUVORK5CYII=", "cfdi": "" }, "status": "success" } ``` ``` { "message": "301 - La estructura del comprobante es incorrecta.", "messageDetail": "The value of the 'Version' attribute does not equal its fixed value.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto de datos referente al timbrado cuando es exitoso. Los parámetros varían según la versión de respuesta. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-b6905e20-d018-46c9-abed-ef0dbbc454c6) --- **[Consulta nuestras librerías para el timbrado.](https://developers.sw.com.mx/knowledge-base/librerias/)** --- # Timbrado Fuente: https://developers.sw.com.mx/knowledge-base/servicio-de-timbrado/ Categoria: Tipos de Timbrado Servicio que realiza el timbrado de un comprobante CFDI 4.0 previamente sellado en formato XML, acepta [**complementos de CFDI**](https://developers.sw.com.mx/article-categories/ejemplos-4-0/) y es compatible con la versión vigente. En ambiente de pruebas se permite el uso de CSD reales, aunque se recomienda utilizar los [**certificados de prueba.**](https://developers.sw.com.mx/knowledge-base/donde-encuentro-csd-de-pruebas-vigentes/) **💡Nota Importante:** 👉 Por motivos de **compatibilidad**, aunque el path de nuestros servicios indique **/cfdi33**, este mismo endpoint acepta la versión actual del CFDI. ### URL´s 🛠️ Pruebas: `https://services.test.sw.com.mx` 📄 🚀 Productivo: `https://services.sw.com.mx` 📄 --- ### Timbrado multipart/form-data Recibe el XML como archivo en un form-data. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /cfdi33/stamp/**{version}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | multipart/form-data | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | version | Requerido | [Versión de la respuesta](https://developers.sw.com.mx/knowledge-base/versiones-de-respuesta-timbrado/) que devolverá el servicio. | #### 🧾 Parámetros Form | Propiedad | Uso | Descripción | | --- | --- | --- | | xml | Requerido | XML del comprobante a ser timbrado. | #### Ejemplo Request ``` curl --request POST \ --url http://services.test.sw.com.mx/cfdi33/stamp/v4/ \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \ --form 'xml=cfdi.xml' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "cadenaOriginalSAT": "||1.1|05c519de-6d20-4258-88fb-c69a5970e927|2022-09-06T14:04:02|SPR190613I52|KVttNU/m3oEfJG/3efOsn3pUqZTuZ431FmfADTX+AyWyXAiP5HiAQ2D7L/LL7w/jfIUykZvkx5sa81VfXcD1wgi1ibiK2IAvojrRCgjUaQCOxSs029zsC7/ksU9Wtcb8nTSMy840QCGIdQF2wmpcsYmW713xvSHx2gVAQdopNfxJBC5NWlJH1KTBf0OrCsoOAdxejQDYNPniH6W6Y4yxF5Wg/0pIAX9kZB9y3+nbJzKqYml6ob0V8bExEGDFKblWlZ2JexGIldhRXFc4prwi3L05Q2NGlGN4dLEEK+oeTBSJRgEwlt/EYvtE1U1KUY79AqVx9+zNQxUEJMApUlZ1Kg==|30001000000400002495||", "noCertificadoSAT": "30001000000400002495", "noCertificadoCFDI": "30001000000400002434", "uuid": "05c519de-6d20-4258-88fb-c69a5970e927", "selloSAT": "qadm+mH3gZuYMnQZSWVoD/AEkekn8Mw1OSpM+9sD+9W7BIbagcWgITzxAPLe2t31QlwnqtohKOoFBkzzx3pyk8tp+8f1nse/lmQo+wsKR0qt6DquhcH5W6dLAMWc91kMy4vXbnuMPAKShl2f9MRQQzX07PPSNxqCuwTrBbPQKqWFw/K9dk1TnsRpwb52qa87srpY8wqIOgyLbbhx5ItTV0StGb0m6749p9BqsB0bOhPKIhPnkvpEnfXXZ+nccTJtC718/fP4sZqUnmJbcvjVAvNkiAhBWoeGRL9BBX+TO5zVX0D26pet0z0SgocoxWLToaRWgEhgjGP9EE2bf2+5QQ==", "selloCFDI": "KVttNU/m3oEfJG/3efOsn3pUqZTuZ431FmfADTX+AyWyXAiP5HiAQ2D7L/LL7w/jfIUykZvkx5sa81VfXcD1wgi1ibiK2IAvojrRCgjUaQCOxSs029zsC7/ksU9Wtcb8nTSMy840QCGIdQF2wmpcsYmW713xvSHx2gVAQdopNfxJBC5NWlJH1KTBf0OrCsoOAdxejQDYNPniH6W6Y4yxF5Wg/0pIAX9kZB9y3+nbJzKqYml6ob0V8bExEGDFKblWlZ2JexGIldhRXFc4prwi3L05Q2NGlGN4dLEEK+oeTBSJRgEwlt/EYvtE1U1KUY79AqVx9+zNQxUEJMApUlZ1Kg==", "fechaTimbrado": "2022-09-06T14:04:02", "qrCode": "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", "cfdi": "" }, "status": "success" } ``` ``` { "message": "301 - La estructura del comprobante es incorrecta.", "messageDetail": "Error al leer el documento XML. La estructura del documento no es un Xml valido y/o la codificación del documento no es UTF8. The 'cfdi:Retencion' start tag on line 1 position 3717 does not match the end tag of 'cfdi:Retenciones'. Line 1, position 3767.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto de datos referente al timbrado cuando es exitoso. Los parámetros varían según la versión de respuesta. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-66bba641-33a8-4105-9a06-2ebeb19c0b17) --- ### Timbrado application/json Recibe el XML como string en un JSON Body. #### 🔗 Endpoint | Método | Ruta | | --- | --- | | **POST** | /cfdi33/stamp/json/**{version}/{format}** | #### 🔐 Autenticación y Headers | Header | Value | | --- | --- | | Authorization | [Bearer Token](https://developers.sw.com.mx/knowledge-base/autenticacion-v2/) | | Content-Type | application/json | #### 📍 Parámetros Path | Propiedad | Uso | Descripción | | --- | --- | --- | | version | Requerido | [Versión de la respuesta](https://developers.sw.com.mx/knowledge-base/versiones-de-respuesta-timbrado/) que devolverá el servicio. | | format | Opcional | (Default=b64) Parámetro para especificar si el XML esta en formato base 64 | #### 🧾 Parámetros JSON | Propiedad | Uso | Tipo | Descripción | | --- | --- | --- | --- | | data | Requerido | string | XML del comprobante a ser timbrado | #### Ejemplo Request ``` curl --request POST \ --url http://services.test.sw.com.mx/cfdi33/stamp/json/v4 \ --header 'Authorization: Bearer $token' \ --header 'Content-Type: application/json' \ --data '{"data":" "}' ``` #### Ejemplo Response ✅ Response Ok (200) ❌ Response Error (400) 📘 Atributos de la respuesta ``` { "data": { "cadenaOriginalSAT": "||1.1|7925fffa-fea3-44d3-8b48-904993f798e8|2022-09-06T14:24:17|SPR190613I52|DSnS6n28VUCBw3G/drw+WJvOYtV7c9O+wYIDFQqJbmGeeoAWuqlgUYPvw9e3c0Syzk+qZibsI6Cy7994Xcsxdvnrf5JwpQiCqj1duYxSmP6THYsesqv+IJkVbivs3q+k64vIxjbwimhpZXBsLxbkabZwcnhCxYx09OOS1lATUEysX8W+zhocgnZPPZqdqxETz2W85K0cK83BTssR0LWrVtsUrfdNFNQ1/pKU5m5nqYStbY+aK2l7RSHaPbb3i3+BdVJuGY4HJTU/LLMPvHU9L70I9XqBDkP9Mt19kpYMGmK5/FfwJKY2PvL58sLdQ/Di8i7f7gNesggLV4oZ8b5C8A==|30001000000400002495||", "noCertificadoSAT": "30001000000400002495", "noCertificadoCFDI": "30001000000400002434", "uuid": "7925fffa-fea3-44d3-8b48-904993f798e8", "selloSAT": "aY/C56tLyTqAlG5h4K3FQHWaHvtFgD44ZbDgclVRiUXpOdHHVCHRRTfvXvimM/YmHCeoOS0NwvWVsChpGXfcmv7rLj9WlXK8nRfSZhnG0aCPH5Oo47StvApKPMoYIoudCUqV+76Zga7Ib/EcZcYrzC80Vgzg/ISh1P2vxo7aOzP9QgmGDzNbzOLfPImjgz2MBzTFdKP4pPG6G0DUP9Sf+KbgN0g+1TesopzQ/cUtpY0bkkBZIY8FP7Yj+RmvwhNOa/8jPkfpd6kbJwoIVkCHcRJYOsqOdMG4LKb8DP+sV/Ry4qqC3vbOUpp7viaB3yp7ttnLQMnIrgkcLZA+dTSUOA==", "selloCFDI": "DSnS6n28VUCBw3G/drw+WJvOYtV7c9O+wYIDFQqJbmGeeoAWuqlgUYPvw9e3c0Syzk+qZibsI6Cy7994Xcsxdvnrf5JwpQiCqj1duYxSmP6THYsesqv+IJkVbivs3q+k64vIxjbwimhpZXBsLxbkabZwcnhCxYx09OOS1lATUEysX8W+zhocgnZPPZqdqxETz2W85K0cK83BTssR0LWrVtsUrfdNFNQ1/pKU5m5nqYStbY+aK2l7RSHaPbb3i3+BdVJuGY4HJTU/LLMPvHU9L70I9XqBDkP9Mt19kpYMGmK5/FfwJKY2PvL58sLdQ/Di8i7f7gNesggLV4oZ8b5C8A==", "fechaTimbrado": "2022-09-06T14:24:17", "qrCode": "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", "cfdi": "" }, "status": "success" } ``` ``` { "message": "301 - La estructura del comprobante es incorrecta.", "messageDetail": "Error al leer el documento XML. La estructura del documento no es un Xml valido y/o la codificación del documento no es UTF8. ' ' is an unexpected token. The expected token is '>'. Line 1, position 3761.", "data": null, "status": "error" } ``` | Atributo | Tipo | Descripción | | --- | --- | --- | | message | String | Código regresado cuando existe un error. | | messageDetail | String | Mensaje más descriptivo del error cuando existe uno. | | data | object/null | Objeto de datos referente al timbrado cuando es exitoso. Los parámetros varían según la versión de respuesta. | | status | String | “success” o “error” | [Probar en Postman](https://www.postman.com/development-swsapien/sw-api-developers/request/23720084-2e368f8d-9198-4493-b764-f9d0f49057dc) --- **[Consulta nuestras librerías para el timbrado.](https://developers.sw.com.mx/knowledge-base/librerias/)** --- # TipsDevs Fuente: https://developers.sw.com.mx/knowledge-base/tipsdevs/ Categoria: TipsDevs Clips prácticos y de alto interés que servirán de apoyo para comprender procesos y técnicas de timbrado de CFDI, asi como orientación conceptual-fiscal las nuevas disposiciones para el CFDI 4.0 ## Videos _Total: 107 videos · fuente: `https://developers.sw.com.mx/wp-json/tools/v1/tipsdevs`_ ### TipsDevs - [Regla 2.7.1.35 para Cancelación de Pagos 2026](https://www.youtube.com/watch?v=IJohKbkTwzM) - [Error CFDI40137 (El campo TipoRelacion no contiene un valor del catálogo c_TipoRelacion)](https://www.youtube.com/watch?v=_yGaZECH4GA) - [Error CRP20265 (Campo ImporteP Retención no es igual a la suma de importes registrados)](https://www.youtube.com/watch?v=iMEOeU4HoLg) - [Error CFDI40102 (El resultado de digestión debe ser igual a la descripción del sello)](https://www.youtube.com/watch?v=tc-JM6rRadA) - [Error CP153 (No existe la sección Autotransporte, el atributo Mercancias...)](https://www.youtube.com/watch?v=jLtxkpC03Ps) - [Error CFDI 40162 (El campo ClaveProdServ no contiene valor del Catálogo c_ClaveProdServ)](https://www.youtube.com/watch?v=oQIB7Q3TcBg) - [Error Reten20116 (El valor de “NomDenRazSocR” debe pertenecer al nombre asociado RFC...)](https://www.youtube.com/watch?v=TSGH_s7VDac) - [Error CP155 (El valor registrado en atributo “Mercancia:MaterialPeligroso” no es valido)](https://www.youtube.com/watch?v=L-oGiWtbu7Q) - [Código de Error CFDI40147 (DomicilioFiscalReceptor debe encontrarse en la lista RFC ...)](https://www.youtube.com/watch?v=vFmp1zn0HHU) - [¿En que consiste nuestro servicio de Sellado y Timbrado?](https://www.youtube.com/watch?v=pOYX63bPPmU) - [Código de Error 305 (Certificado no encontrado en LCO para validar vigencia...)](https://www.youtube.com/watch?v=PIHSr6-AqvI) - [Código de Error 305 (La fecha de emisión no está dentro de vigencia del CSD emisor)](https://www.youtube.com/watch?v=f4aAHQvDKzc) - [Código de Error CCE121 (Tipo de cambio no corresponde...)](https://www.youtube.com/watch?v=2YpB6JKPBOE) - [Código de Error 402 (RFC del emisor no se encuentra en las listas LCO)](https://www.youtube.com/watch?v=2Q03D-3c-hU) - [¿Qué es la Validez de Obligaciones?](https://www.youtube.com/watch?v=MV3wK3beICA) - [Impuesto Tasa Cero en un CFDI (Construcción XML)](https://www.youtube.com/watch?v=AyPAKucIfKY) - [Impuesto Exento en un CFDI (Construcción XML)](https://www.youtube.com/watch?v=rBeUMZSIFyE) - [Descuento del 100% en un CFDI (Construcción XML)](https://www.youtube.com/watch?v=qvmPeYI8D3c) - [Código de Error CRP20999 (Atributo TrasladoDR: TasaOCuota debe contar con 6 decimales)](https://www.youtube.com/watch?v=420T9Wiqlb0) - [Código de Error CRP20999 (Los impuestos a nivel TrasladoDR no concuerdan con TrasladosP)](https://www.youtube.com/watch?v=lhiC0Mwfb88) - [Código de Error CRP20999 (Diferencia en cantidad de impuestos TrasladosDR y TrasladosP)](https://www.youtube.com/watch?v=uIOx_FqKJ6A) - [Código de Error CP194 (Complemento Carta Porte V3.1)](https://www.youtube.com/watch?v=lcKFANw8M5s) - [Código de Error CP147 (Complemento Carta Porte V3.1)](https://www.youtube.com/watch?v=e3570zbkhms) - [Motivo de Error CP169 Regímenes Aduaneros](https://www.youtube.com/watch?v=-vrzXkTnPgc) - [Motivo de Error CP117 Regímenes Aduaneros](https://www.youtube.com/watch?v=amuQmO5fERI) - [Motivos de Error CFDI40999: No Clasificado (2da Parte)](https://www.youtube.com/watch?v=FBoF-93RKtc) - [Error de Namespace (Complemento Carta Porte V3.1)](https://www.youtube.com/watch?v=vSocNyWO35Y) - [Error CP999 No Clasificado - Regímenes Aduaneros (Complemento Carta Porte V3.1)](https://www.youtube.com/watch?v=pA0xTKr2GB0) - [Cambios importantes que debes identificar en Complemento Carta Porte V3.1](https://www.youtube.com/watch?v=dXnaKk5k8GU) - [Motivo de de Error 402 (RFC del emisor no se encuentra en el régimen de contribuyentes LCO)](https://www.youtube.com/watch?v=bHryt6KYiQk) - [Motivo de Error 401 (El rango de fecha de generación no debe de ser mayor ...)](https://www.youtube.com/watch?v=FFMpSBQJo3E) - [Motivo de Error CRP20238 y CRP20277, Pagos 2.0 Rev. B (Atributo Monto - EquivalenciaDR)](https://www.youtube.com/watch?v=L1DZwlTrLAw) - [Motivo de Error CRP20276 (Nuevas validaciones para Pagos 2.0 Rev. B)](https://www.youtube.com/watch?v=b7Zlvb5VGwo) - [Principales cambios para la Nueva "Revisión B" del Complemento Recepción de Pagos 2.0](https://www.youtube.com/watch?v=aUrnsgeMZrk) - [Nuevas Herramientas GRATUITAS de SW®](https://www.youtube.com/watch?v=9EoGighocig) - [Acuse de Cancelación y códigos de respuesta](https://www.youtube.com/watch?v=C3LlKaC4XOA) - [Diferencias entre Códigos de Error CFDI140224 y CFDI140225](https://www.youtube.com/watch?v=9N0TXe0giUY) - [Motivo de Error CFDI140225 (Debe existir el valor 001 ISR...)](https://www.youtube.com/watch?v=iuhBBAYlXQk) - [Motivo de Error CFDI140224 (El valor 001 ISR no debe existir...)](https://www.youtube.com/watch?v=dkvsz7GbQZc) - [Validación del régimen fiscal receptor](https://www.youtube.com/watch?v=D7xAFR4d58g) - [Motivo de Error CFDI40159 (La clave del campo RegimenFiscalReceptor no corresponde...)](https://www.youtube.com/watch?v=FmGudASLFpg) - [Motivo de error por caracter especial en Nómina 4 0](https://www.youtube.com/watch?v=3uQEx64JWEg) - [Errores comunes y como evitarlos en Nómina 4 0](https://www.youtube.com/watch?v=YddjyMdbmwE) - [Consulta correctamente datos fiscales de tus empleados (Nómina 4.0)](https://www.youtube.com/watch?v=S3Dm5By7HMM) - [Principales cambios para Nómina V1.2 Revisión C - CFDI 4.0](https://www.youtube.com/watch?v=l2WhHnBfYFs) - [¿Cómo generar Token Infinito?](https://www.youtube.com/watch?v=hAvru94DHyU) - [Motivos de Error CFDI40999 (Error no clasificado)](https://www.youtube.com/watch?v=8_g6a2Mv_dg) - [A Cuenta Terceros (Principales cambios entre versiones 3.3 y 4.0)](https://www.youtube.com/watch?v=eAUTF1t5M8o) - [Motivos de Error por Nombre o Razón Social](https://www.youtube.com/watch?v=QXCqhhh6D3I) - [Motivos de Error por Domicilio Fiscal Incorrecto](https://www.youtube.com/watch?v=XxITq9TrBNk) - [Motivo de Error CFDI40143 (RFC Incorrecto)](https://www.youtube.com/watch?v=6qAtuXO3zjA) - [Motivo Error CFDI40212](https://www.youtube.com/watch?v=5bX-NdJvyvE) - [Estándar de Codificación UTF 8](https://www.youtube.com/watch?v=IGLc4LWhjN0) - [Secuencias de Escape](https://www.youtube.com/watch?v=xQKOS8L7AeA) - [Validación de datos fiscales en LRFC y LCO](https://www.youtube.com/watch?v=w51-TmpQCxk) - [Plazos para la Cancelación CFDI 2022 y Facturas Globales](https://www.youtube.com/watch?v=galQIelVyQ4) - [¿Cómo ubicar e Interpretar los catálogos para CFDI 4.0?](https://www.youtube.com/watch?v=oayEIbr_koM) - [Motivo de Error en Complemento Carta Porte: CP142](https://www.youtube.com/watch?v=kzI2Ghcfgdc) - [Motivo de Error CFDI40170](https://www.youtube.com/watch?v=vfEuoVSjx8E) - [Motivo de Error: CFDI40179](https://www.youtube.com/watch?v=z9Mz5mkBCDI) - [Error en Complemento de Pagos V2.0: CRP20275](https://www.youtube.com/watch?v=0FKIwe7CHVY) - [Motivo de Error por RFC: CFDI40143 y CFDI40187](https://www.youtube.com/watch?v=iPY2_fAm3ZA) - [¿Cómo Generar Sello para CFDI 4 0?](https://www.youtube.com/watch?v=2pnVjcVaf8c) - [Diferencias entre SOAP y REST ¿Cuál es mejor?](https://www.youtube.com/watch?v=hEEh0b21dIw) - [¿Cómo crear un PFX?](https://www.youtube.com/watch?v=4ZHLidLJ3BI) - [Recomendaciones para este cierre 2022 e inicio 2023](https://www.youtube.com/watch?v=BLJy5NetWaM) - [Sanciones en caso de incumplimiento](https://www.youtube.com/watch?v=Hbyx5T_V-A4) - [Principales cambios en Complemento de Pagos V2.0](https://www.youtube.com/watch?v=cnr3B0Rj_SI) - [Principales cambios en CFDI de Retenciones e información de pagos V2.0](https://www.youtube.com/watch?v=iaT9TMOQbek) - [Principales cambios en CFDI A Cuenta de Terceros](https://www.youtube.com/watch?v=ZlZvpAMG3Ck) - [Principales cambios en CFDI Información Global](https://www.youtube.com/watch?v=qGrXrBRUewY) - [Principales Cambios en CFDI 4 0](https://www.youtube.com/watch?v=u915MfwN4wc) - [Prórroga para el CFDI 4 0 y Complemento Carta Porte V2 0](https://www.youtube.com/watch?v=_tO5EcEqoIU) - [Actualizaciones más recientes: CFDI Nómina 3.3 y Matriz de Errores CFDI 4.0 SAT](https://www.youtube.com/watch?v=qo67wPrefQ0) - [Métodos de Servicios para Cancelación en SW® (Demo Técnica)](https://www.youtube.com/watch?v=Ct-Qss270EA) - [Métodos de Servicios para Cancelación en SW® (Conceptual)](https://www.youtube.com/watch?v=MwMxQ2DpGhM) - [Error por Autenticación y Saldo](https://www.youtube.com/watch?v=eB6PWzzskIs) - [Actualización de regla y condiciones para Factura Global (Octubre 2022)](https://www.youtube.com/watch?v=ZB3Bs4nFtEc) - [Error "CCE137" Complemento Comercio Exterior Rev. E = No se registró "NumRegIdTrib"](https://www.youtube.com/watch?v=jPJ-y9kptO8) - [Error "CCE123" Complemento Comercio Exterior Rev. E = TipoCambioUSD no corresponde](https://www.youtube.com/watch?v=oAsfD8I8rwk) - [¿Qué es la EquivalenciaDR en un Pago y cómo se calcula?](https://www.youtube.com/watch?v=GjGx7kW_d8I) - [Cómo diferenciar la FIEL o E.Firma de los CSD](https://www.youtube.com/watch?v=V3mR4t7jvCw) - [Identifica Catálogos para cada versión de CFDI y Complementos](https://www.youtube.com/watch?v=j4DoOOdYflc) - [Conoce el nuevo plazo para cancelar facturas anteriores al 2022](https://www.youtube.com/watch?v=HDZyuMxl7JY) - [¿Hay algún cambio en Nómina 2022?](https://www.youtube.com/watch?v=HXnEUSjfpHQ) - [Datos obligatorios para la emisión de CFDI Global](https://www.youtube.com/watch?v=x10VMpFtr_Y) - [Datos obligatorios para la emisión de CFDI 4.0](https://www.youtube.com/watch?v=GZ90KghN16M) - [Aspectos más relevantes para el CFDI 4.0](https://www.youtube.com/watch?v=DOqYszlL3uk) - [¿Cómo identifico si mi factura es Objeto de Impuesto?](https://www.youtube.com/watch?v=yWDKVPRda5U) - [¿Cómo saber cuando elaborar una factura Global y cuando una Público en General?](https://www.youtube.com/watch?v=X9F5NyCADRY) - [Cómo detectar fácilmente errores estructurales en tus XML](https://www.youtube.com/watch?v=INMjAH8D5NA) - [¿Por qué al cancelar un CFDI usando motivo 01 me indica que no es cancelable?](https://www.youtube.com/watch?v=gPzvwyYb_zE) - [Librerías SW® para Integración CFDI 4.0](https://www.youtube.com/watch?v=Fil4uuXrxGE) - [Error por Régimen Capital: "CFDI40138 / CFDI40145"](https://www.youtube.com/watch?v=imsnRyhk8XM) - [Error en cancelación "CA207" usando motivo 01](https://www.youtube.com/watch?v=AQj5pIhYZ7w) - [Sugerencias para una mejor integración a CFDI 4.0](https://www.youtube.com/watch?v=yqUxvi2RqF0) - [Error SchemaLocation - Namespace no se encuentra a nivel comprobante.](https://www.youtube.com/watch?v=jf5u7-8FteY) - [Coteja datos fiscales del receptor y evita errores.](https://www.youtube.com/watch?v=hdJMKkAKdng) - [Crear XML de cancelación CFDI/Retenciones (Cancelación a gran volumen)](https://www.youtube.com/watch?v=Z7WYGAs8MKk) - [Cancelación de un comprobante con relacionados](https://www.youtube.com/watch?v=x2O70f0xS2w) - [Error en Pagos CRP20217](https://www.youtube.com/watch?v=pYoS7UDT54Q) - [¿Qué impuestos declarar ante un pago diferido?](https://www.youtube.com/watch?v=S0Fq2D0O64o) - [¿Qué hacer si no se procesa mi cancelación con motivo 01?](https://www.youtube.com/watch?v=RSVQXDkjubg) - [Cómo emitir una factura global y cómo diferenciarla](https://www.youtube.com/watch?v=ZJO1v8pANX0) - [Diferencias en CFDI 3 3 y CFDI 4 0](https://www.youtube.com/watch?v=hBY6T-Aa5j4) - [Motivos de cancelación y cuándo utilizarlos](https://www.youtube.com/watch?v=R2mZxROrrVc) - [Factura Global vs Factura Público en General](https://www.youtube.com/watch?v=Q52XBa966dc) --- # Módulo 1: Modelo Actual de Cancelaciones Fuente: https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=1 Categoria: taller cancelaciones Este taller esta especialmente diseñado para TI que quieres conocer a detalle como funcionan las cancelaciones del CFDI, desde la parte conceptual, hasta la construcción e implementación técnica, si eres un Developer o solo gustas de adquirir información de interés, este contenido te será de gran utilidad. ![Persona trabajando frente a computadora](https://developers.sw.com.mx/wp-content/uploads/2025/03/banner_cancelaciones.png) # Módulo 1: Modelo Actual de Cancelaciones En este módulo aprenderás el origen, concepto y funcionamiento básico de las cancelaciones, así como los diversos contextos que influyen en el proceso. El objetivo de este módulo es que conozcas todos los procesos y elementos claves que constituyen un proceso de cancelación, así comprendido la estructura, abriremos la puerta a la implementación técnica. Conocimiento adquirido al finalizar el módulo 1: • Antecedentes y conceptos claves para entender las cancelaciones de CFDI • Entendimiento del proceso actual de cancelación (Paso a paso) • Qué figuras o actores se involucran al momento de querer aplicar una cancelación • Motivos de cancelación (Qué son y cómo usarlos) • CFDI Cancelables y no cancelables • Tipos de modalidades para la solicitud de cancelación (con aceptación y sin aceptación) • Plazo vencido (Qué es y cómo aplica) • Cancelación con CFDI relacionados y uso de motivo 01 • Escenarios prácticos del proceso de cancelación • Comportamientos y factor SAT en las cancelaciones ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAAAXNSR0IArs4c6QAAAQxJREFUOE+1lIERgjAMRT+b6Ca6iUyiTCKb6Cayifpq44UILXhH7jwtaV9+Po2NNohmA6Zq0IOkIX9i/dncFPQk6Sxp5yi9pC4/u4bcXVLrC0foTRIKCECoZG3PrA45gsKWO75/U2DUPgpR8VM5KydPoCodzmGdsQQ8eKXPvGlf8NDDvMfYdckFe4PSxiMroNrawAKsw5Y2KkXJP9CRKA9FKcm59kvq7X1gQeeh5ktKrOjfVHIkCYpXytQuBQPkxuDp90yEsgnD+a6BPTC9IOtuaqKWgGeB8fJ7G0vgIrAEtRGMVlSBNWgE45vN+sjDeFNqf30RzLoIXKLURFjbTFz1Di9RumIOPls3gb4AOQpFFm5fSXIAAAAASUVORK5CYII=) Módulo 1 | Lecciones: 10 ![Instructor icon](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAAAXNSR0IArs4c6QAAAQtJREFUOE+1lMsVwjAMBJVOoBOoBKgEqAQ6gU6gE/DkZfMc+ZtDdEtsjVfS2oNtEMMK5s7Mvj37e6DXALpFMMAXM3uXDmhBXyH5MCkEglp9F8E1KMlAgR0jVYA/00H7nNoa9BESz1OpT5esCjgsaUMPNJeoA1dDNSCGdC8opfzEETWlce8oHzD/UEm/+cewkmhNn54C8YG67JDY2IKyB3WnyEoAfTsWh/ZCAftYbX4gDIryS4Fi9bqpVKZnoxI9WDdL7wHWml3gy9fEgeSsFMPVa/YtnOCh1ZtS6INysNd48zz0V7vTBaiqm9+IGKpeFk3dgM7e9VCMnp1oxQUs0QJifM16fNrgpcubQP/Q6D8WtCQEpgAAAABJRU5ErkJggg==) Impartidor: Ingenieros de Soporte SW® ![Imagen del curso](https://img.youtube.com/vi/PZpC0XttE50/maxresdefault.jpg) Talleres ### Antecedentes y conceptos Conceptos básicos sobre cancelaciones. **Video:** [Video](https://www.youtube.com/watch?v=PZpC0XttE50) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=1) ![Imagen del curso](https://img.youtube.com/vi/3KS-83xhkm8/maxresdefault.jpg) Talleres ### Explicación general del proceso de Cancelación 2024 Guía detallada del proceso de cancelación. **Video:** [Video](https://www.youtube.com/watch?v=3KS-83xhkm8) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=1) ![Imagen del curso](https://img.youtube.com/vi/jDKpa9bpWu4/maxresdefault.jpg) Talleres ### Actores al momento de cancelar: Emisor, Receptor y SAT/PAC Roles y responsabilidades de los actores en el proceso de cancelación. **Video:** [Video](https://www.youtube.com/watch?v=jDKpa9bpWu4) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=1) ![Imagen del curso](https://img.youtube.com/vi/mDFXdt2YDrc/maxresdefault.jpg) Talleres ### Motivos de Cancelación: ¿Qué son y cómo usarlos? Explicación detallada de los motivos de cancelación y su uso. **Video:** [Video](https://www.youtube.com/watch?v=mDFXdt2YDrc) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=1) ![Imagen del curso](https://img.youtube.com/vi/jlIEL1tZIVo/maxresdefault.jpg) Talleres ### Esquema de cancelación: CFDI Cancelable o no Cancelable Diferencias entre CFDI cancelables y no cancelables. **Video:** [Video](https://www.youtube.com/watch?v=jlIEL1tZIVo) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=1) ![Imagen del curso](https://img.youtube.com/vi/33MiYy0s2aw/maxresdefault.jpg) Talleres ### Modalidades de las solicitudes: Con Aceptación, Sin Aceptación Tipos de modalidades para la solicitud de cancelación. **Video:** [Video](https://www.youtube.com/watch?v=33MiYy0s2aw) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=1) ![Imagen del curso](https://img.youtube.com/vi/qV0qTjRgbDg/maxresdefault.jpg) Talleres ### Plazo Vencido ¿Qué es y cómo aplica? Explicación detallada del plazo vencido y su aplicación. **Video:** [Video](https://www.youtube.com/watch?v=qV0qTjRgbDg) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=1) ![Imagen del curso](https://img.youtube.com/vi/W78fqTm43aw/maxresdefault.jpg) Talleres ### Cancelación con relacionados y motivó 01 Cómo cancelar con CFDI relacionados y uso del motivo 01. **Video:** [Video](https://www.youtube.com/watch?v=W78fqTm43aw) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=1) ![Imagen del curso](https://img.youtube.com/vi/bspDy1u98ek/maxresdefault.jpg) Talleres ### Repaso y ejemplos prácticos con claves de motivos Escenarios prácticos del proceso de cancelación. **Video:** [Video](https://www.youtube.com/watch?v=bspDy1u98ek) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=1) ![Imagen del curso](https://img.youtube.com/vi/X89FGMIqCWM/maxresdefault.jpg) Talleres ### Los comportamientos dependen de la autoridad SAT Comportamientos y factor SAT en las cancelaciones. **Video:** [Video](https://www.youtube.com/watch?v=X89FGMIqCWM) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=1) --- # Módulo 2: Implementación del Proceso de Cancelación (Demostración técnica) Fuente: https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=2 Categoria: taller cancelaciones Este taller esta especialmente diseñado para TI que quieres conocer a detalle como funcionan las cancelaciones del CFDI, desde la parte conceptual, hasta la construcción e implementación técnica, si eres un Developer o solo gustas de adquirir información de interés, este contenido te será de gran utilidad. ![Persona trabajando frente a computadora](https://developers.sw.com.mx/wp-content/uploads/2025/03/banner_cancelaciones.png) # Módulo 2: Implementación del Proceso de Cancelación (Demostración técnica) En este módulo te enseñamos cómo es el proceso técnico de implementación, aprenderás cuales son los principales puntos para verificar, y ejecutar adecuadamente el modelo de cancelación. El objetivo de este módulo será que puedas construir técnicamente el terreno para implementar las cancelaciones y sus diferentes variantes. Conocimiento adquirido al finalizar el módulo 2: • Procedimiento técnico para consultar estatus de cancelación y documentos relacionados en una factura • Procedimiento técnico de cancelación directa y con aceptación • Enviar una solicitud de cancelación • Acuse de cancelación (que es y cómo se obtiene) • Procedimiento técnico para aceptar la solicitud de cancelación siendo receptor • Corroboración de la cancelación ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAAAXNSR0IArs4c6QAAAQxJREFUOE+1lIERgjAMRT+b6Ca6iUyiTCKb6Cayifpq44UILXhH7jwtaV9+Po2NNohmA6Zq0IOkIX9i/dncFPQk6Sxp5yi9pC4/u4bcXVLrC0foTRIKCECoZG3PrA45gsKWO75/U2DUPgpR8VM5KydPoCodzmGdsQQ8eKXPvGlf8NDDvMfYdckFe4PSxiMroNrawAKsw5Y2KkXJP9CRKA9FKcm59kvq7X1gQeeh5ktKrOjfVHIkCYpXytQuBQPkxuDp90yEsgnD+a6BPTC9IOtuaqKWgGeB8fJ7G0vgIrAEtRGMVlSBNWgE45vN+sjDeFNqf30RzLoIXKLURFjbTFz1Di9RumIOPls3gb4AOQpFFm5fSXIAAAAASUVORK5CYII=) Módulo 2 | Lecciones: 6 ![Instructor icon](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAAAXNSR0IArs4c6QAAAQtJREFUOE+1lMsVwjAMBJVOoBOoBKgEqAQ6gU6gE/DkZfMc+ZtDdEtsjVfS2oNtEMMK5s7Mvj37e6DXALpFMMAXM3uXDmhBXyH5MCkEglp9F8E1KMlAgR0jVYA/00H7nNoa9BESz1OpT5esCjgsaUMPNJeoA1dDNSCGdC8opfzEETWlce8oHzD/UEm/+cewkmhNn54C8YG67JDY2IKyB3WnyEoAfTsWh/ZCAftYbX4gDIryS4Fi9bqpVKZnoxI9WDdL7wHWml3gy9fEgeSsFMPVa/YtnOCh1ZtS6INysNd48zz0V7vTBaiqm9+IGKpeFk3dgM7e9VCMnp1oxQUs0QJifM16fNrgpcubQP/Q6D8WtCQEpgAAAABJRU5ErkJggg==) Impartidor: Ingenieros de Soporte SW® ![Imagen del curso](https://img.youtube.com/vi/N8gWGsDn6WA/maxresdefault.jpg) Talleres ### Consulta el estatus y relacionados (Explicación téc) Procedimiento técnico para consultar estatus de cancelación y documentos relacionados en una factura. **Video:** [Video](https://www.youtube.com/watch?v=N8gWGsDn6WA) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=2) ![Imagen del curso](https://img.youtube.com/vi/vZBEo_Hdsnk/maxresdefault.jpg) Talleres ### Enviar solicitud de cancelación: “uuid, CSD” (Explicación téc) Procedimiento técnico de cancelación. **Video:** [Video](https://www.youtube.com/watch?v=vZBEo_Hdsnk) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=2) ![Imagen del curso](https://img.youtube.com/vi/DpONy01iivY/maxresdefault.jpg) Talleres ### Acuse de solicitud de cancelación ¿qué es? (Explicación téc) Acuse de cancelación (que es y cómo se obtiene). **Video:** [Video](https://www.youtube.com/watch?v=DpONy01iivY) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=2) ![Imagen del curso](https://img.youtube.com/vi/MRdC2-Z_JeY/maxresdefault.jpg) Talleres ### ¿Cómo aceptar la cancelación como receptor? (Explicación téc) Procedimiento técnico para aceptar la solicitud de cancelación siendo receptor. **Video:** [Video](https://www.youtube.com/watch?v=MRdC2-Z_JeY) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=2) ![Imagen del curso](https://img.youtube.com/vi/fs05YXX3NXA/maxresdefault.jpg) Talleres ### ¿Cómo saber si ya se canceló correctamente mi factura? (Explicación téc) Corroboración de la cancelación. **Video:** [Video](https://www.youtube.com/watch?v=fs05YXX3NXA) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=2) ![Imagen del curso](https://img.youtube.com/vi/ic6UANS7I5Q/maxresdefault.jpg) Talleres ### Notas Importantes de uso en ERP Notas importantes para el uso en ERP. **Video:** [Video](https://www.youtube.com/watch?v=ic6UANS7I5Q) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=2) --- # Módulo 3: Construcción Técnica y Uso de API's Fuente: https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=3 Categoria: taller cancelaciones Este taller esta especialmente diseñado para TI que quieres conocer a detalle como funcionan las cancelaciones del CFDI, desde la parte conceptual, hasta la construcción e implementación técnica, si eres un Developer o solo gustas de adquirir información de interés, este contenido te será de gran utilidad. ![Persona trabajando frente a computadora](https://developers.sw.com.mx/wp-content/uploads/2025/03/banner_cancelaciones.png) # Módulo 3: Construcción Técnica y Uso de API's Aquí te mostraremos la magia SW®, conocerás lo sencillo que es hacer uso de nuestros servicios en la construcción del mecanismo de cancelaciones, disponiendo de nuestras API, herramientas y mejores prácticas, tendrás un dominio total del proceso. Para este módulo, el objetivo es que conozcas e implementes los servicios y herramientas SW® que te facilitarán toda interacción técnica en el proceso de cancelación. Conocimiento adquirido al finalizar el módulo 3: • Manejo de las API para: • Consultar documentos relacionados • Métodos de Cancelación • Cómo aceptar y/o rechazar siendo receptor • Cómo obtener el acuse de cancelación • Uso de nuestro sistema administrador de timbres ADT • Manejo de códigos de error y uso practico en situaciones comunes • Recomendaciones de expertos y mejores practicas ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAAAXNSR0IArs4c6QAAAQxJREFUOE+1lIERgjAMRT+b6Ca6iUyiTCKb6Cayifpq44UILXhH7jwtaV9+Po2NNohmA6Zq0IOkIX9i/dncFPQk6Sxp5yi9pC4/u4bcXVLrC0foTRIKCECoZG3PrA45gsKWO75/U2DUPgpR8VM5KydPoCodzmGdsQQ8eKXPvGlf8NDDvMfYdckFe4PSxiMroNrawAKsw5Y2KkXJP9CRKA9FKcm59kvq7X1gQeeh5ktKrOjfVHIkCYpXytQuBQPkxuDp90yEsgnD+a6BPTC9IOtuaqKWgGeB8fJ7G0vgIrAEtRGMVlSBNWgE45vN+sjDeFNqf30RzLoIXKLURFjbTFz1Di9RumIOPls3gb4AOQpFFm5fSXIAAAAASUVORK5CYII=) Módulo 3 | Lecciones: 7 ![Instructor icon](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAAAXNSR0IArs4c6QAAAQtJREFUOE+1lMsVwjAMBJVOoBOoBKgEqAQ6gU6gE/DkZfMc+ZtDdEtsjVfS2oNtEMMK5s7Mvj37e6DXALpFMMAXM3uXDmhBXyH5MCkEglp9F8E1KMlAgR0jVYA/00H7nNoa9BESz1OpT5esCjgsaUMPNJeoA1dDNSCGdC8opfzEETWlce8oHzD/UEm/+cewkmhNn54C8YG67JDY2IKyB3WnyEoAfTsWh/ZCAftYbX4gDIryS4Fi9bqpVKZnoxI9WDdL7wHWml3gy9fEgeSsFMPVa/YtnOCh1ZtS6INysNd48zz0V7vTBaiqm9+IGKpeFk3dgM7e9VCMnp1oxQUs0QJifM16fNrgpcubQP/Q6D8WtCQEpgAAAABJRU5ErkJggg==) Impartidor: Ingenieros de Soporte SW® ![Imagen del curso](https://img.youtube.com/vi/RY6YCVarL8U/maxresdefault.jpg) Talleres ### Consulta el estatus (API) Manejo de las API para consultar documentos. **Video:** [Video](https://www.youtube.com/watch?v=RY6YCVarL8U) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=3) ![Imagen del curso](https://img.youtube.com/vi/ct_-guLPfxI/maxresdefault.jpg) Talleres ### Consulta relacionados (API) Manejo de las API para consultar documentos relacionados. **Video:** [Video](https://www.youtube.com/watch?v=ct_-guLPfxI) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=3) ![Imagen del curso](https://img.youtube.com/vi/NWIehdk1QfQ/maxresdefault.jpg) Talleres ### Métodos de Cancelación (API) - (ADT) Métodos de Cancelación y uso de nuestro sistema administrador de timbres ADT. **Video:** [Video](https://www.youtube.com/watch?v=NWIehdk1QfQ) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=3) ![Imagen del curso](https://img.youtube.com/vi/cAWivpZNtfY/maxresdefault.jpg) Talleres ### Formas de obtener un acuse de Cancelación (API) - (ADT) Cómo obtener el acuse de cancelación. **Video:** [Video](https://www.youtube.com/watch?v=cAWivpZNtfY) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=3) ![Imagen del curso](https://img.youtube.com/vi/HajZ0vfsJXE/maxresdefault.jpg) Talleres ### Receptores: Aceptar o rechazar solicitudes (API) Cómo aceptar y/o rechazar siendo receptor. **Video:** [Video](https://www.youtube.com/watch?v=HajZ0vfsJXE) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=3) ![Imagen del curso](https://img.youtube.com/vi/jxIfacfZnpE/maxresdefault.jpg) Talleres ### Códigos de errores de cancelación (Errores típicos-comunes) Manejo de códigos de error y uso practico en situaciones comunes. **Video:** [Video](https://www.youtube.com/watch?v=jxIfacfZnpE) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=3) ![Imagen del curso](https://img.youtube.com/vi/Miijn2b1gas/maxresdefault.jpg) Talleres ### Conclusión - Recomendaciones y mejores prácticas Recomendaciones de expertos y mejores practicas. **Video:** [Video](https://www.youtube.com/watch?v=Miijn2b1gas) [Contenido en texto 🔎](https://developers.sw.com.mx/knowledge-base/taller-cancelaciones-sw/?modulo=3)