Receipt Normalizer

Turn a receipt, invoice, or order confirmation into a canonical structured purchase record. $0.03 per request.

What it does

Send a PDF receipt/invoice/order confirmation. Get back a fixed-shape purchase record — merchant, line items, subtotal/tax/shipping/total, order ID, date, payment method — suitable for an agent's own bookkeeping or reconciliation, independent of the source document's original layout.

Endpoint

MethodPOST
Path/normalize
Content-Typemultipart/form-data

Fields

fieldrequireddescription
fileyesThe receipt/invoice PDF, max 10MB

Example

curl -X POST https://receipt-normalizer.pdfextractapi.workers.dev/normalize \
  -F "file=@receipt.pdf"

Example response

{
  "merchant": { "name": "Acme Supplies Ltd", "url": null },
  "order_id": "INV-2041",
  "purchase_date": "2026-08-01",
  "currency": "GBP",
  "line_items": [
    { "description": "Widget A", "quantity": 10, "unit_price": 5.00, "total_price": 50.00 }
  ],
  "subtotal": 100.00,
  "tax": 0,
  "shipping": 8.00,
  "total": 108.00,
  "payment_method": null
}

Errors

Errors return a non-200 status with { "error": { "code": "...", "message": "..." } }. Common codes: missing_file, file_too_large, invalid_file, corrupted_file, password_protected, no_text_layer (scanned PDFs aren't supported yet).

Payment

This endpoint is paid per-request via the x402 protocol (HTTP 402 + USDC). Unpaid requests receive a 402 response with payment instructions.

Try it in your browser

Upload a receipt PDF below and submit — you'll be prompted to connect a wallet and pay $0.03, then see the result.