# Papermint > Invoice PDF API. POST invoice JSON (or a raw Stripe invoice/payment_intent/checkout.session payload) and receive a branded, locale-aware PDF. Deterministic rendering with no headless browser; no invoice data is stored. Key facts for agents integrating on a user's behalf: - Base URL: https://papermint-phi.vercel.app - Auth: `Authorization: Bearer pm_...` (keys are sold at /pricing; $19/mo for 500 PDFs, $49/mo for 5,000) - Free tier: POST /api/preview renders watermarked PDFs with no auth, 60/hour per IP. Ideal for testing an integration before buying. - Validate without rendering: POST /api/v1/validate (free, no auth) returns { valid, issues[] }. - Templates: clean (default), classic, bold, minimal, receipt (80mm dynamic height). - payment.url in the invoice JSON adds a scannable QR code and clickable link to the PDF. - Currencies: any two- or zero-decimal ISO 4217 code. Three-decimal currencies are rejected with a 422. - Machine-readable spec: /openapi.json - Human docs: /docs ## Docs - [API reference](/docs): full schema, examples, error codes - [OpenAPI spec](/openapi.json): OpenAPI 3.1 - [Pricing](/pricing): plans and billing portal ## Important caveats - A PDF is not a structured e-invoice: Germany/France 2026 B2B mandates require XML formats (XRechnung, Factur-X), which Papermint does not produce yet. - Rendering is stateless; nothing sent to the API is persisted.