# RunOnProof UK Payment Authorization Gate

> RunOnProof UK Payment Authorization Gate is a paid API for AI agents from cdo-production.up.railway.app, paid per call via x402, $0.15/call, status unknown (last checked 2026-09-14).

Authorizes a single UK company payment by composing supplier identity, invoice, payee binding, and optional vendor-change gates — returning APPROVE, HOLD, or DENY based on all gate outcomes.

## Facts

- Endpoint: POST https://cdo-production.up.railway.app/v1/gb/payments/authorize
- Price: $0.15/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/runonproof-uk-payment-authorization-gate-d2014409
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_m6Qr69v2_SYVNWSYMD1oU

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 runonproof-uk-payment-authorization-gate-d2014409 -d '<json body>'
```

Example prompt: Before we release the £4,250.00 GBP payment to supplier company number 12345678 — with payee fingerprint 'fp_abc123xyz456' and a previously-verified binding confirmed today valid until end of year — can you run it through the RunOnProof payment authorization gate to make sure everything checks out?

## When to prefer this

Use this endpoint immediately before releasing any outbound payment to a UK registered company, especially when you need a composable multi-gate check that combines supplier identity, invoice matching, and payee binding verification in a single call. Prefer it over manual checks or single-factor verification when your workflow requires an auditable authorization reference and explicit APPROVE/HOLD/DENY outcomes. It is particularly suited to automated accounts payable pipelines where vendor-change events (new bank details) require an additional authorization gate.

## Known failure modes

- Missing or invalid company number format returns validation error before authorization runs
- Payee fingerprint below minimum length (8 chars) causes request rejection
- Binding evidence with expired valid_until date causes gate to return HOLD or DENY
- Mismatched invoice company number vs payee company number triggers DENY
- Unavailable or unresolvable Companies House data causes affected gate to return HOLD
- Payment amount in wrong format (e.g. more than 2 decimal places) causes schema validation failure
- Any incomplete gate (missing required binding evidence) returns HOLD rather than approval

## How this service works

Authorize one bounded UK company payment by composing supplier, invoice, payee and optional vendor-change gates. Use immediately before releasing a payment. Any incomplete, unavailable or mismatched gate returns HOLD or DENY, not approval.

## Output

Returns a structured authorization decision (APPROVE, HOLD, or DENY) for the payment, along with individual gate outcomes for the supplier identity, invoice matching, payee binding, and any vendor-change gate. HOLD or DENY responses include specific reasons indicating which gate failed or was incomplete, giving the caller actionable guidance on what to resolve before retrying.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "payee": {
   "type": "object",
   "required": [
    "company_number",
    "payee_fingerprint"
   ],
   "properties": {
    "company_number": {
     "type": "string",
     "pattern": "^(?:(?:[A-Z]{2}|[0-9]{2})?[0-9]{6}|[0-9]{8})$",
     "description": "Companies House company number, including any two-letter prefix when applicable."
    },
    "binding_evidence": {
     "type": "object",
     "required": [
      "type",
      "verified_at",
      "valid_until",
      "reference"
     ],
     "properties": {
      "type": {
       "enum": [
        "PREVIOUSLY_VERIFIED_BINDING",
        "BANK_PROVIDER_CONFIRMATION",
        "CUSTOMER_CONFIRMATION",
        "CHALLENGE"
       ]
      },
      "reference": {
       "type": "string",
       "maxLength": 200,
       "minLength": 1,
       "description": "Non-secret reference to the evidence held by the caller."
      },
      "valid_until": {
       "type": "string",
       "format": "date-time",
       "description": "Expiry of the caller/provider evidence; must be in the future."
      },
      "verified_at": {
       "type": "string",
       "format": "date-time",
       "description": "When the caller or provider verified the binding."
      }
     },
     "additionalProperties": false
    },
    "payee_fingerprint": {
     "type": "string",
     "maxLength": 200,
     "minLength": 8,
     "description": "Opaque caller-generated fingerprint; never send raw bank-account details."
    }
   },
   "additionalProperties": false
  },
  "amount": {
   "type": "string",
   "pattern": "^\\d+(?:\\.\\d{1,2})?$",
   "description": "Positive decimal payment amount in the declared currency; not the x402 fee."
  },
  "invoice": {
   "type": "object",
   "required": [
    "company_number"
   ],
   "properties": {
    "vat_number": {
     "type": "string",
     "maxLength": 20,
     "description": "Optional UK VAT number; this route does not independently verify VAT registration."
    },
    "company_number": {
     "type": "string",
     "pattern": "^(?:(?:[A-Z]{2}|[0-9]{2})?[0-9]{6}|[0-9]{8})$",
     "description": "Companies House company number, including any two-letter prefix when applicable."
    },
    "invoice_address": {
     "type": "object",
     "properties": {
      "line_1": {
       "type": "string",
       "maxLength": 300
      },
      "line_2": {
       "type": "string",
       "maxLength": 300
      },
      "country": {
       "type": "string",
       "maxLength":
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/runonproof-uk-payment-authorization-gate-d2014409/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from cdo-production.up.railway.app](https://www.zero.xyz/host/cdo-production.up.railway.app/llms.txt)
