Download a contract file
To keep all contract-related documents together, you can upload and download files to contracts using any Files endpoint. Thus, each contract can contain several files: the contract itself (always), the contract verification file (if all participants have already signed the contract, and if the contract was signed before January 15, 2024, 13.00 UTC), and other attachments (optional).
Note:
A verification file can only be downloaded in contracts that were signed prior to January 15, 2024, 13.00 UTC, and if all participants have signed the contract.
In this tutorial, you will learn how to list files available for the contract and download the contract file from Oneflow using the public API.
Step 1. Get the list of files available for the contract
To run the script described in this step, you’ll need the following data:
Headers | |
x-oneflow-api-token
|
You will only be able to run the script by using a valid API token. You can create an API token in the Oneflow web application. Find out more in the Authentication section. |
Path parameter | |
CONTRACT_ID |
The unique ID of the contract you want to get. You can find the contract ID using the contracts endpoint. |
Run the following code:
curl --request GET \
--url https://api.oneflow.com/v1/contracts/CONTRACT_ID/files/ \
--header 'Accept: application/json' \
--header 'x-oneflow-api-token: API_TOKEN'
import requests
headers = {
'Accept': 'application/json',
'x-oneflow-api-token': 'API_TOKEN'
}
response = requests.get('https://api.oneflow.com/v1/contracts/CONTRACT_ID/files/',
headers=headers)
print(response.json())
Expected response
This operation will display the list of all files available for the specified contract ID.
The response can contain several files with the following types:
- Contract - the contract file includes all attachment and signature files connected to the contract. This file is always available for download.
- Verification - if all participants have signed the contract, and if the contract was signed before January 15, 2024, 13.00 UTC, there will be a verification file that you can download as a separate file.
- Attachment - if there are attachments in the contract, you can download them as separate files.
- PDF - if the contract contains an expanded PDF file in the PDF section, you can download it as a separate file.
Note:
The file
type
will help you understand the file's nature and thus choose the correct ID to download the file (please check out the Contract file data model). For example, the actual contract PDF file type is acontract
, and itsid
is always1
. If all parties have signed the contract, and if the contract was signed before January 15, 2024, 13.00 UTC, there will also be a contract verification file with theverification
type; itsid
is always2
. The IDs of other types are generated automatically and are not constant. For more information, please see the Help Center article.
{
"_links": {
"next": {
"href": "https://api.oneflow.com/v1/contracts/CONTRACT_ID/files?offset=4&limit=2"
},
"previous": {
"href": "https://api.oneflow.com/v1/contracts/CONTRACT_ID/files?offset=0&limit=2"
},
"self": {
"href": "https://api.oneflow.com/v1/contracts/CONTRACT_ID/files?offset=2&limit=2"
}
},
"count": 5,
"data": [
{
"extension": "pdf",
"id": 1,
"name": "Contract",
"type": "contract"
},
{
"extension": "pdf",
"id": 2,
"name": "Verification",
"type": "verification"
},
{
"extension": "pdf",
"id": 140245,
"name": "Meetingnotes",
"type": "pdf"
},
{
"extension": "pdf",
"id": 140246,
"name": "Proposal",
"type": "pdf"
},
{
"extension": "pdf",
"id": 140247,
"name": "Terms and conditions",
"type": "attachment"
}
]
}
Response codes
Status | Meaning | Description |
---|---|---|
200 | OK | Returns the requested contract files. |
400 | Bad Request | Invalid format or content of the request. |
404 | Not Found | A required entity is missing. |
409 | Conflict | A conflict occurred with the current state of the target resource. |
Step 2. Download a contract file
Now that you have the list of all files available for the specified contract ID, you can run the script that downloads these files.
Note:
You can only download one contract file at a time. When a file is downloaded, the file name will be converted to US-ASCII. You can always get the original file name in the UTF-8 format from the response described in step 1 of this tutorial. Please, read more about the contract file
name
attribute in the Contract file data model.
To run the code described in this step, you’ll need the following data:
Headers | |
x-oneflow-api-token
|
You will only be able to run the script by using a valid API token. You can create an API token in the Oneflow web application. Find out more in the Authentication section. |
Path parameter | |
CONTRACT_ID
|
The unique ID of the contract you want to download. You can find the contract ID using the contracts endpoint. |
FILE_ID
|
The unique identifier of the file available for the contract. See the example of the contract id value in Step 1, Expected response in this tutorial.
|
Step 3. Run the code
Replace the values of the parameters in the following command with the actual data from your account and run it:
curl --request GET \
--url https://api.oneflow.com/v1/contracts/CONTRACT_ID/files/FILE_ID?download=true \
--header 'x-oneflow-api-token: API_TOKEN' \
import requests
url = "https://api.oneflow.com/v1/contracts/CONTRACT_ID/files/FILE_ID?download=true"
querystring = {"download":"true"}
headers = {'x-oneflow-api-token': 'API_TOKEN'}
response = requests.request("GET", url, headers=headers, params=querystring)
print(response.text)
Expected response
Note:
In the code example above, the query parameter
download=true
, which will redirect you to the file to download. However, the default query parameter isdownload=false
. In this case, only the metadata about the specified file will be displayed.
Response codes
Status | Meaning | Description |
---|---|---|
200 | OK | Returns metadata for a specific file inside a contract. |
302 | Redirect | Redirects you to the file to be downloaded. |
400 | Bad Request | Invalid format or content of the request. |
401 | Unauthorized | The API token or the user email is invalid. |
404 | Not Found | The referenced contract or the file is missing. |
Updated 10 months ago