---
title: "Update signer"
method: PUT
path: "/v1/accounts/{accountId}/signers/{signerId}"
tags: ["Signers"]
---

# Update signer

`PUT /v1/accounts/{accountId}/signers/{signerId}`

## Request

- Base URL: `https://api.assinafy.com.br`
- URL: `https://api.assinafy.com.br/v1/accounts/{accountId}/signers/{signerId}`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`

Update a signer's information. Only the fields sent change; send just the ones you are changing.

**Clearing a field:** `null` or `"` clears `email`, `whatsapp_phone_number` and `government_id` (`whatsapp_phone_number` is stored as `null` either way; the other two keep the value sent). `full_name` cannot be cleared.

**Verification integrity:** `email` / `whatsapp_phone_number` cannot be changed while the signer has verified that channel on an in-flight (not yet certificated) document — the response is `400` naming the offending document(s). Already-certificated documents do not block updates. Changing a channel that has *unverified* in-flight requests rotates their access/verification codes (invalidating previously sent links/OTPs); use the resend endpoint to redeliver. `full_name` can always be updated.

[Copy as Markdown](https://api.assinafy.com.br/v1/docs/markdown?method=put&path=%2Fv1%2Faccounts%2F%7BaccountId%7D%2Fsigners%2F%7BsignerId%7D) [Open in ChatGPT](https://chatgpt.com/?q=Read%20the%20API%20documentation%20at%20https%3A%2F%2Fapi.assinafy.com.br%2Fv1%2Fdocs%2Fmarkdown%3Fmethod%3Dput%26path%3D%252Fv1%252Faccounts%252F%257BaccountId%257D%252Fsigners%252F%257BsignerId%257D%20and%20help%20me%20integrate%20this%20endpoint.) [Open in Claude](https://claude.ai/new?q=Read%20the%20API%20documentation%20at%20https%3A%2F%2Fapi.assinafy.com.br%2Fv1%2Fdocs%2Fmarkdown%3Fmethod%3Dput%26path%3D%252Fv1%252Faccounts%252F%257BaccountId%257D%252Fsigners%252F%257BsignerId%257D%20and%20help%20me%20integrate%20this%20endpoint.)

## Path parameters

- `accountId` string, required
- `signerId` string, required

## Request body

- object
  - `full_name` string
  - `email` string, email: Can't be changed or cleared while the signer has verified it on an in-flight document (`400`).
  - `whatsapp_phone_number` string: E.164; normalized on save, and compared after normalizing, so the same number in another format is not a change. Can't be changed or cleared while the signer has verified it on an in-flight document (`400`).
  - `government_id` string: Signer's CPF (11 digits) or CNPJ (14 characters; may be alphanumeric). Formatting is accepted and the value is normalized on save.

## Response `200`

The updated signer

- object: Standard success wrapper. Operations add their own `data`.
  - `status` integer: HTTP status code, mirrored in the body.
  - `message` string: Human-readable message; empty on success.
  - `data` Signer: A signing party belonging to a workspace account.
    - `resource` string: Present in single-resource responses.
    - `id` string
    - `full_name` string
    - `email` string, email, nullable
    - `whatsapp_phone_number` string, nullable: E.164 format; normalized on save.
    - `government_id` string, nullable: Signer's normalized CPF (11 digits) or CNPJ (14 characters; may be alphanumeric).
    - `has_accepted_terms` boolean

## Other responses

- `400`: One or more fields failed validation.
- `401`: Missing or invalid credentials.
- `404`: The requested resource does not exist.
- `500`: Unexpected server error.

## Changes

- **2026-10-06** `f231647afa04`: 1 info
  - added the optional property `allOf[subschema #2]/data/government_id` to the response with the `200` status

[Operation history](https://skmtc.dev/assinafy/apis/assinafy-api-reference/changes/v1/accounts/:accountId/signers/:signerId/put.md)

---

[API](https://skmtc.dev/assinafy/apis/assinafy-api-reference.md) - [All operations](https://skmtc.dev/assinafy/apis/assinafy-api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/assinafy/apis/assinafy-api-reference/revisions/3672991376b6?raw)
