{
  "manifest_version": "1.0",
  "updated": "2026-10-06",
  "name": "Have It Printed",
  "operator": "Have It Printed LLC",
  "description": "Print a document and mail it to any US address with a tracking number. Agents use the MCP server: create a job, upload the file, set the recipient and get the exact price, then either send a person to a checkout link or pay with a delegated Stripe shared payment token. People at Have It Printed print and mail every order. No turnaround time or delivery date is guaranteed.",
  "category": [
    "print-on-demand",
    "mail-fulfillment",
    "physical-delivery",
    "agentic-commerce"
  ],
  "interfaces": {
    "mcp": {
      "endpoint": "https://agents.haveitprinted.com/mcp",
      "status": "live",
      "protocol_version": "2025-06-18",
      "tools": [
        "hip_get_service_info",
        "hip_create_job",
        "hip_get_upload_target",
        "hip_add_text_document",
        "hip_update_job",
        "hip_quote",
        "hip_create_checkout",
        "hip_get_checkout_status",
        "hip_prepare_payment",
        "hip_complete_payment",
        "hip_get_order"
      ],
      "transport": "streamable-http",
      "auth": "Bearer API key on tools/call; initialize and tools/list are public",
      "get_api_key": "POST https://agents.haveitprinted.com/v1/onboard {\"email\": \"...\"}",
      "primary_tools": [
        "hip_create_job",
        "hip_quote",
        "hip_create_checkout",
        "hip_complete_payment",
        "hip_get_order"
      ]
    },
    "rest": {
      "openapi": "https://agents.haveitprinted.com/openapi.yaml",
      "base_url": "https://agents.haveitprinted.com/v1",
      "scope": "API key signup (POST /v1/onboard), /v1/health and /v1/capabilities only. Orders are placed through the MCP tools."
    }
  },
  "capabilities": {
    "inputs": [
      "file upload to a presigned URL: bmp, doc, docx, gif, jpeg, jpg, odt, pdf, png, rtf, tif, tiff, txt, webp (up to 100 MB per file, 10 files per order)"
    ],
    "output": "printed_and_mailed_with_tracking",
    "geography": "US",
    "recipients": "any US address (self or third party)",
    "brands": [
      "haveitprinted"
    ],
    "brand_param": "none: orders placed through this API are Have It Printed orders"
  },
  "tracking": {
    "tool": "hip_get_order",
    "pollable": true,
    "returns": [
      "order_id",
      "status",
      "tracking_number",
      "tracking_url",
      "carrier_status",
      "created_at"
    ],
    "note": "tracking_number and tracking_url are null until a shipping label exists. status in_review means the order has been received and is under review."
  },
  "pricing": {
    "model": "tiered by page count, plus $0.05 per color page, identical to the website checkout",
    "base_usd": 15.0,
    "color_usd_per_page": 0.05,
    "base_includes": "up to 30 pages: printing, paper, a rigid mailer, postage and a tracking number",
    "tax": "sales tax, if any, is calculated by Stripe and added at payment",
    "quote_tool": "hip_quote",
    "exact_total_tool": "hip_prepare_payment"
  },
  "trust": {
    "sla": null,
    "delivery_guarantee": "none",
    "refund_policy_url": "https://haveitprinted.com/refund",
    "tos_url": "https://haveitprinted.com/terms",
    "raw_card_data_accepted": false
  },
  "payment": {
    "model": "pay per order: a person pays at the checkout_url from hip_create_checkout, or the agent pays with a Stripe shared payment token through hip_prepare_payment and hip_complete_payment",
    "supported_authorizations": [
      "stripe_shared_payment_token"
    ],
    "spend_ceiling": "the shared payment token's maximum; Have It Printed charges the exact prepared total",
    "user_action": "if the card issuer requires authentication, hip_complete_payment returns requires_user_action"
  },
  "contact": "contact@haveitprinted.com"
}
