Skip to main content

API reference

Templates

List and read reusable envelope templates.

2 endpoints. Every path below is relative to the base URL.

On this page
Base URL
https://api-uat.softsages.com/core

GET/api/v1/inkfree/templates

List templates

Requires the X-API-Key header

Returns the tenant's reusable templates, newest first, capped at 100 items. Folder rows are excluded; only sendable templates are returned.

Parameters

NameInTypeRequiredDescription
sincequerystringOptionalKeyset cursor: ISO 8601 local date-time of the last item from the previous page. No Z suffix and no numeric offset; both are rejected with 400.Example: 2026-01-15T10:30:00
afterquerystringOptionalTemplate id of the last item from the previous page.Example: tpl_abc123

Responses

200

Up to 100 templates.

Returns PdfSignRequest[]

FieldTypeRequiredDescription
idstringOptionalEnvelope or template id. A 36-character UUID; env_xyz789 here is a readability placeholder.
emailSubjectstringOptionalSubject line of the signing invitation.
emailMessagestringOptionalBody of the signing invitation.
signersDocumentSigner[]OptionalSigners, in signing order when signerOrderRequired is true.
filesPdfFile[]OptionalDocuments in the envelope, with their field placement.
statusstringOptionalCurrent status: Draft (not sent yet), InReview (waiting for the approvers), Scheduled (queued until scheduleTime), Pending (signers invited), Signed (complete), Declined, Rejected (an approver rejected it), Voided or Expired.
approvalobjectOptionalThe approval step, when the sender added approvers. An EMAIL approver is emailed and approves on Inkfree's page; an EMBEDDED approver (every approver on an embedded draft) approves inside your app through a signing token minted for their email. The envelope stays InReview until they have all approved (or becomes Rejected if one rejects).
└approvalNeededbooleanOptional
└orderNeededbooleanOptionalTrue when approvers act one after another in the order listed.
└reviewersDocumentSigner[]OptionalThe approvers, with status (Pending, Approved, Rejected, Skipped), deliveryMode and, for an EMAIL approver, their Inkfree approval url.
signRequestConfigobjectOptionalThe sender's signer permissions.
└allowDocumentDownloadbooleanOptionalSigners Inkfree emails may download the documents from Inkfree's page.default: true
└sendNotificationOnCompletionbooleanOptionaldefault: true
└attachDocumentToMailOnCompletionbooleanOptionalAttach the signed copies to the completion email.default: true
└allowSignatureDelegationbooleanOptionalSigners Inkfree emails may delegate to someone else. Never applies to EMBEDDED signers.default: true
requestedByDocumentSignerOptional
templateNamestringOptionalName of the template, when this object is a template.
templateIdstringOptionalId of the template this envelope was created from, if any.
currentSignersstring[]OptionalEmails of signers whose turn it currently is.
signedBystringOptionalSigners who have completed signing.
signerOrderRequiredbooleanOptionalWhen true, signers are invited sequentially rather than all at once.default: false
selfSignedbooleanOptionalTrue when the sender is also the only signer.default: false
expirationDaysintegerOptionalDays until the envelope expires.
scheduleTimestringOptionalScheduled send time in MM/dd/yyyy HH:mm:ss, if the envelope is queued for later dispatch.
createdOnstringOptionalCreation timestamp, formatted MM/dd/yyyy HH:mm:ss, not ISO 8601.
updatedOnstringOptionalLast update timestamp, formatted MM/dd/yyyy HH:mm:ss, not ISO 8601. Reformat before using it as a since cursor.
updatedBystringOptionalWho last updated the envelope.
auditIdstringOptionalIdentifier of the associated audit trail.
400

since is not an ISO 8601 local date-time.

Returns Error

401

The API key is missing, malformed, unknown, expired, revoked, or inactive.

Returns Error

401 response
{
  "code": 401,
  "message": "Invalid API key"
}
429

Per-key rate limit exceeded. Back off and retry.

Returns Error

429 response
{
  "code": 429,
  "message": "Rate limit exceeded. Try again later."
}

Example request

curl
curl "https://api-uat.softsages.com/core/api/v1/inkfree/templates" \
  -H "X-API-Key: sk_live_YOUR_API_KEY"

GET/api/v1/inkfree/templates/{id}

Get a template

Requires the X-API-Key header

Returns a single template, including its signer slots. Each slot's id is the value to pass as signerIndex when sending via POST /api/v1/inkfree/envelopes/from-template/{templateId}.

Parameters

NameInTypeRequiredDescription
idpathstringRequiredTemplate id, a 36-character UUID.Example: tpl_abc123

Responses

200

The template.

Returns PdfSignRequest

FieldTypeRequiredDescription
idstringOptionalEnvelope or template id. A 36-character UUID; env_xyz789 here is a readability placeholder.
emailSubjectstringOptionalSubject line of the signing invitation.
emailMessagestringOptionalBody of the signing invitation.
signersDocumentSigner[]OptionalSigners, in signing order when signerOrderRequired is true.
filesPdfFile[]OptionalDocuments in the envelope, with their field placement.
statusstringOptionalCurrent status: Draft (not sent yet), InReview (waiting for the approvers), Scheduled (queued until scheduleTime), Pending (signers invited), Signed (complete), Declined, Rejected (an approver rejected it), Voided or Expired.
approvalobjectOptionalThe approval step, when the sender added approvers. An EMAIL approver is emailed and approves on Inkfree's page; an EMBEDDED approver (every approver on an embedded draft) approves inside your app through a signing token minted for their email. The envelope stays InReview until they have all approved (or becomes Rejected if one rejects).
└approvalNeededbooleanOptional
└orderNeededbooleanOptionalTrue when approvers act one after another in the order listed.
└reviewersDocumentSigner[]OptionalThe approvers, with status (Pending, Approved, Rejected, Skipped), deliveryMode and, for an EMAIL approver, their Inkfree approval url.
signRequestConfigobjectOptionalThe sender's signer permissions.
└allowDocumentDownloadbooleanOptionalSigners Inkfree emails may download the documents from Inkfree's page.default: true
└sendNotificationOnCompletionbooleanOptionaldefault: true
└attachDocumentToMailOnCompletionbooleanOptionalAttach the signed copies to the completion email.default: true
└allowSignatureDelegationbooleanOptionalSigners Inkfree emails may delegate to someone else. Never applies to EMBEDDED signers.default: true
requestedByDocumentSignerOptional
templateNamestringOptionalName of the template, when this object is a template.
templateIdstringOptionalId of the template this envelope was created from, if any.
currentSignersstring[]OptionalEmails of signers whose turn it currently is.
signedBystringOptionalSigners who have completed signing.
signerOrderRequiredbooleanOptionalWhen true, signers are invited sequentially rather than all at once.default: false
selfSignedbooleanOptionalTrue when the sender is also the only signer.default: false
expirationDaysintegerOptionalDays until the envelope expires.
scheduleTimestringOptionalScheduled send time in MM/dd/yyyy HH:mm:ss, if the envelope is queued for later dispatch.
createdOnstringOptionalCreation timestamp, formatted MM/dd/yyyy HH:mm:ss, not ISO 8601.
updatedOnstringOptionalLast update timestamp, formatted MM/dd/yyyy HH:mm:ss, not ISO 8601. Reformat before using it as a since cursor.
updatedBystringOptionalWho last updated the envelope.
auditIdstringOptionalIdentifier of the associated audit trail.
401

The API key is missing, malformed, unknown, expired, revoked, or inactive.

Returns Error

401 response
{
  "code": 401,
  "message": "Invalid API key"
}
404

Template not found, or it belongs to another tenant.

Returns Error

404 response
{
  "code": 404,
  "message": "template not found"
}
429

Per-key rate limit exceeded. Back off and retry.

Returns Error

429 response
{
  "code": 429,
  "message": "Rate limit exceeded. Try again later."
}

Example request

curl
curl "https://api-uat.softsages.com/core/api/v1/inkfree/templates/tpl_abc123" \
  -H "X-API-Key: sk_live_YOUR_API_KEY"