{"uid":"cap_sTfX2LoO26X84AAommTZI","slug":"netintel-invoice-extractor-validator-4fa0c2cf","name":"NetIntel Invoice Extractor & Validator","description":"Extract structured data from invoice or receipt text using Claude Haiku — returns vendor, invoice number, dates, line items, subtotal, tax, total, and currency as clean JSON so agents can automate accounts-payable, expense processing, and bookkeeping from raw invoice text.","url":"https://netintel-production-440c.up.railway.app/extract/invoice","method":"POST","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"type":"object","properties":{"url":{"type":"string","description":"Publicly reachable invoice URL — PDF, HTML, or plain text; fetched and parsed server-side (e.g. https://vendor.example/invoice-42.pdf). Provide exactly one of text or url."},"text":{"type":"string","description":"The invoice or receipt content ITSELF (email body, OCR dump, pasted PDF text) — not an instruction or question about an invoice. Have only a link? Pass url instead. Text with no extractable invoice data returns an uncharged 400 (NO_INVOICE_CONTENT). Max 10000 words or 50KB."}}},"type":{"type":"string","const":"http"},"method":{"enum":["POST"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"grade":{"type":"string","description":"Letter grade A-F"},"score":{"type":"number","description":"Quality score 0-100"},"cached":{"type":"boolean","description":"True if served from the in-memory cache."},"source":{"type":"object","properties":{"url":{"type":["string","null"]},"type":{"type":"string"},"content_type":{"type":["string","null"]}},"description":"Where the invoice content came from. type is \"text\" or \"url\"; url and content_type (pdf | html | text) are null in text mode."},"invoice":{"type":"object","description":"Parsed invoice fields: vendor, invoice_number, invoice_date, due_date, line_items (array of {description, quantity, unit_price, amount}), subtotal, tax, total, currency. Missing fields are null."},"findings":{"type":"array","items":{"type":"string"},"description":"Informational findings (e.g. no_total_found, totals_mismatch)."},"line_item_count":{"type":"number","description":"Number of line items extracted."},"totals_reconcile":{"type":["boolean","null"],"description":"True if sum(line_items.amount) + tax ≈ total (within $0.02). False if they do not reconcile. Null if total or subtotal is missing."}}}}}}},"responseSchema":{"type":"json","example":{"grade":"A","score":100,"cached":false,"source":{"url":null,"type":"text","content_type":null},"invoice":{"tax":5.58,"total":67.58,"vendor":"Acme Supplies Inc","currency":"USD","due_date":"2024-03-31","subtotal":62,"line_items":[{"amount":50,"quantity":10,"unit_price":5,"description":"Widget A"},{"amount":12,"quantity":1,"unit_price":12,"description":"Shipping"}],"invoice_date":"2024-03-01","invoice_number":"INV-2024-0142"},"findings":[],"line_item_count":2,"totals_reconcile":true}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.1","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"settled","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.1/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_DBvzdxp6Dq7dF8zethfT-","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.02","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Extracts structured invoice data from a document and validates totals, returning a graded report with line items, vendor info, dates, and reconciliation status","exampleAgentPrompt":"Can you extract and validate all the data from this vendor invoice — pull out the line items, totals, tax, due date, and vendor name, and tell me whether the numbers reconcile correctly?","exampleUseCases":null,"resultDescription":"Returns a JSON object with a letter grade (A–F) and numeric score (0–100), the full structured invoice including vendor name, invoice number, dates, currency, subtotal, tax, total, and an array of line items (each with description, quantity, unit price, and amount), plus a totals_reconcile boolean indicating whether the math checks out, a list of findings/discrepancies, and a cached flag.","failureModes":["Invoice document cannot be parsed or is unreadable — returns error or low grade with findings","Totals do not reconcile — returned with totals_reconcile: false and findings describing discrepancies","Missing required fields in invoice (e.g. no due date) — partial extraction with lower score","Payment failure via x402 micropayment — 402 response before processing begins","Unsupported invoice format — error response"],"whenToPreferThis":"Choose this endpoint when you need to programmatically parse a vendor invoice into structured fields, verify that subtotals, tax, and totals are arithmetically consistent, and receive an objective quality grade. Ideal for accounts payable automation, invoice ingestion pipelines, or fraud/error detection on supplier invoices. Prefer this over generic OCR when you need validated, reconciled financial data with a graded confidence score.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-13T12:58:33.054Z","isFirstParty":false}