Send a Physical Letter (USPS)
send_letterCreate an order for a real, physical letter through the United States Postal Service. It returns a payment link; no paper is printed, postage is bought, or letter is mailed until payment completes. Use this whenever the user asks to mail, post, send by post, or physically send a letter, notice, or document to a street address. This is NOT email — use an email tool for email. US domestic addresses only. Requires a draft_id from create_draft and confirm_total_cents matching the current quote. The letter becomes irreversible once we print it.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| draft_id | Yes | The draft_id returned by create_draft or preview_draft. | |
| idempotency_key | Yes | A key you generate once for this send. Retrying with the same draft_id and the same key returns the original letter instead of mailing a second one. | |
| confirm_total_cents | Yes | The exact total.amount_cents from the current quote, including sales tax. Say the total out loud to the user first; if it does not match the live quote this call fails and no letter is sent. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| quote | Yes | A priced letter. State total.display to the user before sending, and pass total.amount_cents as confirm_total_cents. | |
| status | Yes | The current letter status, including on an idempotent replay. Nothing is printed or mailed until payment completes. | |
| message | Yes | What to tell the user. Relay the link and the total. | |
| order_id | Yes | ||
| letter_id | Yes | ||
| checkout_url | Yes | Give this link to the user. The letter is mailed once payment completes. Null when this call replayed a send whose payment has already completed — there is then nothing to pay and nothing to relay. | |
| mail_date_estimate | Yes | The calendar date (YYYY-MM-DD, New York time) this piece goes to USPS if the payment lands before that day’s 14:30 cutoff. |