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

# JSON Input

> Define document types, page counts, and names for Vantage Mobile Input using a JSON file passed through the md parameter as a direct link or encoded JSON.

JSON files contain data structures specifying the number, types, and names of the documents, as well as the number and names of the pages for each document. To configure mobile upload for a specific user's scenarios, use the JSON file in the mobile upload link.

The `md` parameter can accept a JSON file in two formats: direct encoded link or encoded JSON.

To use an encoded link:

1. Generate a direct access link to the JSON file.

<Info>
  The link should start with "http\://" or "https\://".
</Info>

2. Encode the obtained link to URL-encoded format.
3. Specify the encoded URL as the value for the `md` parameter in the mobile upload link.

To use an encoded JSON:

1. Encode the JSON file to URL-encoded format.
2. Specify the encoded JSON file as the value for the `md` parameter in the mobile upload link.

## JSON structure

**TransactionStructure** defines a set of documents expected to be captured by the user during a mobile upload session for further processing in a transaction. The transaction will not start until all documents are captured.

| Properties | Value            | Description                                                                                                                    |
| :--------- | :--------------- | :----------------------------------------------------------------------------------------------------------------------------- |
| `version`  | `2.4`            | The current ABBYY Vantage version. **Note:** The value should correspond to the `v` parameter value in the mobile upload link. |
| `elements` | ElementStructure | The structure of the collection of elements.                                                                                   |

**ElementStructure** defines a collection of one or multiple sets of documents expected to be captured by the user for further processing in a transaction.

| Properties  | Value             | Description                                                                                                                                                                  |
| :---------- | :---------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `type`      | `standalone`      | Defines a collection with one set of documents.                                                                                                                              |
| `type`      | `single_choice`   | Defines a collection with multiple sets of documents. **Note:** Requires at least two specified sets of documents.                                                           |
| `name`      |                   | The name of the set of documents that will be displayed on the **Capture Documents** screen in the micro application. **Note:** Available only for the `single_choice` type. |
| `document`  | DocumentStructure | The structure of one document in the set. **Note:** Available only for the `standalone` type.                                                                                |
| `documents` | DocumentStructure | The structure of all documents in the set. **Note:** Available only for the `single_choice` type.                                                                            |

**DocumentStructure** defines a collection of the properties for each document in the set.

| Properties       | Value          | Description                                                                                                                                                         |
| :--------------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `type`           | `idcard`       | Defines capturing both sides (front and back) of an ID card.                                                                                                        |
| `type`           | `passport`     | Defines capturing the first page of a passport.                                                                                                                     |
| `type`           | `document`     | Defines capturing any documents.                                                                                                                                    |
| `name`           |                | The name of the document that will be displayed on the **Capture Documents** screen in the micro application.                                                       |
| `count`          | `1,2,3...`     | The required number of documents to be captured in one transaction. The default value is "1". **Note:** The upload will not start until all documents are captured. |
| `count`          | `any`          | The number of documents to be captured in one transaction. **Note:** The upload will start with any number of captured documents.                                   |
| `galleryEnabled` | `false/true`   | Defines whether uploading images of document pages from the device Gallery is allowed for this document.                                                            |
| `pages`          | PagesStructure | The structure of the document pages.                                                                                                                                |

**PagesStructure** defines a collection of properties for the document pages expected to be captured by the user.

| Properties | Value                   | Description                                                                                                                                                                                                                                    |
| :--------- | :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`     | `Front side/Back side`  | The names of the pages of an ID card.                                                                                                                                                                                                          |
| `name`     | `First page with photo` | The name of the first page of a passport.                                                                                                                                                                                                      |
| `name`     | `Document page name`    | The names of the pages of any document.                                                                                                                                                                                                        |
| `count`    | `1,2,3...`              | The required number of pages to be captured for the document. The default value is "1". The upload will not start until all pages of the document are captured. **Note:** The required value for the front and back side of an ID card is "1". |
| `count`    | `any`                   | The number of pages to be captured for any document. The upload will start with any number of captured pages. **Note:** The required value for the first page of a passport is "1". The required value for other passport pages is "any".      |

## JSON sample

This JSON sample defines the document structure for a bank application. The following document pages are expected to be captured by the user during a mobile upload session for further processing in a transaction:

1. The first page of the passport.
2. All pages of the application.
3. Proof of residence, which includes pages of the rental agreement or pages of the utility bill.

<Accordion title="Show JSON sample">
  ```json theme={null}
  {
    "version": "2.4",
    "elements": [
      {
        "type": "standalone",
        "document": {
          "name": "Passport",
          "type": "passport",
          "count": "1",
          "galleryEnabled": false,
          "pages": [
            {
              "name": "First page with photo",
              "count": "1"
            }
          ]
        }
      },
      {
        "type": "standalone",
        "document": {
          "name": "Application",
          "type": "document",
          "count": "1",
          "galleryEnabled": true,
          "pages": [
            {
              "name": "Page",
              "count": "any"
            }
          ]
        }
      },
      {
        "type": "single_choice",
        "name": "Proof of residence",
        "documents": [
          {
            "name": "Rental agreement",
            "type": "document",
            "count": "1",
            "galleryEnabled": true,
            "pages": [
              {
                "name": "Page",
                "count": "any"
              }
            ]
          },
          {
            "name": "Utility bill",
            "type": "document",
            "count": "2",
            "galleryEnabled": true,
            "pages": [
              {
                "name": "Page",
                "count": "any"
              }
            ]
          }
        ]
      }
    ]
  }
  ```
</Accordion>
