Skip to main content
When you upgrade from version 1 to version 2 of the ABBYY FlexiCapture for Invoices Cloud REST API, you need to make some changes to your code. The essential changes are:
  • Applications — Version 2 introduces the concept of applications. One account can have multiple applications that operate independently. Each application works only with its own tasks, processing data, and training models, and cannot access this information belonging to other applications.
  • Multi-column fields — Fields can now have variants, allowing for spelling differences and mistakes, which makes it easier to match vendors and business units. The captured fields are represented by arrays with variants.
  • Version updated in URLs — The URLs were renamed according to the version: v1 in the URL changed to v2.
The version 1 API methods are listed below by category. Each entry shows the version 2 URL and the changes to its request and response.

Working with files

POST /file

  • Removed the email query parameter; the email address of the account is used instead.
  • Added to the response: application (application ID) and expiring (the file expiration date).
  • Removed from the response: the keys concerning file validation and deletion (validated, is_validated, deleted, is_deleted), the error message (error), and the number of pages (pages_count).

GET /file///info

  • For deleted files, you can no longer get metadata; a 404 response is now returned.
  • Added to the response: application (application ID) and expiring (the file expiration date).
  • Removed from the response: the keys concerning file validation and deletion (validated, is_validated, deleted, is_deleted), the error message (error), and the number of pages (pages_count).

GET /file//

DELETE /file//

Capturing documents

POST /task/capture/documents

Changes to the request:
  • The request body should no longer contain the email and label keys.
  • The region, export_format, and verification_type keys are moved to the properties dictionary.
Changes to the response:
  • Added keys: batch_id, is_realtime_enabled, processing_priority, is_demo, account, application, is_extra_error, documents > data, documents > is_moved, documents > traininglayout_fileid.
  • Removed keys: label, lead_time, started, delivered, deleted, wait_for_action, is_test, region, export_format, verification_type, business_unit, properties > export_format, properties > verification_type.
  • The services array was removed; the files key moved from the services array to the documents array.
  • number is now a string instead of an integer.
  • progress is now a floating-point number instead of an integer.

Invoice capturing tasks

POST /task/capture/invoices

Changes to the request:
  • The request body should no longer contain the business_unit, email, and label keys.
  • The region, export_format, and verification_type keys are moved to the properties dictionary.
Changes to the response:
  • Added keys: batch_id, is_realtime_enabled, processing_priority, is_demo, account, application, is_extra_error, documents > data, documents > is_moved, documents > traininglayout_fileid.
  • Removed keys: label, lead_time, started, delivered, deleted, wait_for_action, is_test, region, export_format, verification_type, business_unit, properties > export_format, properties > verification_type.
  • The services array was removed; the files key moved from the services array to the documents array.
  • number is now a string instead of an integer.
  • progress is now a floating-point number instead of an integer.

GET /task/

The response is now organized in the same way as for the task creation method.
  • Added keys, similar to the task creation method: 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.
  • Added more keys relating to the extracted data — documents > data > { region, export_format, verification_type, vendor_name, invoice_date, total, currency } — and to task billing: billed, is_billed.
  • Removed keys: label, lead_time, deleted, wait_for_action, is_test, region, export_format, verification_type, business_unit.
  • The services array was removed; the files key moved from the services array to the documents array.
  • number is now a string instead of an integer.
  • progress is now a floating-point number instead of an integer.

DELETE /task/

Working with datasets

POST /dataset/businessunits

  • In both the request and the response, the following keys now contain arrays with variants: name, street, city, state, zip, vat.

PUT /dataset/businessunits

  • In both the request and the response, the following keys now contain arrays with variants: name, street, city, state, zip, vat.

GET /dataset/businessunits/

  • Optional query parameters can now be used to get the data on one of the business units: externalId, skip, take.
  • In both the request and the response, the following keys now contain arrays with variants: name, street, city, state, zip, vat.

DELETE /dataset/businessunits/

DELETE /dataset/businessunit//

POST /dataset/vendors

  • In both the request and the response, the following keys now contain arrays with variants: name, street, city, state, zip, vat, national_vat, iban, bank_account, bank_code, gl_code.

PUT /dataset/vendors

  • In both the request and the response, the following keys now contain arrays with variants: name, street, city, state, zip, vat, national_vat, iban, bank_account, bank_code, gl_code.

GET /dataset/vendors/

  • Optional query parameters can now be used to get the data on one of the vendors: externalId, skip, take.
  • In both the request and the response, the following keys now contain arrays with variants: name, street, city, state, zip, vat, national_vat, iban, bank_account, bank_code, gl_code.

DELETE /dataset/vendors/

DELETE /dataset/vendors//

Training the data capture models

POST /training

PUT /training

GET /training/layout//

POST /training/station/

PUT /training/station/

GET /training/batch