Inicio rápido

Guía rápida para empezar a probar la API de Polaris sin necesidad de crear una empresa ni acceder al portal. Ideal para desarrolladores que desean evaluar la tecnología de forma inmediata usando el Ambiente de Desarrollo

¿Quieres probar Polaris de inmediato sin necesidad de crear una empresa ni completar un proceso de certificación?
¡Estás en el lugar correcto!

Este inicio rápido está diseñado para que cualquier desarrollador pueda probar la API de Polaris en pocos minutos, usando un ambiente especial y un token genérico que ya tenemos listo.

⚠️

Este flujo no envía datos a la DGII ni valida todas las reglas fiscales.
Está enfocado en probar la estructura y conectividad técnica con Polaris.


🧪 ¿Qué es el Ambiente de Desarrollo?

El Ambiente de Desarrollo (valor 0 en el parámetro ambiente) es un entorno especial que:

  • No requiere tener una empresa creada
  • No requiere certificado digital
  • Permite firmar documentos simulados sin validación estricta
  • No genera envíos reales a la DGII

Ideal para:

  • Validar la estructura de tus peticiones
  • Probar conectividad y autenticación
  • Empezar a integrar sin necesidad de configuraciones previas

🔐 Token de desarrollo

Usa este Authentication Token genérico para comenzar: 029d66e3-63ad-474b-8681-3ef66f238aee

Este token ya está asociado al ambiente de desarrollo, así que puedes usarlo sin configurar nada más.


🧩 ¿Qué puedes hacer?

Con este token y el ambiente 0, puedes:

✅ Obtener un Access Token
✅ Preparar y firmar un documento electrónico (ej. Factura de Crédito Fiscal) ✅ Consultar el resultado del firmado ✅ Descargar el XML firmado ✅ Ver cómo se comporta la API ante distintos escenarios


🧑‍💻 Paso 1: Obtener Access Token

Realiza una llamada GET al endpoint /autenticacion/token, pasando el token genérico como parámetro authtoken.

const authToken = '029d66e3-63ad-474b-8681-3ef66f238aee';

fetch(`https://api.polarisedi.com/autenticacion/token?authtoken=${authToken}`)
  .then(res => res.json())
  .then(data => {
    const accessToken = data.token;
    console.log('Access Token:', accessToken);
  })
  .catch(error => {
    console.error('Error al obtener el Access Token:', error);
  });
using System;
using System.Net.Http;
using System.Threading.Tasks;

public class PolarisAuth
{
    public async Task ObtenerAccessTokenAsync()
    {
        var authToken = "029d66e3-63ad-474b-8681-3ef66f238aee";
        var url = $"https://api.polarisedi.com/autenticacion/token?authtoken={authToken}";

        using var httpClient = new HttpClient();
        var response = await httpClient.GetAsync(url);

        if (response.IsSuccessStatusCode)
        {
            var json = await response.Content.ReadAsStringAsync();
            Console.WriteLine("Access Token JSON:");
            Console.WriteLine(json);
        }
        else
        {
            Console.WriteLine($"Error: {response.StatusCode}");
        }
    }
}
curl.exe "https://api.polarisedi.com/autenticacion/token?authtoken=029d66e3-63ad-474b-8681-3ef66f238aee"

📦 Paso 2: Preparar el Documento Electrónico

Crea un documento en formato JSON con la estructura correcta. Aquí usamos una Factura de Crédito Fiscal como ejemplo.

const factura = {
  eNCF: "E310000000007",
  FechaEmision: "2022-08-31T00:00:00-06:00",
  TipoIngreso: 1,
  TipoPago: 2,
  FechaVencimientoSecuencia: "2022-12-31T00:00:00",
  IndicadorMontoGravado: 1,
  FechaLimitePago: "2022-09-30T00:00:00-06:00",
  RNCEmisor: "401234567",
  RazonSocialEmisor: "Empresa de Prueba SRL",
  DireccionEmisor: "Calle Ficticia No. 123",
  RNCComprador: "131880738",
  RazonSocialComprador: "Simulador DGII",
  Items: [
    {
      IndicadorFacturacion: 2,
      Nombre: "Electricidad",
      IndicadorBienOServicio: 2,
      Cantidad: 100,
      UnidadMedida: 43,
      PrecioUnitario: 5000,
      MontoItem: 500000
    },
    {
      IndicadorFacturacion: 2,
      Nombre: "Internet",
      IndicadorBienOServicio: 2,
      Cantidad: 120,
      UnidadMedida: 43,
      PrecioUnitario: 2500,
      MontoItem: 300000
    }
  ],
  MontoGravadoTotal: 800000,
  MontoGravadoI1: 800000,
  ITBIS1: 18,
  ITBIS2: 16,
  ITBIS3: 0,
  TotalITBIS: 144000,
  TotalITBIS1: 144000,
  MontoTotal: 944000,
  MontoPeriodo: 944000
};
var jsonBody = @"{
  ""eNCF"": ""E310000000007"",
  ""FechaEmision"": ""2022-08-31T00:00:00-06:00"",
  ""TipoIngreso"": 1,
  ""TipoPago"": 2,
  ""FechaVencimientoSecuencia"": ""2022-12-31T00:00:00"",
  ""IndicadorMontoGravado"": 1,
  ""FechaLimitePago"": ""2022-09-30T00:00:00-06:00"",
  ""RNCEmisor"": ""401234567"",
  ""RazonSocialEmisor"": ""Empresa de Prueba SRL"",
  ""DireccionEmisor"": ""Calle Ficticia No. 123"",
  ""RNCComprador"": ""131880738"",
  ""RazonSocialComprador"": ""Simulador DGII"",
  ""Items"": [
    {
      ""IndicadorFacturacion"": 2,
      ""Nombre"": ""Electricidad"",
      ""IndicadorBienOServicio"": 2,
      ""Cantidad"": 100,
      ""UnidadMedida"": 43,
      ""PrecioUnitario"": 5000,
      ""MontoItem"": 500000
    },
    {
      ""IndicadorFacturacion"": 2,
      ""Nombre"": ""Internet"",
      ""IndicadorBienOServicio"": 2,
      ""Cantidad"": 120,
      ""UnidadMedida"": 43,
      ""PrecioUnitario"": 2500,
      ""MontoItem"": 300000
    }
  ],
  ""MontoGravadoTotal"": 800000,
  ""MontoGravadoI1"": 800000,
  ""ITBIS1"": 18,
  ""ITBIS2"": 16,
  ""ITBIS3"": 0,
  ""TotalITBIS"": 144000,
  ""TotalITBIS1"": 144000,
  ""MontoTotal"": 944000,
  ""MontoPeriodo"": 944000
}";
# Guarda este contenido en un archivo llamado "factura.json"

{
  "eNCF": "E310000000007",
  "FechaEmision": "2022-08-31T00:00:00-06:00",
  "TipoIngreso": 1,
  "TipoPago": 2,
  "FechaVencimientoSecuencia": "2022-12-31T00:00:00",
  "IndicadorMontoGravado": 1,
  "FechaLimitePago": "2022-09-30T00:00:00-06:00",
  "RNCEmisor": "401234567",
  "RazonSocialEmisor": "Empresa de Prueba SRL",
  "DireccionEmisor": "Calle Ficticia No. 123",
  "RNCComprador": "131880738",
  "RazonSocialComprador": "Simulador DGII",
  "Items": [
    {
      "IndicadorFacturacion": 2,
      "Nombre": "Electricidad",
      "IndicadorBienOServicio": 2,
      "Cantidad": 100,
      "UnidadMedida": 43,
      "PrecioUnitario": 5000,
      "MontoItem": 500000
    },
    {
      "IndicadorFacturacion": 2,
      "Nombre": "Internet",
      "IndicadorBienOServicio": 2,
      "Cantidad": 120,
      "UnidadMedida": 43,
      "PrecioUnitario": 2500,
      "MontoItem": 300000
    }
  ],
  "MontoGravadoTotal": 800000,
  "MontoGravadoI1": 800000,
  "ITBIS1": 18,
  "ITBIS2": 16,
  "ITBIS3": 0,
  "TotalITBIS": 144000,
  "TotalITBIS1": 144000,
  "MontoTotal": 944000,
  "MontoPeriodo": 944000
}

📝 Paso 3: Firmar el documento

Envía el documento al endpoint correspondiente, usando el Access Token y el ambiente 0.

const accessToken = '<AccessToken generado en paso 1>';
const ambiente = 0;

fetch(`https://api.polarisedi.com/FacturasCreditoFiscal/Firmar?ambiente=${ambiente}&token=${accessToken}`, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(factura) // Se asume que el objeto "factura" ya fue definido
})
.then(res => res.json())
.then(data => {
  console.log('Respuesta del firmado:', data);
})
.catch(error => {
  console.error('Error al firmar la factura:', error);
});
using var client = new HttpClient();
var accessToken = "<AccessToken generado en paso 1>";
var ambiente = 0;
var url = $"https://api.polarisedi.com/FacturasCreditoFiscal/Firmar?ambiente={ambiente}&token={accessToken}";

// Se asume que jsonBody ya fue definido en el paso anterior
var content = new StringContent(jsonBody, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);

if (response.IsSuccessStatusCode)
{
    var result = await response.Content.ReadAsStringAsync();
    Console.WriteLine("Respuesta del firmado:");
    Console.WriteLine(result);
}
else
{
    Console.WriteLine($"Error: {response.StatusCode}");
}
curl.exe -X POST "https://api.polarisedi.com/FacturasCreditoFiscal/Firmar?ambiente=0&token=<AccessToken generado en paso 1>" ^
     -H "Content-Type: application/json" ^
     -d "@factura.json"

📥 Paso 4: Consultar el resultado

Usa el TransaccionID devuelto en el paso anterior para consultar si el documento fue procesado correctamente.

const accessToken = '<AccessToken generado en paso 1>';
const ambiente = 0;
const transaccionID = 'TRANSACCION_ID_OBTENIDO';

fetch(`https://api.polarisedi.com/ComprobantesElectronicos/ConsultarResultado?ambiente=${ambiente}&token=${accessToken}&transaccionID=${transaccionID}`)
  .then(res => res.json())
  .then(data => {
    console.log('Resultado del documento:', data);
  })
  .catch(error => {
    console.error('Error al consultar el resultado:', error);
  });
using var client = new HttpClient();
var accessToken = "<AccessToken generado en paso 1>";
var ambiente = 0;
var transaccionID = "TRANSACCION_ID_OBTENIDO";
var url = $"https://api.polarisedi.com/ComprobantesElectronicos/ConsultarResultado?ambiente={ambiente}&token={accessToken}&transaccionID={transaccionID}";

var response = await client.GetAsync(url);

if (response.IsSuccessStatusCode)
{
    var result = await response.Content.ReadAsStringAsync();
    Console.WriteLine("Resultado del documento:");
    Console.WriteLine(result);
}
else
{
    Console.WriteLine($"Error: {response.StatusCode}");
}
curl.exe "https://api.polarisedi.com/ComprobantesElectronicos/ConsultarResultado?ambiente=0&token=<AccessToken generado en paso 1>&transaccionID=TRANSACCION_ID_OBTENIDO"

✅ ¡Listo!

Con solo estos pasos ya estás usando Polaris en el Ambiente de Desarrollo.
Puedes validar tu flujo de integración de extremo a extremo sin necesidad de empresa, portal ni configuración adicional.

Cuando estés listo para avanzar a pruebas reales con DGII, consulta la sección:

👉 Pasos para comenzar a usar Polaris