Product · PDF Signing

PDF signature API

Upload any PDF, place signature fields, collect legally binding signatures via tokenized links, and receive a PKCS#7-sealed document. Any byte-level change after signing is detectable by any PDF reader — no special software required.

Start free →

How the PDF signature API works

1

Upload the PDF

POST the PDF as multipart/form-data. The API accepts any standard PDF up to 25MB. No pre-processing, conversion, or form flattening required.

2

Specify fields

Pass field coordinates (page, x, y, width, height) with each field assigned to a signer. Use the drag-drop placer for visual placement or pass coordinates from your PDF generator.

3

Send to signers

POST to /send. Each signer receives a unique, tokenized link. They verify identity with OTP and sign on a hosted page — no account required.

4

Receive the sealed PDF

On completion: fields are flattened into the PDF, an audit certificate page is appended, and a PKCS#7 digital signature is applied. Your webhook fires, the sealed PDF is available for download.

PDF signature API — minimal curl example
# Upload PDF, declare signer, place signature field
ENV=$(curl -s -X POST https://api.getsigned.app/v1/envelopes \
  -H "Authorization: Bearer $TOKEN" \
  -F "document=@contract.pdf;type=application/pdf" \
  -F 'signers=[{"name":"Jamie Lee","email":"jamie@client.io"}]' \
  -F 'fields=[{"type":"signature","page":1,"x":300,"y":580,"w":200,"h":60}]' \
  | jq -r .id)

# Send — Jamie receives a tokenized signing link by email
curl -X POST https://api.getsigned.app/v1/envelopes/$ENV/send \
  -H "Authorization: Bearer $TOKEN"

# envelope.completed webhook fires → download the sealed PDF:
curl -o signed.pdf https://api.getsigned.app/v1/envelopes/$ENV/document \
  -H "Authorization: Bearer $TOKEN"

Supported field types and signature model

Visible signature field
A graphical signature (drawn, typed, or uploaded) is placed at the specified coordinates on the specified page. The field is flattened into the PDF on completion.
✓ Included
Initials field
Compact initials placed at the specified coordinates. Common for page-by-page acknowledgment in multi-page agreements.
✓ Included
Date field
Auto-populated with the signer's signing date at the time of signing. Read-only to the signer.
✓ Included
Text field
Free-form text entry by the signer — title, address, or any typed input required alongside a signature.
✓ Included
Service PKCS#7 seal
A single CA-issued digital signature applied to the entire PDF after all fields are flattened. Proves the document left the service unmodified. Verifiable in any PDF reader.
✓ Included
Per-signer PKI certificate
Individual qualified certificates per signer. Not supported — not required under ESIGN/UETA/PIPEDA for commercial e-signatures.
✕ Not supported

Verifying a signed PDF

Anyone with the sealed PDF can verify it — no API access, no account, no special software beyond a standard PDF reader.

1

Open the sealed PDF in Adobe Acrobat or any PDF reader with signature support.

2

Navigate to the Signatures panel. The service signature appears with the signing certificate details.

3

The panel shows "Signature is VALID" if the document is unmodified since sealing.

4

If any byte — including metadata, a pixel, or a character — was changed after sealing, the panel shows "Signature is INVALID."

Frequently asked questions

What is a PDF signature API?

A PDF signature API is a web service that accepts a PDF file, collects electronic signatures on it via a hosted signing flow, and returns a digitally sealed document that proves the PDF has not been modified since signing. GetSigned's PDF signature API accepts any standard PDF, places fields at coordinates you specify, sends signing links to each signer, and returns a PKCS#7-sealed document with an embedded audit certificate page.

What makes the signed PDF tamper-evident?

After all signers complete and their signatures are flattened into the PDF, GetSigned applies a CA-issued PKCS#7 digital signature to the entire document. This seal covers every byte of the file. If any byte is changed after sealing — a character, a pixel, metadata — the digital signature becomes invalid. This is verifiable in Adobe Acrobat, Adobe Reader, and any PDF reader that supports digital signature validation. No special software beyond a standard PDF reader is required to verify the document.

Can I sign any PDF, or does it need to be a special format?

Any standard PDF works — including PDFs generated by Word, Google Docs, LaTeX, WeasyPrint, QuestPDF, or any other PDF generator. The API accepts PDFs up to 25MB. PDFs that are already digitally signed, password-protected, or encrypted cannot be processed until the existing signature or protection is removed. Scanned PDFs (image-only PDFs without a text layer) are accepted — the signature fields are placed as overlays and the audit certificate is appended.

How do I specify where signature fields go?

Two ways: (1) Pass x, y, width, height, and page coordinates in the API request. Coordinates are in PDF points (72 points per inch), with the origin at the bottom-left of the page — the standard PDF coordinate system. (2) Use the drag-drop field placer UI to visually position fields on an uploaded PDF and save the layout as a reusable template.

Does the API support multiple signers on one PDF?

Yes. Declare multiple signers and assign each field to a specific signer. Set routing_order to control the sequence: same value means parallel (all sign simultaneously); incrementing values mean sequential (next signer gets their link only after the previous completes). All signers' signatures are flattened into the final document before the service seal is applied.

How do I download the signed PDF from the API?

Make a GET request to /v1/envelopes/{id}/document with your bearer token. The response is the sealed PDF as application/pdf binary. This endpoint is only available when the envelope is in completed status — earlier attempts return a 409 indicating signing is still in progress. The best practice is to download in response to the envelope.completed webhook rather than polling the status endpoint.

Related: Signable PDF API · Document signing API · Audit trail guide · E-sig vs digital signature

Start signing PDFs today

Free tier includes 25 envelopes per month. PKCS#7 sealing and audit trails on every document.

Get free API keys →