> ## 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.

# Migrar a la versión 2 de la API

> Actualice su código al pasar de v1 a v2 de ABBYY FlexiCapture for Invoices Cloud REST API: aplicaciones, campos multicolumna y URL de v2 renombradas.

Cuando actualice de la versión 1 a la versión 2 de ABBYY FlexiCapture for Invoices Cloud REST API, tendrá que hacer algunos cambios en su código.

Los cambios esenciales son:

* **Aplicaciones** — La versión 2 introduce el concepto de aplicaciones. Una cuenta puede tener varias aplicaciones que funcionan de forma independiente. Cada aplicación solo puede trabajar con sus propias tareas, datos de procesamiento y modelos de entrenamiento, y no puede acceder a esa información de otras aplicaciones.
* **Campos multicolumna** — Ahora los campos pueden tener variantes, lo que permite diferencias ortográficas y errores, y facilita hacer coincidir los proveedores y las unidades de negocio. Los campos capturados se representan mediante arrays con variantes.
* **Versión actualizada en las URL** — Se cambió el nombre de las URL según la versión: `v1` en la URL pasó a ser `v2`.

A continuación se enumeran por categoría los métodos de la API de la versión 1. Cada entrada muestra la URL de la versión 2 y los cambios en su solicitud y respuesta.

<div id="working-with-files">
  ## Trabajo con archivos
</div>

<div id="post-file">
  ### POST /file
</div>

```http theme={null}
POST https://api-{location-id}.flexicapture.com/v1/file
POST https://api-{location-id}.flexicapture.com/v2/file
```

* Se eliminó el parámetro de consulta `email`; en su lugar, se usa la dirección de correo electrónico de la cuenta.
* Se añadieron a la respuesta: `application` (ID de la aplicación) y `expiring` (la fecha de caducidad del archivo).
* Se eliminaron de la respuesta las claves relacionadas con la validación y la eliminación del archivo (`validated`, `is_validated`, `deleted`, `is_deleted`), el mensaje de error (`error`) y el número de páginas (`pages_count`).

### GET /file/{id}/{token}/info

```http theme={null}
GET https://api-{location-id}.flexicapture.com/v1/file/{id}/{token}/info
GET https://api-{location-id}.flexicapture.com/v2/file/{id}/{token}/info
```

* En los archivos eliminados, ya no se pueden obtener metadatos; ahora se devuelve una respuesta `404`.
* Se añadió a la respuesta: `application` (ID de la aplicación) y `expiring` (la fecha de vencimiento del archivo).
* Se eliminó de la respuesta: las claves relacionadas con la validación y la eliminación de archivos (`validated`, `is_validated`, `deleted`, `is_deleted`), el mensaje de error (`error`) y el número de páginas (`pages_count`).

### GET /file/{id}/{token}

```http theme={null}
GET https://api-{location-id}.flexicapture.com/v1/file/{id}/{token}
GET https://api-{location-id}.flexicapture.com/v2/file/{id}/{token}
```

### DELETE /file/{id}/{token}

```http theme={null}
DELETE https://api-{location-id}.flexicapture.com/v1/file/{id}/{token}
DELETE https://api-{location-id}.flexicapture.com/v2/file/{id}/{token}
```

<div id="capturing-documents">
  ## Captura de documentos
</div>

<div id="post-taskcapturedocuments">
  ### POST /task/capture/documents
</div>

```http theme={null}
POST https://api-{location-id}.flexicapture.com/v1/capture/data
POST https://api-{location-id}.flexicapture.com/v2/task/capture/documents
```

Cambios en la solicitud:

* El cuerpo de la solicitud ya no debe incluir las claves `email` y `label`.
* Las claves `region`, `export_format` y `verification_type` se trasladan al diccionario `properties`.

Cambios en la respuesta:

* Claves agregadas: `batch_id`, `is_realtime_enabled`, `processing_priority`, `is_demo`, `account`, `application`, `is_extra_error`, `documents > data`, `documents > is_moved`, `documents > traininglayout_fileid`.
* Claves eliminadas: `label`, `lead_time`, `started`, `delivered`, `deleted`, `wait_for_action`, `is_test`, `region`, `export_format`, `verification_type`, `business_unit`, `properties > export_format`, `properties > verification_type`.
* Se eliminó el array `services`; la clave `files` se movió del array `services` al array `documents`.
* `number` ahora es una cadena en lugar de un entero.
* `progress` ahora es un número de coma flotante en lugar de un entero.

<div id="invoice-capturing-tasks">
  ## Tareas de captura de facturas
</div>

<div id="post-taskcaptureinvoices">
  ### POST /task/capture/invoices
</div>

```http theme={null}
POST https://api-{location-id}.flexicapture.com/v1/capture/invoices
POST https://api-{location-id}.flexicapture.com/v2/task/capture/invoices
```

Cambios en la solicitud:

* El cuerpo de la solicitud ya no debe contener las claves `business_unit`, `email` y `label`.
* Las claves `region`, `export_format` y `verification_type` se han movido al diccionario `properties`.

Cambios en la respuesta:

* Claves añadidas: `batch_id`, `is_realtime_enabled`, `processing_priority`, `is_demo`, `account`, `application`, `is_extra_error`, `documents > data`, `documents > is_moved`, `documents > traininglayout_fileid`.
* Claves eliminadas: `label`, `lead_time`, `started`, `delivered`, `deleted`, `wait_for_action`, `is_test`, `region`, `export_format`, `verification_type`, `business_unit`, `properties > export_format`, `properties > verification_type`.
* Se ha eliminado el array `services`; la clave `files` se ha movido del array `services` al array `documents`.
* `number` ahora es una cadena en lugar de un entero.
* `progress` ahora es un número de coma flotante en lugar de un entero.

### GET /task/{id}

```http theme={null}
GET https://api-{location-id}.flexicapture.com/v1/task/{id}
GET https://api-{location-id}.flexicapture.com/v2/task/{id}
```

La respuesta ahora está organizada de la misma manera que para el método de creación de tareas.

* Se añadieron claves, similares a las del método de creación de tareas: `batch_id`, `is_realtime_enabled`, `processing_priority`, `is_demo`, `account`, `application`, `documents_count`, `pages_count`, `is_extra_error`, `documents > data`, `documents > is_moved`, `documents > traininglayout_fileid`.
* Se añadieron más claves relacionadas con los datos extraídos — `documents > data > { region, export_format, verification_type, vendor_name, invoice_date, total, currency }` — y con la facturación de tareas: `billed`, `is_billed`.
* Se eliminaron las claves: `label`, `lead_time`, `deleted`, `wait_for_action`, `is_test`, `region`, `export_format`, `verification_type`, `business_unit`.
* Se eliminó el array `services`; la clave `files` se movió del array `services` al array `documents`.
* `number` ahora es una cadena en lugar de un entero.
* `progress` ahora es un número de coma flotante en lugar de un entero.

### DELETE /task/{id}

```http theme={null}
DELETE https://api-{location-id}.flexicapture.com/v1/task/{id}
DELETE https://api-{location-id}.flexicapture.com/v2/task/{id}
```

<div id="working-with-datasets">
  ## Trabajar con conjuntos de datos
</div>

<div id="post-datasetbusinessunits">
  ### POST /dataset/businessunits
</div>

```http theme={null}
POST https://api-{location-id}.flexicapture.com/v1/dataset/businessunits
POST https://api-{location-id}.flexicapture.com/v2/dataset/businessunits
```

* Tanto en la solicitud como en la respuesta, las siguientes claves ahora contienen array con variantes: `name`, `street`, `city`, `state`, `zip`, `vat`.

<div id="put-datasetbusinessunits">
  ### PUT /dataset/businessunits
</div>

```http theme={null}
PUT https://api-{location-id}.flexicapture.com/v1/dataset/businessunits
PUT https://api-{location-id}.flexicapture.com/v2/dataset/businessunits
```

* Tanto en la solicitud como en la respuesta, las siguientes claves ahora contienen array con variantes: `name`, `street`, `city`, `state`, `zip`, `vat`.

### GET /dataset/businessunits/{region}

```http theme={null}
GET https://api-{location-id}.flexicapture.com/v1/dataset/businessunits/{region}
GET https://api-{location-id}.flexicapture.com/v2/dataset/businessunits/{region}
```

* Ahora se pueden usar parámetros de consulta opcionales para obtener los datos de una unidad de negocio: `externalId`, `skip`, `take`.
* Tanto en la solicitud como en la respuesta, las siguientes claves ahora contienen arrays con variantes: `name`, `street`, `city`, `state`, `zip`, `vat`.

### DELETE /dataset/businessunits/{region}

```http theme={null}
DELETE https://api-{location-id}.flexicapture.com/v1/dataset/businessunits/{region}
DELETE https://api-{location-id}.flexicapture.com/v2/dataset/businessunits/{region}
```

### DELETE /dataset/businessunit/{region}/{externalId}

```http theme={null}
DELETE https://api-{location-id}.flexicapture.com/v1/dataset/businessunit/{region}/{externalId}
DELETE https://api-{location-id}.flexicapture.com/v2/dataset/businessunit/{region}/{externalId}
```

<div id="post-datasetvendors">
  ### POST /dataset/vendors
</div>

```http theme={null}
POST https://api-{location-id}.flexicapture.com/v1/dataset/vendors
POST https://api-{location-id}.flexicapture.com/v2/dataset/vendors
```

* Tanto en la solicitud como en la respuesta, las siguientes claves contienen ahora arrays con variantes: `name`, `street`, `city`, `state`, `zip`, `vat`, `national_vat`, `iban`, `bank_account`, `bank_code`, `gl_code`.

<div id="put-datasetvendors">
  ### PUT /dataset/vendors
</div>

```http theme={null}
PUT https://api-{location-id}.flexicapture.com/v1/dataset/vendors
PUT https://api-{location-id}.flexicapture.com/v2/dataset/vendors
```

* Tanto en la solicitud como en la respuesta, las siguientes claves ahora contienen arrays con variantes: `name`, `street`, `city`, `state`, `zip`, `vat`, `national_vat`, `iban`, `bank_account`, `bank_code`, `gl_code`.

### GET /dataset/vendors/{region}

```http theme={null}
GET https://api-{location-id}.flexicapture.com/v1/dataset/vendors/{region}
GET https://api-{location-id}.flexicapture.com/v2/dataset/vendors/{region}
```

* Ahora se pueden usar parámetros de consulta opcionales para obtener los datos de uno de los proveedores: `externalId`, `skip`, `take`.
* Tanto en la solicitud como en la respuesta, las siguientes claves contienen ahora arrays con variantes: `name`, `street`, `city`, `state`, `zip`, `vat`, `national_vat`, `iban`, `bank_account`, `bank_code`, `gl_code`.

### DELETE /dataset/vendors/{region}

```http theme={null}
DELETE https://api-{location-id}.flexicapture.com/v1/dataset/vendors/{region}
DELETE https://api-{location-id}.flexicapture.com/v2/dataset/vendors/{region}
```

### DELETE /dataset/vendors/{region}/{externalId}

```http theme={null}
DELETE https://api-{location-id}.flexicapture.com/v1/dataset/vendors/{region}/{externalId}
DELETE https://api-{location-id}.flexicapture.com/v2/dataset/vendors/{region}/{externalId}
```

<div id="training-the-data-capture-models">
  ## Entrenamiento de los modelos de captura de datos
</div>

<div id="post-training">
  ### POST /training
</div>

```http theme={null}
POST https://api-{location-id}.flexicapture.com/v1/data/train
POST https://api-{location-id}.flexicapture.com/v2/training
```

<div id="put-training">
  ### PUT /training
</div>

```http theme={null}
PUT https://api-{location-id}.flexicapture.com/v1/data/train
PUT https://api-{location-id}.flexicapture.com/v2/training
```

### GET /training/layout/{taskId}/{fileId}

```http theme={null}
GET https://api-{location-id}.flexicapture.com/v1/data/{taskId}/{fileId}
GET https://api-{location-id}.flexicapture.com/v2/training/layout/{taskId}/{fileId}
```

### POST /training/station/{taskId}

```http theme={null}
POST https://api-{location-id}.flexicapture.com/v1/data/train/station/{taskId}
POST https://api-{location-id}.flexicapture.com/v2/training/station/{taskId}
```

### PUT /training/station/{taskId}

```http theme={null}
PUT https://api-{location-id}.flexicapture.com/v1/data/train/station/{taskId}
PUT https://api-{location-id}.flexicapture.com/v2/training/station/{taskId}
```

### GET /training/batch{region}

```http theme={null}
GET https://api-{location-id}.flexicapture.com/v1/data/batch/{region}
GET https://api-{location-id}.flexicapture.com/v2/training/batch{region}
```
