# Trust402 Procurement Plan Generator

> Trust402 Procurement Plan Generator is a paid API for AI agents from trust402.vercel.app, paid per call via x402, $0.02/call, status unknown (last checked 2026-09-14).

Creates a bounded spend plan for acquiring x402 resources within a user-defined budget, without executing any actual payments.

## Facts

- Endpoint: POST https://trust402.vercel.app/api/procurement/plan
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/trust402-procurement-plan-generator-747b2a1e
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_xsoPO7CgocgbhD2Jydc9e

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 trust402-procurement-plan-generator-747b2a1e -d '<json body>'
```

Example prompt: Put together a spend plan for sourcing weather and geolocation data from x402 APIs — my goal is accurate location-aware forecasts, my budget is $5, and here are the three candidate endpoints I've already identified with their prices.

## When to prefer this

Use this endpoint when you need to decide which x402 APIs to purchase before committing funds — it is the right choice for pre-flight budget planning, agent spend governance, or generating an approval payload for human review. Prefer it over the quote endpoint when you want a full multi-resource plan rather than a single-resource quote, and over the ranking endpoint when you need budget-bounded allocation rather than just a ranked list.

## Known failure modes

- Budget too low to cover any candidate's minimum price — returns empty or infeasible plan
- Invalid or missing goal string — plan may be unscored or poorly ranked
- Candidates missing required endpoint/url field — schema validation error
- Candidate price fields absent or unparseable — endpoint excluded from plan
- Budget exceeds reasonable sanity limits — may return error or capped plan

## How this service works

Create a bounded spend plan without spending money.

## Output

A structured spend plan showing which candidate x402 resources are selected, how the budget is allocated across them, their ranked priority, and the projected total cost — all without triggering any actual payment transactions.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "goal": {
   "type": "string",
   "description": "Buyer goal for selecting x402 resources."
  },
  "budgetUsd": {
   "type": "number",
   "description": "Maximum spend budget for the plan or quote."
  },
  "candidates": {
   "type": "array",
   "items": {
    "type": "object",
    "anyOf": [
     {
      "required": [
       "endpoint"
      ]
     },
     {
      "required": [
       "url"
      ]
     }
    ],
    "properties": {
     "id": {
      "type": "string",
      "description": "Stable candidate identifier used in rankings and receipts."
     },
     "url": {
      "type": "string",
      "format": "uri",
      "description": "Alternate field for the x402 resource endpoint."
     },
     "name": {
      "type": "string",
      "description": "Human-readable resource name."
     },
     "x402": {
      "type": "object",
      "description": "Optional parsed x402 challenge metadata."
     },
     "asset": {
      "type": "string",
      "description": "Payment asset address or symbol."
     },
     "payTo": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{40}$"
     },
     "price": {
      "oneOf": [
       {
        "type": "number",
        "minimum": 0
       },
       {
        "type": "string"
       }
      ],
      "description": "Alternate price field accepted by Trust402."
     },
     "accept": {
      "type": "object",
      "description": "Optional single x402 accept object."
     },
     "has402": {
      "type": "boolean",
      "description": "Whether the endpoint is known to return an x402 challenge."
     },
     "network": {
      "type": "string",
      "description": "x402 payment network, for example eip155:8453."
     },
     "endpoint": {
      "type": "string",
      "format": "uri",
      "description": "HTTPS x402 resource endpoint."
     },
     "metadata": {
      "type": "object",
      "description": "Additional public-safe metadata used during scoring."
     },
     "observed": {
      "type": "object",
      "description": "Optional probe observations such as status or latency."
     },
     "priceUsd": {
      "oneOf": [
       {
        "type": "number",
        "minimum": 0
       },
       {
        "type": "string"
       }
      ],
      "description": "Advertised resource price in USD."
     },
     "hasOpenApi": {
      "type": "boolean",
      "description": "Whether the origin publishes OpenAPI metadata."
     },
     "openapiUrl": {
      "type": "string"
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/trust402-procurement-plan-generator-747b2a1e/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from trust402.vercel.app](https://www.zero.xyz/host/trust402.vercel.app/llms.txt)
