Documentación

Proceso de certificación

En esta sección encontrarás información necesaria para el proceso de certificación de tu compañía ante la DGII

El proceso de certificación es aquel que permite a una compañía habilitarse como emisor y receptor electrónico. A continuación, se detallan los pasos necesarios desde la API de Alanube para certificarte como emisor electrónico.

📘

Aclaración

Ten en cuenta que para realizar este proceso debes considerar que solo aplica para el ambiente de producción ya que en nuestro ambiente de pruebas (sandbox) puedes hacer simulaciones a nombre de Alanube.
Con eso en mente, es necesario tener lo siguiente para iniciar dicho proceso:

1. Obtener la información necesaria para la postulación

Para iniciar el proceso de certificación, se debe comenzar con la postulación en la OFV y para esto es necesario obtener la información de Alanube y la información de las URL's de recepción de tu compañía.

Para obtener la información de Alanube, se puede consumir el servicio de consulta de información del proveedor, donde se obtendrá la siguiente información y será necesaria para llenar en el portal de la DGII:

{
  "data": {
    "softwareType": {
      "description": "Tipo de software",
      "value": "EXTERNO"
    },
    "softwareName": {
      "description": "Nombre del software",
      "value": "Alanube"
    },
    "softwareVersion": {
      "description": "version",
      "value": 1
    },
    "providerData": {
      "description": "Datos del proveedor",
      "rnc": {
        "description": "RNC/Cedula del proveedor",
        "value": 132109122
      },
      "name": {
        "description": "Nombre/Razón social del proveedor",
        "value": "Alanube Soluciones SRL"
      },
      "tradeName": {
        "description": "Nombre comercial",
        "value": "Alanube Soluciones"
      }
    }
  }
}

Adicionalmente, se deberá consultar las URL's de la compañía registrada en Alanube. Estas se pueden obtener fácilmente al momento de crear la compañía o consultando la información de la misma mediante el servicio de consulta de compañía (si la compañía es de tipo asociada, consumir el correspondiente servicio).

{
  // ...resto de propiedades de la compañía
  "companyUrls": {
    "reception": "https://almost.alanube.co/dom/v1/01FVJ1528AQRBC7D6K2TGVE5S5",
    "approval": "https://almost.alanube.co/dom/v1/01FVJ1528AQRBC7D6K2TGVE5S5",
    "authentication": "https://almost.alanube.co/dom/v1/01FVJ1528AQRBC7D6K2TGVE5S5"
  }
}

2. Firmado del XML de postulación.

Una vez completado el paso anterior, la DGII brinda un primer archivo XML (llamado XML de postulación) el cual se deberá firmar utilizando el certificado digital de la compañía en proceso de certificación.

Para ello, descargar el archivo y enviarlo a la API para que la misma lo firme mediante el servicio de firma de documentos de habilitación (si la compañía es de tipo asociada, consumir el correspondiente servicio).

Luego de enviarlo, la API retornará un enlace para descargar el archivo XML de postulación firmado, el cual deberá ser cargado en el portal de la DGII para activar el ambiente de certificación el cual es necesario para iniciar con el set de pruebas, paso número tres.

{
  "signedDocumentUrl": "https://api-alanube-e-provider-dom-test.s3.amazonaws.com/..."
}

3. Generación del set de pruebas

Una vez completado el paso anterior, la DGII activará el ambiente de certificación para la compañía en cuestión.

Es aquí donde se deberá consumir el servicio de generación de set de pruebas. De no contar con un set de pruebas en progreso, dicho servicio creará uno y retornará, entre otros datos, el id del set de pruebas, el cual resultará útil para consultar el estado del mismo.

A continuación, se muestra a modo de ejemplo la respuesta entregada por la API al momento de generar un nuevo set de pruebas:

{
  "id": "01GK1P6FK2EQXFV9CB8FHVV9P4",
  "status": "REGISTERED",
  "idCompany": "01FVD6QRP3HB40GZVW5SQGV29V",
  "companyIdentification": "132109122",
  "itemExample": {
    "billingIndicator": 1,
    "itemName": "Un artículo de prueba",
    "goodServiceIndicator": 1,
    "unitPriceItem": 2950
  },
  "creationDate": "2022-11-20 08:36:11"
}

¿En qué consiste el set de pruebas?

El set de pruebas está conformado por cada uno de los documentos necesarios para el proceso de certificación. Cuando se genera un nuevo set de pruebas lo que sucede es que la API comienza a enviar uno a uno dichos documentos hacia la DGII a modo de prueba de emisión.

Una vez enviados y aprobados los (veinte) documentos que conforman el set, se puede decir que el set de pruebas está en estado de aceptado en su totalidad. Por el contrario, si algún documento del set de pruebas es rechazado, el set de pruebas pasa a estado de rechazado y se debe generar un nuevo set de pruebas.

A continuación, la lista de documentos incluidos en el set de pruebas:

  • 1 Factura de Crédito Fiscal Electrónica (31)
  • 1 Factura de Consumo Electrónica (32)
  • 1 Factura para Regímenes Especiales Electrónico (44)
  • 1 Factura Gubernamentales Electrónicas (45)
  • 1 Factura de Exportación Electrónica (46)
  • 1 Nota de Débito Electrónica (33)
  • 1 Nota de Crédito Electrónica (34)
  • 1 Compra Electrónica (41)
  • 1 Gasto Menor Electrónico (43)
  • 1 Comprobante para Pagos al Exterior Electrónico (47)
  • 10 Facturas de Consumo Electrónica (32) menores a 250.000 DOP y sus correspondientes Resumenes Electrónicos

¿Cómo consulto el estado del set de pruebas?

La consulta del set de pruebas se puede realizar mediante el servicio de consulta del set de pruebas (si la compañía es de tipo asociada, consumir el correspondiente servicio).

Dicho servicio retornará el estado del set de pruebas, junto con la información de los 20 documentos que conforman el mismo (id, estado, tipo y número de secuencia, entre otros).

Adicionalmente, una vez el set de pruebas se encuentre en estado de aceptado, se generarán los (dos) enlaces de descarga. Dichos enlaces de descarga contienen los XML's y PDF's generados durante el set de pruebas.

📘

Importante

Mediante dichos enlaces, se deberán descargar los XML's y PDF's generados.

Posteriormente, se deberá cargar estos documentos en el portal de la DGII y esperar a ser aprobados por la entidad.

A continuación, se muestra a modo de ejemplo la respuesta entregada por la API al momento de consultar el estado de un set de pruebas (aceptado):

{
  "testId": "01GK1P6FK2EQXFV9CB8FHVV9P4",
  "idCompany": "01FVD6QRP3HB40GZVW5SQGV29V",
  "status": "ACCEPTED",
  "retryNumber": 41,
  "itemExample": {
    "billingIndicator": 1,
    "itemName": "Un artículo de prueba",
    "goodServiceIndicator": 1,
    "unitPriceItem": 2950
  },
  "totalDocumentProcessed": 20,
  "documentsInfo": {
    "zipUrl": "https://api-alanube-e-provider-dom-test.s3.amazonaws.com/...",
    "documents": [
      {
        "documentType": "creditNote",
        "idDocument": "01GK1P6FK2N5DQDA0SRRGZHFDW",
        "status": "ACCEPTED",
        "encf": "E340000001410"
      },
      {
        "documentType": "debitNote",
        "idDocument": "01GK1P6FK2S52GMWJY4R5N8QZG",
        "status": "ACCEPTED",
        "encf": "E330000001410"
      },
      {
        "documentType": "exportSupport",
        "idDocument": "01GK1P6FKJNBT2PQX38A43872A",
        "status": "ACCEPTED",
        "encf": "E460000001410"
      },
      {
        "documentType": "fiscalInvoice",
        "idDocument": "01GK1P6FK2PJ6TE6PSK76ZBF6X",
        "status": "ACCEPTED",
        "encf": "E310000001410"
      },
      {
        "documentType": "gubernamental",
        "idDocument": "01GK1P6FKJGWMDN7BZ4ZSVG94E",
        "status": "ACCEPTED",
        "encf": "E450000001410"
      },
      {
        "documentType": "invoice",
        "idDocument": "01GK1P6FK24BZ655V21FGAWX0D",
        "status": "ACCEPTED",
        "encf": "E320000001410"
      },
      {
        "documentType": "minorExpense",
        "idDocument": "01GK1P6FKKWPNSVGF0P3HN9TQ7",
        "status": "ACCEPTED",
        "encf": "E430000001410"
      },
      {
        "documentType": "paymentAbroadSupport",
        "idDocument": "01GK1P6FKKS32PSKS0AWVS3CQH",
        "status": "ACCEPTED",
        "encf": "E470000001410"
      },
      {
        "documentType": "purchase",
        "idDocument": "01GK1P6FKKTP0Y1D7WPRGAZDRX",
        "status": "ACCEPTED",
        "encf": "E410000001410"
      },
      {
        "documentType": "specialRegime",
        "idDocument": "01GK1P6FKK7BV6240GFKBXVMCA",
        "status": "ACCEPTED",
        "encf": "E440000001410"
      }
    ]
  },
  "resumesInfo": {
    "zipUrl": "https://api-alanube-e-provider-dom-test.s3.amazonaws.com/...",
    "documents": [
      {
        "documentType": "resume",
        "idDocument": "01GK1P6FKKXRV7JVJ398KCNB25",
        "status": "ACCEPTED",
        "encf": "E320000002410"
      },
      {
        "documentType": "resume",
        "idDocument": "01GK1P6FKKYSSM8CE6WH6K45DT",
        "status": "ACCEPTED",
        "encf": "E320000002411"
      },
      {
        "documentType": "resume",
        "idDocument": "01GK1P6FKKX134NQRY6WZ86VER",
        "status": "ACCEPTED",
        "encf": "E320000002412"
      },
      {
        "documentType": "resume",
        "idDocument": "01GK1P6FKKADVN59CCGV3RN435",
        "status": "ACCEPTED",
        "encf": "E320000002413"
      },
      {
        "documentType": "resume",
        "idDocument": "01GK1P6FKK2DE4B251E2JQ2YWF",
        "status": "ACCEPTED",
        "encf": "E320000002414"
      },
      {
        "documentType": "resume",
        "idDocument": "01GK1P6FKKZJAEFQ2J69GYZFNQ",
        "status": "ACCEPTED",
        "encf": "E320000002415"
      },
      {
        "documentType": "resume",
        "idDocument": "01GK1P6FKKW5QQB66DYCWGXN72",
        "status": "ACCEPTED",
        "encf": "E320000002416"
      },
      {
        "documentType": "resume",
        "idDocument": "01GK1P6FKKZCXV9Q44NH4X5YCG",
        "status": "ACCEPTED",
        "encf": "E320000002417"
      },
      {
        "documentType": "resume",
        "idDocument": "01GK1P6FKKBPZV9BY0TV9FC6HA",
        "status": "ACCEPTED",
        "encf": "E320000002418"
      },
      {
        "documentType": "resume",
        "idDocument": "01GK1P6FKKAJ93HHSX7FFJT6PW",
        "status": "ACCEPTED",
        "encf": "E320000002419"
      }
    ]
  }
}

👍

Genial!

Una vez completado este paso con éxito, tu compañía ya se encuentra a pocos pasos de estar habilitada como emisora electrónica. 😃

4. Firmado de la declaración jurada

Una vez completado el paso anterior, la DGII brindará un segundo archivo XML (llamado declaración jurada), el cual se deberá firmar de igual forma que el archivo XML del paso tres.

Para ello, descargar el archivo y enviarlo a la API para que la misma lo firme mediante el servicio de firma de documentos de habilitación (si la compañía es de tipo asociada, consumir el correspondiente servicio).

Una vez más, la API retornará un enlace para descargar el archivo XML de declaración jurada firmado, el cual deberá ser cargado en el portal de la DGII por el usuario.

5. Asignación de roles y firmado

Como último paso del proceso, el representante legal (dueño del certificado digital) deberá delegar y aceptar los roles necesarios en el portal de la DGII otorgando el permiso correspondiente a Alanube para emitir documentos como proveedor de servicios electrónicos.

De ser necesario, se podrá firmar el XML de asignación de roles entregado por la DGII mediante el servicio de firma de documentos de habilitación (si la compañía es de tipo asociada, consumir el correspondiente servicio).

Tal como en los pasos anteriores, la API retornará un enlace de descarga del archivo XML firmado, el cual se procederá a cargar en el portal de la DGII (de ser requerido).