MYSUITE GRANDES ASÍNCRONO

MYSUITE GRANDES ASÍNCRONO

GENERALIDADES

Con la intención de garantizar el buen funcionamiento de nuestros servicios de facturación, desde hace tiempo se ha implementado un servidor dedicado a la emisión de comprobantes de gran tamaño.

Este servicio “MYSuite Grandes Asíncrono”, será actualizado en su operatividad, dando paso a transacciones asíncronas (solicitud-encolamiento-procesamiento-solicitud-respuesta).

Para esto, de igual manera tendremos dos ambientes “PRUEBAS” y “PRODUCTIVO”, cada uno tendrá sus diferencias resaltando que en nuestro ambiente de pruebas, el tamaño del XML nativo de MYSuite a procesar estará limitado.

A continuación se describen las generalidades de cada ambiente:


AMBIENTE DE PRUEBA

El cliente de MYSuite que desee realizar pruebas con las nuevas transacciones asíncronas, podrá hacer uso de esta plataforma para integrar de manera correcta a su sistema cada una de las transacciones expuestas en este documento.

Plataforma de Pruebas

https://async.mysuitetest.com/factwsfront.asmx

Consideraciones

  • En el ambiente de prueba, sólo se permite procesar información en <Data1> con un tamaño mayor a 1 MB y hasta 4 MB.

  • Si la información en <Data1> tiene un tamaño menor a 1 MB, MYSuite indicará como resultado “false” ya que este tipo de archivos deberán ir por el servicio normal.

  • Se permite distribución de correo para comprobantes generados por solicitudes asíncronas.


AMBIENTE PRODUCTIVO

Ya que el cliente se haya integrado y, concluido sus pruebas satisfactoriamente, puede ocupar nuestro ambiente productivo para llevar a cabo sus transacciones.

Plataforma Productivo

https://async.mysuitecfdi.com/factwsfront.asmx

Consideraciones

  • En el ambiente productivo, se pueden procesar en <Data1> información de gran tamaño, esto es, que tengan un tamaño superior a 1 MB teniendo como límite máximo 40MB.

  • En dependencia del tamaño de la información en <Data1> a procesar, será el tiempo en que este servidor genere el CFDI.

  • Si la información de <Data1> tiene un tamaño menor a 1 MB, MYSuite responderá con un resultado “false”, ya que este tipo de archivos deben ir por el servicio normal.

  • Se permite distribución de correo para comprobantes generados por solicitudes asíncronas.


TRANSACCIONES EN AMBOS AMBIENTES

A continuación, se describen las transacciones que estarán disponibles en este servicio.

Existen tres transacciones para manejo de CFDI de forma asíncrona:

1. ASYNC_CONVERT_NATIVE_XML (encola solicitud asíncrona de generación de CFDI a partir de un XML nativo).

2. ASYNC_CONVERT_VERIFY (devuelve metadatos de una solicitud asíncrona previamente encolada).

3. ASYNC_RETRIEVE_DOCUMENT (devuelve metadatos del CFDI generado y links a los archivos ZIP en la nube).


ASYNC_CONVERT_NATIVE_XML (Solicitud de generación de CFDI de manera asíncrona)

  1. <?xml version="1.0" encoding="utf-8"?>
     <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
        <RequestTransaction xmlns="http://www.fact.com.mx/schema/ws">
          <Requestor>12211111-1111-1111-1111-111111111111</Requestor>
          <Transaction>ASYNC_CONVERT_NATIVE_XML</Transaction>
          <Country>MX</Country>
          <Entity>JES900109Q90</Entity>
          <User>12211111-1111-1111-1111-111111111111</User>
          <UserName>MX.JES900109Q90.Pepito</UserName>
          <Data1>xxx</Data1>
          <Data2>yyy</Data2>
          <Data3></Data3>
        </RequestTransaction>
      </soap:Body>
     </soap:Envelope>

xxx: String convertido a Base64; xml con esquema nativo de MYSuite a partir del cual se generará el CFDI final.

yyy: String plano que identifica de manera única a esta transacción de parte del cliente; puede ser un Id, un Guid o lo que el cliente entienda siempre y cuando sea único en su ERP. Este parámetro es obligatorio (máximo 50 caracteres) y se utiliza para que no haya información repetida en MYSuite.

En caso de éxito (Response/Result true), la respuesta siempre vendrá en el nodo ResponseData/ResponseData1 y será un string (formato Guid), que representa el identificador de la solicitud aceptada. Este identificador será necesario para cualquier operación posterior sobre la solicitud generada.

Ejemplo de respuesta: fd339e5c-3685-4773-a3ea-be28c8b92dfe

En caso de que se envíe a MYSuite una solicitud con un número interno ya existente, la transacción fallará, con código de error 3196, pero igual devolverá en ResponseData/ResponseData1 el identificador de la solicitud encontrada con el número interno indicado por el cliente.


ASYNC_CONVERT_VERIFY (Verificar transacción asíncrona)
  1. <?xml version="1.0" encoding="utf-8"?>
     <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
        <RequestTransaction xmlns="http://www.fact.com.mx/schema/ws">
          <Requestor>12211111-1111-1111-1111-111111111111</Requestor>
          <Transaction>ASYNC_CONVERT_VERIFY</Transaction>
          <Country>MX</Country>
          <Entity>JES900109Q90</Entity>
          <User>12211111-1111-1111-1111-111111111111</User>
          <UserName>MX.JES900109Q90.Pepito</UserName>
          <Data1>xxx</Data1>
          <Data2></Data2>
          <Data3></Data3>
        </RequestTransaction>
      </soap:Body>
     </soap:Envelope>

xxx: Identificador de la solicitud; este es el identificador devuelto por MYSuite en la transacción ASYNC_CONVERT_NATIVE_XML.

Ejemplo: fd339e5c-3685-4773-a3ea-be28c8b92dfe

La respuesta siempre vendrá en los nodos ResponseData/ResponseData1 y ResponseData/ResponseData2 (ResponseData1 en formato xml y ResponseData2 en formato JSON, ambos convertidos a Base64) con los siguientes campos: Entity, Uuid, EnrolledTimeStamp, Status, DocumentGUID, Year, Batch, Serial y ErrorMsg. Ambos nodos contienen la misma información pero en formatos diferentes para que el cliente procese la información que le resulta más cómoda.

En ResponseData3 (en caso de que el Status haya sido 3: Procesado con error), se enviará log en Base64, indicando el motivo por el cual no se pudo emitir dicha solicitud.

Entity: Entity especificado en la transacción.

Uuid: Identificador de la solicitud en cuestión; es la información proporcionada en Data1.

InternalID: Número interno especificado por el cliente para la solicitud en cuestión.

EnrolledTimeStamp: Fecha y hora en que se registró la solicitud.

Status: Estado de la solicitud; 1: Pendiente de procesar, 2: Procesado con éxito, 3: Procesado con error.

DocumentGUID: Folio fiscal (uuid) del CFDI generado; sólo tiene valor cuando Status = 2.
Year: Año de la fecha de emisión del CFDI generado; sólo tiene valor cuando Status = 2.

Batch: Serie del CFDI generado; sólo tiene valor cuando Status = 2.

Serial: Folio del CFDI generado; sólo tiene valor cuando Status = 2.

ErrorMsg: Texto del error ocurrido; sólo tiene valor cuando Status = 3. Se devuelve codificado Base64.


Ejemplo de respuesta:

ResponseData1:

  1. <?xml version="1.0" encoding="utf-8"?>
     <AsyncRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Entity>JES900109Q90</Entity>
      <Uuid>a6b30f75-37c1-4972-aa9c-3cdf523b9bdd</Uuid>
      <InternalID>db062587-e759-4c06-b3ff-fac0ee25d295</InternalID>
      <EnrolledTimeStamp>2018-11-29T11:49:15</EnrolledTimeStamp>
      <Status>2</Status>
      <DocumentGUID>687bc63c-e03e-4c64-8eff-602de879bd1e</DocumentGUID>
      <Year>2018</Year>
      <Batch />
      <Serial>8688</Serial>
     </AsyncRequest>

ResponseData2:

  1. {
     "Entity": "JES900109Q90",
     "Uuid": "a6b30f75-37c1-4972-aa9c-3cdf523b9bdd",
     "InternalID": " db062587-e759-4c06-b3ff-fac0ee25d295",
     "EnrolledTimeStamp": "/Date(1543513755000)/",
     "Status": 2,
     "DocumentGUID": "687bc63c-e03e-4c64-8eff-602de879bd1e",
     "Year": 2018,
     "Batch": "",
     "Serial": "8688",
     "ErrorMsg": null
     }


ASYNC_RETRIEVE_DOCUMENT (Recuperar documento generado de manera asíncrona)
  1. <?xml version="1.0" encoding="utf-8"?>
     <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
        <RequestTransaction xmlns="http://www.fact.com.mx/schema/ws">
          <Requestor>12211111-1111-1111-1111-111111111111</Requestor>
          <Transaction>ASYNC_RETRIEVE_DOCUMENT</Transaction>
          <Country>MX</Country>
          <Entity>JES900109Q90</Entity>
          <User>12211111-1111-1111-1111-111111111111</User>
          <UserName>MX.JES900109Q90.Pepito</UserName>
          <Data1>xxx</Data1>
          <Data2></Data2>
          <Data3></Data3>
        </RequestTransaction>
      </soap:Body>
     </soap:Envelope>

xxx: Identificador de la solicitud; este es el identificador devuelto por MYSuite en la transacción ASYNC_CONVERT_NATIVE_XML.

Ejemplo: fd339e5c-3685-4773-a3ea-be28c8b92dfe

La respuesta de esta transacción es igual a la de la transacción RETRIEVE_DOCUMENT; las únicas diferencias con respecto a esta transacción son las siguientes:

1. Siempre se devuelve XML y PDF; noten que el único parámetro que se solicita es el identificador de la solicitud asíncrona.

2. Lo que se devuelve en ResponseData1 (que en el caso de RETRIEVE_DOCUMENT es el contenido, en Base64, del XML), es el link que contiene el archivo XML (igual codificado Base64).

3. Lo que se devuelve en ResponseData3 (que en el caso de RETRIEVE_DOCUMENT es el contenido, en Base64, del PDF), es el link que contiene el archivo PDF (igual codificado Base64).


CONSIDERACIONES
  • Los links tienen vigencia de 5 días.

  • Los links devueltos en algún momento al cliente no se guardan en nuestra plataforma. Cada llamada a ASYNC_RETRIEVE_DOCUMENT genera nuevos links con vigencia de 5 días.

  • En caso de que manden una transacción con un número interno que ya tenemos en MYSuite (y que no hayan recibido respuesta al momento de realizarla y la vuelvan a enviar), MYSuite incorpora el código 3196 con resultado “false” indicando en <Data> “El número interno proporcionado ya se encuentra registrado. Consulte ResponseData1 para obtener el Id de la solicitud existente.”, tomar en cuenta que en RespondeData1 se estará proporcionando el Id de la solicitud como si se hubiera registrado en ese momento.


    • Related Articles

    • INTEGRACIÓN MYSUITE

      MYSuite cuenta con dos plataformas de trabajo: Pruebas y Productivo (ambas tienen la misma aplicación), la diferencia es que en el ambiente de pruebas, sólo es posible emitir CFDI's con RFC Emisor de pruebas "JES900109Q90", no es posible generar un ...
    • CANCELAR_RETENCION_SINGLE_MYSUITE

      Para ocupar la nueva transacción correspondiente al servicio de cancelación del SAT, revisar nueva transacción "CANCELAR_RETENCION_SINGLE_MYSUITE_3" que se encuentra en el siguiente enlace: ...
    • INTEGRACIÓN/CONFIGURACIÓN NetSuite (Oracle) - MYSuite

      Si elegiste MYSuite como Proveedor Autorizado de Certificación (PAC), para emitir tus CFDI's, toma en cuenta la siguiente información para configurar tu sistema NetSuite con nosotros. En la sección de configuración de tu sistema NetSuite: Sólo debes ...
    • GENERALIDADES

      En está sección podrás encontrar algunas funcionalidades relacionadas a nuestro esquema nativo de MYSuite, que te servirán para poder concretar tu integración exitosamente. GENERALIDADES ​ TIPO DE COMPROBANTE ELEMENTO PROCESAMIENTO NOTAS ADICIONALES ...
    • CONVERT_NATIVE_XML

      Convierte un archivo XML Nativo de MYSuite en un Comprobante Fiscal Digital por Internet CFDI conforme especificaciones del SAT. Esquema XSD para XML Nativo de MYSuite versión 8 (utilizado para generar CFDI v4.0) ...