Skip to main content
A preparer is a recipient who fills in document fields before the envelope reaches a signer. This is useful when one person needs to populate document data on behalf of another. For example, a sales representative can enter pricing, dates, or contract terms before the customer receives the document to sign. Preparers can complete text inputs, checkboxes, and dropdowns, but cannot add signatures or initials. After filling in all required fields, the preparer clicks Finish, and the envelope proceeds to the next recipient. In this example, we will create an envelope with:
  • A single PDF document.
  • A preparer (a sales representative) who fills in a text input field with the contract value.
  • A signer (the customer) who receives the document after the preparer has finished and adds their signature.
  • Sequential routing so the preparer acts before the signer.

Prepare your Document

Placeholders are text markers within your PDF document indicating specific locations for items such as signatures, initials, or text inputs. Each placeholder follows the format [[place_key]], where place_key uniquely identifies the specific location within your document. In this example, we have prepared a document containing two placeholders:
  • [[contract_value]] marks the position where the preparer will enter the contract value as a text input.
  • [[customer_signature]] marks the position where the signer will place their signature.
In our document, the placeholders are highlighted in blue for visibility. However, we recommend setting them to white so they remain invisible to recipients.

Create the Envelope

When creating the envelope:
  • Set routing to sequential (this is the default, but it is good practice to set it explicitly).
  • Add recipients in the order they should act. The preparer must appear before the signer in the recipients array.
  • Add place objects to the places array inside the document object:
    • For the preparer’s text input: set type to text_input and recipient_key to the preparer’s key.
    • For the signer’s signature: set type to signature and recipient_key to the signer’s key.
// POST https://api.signatureapi.com/v1/envelopes
// X-API-Key: key_test_...
// Content-Type: application/json

{
    "title": "Sales Agreement",
    "routing": "sequential",
    "documents": [
        {
            "url": "https://example.com/sales-agreement.pdf",
            "places": [
                {
                    "key": "contract_value",
                    "type": "text_input",
                    "recipient_key": "sales_rep"
                },
                {
                    "key": "customer_signature",
                    "type": "signature",
                    "recipient_key": "customer"
                }
            ]
        }
    ],
    "recipients": [
        {
            "key": "sales_rep",
            "type": "preparer",
            "name": "Alex Smith",
            "email": "alex@company.com"
        },
        {
            "key": "customer",
            "type": "signer",
            "name": "Jordan Lee",
            "email": "jordan@customer.com"
        }
    ]
}
The delivery_type for preparers defaults to none, meaning SignatureAPI will not send an invitation email. Your application is responsible for sharing the ceremony URL with the preparer. Set delivery_type to email if you want SignatureAPI to send the invitation automatically.

Result

The preparer (Alex Smith) accesses the document first and fills in the contract value field. After clicking Finish, the envelope proceeds to the signer.
The signer (Jordan Lee) then receives the document with the preparer’s field already filled in and can review the completed details before adding their signature.

Try It

Try this example in Postman using your test API key to create a free, non-binding test envelope. Test envelopes won’t send emails, but you can review them in your dashboard.

Keep Learning