# code402 Bind Insurance Policy

> code402 Bind Insurance Policy is a paid API for AI agents from hcrb.in, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-12).

Offline deterministic validation and binding of an insurance policy, returning a signed certificate with coverage details, paid per-call via x402 USDC micropayment.

## Facts

- Endpoint: POST https://hcrb.in/v1/tools/bind-insurance-policy/call?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-12
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/code402-bind-insurance-policy-544950ac
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_lDDFMuJHsBWAPGVsgIUph

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 code402-bind-insurance-policy-544950ac -d '<json body>'
```

Example prompt: Bind an insurance policy for policy ID 'POL-2024-00187' through underwriter 'UW-ACME-001' and give me the signed certificate hash and coverage details — I need proof of coverage for a rental due-diligence check.

## When to prefer this

Choose this endpoint when you need offline, deterministic (no ML, no external scraping) insurance policy binding with a cryptographically signed and checksum-verifiable certificate, especially in rental or business due-diligence workflows where tamper-evident proof of coverage is required and cost must be minimized to $0.01/call via USDC micropayment.

## Known failure modes

- Invalid or malformed policy_id returns valid:false with an error status
- Underwriter not recognized returns an error with underwriter_id unresolvable
- Payment failure via x402 (insufficient USDC, wrong network) blocks the call and returns a 402 response
- Duplicate binding attempt for same policy may return a conflict status
- Missing required fields in request body result in a 400-level validation error

## How this service works

Offline deterministic checks (no ML, no scraping) for business identifiers and rental due-diligence, paid per call via x402 (gasless EIP-3009 USDC on Base). Checksum-verifiable (IBAN, LEI, VAT, ABA, ISBN, SEDOL…) vs format-only (EIN, IFSC, SWIFT/BIC…) — every response returns a scope field. Non-custodial, signed receipts. First 3 calls/day free.

## Output

Returns a JSON object with: valid (boolean indicating successful binding), policy_id, certificate_hash (a checksum-verifiable proof of the bound policy), pol1_certificate (structured certificate object), underwriter_name and underwriter_id, coverage_amount_usdc, premium_usdc, status (policy state), tx_hash (on-chain payment receipt), and scope (indicating what was deterministically verified). First 3 calls/day are free; subsequent calls cost $0.01 USDC via x402 gasless EIP-3009 payment on Base.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "underwriter_id"
   ],
   "properties": {
    "amount": {
     "type": "number",
     "description": "Alias for amount_usdc"
    },
    "tx_hash": {
     "type": "string",
     "description": "Transaction hash being insured (optional)"
    },
    "invoice_id": {
     "type": "string",
     "description": "Associated invoice identifier (optional)"
    },
    "amount_usdc": {
     "type": "number",
     "description": "Transaction coverage amount in USDC"
    },
    "coverage_type": {
     "type": "string",
     "description": "Coverage type override (optional)"
    },
    "transaction_id": {
     "type": "string",
     "description": "Transaction reference ID (optional)"
    },
    "underwriter_id": {
     "type": "string",
     "description": "Underwriter id from the open self-registration directory (run list-approved-insurers for current ids; the directory ships empty)"
    },
    "beneficiary_address": {
     "type": "string",
     "description": "Beneficiary Base EVM address for claim payouts (0x...)"
    },
    "policyholder_address": {
     "type": "string",
     "description": "Policyholder Base EVM address (0x...)"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "schema": {
  "type": "object",
  "required": [
   "valid",
   "policy_id",
   "certificate_hash",
   "status"
  ],
  "properties": {
   "tool": {
    "type": "string"
   },
   "scope": {
    "type": "string"
   },
   "valid": {
    "type": "boolean"
   },
   "status": {
    "type": "string"
   },
   "tx_hash": {
    "type": "string"
   },
   "policy_id": {
    "type": "string"
   },
   "invoice_id": {
    "type": "string"
   },
   "premium_usdc": {
    "type": "number"
   },
   "underwriter_id": {
    "type": "string"
   },
   "certificate_hash": {
    "type": "string"
   },
   "pol1_certificate": {
    "type": "object"
   },
   "underwriter_name": {
    "type": "string"
   },
   "coverage_amount_usdc": {
    "type": "number"
   }
  }
 },
 "example": {
  "valid": true,
  "reason": "checksum valid"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/code402-bind-insurance-policy-544950ac/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from hcrb.in](https://www.zero.xyz/host/hcrb.in/llms.txt)
