---
title: "Add static text to a document"
url: "https://docs.signnow.com/docs/add-static-text-to-document"
type: "page"
section: "Documentation"
slug: "add-static-text-to-document"
---

# Add static text to a document

# How to add static text to a document

This guide explains how to add static text to PDF or Word documents using the SignNow API. Use this method to include important information that signers can see but won’t be able to change.

## The scenario

- **Document:** `Laptop_Agreement.pdf`
- **Signer 1 (Employee):** Enters their name, department, and signature on **Page 1**.
- **Signer 2 (IT Manager):** Reviews the data on **Page 2**. Crucial information (like the laptop serial number, asset ID, and release date)  is added as **static text** via API.

---

## Before you begin

1. [Create an application](/docs/account#create-your-first-application) in your API dashboard.
2. [Authenticate API requests](/docs/authentication) using your preferred authentication method.

## Step 1. Upload the document

First, upload the `Laptop_Agreement.pdf` to SignNow to generate a `document_id`.

**Request example**

```bash
curl --request POST \
  --url https://api.signnow.com/document \
  --header 'Authorization: Bearer {{access_token}}' \
  --header 'Content-Type: multipart/form-data' \
  --form 'file=@"/path/to/Laptop_Agreement.pdf"'
```


## Step 2. Add fillable fields and static text

We can define the interactive elements (fillable fields) and the read-only data (static text) in **one request**.

- **`fields`**: Adds fillable text fields and a signature field for the Employee (Page 1) and signature field for the Manager (Page 2).
- **`texts`**: Adds the `asset ID`, `serial number`, and `release date` to Page 2. The data parameter contains the pre-filled static text.

Learn more about [fields](/docs/fields).

> The `page_number` parameter uses a 0-based index. To add items to Page 2, use `page_number: 1`.

Use the [Edit document](/docs/request-payments/operations/put-document-document_id) request and document ID from the previous response.

**Request example**

```bash
curl --request PUT \
  --url https://api.signnow.com/document/{{document_id}} \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer {{access_token}}' \
  --data-raw '{
    "fields": [
      {
        "type": "text",
        "role": "Employee",
        "page_number": 0,
        "x": 150,
        "y": 585,
        "width": 103,
        "height": 12,
        "required": true,
        "name": "employee_department"
      },
      {
        "type": "text",
        "page_number": 0,
        "x": 198,
        "y": 555,
        "width": 103,
        "height": 12,
        "required": true,
        "name": "employee_name",
        "role": "Employee"
      },
      {
        "type": "signature",
        "page_number": 0,
        "x": 198,
        "y": 616,
        "width": 134,
        "height": 24,
        "required": true,
        "name": "employee_signature",
        "role": "Employee"
      },
      {
        "type": "signature",
        "page_number": 1,
        "x": 206,
        "y": 476,
        "width": 134,
        "height": 24,
        "required": true,
        "name": "manager_signature",
        "role": "Manager"
      }
    ],
    "texts": [
      {
        "data": "11/01/2025",
        "page_number": 1,
        "x": 173,
        "y": 122,
        "font": "Arial",
        "size": 12
      },
      {
        "data": "12345",
        "page_number": 1,
        "x": 257,
        "y": 254,
        "font": "Arial",
        "size": 12
      },
      {
        "data": "12468",
        "page_number": 1,
        "x": 260,
        "y": 307,
        "font": "Arial",
        "size": 12
      }
    ]
  }'
```

## Step 3. Subscribe to the document completion event

Before sending the invite, set up a webhook. This instructs SignNow to automatically ping your server when the document is fully signed by both parties.

- **Event:** `document.complete` triggers when the final signature is applied.
- **Entity ID**: Enter the ID of the agreement.
- **Action**: Should be set to `callback`.
- **Callback URL:** Replace `https://your-server.com/hook` with the URL of your server that will receive the callback.

> Learn more about SignNow [webhooks](/docs/guides-webhooks).

Use the [Create event subscription](/docs/basic-auth/operations/create-event-subscription) request.

**Request example**

```bash
curl --request POST \
  --url https://api.signnow.com/v2/event-subscriptions \
  --header 'Authorization: Bearer {{access_token}}' \
  --header 'Content-Type: application/json' \
  --data '{
  "event": "document.complete",
  "entity_id": "{{document_id}}",
  "action": "callback",
  "attributes": {
    "callback": "https://your-server.com/hook",
    "use_tls_12": true,
    "include_metadata": true
  }
}'
```

## Step 4. Send the invite

Send a single API call to invite both users. Use the `order` parameter to enforce the workflow:

1. **Employee (Order 1)** receives the invite first.
2. Once they finish, the system automatically sends the invite to the **IT Manager (Order 2)**.

Use the [Invite to sign](/docs/document-field-invite/operations/post-field_invite) request.

```bash
curl --request POST \
  --url https://api.signnow.com/document/{{document_id}}/invite \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer {{access_token}}' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "document_id": "{{document_id}}",
  "to": [
    {
      "email": "employee@company.com",
      "role": "Employee",
      "order": 1,
      "subject": "Action Required: Sign Your Equipment Agreement",
      "message": "Review and sign the attached agreement acknowledging receipt of your new laptop.",
      "redirect_uri": "https://company.com/success"
    },
    {
      "email": "manager@company.com",
      "role": "Manager",
      "order": 2,
      "subject": "Approval Needed: Asset Handover",
      "message": "Verify the asset details and sign to authorize the release.",
      "redirect_uri": "https://company.com/dashboard"
    }
  ],
  "from": "admin@company.com"
}'
```

This is how the agreement will appear for the IT manager:

![static_text_result.png](/reference-assets/images/use_cases_all/static_text_result.png)

As shown, the release date, asset ID, and serial number are prefilled with static text.

The IT manager’s signature field remains editable.

## Step 5. Download the signed document

Once both parties have signed, download the final PDF. It will contain the employee's input, the manager's signature, and the static text injected in **Step 2**.

Use the [Download document](/docs/document/operations/download-document) request.

**Request example**

```bash
curl --request GET \
  --url https://api.signnow.com/document/{{document_id}}/download \
  --header 'Accept: application/pdf' \
  --header 'Authorization: Bearer {{access_token}}'
```



---
*Full page: https://docs.signnow.com/docs/add-static-text-to-document*
