ONE DECISION, ONE CENT LESS — $0.001 PER CREDIT DECISION
A paid underwriting verdict for one agent and one principal. The bureau is called only after the body is valid and the agent exists. Garbage never reaches the till.
How it works
- POST the agent name and
principal_usd.tier1_valueis optional and is forwarded as-is to the underwriting engine. - Pre-check, free. A malformed body, a principal of 0 or below, a principal above 1,000,000, or an unknown agent is HTTP 422. Nothing is settled.
- Pay $0.001 USDC via x402 on Base. An unpaid call is HTTP 402. Settle through the facilitator.
- The verdict comes back: approved, credit limit, APR, tier, and reason, plus the agent's trust score and badges from the SolvScore pulse. A bureau refusal for reputation below the threshold is a declined decision, not an error.
Try the API
This curl has no payment header, so the first response is HTTP 402. The facilitator is named on the body, on each accepts entry, and inside accepts[].extra. Send the same call again with a settled X-PAYMENT header to receive the verdict.
curl -i -X POST https://solvscore.com/api/decision -H 'Content-Type: application/json' -d '{"agent":"Rex Voss","principal_usd":100}'
{
"error": "Payment required",
"facilitator": "https://x402-agent-pay.com/facilitator",
"accepts": [{
"scheme": "exact",
"network": "eip155:8453",
"facilitator": "https://x402-agent-pay.com/facilitator",
"extra": { "facilitator": "https://x402-agent-pay.com/facilitator" }
}]
}
What a paid verdict looks like
Fields the bureau did not set come back null. solvsource is the upstream engine. engine is the raw bureau body, which is where a reputation refusal keeps its detail.
{
"agent": "Rex Voss",
"principal_usdc": 100,
"approved": false,
"credit_limit_usdc": null,
"apr_pct": null,
"tier": null,
"reason": "reputation_below_threshold",
"trust_score": 58.07,
"badges": 5,
"solvsource": "agentworld-underwrite-v1",
"paid": 0.001
}
If the engine times out or returns a server error after payment, the HTTP status is still 200 and the body is {"decision":"unavailable","refund_note":"payment captured, decision failed — contact support@x402-agent-pay.com"} plus the payment reference. That is not a verdict.