> ## Documentation Index
> Fetch the complete documentation index at: https://paperplane-justin-winter-s-projects.vercel.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> What's changed in paperplane.

<Update label="2026-08-28" description="Agent payments, MCP parity, retention">
  * `quote_letter` and `send_letter` (MCP) and `POST /v1/quotes` / `POST /v1/orders`
    (REST) accept an **`upload_key`** — quote or send a PDF you already uploaded
    via `POST /v1/uploads` without base64-encoding it through the call. Closes a
    real gap: a confirmation token only binds content the quote could see, so an
    agent that uploaded a PDF and only ever had `text`/`pdf_url` to quote with
    could never obtain authority to mail what it had uploaded.
  * `send_letter` (MCP) accepts **`credit_code`** — a funded agent can pay from a
    prepaid balance inside the tool call, with no `payment_url` and no human
    payment step. See [Credits](/docs/guides/credits).
  * Idempotency keys are now scoped **per caller** (API key, else account, else
    IP), not globally — reusing a common key string (`"1"`, today's date) can no
    longer hand you back a stranger's order id and its cancel/review tokens. See
    [Send Policies](/docs/guides/send-policies#idempotency-keys).
  * New per-minute throttles on `POST /v1/orders` with `sandbox: true` (20/min)
    and `POST /v1/credits/checkout` (10/min) — both were reachable with no API
    key and no floor before. See [Rate limits](/docs/guides/rate-limits).
  * The document behind an order (the rendered PDF) is now actually deleted
    30 days after delivery by an hourly job, not just documented as deleted —
    the retained record is metadata only. See [Trust &
    data](https://sendpaperplane.com/trust).
</Update>

<Update label="2026-08-18" description="Docs + infra">
  * Mintlify docs site live at **/docs**.
  * Signed outbound **delivery webhooks** (`webhook_url` on orders).
  * `/api/health` boot-config probe.
  * 3 SEO template pages prefilling the composer.
</Update>

<Update label="2026-08-17" description="Security round 2">
  * **Signed capability tokens** (`ppc_`) gate order cancellation and reviews.
  * **PostGrid webhook fails closed** unconditionally.
  * **SSRF guard** on `pdf_url`.
  * Provider errors sanitized (no body leak to callers).
</Update>

<Update label="2026-08-17" description="Round 1">
  * **OpenAPI 3.1** spec at `/v1/openapi.json`, generated from the zod schemas.
  * **MCP** server with quote/send/status tools.
  * Confirmation tokens, per-credential spend caps, order audit trail.
  * Direct-to-storage **uploads** + 30-day sweep.
  * **CSV** bulk import with header mapping.
</Update>

<Update label="2026-08-15" description="Launch">
  * Live: send First-Class, Certified, Certified + e-Return Receipt, Priority mail online.
  * Prepaid **credit codes** (CARD-Act-compliant balances).
  * Content screening (fraud/threats only; lawful demand letters fine).
</Update>
