Documentación API CFDI

Le ofrecemos una API en JAVA muy sencilla para que pueda integrarse rápidamente a nuestro servicio de timbrado y cancelación, adaptada para ambas versiones 3.3 y 4.0

Descarga API v1.2

¿Qué es?

Es una Interfaz de Programación de Aplicaciones (del inglés API: Application Programming Interface) en JAVA que te permite interactuar con nuestros servicios.

  • Firmado

    Para poder timbrar los CFDI, primero se necesitan firmarlos utilizando los certificados (CSDs) emitidos por el SAT, con cualquiera de los siguientes métodos permitirá firmar los xml, los cuales regresarán un String con el xml firmado, para posteriormente poder enviarlos a nuestro servicio de timbrado.

    Nombre Tipo de dato Descripción Tipo de parámetro
    xml String String con el XML del CFDI que desea timbrar. Entrada
    certificate File | String Base64 | bytes[ ] Certificado público del emisor. Entrada
    privateKey File | String Base64 | bytes[ ] Llave privada del emisor. Entrada
    privateKeyPassword String Contraseña de la llave privada del emisor. Entrada

    Certificados como File

                                             
    String signedXml = UtilSignature.signInvoice(xml, certificateFile, privateKeyFile, privateKeyPassword);
                                             
                                    

    Certificados como String de Base64

                                             
    String signedXml = UtilSignature.signInvoice(xml, certificateB64, privateKeyB64, privateKeyPassword); 
                                             
                                    

    Certificados como un Array de bytes

                                             
    String signedXml = UtilSignature.signInvoice(xml, certificateBytes, privateKeyBytes, privateKeyPassword);
                                             
                                    

    Envío al servicio de timbrado

    Para enviar a timbrar el CFDI previamente firmado, serán necesarios los siguientes parámetros:

    Nombre Tipo de dato Descripción Tipo de parámetro
    signedXml String String con el XML sellado del CFDI que desea timbrar. Entrada
    username String Username o Alias del servicio de timbrado. Entrada
    password String Contraseña correspondiente al usuario de timbrado. Entrada
    url String La url indica a que entorno seráa enviado los parametros(pruebas o producción) Entrada
                                             
    com.forsedi.cfdi.ws.timbrado.AcuseCFDI acuse = Invoice.send(signedXml, username, password, String url); 
                                             
                                    

    Response

    El método anterior regresa un objeto de tipo Acuse, con la respuesta recibida por el servicio de timbrado.

    Nombre Tipo de dato Descripción Tipo de parámetro
    xmlTimbrado String CFDI validado y timbrado en caso de que la respuesta sea exitosa. Salida
    codigoError String Código de error. Salida
    error String Mensaje para orientar sobre la causa del error. Salida
  • Firmado

    Para solicitar la cancelación de uno o varios CFDI, es necesario construir un Objeto SignatureType, que sirve para verificar la integridad de la información de manera segura.

    Nombre Tipo de dato Descripción Tipo de parámetro
    rfcEmisor String RFC emisor de los CFDIs a cancelar. Entrada
    cancellationDate String Fecha con formato yyyy-MM-ddTHH:mm:ss Entrada
    folios List<Folio> Lista de objetos tipo Folio. Entrada
    certificate File | String Base64 | bytes[ ] Certificado público del emisor. Entrada
    privateKey File | String Base64 | bytes[ ] Llave privada del emisor. Entrada
    privateKeyPassword String Contraseña de la llave privada del emisor. Entrada

    Certificados como File

                                             
    com.forsedi.cfdi.ws.cancelacion.SignatureType signatureType = UtilSignature.getCancellationSignatureType(rfcEmisor, cancellationDate, folios, fileCertificate, filePrivateKey, privateKeyPassword);
                                             
                                    

    Certificados como String de Base64

                                             
    com.forsedi.cfdi.ws.cancelacion.SignatureType signatureType = UtilSignature.getCancellationSignatureType(rfcEmisor, cancellationDate, folios, certificateB64, privateKeyB64, privateKeyPassword);
                                             
                                    

    Certificados como un Array de bytes

                                             
    com.forsedi.cfdi.ws.cancelacion.SignatureType signatureType = UtilSignature.getCancellationSignatureType(rfcEmisor, cancellationDate, folios, certificateBytes, privateKeyBytes, privateKeyPassword);
                                             
                                    

    Envío al Servicio de cancelación

    Para enviar solicitud de cancelación del listado de CFDIs, serán necesarios los siguientes parámetros:

    Nombre Tipo de dato Descripción Tipo de parámetro
    rfcEmisor String RFC emisor de los CFDIs a cancelar. Entrada
    cancellationDate String Fecha con formato yyyy-MM-ddTHH:mm:ss Entrada
    folios List<Folio> Lista de objetos tipo Folio. Entrada
    signatureType SignatureType Objeto con la información firmada de la solicitud. Entrada
    USERNAME String Username o Alias del servicio de timbrado. Entrada
    USERNAME_PASSWORD String Contraseña correspondiente al usuario de timbrado. Entrada
    url String url que indica a que ambiente establacerá la conexión (Pruebas o Producción) Entrada
                                             
    com.forsedi.cfdi.ws.cancelacion.v40.WsCancelacionResponse response = Invoice.sendCancelation(rfcEmisor, cancellationDate, folios, signatureType, USERNAME, USERNAME_PASSWORD, url);
                                             
                                    

    Response

    Nombre Tipo de dato Descripción Tipo de parámetro
    acuse String Acuse con la respuesta recibida por parte del SAT. Salida
    codEstatus String Código de estatus de la solicitud. Salida
    mensaje String Mensaje informativo sobre la solicitud. Salida
    folios WsFoliosResponse Objeto que contiene el listado de UUIDs y las respuestas correspondientes a cada uno. Salida
  • Consulta

    Método que permite obtener información sobre el estatus del CFDI. Para hacer uso del método unicamente hay que pasarle como parametro el xml en un String.

    Nombre Tipo de datos Descripción Tipo de parámetro
    xml String Comprobante Fiscal Digital (CFDI) Entrada
                                             
    com.forsedi.cfdi.ws.sat.consultaqr.Acuse acuse = Invoice.consulta(xml);
                                             
                                    

    Este método, regresará un Objeto de tipo Acuse, con la respuesta recibida por el servicio de cancelación.

    Nombre Tipo de datos Descripción Tipo de parametro
    CodigoEstatus String Permite saber cual es el estatus actual del CFDI. Salida
    esCancelable String Indica si el CFDI es cancelable o no. Salida
    estado String Permite conocer el estado en el que se encuentra el CFDI, (Vigente,Cancelado) Salida
    validacionEFOS String Permite conocer el codigo en el que se encuentra tanto el RFC del emisor como del receptor. Salida