> ## Documentation Index
> Fetch the complete documentation index at: https://docs.thepostalcompany.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Send a Draft

> Send a draft letter for printing and postal delivery.

# Send a Draft

Send a letter that is currently in `draft` status. This deducts your balance and queues the letter for printing and delivery.

## Path parameters

<ParamField path="letterId" type="string" required>
  The unique letter ID of the draft to send.
</ParamField>

## Response

<ResponseField name="id" type="string">
  The letter ID.
</ResponseField>

<ResponseField name="status" type="string">
  Will be `"processing"` on success.
</ResponseField>

<ResponseField name="balance_cents" type="integer">
  Your remaining balance in cents after sending.
</ResponseField>

## Examples

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://thepostalcompany.com/api/v1/letters/a1b2c3d4-e5f6-7890-abcd-ef1234567890/send \
    -H "Authorization: Bearer tpc_your_api_key"
  ```

  ```javascript Node.js theme={null}
  const response = await fetch(
    "https://thepostalcompany.com/api/v1/letters/a1b2c3d4-e5f6-7890-abcd-ef1234567890/send",
    {
      method: "POST",
      headers: { "Authorization": "Bearer tpc_your_api_key" },
    }
  );

  const data = await response.json();
  console.log(data.status); // "processing"
  ```
</RequestExample>

<ResponseExample>
  ```json 200 — Success theme={null}
  {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "status": "processing",
    "balance_cents": 750
  }
  ```

  ```json 409 — Not a draft theme={null}
  {
    "error": "Letter cannot be sent — current status is 'sent'"
  }
  ```

  ```json 402 — Insufficient balance theme={null}
  {
    "error": "Insufficient balance",
    "balance_cents": 100,
    "letter_price_cents": 250
  }
  ```

  ```json 404 — Not found theme={null}
  {
    "error": "Letter not found"
  }
  ```
</ResponseExample>

## Error codes

| Status | Description                                         |
| ------ | --------------------------------------------------- |
| `400`  | Letter is missing required content or address       |
| `401`  | Missing, invalid, or revoked API key                |
| `402`  | Insufficient balance                                |
| `404`  | Letter not found or does not belong to your account |
| `409`  | Letter is not in `draft` status                     |
