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

# Upload Documents from a Mobile Device with Vantage API

> Use the ABBYY Vantage Mobile Input API to generate a mobile upload link, capture documents on a phone, and submit them directly to Vantage for processing.

You can use the Vantage Mobile Input feature, which allows capturing, processing, and uploading documents directly from the mobile device to ABBYY Vantage.

Vantage Mobile Input starts with obtaining a mobile upload link via the Vantage API. The link will contain the parameters defining the number and types of documents to be captured during the mobile input session, ABBYY Vantage skills to process uploaded documents and more. For more information about using the Vantage API, see the Swagger documentation for your region: [US](https://vantage-us.abbyy.com/api/index.html?urls.primaryName=publicapi%2Fv1), [EU](https://vantage-eu.abbyy.com/api/index.html?urls.primaryName=publicapi%2Fv1), or [AU](https://vantage-au.abbyy.com/api/index.html?urls.primaryName=publicapi%2Fv1).

Mobile upload link can be used to initiate a mobile input session:

* In micro applications for iOS and Android or web browser.
* In the native iOS and Android applications.

To add the Vantage Mobile Input feature by getting the mobile upload link for the transaction, complete the following steps:

1. Authenticate in ABBYY Vantage (see [Authentication](/vantage/developer/authentication/authentication) for detailed instructions).

<Info>
  Each HTTP request to ABBYY Vantage should have a header containing an access token which the service will use to identify user in the system.
</Info>

2. View the list of available skills and find the ID of the skill you need to process documents.

To do so, send a `GET` request to the `skills` resource:

<CodeGroup>
  ```text US theme={null}
  GET https://vantage-us.abbyy.com/api/publicapi/v1/skills
  ```

  ```text EU theme={null}
  GET https://vantage-eu.abbyy.com/api/publicapi/v1/skills
  ```

  ```text AU theme={null}
  GET https://vantage-au.abbyy.com/api/publicapi/v1/skills
  ```
</CodeGroup>

Run the following command:

**For Windows:**

<CodeGroup>
  ```bash US theme={null}
  curl -X GET "https://vantage-us.abbyy.com/api/publicapi/v1/skills" \
  -H "Authorization: Bearer token"
  ```

  ```bash EU theme={null}
  curl -X GET "https://vantage-eu.abbyy.com/api/publicapi/v1/skills" \
  -H "Authorization: Bearer token"
  ```

  ```bash AU theme={null}
  curl -X GET "https://vantage-au.abbyy.com/api/publicapi/v1/skills" \
  -H "Authorization: Bearer token"
  ```
</CodeGroup>

**For Linux:**

<CodeGroup>
  ```bash US theme={null}
  curl -X GET 'https://vantage-us.abbyy.com/api/publicapi/v1/skills' \
  -H 'Authorization: Bearer token'
  ```

  ```bash EU theme={null}
  curl -X GET 'https://vantage-eu.abbyy.com/api/publicapi/v1/skills' \
  -H 'Authorization: Bearer token'
  ```

  ```bash AU theme={null}
  curl -X GET 'https://vantage-au.abbyy.com/api/publicapi/v1/skills' \
  -H 'Authorization: Bearer token'
  ```
</CodeGroup>

The response will contain a JSON file with the list of available skills. Find the skill identifier and use it as the value for the `skillId` parameter to create a transaction.

**Response:**

```json theme={null}
[
   {
      "id": "c4b26798-07cb-11eb-adc1-0242ac120002",
      "name": "NewClassifier",
      "type": "Classification"
   },
   {
      "id": "c4b26798-07cb-11eb-adc1-0242ac120002",
      "name": "Invoice",
      "type": "Document"
   }
]
```

3. Create an empty transaction by sending a `POST` request to the `transactions` resource, specifying the `skillId` parameter in the body of the request. To obtain the mobile upload link for that transaction, add the `generateMobileInputLink` parameter with the `true` value in the body of the request:

<CodeGroup>
  ```text US theme={null}
  POST https://vantage-us.abbyy.com/api/publicapi/v1/transactions
  ```

  ```text EU theme={null}
  POST https://vantage-eu.abbyy.com/api/publicapi/v1/transactions
  ```

  ```text AU theme={null}
  POST https://vantage-au.abbyy.com/api/publicapi/v1/transactions
  ```
</CodeGroup>

Run the following command:

**For Windows:**

<CodeGroup>
  ```bash US theme={null}
  curl -X POST "https://vantage-us.abbyy.com/api/publicapi/v1/transactions" \
  -H "Authorization: Bearer token" \
  -H "Content-Type: application/json" \
  -d "{\"skillId\":\"123\", \"generateMobileInputLink\": true}"
  ```

  ```bash EU theme={null}
  curl -X POST "https://vantage-eu.abbyy.com/api/publicapi/v1/transactions" \
  -H "Authorization: Bearer token" \
  -H "Content-Type: application/json" \
  -d "{\"skillId\":\"123\", \"generateMobileInputLink\": true}"
  ```

  ```bash AU theme={null}
  curl -X POST "https://vantage-au.abbyy.com/api/publicapi/v1/transactions" \
  -H "Authorization: Bearer token" \
  -H "Content-Type: application/json" \
  -d "{\"skillId\":\"123\", \"generateMobileInputLink\": true}"
  ```
</CodeGroup>

**For Linux:**

<CodeGroup>
  ```bash US theme={null}
  curl -X POST 'https://vantage-us.abbyy.com/api/publicapi/v1/transactions' \
  -H 'Authorization: Bearer token' \
  -H 'Content-Type: application/json' \
  -d '{\"skillId\":\"123\", \"generateMobileInputLink\": true}'
  ```

  ```bash EU theme={null}
  curl -X POST 'https://vantage-eu.abbyy.com/api/publicapi/v1/transactions' \
  -H 'Authorization: Bearer token' \
  -H 'Content-Type: application/json' \
  -d '{\"skillId\":\"123\", \"generateMobileInputLink\": true}'
  ```

  ```bash AU theme={null}
  curl -X POST 'https://vantage-au.abbyy.com/api/publicapi/v1/transactions' \
  -H 'Authorization: Bearer token' \
  -H 'Content-Type: application/json' \
  -d '{\"skillId\":\"123\", \"generateMobileInputLink\": true}'
  ```
</CodeGroup>

After the transaction has been successfully created, you will receive a response with the transaction identifier and the mobile upload link:

**Response:**

<CodeGroup>
  ```json US theme={null}
  {
     "transactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
     "mobileInputLink": "https://vantage-us.abbyy.com/mobile?baseUrl=<base URL>&transactionId=<transaction-id>&token=<token>&v=<2.4>" 
  }
  ```

  ```json EU theme={null}
  {
     "transactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
     "mobileInputLink": "https://vantage-eu.abbyy.com/mobile?baseUrl=<base URL>&transactionId=<transaction-id>&token=<token>&v=<2.4>" 
  }
  ```

  ```json AU theme={null}
  {
     "transactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
     "mobileInputLink": "https://vantage-au.abbyy.com/mobile?baseUrl=<base URL>&transactionId=<transaction-id>&token=<token>&v=<2.4>" 
  }
  ```
</CodeGroup>

The link will be valid for 30 minutes, after which a new link should be obtained.

<Warning>
  If you use QR codes or buttons for uploading documents on your website, we recommend that these QR codes and buttons create a new transaction and/or refresh the token every 30 minutes. Otherwise, users will not be able to upload documents after the initial token expires.
</Warning>

Using the obtained link, you can start Vantage Mobile Input with the Vantage API, [configure with additional parameters](/vantage/developer/mobile-upload/configuring-input), [track the processing, and download the result](/vantage/developer/mobile-upload/tracking-processing). Instructions on how to take photos of documents and upload documents from a mobile device with the micro application for iOS and Android are available in the Uploading Documents from a Mobile Device section of the Quick Start Guide.
