Save Form Fields
Create or replace form fields on an envelope. Envelope must be in `draft` status. Supported field types: `text`, `textarea`, `email`, `number`, `date`, `checkbox`, `radio`, `dropdown`, `signature`. Text fields accept optional styling (`fontFamily`, `fontWeight`, `fontStyle`, `fontSize`, `textColor`, `multiline`) that is honored when the value is rendered into the final PDF. Checkbox fields support `showLabel`, `checkboxSize`, and `checkboxLabelFontSize`. Radio fields are configured via `radioGroup` (options, layout, direction, spacing, radio size, label font size).
Create or replace form fields on an envelope. Envelope must be in draft status.
Supported field types: text, textarea, email, number, date, checkbox, radio, dropdown, signature.
Text fields accept optional styling (fontFamily, fontWeight, fontStyle, fontSize, textColor, multiline) that is honored when the value is rendered into the final PDF. Checkbox fields support showLabel, checkboxSize, and checkboxLabelFontSize. Radio fields are configured via radioGroup (options, layout, direction, spacing, radio size, label font size).
Authorization
bearerAuth API key as Bearer token. Format: signsecure_xxxxxxxx...
In: header
Path Parameters
The envelope ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api.signpad.signsecure.in/api/v1/envelopes/string/fields" \ -H "Content-Type: application/json" \ -d '{ "fields": [ { "type": "text", "fieldKey": "string", "pageNumber": 1, "x": 0, "y": 0, "width": 0, "height": 0 } ] }'{
"message": "string",
"fields": [
{
"id": "string",
"type": "text",
"fieldKey": "string",
"pageNumber": 0,
"x": 0,
"y": 0,
"width": 0,
"height": 0,
"label": "string",
"required": true,
"readOnly": true,
"recipientId": "string",
"defaultValue": null,
"placeholder": "string",
"options": [
"string"
],
"validation": {
"min": 0,
"max": 0,
"pattern": "string",
"minLength": 0,
"maxLength": 0
},
"multiline": true,
"showLabel": true,
"fontFamily": "sans-serif",
"fontWeight": "normal",
"fontStyle": "normal",
"fontSize": 0,
"textColor": "string",
"checkboxSize": 0,
"checkboxLabelFontSize": 0,
"radioGroup": {
"options": [
{
"value": "string",
"label": "string",
"pageNumber": 0,
"x": 0,
"y": 0,
"width": 0,
"height": 0
}
],
"layout": "AUTO",
"direction": "VERTICAL",
"spacing": 0,
"radioSize": 0,
"labelFontSize": 0
}
}
],
"total": 0
}{
"code": "VALIDATION_ERROR",
"message": "fields.0.type: Invalid enum value",
"requestId": "req_abc123",
"timestamp": "2026-03-11T10:30:00.000Z",
"details": {
"validation": {
"fieldErrors": {
"fields.0.type": [
"Invalid enum value"
]
},
"formErrors": [],
"issues": [
{
"path": "fields.0.type",
"message": "Invalid enum value",
"code": "invalid_enum_value"
}
]
}
}
}{
"code": "UNAUTHORIZED",
"message": "Invalid or missing API key",
"requestId": "req_abc123",
"timestamp": "2026-03-11T10:30:00.000Z"
}{
"code": "FORBIDDEN",
"message": "API key is disabled",
"requestId": "req_abc123",
"timestamp": "2026-03-11T10:30:00.000Z"
}{
"code": "NOT_FOUND",
"message": "Envelope not found",
"requestId": "req_abc123",
"timestamp": "2026-03-11T10:30:00.000Z"
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "An internal error occurred",
"requestId": "req_abc123",
"timestamp": "2026-03-11T10:30:00.000Z"
}