# Agent402 UK — Payout Preflight Check

> Agent402 UK — Payout Preflight Check is a paid API for AI agents from agent402.co.uk, paid per call via x402, $0.003/call, status unknown (last checked 2026-09-14).

Validates a payment destination and rail before executing a payout, returning a go/no-go decision with reasons.

## Facts

- Endpoint: POST https://agent402.co.uk/v1/jobs/payout-preflight
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agent402-uk-payout-preflight-check-4b6a69a6
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_cf-QQlBubAkZ0zJBbRLMH

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 agent402-uk-payout-preflight-check-4b6a69a6 -d '<json body>'
```

Example prompt: Before I send £500 to sort code 20-00-00, account number 12345678 via UK bank rail, run a payout preflight to check if the destination is valid and we're good to go.

## When to prefer this

Use this endpoint before executing any payout to avoid burning gas fees, processing charges, or LLM tokens on a doomed transfer. Ideal when the destination is user-supplied and may be malformed, or when the rail must be auto-detected. Prefer over manual validation logic when supporting multiple rails (IBAN, UK bank, ABA, CLABE, IFSC, crypto) in a single agent workflow. Complements the sibling IBAN-only validator when multi-rail support is needed.

## Known failure modes

- Invalid or malformed IBAN fails mod-97 checksum — allow=false with reasons listing format error
- Unsupported rail value returns validation error
- Missing required destination field returns 400-class error
- Invalid UK sort code or account number combination flagged as invalid
- Crypto wallet address fails checksum for the specified chain — valid=false
- Payment amount is zero or negative — rejected with reasons
- Currency code not recognised for the specified rail — reasons populated

## How this service works

Don't burn tokens on deterministic work. Go/no-go jobs first: payout preflight, text firewall (PII/secrets), budget check — then rails, calendars, finmath. x402 USDC on Base. UK + global. agent402.co.uk — not agent402.tools. $0.001–$0.002 USDC on Base. No API keys.

## Output

Returns a JSON object with: `allow` (boolean go/no-go decision), `valid` (boolean whether the destination passes format checks), `rail` (detected or confirmed payment rail), and `reasons` (array of strings explaining any rejection or warnings). An empty reasons array with allow=true means the payout is cleared to proceed.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "rail": {
   "type": "string",
   "description": "auto|iban|uk_bank|aba|clabe|cpf|cnpj|ifsc|eth|sol|btc|crypto"
  },
  "chain": {
   "type": "string",
   "description": "eth|sol|btc when destination is a wallet"
  },
  "amount": {
   "type": "string",
   "description": "Positive decimal amount"
  },
  "currency": {
   "type": "string",
   "description": "ISO-ish currency code"
  },
  "sort_code": {
   "type": "string",
   "description": "UK sort code when rail=uk_bank"
  },
  "destination": {
   "type": "string",
   "description": "IBAN, CLABE, CPF/CNPJ, IFSC, ABA, or wallet"
  },
  "account_number": {
   "type": "string",
   "description": "UK account number when rail=uk_bank"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "rail": "iban",
  "allow": true,
  "valid": true,
  "reasons": []
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agent402-uk-payout-preflight-check-4b6a69a6/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent402.co.uk](https://www.zero.xyz/host/agent402.co.uk/llms.txt)
