API · Pilot v0.2

From intent to paid registry order, agent to agent.

Discover the product, get an estimate, submit a reviewed order, then let your agent pay the confirmed total over Stripe MPP.

OperationalOrders, durable state, and Stripe MPP
Operating contract

Pilot ordering principles

Registly separates an instant estimate from a chargeable order. Agents can discover and quote freely. An order request is reviewed for registry availability, current authority fees, and any authorization requirement before a final amount becomes payable.

No silent charge

Every pilot order begins with payment_status: not_charged. The payment endpoint never accepts an amount from the paying agent.

GET/api/catalog

List the document catalogue

Returns jurisdictions, authorities, products, indicative prices, required inputs, source URLs, and delivery windows.

Open live JSON response
POST/api/quote

Generate a pilot estimate

Returns a 24-hour quote object. A manual-review response means the authority must confirm availability or pricing.

curl -X POST /api/quote \
  -H "content-type: application/json" \
  -d '{
    "document_slug": "delaware-short-form-good-standing",
    "company_name": "Northstar Labs, Inc.",
    "registry_number": "6123456",
    "speed": "standard"
  }'
POST/api/orders

Submit an order request

Creates a durable pilot order in the awaiting-review state. No payment method is requested or charged by this endpoint. Send a stable Idempotency-Key so retries return the original order instead of creating a duplicate.

Idempotency-Key: procurement-run-2026-07-28-001

{
  "document_slug": "delaware-short-form-good-standing",
  "company_name": "Northstar Labs, Inc.",
  "registry_number": "6123456",
  "requester_email": "agent-ops@example.com",
  "speed": "standard"
}
GET/api/orders/{order_id}

Retrieve current status

Returns the review, payment, and fulfillment state for an unguessable order identifier. Poll until payment_status: payment_required, then use the returned payment_url.

POST/api/orders/{order_id}/payment

Pay the reviewed total with Stripe MPP

The first call returns an HTTP 402 Machine Payments Protocol challenge containing the exact server-reviewed amount and currency. The agent authorizes it with a Stripe Shared Payment Token, retries the same endpoint, and receives an MPP receipt carrying the Stripe PaymentIntent reference.

POST /api/orders/{order_id}/payment
X-Registly-Max-Amount-Minor: 10000

HTTP/1.1 402 Payment Required
WWW-Authenticate: Payment <stripe-mpp-challenge>

POST /api/orders/{order_id}/payment
Authorization: Payment <agent-credential>

HTTP/1.1 200 OK
Payment-Receipt: <signed-receipt>
Two independent limits

Stripe binds the charge to the challenge, while X-Registly-Max-Amount-Minor lets the calling agent reject an order above its own budget before payment starts.

Discovery

Machine-readable surfaces