Extractions

RIDE

Proceso detallado para extraer un documento RIDE en formato XML, PDF o JSON.

La extracción de un RIDE (Documento Electrónico) se realiza a través de un proceso de dos pasos en el API de TAXO WS. Aquí se describe cómo iniciar una tarea de extracción y obtener el documento en el formato deseado.

Pasos para la Extracción de un RIDE

Paso 1: Crear una Tarea

Para iniciar la extracción de un RIDE, debes crear una tarea utilizando la clave de acceso del documento. Esto se realiza mediante una solicitud POST al API.

Javascript
const axios = require('axios');
let data = JSON.stringify({
  "type": "RIDE",
  "identifier": "CLAVE_DE_ACCESO" 
  //Clave de acceso de ejemplo: 2404202401179251243300120010030182328650000000014
});

let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'https://staging-api.taxo.ws/tasks',
  headers: { 
    'x-api-key': 'your_api_key', 
    'Content-Type': 'application/json'
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});

Paso 2: Esperar el Webhook

Una vez creada la tarea, es necesario esperar a que el webhook notifique la finalización del proceso. El webhook enviará un evento a la url previamente configurada con el RIDE en formato JSON indicando que el documento está listo para ser descargado.

El tiempo de respuesta del webhook puede variar debido a la estabilidad del SRI. Nuestro API realiza intentos continuos utilizando toda nuestra infraestructura para adquirir el documento lo más rápidamente posible.
JSON
{
   "event":"extraction.completed",
   "organizationId":"0598a8e2-c375-46fb-bdf8-b4082e771a21",
   "createdAt":"2024-04-27T23:00:10.253Z",
   "model":"extraction",
   "data":{
      "id":"3159d0d0-29ed-4f46-be1c-c82b435d988b",
      "taskId":"7a736ec3-cc14-41dd-912a-acd57420b4d5",
      "taxpayerId":"2edd8f8e-b4a7-4091-8fa8-795551fc6589",
      "taxpayerIdentification":"2404202401179251243300120010030182328650000000014",
      "organizationId":"0598a8e2-c375-46fb-bdf8-b4082e771a21",
      "status":"COMPLETED",
      "taskType":"RIDE",
      "createdAt":"2024-04-27T23:00:10.000Z",
      "updatedAt":"2024-04-27T23:00:10.243Z",
      "extractionType":"DOCUMENT",
      "content":{
         "infoTributaria":{
            "ambiente":"PRODUCCIÓN",
            "tipoEmision":"NORMAL",
            "razonSocial":"DELIVERY HERO DH E-COMMERCE ECUADOR S.A.S.",
            "nombreComercial":"DELIVERY HERO DH E-COMMERCE ECUADOR S.A.S.",
            "ruc":"1792512433001",
            "claveAcceso":"2404202401179251243300120010030182328650000000014",
            "codDoc":"01",
            "estab":"001",
            "ptoEmi":"003",
            "secuencial":"018232865",
            "dirMatriz":"Catalina aldas y Portugal, Edificio Recoleta piso 6. Oficina 65"
         },
         "infoAdicional":[
            {
               "nombre":"Email",
               "valor":"[email protected]"
            }
         ],
         "infoDocumento":{
            "tipo":"factura",
            "fechaEmision":"24/04/2024",
            "dirEstablecimiento":"Catalina aldas y Portugal, Edificio Recoleta piso 6. Oficina 65",
            "contribuyenteEspecial":"051",
            "obligadoContabilidad":"SI",
            "tipoIdentificacionComprador":"04",
            "razonSocialComprador":"ESZTUDIO",
            "identificacionComprador":"0195089231001",
            "totalSinImpuestos":1.14,
            "totalDescuento":0,
            "propina":0,
            "importeTotal":1.31,
            "moneda":"USD",
            "valorRetRenta":0.17,
            "tipoIdentificacionCompradorNombre":"RUC",
            "pago":{
               "formaPago":20,
               "total":1.31,
               "plazo":30,
               "unidadTiempo":"DIAS",
               "formaPagoNombre":"OTROS CON UTILIZACIÓN DEL SISTEMA FINANCIERO"
            },
            "totalImpuestos":[
               {
                  "codigo":2,
                  "codigoPorcentaje":4,
                  "baseImponible":1.14,
                  "tarifa":15,
                  "valor":0.17,
                  "nombre":"IVA"
               }
            ]
         },
         "productos":[
            {
               "codigoPrincipal":"DELIVERY-FEE-EC",
               "descripcion":"Servicio Logistico",
               "unidadMedida":"UND",
               "cantidad":1,
               "precioUnitario":1.03,
               "descuento":0,
               "precioTotalSinImpuesto":1.03,
               "impuestos":{
                  "codigo":2,
                  "codigoPorcentaje":4,
                  "tarifa":15,
                  "baseImponible":1.03,
                  "valor":0.16,
                  "nombre":"IVA"
               }
            },
            {
               "codigoPrincipal":"SERVICE-FEE-EC",
               "descripcion":"Tarifa de servicio",
               "unidadMedida":"UND",
               "cantidad":1,
               "precioUnitario":0.1,
               "descuento":0,
               "precioTotalSinImpuesto":0.1,
               "impuestos":{
                  "codigo":2,
                  "codigoPorcentaje":4,
                  "tarifa":15,
                  "baseImponible":0.1,
                  "valor":0.02,
                  "nombre":"IVA"
               }
            }
         ],
         "fechaAutorizacion":"2024-04-24T10:17:45-05:00",
         "estado":"AUTORIZADO"
      },
      "triggerMethod":"API"
   }
}

Paso 3: Consultar el Documento

Finalmente, para obtener el documento, debes realizar una solicitud GET al servicio correspondiente. El formato del documento (XML, PDF o JSON) dependerá del Content-Type que especifiques en tu solicitud.

Javascript
const axios = require('axios');
let config = {
  method: 'get',
  url: 'https://staging-api.taxo.ws/documents/{CLAVE_DE_ACCESO}',
  headers: { 
    'x-api-key': 'your_api_key', 
    'Content-Type': 'application/xml' // O 'application/json' o 'application/pdf'
  }
};

axios.request(config)
.then((response) => {
  console.log("Documento obtenido: ", response.data);
})
.catch((error) => {
  console.log("Error al obtener el documento: ", error);
});

Copyright © 2024