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
Chargeback representment
$0.15/dispute
Dispute details → a representment narrative, an evidence checklist, the right reason code, and a win-likelihood.
Collections sequence
$0.08/sequence
An overdue invoice → a ready-to-send collection sequence, escalating at the right pace and tone for how late it is.
Quote builder
$0.08/quote
A job description plus your rates → an itemized, professional quote with assumptions and scope notes spelled out.