> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Informe de procesamiento empresarial

> Informe de procesamiento empresarial en Vantage captura datos a nivel de transacción, versiones de skill, tiempos de los pasos y detalles del revisor para auditoría y análisis.

export const VantageRegion = ({children}) => {
  const STORAGE_KEY = "abbyy.vantage.region";
  const REGIONS = [{
    code: "eu",
    label: "Europe"
  }, {
    code: "us",
    label: "North America"
  }, {
    code: "au",
    label: "Australia / Asia-Pacific"
  }];
  const [region, setRegion] = useState("eu");
  const [open, setOpen] = useState(false);
  const containerRef = useRef(null);
  const dropdownRef = useRef(null);
  function safeGetSavedRegion() {
    try {
      const saved = typeof window !== "undefined" ? window.localStorage.getItem(STORAGE_KEY) : null;
      const valid = new Set(REGIONS.map(r => r.code));
      return saved && valid.has(saved) ? saved : "eu";
    } catch {
      return "eu";
    }
  }
  function safeSetSavedRegion(code) {
    try {
      if (typeof window !== "undefined") {
        window.localStorage.setItem(STORAGE_KEY, code);
      }
    } catch {}
  }
  function dispatchRegionChanged(code) {
    try {
      if (typeof window !== "undefined") {
        window.dispatchEvent(new CustomEvent("abbyy:region-changed", {
          detail: {
            code
          }
        }));
      }
    } catch {}
  }
  function replaceRegionInString(text, currentRegion) {
    if (typeof text !== "string") return text;
    const hostRegex = /https:\/\/vantage-(eu|us|au)\.abbyy\.com/gi;
    const tokenRegex = /https:\/\/vantage-\[region\]\.abbyy\.com/gi;
    const bareHostRegex = /vantage-(eu|us|au)\.abbyy\.com/gi;
    const bareTokenRegex = /vantage-\[region\]\.abbyy\.com/gi;
    return text.replace(hostRegex, `https://vantage-${currentRegion}.abbyy.com`).replace(tokenRegex, `https://vantage-${currentRegion}.abbyy.com`).replace(bareHostRegex, `vantage-${currentRegion}.abbyy.com`).replace(bareTokenRegex, `vantage-${currentRegion}.abbyy.com`);
  }
  useEffect(() => {
    setRegion(safeGetSavedRegion());
  }, []);
  useEffect(() => {
    const root = containerRef.current;
    if (!root) return;
    const anchors = root.querySelectorAll("a[href]");
    anchors.forEach(a => {
      const href = a.getAttribute("href");
      if (href) {
        const next = replaceRegionInString(href, region);
        if (next !== href) {
          a.setAttribute("href", next);
        }
      }
    });
    const walker = typeof document !== "undefined" ? document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null) : null;
    if (walker) {
      const toUpdate = [];
      let node = walker.nextNode();
      while (node) {
        const updated = replaceRegionInString(node.nodeValue, region);
        if (updated !== node.nodeValue) {
          toUpdate.push([node, updated]);
        }
        node = walker.nextNode();
      }
      toUpdate.forEach(([textNode, value]) => {
        textNode.nodeValue = value;
      });
    }
  }, [region, children]);
  useEffect(() => {
    const root = containerRef.current;
    if (!root) return;
    const anchors = root.querySelectorAll("a[href]");
    anchors.forEach(a => {
      a.style.fontWeight = "600";
      a.style.textDecoration = "underline";
      a.style.textUnderlineOffset = "2px";
    });
  }, [region, children]);
  useEffect(() => {
    const onRegionChanged = evt => {
      const code = evt && evt.detail && evt.detail.code;
      if (!code || code === region) return;
      setRegion(code);
    };
    if (typeof window !== "undefined") {
      window.addEventListener("abbyy:region-changed", onRegionChanged);
    }
    return () => {
      if (typeof window !== "undefined") {
        window.removeEventListener("abbyy:region-changed", onRegionChanged);
      }
    };
  }, [region]);
  useEffect(() => {
    const onClickAway = e => {
      if (!dropdownRef.current) return;
      if (!dropdownRef.current.contains(e.target)) {
        setOpen(false);
      }
    };
    document.addEventListener("click", onClickAway, true);
    return () => document.removeEventListener("click", onClickAway, true);
  }, []);
  const onSelect = code => {
    setRegion(code);
    safeSetSavedRegion(code);
    dispatchRegionChanged(code);
    setOpen(false);
  };
  const current = REGIONS.find(r => r.code === region) || REGIONS[0];
  return <div className="not-prose">
      <div className="mb-4 inline-flex items-center gap-2" ref={dropdownRef}>
        <span className="text-sm text-zinc-950/80 dark:text-white/80">Tenant Region:</span>
        <div className="relative">
          <button type="button" aria-haspopup="listbox" aria-expanded={open ? "true" : "false"} onClick={() => setOpen(v => !v)} className="h-8 px-3 rounded-md bg-zinc-900/5 dark:bg-white/5 border border-zinc-950/20 dark:border-white/20 text-sm inline-flex items-center gap-2">
            <span className="text-zinc-950 dark:text-white">{current.label}</span>
            <svg width="8" height="24" viewBox="0 -9 3 24" className="transition-transform text-gray-400 overflow-visible dark:text-gray-600 ml-auto" style={{
    transform: open ? "rotate(270deg)" : "rotate(90deg)"
  }}>
              <path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round"></path>
            </svg>
          </button>
          {open ? <div role="listbox" className="absolute z-50 left-full top-0 ml-2 w-56 rounded-xl border border-zinc-950/20 dark:border-white/20 bg-white dark:bg-zinc-900 shadow-lg p-2">
              {REGIONS.map(r => {
    const selected = r.code === region;
    return <button key={r.code} type="button" role="option" aria-selected={selected ? "true" : "false"} onClick={() => onSelect(r.code)} className={"w-full flex items-center justify-between px-3 py-2 rounded-lg text-sm hover:bg-zinc-950/5 dark:hover:bg-white/10 text-zinc-950 dark:text-white" + (selected ? " font-medium" : "")}>
                    <span style={selected ? {
      color: "#ff2038"
    } : undefined}>{r.label}</span>
                    <span className={selected ? "ml-3" : "ml-3 invisible"} style={selected ? {
      color: "#ff2038"
    } : undefined}>✓</span>
                  </button>;
  })}
            </div> : null}
        </div>
      </div>
      <div ref={containerRef} className="prose dark:prose-invert max-w-none">{children}</div>
    </div>;
};

El informe de procesamiento empresarial muestra qué tan bien se procesan los documentos y proporcionan trazabilidad de las transacciones de extremo a extremo para fines de auditoría. El Warehouse registra todas las transacciones —completadas y en curso— para su análisis y visualización en herramientas de inteligencia de negocios. Los datos se conservan durante 12 meses, lo que permite el análisis y la auditoría en períodos de tiempo definidos.

Se realiza un seguimiento de los siguientes datos:

* ID de transacción.
* ID y versión de la skill.
* Ruta de procesamiento por pasos:
  * Tipos de paso
  * Nombres
  * Fecha y hora de inicio y finalización del paso
  * Duración (en segundos)
* Nombre y correo electrónico del operador de revisión manual.
* Parámetros de registro del documento y de la transacción.

<Info>
  El Warehouse no almacena información sobre eventos de procesamiento de documentos en actividades que nunca se ejecutan según su configuración. Por ejemplo, la configuración Assemble by files corresponde al comportamiento predeterminado de Vantage, por lo tanto, el procesamiento de documentos en esta actividad se omitirá en el flujo de trabajo.
</Info>

<div id="migrating-from-v1-to-v2">
  ## Migración de v1 a v2
</div>

En Vantage 3.0 y versiones posteriores, el endpoint `transaction-steps` v1 ha quedado obsoleto. Para garantizar la compatibilidad con versiones anteriores, el endpoint v2 funciona de manera similar, con un cambio en el nombre del endpoint y con los parámetros de consulta trasladados al cuerpo de la solicitud. El endpoint v2 ha pasado a un modelo asíncrono para gestionar mejor las solicitudes con grandes volúmenes de datos. Después de solicitar un informe, puede consultar periódicamente el estado hasta que el informe esté listo. Una vez completado, puede descargar los resultados.

<VantageRegion>
  ```http theme={null}
  // v1: One synchronous call with query parameters
  1. GET https://vantage-us.abbyy.com/api/reporting/v1/transaction-steps?skillId=ABCD&startDate=2025-11-01&endDate=2025-11-18

  // v2: Multiple async calls
  1. POST https://vantage-us.abbyy.com/api/reporting/v2/exports/transaction-steps
  {
    "filters": {
      "skillId": "d0e27b2d-bcc6-4129-bfd1-c1e37ee3efae",
      "transactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "startDate": "2025-11-03T17:19:54.386Z",
      "endDate": "2025-11-17T20:05:26.097Z"
    },
    "sendEmailNotification": true
  }

  // Receive request Id
  2. GET https://vantage-us.abbyy.com/api/reporting/v2/exports/transaction-steps/{{requestId}}/status

  // Una vez que el estado = "Succeeded", descargar los archivos del informe
  3. GET https://vantage-us.abbyy.com/api/reporting/v2/exports/transaction-steps/{{requestId}}/result/{fileIndex}
  ```
</VantageRegion>

<div id="whats-new">
  ### ¿Qué hay de nuevo?
</div>

En la solicitud (`/api/reporting/v2/exports/transaction-steps`):

* Los filtros se han trasladado de los parámetros de consulta al cuerpo de la solicitud (objeto JSON `filters`).
* `startDate`, especificado dentro del objeto `filters`, ahora es obligatorio.
* Campo nuevo: `sendEmailNotification` (true/false): envía un correo electrónico al usuario que solicitó el informe cuando el informe esté listo para descargar.

En los archivos CSV descargados del resultado final (`/api/reporting/v2/exports/transaction-steps/{{requestId}}/result/{fileIndex}`), se han añadido dos columnas:

* `DocumentsCount`: el número de documentos procesados en una transacción.
* `PagesCount`: el número de páginas procesadas en una transacción.

Continúe leyendo más abajo para ver los detalles sobre cómo funciona el endpoint v2.

<div id="downloading-a-data-report">
  ## Descarga de un informe de datos
</div>

<Note>
  Solo los usuarios con los roles de **Tenant Administrator** y **Processing Supervisor** pueden descargar un informe de datos desde Warehouse. Para obtener más información, consulta la sección Control de acceso basado en roles.
</Note>

Puedes obtener datos de Warehouse en un archivo CSV mediante la Vantage API. Para hacerlo, envía una solicitud **POST** al siguiente recurso:

<VantageRegion>
  ```
  POST https://vantage-us.abbyy.com/api/reporting/v2/exports/transaction-steps
  ```
</VantageRegion>

El cuerpo de la solicitud debe incluir las siguientes propiedades dentro de un objeto `filters`:

* **skillId**. El ID de la skill cuyas transacciones se deben descargar. Opcional.
* **transactionId**. El ID de la transacción por la que se debe filtrar. Opcional.
* **startDate**. El primer día del período (formato de ejemplo: 2022-01-07T13:03:38, la hora debe estar en UTC) para el cual se deben descargar las transacciones. **Obligatorio.**
* **endDate**. El último día del período (formato de ejemplo: 2022-09-07T13:03:38, la hora debe estar en UTC) para el cual se deben descargar las transacciones. Opcional.
* **sendEmailNotification**. Enviar un correo electrónico al usuario que creó la solicitud de informe para informarle que el informe está listo para descargar. Opcional.

```json theme={null}
{
  "filters": {
    "skillId": "d0e27b2d-bcc6-4129-bfd1-c1e37ee3efae",
    "transactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "startDate": "2025-11-03T17:19:54.386Z",
    "endDate": "2025-11-17T20:05:26.097Z"
  },
  "sendEmailNotification": true
}
```

Las solicitudes de informes se procesan de forma asíncrona, por lo que la respuesta devuelve un `requestId` que se utiliza para comprobar el estado de la solicitud.

Resultado:

```json theme={null}
{
  "requestId": "8f772512-099c-4050-8dd3-6c4d7af69747"
}
```

Para consultar el estado del informe, incluya el `requestId` en la solicitud GET:

<VantageRegion>
  ```http theme={null}
  GET https://vantage-us.abbyy.com/api/reporting/v2/exports/transaction-steps/{{requestId}}/status
  ```
</VantageRegion>

Una vez creado el informe, el valor de `status` será "Succeeded" y `totalFileCount` mostrará el número de archivos disponibles para descargar:

```json theme={null}
{
  "status": "Succeeded",
  "totalFileCount": 3,
  "filters": {
      "skillId": "d0e27b2d-bcc6-4129-bfd1-c1e37ee3efae",
      "startDate": "2025-11-03T17:19:54.386+00:00",
      "endDate": "2025-11-17T20:05:26.097+00:00"
  }
}
```

Para descargar los archivos de informe resultantes, realice una solicitud GET a lo siguiente, pasando nuevamente el `requestId` y agregando el `fileIndex`, el índice que comienza en cero del archivo. Por ejemplo, si `"totalFileCount": 3`, entonces los índices de archivo disponibles serían 0, 1 y 2.

<VantageRegion>
  ```http theme={null}
  GET https://vantage-us.abbyy.com/api/reporting/v2/exports/transaction-steps/{{requestId}}/result/{fileIndex}
  ```
</VantageRegion>

Este es un ejemplo de cómo es la respuesta CSV:

| **SkillId**                          | **SkillVersion** | **SkillName**  | **TransactionId**                    | **StepName** | **StepType**   | **ManualReviewOperatorName** | **ManualReviewOperatorEmail** | **StartedUtc**      | **CompletedUtc**    | **Status**           | **Duration** | **DocumentsCount** | **PagesCount** | **document\_SourceFileName** | **document\_SourceType** | **transaction\_App** |
| ------------------------------------ | ---------------- | -------------- | ------------------------------------ | ------------ | -------------- | ---------------------------- | ----------------------------- | ------------------- | ------------------- | -------------------- | ------------ | ------------------ | -------------- | ---------------------------- | ------------------------ | -------------------- |
| d0e27b2d-bcc6-4129-bfd1-c1e37ee3efae | 1                | Redaction Test | 6d7e9eeb-86e3-4952-8e29-3f76b3fae59f | Input        | Input          |                              |                               | 11/17/2025 19:37:52 | 11/17/2025 19:38:01 | FinishedSuccessfully | 9            |                    |                | Invoice CA\_2.pdf            | PublicAPI                | PublicAPI            |
| d0e27b2d-bcc6-4129-bfd1-c1e37ee3efae | 1                | Redaction Test | 6d7e9eeb-86e3-4952-8e29-3f76b3fae59f | OCR          | OCR            |                              |                               | 11/17/2025 19:38:02 | 11/17/2025 19:38:17 | FinishedSuccessfully | 15           |                    |                | Invoice CA\_2.pdf            | PublicAPI                | PublicAPI            |
| d0e27b2d-bcc6-4129-bfd1-c1e37ee3efae | 1                | Redaction Test | 6d7e9eeb-86e3-4952-8e29-3f76b3fae59f | Classify     | Classification |                              |                               | 11/17/2025 19:38:17 | 11/17/2025 19:38:20 | FinishedSuccessfully | 3            |                    |                | Invoice CA\_2.pdf            | PublicAPI                | PublicAPI            |
| d0e27b2d-bcc6-4129-bfd1-c1e37ee3efae | 1                | Redaction Test | 6d7e9eeb-86e3-4952-8e29-3f76b3fae59f | Extract      | Extraction     |                              |                               | 11/17/2025 19:38:21 | 11/17/2025 19:38:44 | FinishedSuccessfully | 23           |                    |                | Invoice CA\_2.pdf            | PublicAPI                | PublicAPI            |
| d0e27b2d-bcc6-4129-bfd1-c1e37ee3efae | 1                | Redaction Test | 6d7e9eeb-86e3-4952-8e29-3f76b3fae59f | Output       | Output         |                              |                               | 11/17/2025 19:38:47 | 11/17/2025 19:39:01 | Failed               | 13           |                    |                | Invoice CA\_2.pdf            | PublicAPI                | PublicAPI            |

<div id="response-structure">
  ### Estructura de la respuesta
</div>

Cada fila de un archivo CSV es una operación realizada sobre una transacción. Por ejemplo, la importación de documentos, el reconocimiento o la revisión manual. Para cada operación en el Warehouse, sus detalles se almacenan en columnas:

| Column                        | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SkillId`                     | El ID del skill.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `SkillVersion`                | La versión del skill.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `SkillName`                   | El nombre del skill.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `TransactionId`               | ID de la transacción.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `StepName`                    | El nombre del evento o el nombre de la actividad en el caso del skill de tipo Process.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `StepType`                    | El tipo de evento. Valores posibles: <br />- Input (disponible para todos los tipos de skill) <br />- Ocr (disponible para skills de OCR o skills de tipo Process con actividad de OCR agregada) <br />- Classification (disponible para skills de Classification o skills de tipo Process con actividad de Classification agregada) <br />- Extraction (disponible para todos los tipos de skill) <br />- Condition (disponible para skills de tipo Process con actividad de Condition agregada) <br />- CustomActivity (disponible para skills de tipo Process con actividad Custom agregada) <br />- WaitingForManualReview (disponible para skills de tipo Process con la actividad **Manual Review** agregada). El tiempo durante el cual una transacción está en espera de revisión manual <br />- ManualReview (disponible para skills de tipo Process con la actividad **Manual Review** agregada). El tiempo durante el cual el Operador está verificando una transacción <br />- Output (disponible para todos los tipos de skill) |
| `ManualReviewOperatorName`    | El nombre del Operador de Manual Review.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `ManualReviewOperatorEmail`   | El correo electrónico del Operador de Manual Review.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `StartedUtc`                  | Hora de inicio del evento (UTC). Por ejemplo, 5/3/2022 1:59:02 PM.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `CompletedUtc`                | Hora de finalización del evento (UTC).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `Status`                      | El estado del evento. Valores posibles: <br />- Processing <br />- Finished Successfully <br />- Canceled <br />- Failed                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `Duration`                    | Duración del evento (en segundos).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `DocumentsCount`              | El número de documentos procesados en una transacción.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `PagesCount`                  | El número de páginas procesadas en una transacción.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `document_*`, `transaction_*` | Parámetros de documento o de transacción pasados para el procesamiento. El prefijo **document\_** se agrega a los parámetros de documento en el encabezado, y el prefijo **transaction\_** se agrega a los parámetros de transacción. Por ejemplo, **document\_SourceFileName**. Si una transacción contiene documentos con parámetros idénticos en nombre pero diferentes en valor, el Warehouse enumerará todos los valores únicos de este parámetro separados por comas. Por ejemplo, todos los nombres de archivo dentro de una transacción.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |

Los datos preparados se almacenan durante 2 semanas después de que se complete la solicitud. Los datos obtenidos en formato CSV pueden analizarse posteriormente en cualquier herramienta de BI.

<div id="retrieving-a-list-of-reporting-requests">
  ## Recuperar una lista de solicitudes de informes
</div>

Para recuperar la lista de solicitudes de informes realizadas dentro de un período de tiempo determinado, realice una solicitud GET al siguiente endpoint, donde `createdFrom` y `createdTo` representan el intervalo de fechas y `statusFilter` es uno de los siguientes valores: `New`,`Queued`,`Processing`,`Succeeded`,`Failed`, o `Cancelled`. Esto es útil en caso de extravío de identificadores de solicitud.

<VantageRegion>
  ```http theme={null}
  GET https://vantage-us.abbyy.com/api/reporting/v2/exports/transaction-steps?statusFilter=Succeeded&createdFrom=2025-11-05&createdTo=2025-11-17
  ```
</VantageRegion>

La respuesta incluye una matriz de solicitudes de generación de informes.

```json theme={null}
{
  "requests": [
    {
      "requestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "status": "New",
      "completedUtc": "2025-11-18T22:22:00.294Z",
      "createdUtc": "2025-11-18T22:20:49.294Z",
      "totalFileCount": "2",
      "filters": {
        "skillId": "d0e27b2d-bcc6-4129-bfd1-c1e37ee3efae",
        "startDate": "2025-11-03T17:19:54.386+00:00",
        "endDate": "2025-11-17T20:05:26.097+00:00"
      }
    },
    {
      "requestId": "48293032-5717-4562-b3fc-2c963f66afa6",
      "status": "Correcto",
      "completedUtc": "2025-12-18T22:22:00.294Z",
      "createdUtc": "2025-12-18T22:20:49.294Z",
      "totalFileCount": "4",
      "filters": {
        "skillId": "dk3ioda-bcc6-4129-bfd1-c1e37ee3efae",
        "startDate": "2025-11-03T17:19:54.386+00:00",
        "endDate": "2025-11-17T20:05:26.097+00:00"
      }
    }
  ]
}
```
