TemplateSignatureField
A signature field as stored on a template, returned by `GET /templates/{templateId}`. This is a **read-only** shape. It mirrors `SignatureField`, but describes what the template has saved rather than what you may send, so it differs in three ways: - `signatureType` can additionally be `not_set`, for legacy fields saved before a signature type was required. Such a field cannot be posted back unchanged — pick a real type when you create the document. - `phoneNumberDeliveryMethod` and `disableInvitationMessage` are never returned: they are not stored on a template, they are chosen per document. - `signatureBox` is `null` when `signaturePlacement` is `new_page`, and `idScanBox` is `null` unless the field has ID-scan coordinates stored. Every other value round-trips: you can take a field from here, add the signee's contact details, and pass it straight to `POST /docs` as part of `signeeDetails`.
Properties
| Name | Type | Description |
|---|---|---|
| fullName | stringnull | What the field is called on the template. Often a **role label** such as `"Buyer"` rather than a person, since a template is usually built before its signers are known. Replace it with the real name w |
| emailAddress | stringnull | Email address of the contact stored on this field, if the template has one. |
| phoneNumber | stringnull | Phone number of the contact stored on this field, if the template has one. |
| signatureType | string | Type of signature / identity verification method stored on the field. - `digital_ink`: The signee draws their signature using a mouse, touchpad, or finger. - `bankid_identification`: The signee signs |
| signaturePlacement | string | Whether the signature sits on an existing page (`existing`) or on a signature page appended to the document (`new_page`). |
| signatureBox | objectnull | Placement of the signature field on the page. `null` when `signaturePlacement` is `new_page`. Base size before scaling: - Width: 219 points - Height: 58 points |
| idScanBox | objectnull | Placement of the scanned ID placeholder. `null` unless the field stores ID-scan coordinates, which only applies when `signatureType` is `digital_ink_id_scan`. Base size before scaling: - Width: 218 po |
| signingOrder | integer | The signing turn stored on this field. Only has an effect on a document created with `enableSigningOrder: true`. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/formify-eu/json-schema/formify-eu-template-signature-field-schema.json",
"title": "TemplateSignatureField",
"description": "A signature field as stored on a template, returned by `GET /templates/{templateId}`.\n\nThis is a **read-only** shape. It mirrors `SignatureField`, but describes what the template has saved\nrather than what you may send, so it differs in three ways:\n\n- `signatureType` can additionally be `not_set`, for legacy fields saved before a signature type was\n required. Such a field cannot be posted back unchanged — pick a real type when you create the document.\n- `phoneNumberDeliveryMethod` and `disableInvitationMessage` are never returned: they are not stored on a\n template, they are chosen per document.\n- `signatureBox` is `null` when `signaturePlacement` is `new_page`, and `idScanBox` is `null` unless the\n field has ID-scan coordinates stored.\n\nEvery other value round-trips: you can take a field from here, add the signee's contact details, and pass\nit straight to `POST /docs` as part of `signeeDetails`.",
"x-generated": "2026-11-08",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/formify-eu-openapi.json#/components/schemas/TemplateSignatureField",
"type": "object",
"properties": {
"fullName": {
"type": [
"string",
"null"
],
"description": "What the field is called on the template. Often a **role label** such as `\"Buyer\"` rather than a\nperson, since a template is usually built before its signers are known. Replace it with the real\nname when you create a document from the template."
},
"emailAddress": {
"type": [
"string",
"null"
],
"format": "email",
"description": "Email address of the contact stored on this field, if the template has one."
},
"phoneNumber": {
"type": [
"string",
"null"
],
"description": "Phone number of the contact stored on this field, if the template has one."
},
"signatureType": {
"type": "string",
"enum": [
"digital_ink",
"bankid_identification",
"digital_ink_id_scan",
"face_liveness",
"not_set"
],
"description": "Type of signature / identity verification method stored on the field.\n\n- `digital_ink`: The signee draws their signature using a mouse, touchpad, or finger.\n- `bankid_identification`: The signee signs using Swedish BankID (requires `signatureBankId` capability).\n- `digital_ink_id_scan`: The signee verifies identity with an ID scan and then signs with digital ink (requires `signatureIdScan` capability). A document created from this template will contain an image of the signee's identity document — see the legal basis note on `signatureType` under `POST /docs`.\n- `face_liveness`: The signee verifies identity using an ID scan together with a video selfie biometric liveness check (requires `signatureFaceLiveness` capability).\n- `not_set`: No type is stored on this field. Read-only — choose one of the values above when creating a document from this template."
},
"signaturePlacement": {
"type": "string",
"enum": [
"existing",
"new_page"
],
"default": "existing",
"description": "Whether the signature sits on an existing page (`existing`) or on a signature page appended to the document (`new_page`)."
},
"signatureBox": {
"type": [
"object",
"null"
],
"description": "Placement of the signature field on the page. `null` when `signaturePlacement` is `new_page`.\n\nBase size before scaling:\n- Width: 219 points\n- Height: 58 points",
"properties": {
"page": {
"type": "integer",
"description": "Page number the signature box sits on. The first page has index 0."
},
"x": {
"type": "integer",
"description": "X-coordinate of the signature box, in points."
},
"y": {
"type": "integer",
"description": "Y-coordinate of the signature box, in points."
},
"scale": {
"type": "number",
"format": "float",
"description": "Scale applied to the whole signature field. Between 0.25 and 1.5."
}
}
},
"idScanBox": {
"type": [
"object",
"null"
],
"description": "Placement of the scanned ID placeholder. `null` unless the field stores ID-scan coordinates, which\nonly applies when `signatureType` is `digital_ink_id_scan`.\n\nBase size before scaling:\n- Width: 218 points\n- Height: 138 points",
"properties": {
"page": {
"type": "integer",
"description": "Page number the ID scan placeholder sits on. The first page has index 0."
},
"x": {
"type": "integer",
"description": "X-coordinate of the ID scan placeholder, in points."
},
"y": {
"type": "integer",
"description": "Y-coordinate of the ID scan placeholder, in points."
},
"scale": {
"type": "number",
"format": "float",
"description": "Scale applied to the ID scan placeholder. Between 0.25 and 1.5."
}
}
},
"signingOrder": {
"type": "integer",
"default": 1,
"description": "The signing turn stored on this field. Only has an effect on a document created with `enableSigningOrder: true`."
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/formify-eu-template-signature-field"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.