MSeller LogoECF MSeller
🔍
Integración

Formato de Documentos

Especificaciones para el formato de documentos JSON

Formato de Documentos JSON

Para utilizar MSeller ECF, debes enviar documentos en formato JSON que sigan la estructura basada en las especificaciones de la DGII. La plataforma se encargará de transformar automáticamente tu JSON a XML y de aplicar la firma electrónica.

Especificaciones de DGII

Aunque enviarás los documentos en formato JSON, la estructura debe seguir el mismo esquema definido por la DGII para los documentos XML. Puedes consultar la documentación oficial para entender la descripción de cada campo en el Formato Comprobante Fiscal Electrónico (e-CF) V1.0.

Proceso de transformación JSON a XML

MSeller ECF simplifica el proceso de integración al manejar automáticamente la transformación de JSON a XML y la firma electrónica. El flujo completo es el siguiente:

En el Cliente:

  1. Envío de JSON: Tu sistema envía el documento en formato JSON
  2. Recepción de respuesta: Recibes inmediatamente códigos de seguridad y enlace QR
  3. Consulta posterior: Puedes consultar el estado final del documento cuando lo necesites

En MSeller:

  1. Recepción del JSON: MSeller recibe el documento JSON
  2. Transformación a XML: Conversión automática al formato requerido por la DGII
  3. Firma electrónica: Aplicación de la firma con tu certificado digital
  4. Almacenamiento: Guardado seguro del documento XML firmado
  5. Generación de códigos: Creación de códigos de seguridad y QR para la representación impresa
  6. Envío asíncrono: MSeller envía el documento a la DGII
  7. Gestión de estado: Actualización del estado del documento tras la respuesta de la DGII

En la DGII:

  1. Recepción: La DGII recibe el documento XML firmado
  2. Procesamiento: Validación y procesamiento del documento fiscal

Ejemplo de documento JSON

A continuación se muestra un ejemplo del formato JSON que debes enviar:

{
  "ECF": {
    "Encabezado": {
      "Version": "1.0",
      "IdDoc": {
        "TipoeCF": "31",
        "eNCF": "E310571508136",
        "FechaVencimientoSecuencia": "31-12-2026",
        "IndicadorEnvioDiferido": "1",
        "IndicadorMontoGravado": "0",
        "TipoIngresos": "05",
        "TipoPago": "2",
        "FechaLimitePago": "07-08-2026",
        "TotalPaginas": 1
      },
      "Emisor": {
        "RNCEmisor": "102320799",
        "RazonSocialEmisor": "MSeller SRL",
        "DireccionEmisor": "DireccionEmisor1",
        "FechaEmision": "29-06-2025"
      },
      "Comprador": {
        "RNCComprador": "101023122",
        "RazonSocialComprador": "Cliente Prueba SRL"
      },
      "Totales": {
        "MontoGravadoTotal": 540.0,
        "MontoGravadoI1": 540.0,
        "MontoExento": 0,
        "ITBIS1": 18,
        "TotalITBIS": 97.2,
        "TotalITBIS1": 97.2,
        "MontoTotal": 637.2,
        "MontoNoFacturable": 0
      }
    },
    "DetallesItems": {
      "Item": [
        {
          "NumeroLinea": "1",
          "IndicadorFacturacion": "1",
          "NombreItem": "Producto 1",
          "IndicadorBienoServicio": "1",
          "CantidadItem": 24,
          "UnidadMedida": "43",
          "PrecioUnitarioItem": 25.0,
          "DescuentoMonto": 60.0,
          "TablaSubDescuento": {
            "SubDescuento": [
              {
                "TipoSubDescuento": "%",
                "SubDescuentoPorcentaje": 10.0,
                "MontoSubDescuento": 60.0
              }
            ]
          },
          "MontoItem": 540.0
        }
      ]
    },
    "Paginacion": {
      "Pagina": [
        {
          "PaginaNo": 1,
          "NoLineaDesde": 1,
          "NoLineaHasta": 1,
          "SubtotalMontoGravadoPagina": 540.0,
          "SubtotalMontoGravado1Pagina": 540.0,
          "SubtotalExentoPagina": 0,
          "SubtotalItbisPagina": 97.2,
          "SubtotalItbis1Pagina": 97.2,
          "MontoSubtotalPagina": 637.2,
          "SubtotalMontoNoFacturablePagina": 0
        }
      ]
    },
    "FechaHoraFirma": ""
  }
}

Implementaciones de referencia

Para facilitar la implementación, proporcionamos ejemplos de código que puedes utilizar como referencia:

Respuesta al envío de documentos

Al enviar un documento JSON, recibirás una respuesta inmediata con la siguiente estructura:

{
  "rnc": "102320705",
  "ecf": "E310000009175",
  "internalTrackId": "58f1bdd7-f4be-4a2e-a1e6-570c95b8d477",
  "securityCode": "fWCZCV",
  "qr_url": "https://ecf.dgii.gov.do/testecf/consultatimbre?rncemisor=102320705&RncComprador=101023122&encf=E310000009175&FechaEmision=14-05-2025&montototal=637.2&FechaFirma=14-05-2025%2002:57:33&codigoseguridad=fWCZCV",
  "signedDate": "14-05-2025 02:57:33"
}

Campos de la respuesta:

CampoDescripción
rncRNC de la entidad emisora
ecfNúmero de comprobante fiscal electrónico
internalTrackIdID de seguimiento interno de MSeller para localizar esta transacción
securityCodeCódigo de seguridad para la representación impresa
qr_urlURL del código QR para consulta del documento
signedDateFecha y hora en que se firmó el documento

Consideraciones importantes

Al generar los documentos JSON, ten en cuenta:

  1. Estructura correcta: Aunque envías JSON, la estructura debe seguir el esquema definido por la DGII.
  2. Datos requeridos: Asegúrate de incluir todos los campos obligatorios.
  3. Formato de valores: Presta especial atención al formato de fechas, montos y otros campos con formato específico.
  4. Procesamiento asíncrono: Recuerda que el documento se procesa de forma asíncrona, por lo que debes consultar su estado después.

Herramientas recomendadas

Para facilitar la generación y validación de documentos JSON:

  • Bibliotecas JSON: Utiliza bibliotecas estándar para la manipulación de JSON en tu lenguaje de programación.
  • Validadores JSON Schema: Implementa validaciones contra un esquema JSON basado en la estructura requerida.
  • Clientes HTTP: Utiliza librerías robustas para las llamadas a la API.

Soporte técnico

Si tienes dudas específicas sobre el formato de los documentos o encuentras dificultades durante la implementación, contacta a nuestro equipo de soporte técnico a través del portal de soporte.