Download the PHP package lunasoft/sw-sdk-php without Composer

On this page you can find all versions of the php package lunasoft/sw-sdk-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package sw-sdk-php

SDK php

A continuación encontraras una librería php para el timbrado de CFDI 4.0 mediante el consumo de los servicios de SW sapien®.

Contenido

Compatibilidad

Dependencias


Documentación


Instalación

Para poder hacer uso de nuestro SDK para consumir el servio REST que SmarterWeb le provee primero es necesario tener instalado una version de PHP ya sea la 5.6 o la version 7 y posteriormente instalar manejador de paquetes de PHP Composer

Instalar Composer

Preparar nuestro ambiente de Desarrollo

De esta manera descarga las dependencias que antes escribimos dentro del require que en nuestro caso es el SDK

En caso de no usar composer

Se puede hacer uso de las clases mediante la implementacion manual haciendo uso del archivo SWSDK.php en lugar del archivo vendor.php


Implementación

La librería cuenta con dos servicios principales los que son la Autenticacion y el Timbrado de CFDI (XML).

Soporte con servidores Proxy

Si tu posees un servidor proxy en tu empresa y deseas que la libreria lo use, debes pasar un parametro extra llamado "proxy" con el host y puerto de tu servidor proxy.

Autenticación

Autenticación El servicio de Autenticación es utilizado principalmente para obtener el **token** el cual sera utilizado para poder timbrar nuestro CFDI (xml) ya emitido (sellado), para poder utilizar este servicio es necesario que cuente con un **usuario** y **contraseña** para posteriormente obtenga el token, usted puede utilizar los que estan en este ejemplo para el ambiente de **Pruebas**. **Obtener Token** El ejemplo anterior la respuesta es un objeto tipo **JSON** y dentro de el se encuentra el **Token**

Timbrado

Timbrado CFDI **Timbrar CFDI** Recibe el contenido de un **XML** ya emitido (sellado) en formato **String** ó tambien puede ser en **Base64**, posteriormente si la factura y el token son correctos devuelve el complemento timbre en un string (**TFD**), en caso contrario lanza una excepción. ## Timbrar CFDI V1 ## **StampV1** Recibe el contenido de un **XML** ya emitido (sellado) en formato **String**, posteriormente si la factura y el token son correctos devuelve el complemento timbre en un string (**TFD**), en caso contrario lanza una excepción. **Timbrar XML en formato string utilizando usuario y contraseña** El ejemplo anterior la respuesta es un objeto tipo **JSON** y dentro de el se encuentra el **TFD** **Timbrar XML en formato string utilizando token** El ejemplo anterior la respuesta es un objeto tipo **JSON** y dentro de el se encuentra el **TFD** #### Nueva funcionalidad para el soporte con servidores Proxy #### Si tu posees un servidor proxy en tu empresa y deseas que la libreria lo use, debes pasar un parametro extra llamado "proxy". ## Timbrar CFDI V2 ## **StampV2** Recibe el contenido de un **XML** ya emitido (sellado) en formato **String**, posteriormente si la factura y el token son correctos devuelve el complemento timbre en un string (**TFD**),asi como el comprobante ya timbrado en formato string (**CFDI**), en caso contrario lanza una excepción. **Timbrar XML en formato string utilizando usuario y contraseña** El ejemplo anterior la respuesta es un objeto tipo **JSON** y dentro de el se encuentra el **TFD** **Timbrar XML en formato string utilizando token** El ejemplo anterior la respuesta es un objeto tipo **JSON** y dentro de el se encuentra el **TFD** y el **CFDI** **Timbrar XML en formato base64 utilizando token/credenciales**
Si se desea, se puede usar la version 2 en la modalidad base64, esto quiere decir que se puede enviar el xml previamente sellado en formato base64, y la libreria le respondera la misma estructura de respuesta que se usa en v2 normal con el tfd, y cfdi en base64 tambien. El ejemplo anterior la respuesta es un objeto tipo **JSON** y dentro de el se encuentra el **TFD** y el **CFDI** en base64 ## Timbrar CFDI V3 ## **StampV3** Recibe el contenido de un **XML** ya emitido (sellado) en formato **String**, posteriormente si la factura y el token son correctos devuelve el comprobante ya timbrado en formato string (**CFDI**), en caso contrario lanza una excepción. **Timbrar XML en formato string utilizando usuario y contraseña** El ejemplo anterior la respuesta es un objeto tipo **JSON** y dentro de el se encuentra el **CFDI** **Timbrar XML en formato string utilizando token** El ejemplo anterior la respuesta es un objeto tipo **JSON** y dentro de el se encuentra el **CFDI** ## Timbrar CFDI V4 ## **StampV4** Recibe el contenido de un **XML** ya emitido (sellado) en formato **String**, posteriormente si la factura y el token son correctos devuelve el comprobante ya timbrado en formato string (**CFDI**), asi como otros campos por ejemplo: **cadenaOriginalSAT**, **noCertificadoSAT**, **noCertificadoCFDI**, **uuid**, etc , en caso contrario lanza una excepción. **Timbrar XML en formato string utilizando usuario y contraseña** El ejemplo anterior la respuesta es un objeto tipo **JSON** y dentro de el se encuentra el **CFDI** **Timbrar XML en formato string utilizando token** El ejemplo anterior la respuesta es un objeto tipo **JSON** y dentro de el se encuentra el **CFDI** **Timbrar XML en formato base64 utilizando token/credenciales**
Si se desea, se puede usar la version 4 en la modalidad base64, esto quiere decir que se puede enviar el xml previamente sellado en formato base64, y la libreria le respondera la misma estructura de respuesta que se usa en v4 normal con el cfdi en base64 tambien. El ejemplo anterior la respuesta es un objeto tipo **JSON** y dentro de el se encuentra el **CFDI** en base64
Emisión Timbrado **Emisión Timbrado** Recibe el contenido de un **XML** en formato **String**, posteriormente si la factura y el token son correctos, genera el sellado, y devuelve el comprobante ya timbrado en formato string (**CFDI**), en caso contrario lanza una excepción. ### Emisión Timbrado V1 ### Está versión de timbrado regresa únicamente el ***TFD***. **Ejemplo de uso** ### Emisión Timbrado V2 ### Está versión de timbrado regresa ***TFD*** y el ***CFDI***. **Ejemplo de uso** ### Emisión Timbrado V3 ### Está versión de timbrado regresa únicamente el ***CFDI***. **Ejemplo de uso** ### Emisión Timbrado V4 ### Está versión de timbrado regresa ***CFDI***, ***CadenaOriginalSAT***, ***noCertificadoSat***, ***noCertificadoCFDI***, ***UUID***, ***selloSAT***, ***selloCFDI***, ***fechaTimbrado*** y ***QRCode***. **Ejemplo de uso**
Emisión Timbrado JSON ## Emisión Timbrado JSON ## **Emisión Timbrado JSON** Recibe el contenido de un **JSON** en formato **String**, posteriormente si el JSON y el token son correctos, genera el armado y sellado del XML, posteriormente devuelve el comprobante ya timbrado en formato string (**CFDI**), en caso contrario mostrará error al ser enviado a timbrar. ### Emisión Timbrado JSON V1 ### Está versión de timbrado regresa únicamente el ***TFD***. **Ejemplo de uso** ### Emisión Timbrado JSON V2 ### Está versión de timbrado regresa el ***TFD*** y ***CFDI***. **Ejemplo de uso** ### Emisión Timbrado JSON V3 ### Está versión de timbrado regresa únicamente el ***CFDI***. **Ejemplo de uso** ### Emisión Timbrado JSON V4 ### Está versión de timbrado regresa ***CFDI***, ***CadenaOriginalSAT***, ***noCertificadoSat***, ***noCertificadoCFDI***, ***UUID***, ***selloSAT***, ***selloCFDI***, ***fechaTimbrado*** y ***QRCode***. **Ejemplo de uso**

:pushpin: NOTA: Existen varias versiones de respuesta, las cuales son las siguientes:

Version Respuesta
V1 Devuelve el timbre fiscal digital
V2 Devuelve el timbre fiscal digital y el CFDI timbrado
V3 Devuelve el CFDI timbrado
V4 Devuelve todos los datos del timbrado

Para mayor referencia de estas versiones de respuesta, favor de visitar el siguiente link.

Timbrado Retenciones

Timbrado Retenciones V3 Timbrado Retenciones V3 recibe el contenido de un XML ya emitido (sellado) en formato String, posteriormente si la factura, el token y/o las credenciales son correctas devuelve el comprobante ya timbrado, en caso contrario mostrará error al ser enviado a timbrar. **Timbrado Retenciones V3** El ejemplo anterior la respuesta es un objeto tipo JSON y dentro de el se encuentra el comprobante de retenciones
Timbrado Retenciones V4 Timbrado Retenciones V4 recibe el contenido de un XML ya emitido (sellado) en formato String, posteriormente si la factura, el token y/o las credenciales son correctas devuelve el comprobante ya timbrado, en caso contrario mostrará error al ser enviado a timbrar. **Timbrado Retenciones V1** El ejemplo anterior la respuesta es un objeto tipo JSON y dentro de el se encuentra el CFDI

:pushpin: NOTA: El servicio TimbrarRetencionXMLV4 simula la respuesta V4 de nuestros servicios REST, de manera interna se hace uso de la petición REST V3 de timbrado de retenciones.

Cancelación CFDI

Este servicio se utiliza para cancelar documentos xml y se puede hacer mediante varios métodos Cancelación CSD, Cancelación PFX, Cancelacion por XML y Cancelación UUID.

Cancelación por CSD Se deben incluir los siguientes datos: * Certificado (.cer) * Key (.key) * Password del archivo key * RFC emisor * UUID * Motivo * Folio Sustitución (sólo cuando Motivo=01) Paso 1: Obtener token de acceso, o en su defecto usar token infinito Primeramente se deberá autenticar en nuestros servicios con el token de acceso, o si se desea, se puede usar el token infinito. Paso 2: Enviar datos necesarios Se envían los datos necesarios para la cancelación en la instancia del metodo de cancelacion Cabe mencionar que los archivos **.cer y .key**, al ser binarios, **deberán enviarse en formato base64** para que podamos procesarlos en nuestro servidor.
Cancelación por XML Como su nombre lo indica, este servicio recibe únicamente el XML sellado con los UUID a cancelar. Paso 1: Obtener token de acceso, o en su defecto usar token infinito Primeramente se deberá autenticar en nuestros servicios con el token de acceso, o si se desea, se puede usar el token infinito. Paso 2: Enviar datos necesarios Se envían los datos necesarios para la cancelación, que únicamente es el XML.
Cancelación por PFX Se deben incluir los siguientes datos: * Pfx * Password del archivo key * RFC emisor * UUID * Motivo * Folio Sustitución (sólo cuando Motivo=01) Paso 1: Obtener token de acceso, o en su defecto usar token infinito Primeramente se deberá autenticar en nuestros servicios con el token de acceso, o si se desea, se puede usar el token infinito. Paso 2: Enviar datos necesarios Se envían los datos necesarios para la cancelación y el token obtenido previamente.
Cancelación por UUID Se deben incluir los siguientes datos: * RFC emisor * UUID * Motivo * Folio Sustitución (sólo cuando Motivo=01) Paso 1: Obtener token de acceso, o en su defecto usar token infinito Primeramente se deberá autenticar en nuestros servicios en orden de obtener token de acceso, o si se desea, se puede usar el token infinito. Paso 2: Enviar datos necesarios Se envían los datos necesarios para la cancelación y el token obtenido previamente.
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 #### En este caso se recibe un mensaje JSON, el cual contiene los siguientes datos: * Acuse: Xml de acuse que regresa el SAT cuando se cancela un CFDI. * UUID: uuid cancelado y el estatus de el. (Para más información, consulte la lista de códigos de respuesta de UUID aquí) #### Respuesta no exitosa #### #### Códigos de respuesta de folios de cancelación #### | Código | Mensaje | Descripcion | | ------------- | ------------- | ------------- | | 201 |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 corresponde al emisor. | | | 204 | Folio Fiscal No Aplicable a Cancelación. | | | 205 | Folio Fiscal No Existe. | 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 | 204 | Folio Fiscal No Aplicable a Cancelación. | |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. | | | 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 | XML 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 Retenciones

Este servicio se utiliza para cancelar documentos xml de retenciones y se puede hacer mediante varios métodos Cancelación XML, Cancelación CSD y Cancelacion PFX.

Cancelación XML Como su nombre lo indica, este servicio recibe únicamente el XML sellado con los UUID de retenciones a cancelar. * Paso 1: Obtener token de acceso, o en su defecto usar token infinito Primeramente se deberá autenticar en nuestros servicios con el token de acceso, o si se desea, se puede usar el token infinito. * Paso 2: Enviar datos necesarios Se envían los datos necesarios para la cancelación, que únicamente es el XML.
Cancelación CSD Se deben incluir los siguientes datos: * Certificado (.cer) * Key (.key) * Password del archivo key * RFC emisor * UUID * Motivo * Folio Sustitución (sólo cuando Motivo=01) * Paso 1: Obtener token de acceso, o en su defecto usar token infinito Primeramente se deberá autenticar en nuestros servicios con el token de acceso, o si se desea, se puede usar el token infinito. * Paso 2: Enviar datos necesarios Se envían los datos necesarios para la cancelación en la instancia del metodo de cancelacion de retenciones Cabe mencionar que los archivos **.cer y .key**, al ser binarios, **deberán enviarse en formato base64** para que podamos procesarlos en nuestro servidor.
Cancelación PFX Se deben incluir los siguientes datos: * Pfx (en base64) * Password del archivo key * RFC emisor * UUID * Motivo * Folio Sustitución (sólo cuando Motivo=01) * Paso 1: Obtener token de acceso, o en su defecto usar token infinito Primeramente se deberá autenticar en nuestros servicios con el token de acceso, o si se desea, se puede usar el token infinito. * Paso 2: Enviar datos necesarios Se envían los datos necesarios para la cancelación de retenciones y el token obtenido previamente.
Respuestas de cancelación de retenciones 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 #### En este caso se recibe un mensaje JSON, el cual contiene los siguientes datos: * Acuse: Xml de acuse que regresa el SAT cuando se cancela un comprobante de retenciones. * UUID: uuid cancelado y su estatus. #### Respuesta no exitosa #### ## Usuarios V2 ## Servicios para trabajar con usuarios, incluye métodos para crear, modificar, obtener y eliminar usuarios. > [!IMPORTANT] > Los métodos han tenido algunos cambios y mejoras con respecto a la versión 1.
Crear Usuario
Método mediante el cual se puede crear un nuevo usuario. Este método recibe los siguientes parámetros: * Url Servicios SW y/o Url Api SW. * Usuario y contraseña ó token. * Un array con los datos necesario para crear el usuario. Los datos enviados en el data son los siguientes: ***Información del cliente:*** | Dato | Descripción | |-------------------|----------------------------------------------| | Name | Nombre del usuario | | TaxId | RFC del usuario | | Email | correo del nuevo usuario | | Stamps | Cantidad de timbres a asignar | | IsUnlimited | Especificar si tendra timbres ilimitados | | Password | Contraseña del usuario | | NotificationEmail | Correo a donde quiere recibir notificaciones | | Phone | Número del telefono del usuario | **Ejemplo de consumo de la librería para crear un usuario mediante usuario y contraseña** Si se desea consumir el servicio mediante token, solo es necesario modificar la variable $params por: :pushpin: ***NOTA:*** La contraseña debe cumplir con las siguientes politicas: * 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 entre 10 y 20 caracteres. * La contraseña no debe incluir símbolos especiales fuera de lo común. * Los caracteres especiales aceptados son los siguientes: !@#$%^&*()_+=\[{\]};:<>|./?,-]
Consultar Usuario(s)
Método mediante el cual se puede consultar un usuario o usuarios indicando ciertos parámetros de busqueda. Este método recibe los siguientes parámetros: * Url Servicios SW y/o Url Api SW. * Usuario y contraseña ó token. * Un array con los datos necesario para la busqueda (opcional). **Ejemplo de consumo de la librería parala consulta de un usuario mediante usuario y contraseña** Si se desea consumir el servicio mediante token, solo es necesario modificar la variable $params por: :pushpin: ***NOTA:*** Puedes enviar todos los parámetros, solo los que necesites o ninguno, en caso de no enviar parámetros, por default se retornarán únicamente los primeros 10 de la página 1.
Modificar Usuario
Método mediante el cual se puede modificar un usuario existente. Este método recibe los siguientes parámetros: * Url Servicios SW y/o Url Api SW. * Usuario y contraseña ó token. * Id del usuario a modificar. * Un array con los datos necesario para modificar el usuario. > [!NOTE] > Puedes asignarles “null” a las propiedades que no vayas a actualizar. Los datos enviados en el data son los siguientes: | Dato | Descripción | |-------------------|------------------------------------------| | idUser | Id del usuario a actualizar | | name | Nuevo nombre del usuario | | taxId | Nuevo RFC del usuario | | notificationEmail | Nuevo correo para recibir notificaciones | | isUnlimited | Especificar si tendra timbres ilimitados | | phone | Número del telefono del usuario | **Ejemplo de consumo de la librería para modificar un usuario mediante usuario y contraseña** Si se desea consumir el servicio mediante token, solo es necesario modificar la variable $params por:
Eliminar Usuario
Método mediante el cual se puede eliminar un usuario existente. Este método recibe los siguientes parámetros: * Url Servicios SW y/o Url Api SW. * Usuario y contraseña ó token. * Id del usuario a eliminar. > [!IMPORTANT] > Los nombres de las variables en la respuesta han cambiado. **Ejemplo de consumo de la librería para eliminar un usuario mediante usuario y contraseña** Si se desea consumir el servicio mediante token, solo es necesario modificar la variable $params por:
## Consulta y Asignación de Timbres ## Métodos para realizar la consulta de saldo así como la asignación y eliminación de timbres a un usuario.
Consulta de timbres Servicio para consultar timmbres a una cuenta hija o subcuenta. Este método recibe los siguientes parametros:
* Usuario y contraseña o Token * Url Servicios SW * Url Api > [!IMPORTANT] > Los nombres de las variables en la respuesta han cambiado. Si se desea consumir el servicio mediante token, solo es necesario modificar la variable $params por:
Consulta de timbres por ID de usuario Servicio para consultar timbres de una cuenta hija o subcuenta mediante el ID del usuario. Este método recibe los siguientes parametros:
* Usuario y contraseña o Token * Url Servicios SW * Url Api * Id del usuario > [!IMPORTANT] > Los nombres de las variables en la respuesta han cambiado. Si se desea consumir el servicio mediante token, solo es necesario modificar la variable $params por:
Agregar timbres Servicio para agregar timmbres a una cuenta hija o subcuenta.
Este método recibe los siguientes parametros:
* Usuario y contraseña o Token * Url Servicios SW * Url Api * Id del usuario * Número de timbres * Comentario > [!NOTE] > El servicio regresa unicamente la cantidad de timbres despues del abono de timbres. Si se desea consumir el servicio mediante token, solo es necesario modificar la variable $params por:
Eliminar Timbres Servicio para remover timmbres a una cuenta hija o subcuenta.
Este método recibe los siguientes parametros: * Usuario y contraseña o Token * Url Servicios SW * Url Api * Id del usuario * Número de timbres * Comentario > [!NOTE] > El servicio regresa unicamente la cantidad de timbres despues de remover los timbres. Ejemplo de uso: Si se desea consumir el servicio mediante token, solo es necesario modificar la variable $params por:

Validación

Validación XML Este servicio recibe un comprobante CFDI 4.0 en formato XML mediante el cual se valida integridad, sello, errores de estructura, matriz de errores del SAT incluyendo complementos, se valida que exista en el SAT, así como el estatus en el SAT. Este método recibe los siguientes parámetros: * Url Servicios SW o Usuario y contraseña o token * XML * Opcional: Indicar si se desea consultar estatus antes el SAT **Ejemplo de consumo de la librería para validación de XML**

Consulta Estatus SAT

Consulta Estatus SAT **Consulta Status SAT** Recibe los parámetros de ***URL Soap***, ***RFC Emisor***, ***RFC Receptor***, ***Total***, y ***UUID*** en formato **String**, posteriormente hace la consulta en el SOAP proporcionado sobre el estatus de la factura. Ejemplo de uso

Aceptar/Rechazar Cancelación

Aceptar/Rechazar es el servicio mediante el cual el receptor puede aceptar o rechazar un UUID que obtiene de su lista de pendientes. El método tiene varias maneras de ser consumido, por CSD, PFX, sólo UUID y por XML.

Aceptar / Rechazar por CSD
Método mediante el cual el receptor podrá manifestar la aceptación o rechazo de la solicitud de cancelación mediante CSD. Este método recibe los siguientes parámetros: * Url Servicios SW * Usuario y contraseña ó token * Certificado del receptor en Base64 * Llave(key) del receptor en Base64 * RFC del emisor * Contraseña del certificado * Arreglo de objetos donde se especifican los UUID y acción a realizar **Ejemplo de consumo de la librería para la aceptacion/rechazo de la solicitud por CSD mediante usuario y contraseña**
Aceptar / Rechazar por PFX
Método mediante el cual el receptor podrá manifestar la aceptación o rechazo de la solicitud de cancelación mediante PFX. Este método recibe los siguientes parámetros: * Url Servicios SW * Usuario y contraseña ó token * Archivo Pfx en Base64 * Contraseña del certificado * RFC del emisor * Arreglo de objetos donde se especifican los UUID y acción a realizar **Ejemplo de consumo de la librería para la aceptación/rechazo de la solicitud por PFX mediante usuario y contraseña**
Aceptar / Rechazar por XML
Método mediante el cual el receptor podrá manifestar la aceptación o rechazo de la solicitud de cancelación mediante XML. Este método recibe los siguientes parámetros: * Url Servicios SW * Usuario y contraseña ó token * XML con datos requeridos para la aceptación/rechazo de la cancelación **Ejemplo de XML** **Ejemplo de consumo de la librería para la aceptación/rechazo de la solicitud por XML mediante usuario y contraseña**
Aceptar / Rechazar por UUID
Método mediante el cual el receptor podrá manifestar la aceptación o rechazo de la solicitud de cancelación mediante UUID. Este método recibe los siguientes parámetros: * Url Servicios SW * Usuario y contraseña ó token * RFC del receptor * UUID de la factura que se requiere aceptar/rechazar * Acción que se requiera realizar Aceptación/Rechazo :pushpin: ***NOTA:*** El usuario deberá tener sus certificados en el administrador de timbres para la utilización de este método. **Ejemplo de consumo de la librería para la aceptación/rechazo de la solicitud por UUID mediante usuario y contraseña**

Consulta de Solicitudes pendientes de Aceptar/Rechazar

Este servicio devuelve una lista [Array] de UUID correspondientes a las solicitudes que tiene pendientes de aceptar o rechazar determinado RFC. Así mismo este servicio recibe solamente el RFC para consultar.

Pendientes por cancelar con RFC Está modalidad recibe como parámetro el RFC del Receptor. Ejemplo de uso

Consulta documentos relacionados

Este servicio nos permite conocer las facturas que se encuentren relacionadas a un UUID. El método tiene varias maneras de ser consumido, por CSD, PFX, sólo UUID y por XML.

Documentos relacionados con UUID Está modalidad recibe como parámetros el RFC del Receptor y el UUID a consultar. Ejemplo de uso
Documentos relacionados por CSD Está modalidad recibe como parámetros el RFC del Receptor, Certificado y Llave privada [En base64], contraseña de Llave privada y el UUID a consultar. Ejemplo de uso
Documentos relacionados con PFX Está modalidad recibe como parámetros el RFC del Receptor, PFX [En base64], contraseña de Llave privada y el UUID a consultar. Ejemplo de uso
Documentos relacionados con XML Está modalidad recibe como parámetro el XML para consulta de documentos relacionados. XML a enviar Ejemplo de uso
Documentos relacionados con UUID Está modalidad recibe como parámetros el RFC del Receptor y el UUID a consultar. Ejemplo de uso

Recuperar XML

Servicio para recuperar información de un XML timbrado con SW.

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. Este método recibe los siguientes parámetros: * Url Api SW * Url Servicios SW (Cuando se use usuario y contraseña) * Usuario y contraseña ò token * UUID **Ejemplo de consumo de la libreria para la recuperación de XML**

Servicio PDF

Generar PDF ### Generar PDF ### Servicio mediante el cual se genera un PDF a partir de un documento XML y una plantilla. Se puede utilizar una plantilla genérica o una personalizada más ajustada a sus necesidades. La función recibe los siguientes parámetros: * Datos de autenticación (url, urlapi, user, password) * xml (es necesario que el xml esté timbrado) * logo (en base64) * templateId * extras (datos adicionales a los contenidos en el xml) Ejemplo de uso: Plantilla con datos adicionales :pushpin: ***NOTA:*** Existen varias plantillas de PDF segun el tipo de comprobante que necesites, las cuales son las siguientes: | Versión 4.0 | Plantilla para el complemento | |--------------------|---------------------------------| | :white_check_mark: | Factura ingreso, egreso | | :white_check_mark: | Nómina | | :white_check_mark: | Pagos | | :white_check_mark: | Carta porte | Para mayor referencia de estas plantillas de PDF, favor de visitar el siguiente [link](https://developers.sw.com.mx/knowledge-base/plantillas-pdf/).
Regenerar PDF ### Regenerar PDF ### El servicio podrá generar o regenerar un PDF de un CFDI previamente timbrado y podrá guardar o remplazar el archivo PDF para ser visualizado posteriormente desde el portal ADT. La función recibe los siguientes parámetros: * Folio fiscal del comprobante(uuid) * Extras (datos adicionales a los contenidos en el xml) Ejemplo de uso Con datos adicionales
Reenvio Email Servicio de reenvio de email, recibe el uuid del comprobante previamente timbrado y el/los correos a los que se les hará el reenvío. ### Crear una instancia * Usuario y contraseña: * Token: ### Ejemplo * Un correo: * Multiples correos (Max 5):

Certificados

Servicio 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.

Consultar Certificados Método para consultar todos los certificados cargados en la cuenta. Este método recibe los siguientes parámetros: * Url Servicios SW * Usuario y contraseña **Ejemplo de consumo de la librería para la consulta de certificados mediante usuario y contraseña**
Consultar Certificado Por RFC Método para obtener un certificado cargado enviando como parámetro el RFC de certificado. Este método recibe los siguientes parámetros: * Url Servicios SW * Usuario y contraseña * RFC del certificado a obtener **Ejemplo de consumo de la librería para la consulta de certificados por RFC del Certificado mediante usuario y contraseña**
Consultar Certificado Por NoCertificado Método para obtener un certificado cargado enviando como parámetro el número de certificado. Este método recibe los siguientes parámetros: * Url Servicios SW * Usuario y contraseña * Número de certificado a obtener **Ejemplo de consumo de la librería para la consulta de certificados por Número de Certificado mediante usuario y contraseña**
Cargar Certificado Método para cargar un certificado en la cuenta. Este método recibe los siguientes parámetros: * Url Servicios SW * Usuario y contraseña * CSD en Base64 * Key en Base64 * Contraseña del certificado * Tipo de certificado (Default = “stamp”) * Estado del certificado (Default = “true”) **Ejemplo de consumo de la libreria para la carga de certificado mediante usuario y contraseña**
Eliminar Certificado Método para eliminar un certificado de la cuenta. Este método recibe los siguientes parámetros: * Url Servicios SW * Usuario y contraseña * Número de certificado a eliminar **Ejemplo de consumo de la libreria para eliminar un certificado mediante usuario y contraseña**

TimbradoV4

CustomId - Pdf

Emisión Timbrado (IssueV4) **issueV4CustomIdPdfV1** Recibe el contenido de un **XML** sin sellar en formato **String** se pasa un parametro customId en formato **String**, posteriormente si la factura y el token son correctos devuelve el complemento timbre en un string (**TFD**), en caso contrario lanza una excepción. **issueV4CustomIdPdfV2** Recibe el contenido de un **XML** sin sellar en formato **String** se pasa un parametro customId en formato **String**, posteriormente si la factura y el token son correctos devuelve el complemento timbre en un string (**TFD**), asi como el comprobante ya timbrado en formato string (**CFDI**) en caso contrario lanza una excepción. **issueV4CustomIdPdfV3** Recibe el contenido de un **XML** sin sellar en formato **String** se pasa un parametro customId en formato **String**, posteriormente si la factura y el token son correctos devuelve el comprobante ya timbrado en formato string (**CFDI**), en caso contrario lanza una excepción. **issueV4CustomIdPdfV4** Recibe el contenido de un **XML** sin sellar en formato **String** se pasa un parametro customId en formato **String**, posteriormente regresara todos los datos del timbrado, en caso contrario lanza una excepción.
Emisión Timbrado JSON (IssueV4) **jsonIssueV4CustomIdPdfV1** Recibe un **JSON**, se pasa un parametro customId en formato **String** y el parametro pdf de tipo **Boolean** de ser requerido, posteriormente si el JSON y el token son correctos devuelve el complemento timbre en un string (**TFD**), en caso contrario lanza una excepción. **jsonIssueV4CustomIdPdfV2** Recibe un **JSON**, se pasa un parametro customId en formato **String** y el parametro pdf de tipo **Boolean** de ser requerido, posteriormente si el JSON y el token son correctos devuelve el complemento timbre en un string (**TFD**), asi como el comprobante ya timbrado en formato string (**CFDI**) en caso contrario lanza una excepción. **jsonIssueV4CustomIdPdfV3** Recibe un **JSON**, se pasa un parametro customId en formato **String** y el parametro pdf de tipo **Boolean** de ser requerido, posteriormente si el JSON y el token son correctos devuelve el comprobante ya timbrado en formato string (**CFDI**), en caso contrario lanza una excepción. **sonIssueV4CustomIdPdfV3** Recibe un **JSON**, se pasa un parametro customId en formato **String** y el parametro pdf de tipo **Boolean** de ser requerido, posteriormente regresara todos los datos del timbrado, en caso contrario lanza una excepción.

CustomId - Email

Emisión Timbrado (IssueV4) **issueV4CustomIdEmailV1** Recibe el contenido de un **XML** sin sellar en formato **String** se pasa un parametro customId en formato **String**, posteriormente si la factura y el token son correctos devuelve el complemento timbre en un string (**TFD**), en caso contrario lanza una excepción. **issueV4CustomIdEmailV2** Recibe el contenido de un **XML** sin sellar en formato **String** se pasa un parametro customId en formato **String**, se manda un parametro email en formato **String** o un **Array** de hasta maximo 5 correos electronicos, se genera un pdf por default con este metodo, posteriormente si la factura y el token son correctos devuelve el complemento timbre en un string (**TFD**),asi como el comprobante ya timbrado en formato string (**CFDI**) en caso contrario lanza una excepción. **issueV4CustomIdEmailV3** Recibe el contenido de un **XML** sin sellar en formato **String** se pasa un parametro customId en formato **String**, se manda un parametro email en formato **String** o un **Array** de hasta maximo 5 correos electronicos, se genera un pdf por default con este metodo, posteriormente si la factura y el token son correctos devuelve el comprobante ya timbrado en formato string (**CFDI**), en caso contrario lanza una excepción. **issueV4CustomIdEmailV4** Recibe el contenido de un **XML** sin sellar en formato **String** se pasa un parametro customId en formato **String**, se manda un parametro email en formato **String** o un **Array** de hasta maximo 5 correos electronicos, se genera un pdf por default con este metodo, posteriormente regresara todos los datos del timbrado, en caso contrario lanza una excepción.
Emisión Timbrado JSON (IssueV4) **jsonIssueV4CustomIdEmailV1** Recibe un **JSON**, se pasa un parametro customId en formato **String**, se manda un parametro email en formato **String** o un **Array** de hasta maximo 5 correos electronicos, se genera un pdf por default con este metodo, posteriormente si el JSON y el token son correctos devuelve el complemento timbre en un string (**TFD**), en caso contrario lanza una excepción. **jsonIssueV4CustomIdEmailV2** Recibe un **JSON**, se pasa un parametro customId en formato **String**, se manda un parametro email en formato **String** o un **Array** de hasta maximo 5 correos electronicos, se genera un pdf por default con este metodo, posteriormente si el JSON y el token son correctos devuelve el complemento timbre en un string (**TFD**), asi como el comprobante ya timbrado en formato string (**CFDI**) en caso contrario lanza una excepción. **jsonIssueV4CustomIdEmailV3** Recibe un **JSON**, se pasa un parametro customId en formato **String**, se manda un parametro email en formato **String** o un **Array** de hasta maximo 5 correos electronicos, se genera un pdf por default con este metodo, posteriormente si el JSON y el token son correctos devuelve el comprobante ya timbrado en formato string (**CFDI**), en caso contrario lanza una excepción. **jsonIssueV4CustomIdEmailV4** Recibe un **JSON**, se pasa un parametro customId en formato **String**, se manda un parametro email en formato **String** o un **Array** de hasta maximo 5 correos electronicos, se genera un pdf por default con este metodo, posteriormente si el JSON y el token son correctos devuelve todos los datos del timbrado, en caso contrario lanza una excepción.

Para mayor referencia de un listado completo de los servicios favor de visitar el siguiente link.

Si deseas contribuir a la librería o tienes dudas envianos un correo a [email protected].


All versions of sw-sdk-php with dependencies

PHP Build Version
Package Version
Requires chillerlan/php-qrcode Version ^5.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package lunasoft/sw-sdk-php contains the following files

Loading the files please wait ...