# Have It Printed — print-and-mail for AI agents > **Have It Printed prints a document and mails it to any US address, with a tracking number.** AI agents use it through an MCP server at `https://agents.haveitprinted.com/mcp`. The agent creates the job, uploads the file, sets the recipient and gets the exact price, then either sends a person to a checkout page or pays with a delegated Stripe payment token. People at Have It Printed print every order, pack it flat in a rigid mailer and mail it. ## What an agent can do - **Print and mail a document** to the user or to anyone else at a US address ("mail this to my landlord"). - **Mail a letter** of up to 5 pages, folded into a standard envelope: $3 with no tracking, or $11 by Certified Mail with a tracking number (`product` on `hip_update_job`). - **Print a document you wrote** with the person: `hip_add_text_document` typesets plain text on US Letter paper, so nothing has to be uploaded. - **Get the price before anything is charged**, computed by the same pricing the website checkout uses. - **Pay in one of two ways:** hand a person a checkout link, or pay autonomously with a Stripe shared payment token. - **Follow the order:** payment state, order status, and the tracking number and tracking URL once a shipping label exists. ## Price - **$15 base price** for up to 30 pages, covering printing, paper, a rigid mailer, postage and a tracking number. Larger jobs are tiered by page count. Color is $0.05 per color page. Every order prints on US Letter (8.5x11). It is the same price the website charges. - Sales tax, if any, is calculated by Stripe from the destination and added at payment. - `hip_quote` returns the price for a specific job. `hip_prepare_payment` returns the exact payable total, including tax. ## How to use it (MCP) Endpoint: `https://agents.haveitprinted.com/mcp`. JSON-RPC 2.0 over HTTP POST, MCP protocol `2025-06-18`, stateless (no session id). - `initialize` and `tools/list` work without an account. - Every `tools/call` needs the header `Authorization: Bearer `. 1. **Get an API key:** `POST https://agents.haveitprinted.com/v1/onboard` with `{"email": "you@example.com"}`. The response contains `api_key`, shown only once. A verification link is also emailed to that address. 2. `hip_get_service_info`: accepted file types, limits and the current base price. 3. `hip_create_job`: returns a `job_handle` used by every later call. Nothing is charged. 4. `hip_get_upload_target` (`job_handle`, `filename`, optional `content_type`): returns `upload_url`. `PUT` the file bytes to it with the returned `Content-Type` header. Send a descriptive `User-Agent` (for example `my-agent/1.0`); a bare library default may be rejected. - Or `hip_add_text_document` (`job_handle`, `title`, `text`, optional `copies`): a letter or document whose text you wrote, typeset in black and white. Paragraphs are separated by a blank line. 5. `hip_update_job`: set `product` (`tracked_document`, the default; `basic_letter`; `certified_letter`), `files` (each with `filename` and `pages`, plus optional `quantity`, `color` `bw` or `color`, and `size` `8.5x11`, the only size offered) and the `recipient` (`name`, `line1`, optional `line2`, `city`, 2-letter `state`, `zip`; US only). Price fields are rejected; the server computes every amount. 6. `hip_quote`: the price for this job. 7. **Pay, one of:** - **A person pays:** `hip_create_checkout` (optional `customer_email`) returns `checkout_url`. The person pays on Have It Printed's checkout page. This tool takes no payment itself. - **The agent pays:** `hip_prepare_payment` returns `total_cents` (subtotal plus tax), bound to the job's documents, options and recipient. Obtain a Stripe shared payment token (`spt_...`) granted to Have It Printed with a maximum of at least that total, then call `hip_complete_payment` with `job_handle` and `payment_authorization`. Have It Printed charges exactly the prepared total, never the token's maximum. If the card issuer requires authentication, the result is `payment_status` `requires_user_action`. Never send card numbers or CVV. 8. `hip_get_checkout_status`: `paid` becomes `true`, with an `order_id`, once Stripe's payment webhook has created the order. 9. `hip_get_order`: the order `status`, plus `tracking_number` and `tracking_url` once a shipping label exists. `in_review` means the order has been received and is under review. ## In ChatGPT and Claude - No account and no API key. ChatGPT connects to `https://agents.haveitprinted.com/mcp/chatgpt` and Claude to `https://agents.haveitprinted.com/mcp/claude`; only the assistant's own servers can call their tools. - In ChatGPT, attach the document to the chat (`hip_add_document`). In either assistant, the assistant can write the letter or document with you (`hip_add_text_document`). - Choose flat and tracked, a $3 Letter or a $11 Certified letter (`product` on `hip_update_job`), see the price (`hip_quote`), then open the checkout link (`hip_create_checkout`): you enter the mailing address and pay on haveitprinted.com, never in the chat. Agent self-pay is not offered there. - Files are deleted automatically about 30 days after delivery, or within hours if the order isn't paid. Privacy: https://haveitprinted.com/privacy (section 12). ## Good to know - US destinations only. - Accepted file types: bmp, doc, docx, gif, jpeg, jpg, odt, pdf, png, rtf, tif, tiff, txt, webp. Up to 100 MB per file and 10 files per order. - The server counts the pages of every uploaded file, and that count is what is priced and printed. The `pages` you send are used only for a file the server cannot count. - Uploaded files are kept only while a job is in progress: if it is not paid, they are deleted about 6 hours after the last upload (longer while a checkout link is open), and the job has to be started again. A paid order's files are deleted automatically about 30 days after delivery. Files are never sold, never used for advertising and never used to train AI. - No turnaround time or delivery date is guaranteed. Refunds follow the refund policy at https://haveitprinted.com/refund. - Orders placed through this API are Have It Printed orders: flat and tracked documents, or letters (`basic_letter`, `certified_letter`: up to 5 pages, one copy of each document, paid at checkout rather than with `hip_complete_payment`). Handwriting-style letters from Sent Instantly and the thank-you brands are ordered on those brands' websites. - The MCP tools above are the only way to order. The older REST calls (`POST /v1/orders`, `/v1/quote`, `/v1/account/topup`, `/v1/account/balance`, `/v1/terms/accept`) do not place orders and should not be used. ## Links - MCP server: https://agents.haveitprinted.com/mcp - Manifest: https://agents.haveitprinted.com/.well-known/agent.json - API key signup (OpenAPI): https://agents.haveitprinted.com/openapi.yaml - Website: https://haveitprinted.com - Terms: https://haveitprinted.com/terms - Contact: contact@haveitprinted.com Operator: Have It Printed LLC.