---
title: "Send a sealed PDF you filled to the configured e-signature provider. The response names WHERE to sign by parameter and page only — the positions go to the provider, server to server."
method: POST
path: "/api/v1/esign/request"
tags: ["E-signature"]
---

# Send a sealed PDF you filled to the configured e-signature provider. The response names WHERE to sign by parameter and page only — the positions go to the provider, server to server.

`POST /api/v1/esign/request`

## Request

- Base URL: `https://philforms.com`
- URL: `https://philforms.com/api/v1/esign/request`
- Auth: HTTP bearer

The signed PDF comes back on your webhook_url as { event: "esign.signed", request_id, pdf_base64 }, signed with your webhook secret (X-PDFPhile-Signature), and at GET /api/v1/esign/request/{id}/pdf. A live key only.

## Request body

- object
  - `form_id` string, required
  - `pdf` string, required: The PDF PDFPhile filled, base64 (unmodified — checked against the ledger)
  - `signer` object[], required
    - `name` string, required
    - `email` string, required
  - `webhook_url` string

## Response `201`

{ id, status, sign_at: [{ parameter, label, page }], signer_count }

## Other responses

- `400`: Not a PDFPhile PDF of this form / bad signer
- `422`: The form has no signature field
- `503`: E-signature is not configured on this server

---

[API](https://skmtc.dev/philforms/apis/philforms-api.md) · [All operations](https://skmtc.dev/philforms/apis/philforms-api/llms.txt) · [OpenAPI document](https://skmtc.dev/philforms/apis/philforms-api/revisions/a43bf313729c?raw)
