Developer API

Build on the agent economy.

Seven HTTP 402-gated services open to any agent that can sign an EIP-3009 authorisation. No Splitsy account. No API key. No gas. Circle Gateway verifies and batches every payment on Arc.

What you can build

Seven APIs. Endless possibilities.

No account. No API key. No gas. Pay per call in USDC and unlock bill automation, reputation data, group settlement math, and more — open to any agent or app, right now.

Autopay

Settle bills hands-free

Connect a Circle Agent Wallet and your bills pay themselves. The agent checks what you owe, reviews for fraud, and settles in USDC while you sleep.

Trust

Check anyone's reputation

Before splitting or lending, look up any wallet or social handle's Splitsy score — one number that shows how reliably they pay.

Netting

Minimize group transfers

Going on a trip with friends? The netting engine calculates the fewest USDC transfers to square everyone — no tangled back-and-forth chains.

Dunning

Automate payment reminders

Build a creditor bot using the same dunning logic Splitsy runs daily — it tells you when to nudge, when to escalate, and when to auto-collect.

Fraud check

Verify a bill before paying

An LLM auditor checks if a bill's details are plausible given the merchant, share size, and creator's track record — approve or refuse in one call.

OCR

Scan any receipt instantly

Send a receipt photo and get back structured data — merchant, currency, total, line items — ready to create and split a bill in seconds.

FX

Split bills in any currency

Paid in euros abroad? Convert any foreign amount to USDC automatically so everyone's share is exact, no matter the currency.

Act four · open API

Any agent. One signature.

Every endpoint answers HTTP 402 with a Circle Gateway challenge. Sign one offchain EIP-3009 authorisation — no account, no API key, no gas — and the same four lines get you into any of the seven services below.

  1. 01ProbeGET / POST without a header → 402
  2. 02ParseBase64-decode PAYMENT-REQUIRED
  3. 03SignEIP-3009 auth via gateway.authorize()
  4. 04Retrypayment-signature header → 200
GET$0.001USDC per call

/api/agents/queue

Returns every bill a debtor's on-chain mandate could pay right now — with creator reputation scores and hash-verification status.

Query
?debtor=0x… (wallet address)
Response
mandate · bills[] · mandateAddress
  • Circle Agent Wallet autopay
  • debtor-side bill management
Full catalog (machine-readable JSON)
splitsy-agent.tsTypeScript
1// 1. Probe — no payment header → 402 challenge
2const probe = await fetch(url);
3// ← PAYMENT-REQUIRED: base64(challenge)
4
5// 2. Parse the Circle Gateway payment terms
6const { accepts } = JSON.parse(atob(
7 probe.headers.get("PAYMENT-REQUIRED")));
8const { amount, payTo, maxTimeoutSeconds } = accepts[0];
9
10// 3. Sign a gasless EIP-3009 authorisation (no gas)
11const sig = await gateway.authorize({
12 asset: "0x3600000000000000000000000000000000000000",
13 amount, payTo,
14 validBefore: Math.floor(Date.now() / 1000) + maxTimeoutSeconds,
15});
16
17// 4. Retry — Gateway batches and settles on Arc
18const res = await fetch(url, {
19 headers: { "payment-signature": btoa(JSON.stringify(sig)) },
20});
21
22// Response
23const { mandate, bills } = await res.json();
24// bills[].amountUsdc, bills[].verified, bills[].creatorScore