# NetIntel Invoice Extractor & Validator

> NetIntel Invoice Extractor & Validator is a paid API for AI agents from netintel-production-440c.up.railway.app, paid per call via x402, $0.1/call, status unknown (last checked 2026-09-13).

Extracts structured invoice data from a document and validates totals, returning a graded report with line items, vendor info, dates, and reconciliation status

## Facts

- Endpoint: POST https://netintel-production-440c.up.railway.app/extract/invoice
- Price: $0.1/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/netintel-invoice-extractor-validator-4fa0c2cf
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_sTfX2LoO26X84AAommTZI

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability netintel-invoice-extractor-validator-4fa0c2cf -d '<json body>'
```

Example prompt: 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?

## When to prefer this

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.

## Known failure modes

- 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

## How this service works

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.

## Output

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.

## Request schema (JSON Schema)

```json
{
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "type": "object",
 "properties": {
  "input": {
   "type": "object",
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "type": "string",
     "enum": [
      "POST"
     ]
    },
    "bodyType": {
     "type": "string",
     "enum": [
      "json",
      "form-data",
      "text"
     ]
    },
    "body": {
     "type": "object",
     "properties": {
      "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."
      },
      "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."
      }
     }
    }
   },
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "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."
      },
      "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."
      },
      "cached": {
       "type": "boolean",
       "description": "True if served from the in-memory cache."
      },
      "score": {
       "type": "number",
       "description": "Quality score 0-100"
      },
      "grade": {
       "type": "string",
       "description": "Letter grade A-F"
      },
      "findings": {
       "type": "array",
       "items": {
        "type": "string"
       },
       "description": "Informational findings (e.g. no_total_found, totals_mismatch)."
      },
     
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "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
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/netintel-invoice-extractor-validator-4fa0c2cf/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from netintel-production-440c.up.railway.app](https://www.zero.xyz/host/netintel-production-440c.up.railway.app/llms.txt)
