---
name: ardaro-receipt-intelligence
description: Use Ardaro when an agent has receipt OCR text or a provider-neutral structured extraction and needs normalized merchant, date, tax, total, line items, confidence, duplicate indicators, and arithmetic checks before a human reviews an expense.
---

# Ardaro Receipt Intelligence

Use the public Ardaro service only as an advisory receipt-review layer. It does
not post expenses, invoices, payments, allocations, or other financial records.
A human must review the result before any consequential action.

## Fixed production contract

- Endpoint: `https://agents.getardaro.com/v1/receipt-intelligence/analyze`
- Method: `POST`
- Protocol: x402 v2 exact payment
- Network: Base mainnet, `eip155:8453`
- Asset: Base mainnet USDC
- Amount: exactly `250000` atomic units, or `0.25 USDC`
- Request contract: `ardaro.agent-receipt-intelligence.request.v1`
- Response contract: `ardaro.agent-receipt-intelligence.response.v1`
- Free fixture: `https://agents.getardaro.com/agent-services/receipt-intelligence/example`
- OpenAPI: `https://agents.getardaro.com/openapi.json`

Never request, read, transmit, or log a seed phrase, private key, wallet export,
payment signature, session value, or credential. Wallet authorization belongs
to the caller's configured wallet tooling, outside Ardaro.

## Evaluate before payment

Fetch the deterministic synthetic fixture first:

```bash
curl -fsS https://agents.getardaro.com/agent-services/receipt-intelligence/example
```

This fetch is free and performs no receipt processing. Confirm that the fixture
is marked synthetic-only, paid processing is false, and the published contract
versions match the fixed production contract above.

## Validate the unpaid challenge

Before authorizing payment, require all of these values from the HTTP 402
challenge:

1. x402 version is `2` and scheme is `exact`.
2. Resource URL exactly matches the fixed HTTPS endpoint.
3. Network is `eip155:8453`.
4. Asset is Base mainnet USDC.
5. Amount is exactly `250000` atomic units.
6. Payee matches the independently trusted Ardaro contract.
7. The payment-identifier extension is required.
8. The Bazaar extension is present.

Fail closed on any mismatch. Do not substitute another network, asset, payee,
amount, endpoint, or service version.

## Make one bounded call

With an authenticated and funded Coinbase Agentic Wallet, the following
synthetic request makes one production call and caps payment at exactly 0.25
USDC:

```bash
npx awal@2.12.1 x402 pay https://agents.getardaro.com/v1/receipt-intelligence/analyze -X POST -d '{"contract_version":"ardaro.agent-receipt-intelligence.request.v1","input":{"kind":"text","text":"Synthetic Supply\nDate: 08/18/2026\nSubtotal: $100.00\nTax: $7.00\nTotal: $107.00"},"existing_fingerprints":[]}' --max-amount 250000 --json
```

Do not raise the cap. Do not create a new payment authorization when a paid
response is lost or ambiguous. Preserve the original stable payment identifier
and exact signed request for bounded recovery, or stop and contact
`support@getardaro.com`.

## Validate the result

Treat `result` as the sole authoritative analysis object.

1. Recursively sort object keys, serialize compact UTF-8 JSON, and calculate
   SHA-256 over `result`.
2. Require `analysis_result_identity` to equal `res_` followed by that digest.
3. Require the top-level `receipt` compatibility projection to equal
   `result.extracted_facts` exactly.
4. Reject the response on a contract-version, identity, or projection mismatch.
5. Present confidence, warnings, duplicate indicators, and extracted fields to
   a human reviewer.
6. Never let the analysis directly post or alter a financial record.

Minimize live input to receipt data needed for the review. Do not include full
card numbers, credentials, authentication material, unrelated customer data,
or instructions to bypass human approval.
