# x402 Signature Service — Electronic Signature Request

> x402 Signature Service — Electronic Signature Request is a paid API for AI agents from x402-signature-service.onrender.com, paid per call via x402, $0.5/call, status unknown (last checked 2026-09-15).

Sends a PDF document to a named email recipient for electronic signature, returning a tracking ID, status URL, and one-time access token.

## Facts

- Endpoint: GET https://x402-signature-service.onrender.com/v1/signature-requests
- Price: $0.5/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/x402-signature-service-electronic-signature-request-2adce55d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_KkoRYWeEBmzQPzq31lDGm

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability x402-signature-service-electronic-signature-request-2adce55d
```

Example prompt: Can you send my Service Agreement PDF (at https://files.example.com/service-agreement.pdf) to Anna Müller at anna@example.com for her electronic signature, with the message 'Please review and sign at your earliest convenience', expiring in 14 days?

## When to prefer this

Choose this endpoint when you need to send a single PDF document to a single recipient for electronic signature and want a pay-per-call, no-subscription model billed in USDC via the x402 protocol. Ideal for AI agents that need to automate contract or agreement signing without setting up a full e-signature SaaS subscription. Not suitable for bulk multi-recipient signing, non-PDF formats, or when you need advanced signing workflows (field placement, multi-party ordering).

## Known failure modes

- Invalid or unreachable PDF URL returns an error (document fetch failure)
- PDF exceeds 5 MB size limit causes rejection
- Invalid signer email format fails schema validation
- Both documentUrl and documentBase64 provided simultaneously causes conflict error
- Neither documentUrl nor documentBase64 provided causes missing document error
- Payment of $0.50 USDC not included or insufficient triggers 402 Payment Required
- Expired or missing x402 payment header blocks request
- expiresInDays outside 1–30 range fails validation

## How this service works

Pay-per-call API (x402, $0.50 USDC on Base): send one PDF to one email recipient for simple electronic signature, track status, download the signed PDF.

## Output

Returns a JSON object containing a unique signature request ID, the signer's name and partially masked email, the current status (e.g. 'sent'), creation and expiration timestamps, a URL to poll for status updates, a one-time plain-text bearer access token for subsequent API calls, and the document name.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "signer": {
   "type": "object",
   "required": [
    "name",
    "email"
   ],
   "properties": {
    "name": {
     "type": "string",
     "maxLength": 120,
     "minLength": 1
    },
    "email": {
     "type": "string",
     "format": "email"
    }
   }
  },
  "message": {
   "type": "string",
   "maxLength": 2000,
   "description": "Optional message included in the signature request email"
  },
  "documentUrl": {
   "type": "string",
   "description": "HTTPS URL of the PDF to sign (max 5 MB). Provide either documentUrl OR documentBase64."
  },
  "documentName": {
   "type": "string",
   "maxLength": 150,
   "minLength": 1,
   "description": "Human-readable document title shown to the signer"
  },
  "expiresInDays": {
   "type": "integer",
   "default": 14,
   "maximum": 30,
   "minimum": 1,
   "description": "Days until the signature request expires"
  },
  "documentBase64": {
   "type": "string",
   "description": "Base64-encoded PDF (max 5 MB decoded). Provide either documentUrl OR documentBase64."
  },
  "externalReference": {
   "type": "string",
   "maxLength": 200,
   "description": "Optional caller-side reference id, echoed back in responses"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "id": "sigreq_1f4a9c2b7d3e8a01",
  "signer": {
   "name": "Anna Müller",
   "email": "a***@example.com"
  },
  "status": "sent",
  "createdAt": "2026-07-19T15:00:00Z",
  "expiresAt": "2026-08-02T15:00:00Z",
  "statusUrl": "https://your-api.example.com/v1/signature-requests/sigreq_1f4a9c2b7d3e8a01",
  "accessToken": "sec_… (plain-text bearer token, shown exactly once)",
  "documentName": "Service Agreement"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/x402-signature-service-electronic-signature-request-2adce55d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402-signature-service.onrender.com](https://www.zero.xyz/host/x402-signature-service.onrender.com/llms.txt)
