# Halowerk SMS Receive Lease

> Halowerk SMS Receive Lease is a paid API for AI agents from ident.halowerk.com, paid per call via x402, $0.006/call, status unknown (last checked 2026-09-15).

Creates a temporary 5-minute inbound SMS number lease, polls for received messages, and releases the number on cancellation, expiry, or failed payment settlement.

## Facts

- Endpoint: POST https://ident.halowerk.com/v1/sms-receive
- Price: $0.006/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/halowerk-sms-receive-lease-425d319c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_MonxSe60ILOzOBqzhZ5qK

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 halowerk-sms-receive-lease-425d319c -d '<json body>'
```

Example prompt: I need to receive an SMS verification code right now — lease me a live German phone number for this purpose, I confirm I'm authorized and agree to the provider terms.

## When to prefer this

Choose this endpoint when an AI agent needs to programmatically receive an inbound SMS — such as capturing a one-time password or verification code — without a persistent phone number. It is ideal for ephemeral identity verification flows, automated account registration pipelines, or testing SMS-based auth in sandbox mode. Prefer it over full-featured SMS platforms when you only need a short-lived receive window and want pay-per-use x402 micropayment pricing.

## Known failure modes

- No phone numbers available in requested country — provider exhaustion error
- Invalid or expired lease_id on poll/cancel — 404 or lease-not-found error
- terms_confirmed not set to true for live lease — validation rejection
- Failed x402 payment settlement — lease not created or released early
- Sandbox OTP format mismatch — validation error
- Provider (Twilio) connectivity failure — upstream error

## How this service works

Creates a five-minute inbound SMS lease through a configured licensed provider, polls received messages, and releases the number upstream on cancellation, expiry or failed x402 settlement. Twilio is supported directly; an HTTPS bearer-token lease provider can also implement the documented generic contract. Messages and lease metadata are removed after expiry.

## Output

For a lease action: a lease_id, assigned phone number, country, and expiry timestamp. For a poll action: any SMS messages received on the leased number (sender, body, timestamp). For a cancel action: confirmation of release. Lease and message data are purged after expiry.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "mode": {
   "enum": [
    "live",
    "sandbox"
   ],
   "type": "string",
   "default": "live"
  },
  "action": {
   "enum": [
    "lease",
    "poll",
    "cancel"
   ],
   "type": "string"
  },
  "country": {
   "type": "string",
   "default": "DE",
   "pattern": "^[A-Z]{2}$"
  },
  "service": {
   "type": "string",
   "maxLength": 80,
   "minLength": 2,
   "description": "Purpose label forwarded to the configured provider; never used to bypass provider restrictions."
  },
  "lease_id": {
   "type": "string",
   "maxLength": 80,
   "minLength": 10
  },
  "sandbox_otp": {
   "type": "string",
   "pattern": "^\\d{4,8}$",
   "description": "Optional synthetic OTP returned only by a sandbox lease."
  },
  "terms_confirmed": {
   "type": "boolean",
   "description": "Required for a live lease: confirms authorization and compliance with the third party and provider terms."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/halowerk-sms-receive-lease-425d319c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from ident.halowerk.com](https://www.zero.xyz/host/ident.halowerk.com/llms.txt)
