Packages
Data
GET
/
packages
/
{packageId}
/
data
Data
curl --request GET \
--url https://sandbox.syngrafii.com/api/v1/packages/{packageId}/data \
--header 'api_key: <api-key>'import requests
url = "https://sandbox.syngrafii.com/api/v1/packages/{packageId}/data"
headers = {"api_key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {api_key: '<api-key>'}};
fetch('https://sandbox.syngrafii.com/api/v1/packages/{packageId}/data', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.syngrafii.com/api/v1/packages/{packageId}/data",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"api_key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox.syngrafii.com/api/v1/packages/{packageId}/data"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("api_key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox.syngrafii.com/api/v1/packages/{packageId}/data")
.header("api_key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.syngrafii.com/api/v1/packages/{packageId}/data")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api_key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"packageId": "<string>",
"name": "<string>",
"type": "<string>",
"state": "<string>",
"externalData": {},
"documents": [
{
"documentId": "<string>",
"packageId": "<string>",
"name": "<string>",
"fileName": "<string>",
"state": "<string>",
"data": [
{
"id": "<string>",
"dataId": "<string>",
"signerId": "<string>",
"source": "<string>",
"type": "<string>",
"value": "<string>",
"pageNumber": 123
}
]
}
]
}After the signers have signed their documents and the package has been finalized you can retrieve the values of all fields in the package by calling the
/packages/{packageId}/data endpoint.
Request
Request
GET /packages/{packageId}/data
Parameters
string
required
The unique identifier of the package you want to retrieve field data for.
Response
string
Unique identifier for the package.
string
Display name of the package.
string
Package type.
Show values
Show values
| Value | Description |
|---|---|
| concurrent | Concurrent: Allows multiple signers to sign the document simultaneously. |
| Sequential | Sequential: Requires signers to sign the document in a specific order. |
| Counterpart | Group Send: Enables group signing, where all signers receive the document at the same time. |
| video_closing_room | Video Signing Room: A virtual room for signing documents via video conference. |
| Live Session | In Person: An in-person signing session with all parties present. |
Even though the signing workflow names have evolved, the constants used to identify them have remained the same.
The package type constants are case-sensitive. Ensure that you use the exact casing as shown in the table above when specifying package types in your API requests.
string
Current workflow state of the package.
Show values
Show values
New package states may be added in future releases. It is recommended that you always validate your integration against the sandbox before new releases are deployed into production.
Release 4.0 introduces two new package states,
executed and expired. In 3.6 both executed and expired packages were in an open state.| Value | Version | Description |
|---|---|---|
| draft | 1.0 | Package will be added in a draft state. Notifications will not be sent to the signer(s). You must call the send API, or the package owner must manually send the package from within iinked Sign. |
| open | 1.0 | The package will be ready for signing, and notifications will be sent to the signer(s) if enabled. |
| executed | 4.0 | The package has been fully executed by all signers. |
| expired | 4.0 | The package was not signed by the sign by date and has now expired. VSR packages will expire 7 days after their scheduled meeting date. |
| rescinded | 3.5 | The package was rescinded and is no longer available for signing. |
| select | 3.6 | Use the select state only when the package will be opened in the embedded package editor and you want the workflow to prompt the user to choose a package type. Packages in the select state will be automatically deleted if not converted to draft or open within 24 hours. |
| add | 2.9 | Use the add state only when the package will be opened in the embedded package editor and you want the workflow to function as if you’re creating a new package, rather than editing an existing one. Packages in the add state will be automatically deleted if not converted to draft or open within 24 hours. |
Map<string, object>
Arbitrary external data attached to the package.
object[]
List of documents along with their captured field values.
Show properties
Show properties
string
Unique identifier for the document.
string
Identifier of the package this document belongs to.
string
Document display name.
string
Original filename uploaded for the document.
string
Current state of the document.
Show values
Show values
Most document states are used internally. All documents included in a returned package will always be in the open state.
| Values | Description |
|---|---|
| open | The document is open and can be interacted with. |
| failed | The document failed to process and cannot be signed. |
object[]
Field values captured for the document.
Show properties
Show properties
string
Unique identifier for the field instance (for example: signer_1-text_1).
string
Data identifier from the template or field definition. (optional)
string
Signer identifier associated with this field value. (optional)
string
Origin of the value (for example: template, user).
string
Field type (for example: text, multiline, checkbox).
string
Captured value for the field.
number
Page number within the document where the field appears.
⌘I
Data
curl --request GET \
--url https://sandbox.syngrafii.com/api/v1/packages/{packageId}/data \
--header 'api_key: <api-key>'import requests
url = "https://sandbox.syngrafii.com/api/v1/packages/{packageId}/data"
headers = {"api_key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {api_key: '<api-key>'}};
fetch('https://sandbox.syngrafii.com/api/v1/packages/{packageId}/data', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.syngrafii.com/api/v1/packages/{packageId}/data",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"api_key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox.syngrafii.com/api/v1/packages/{packageId}/data"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("api_key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox.syngrafii.com/api/v1/packages/{packageId}/data")
.header("api_key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.syngrafii.com/api/v1/packages/{packageId}/data")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api_key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"packageId": "<string>",
"name": "<string>",
"type": "<string>",
"state": "<string>",
"externalData": {},
"documents": [
{
"documentId": "<string>",
"packageId": "<string>",
"name": "<string>",
"fileName": "<string>",
"state": "<string>",
"data": [
{
"id": "<string>",
"dataId": "<string>",
"signerId": "<string>",
"source": "<string>",
"type": "<string>",
"value": "<string>",
"pageNumber": 123
}
]
}
]
}