← Files DocuSealARCHIVED FILE

skills/docuseal-code/references/api/update-a-submitter.md

9.63 KB · Oct 8, 2026 · 00:04 UTC

↓ Download file

See the change to this file →

# Update a submitter

`PUT /submitters/{id}`
The API endpoint allows you to update submitter details, pre-fill or update field values and re-send emails.


## Parameters

| Name | In | Type | Required | Description |
|---|---|---|---|---|
| `id` | path | `integer` | yes | The unique identifier of the submitter. |

## Request Body

| Property | Type | Required | Description |
|---|---|---|---|
| `name` | `string` | no | The name of the submitter. |
| `email` | `string` | no | The email address of the submitter. Example: `john.doe@example.com` |
| `phone` | `string` | no | The phone number of the submitter, formatted according to the E.164 standard. Example: `+1234567890` |
| `values` | `object` | no | An object with pre-filled values for the submission. Use field names for keys of the object. For more configurations see `fields` param. |
| `external_id` | `string` | no | Your application-specific unique string key to identify this submitter within your app. |
| `send_email` | `boolean` | no | Set `true` to re-send signature request emails. |
| `send_sms` | `boolean` | no | Set `true` to re-send signature request via phone number SMS. Default: `false` |
| `reply_to` | `string` | no | Specify Reply-To address to use in the notification emails. |
| `completed` | `boolean` | no | Pass `true` to mark submitter as completed and auto-signed via API. |
| `metadata` | `object` | no | Metadata object with additional submitter information. Example: `{ "customField": "value" }` |
| `completed_redirect_url` | `string` | no | Submitter specific URL to redirect to after the submission completion. |
| `require_phone_2fa` | `boolean` | no | Set to `true` to require phone 2FA verification via a one-time code sent to the phone number in order to access the documents. Default: `false` |
| `require_email_2fa` | `boolean` | no | Set to `true` to require email 2FA verification via a one-time code sent to the email address in order to access the documents. Default: `false` |
| `message` | `object` | no | Custom signature request email message. |
| `message.subject` | `string` | no | Custom signature request email subject. |
| `message.body` | `string` | no | Custom signature request email body. Can include the following variables: {{template.name}}, {{submitter.link}}, {{account.name}}. |
| `fields` | `array[]` | no | A list of configurations for template document form fields. |
| `fields[].name` | `string` | yes | Document template field name. Example: `First Name` |
| `fields[].default_value` | `string / integer / number / boolean / array` | no | Default value of the field. Use base64 encoded file or a public URL to the image file to set default signature or image fields. Example: `Acme` |
| `fields[].readonly` | `boolean` | no | Set `true` to make it impossible for the submitter to edit predefined field value. Default: `false` |
| `fields[].required` | `boolean` | no | Set `true` to make the field required. |
| `fields[].validation` | `object` | no | Field validation rules. |
| `fields[].validation.pattern` | `string` | no | HTML field validation pattern string based on https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/pattern specification. Example: `[A-Z]{4}` |
| `fields[].validation.message` | `string` | no | A custom error message to display on validation failure. |
| `fields[].validation.min` | `number / string` | no | Minimum allowed number value or date depending on field type. |
| `fields[].validation.max` | `number / string` | no | Maximum allowed number value or date depending on field type. |
| `fields[].validation.step` | `number` | no | Increment step for number field. Pass 1 to accept only integers, or 0.01 to accept decimal currency. |
| `fields[].preferences` | `object` | no | Field display preferences. |
| `fields[].preferences.font_size` | `integer` | no | Font size of the field value in pixels. Example: `12` |
| `fields[].preferences.font_type` | `string` | no | Font type of the field value. Values: `bold`, `italic`, `bold_italic`. |
| `fields[].preferences.font` | `string` | no | Font family of the field value. Values: `Times`, `Helvetica`, `Courier`. |
| `fields[].preferences.color` | `string` | no | Font color of the field value. Example: `black` Default: `black` |
| `fields[].preferences.background` | `string` | no | Field box background color. Example: `black` |
| `fields[].preferences.align` | `string` | no | Horizontal alignment of the field text value. Default: `left` Values: `left`, `center`, `right`. |
| `fields[].preferences.valign` | `string` | no | Vertical alignment of the field text value. Default: `center` Values: `top`, `center`, `bottom`. |
| `fields[].preferences.format` | `string` | no | The data format for different field types. - Date field: accepts formats such as DD/MM/YYYY (default: MM/DD/YYYY). - Signature field: accepts drawn, typed, drawn\_or\_typed (default), or upload. - Number field: accepts currency formats such as usd, eur, gbp. Example: `DD/MM/YYYY` |
| `fields[].preferences.price` | `number` | no | Price value of the payment field. Only for payment fields. Example: `99.99` |
| `fields[].preferences.currency` | `string` | no | Currency value of the payment field. Only for payment fields. Default: `USD` Values: `USD`, `EUR`, `GBP`, `CAD`, `AUD`, `CHF`, `SEK`. |
| `fields[].preferences.mask` | `integer / boolean` | no | Set `true` to make sensitive data masked on the document. Default: `false` |
| `fields[].preferences.reasons` | `array[]` | no | An array of signature reasons to choose from. |

## Code Examples

### cURL

```curl
curl --request PUT \
  --url https://api.docuseal.com/submitters/500001 \
  --header 'X-Auth-Token: API_KEY' \
  --header 'content-type: application/json' \
  --data '{"email":"john.doe@example.com","fields":[{"name":"First Name","default_value":"Acme"}]}'
```
### CLI

```shell
docuseal submitters update 500001 \
  -d "email=john.doe@example.com" \
  -d "fields[0][name]=First Name" \
  -d "fields[0][default_value]=Acme"
```
### Node.js (fetch)

```javascript
const fetch = require("node-fetch");

const resp = await fetch("https://api.docuseal.com/submitters/500001", {
  method: "PUT",
  headers: {
    "X-Auth-Token": "API_KEY"
  },
  body: JSON.stringify({
    email: "john.doe@example.com",
    fields: [
      {
        name: "First Name",
        default_value: "Acme"
      }
    ]
  })
});

const submitter = await resp.json();
```
### JavaScript SDK

```javascript
const docuseal = require("@docuseal/api");

docuseal.configure({ key: "API_KEY", url: "https://api.docuseal.com" });

const submitter = await docuseal.updateSubmitter(500001, {
  email: "john.doe@example.com",
  fields: [
    {
      name: "First Name",
      default_value: "Acme"
    }
  ]
});
```
### TypeScript SDK

```typescript
import docuseal from "@docuseal/api";

docuseal.configure({ key: "API_KEY", url: "https://api.docuseal.com" });

const submitter = await docuseal.updateSubmitter(500001, {
  email: "john.doe@example.com",
  fields: [
    {
      name: "First Name",
      default_value: "Acme"
    }
  ]
});
```
### Python SDK

```python
from docuseal import docuseal

docuseal.key = "API_KEY"
docuseal.url = "https://api.docuseal.com"

docuseal.update_submitter(500001, {
  "email": "john.doe@example.com",
  "fields": [
    {
      "name": "First Name",
      "default_value": "Acme"
    }
  ]
})
```
### Ruby SDK

```ruby
require "docuseal"

Docuseal.key = ENV["DOCUSEAL_API_KEY"]
Docuseal.url = "https://api.docuseal.com"

Docuseal.update_submitter(500001, {
  email: "john.doe@example.com",
  fields: [
    {
      name: "First Name",
      default_value: "Acme"
    }
  ]
})
```
### PHP SDK

```php
$docuseal = new \Docuseal\Api('API_KEY', 'https://api.docuseal.com');

$docuseal->updateSubmitter(500001, [
  'email' => 'john.doe@example.com',
  'fields' => [
    [
      'name' => 'First Name',
      'default_value' => 'Acme'
    ]
  ]
]);
```
### Go SDK

```go
ds := docuseal.NewClient("API_KEY", docuseal.WithBaseURL("https://api.docuseal.com"))

submitter, err := ds.UpdateSubmitter(context.Background(), 500001, &docuseal.UpdateSubmitterParams{
	Email: "john.doe@example.com",
	Fields: []*docuseal.UpdateSubmitterFieldParams{
		{
			Name: "First Name",
			Value: "Acme",
		},
	},
})
```
### C# SDK

```csharp
var client = new DocusealClient("API_KEY", "https://api.docuseal.com");

var submitter = await client.UpdateSubmitterAsync(500001, new UpdateSubmitterParams
{
    Email = "john.doe@example.com",
    Fields = [
        new UpdateSubmitterFieldParams
        {
            Name = "First Name",
            Value = "Acme"
        },
    ]
});
```
### Java SDK

```java
var client = new DocusealClient("API_KEY", "https://api.docuseal.com");

var submitter = client.updateSubmitter(500001, UpdateSubmitterParams.builder()
    .email("john.doe@example.com")
    .fields(List.of(
      UpdateSubmitterFieldParams.builder()
        .name("First Name")
        .value("Acme")
        .build()))
    .build());
```

## Response Example

```json
{
  "id": 1,
  "submission_id": 12,
  "uuid": "0954d146-db8c-4772-aafe-2effc7c0e0c0",
  "email": "submitter@example.com",
  "slug": "dsEeWrhRD8yDXT",
  "sent_at": "2023-12-14T15:45:49.011Z",
  "opened_at": "2023-12-14T15:48:23.011Z",
  "completed_at": "2023-12-10T15:49:21.701Z",
  "declined_at": null,
  "created_at": "2023-12-14T15:48:17.173Z",
  "updated_at": "2023-12-14T15:50:21.799Z",
  "name": "John Doe",
  "phone": "+1234567890",
  "status": "completed",
  "external_id": null,
  "metadata": {},
  "preferences": {},
  "values": [
    {
      "field": "Full Name",
      "value": "John Doe"
    }
  ],
  "documents": [],
  "role": "First Party",
  "embed_src": "https://docuseal.com/s/pAMimKcyrLjqVt"
}
```

## Related Guides

- [Pre-fill PDF document form fields with API](pre-fill-pdf-document-form-fields-with-api.md)

SHA-256: e2f5d86f3221be4392559d7323af81227d269690df0477d7920d63e5cbbfa0eb