> ## Documentation Index
> Fetch the complete documentation index at: https://paperplane-justin-winter-s-projects.vercel.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Send by text (SMS)

> Text a recipient and a letter, get a quote, reply yes, and we mail it.

## Text → letter

Text paperplane's iMessage number and it'll turn the conversation into a letter order. Two ways to give it the recipient and the letter:

**Just say what you want mailed**, in plain language:

```text theme={null}
can you send a letter to my cousin for me? her name's
Ada Lovelace, 1 Analysis Way, San Francisco, CA 94107.
tell her I signed the lease renewal.
```

paperplane asks whatever it's missing (an address, the actual wording), quotes a price, and sends only after you reply with an explicit yes.

**Or use the structured fallback** — the same `TO:` block convention as [send by email](/docs/guides/email-to-send), or a native iMessage Contact card:

```text theme={null}
TO: Ada Lovelace
1 Analysis Way
San Francisco, CA 94107

Please find enclosed the signed lease renewal for the coming year.
Sincerely, Alex Rivera
```

Share a Contact card instead of typing the address and paperplane reads the name and postal address straight off it.

## What happens

1. A natural-language message goes through an AI read that asks clarifying questions and can call the same `quote_letter` / `send_letter` tools MCP agents use — the `TO:` block and Contact-card formats skip straight to deterministic parsing. Either way lands on the same recipient + letter text.
2. We verify the address, quote a price, and reply with the total.
3. Nothing is mailed until you reply with an explicit yes-style confirmation to that specific quote. A `send_letter` call is never executed as an actual send in the same turn it's decided on — only a later, explicit confirmation against an already-priced quote spends it.
4. We create the order and reply with the tracking link.

## Notes

* The recipient must be a real USPS-verifiable address, same as every other surface.
* Like email, a message with nothing that resolves to an address gets a question back, not a guess.
* A "yes" only ever confirms the specific quote it was minted for — the recipient, letter content, and price are bound to a single-use token, the same mechanism `send_letter` uses everywhere else.
* Test mode: use sandbox-mode orders to test the full flow for free before sending real mail.
