Commerce & ops

3-way match

Invoice vs purchase order vs receipt → matched, partial, or mismatched, with every discrepancy flagged and sized.

POST /v1/po-match$0.10/match · 10 credits, charged only on success

Send this

{
  "invoice": "{…/v1/invoice output…}",
  "purchaseOrder": "PO-88: 12x Widget A @ $95, ship to Columbus",
  "receipt": "GRN: 12 Widget A received 2026-06-28"
}

Every response carries usage — the credits burned and your remaining balance. A failed call never burns credits.

Try it live against your own key in the interactive reference; every account gets 500 free credits a month, no card.

Get this back

{
  "status": "partial",
  "discrepancies": [
    {
      "field": "unitPrice",
      "invoice": "$100.00",
      "purchaseOrder": "$95.00",
      "receipt": null,
      "severity": "high",
      "note": "5.3% over PO price — beyond 2% tolerance."
    }
  ],
  "recommendation": "hold — quantities match but unit price exceeds the PO; request a corrected invoice.",
  "usage": {
    "credits": 10,
    "balanceRemaining": 337
  }
}

Four ways in. Same $0.10/match.

curl
curl https://api.kynth.studio/v1/po-match \
  -H "Authorization: Bearer ksk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"invoice":"{…/v1/invoice output…}","purchaseOrder":"PO-88: 12x Widget A @ $95, ship to Columbus","receipt":"GRN: 12 Widget A received 2026-06-28"}'
TypeScript
import { KynthCore } from "@kynth/api";

const kynth = new KynthCore({ apiKey: process.env.KYNTH_API_KEY! });
const result = await kynth.poMatch({
  "invoice": "{…/v1/invoice output…}",
  "purchaseOrder": "PO-88: 12x Widget A @ $95, ship to Columbus",
  "receipt": "GRN: 12 Widget A received 2026-06-28"
});
Python
from kynth import Kynth

client = Kynth(api_key=os.environ["KYNTH_API_KEY"])
result = client.po_match(
    invoice="{…/v1/invoice output…}",
    purchaseOrder="PO-88: 12x Widget A @ $95, ship to Columbus",
    receipt="GRN: 12 Widget A received 2026-06-28",
)
MCP
// One-time setup in your MCP client (Claude, Cursor, …):
{ "mcpServers": { "kynth-core": {
    "command": "npx", "args": ["@kynth/api-mcp"],
    "env": { "KYNTH_API_KEY": "ksk_live_…" } } } }

// Then the agent just calls the kynth_po_match tool.

More from commerce & ops