# StablePrint Order Submission API

> StablePrint Order Submission API is a paid API for AI agents from stableprint.dev, paid per call via x402, $500/call, status unknown (last checked 2026-09-15).

Submits a confirmed print-on-demand order to Prodigi via StablePrint, converting a pre-approved draft into a live production order with itemized cost breakdown.

## Facts

- Endpoint: POST https://stableprint.dev/api/orders
- Price: $500/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/stableprint-order-submission-api-a4ea839a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_uYBAT36RnVRTX2F6O4gVn

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 stableprint-order-submission-api-a4ea839a -d '<json body>'
```

Example prompt: Submit my StablePrint draft 'draft_01JZPRINT000000000000000000' to production — the draft token is 'abcdef1234567890abcdef1234567890ab', the expected total is $18.13 USD, the client request ID is 'order-example-001', and the confirmed crop proof hash is 'a1b2c3d4e5f6g7h8'.

## When to prefer this

Use this endpoint when you have already completed the StablePrint draft/preview/quote flow and hold a valid draft_id, draft_token, and confirmed_crop_proof_hashes, and are ready to submit the order to Prodigi for physical fulfillment. This is the final submission step, not a browsing, quoting, or preview step.

## Known failure modes

- Invalid or expired draft_token returns an authentication error
- Mismatch between expected_total and server-computed total causes rejection
- Invalid or unrecognized draft_id returns a not-found error
- Malformed client_request_id (invalid characters or length) causes validation failure
- confirmed_crop_proof_hashes mismatch with server-stored hashes causes order rejection
- Duplicate client_request_id may return idempotency conflict or cached prior response
- Payment of $500 USDC not received via x402 protocol causes 402 Payment Required response

## How this service works

Agent-native Prodigi print-on-demand catalog, preview, quote, and order API.

## Output

Returns a JSON object with the order status ('submitted'), a StablePrint order_id, a Prodigi prodigi_order_id, itemized costs (item_cost, shipping_cost, tax_cost, branding_cost), charged_total in USD, shipping_method, timestamps (created_at, updated_at), and the echoed client_request_id and draft_id.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "required": [
      "draft_id",
      "draft_token",
      "client_request_id",
      "expected_total",
      "expected_currency",
      "confirmed_crop_proof_hashes"
     ],
     "properties": {
      "draft_id": {
       "type": "string",
       "minLength": 1
      },
      "draft_token": {
       "type": "string",
       "maxLength": 160,
       "minLength": 32
      },
      "expected_total": {
       "type": "number",
       "minimum": 0
      },
      "client_request_id": {
       "type": "string",
       "pattern": "^[a-zA-Z0-9._:-]+$",
       "maxLength": 128,
       "minLength": 8
      },
      "expected_currency": {
       "type": "string",
       "const": "USD",
       "default": "USD"
      },
      "confirmed_crop_proof_hashes": {
       "type": "array",
       "items": {
        "type": "string",
        "minLength": 16
       },
       "minItems": 1
      }
     },
     "additionalProperties": false
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST",
      "PUT",
      "PATCH"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "required": [
      "order_id",
      "status",
      "client_request_id",
      "item_cost",
      "shipping_cost",
      "branding_cost",
      "tax_cost",
      "reserve_cost",
      "pricing_policy",
      "charged_total",
      "currency",
      "created_at",
      "updated_at"
     ],
     "properties": {
      "status": {
       "type": "string"
      },
      "currency": {
       "type": "string"
      },
      "draft_id": {
       "type": "string"
      },
      "order_id": {
       "type": "string"
      },
      "tax_cost": {
       "type": "number",
       "minimum": 0
      },
      "item_cost": {
       "ty
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "status": "submitted",
  "currency": "USD",
  "draft_id": "draft_01JZPRINT000000000000000000",
  "order_id": "order_01JZPRINT000000000000000000",
  "tax_cost": 1.23,
  "item_cost": 12.34,
  "created_at": "2026-06-08T20:05:00.000Z",
  "updated_at": "2026-06-08T20:05:00.000Z",
  "branding_cost": 0,
  "charged_total": 18.13,
  "shipping_cost": 4.56,
  "shipping_method": "standard",
  "prodigi_order_id": "pdg_123456789",
  "client_request_id": "order-example-001"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/stableprint-order-submission-api-a4ea839a/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from stableprint.dev](https://www.zero.xyz/host/stableprint.dev/llms.txt)
