Introduction
This documentation provides all the information you need to work with the signteq.io API.
The signteq.io API is organized around REST. Our API has predictable resource-oriented URLs, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.
Base URL
https://api.signteq.io
How we charge
The usage of the signteq API is not free and requires a paid API plan. The API will return HTTP 402 if such requests are made without a proper plan. We understand that you may want to test the API before paying for it.
Contact us to get a free API test token.
Rate limits
Rate limit information is returned in the HTTP headers of any API request:
By default, you can make up to 100 requests per minute via the API. With a free API test token you can make 10 requests per minute. Exceptions can be made for customers with higher volumes. Please contact us for more information.
If your application triggers this rate limit, you'll receive the following response:
Errors
signteq.io uses conventional HTTP response codes to indicate the success or failure of an API request. In general: Codes in the 2xx
range indicate success. Codes in the 4xx
range indicate an error that failed given the information provided (e.g. a required parameter was omitted, a parameter has a wrong type, etc.). Codes in the 5xx
range indicate an error with signteq.io's servers (these are rare).
Organization Selection
curl -X GET \
-G "https://api.signteq.io.test/v1/organizations?organization_id=a25da8ee-3773-4ce4-8dee-40e63ad6fb25" \
-H "Authorization: Bearer {YOUR_AUTH_KEY}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
Each API request made to the signteq API should carry the organization_id
GET parameter within the API request URL. You can access your organizations ID by logging in to one of your organizations and navigating to the Organizations settings section.
You can also list all available organizations by making a GET request to the Organization endpoint.
Pagination
Most top-level API resources have support for bulk fetches. For instance, you can list requests or
list recipients.
Paginated responses always contain meta
and links
keys with information about the paginator's state.
The data
array contains the actual response elements, paginated by any request parameters.
Webhooks
General
Once the recipients successfully completes a document, signteq will verify and process the signature and document(s) asynchronously, as the processing is happening at a later time and not directly in response to your codeβs execution. signteq will notify your system about changes in regards to the status of the signature process so your integration can take subsequent steps.
This is where a webhook comes in place. signteq can notify you once we have finished processing all the documents. You can set up webhooks in your developer dashboard's webhook section. There are also other events about which you will be informed via webhook. Read more about them in the "Event Types" section below.
1. Webhook Configuration
To properly receive incoming webhooks, your server should provide an endpoint supporting:
- TLS encryption version 1.2
- POST requests are either raw in text/plain if encrypted or application/json if no encryption is activated
You can use a service like e.g. https://webhook.site/ to test receiving webhooks from your developer dashboard. For local testing, you can use a CLI tool such as ngrok to forward the requests to your local development server.
When you receive an signteq event, your endpoint should return a HTTP 2xx status code indicating that the event has been successfully received. Webhooks are autmatically retried for up to 24 hours if no HTTP 200 status code is returned. The call will also be considered failed if your endpoint doesn't respond within 10 seconds.
When a webhook call fails, we'll retry the call 6 more times. By default, we wait 10 seconds between the first and second attempt, 100 seconds between the third and the fourth, 1000 between the fourth and the fifth and 10000 for the last attempt.
2. Event Types
Events posted to your callback url will be formatted as a JSON string contained in the json POST param.
Event Type | Description |
---|---|
request_viewed | The Request has been viewed by a recipient. |
document_viewed | A Document has been viewed by a recipient. |
document_signed | A recipient has completed / signed all required fields of a document. |
document_completed | All recipients have signed the document and it is ready to be downloaded. |
request_declined | The SignatureRequest was declined by a recipient. |
3. Security
Webhooks are a crucial node to ensure the functionality of your integration, as such, they can be the target of a malicious user aiming to disrupt the service or impersonate your users. In order to protect your application from these threats, a secret will be used to sign the request body.
We will add a header called Signature that will contain a signature of the event payload. You can use this signature to verify that the payload hasn't been manipulated. The signature is a HMAC using your Webhook Secret as a key and the SHA256 hash algorithm.
There will also be a header User-Agent
with the value signteq.io API
on each callback request to help you identify us.
This is how that signature is calculated (PHP example):
Authenticating requests
This API is authenticated by sending an Authorization
header with the value "Bearer {YOUR_API_TOKEN}"
.
All authenticated endpoints are marked with a requires authentication
badge in the documentation below.
You can retrieve your token by visiting your user settings and clicking Generate API token.
Documents
When you create a request, you need to upload documents to be signed. With the following /document endpoints you can access or download theese documents.
Get Document
requires authentication
Example request:
curl -X GET \
-G "https://api.signteq.io/v1/documents/f5cfac16-3275-4e77-b33c-72bccace0130" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.signteq.io/v1/documents/f5cfac16-3275-4e77-b33c-72bccace0130',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/documents/f5cfac16-3275-4e77-b33c-72bccace0130'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/documents/f5cfac16-3275-4e77-b33c-72bccace0130"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"id": null,
"name": "Harum rerum corporis alias quis id enim quo..pdf",
"size": 12655,
"type": "pdf",
"meta": null,
"versions": [],
"pages": []
}
Received response:
Request failed with error:
Download Document
requires authentication
Example request:
curl -X GET \
-G "https://api.signteq.io/v1/documents/f5cfac16-3275-4e77-b33c-72bccace0130/download?type=completed" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.signteq.io/v1/documents/f5cfac16-3275-4e77-b33c-72bccace0130/download',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'query' => [
'type'=> 'completed',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/documents/f5cfac16-3275-4e77-b33c-72bccace0130/download'
params = {
'type': 'completed',
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
const url = new URL(
"https://api.signteq.io/v1/documents/f5cfac16-3275-4e77-b33c-72bccace0130/download"
);
let params = {
"type": "completed",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
<Binary data> - The PDF document
Received response:
Request failed with error:
Endpoints
v1/ekyc/verify
requires authentication
Example request:
curl -X POST \
"https://api.signteq.io/v1/ekyc/verify" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.signteq.io/v1/ekyc/verify',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/ekyc/verify'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/ekyc/verify"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
Received response:
Request failed with error:
v1/ksv/report
requires authentication
Example request:
curl -X POST \
"https://api.signteq.io/v1/ksv/report" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.signteq.io/v1/ksv/report',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/ksv/report'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/ksv/report"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
Received response:
Request failed with error:
v1/address/verify
requires authentication
Example request:
curl -X POST \
"https://api.signteq.io/v1/address/verify" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.signteq.io/v1/address/verify',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/address/verify'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/address/verify"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
Received response:
Request failed with error:
v1/data/sanitize
requires authentication
Example request:
curl -X POST \
"https://api.signteq.io/v1/data/sanitize" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.signteq.io/v1/data/sanitize',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/data/sanitize'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/data/sanitize"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
Received response:
Request failed with error:
Organization Settings
Get Organization Notifications
requires authentication
Example request:
curl -X GET \
-G "https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/notifications" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/notifications',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/notifications'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/notifications"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"recipient_reminder": null,
"document_viewed": null,
"document_signed": null,
"document_declined": null,
"document_completed": null,
"copy_document_completed": null,
"copy_recipients_document_completed": null
}
Received response:
Request failed with error:
Update Organization Notifications
requires authentication
Updates the specified organization notification settings by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
Example request:
curl -X PATCH \
"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/notifications" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"recipient_reminder":false,"document_viewed":true,"document_signed":false,"document_declined":false,"document_completed":false,"copy_document_completed":false,"copy_recipients_document_completed":false}'
$client = new \GuzzleHttp\Client();
$response = $client->patch(
'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/notifications',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'json' => [
'recipient_reminder' => false,
'document_viewed' => true,
'document_signed' => false,
'document_declined' => false,
'document_completed' => false,
'copy_document_completed' => false,
'copy_recipients_document_completed' => false,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/notifications'
payload = {
"recipient_reminder": false,
"document_viewed": true,
"document_signed": false,
"document_declined": false,
"document_completed": false,
"copy_document_completed": false,
"copy_recipients_document_completed": false
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()
const url = new URL(
"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/notifications"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"recipient_reminder": false,
"document_viewed": true,
"document_signed": false,
"document_declined": false,
"document_completed": false,
"copy_document_completed": false,
"copy_recipients_document_completed": false
}
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"recipient_reminder": null,
"document_viewed": null,
"document_signed": null,
"document_declined": null,
"document_completed": null,
"copy_document_completed": null,
"copy_recipients_document_completed": null
}
Received response:
Request failed with error:
Get Organization Signature Settings
requires authentication
Example request:
curl -X GET \
-G "https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/signatures" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/signatures',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/signatures'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/signatures"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"allow_draw": null,
"allow_type": null,
"allow_upload": null,
"allow_mobilephone": null,
"include_document_id": null,
"include_docutrust_seal": null
}
Received response:
Request failed with error:
Update Organization Signature Settings
requires authentication
Updates the specified organization signature settings by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
Example request:
curl -X PATCH \
"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/signatures" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"signature_settings":{"allow_draw":false,"allow_type":false,"allow_upload":false,"allow_mobilephone":false,"include_document_id":false,"include_docutrust_seal":false},"document_password":{"password":"dolor","encryption_level":"256"},"allow_draw":true,"allow_type":true,"allow_upload":true,"allow_mobilephone":true,"include_document_id":false,"include_docutrust_seal":true}'
$client = new \GuzzleHttp\Client();
$response = $client->patch(
'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/signatures',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'json' => [
'signature_settings' => [
'allow_draw' => false,
'allow_type' => false,
'allow_upload' => false,
'allow_mobilephone' => false,
'include_document_id' => false,
'include_docutrust_seal' => false,
],
'document_password' => [
'password' => 'dolor',
'encryption_level' => '256',
],
'allow_draw' => true,
'allow_type' => true,
'allow_upload' => true,
'allow_mobilephone' => true,
'include_document_id' => false,
'include_docutrust_seal' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/signatures'
payload = {
"signature_settings": {
"allow_draw": false,
"allow_type": false,
"allow_upload": false,
"allow_mobilephone": false,
"include_document_id": false,
"include_docutrust_seal": false
},
"document_password": {
"password": "dolor",
"encryption_level": "256"
},
"allow_draw": true,
"allow_type": true,
"allow_upload": true,
"allow_mobilephone": true,
"include_document_id": false,
"include_docutrust_seal": true
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()
const url = new URL(
"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/signatures"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"signature_settings": {
"allow_draw": false,
"allow_type": false,
"allow_upload": false,
"allow_mobilephone": false,
"include_document_id": false,
"include_docutrust_seal": false
},
"document_password": {
"password": "dolor",
"encryption_level": "256"
},
"allow_draw": true,
"allow_type": true,
"allow_upload": true,
"allow_mobilephone": true,
"include_document_id": false,
"include_docutrust_seal": true
}
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"allow_draw": null,
"allow_type": null,
"allow_upload": null,
"allow_mobilephone": null,
"include_document_id": null,
"include_docutrust_seal": null
}
Received response:
Request failed with error:
Get Organization Branding
requires authentication
Example request:
curl -X GET \
-G "https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/branding" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/branding',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/branding'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/branding"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"primary_bg_color": null,
"logo_online_light": null,
"logo_online_dark": null,
"logo_email": null
}
Received response:
Request failed with error:
Update Organization Branding
requires authentication
Updates the specified organizations branding settings by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
Example request:
curl -X PATCH \
"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/branding" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: multipart/form-data" \
-H "Accept: application/json" \
-F "primary_bg_color=#bb0000" \
-F "logo_online_light=@/private/var/folders/b8/61scclls1w39xj5y8062g5lw0000gn/T/php1jbEgi" -F "logo_online_dark=@/private/var/folders/b8/61scclls1w39xj5y8062g5lw0000gn/T/phpnAQUui" -F "logo_email=@/private/var/folders/b8/61scclls1w39xj5y8062g5lw0000gn/T/phpDv8KFY"
$client = new \GuzzleHttp\Client();
$response = $client->patch(
'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/branding',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'multipart' => [
[
'name' => 'primary_bg_color',
'contents' => '#bb0000'
],
[
'name' => 'logo_online_light',
'contents' => fopen('/private/var/folders/b8/61scclls1w39xj5y8062g5lw0000gn/T/php1jbEgi', 'r')
],
[
'name' => 'logo_online_dark',
'contents' => fopen('/private/var/folders/b8/61scclls1w39xj5y8062g5lw0000gn/T/phpnAQUui', 'r')
],
[
'name' => 'logo_email',
'contents' => fopen('/private/var/folders/b8/61scclls1w39xj5y8062g5lw0000gn/T/phpDv8KFY', 'r')
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/branding'
files = {
'logo_online_light': open('/private/var/folders/b8/61scclls1w39xj5y8062g5lw0000gn/T/php1jbEgi', 'rb') 'logo_online_dark': open('/private/var/folders/b8/61scclls1w39xj5y8062g5lw0000gn/T/phpnAQUui', 'rb') 'logo_email': open('/private/var/folders/b8/61scclls1w39xj5y8062g5lw0000gn/T/phpDv8KFY', 'rb')
}
payload = {
"primary_bg_color": "#bb0000"
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'multipart/form-data',
'Accept': 'application/json'
}
response = requests.request('PATCH', url, headers=headers, files=files, data=payload)
response.json()
const url = new URL(
"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/branding"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('primary_bg_color', '#bb0000');
body.append('logo_online_light', document.querySelector('input[name="logo_online_light"]').files[0]);
body.append('logo_online_dark', document.querySelector('input[name="logo_online_dark"]').files[0]);
body.append('logo_email', document.querySelector('input[name="logo_email"]').files[0]);
fetch(url, {
method: "PATCH",
headers,
body,
}).then(response => response.json());
Example response (200):
{
"primary_bg_color": null,
"logo_online_light": null,
"logo_online_dark": null,
"logo_email": null
}
Received response:
Request failed with error:
Get Organization Stamp
requires authentication
Example request:
curl -X GET \
-G "https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/stamp" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/stamp',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/stamp'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/stamp"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (201):
{
"preview_url":"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/stamp/8d3d1503-9521-4c98-a1dc-fc2c544b1a11?signature=944acb357153d0498e33ce2b1774f0ccad86dea2a7e207c0c033f1273ced3796",
}
Received response:
Request failed with error:
Update Organization Stamp
requires authentication
Updates the specified organization stamp.
Example request:
curl -X PATCH \
"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/stamp" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: multipart/form-data" \
-H "Accept: application/json" \
-F "stamp=@/private/var/folders/b8/61scclls1w39xj5y8062g5lw0000gn/T/phpefOZrq"
$client = new \GuzzleHttp\Client();
$response = $client->patch(
'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/stamp',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'multipart' => [
[
'name' => 'stamp',
'contents' => fopen('/private/var/folders/b8/61scclls1w39xj5y8062g5lw0000gn/T/phpefOZrq', 'r')
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/stamp'
files = {
'stamp': open('/private/var/folders/b8/61scclls1w39xj5y8062g5lw0000gn/T/phpefOZrq', 'rb')
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'multipart/form-data',
'Accept': 'application/json'
}
response = requests.request('PATCH', url, headers=headers, files=files)
response.json()
const url = new URL(
"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/stamp"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('stamp', document.querySelector('input[name="stamp"]').files[0]);
fetch(url, {
method: "PATCH",
headers,
body,
}).then(response => response.json());
Example response (201):
{
"preview_url":"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/stamp/8d3d1503-9521-4c98-a1dc-fc2c544b1a11?signature=944acb357153d0498e33ce2b1774f0ccad86dea2a7e207c0c033f1273ced3796",
}
Received response:
Request failed with error:
Delete Organization Stamp
requires authentication
Deletes the specified organization stamp.
Example request:
curl -X DELETE \
"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/stamp" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/stamp',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/stamp'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130/stamp"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
Example response (200):
{}
Received response:
Request failed with error:
Organizations
signteq is multi-organizations capable. All requests, documents, recipients, etc. are not only assigned to a user but also to a specific organization.
List Organizations
requires authentication
List all of your organizations associated with an account.
Example request:
curl -X GET \
-G "https://api.signteq.io/v1/organizations" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.signteq.io/v1/organizations',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/organizations'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/organizations"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
[
{
"id": "48f43beb-38d0-4e08-b782-67b4362390fa",
"created_at": "2022-09-07T13:50:10.000000Z",
"updated_at": "2022-09-07T13:50:10.000000Z",
"name": "Streich-Ward",
"sender_name": null,
"reply_to": null
},
{
"id": "1e18a4f8-acba-410e-9ff4-ad8d5a9dd510",
"created_at": "2022-09-07T13:50:10.000000Z",
"updated_at": "2022-09-07T13:50:10.000000Z",
"name": "Wisozk, Schroeder and Farrell",
"sender_name": null,
"reply_to": null
}
]
Received response:
Request failed with error:
Create Organization
requires authentication
Please note that when you create organizations, a booking (according to the signteq.io price list) is initiated and a monthly subscription is created.
Example request:
curl -X POST \
"https://api.signteq.io/v1/organizations" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"name":"Demo GmbH","sender_name":"Demo","reply_to":"[email protected]"}'
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.signteq.io/v1/organizations',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'json' => [
'name' => 'Demo GmbH',
'sender_name' => 'Demo',
'reply_to' => '[email protected]',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/organizations'
payload = {
"name": "Demo GmbH",
"sender_name": "Demo",
"reply_to": "[email protected]"
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
const url = new URL(
"https://api.signteq.io/v1/organizations"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Demo GmbH",
"sender_name": "Demo",
"reply_to": "[email protected]"
}
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": "2f311495-b721-46e8-8129-9cd756f9ae19",
"created_at": "2022-09-07T13:50:10.000000Z",
"updated_at": "2022-09-07T13:50:10.000000Z",
"name": "Thompson-Zulauf",
"sender_name": null,
"reply_to": null
}
Received response:
Request failed with error:
Get Organization
requires authentication
Retrieves the details of an existing organization. You only need to supply the unique organization identifier.
Example request:
curl -X GET \
-G "https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"id": "8612f06d-06bc-4056-b859-96243453265f",
"created_at": "2022-09-07T13:50:10.000000Z",
"updated_at": "2022-09-07T13:50:10.000000Z",
"name": "Kirlin and Sons",
"sender_name": null,
"reply_to": null
}
Received response:
Request failed with error:
Update Organization
requires authentication
Updates the specified organization by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
Example request:
curl -X PATCH \
"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"name":"Demo GmbH","sender_name":"Demo","reply_to":"[email protected]"}'
$client = new \GuzzleHttp\Client();
$response = $client->patch(
'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'json' => [
'name' => 'Demo GmbH',
'sender_name' => 'Demo',
'reply_to' => '[email protected]',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130'
payload = {
"name": "Demo GmbH",
"sender_name": "Demo",
"reply_to": "[email protected]"
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()
const url = new URL(
"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Demo GmbH",
"sender_name": "Demo",
"reply_to": "[email protected]"
}
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": "7118c80b-ba24-4f1b-8c07-b61007b71799",
"created_at": "2022-09-07T13:50:10.000000Z",
"updated_at": "2022-09-07T13:50:10.000000Z",
"name": "Deckow and Sons",
"sender_name": null,
"reply_to": null
}
Received response:
Request failed with error:
Delete Organization
requires authentication
Permanently deletes a organization. This cannot be undone. Also immediately cancels all outstanding requests from the organization. If you delete an organization, the associated billing plan will be canceled at the end of the current period.
Example request:
curl -X DELETE \
"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/organizations/f5cfac16-3275-4e77-b33c-72bccace0130"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
Example response (200):
{}
Received response:
Request failed with error:
Recipients
List Recipients
requires authentication
Returns a paginated list of your recipients.
Example request:
curl -X GET \
-G "https://api.signteq.io/v1/recipients" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.signteq.io/v1/recipients',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/recipients'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/recipients"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"data": [
{
"id": "3f874027-2451-4e78-a67b-cec93d43fb18",
"email": "[email protected]",
"name": "Ellis Wehner",
"phonenumber": null
},
{
"id": "70840e63-d9ff-4c0b-8092-592519230853",
"email": "[email protected]",
"name": "Holden Wilkinson",
"phonenumber": null
}
],
"links": {
"first": "\/?page=1",
"last": "\/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« ZurΓΌck",
"active": false
},
{
"url": "\/?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Weiter »",
"active": false
}
],
"path": "\/",
"per_page": "15",
"to": 2,
"total": 2
}
}
Received response:
Request failed with error:
Create Recipient
requires authentication
Example request:
curl -X POST \
"https://api.signteq.io/v1/recipients" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"name":"John Doe","email":"[email protected]","phonenumber":"+43 664 123 456"}'
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.signteq.io/v1/recipients',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'json' => [
'name' => 'John Doe',
'email' => '[email protected]',
'phonenumber' => '+43 664 123 456',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/recipients'
payload = {
"name": "John Doe",
"email": "[email protected]",
"phonenumber": "+43 664 123 456"
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
const url = new URL(
"https://api.signteq.io/v1/recipients"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "John Doe",
"email": "[email protected]",
"phonenumber": "+43 664 123 456"
}
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": "f5f7ff37-8c6d-4fb4-8c52-50cb6afd94a1",
"email": "[email protected]",
"name": "Noelia White",
"phonenumber": null
}
Received response:
Request failed with error:
Get Recipient
requires authentication
Retrieves the details of an existing recipient. You need only supply the unique recipient identifier.
Example request:
curl -X GET \
-G "https://api.signteq.io/v1/recipients/f5cfac16-3275-4e77-b33c-72bccace0130" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.signteq.io/v1/recipients/f5cfac16-3275-4e77-b33c-72bccace0130',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/recipients/f5cfac16-3275-4e77-b33c-72bccace0130'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/recipients/f5cfac16-3275-4e77-b33c-72bccace0130"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"id": "d43ef57c-c927-47db-b408-1b49f997ad0c",
"email": "[email protected]",
"name": "Montana Hayes",
"phonenumber": null
}
Received response:
Request failed with error:
Update Recipient
requires authentication
Example request:
curl -X PATCH \
"https://api.signteq.io/v1/recipients/f5cfac16-3275-4e77-b33c-72bccace0130" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"name":"laborum"}'
$client = new \GuzzleHttp\Client();
$response = $client->patch(
'https://api.signteq.io/v1/recipients/f5cfac16-3275-4e77-b33c-72bccace0130',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'json' => [
'name' => 'laborum',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/recipients/f5cfac16-3275-4e77-b33c-72bccace0130'
payload = {
"name": "laborum"
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()
const url = new URL(
"https://api.signteq.io/v1/recipients/f5cfac16-3275-4e77-b33c-72bccace0130"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "laborum"
}
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": "3cfcd90e-a724-4232-a9cf-e9a3922849e2",
"email": "[email protected]",
"name": "Major Gutkowski",
"phonenumber": null
}
Received response:
Request failed with error:
Delete Recipient
requires authentication
Example request:
curl -X DELETE \
"https://api.signteq.io/v1/recipients/f5cfac16-3275-4e77-b33c-72bccace0130" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://api.signteq.io/v1/recipients/f5cfac16-3275-4e77-b33c-72bccace0130',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/recipients/f5cfac16-3275-4e77-b33c-72bccace0130'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/recipients/f5cfac16-3275-4e77-b33c-72bccace0130"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
Example response (200):
{}
Received response:
Request failed with error:
Requests
In order to obtain signatures or send documents, you must create a request. Any number of documents can be attached to this request.
List Requests
requires authentication
Returns a paginated list of your requests. The requests are returned sorted by creation date,
with the most recent request appearing first. By appending the API's state
parameter to the API request URL and setting it to a request status you can filter your results accordingly.
Example request:
curl -X GET \
-G "https://api.signteq.io/v1/requests" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.signteq.io/v1/requests',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/requests'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/requests"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"data": [
{
"id": "4be02d1d-f05a-44a7-bcaf-2ec9bbf810b8",
"type": "signature",
"subject": "Impedit et sint aut voluptatum quia.",
"message": "Quia distinctio quidem voluptatibus consequatur ea debitis consectetur. Aliquam voluptas illum deleniti sint maiores quidem. Nisi sunt eaque omnis nulla laborum voluptatibus. Hic repudiandae est deleniti officia qui accusamus.",
"sandbox": null,
"created_at": "2022-09-07T15:50:10+02:00",
"updated_at": "2022-09-07T15:50:10+02:00",
"canceled_at": null,
"released_at": null,
"declined_at": null,
"completed_at": null,
"settings": {
"deadline_at": "2022-09-09T15:50:10+02:00",
"auto_reminders": true,
"retention_policy": null,
"delete_after_download": false,
"copy_document_completed": true,
"copy_recipients_document_completed": true,
"close_on_success": false,
"redirect_success_url": null,
"redirect_error_url": null
},
"meta": null
},
{
"id": "502e2ed6-ae19-492b-84b5-024ff8be9ac4",
"type": "signature",
"subject": "Impedit velit quo dolorem sed ea voluptatum similique.",
"message": "Eaque saepe sed earum est dolorem eum. Autem qui aut dolores velit voluptas. Aut similique est sed aut odit sed aliquid vitae.",
"sandbox": null,
"created_at": "2022-09-07T15:50:10+02:00",
"updated_at": "2022-09-07T15:50:10+02:00",
"canceled_at": null,
"released_at": null,
"declined_at": null,
"completed_at": null,
"settings": {
"deadline_at": "2022-10-04T15:50:10+02:00",
"auto_reminders": true,
"retention_policy": null,
"delete_after_download": false,
"copy_document_completed": true,
"copy_recipients_document_completed": true,
"close_on_success": false,
"redirect_success_url": null,
"redirect_error_url": null
},
"meta": null
}
],
"links": {
"first": "\/?page=1",
"last": "\/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« ZurΓΌck",
"active": false
},
{
"url": "\/?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Weiter »",
"active": false
}
],
"path": "\/",
"per_page": "15",
"to": 2,
"total": 2
}
}
Received response:
Request failed with error:
Create Request
requires authentication
There are two types of requests. Requesting signatures (signature
) or sending documents (information
).
Example request:
curl -X POST \
"https://api.signteq.io/v1/requests" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"type":"signature","subject":"Non-disclosure agreement","message":"Hi John, please sign the NDA. If you have any questions, feel free to contact me.","settings":{"deadline_at":"2021-09-26T21:40:29+02:00","auto_reminders":false,"copy_document_completed":true,"copy_recipients_document_completed":false,"retention_policy":30,"delete_after_download":true,"close_on_success":false,"redirect_success_url":"https:\/\/example.com\/redirect","redirect_error_url":"https:\/\/example.com\/redirect"},"meta":{"internal_id":123},"documents":[{"name":"voluptatem","html":{"0":{"content":"sequi","orientation":"quia","size":"eius"},"1":[],"content":"molestiae","orientation":"landscape","size":"c6"},"fields":[{"anchor":"a","anchor_position":"TOP","page":1,"type":"signature","width":200,"height":9,"x":550,"y":200,"required":true,"read_only":false,"value":"rem","placeholder":"Your Name","meta":{"font":"Arial","font_size":16,"line_height":18,"bold":false,"italic":"false","underline":"false"},"recipient_id":"123"},[]],"meta":[]},{"name":"voluptatem","fields":[[],[]],"meta":[]}],"recipients":[{"id":"1","type":"signatory","email":"[email protected]","name":"John Doe","access_pin":"1234","phonenumber":"+43 664 123 456","do_not_notify":true,"language":"ipsa","notification_phonenumber":"odit","notification_channels":"maiores"},{"id":"1","type":"signatory","email":"[email protected]","name":"John Doe","do_not_notify":true,"language":"ipsa","notification_phonenumber":"odit","notification_channels":"maiores"}]}'
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.signteq.io/v1/requests',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'json' => [
'type' => 'signature',
'subject' => 'Non-disclosure agreement',
'message' => 'Hi John, please sign the NDA. If you have any questions, feel free to contact me.',
'settings' => [
'deadline_at' => '2021-09-26T21:40:29+02:00',
'auto_reminders' => false,
'copy_document_completed' => true,
'copy_recipients_document_completed' => false,
'retention_policy' => 30,
'delete_after_download' => true,
'close_on_success' => false,
'redirect_success_url' => 'https://example.com/redirect',
'redirect_error_url' => 'https://example.com/redirect',
],
'meta' => [
'internal_id' => 123,
],
'documents' => [
[
'name' => 'voluptatem',
'html' => [
[
'content' => 'sequi',
'orientation' => 'quia',
'size' => 'eius',
],
[],
'content' => 'molestiae',
'orientation' => 'landscape',
'size' => 'c6',
],
'fields' => [
[
'anchor' => 'a',
'anchor_position' => 'TOP',
'page' => 1,
'type' => 'signature',
'width' => 200,
'height' => 9,
'x' => 550,
'y' => 200,
'required' => true,
'read_only' => false,
'value' => 'rem',
'placeholder' => 'Your Name',
'meta' => [
'font' => 'Arial',
'font_size' => 16,
'line_height' => 18,
'bold' => false,
'italic' => 'false',
'underline' => 'false',
],
'recipient_id' => '123',
],
[],
],
'meta' => [],
],
[
'name' => 'voluptatem',
'fields' => [
[],
[],
],
'meta' => [],
],
],
'recipients' => [
[
'id' => '1',
'type' => 'signatory',
'email' => '[email protected]',
'name' => 'John Doe',
'access_pin' => '1234',
'phonenumber' => '+43 664 123 456',
'do_not_notify' => true,
'language' => 'ipsa',
'notification_phonenumber' => 'odit',
'notification_channels' => 'maiores',
],
[
'id' => '1',
'type' => 'signatory',
'email' => '[email protected]',
'name' => 'John Doe',
'do_not_notify' => true,
'language' => 'ipsa',
'notification_phonenumber' => 'odit',
'notification_channels' => 'maiores',
],
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/requests'
payload = {
"type": "signature",
"subject": "Non-disclosure agreement",
"message": "Hi John, please sign the NDA. If you have any questions, feel free to contact me.",
"settings": {
"deadline_at": "2021-09-26T21:40:29+02:00",
"auto_reminders": false,
"copy_document_completed": true,
"copy_recipients_document_completed": false,
"retention_policy": 30,
"delete_after_download": true,
"close_on_success": false,
"redirect_success_url": "https:\/\/example.com\/redirect",
"redirect_error_url": "https:\/\/example.com\/redirect"
},
"meta": {
"internal_id": 123
},
"documents": [
{
"name": "voluptatem",
"html": {
"0": {
"content": "sequi",
"orientation": "quia",
"size": "eius"
},
"1": [],
"content": "molestiae",
"orientation": "landscape",
"size": "c6"
},
"fields": [
{
"anchor": "a",
"anchor_position": "TOP",
"page": 1,
"type": "signature",
"width": 200,
"height": 9,
"x": 550,
"y": 200,
"required": true,
"read_only": false,
"value": "rem",
"placeholder": "Your Name",
"meta": {
"font": "Arial",
"font_size": 16,
"line_height": 18,
"bold": false,
"italic": "false",
"underline": "false"
},
"recipient_id": "123"
},
[]
],
"meta": []
},
{
"name": "voluptatem",
"fields": [
[],
[]
],
"meta": []
}
],
"recipients": [
{
"id": "1",
"type": "signatory",
"email": "[email protected]",
"name": "John Doe",
"access_pin": "1234",
"phonenumber": "+43 664 123 456",
"do_not_notify": true,
"language": "ipsa",
"notification_phonenumber": "odit",
"notification_channels": "maiores"
},
{
"id": "1",
"type": "signatory",
"email": "[email protected]",
"name": "John Doe",
"do_not_notify": true,
"language": "ipsa",
"notification_phonenumber": "odit",
"notification_channels": "maiores"
}
]
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
const url = new URL(
"https://api.signteq.io/v1/requests"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"type": "signature",
"subject": "Non-disclosure agreement",
"message": "Hi John, please sign the NDA. If you have any questions, feel free to contact me.",
"settings": {
"deadline_at": "2021-09-26T21:40:29+02:00",
"auto_reminders": false,
"copy_document_completed": true,
"copy_recipients_document_completed": false,
"retention_policy": 30,
"delete_after_download": true,
"close_on_success": false,
"redirect_success_url": "https:\/\/example.com\/redirect",
"redirect_error_url": "https:\/\/example.com\/redirect"
},
"meta": {
"internal_id": 123
},
"documents": [
{
"name": "voluptatem",
"html": {
"0": {
"content": "sequi",
"orientation": "quia",
"size": "eius"
},
"1": [],
"content": "molestiae",
"orientation": "landscape",
"size": "c6"
},
"fields": [
{
"anchor": "a",
"anchor_position": "TOP",
"page": 1,
"type": "signature",
"width": 200,
"height": 9,
"x": 550,
"y": 200,
"required": true,
"read_only": false,
"value": "rem",
"placeholder": "Your Name",
"meta": {
"font": "Arial",
"font_size": 16,
"line_height": 18,
"bold": false,
"italic": "false",
"underline": "false"
},
"recipient_id": "123"
},
[]
],
"meta": []
},
{
"name": "voluptatem",
"fields": [
[],
[]
],
"meta": []
}
],
"recipients": [
{
"id": "1",
"type": "signatory",
"email": "[email protected]",
"name": "John Doe",
"access_pin": "1234",
"phonenumber": "+43 664 123 456",
"do_not_notify": true,
"language": "ipsa",
"notification_phonenumber": "odit",
"notification_channels": "maiores"
},
{
"id": "1",
"type": "signatory",
"email": "[email protected]",
"name": "John Doe",
"do_not_notify": true,
"language": "ipsa",
"notification_phonenumber": "odit",
"notification_channels": "maiores"
}
]
}
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": "66deeab2-95e6-42d9-814b-c68e6711f2ef",
"type": "signature",
"subject": "Necessitatibus vel qui illo.",
"message": "At qui repudiandae voluptatem provident. Eum id assumenda accusantium quia rerum.",
"sandbox": null,
"created_at": "2022-09-07T15:50:10+02:00",
"updated_at": "2022-09-07T15:50:10+02:00",
"canceled_at": null,
"released_at": null,
"declined_at": null,
"completed_at": null,
"settings": {
"deadline_at": "2022-09-28T15:50:10+02:00",
"auto_reminders": true,
"retention_policy": null,
"delete_after_download": false,
"copy_document_completed": true,
"copy_recipients_document_completed": true,
"close_on_success": false,
"redirect_success_url": null,
"redirect_error_url": null
},
"meta": null
}
Received response:
Request failed with error:
Get Request
requires authentication
Retrieves the details of an existing request. You need only supply the unique request identifier.
Example request:
curl -X GET \
-G "https://api.signteq.io/v1/requests/f5cfac16-3275-4e77-b33c-72bccace0130" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.signteq.io/v1/requests/f5cfac16-3275-4e77-b33c-72bccace0130',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/requests/f5cfac16-3275-4e77-b33c-72bccace0130'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/requests/f5cfac16-3275-4e77-b33c-72bccace0130"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"id": "f2f8296d-a906-4bfb-8a58-d9d84e6b810e",
"type": "signature",
"subject": "Facere voluptatibus ea aut quia quas deleniti enim.",
"message": "Quia omnis ea placeat amet quia culpa nesciunt. Nemo impedit incidunt voluptate aut dolores consequatur. Sed officiis quam sed sit.",
"sandbox": null,
"created_at": "2022-09-07T15:50:10+02:00",
"updated_at": "2022-09-07T15:50:10+02:00",
"canceled_at": null,
"released_at": null,
"declined_at": null,
"completed_at": null,
"settings": {
"deadline_at": "2022-09-21T15:50:10+02:00",
"auto_reminders": true,
"retention_policy": null,
"delete_after_download": false,
"copy_document_completed": true,
"copy_recipients_document_completed": true,
"close_on_success": false,
"redirect_success_url": null,
"redirect_error_url": null
},
"meta": null
}
Received response:
Request failed with error:
Delete Request
requires authentication
Permanently deletes a request. This cannot be undone.
Example request:
curl -X DELETE \
"https://api.signteq.io/v1/requests/perferendis" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://api.signteq.io/v1/requests/perferendis',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/requests/perferendis'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/requests/perferendis"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
Received response:
Request failed with error:
Cancel Request
requires authentication
Example request:
curl -X POST \
"https://api.signteq.io/v1/requests/f5cfac16-3275-4e77-b33c-72bccace0130/cancel" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"reason":"asperiores"}'
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.signteq.io/v1/requests/f5cfac16-3275-4e77-b33c-72bccace0130/cancel',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'json' => [
'reason' => 'asperiores',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/requests/f5cfac16-3275-4e77-b33c-72bccace0130/cancel'
payload = {
"reason": "asperiores"
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
const url = new URL(
"https://api.signteq.io/v1/requests/f5cfac16-3275-4e77-b33c-72bccace0130/cancel"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"reason": "asperiores"
}
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{}
Received response:
Request failed with error:
Complete Request
requires authentication
Example request:
curl -X POST \
"https://api.signteq.io/v1/requests/tempore/complete" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.signteq.io/v1/requests/tempore/complete',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/requests/tempore/complete'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/requests/tempore/complete"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
Example response (200):
{}
Received response:
Request failed with error:
Extend Request
requires authentication
Example request:
curl -X POST \
"https://api.signteq.io/v1/requests/f5cfac16-3275-4e77-b33c-72bccace0130/extend" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"deadline_at":"quia"}'
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.signteq.io/v1/requests/f5cfac16-3275-4e77-b33c-72bccace0130/extend',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'json' => [
'deadline_at' => 'quia',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/requests/f5cfac16-3275-4e77-b33c-72bccace0130/extend'
payload = {
"deadline_at": "quia"
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
const url = new URL(
"https://api.signteq.io/v1/requests/f5cfac16-3275-4e77-b33c-72bccace0130/extend"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"deadline_at": "quia"
}
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{}
Received response:
Request failed with error:
Retrieve Request Audit Trail
requires authentication
Example request:
curl -X GET \
-G "https://api.signteq.io/v1/requests/f5cfac16-3275-4e77-b33c-72bccace0130/audit" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.signteq.io/v1/requests/f5cfac16-3275-4e77-b33c-72bccace0130/audit',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/requests/f5cfac16-3275-4e77-b33c-72bccace0130/audit'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/requests/f5cfac16-3275-4e77-b33c-72bccace0130/audit"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"id": null,
"timestamp": "2022-09-07T15:50:10+02:00",
"device": null,
"ip_address": null,
"user": null,
"recipient": null,
"action": {
"slug": null,
"label": null,
"sub_label": null
}
}
Received response:
Request failed with error:
Signature
Sign Document
requires authentication
Digitally sign a document directly without going through the classic request flow. A complete document must be submitted as no fields, signature images, etc. can be added in this process. A documents can be uploaded either by providing a URL, through sending the file base64 encoded or as HTML. Please only specify one of three upload parameters (url, base64 or html).
Example request:
curl -X POST \
"https://api.signteq.io/v1/sign" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"name":"perferendis","html":[{"content":"ipsa","orientation":"est","size":"et"},{"content":"ipsa","size":"et"}],"meta":{"internal_id":123},"seal":{"page":1,"x":550,"y":200,"anchor":"signature1","anchor_position":"CENTER","meta":[]}}'
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.signteq.io/v1/sign',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'json' => [
'name' => 'perferendis',
'html' => [
[
'content' => 'ipsa',
'orientation' => 'est',
'size' => 'et',
],
[
'content' => 'ipsa',
'size' => 'et',
],
],
'meta' => [
'internal_id' => 123,
],
'seal' => [
'page' => 1,
'x' => 550,
'y' => 200,
'anchor' => 'signature1',
'anchor_position' => 'CENTER',
'meta' => [],
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/sign'
payload = {
"name": "perferendis",
"html": [
{
"content": "ipsa",
"orientation": "est",
"size": "et"
},
{
"content": "ipsa",
"size": "et"
}
],
"meta": {
"internal_id": 123
},
"seal": {
"page": 1,
"x": 550,
"y": 200,
"anchor": "signature1",
"anchor_position": "CENTER",
"meta": []
}
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
const url = new URL(
"https://api.signteq.io/v1/sign"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "perferendis",
"html": [
{
"content": "ipsa",
"orientation": "est",
"size": "et"
},
{
"content": "ipsa",
"size": "et"
}
],
"meta": {
"internal_id": 123
},
"seal": {
"page": 1,
"x": 550,
"y": 200,
"anchor": "signature1",
"anchor_position": "CENTER",
"meta": []
}
}
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": null,
"name": "Asperiores voluptas magnam ullam provident laboriosam aspernatur est..pdf",
"size": 12655,
"type": "pdf",
"meta": null,
"versions": [],
"pages": []
}
Received response:
Request failed with error:
Team
Manage your team
List Team Members
requires authentication
Returns a paginated list of the team members associated with an account.
Example request:
curl -X GET \
-G "https://api.signteq.io/v1/team" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.signteq.io/v1/team',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/team'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/team"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
[
{
"id": "ac9a05a2-bf3e-4330-b9a4-5af746fc0001",
"gender": "male",
"firstname": "Phyllis",
"lastname": "Ratke",
"email": "[email protected]",
"permission": null
},
{
"id": "35d5cf47-89b1-42ea-9a65-ea00fa34a43a",
"gender": "male",
"firstname": "Elza",
"lastname": "Macejkovic",
"email": "[email protected]",
"permission": null
}
]
Received response:
Request failed with error:
Create Team Member
requires authentication
Please note that when you create team members, a booking (according to the signteq.io price list) is initiated and a monthly subscription is created.
Example request:
curl -X POST \
"https://api.signteq.io/v1/team" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"gender":"est","firstname":"iusto","lastname":"id","permission":"manager","email":"[email protected]"}'
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.signteq.io/v1/team',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'json' => [
'gender' => 'est',
'firstname' => 'iusto',
'lastname' => 'id',
'permission' => 'manager',
'email' => '[email protected]',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/team'
payload = {
"gender": "est",
"firstname": "iusto",
"lastname": "id",
"permission": "manager",
"email": "[email protected]"
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
const url = new URL(
"https://api.signteq.io/v1/team"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"gender": "est",
"firstname": "iusto",
"lastname": "id",
"permission": "manager",
"email": "[email protected]"
}
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": "3d533851-c738-403e-9508-eb1f1aa0bc90",
"gender": "female",
"firstname": "Roberto",
"lastname": "Terry",
"email": "[email protected]",
"permission": null
}
Received response:
Request failed with error:
Get Team Member
requires authentication
Retrieves the details of an existing team member. You only need to supply the unique team member identifier.
Example request:
curl -X GET \
-G "https://api.signteq.io/v1/team/molestiae" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.signteq.io/v1/team/molestiae',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/team/molestiae'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/team/molestiae"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"id": "99ae078c-20ff-45fc-8099-f4bbe57d2644",
"gender": "male",
"firstname": "Emmanuelle",
"lastname": "Kling",
"email": "[email protected]",
"permission": null
}
Received response:
Request failed with error:
Update Team Member
requires authentication
Updates the specified team member by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
Example request:
curl -X PATCH \
"https://api.signteq.io/v1/team/qui" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"gender":"blanditiis","firstname":"impedit","lastname":"veniam","permission":"manager","email":"[email protected]"}'
$client = new \GuzzleHttp\Client();
$response = $client->patch(
'https://api.signteq.io/v1/team/qui',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'json' => [
'gender' => 'blanditiis',
'firstname' => 'impedit',
'lastname' => 'veniam',
'permission' => 'manager',
'email' => '[email protected]',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/team/qui'
payload = {
"gender": "blanditiis",
"firstname": "impedit",
"lastname": "veniam",
"permission": "manager",
"email": "[email protected]"
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()
const url = new URL(
"https://api.signteq.io/v1/team/qui"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"gender": "blanditiis",
"firstname": "impedit",
"lastname": "veniam",
"permission": "manager",
"email": "[email protected]"
}
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": "1fd551cd-31ac-4888-a8cf-dc1586c96682",
"gender": "male",
"firstname": "Griffin",
"lastname": "Simonis",
"email": "[email protected]",
"permission": null
}
Received response:
Request failed with error:
Delete Team Member
requires authentication
Deletes a team member. If you delete a team member, the associated billing plan will be canceled at the end of the current period.
Example request:
curl -X DELETE \
"https://api.signteq.io/v1/team/qui" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://api.signteq.io/v1/team/qui',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/team/qui'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/team/qui"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
Example response (200):
{}
Received response:
Request failed with error:
Templates
To simplify the creation of requests, templates can be created. For example, you can create templates in the signteq.io UI and use them via the API. If you use the same document very often and only need to customize a few data, templates are the right choice.
List Templates
requires authentication
Returns a paginated list of your templates.
Example request:
curl -X GET \
-G "https://api.signteq.io/v1/templates" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.signteq.io/v1/templates',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/templates'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/templates"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"data": [
{
"id": "e90f4cd6-343c-47c7-bf6b-a8d131b2a4d2",
"created_at": "2022-09-07T15:50:10+02:00",
"subject": "Qui ex qui nam incidunt.",
"settings": {
"verify_phonenumber": false,
"verify_email": true
},
"recipients": [],
"permalink": "http:\/\/api.signteq.io\/t\/e90f4cd6-343c-47c7-bf6b-a8d131b2a4d2?signature=3396c17b36823bfeddf72ae54000fcdec2a0142d682f2d1934c860d650d4596f",
"qrcode": "http:\/\/api.signteq.io\/templates\/e90f4cd6-343c-47c7-bf6b-a8d131b2a4d2\/qrcode?signature=36dcf1d6a69bb0e74a288c0e914a78e3decea7985835b5206772e47025007fbb"
},
{
"id": "b2fa3249-7c10-4d9c-8926-4fb576ca339a",
"created_at": "2022-09-07T15:50:10+02:00",
"subject": "Vero porro sit quidem non.",
"settings": {
"verify_phonenumber": false,
"verify_email": true
},
"recipients": [],
"permalink": "http:\/\/api.signteq.io\/t\/b2fa3249-7c10-4d9c-8926-4fb576ca339a?signature=24ae30b1302421b7dd3232e4b6adb032d3bd8fe0120577c6a31afd8930c11092",
"qrcode": "http:\/\/api.signteq.io\/templates\/b2fa3249-7c10-4d9c-8926-4fb576ca339a\/qrcode?signature=8dd103e660d009bb0ec3e122572d5a9aabce87583e710f30cc3e0541ad86db7a"
}
],
"links": {
"first": "\/?page=1",
"last": "\/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« ZurΓΌck",
"active": false
},
{
"url": "\/?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Weiter »",
"active": false
}
],
"path": "\/",
"per_page": "15",
"to": 2,
"total": 2
}
}
Received response:
Request failed with error:
Create Template
requires authentication
Templates can either be used as templates for requests or can be accessed directly via a URL. The creation process is the same in both cases.
Example request:
curl -X POST \
"https://api.signteq.io/v1/templates" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"subject":"cupiditate","recipients":["quas","officiis"],"settings":{"verify_phonenumber":true},"documents":[{"name":"consectetur","fields":[{"page":1,"type":"signature","width":200,"height":8,"x":1,"y":15,"required":true,"value":"corporis","placeholder":"Your Name","meta":{"font":"Arial","font_size":16,"line_height":18,"bold":false,"italic":"false","underline":"false"},"recipient_id":"Client"},[]]},{"name":"consectetur","fields":[[],[]]}]}'
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.signteq.io/v1/templates',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'json' => [
'subject' => 'cupiditate',
'recipients' => [
'quas',
'officiis',
],
'settings' => [
'verify_phonenumber' => true,
],
'documents' => [
[
'name' => 'consectetur',
'fields' => [
[
'page' => 1,
'type' => 'signature',
'width' => 200,
'height' => 8,
'x' => 1,
'y' => 15,
'required' => true,
'value' => 'corporis',
'placeholder' => 'Your Name',
'meta' => [
'font' => 'Arial',
'font_size' => 16,
'line_height' => 18,
'bold' => false,
'italic' => 'false',
'underline' => 'false',
],
'recipient_id' => 'Client',
],
[],
],
],
[
'name' => 'consectetur',
'fields' => [
[],
[],
],
],
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/templates'
payload = {
"subject": "cupiditate",
"recipients": [
"quas",
"officiis"
],
"settings": {
"verify_phonenumber": true
},
"documents": [
{
"name": "consectetur",
"fields": [
{
"page": 1,
"type": "signature",
"width": 200,
"height": 8,
"x": 1,
"y": 15,
"required": true,
"value": "corporis",
"placeholder": "Your Name",
"meta": {
"font": "Arial",
"font_size": 16,
"line_height": 18,
"bold": false,
"italic": "false",
"underline": "false"
},
"recipient_id": "Client"
},
[]
]
},
{
"name": "consectetur",
"fields": [
[],
[]
]
}
]
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
const url = new URL(
"https://api.signteq.io/v1/templates"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"subject": "cupiditate",
"recipients": [
"quas",
"officiis"
],
"settings": {
"verify_phonenumber": true
},
"documents": [
{
"name": "consectetur",
"fields": [
{
"page": 1,
"type": "signature",
"width": 200,
"height": 8,
"x": 1,
"y": 15,
"required": true,
"value": "corporis",
"placeholder": "Your Name",
"meta": {
"font": "Arial",
"font_size": 16,
"line_height": 18,
"bold": false,
"italic": "false",
"underline": "false"
},
"recipient_id": "Client"
},
[]
]
},
{
"name": "consectetur",
"fields": [
[],
[]
]
}
]
}
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": "f65b4bd8-d071-4798-9677-177caa95013c",
"created_at": "2022-09-07T15:50:10+02:00",
"subject": "Dignissimos ab et quia totam rem.",
"settings": {
"verify_phonenumber": false,
"verify_email": true
},
"recipients": [],
"permalink": "http:\/\/api.signteq.io\/t\/f65b4bd8-d071-4798-9677-177caa95013c?signature=273370df2f335a7d83fa407e0a285be6d3c8c27369ceee8b4cae335f4c83d992",
"qrcode": "http:\/\/api.signteq.io\/templates\/f65b4bd8-d071-4798-9677-177caa95013c\/qrcode?signature=78c8858622eeb4640ed6f26517172d4b03b23cb6250c21782a4b8ed6fc233107"
}
Received response:
Request failed with error:
Get Template
requires authentication
Retrieves the details of an existing template. You need only supply the unique template identifier.
Example request:
curl -X GET \
-G "https://api.signteq.io/v1/templates/f5cfac16-3275-4e77-b33c-72bccace0130" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.signteq.io/v1/templates/f5cfac16-3275-4e77-b33c-72bccace0130',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/templates/f5cfac16-3275-4e77-b33c-72bccace0130'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/templates/f5cfac16-3275-4e77-b33c-72bccace0130"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"id": "cf2cd695-bfb5-4b0a-8c38-8de441ea9b99",
"created_at": "2022-09-07T15:50:10+02:00",
"subject": "Pariatur id labore in itaque hic voluptatem et.",
"settings": {
"verify_phonenumber": false,
"verify_email": true
},
"recipients": [],
"permalink": "http:\/\/api.signteq.io\/t\/cf2cd695-bfb5-4b0a-8c38-8de441ea9b99?signature=e7768ca0294ddd9eed67af618c6283b2fc3ba8904f4f40838f0c2bb6d06c5c90",
"qrcode": "http:\/\/api.signteq.io\/templates\/cf2cd695-bfb5-4b0a-8c38-8de441ea9b99\/qrcode?signature=b1ab48b0a8f393072bbc924614db14f1590db5e4b806e3ff93d293677d0a84b6"
}
Received response:
Request failed with error:
Use Template
requires authentication
Use this template to create a request.
Example request:
curl -X POST \
"https://api.signteq.io/v1/templates/f5cfac16-3275-4e77-b33c-72bccace0130" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"message":"Hi John, please sign the NDA. If you have any questions, feel free to contact me.","settings":{"deadline_at":"2021-09-26T21:40:29+02:00","auto_reminders":true,"retention_policy":30,"delete_after_download":true,"copy_document_completed":false,"copy_recipients_document_completed":true,"redirect_success_url":"https:\/\/example.com\/redirect","redirect_error_url":"https:\/\/example.com\/redirect"},"meta":{"internal_id":123},"recipients":[{"id":"1","type":"signatory","email":"[email protected]","name":"John Doe","phonenumber":"+43 664 123 456","access_pin":"1234","do_not_notify":false,"language":"ex"},{"id":"1","type":"signatory","email":"[email protected]","name":"John Doe","phonenumber":"+43 664 123 456","language":"ex"}],"fields":[{"id":"14ca4897-b791-4fe3-babb-28a9faebd2d3","value":"John Doe","read_only":false},{"id":"14ca4897-b791-4fe3-babb-28a9faebd2d3","value":"John Doe","read_only":false}]}'
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.signteq.io/v1/templates/f5cfac16-3275-4e77-b33c-72bccace0130',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'json' => [
'message' => 'Hi John, please sign the NDA. If you have any questions, feel free to contact me.',
'settings' => [
'deadline_at' => '2021-09-26T21:40:29+02:00',
'auto_reminders' => true,
'retention_policy' => 30,
'delete_after_download' => true,
'copy_document_completed' => false,
'copy_recipients_document_completed' => true,
'redirect_success_url' => 'https://example.com/redirect',
'redirect_error_url' => 'https://example.com/redirect',
],
'meta' => [
'internal_id' => 123,
],
'recipients' => [
[
'id' => '1',
'type' => 'signatory',
'email' => '[email protected]',
'name' => 'John Doe',
'phonenumber' => '+43 664 123 456',
'access_pin' => '1234',
'do_not_notify' => false,
'language' => 'ex',
],
[
'id' => '1',
'type' => 'signatory',
'email' => '[email protected]',
'name' => 'John Doe',
'phonenumber' => '+43 664 123 456',
'language' => 'ex',
],
],
'fields' => [
[
'id' => '14ca4897-b791-4fe3-babb-28a9faebd2d3',
'value' => 'John Doe',
'read_only' => false,
],
[
'id' => '14ca4897-b791-4fe3-babb-28a9faebd2d3',
'value' => 'John Doe',
'read_only' => false,
],
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/templates/f5cfac16-3275-4e77-b33c-72bccace0130'
payload = {
"message": "Hi John, please sign the NDA. If you have any questions, feel free to contact me.",
"settings": {
"deadline_at": "2021-09-26T21:40:29+02:00",
"auto_reminders": true,
"retention_policy": 30,
"delete_after_download": true,
"copy_document_completed": false,
"copy_recipients_document_completed": true,
"redirect_success_url": "https:\/\/example.com\/redirect",
"redirect_error_url": "https:\/\/example.com\/redirect"
},
"meta": {
"internal_id": 123
},
"recipients": [
{
"id": "1",
"type": "signatory",
"email": "[email protected]",
"name": "John Doe",
"phonenumber": "+43 664 123 456",
"access_pin": "1234",
"do_not_notify": false,
"language": "ex"
},
{
"id": "1",
"type": "signatory",
"email": "[email protected]",
"name": "John Doe",
"phonenumber": "+43 664 123 456",
"language": "ex"
}
],
"fields": [
{
"id": "14ca4897-b791-4fe3-babb-28a9faebd2d3",
"value": "John Doe",
"read_only": false
},
{
"id": "14ca4897-b791-4fe3-babb-28a9faebd2d3",
"value": "John Doe",
"read_only": false
}
]
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
const url = new URL(
"https://api.signteq.io/v1/templates/f5cfac16-3275-4e77-b33c-72bccace0130"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"message": "Hi John, please sign the NDA. If you have any questions, feel free to contact me.",
"settings": {
"deadline_at": "2021-09-26T21:40:29+02:00",
"auto_reminders": true,
"retention_policy": 30,
"delete_after_download": true,
"copy_document_completed": false,
"copy_recipients_document_completed": true,
"redirect_success_url": "https:\/\/example.com\/redirect",
"redirect_error_url": "https:\/\/example.com\/redirect"
},
"meta": {
"internal_id": 123
},
"recipients": [
{
"id": "1",
"type": "signatory",
"email": "[email protected]",
"name": "John Doe",
"phonenumber": "+43 664 123 456",
"access_pin": "1234",
"do_not_notify": false,
"language": "ex"
},
{
"id": "1",
"type": "signatory",
"email": "[email protected]",
"name": "John Doe",
"phonenumber": "+43 664 123 456",
"language": "ex"
}
],
"fields": [
{
"id": "14ca4897-b791-4fe3-babb-28a9faebd2d3",
"value": "John Doe",
"read_only": false
},
{
"id": "14ca4897-b791-4fe3-babb-28a9faebd2d3",
"value": "John Doe",
"read_only": false
}
]
}
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": "0413e716-5ad1-415b-b221-52244907862b",
"type": "signature",
"subject": "Qui reprehenderit enim voluptas maxime est nisi.",
"message": "Quae delectus quo dicta quas voluptas. Ducimus magnam quos fugiat aut voluptate beatae. Id nisi ea animi unde quae omnis.",
"sandbox": null,
"created_at": "2022-09-07T15:50:10+02:00",
"updated_at": "2022-09-07T15:50:10+02:00",
"canceled_at": null,
"released_at": null,
"declined_at": null,
"completed_at": null,
"settings": {
"deadline_at": "2022-09-26T15:50:10+02:00",
"auto_reminders": true,
"retention_policy": null,
"delete_after_download": false,
"copy_document_completed": true,
"copy_recipients_document_completed": true,
"close_on_success": false,
"redirect_success_url": null,
"redirect_error_url": null
},
"meta": null
}
Received response:
Request failed with error:
Delete Template
requires authentication
Permanently deletes a template. It cannot be undone.
Example request:
curl -X DELETE \
"https://api.signteq.io/v1/templates/minus" \
-H "Authorization: Bearer {YOUR_API_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://api.signteq.io/v1/templates/minus',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://api.signteq.io/v1/templates/minus'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()
const url = new URL(
"https://api.signteq.io/v1/templates/minus"
);
let headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
Received response:
Request failed with error: