# FreelanceDesk > Invoicing and billing for software clients. Everything is pay-per-call in USDC on Base (eip155:8453). > No account, no API key, no signup. This host serves JSON in, documents or reports out. ## Paid routes - POST /v1/invoice/render - 0.10 USD - Renders a print-ready A4 invoice as self-contained HTML from structured JSON: seller, buyer, invoice number and dates, line items with per-line tax rates, currency. Line nets, tax breakdown and total are computed server-side with integer cents. - POST /v1/invoice/pdf - 0.10 USD - Renders a print-ready A4 PDF invoice (PDF 1.4, Helvetica) from the same structured JSON: seller, buyer, invoice number and dates, line items with per-line tax rates, currency. Line nets, tax breakdown and total are computed server-side with integer cents. - POST /v1/invoice/validate - 0.05 USD - Checks invoice JSON before it is sent or paid: required parties and number, currency and date formats, due date order, line item ranges, per-line tax rates, duplicate lines and VAT-ID shape. Returns every finding with severity and a JSON path, plus server-computed net, tax and total totals. - POST /v1/invoice/preflight - 0.01 USD - Validates invoice JSON and computes net, tax and total, returning only the blocking errors that would stop a send or a payment. The cheap door to the five-cent full report, which adds every warning and info finding with a JSON path. - GET /freelancedesk - 14.00 USD - FreelanceDesk Pro 1.1.1: Offline single-file invoicing and client tracker for freelancers. One HTML file you keep, no account, no subscription, works with no internet. - GET /documents - 7.00 USD - Freelance Document Pack 1.1.0: Editable contract, statement of work, NDA, welcome pack and invoice templates for independent professionals. ## How to pay Send the request with no payment header. The 402 response carries two rails: - x402 v2: base64 `PAYMENT-REQUIRED` header. Sign the exact EIP-3009 authorization it describes, resend it in `PAYMENT-SIGNATURE`. Success returns `PAYMENT-RESPONSE`. - MPP: `WWW-Authenticate: Payment` challenge (method evm, intent charge). Any MPP client pays it and resends the credential in `Authorization: Payment`. Success returns `Payment-Receipt`. Both settle to 0xfF379dcB34D6A8C1175e4d5Bcd47148b38A0414d in 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 (USD Coin, 6 decimals) through https://facilitator.payai.network. ## Free routes - GET /openapi.json - OpenAPI 3.1 description of every route - GET /pricing - price list for every route (JSON) - GET /.well-known/x402 - machine-readable index (x402 v2) - GET /.well-known/x402.json - the same index at the .json path some buyers probe - GET /.well-known/x402-service.json - service manifest (x402 1.0) - GET /health - "ok" ## Notes - Invoice bodies: seller, client, number, date, currency, items[{description, quantity, unitPrice, taxRate}]. Example and JSON schema are in each 402 response under `extensions.bazaar`. - The POST routes also accept `?json=` when the client cannot send a body. - Totals are computed server-side with integer cents; the validator adds net, tax and total when the invoice has no errors. - Served from https://afraid-butterfly-5236.obtranzat.deno.net.