# GW8 Signal API – Should-I-Pay Decision

> GW8 Signal API – Should-I-Pay Decision is a paid API for AI agents from micro-saas-agent.onrender.com, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-22).

Combines spend-policy enforcement and x402 seller reputation into a single pay/ask_human/deny verdict for an AI agent contemplating a micropayment

## Facts

- Endpoint: POST https://micro-saas-agent.onrender.com/api/pay/should-i-pay?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-22
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/gw8-signal-api-should-i-pay-decision-a18e63c6
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_h98sbrplQVaeaz356s09w

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability gw8-signal-api-should-i-pay-decision-a18e63c6 -d '<json body>'
```

Example prompt: Before I pay this x402 data API at address 0x1111...1111 for 0.05 USDC on Base, check whether it fits my policy — $1 per-tx limit, $10 rolling cap with $2.40 already spent, USDC only — and tell me if the seller is trustworthy or if I should ask a human first.

## When to prefer this

Choose this endpoint when an AI agent needs a single, combined verdict that covers both spend-policy compliance and x402 seller trustworthiness before committing a USDC micropayment on Base. It is especially valuable for autonomous agents that must auto-pay or escalate to a human without separate calls for policy and reputation. Prefer it over building custom spend-policy logic when you want signed, auditable receipts and no charge on failure.

## Known failure modes

- Missing or malformed policy object returns validation error, no charge
- Unknown seller address returns unknown verdict with ask_human escalation per sellerRules
- Rolling cap already exceeded returns deny verdict
- Network timeout or server error on Render returns no charge (settle-after-data guarantee)
- Invalid chain or currency not in allowedAssets/allowedChains returns policy denial
- Malformed payment timestamp causes request rejection

## How this service works

[Payment decision: spend policy + seller reputation risk check, one verdict] Right before an AI agent pays: POST {payment, policy, seller} -> ONE verdict pay / dont_pay / ask_human. Runs the spend-policy check (limits, rolling cap, categories, allow/deny, hours, assets/chains, approval threshold) and the x402 seller reputation check (buyers, wash share, age, concentration), with reasons and one signed receipt. Stateless; never pays anyone. No charge if seller data is down. $0.02 USDC.

## Output

Returns a JSON object with: a spend decision (allow/deny), a seller reputation score (0-100) and verdict (safe/caution/danger), an overall verdict (allow/ask_human/deny), a reasons array explaining each factor, and a signed Ed25519 decision receipt with a verify URL — giving the agent everything needed to act or escalate.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "policy": {
   "type": "object",
   "example": {
    "currency": "USDC",
    "perTxLimit": "1",
    "rollingCap": {
     "limit": "10",
     "spentSoFar": "2.40"
    },
    "allowedAssets": [
     "USDC"
    ],
    "allowedChains": [
     "base"
    ],
    "requireApprovalAbove": "0.50"
   }
  },
  "seller": {
   "type": "object",
   "example": {
    "address": "0x1111111111111111111111111111111111111111"
   }
  },
  "payment": {
   "type": "object",
   "example": {
    "chain": "base",
    "amount": "0.05",
    "agentId": "research-agent-1",
    "currency": "USDC",
    "timestamp": "2026-10-21T15:30:00Z",
    "recipientId": "0x1111111111111111111111111111111111111111",
    "merchantCategory": "data-api"
   }
  },
  "sellerRules": {
   "type": "object",
   "example": {
    "onCaution": "ask_human",
    "onUnknown": "ask_human"
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "spend": {
   "decision": "allow"
  },
  "engine": "gw8-should-i-pay/1",
  "seller": {
   "score": 58,
   "verdict": "caution"
  },
  "reasons": [
   {
    "action": "ask_human",
    "detail": "seller verdict caution (score 58) -> ask_human",
    "source": "seller_reputation"
   }
  ],
  "verdict": "ask_human",
  "decisionReceipt": {
   "alg": "Ed25519",
   "query": {
    "verdict": "ask_human",
    "sellerScore": 58,
    "requestSha256": "…",
    "sellerVerdict": "caution",
    "spendDecision": "allow"
   },
   "signed": true,
   "endpoint": "POST /api/pay/should-i-pay",
   "accessType": "PAY_DECISION",
   "verify_url": "https://micro-saas-agent.onrender.com/api/receipt/verify"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/gw8-signal-api-should-i-pay-decision-a18e63c6/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from micro-saas-agent.onrender.com](https://www.zero.xyz/host/micro-saas-agent.onrender.com/llms.txt)
