# PaidPilot Invoice API

> PaidPilot Invoice API is a paid API for AI agents from paidpilot-invoice-api.dario-9fa.workers.dev, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-11).

Generates a professional invoice PDF from structured JSON data, billed per-PDF in USDC with no account or API key required.

## Facts

- Endpoint: POST https://paidpilot-invoice-api.dario-9fa.workers.dev/v1/invoice.pdf?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/paidpilot-invoice-api-f2b60b7a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Od_9wcLEftdOgvA7oOhML

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 paidpilot-invoice-api-f2b60b7a -d '<json body>'
```

Example prompt: Generate an invoice PDF for my freelance design work: seller is Luna Creative Studio (luna@lunacreative.io), buyer is Apex Corp (billing@apexcorp.com), invoice number INV-2024-042, issued 2024-07-01, due 2024-07-31, USD currency, one line item — 'Brand Identity Design' for 1 unit at $2500, 8.5% tax rate, and add a note saying 'Thank you for your business.'

## When to prefer this

Choose this endpoint when you need to generate a one-off invoice PDF programmatically without creating an account or managing API keys, and want to pay per document in USDC via the x402 protocol. It is ideal for AI agents, automation workflows, or headless applications that need to produce professional billing documents on demand with full control over line items, tax, discount, and party details.

## Known failure modes

- Missing required fields (seller.name, buyer.name, or line_items) returns a 4xx validation error
- Invalid date format (not YYYY-MM-DD) causes a schema validation failure
- line_items array is empty or exceeds 200 items triggers a validation error
- Payment not completed or x402 payment rejected results in a 402 Payment Required response
- Malformed email format in seller or buyer fields causes rejection
- tax_rate outside 0–100 or unit_price outside allowed range returns validation error

## How this service works

JSON in, invoice PDF out. Pay per PDF in USDC over x402. No accounts, no API keys.

## Output

A binary PDF file returned directly in the HTTP response body, representing a fully rendered invoice document with seller/buyer details, line items, subtotals, discounts, tax, totals, dates, invoice number, and any notes or payment instructions provided.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "buyer": {
   "type": "object",
   "required": [
    "name"
   ],
   "properties": {
    "name": {
     "type": "string",
     "maxLength": 120,
     "minLength": 1
    },
    "email": {
     "type": "string",
     "format": "email",
     "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
     "maxLength": 254
    },
    "phone": {
     "type": "string",
     "maxLength": 40
    },
    "tax_id": {
     "type": "string",
     "maxLength": 60
    },
    "address": {
     "type": "string",
     "maxLength": 400
    }
   }
  },
  "notes": {
   "type": "string",
   "maxLength": 2000
  },
  "seller": {
   "type": "object",
   "required": [
    "name"
   ],
   "properties": {
    "name": {
     "type": "string",
     "maxLength": 120,
     "minLength": 1
    },
    "email": {
     "type": "string",
     "format": "email",
     "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
     "maxLength": 254
    },
    "phone": {
     "type": "string",
     "maxLength": 40
    },
    "tax_id": {
     "type": "string",
     "maxLength": 60
    },
    "address": {
     "type": "string",
     "maxLength": 400
    }
   }
  },
  "currency": {
   "type": "string",
   "default": "USD"
  },
  "discount": {
   "type": "number",
   "maximum": 1000000000,
   "minimum": 0,
   "description": "absolute amount subtracted before tax"
  },
  "due_date": {
   "type": "string",
   "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
  },
  "tax_rate": {
   "type": "number",
   "maximum": 100,
   "minimum": 0,
   "description": "percent, e.g. 7.5"
  },
  "issue_date": {
   "type": "string",
   "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
  },
  "line_items": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "description",
     "quantity",
     "unit_price"
    ],
    "properties": {
     "quantity": {
      "type": "number",
      "maximum": 1000000,
      "exclusiveMinimum": 0
     },
     "unit_price": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0
     },
     "description": {
      "type": "string",
      "maxLength": 300,
      "minLength": 1
     }
    }
   },
   "maxItems": 200,
   "minItems": 1
  },
  "invoice_number": {
   "type": "string",
   "maxLength": 64,
   "minLength": 1
  },
  "payment_instructions": {
   "type": "string",
   "maxLength": 1000
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/paidpilot-invoice-api-f2b60b7a/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from paidpilot-invoice-api.dario-9fa.workers.dev](https://www.zero.xyz/host/paidpilot-invoice-api.dario-9fa.workers.dev/llms.txt)
