Save a package document's fields
curl --request PUT \
--url https://my.flowsign.app/api/v1/packages/{packageId}/fields \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"documentId": "cmg1p4k2a0007v9x0d8n3f5t2",
"ops": [
{
"type": "add",
"field": {
"id": "cmg1p4k2a000bv9x0f2r6s8u4",
"pageNumber": 1,
"fieldType": "signature",
"position": {
"x": 0.12,
"y": 0.78
},
"size": {
"width": 0.28,
"height": 0.05
},
"isRequired": true,
"placeholder": "Sign here",
"dropdownOptions": [
"Full time",
"Part time",
"Casual"
],
"radioGroup": "employment-type",
"recipientId": "cmg1p4k2a0005v9x0r1c9t3m7"
}
}
]
}
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
documentId: 'cmg1p4k2a0007v9x0d8n3f5t2',
ops: [
{
type: 'add',
field: {
id: 'cmg1p4k2a000bv9x0f2r6s8u4',
pageNumber: 1,
fieldType: 'signature',
position: {x: 0.12, y: 0.78},
size: {width: 0.28, height: 0.05},
isRequired: true,
placeholder: 'Sign here',
dropdownOptions: ['Full time', 'Part time', 'Casual'],
radioGroup: 'employment-type',
recipientId: 'cmg1p4k2a0005v9x0r1c9t3m7'
}
}
]
})
};
fetch('https://my.flowsign.app/api/v1/packages/{packageId}/fields', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
documentId: 'cmg1p4k2a0007v9x0d8n3f5t2',
ops: [
{
type: 'add',
field: {
id: 'cmg1p4k2a000bv9x0f2r6s8u4',
pageNumber: 1,
fieldType: 'signature',
position: {x: 0.12, y: 0.78},
size: {width: 0.28, height: 0.05},
isRequired: true,
placeholder: 'Sign here',
dropdownOptions: ['Full time', 'Part time', 'Casual'],
radioGroup: 'employment-type',
recipientId: 'cmg1p4k2a0005v9x0r1c9t3m7'
}
}
]
})
};
fetch('https://my.flowsign.app/api/v1/packages/{packageId}/fields', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://my.flowsign.app/api/v1/packages/{packageId}/fields';
const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
documentId: 'cmg1p4k2a0007v9x0d8n3f5t2',
ops: [
{
type: 'add',
field: {
id: 'cmg1p4k2a000bv9x0f2r6s8u4',
pageNumber: 1,
fieldType: 'signature',
position: {x: 0.12, y: 0.78},
size: {width: 0.28, height: 0.05},
isRequired: true,
placeholder: 'Sign here',
dropdownOptions: ['Full time', 'Part time', 'Casual'],
radioGroup: 'employment-type',
recipientId: 'cmg1p4k2a0005v9x0r1c9t3m7'
}
}
]
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://my.flowsign.app/api/v1/packages/{packageId}/fields"
payload = {
"documentId": "cmg1p4k2a0007v9x0d8n3f5t2",
"ops": [
{
"type": "add",
"field": {
"id": "cmg1p4k2a000bv9x0f2r6s8u4",
"pageNumber": 1,
"fieldType": "signature",
"position": {
"x": 0.12,
"y": 0.78
},
"size": {
"width": 0.28,
"height": 0.05
},
"isRequired": True,
"placeholder": "Sign here",
"dropdownOptions": ["Full time", "Part time", "Casual"],
"radioGroup": "employment-type",
"recipientId": "cmg1p4k2a0005v9x0r1c9t3m7"
}
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://my.flowsign.app/api/v1/packages/{packageId}/fields");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"documentId\": \"cmg1p4k2a0007v9x0d8n3f5t2\",\n \"ops\": [\n {\n \"type\": \"add\",\n \"field\": {\n \"id\": \"cmg1p4k2a000bv9x0f2r6s8u4\",\n \"pageNumber\": 1,\n \"fieldType\": \"signature\",\n \"position\": {\n \"x\": 0.12,\n \"y\": 0.78\n },\n \"size\": {\n \"width\": 0.28,\n \"height\": 0.05\n },\n \"isRequired\": true,\n \"placeholder\": \"Sign here\",\n \"dropdownOptions\": [\n \"Full time\",\n \"Part time\",\n \"Casual\"\n ],\n \"radioGroup\": \"employment-type\",\n \"recipientId\": \"cmg1p4k2a0005v9x0r1c9t3m7\"\n }\n }\n ]\n}", false);
var response = await client.PutAsync(request);
Console.WriteLine("{0}", response.Content);
using RestSharp;
var options = new RestClientOptions("https://my.flowsign.app/api/v1/packages/{packageId}/fields");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"documentId\": \"cmg1p4k2a0007v9x0d8n3f5t2\",\n \"ops\": [\n {\n \"type\": \"add\",\n \"field\": {\n \"id\": \"cmg1p4k2a000bv9x0f2r6s8u4\",\n \"pageNumber\": 1,\n \"fieldType\": \"signature\",\n \"position\": {\n \"x\": 0.12,\n \"y\": 0.78\n },\n \"size\": {\n \"width\": 0.28,\n \"height\": 0.05\n },\n \"isRequired\": true,\n \"placeholder\": \"Sign here\",\n \"dropdownOptions\": [\n \"Full time\",\n \"Part time\",\n \"Casual\"\n ],\n \"radioGroup\": \"employment-type\",\n \"recipientId\": \"cmg1p4k2a0005v9x0r1c9t3m7\"\n }\n }\n ]\n}", false);
var response = await client.PutAsync(request);
Console.WriteLine("{0}", response.Content);
$headers=@{}
$headers.Add("Authorization", "Bearer <token>")
$headers.Add("Content-Type", "application/json")
$response = Invoke-WebRequest -Uri 'https://my.flowsign.app/api/v1/packages/{packageId}/fields' -Method PUT -Headers $headers -ContentType 'application/json' -Body '{
"documentId": "cmg1p4k2a0007v9x0d8n3f5t2",
"ops": [
{
"type": "add",
"field": {
"id": "cmg1p4k2a000bv9x0f2r6s8u4",
"pageNumber": 1,
"fieldType": "signature",
"position": {
"x": 0.12,
"y": 0.78
},
"size": {
"width": 0.28,
"height": 0.05
},
"isRequired": true,
"placeholder": "Sign here",
"dropdownOptions": [
"Full time",
"Part time",
"Casual"
],
"radioGroup": "employment-type",
"recipientId": "cmg1p4k2a0005v9x0r1c9t3m7"
}
}
]
}'{
"data": {
"packageId": "cmg1p4k2a0003v9x0hq7d2e1s"
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}Packages
Save a package document's fields
Applies ops to the fields of one document on a DRAFT package, in order and all or nothing. Requires canSendPackages.
PUT
https://my.flowsign.app
/
api
/
v1
/
packages
/
{packageId}
/
fields
Save a package document's fields
curl --request PUT \
--url https://my.flowsign.app/api/v1/packages/{packageId}/fields \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"documentId": "cmg1p4k2a0007v9x0d8n3f5t2",
"ops": [
{
"type": "add",
"field": {
"id": "cmg1p4k2a000bv9x0f2r6s8u4",
"pageNumber": 1,
"fieldType": "signature",
"position": {
"x": 0.12,
"y": 0.78
},
"size": {
"width": 0.28,
"height": 0.05
},
"isRequired": true,
"placeholder": "Sign here",
"dropdownOptions": [
"Full time",
"Part time",
"Casual"
],
"radioGroup": "employment-type",
"recipientId": "cmg1p4k2a0005v9x0r1c9t3m7"
}
}
]
}
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
documentId: 'cmg1p4k2a0007v9x0d8n3f5t2',
ops: [
{
type: 'add',
field: {
id: 'cmg1p4k2a000bv9x0f2r6s8u4',
pageNumber: 1,
fieldType: 'signature',
position: {x: 0.12, y: 0.78},
size: {width: 0.28, height: 0.05},
isRequired: true,
placeholder: 'Sign here',
dropdownOptions: ['Full time', 'Part time', 'Casual'],
radioGroup: 'employment-type',
recipientId: 'cmg1p4k2a0005v9x0r1c9t3m7'
}
}
]
})
};
fetch('https://my.flowsign.app/api/v1/packages/{packageId}/fields', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
documentId: 'cmg1p4k2a0007v9x0d8n3f5t2',
ops: [
{
type: 'add',
field: {
id: 'cmg1p4k2a000bv9x0f2r6s8u4',
pageNumber: 1,
fieldType: 'signature',
position: {x: 0.12, y: 0.78},
size: {width: 0.28, height: 0.05},
isRequired: true,
placeholder: 'Sign here',
dropdownOptions: ['Full time', 'Part time', 'Casual'],
radioGroup: 'employment-type',
recipientId: 'cmg1p4k2a0005v9x0r1c9t3m7'
}
}
]
})
};
fetch('https://my.flowsign.app/api/v1/packages/{packageId}/fields', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://my.flowsign.app/api/v1/packages/{packageId}/fields';
const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
documentId: 'cmg1p4k2a0007v9x0d8n3f5t2',
ops: [
{
type: 'add',
field: {
id: 'cmg1p4k2a000bv9x0f2r6s8u4',
pageNumber: 1,
fieldType: 'signature',
position: {x: 0.12, y: 0.78},
size: {width: 0.28, height: 0.05},
isRequired: true,
placeholder: 'Sign here',
dropdownOptions: ['Full time', 'Part time', 'Casual'],
radioGroup: 'employment-type',
recipientId: 'cmg1p4k2a0005v9x0r1c9t3m7'
}
}
]
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://my.flowsign.app/api/v1/packages/{packageId}/fields"
payload = {
"documentId": "cmg1p4k2a0007v9x0d8n3f5t2",
"ops": [
{
"type": "add",
"field": {
"id": "cmg1p4k2a000bv9x0f2r6s8u4",
"pageNumber": 1,
"fieldType": "signature",
"position": {
"x": 0.12,
"y": 0.78
},
"size": {
"width": 0.28,
"height": 0.05
},
"isRequired": True,
"placeholder": "Sign here",
"dropdownOptions": ["Full time", "Part time", "Casual"],
"radioGroup": "employment-type",
"recipientId": "cmg1p4k2a0005v9x0r1c9t3m7"
}
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://my.flowsign.app/api/v1/packages/{packageId}/fields");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"documentId\": \"cmg1p4k2a0007v9x0d8n3f5t2\",\n \"ops\": [\n {\n \"type\": \"add\",\n \"field\": {\n \"id\": \"cmg1p4k2a000bv9x0f2r6s8u4\",\n \"pageNumber\": 1,\n \"fieldType\": \"signature\",\n \"position\": {\n \"x\": 0.12,\n \"y\": 0.78\n },\n \"size\": {\n \"width\": 0.28,\n \"height\": 0.05\n },\n \"isRequired\": true,\n \"placeholder\": \"Sign here\",\n \"dropdownOptions\": [\n \"Full time\",\n \"Part time\",\n \"Casual\"\n ],\n \"radioGroup\": \"employment-type\",\n \"recipientId\": \"cmg1p4k2a0005v9x0r1c9t3m7\"\n }\n }\n ]\n}", false);
var response = await client.PutAsync(request);
Console.WriteLine("{0}", response.Content);
using RestSharp;
var options = new RestClientOptions("https://my.flowsign.app/api/v1/packages/{packageId}/fields");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"documentId\": \"cmg1p4k2a0007v9x0d8n3f5t2\",\n \"ops\": [\n {\n \"type\": \"add\",\n \"field\": {\n \"id\": \"cmg1p4k2a000bv9x0f2r6s8u4\",\n \"pageNumber\": 1,\n \"fieldType\": \"signature\",\n \"position\": {\n \"x\": 0.12,\n \"y\": 0.78\n },\n \"size\": {\n \"width\": 0.28,\n \"height\": 0.05\n },\n \"isRequired\": true,\n \"placeholder\": \"Sign here\",\n \"dropdownOptions\": [\n \"Full time\",\n \"Part time\",\n \"Casual\"\n ],\n \"radioGroup\": \"employment-type\",\n \"recipientId\": \"cmg1p4k2a0005v9x0r1c9t3m7\"\n }\n }\n ]\n}", false);
var response = await client.PutAsync(request);
Console.WriteLine("{0}", response.Content);
$headers=@{}
$headers.Add("Authorization", "Bearer <token>")
$headers.Add("Content-Type", "application/json")
$response = Invoke-WebRequest -Uri 'https://my.flowsign.app/api/v1/packages/{packageId}/fields' -Method PUT -Headers $headers -ContentType 'application/json' -Body '{
"documentId": "cmg1p4k2a0007v9x0d8n3f5t2",
"ops": [
{
"type": "add",
"field": {
"id": "cmg1p4k2a000bv9x0f2r6s8u4",
"pageNumber": 1,
"fieldType": "signature",
"position": {
"x": 0.12,
"y": 0.78
},
"size": {
"width": 0.28,
"height": 0.05
},
"isRequired": true,
"placeholder": "Sign here",
"dropdownOptions": [
"Full time",
"Part time",
"Casual"
],
"radioGroup": "employment-type",
"recipientId": "cmg1p4k2a0005v9x0r1c9t3m7"
}
}
]
}'{
"data": {
"packageId": "cmg1p4k2a0003v9x0hq7d2e1s"
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}{
"error": "Missing permission: canSendPackages",
"details": {
"recipients.0.email": [
"Invalid email"
]
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
The workspace the key was issued for, as returned by GET /api/v1/workspaces. Optional: omitting it acts in the key's workspace, and any other id is rejected with 401.
Path Parameters
Body
application/json
The document whose fields to change. It must be attached to the package or template in the path; any other document is a 404.
Minimum string length:
1Example:
"cmg1p4k2a0007v9x0d8n3f5t2"
The changes to apply, in order, as one transaction: if any operation fails, none is kept. An empty list is accepted and changes nothing.
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Response
Success
Show child attributes
Show child attributes
Was this page helpful?

