---
title: "Send Invoice record"
method: POST
path: "/public/v1/invoices/{record_number}/send/"
tags: ["Invoices"]
---

# Send Invoice record

`POST /public/v1/invoices/{record_number}/send/`

Send an existing invoice by email, with the invoice PDF attached.

The path `{record_number}` is the invoice `number`.

The body matches `POST /api/email_send/invoice/` (`to_emails`, `cc_emails`, `bcc_emails`,
`pdf_content`, `subject`, `message`, `sandbox`). `pdf_content` is optional. If it is omitted
or empty, the worker captures the invoice PDF. If `subject` or `message` is omitted or empty,
company invoice email templates are used, then organization defaults.

If `to_emails` is omitted or empty, the customer email on the invoice is used.

A 200 response means the send was accepted, not that
the provider has delivered the message. Emails are sent in the background

## Path parameters

- `record_number` integer, required — The `number` attribute of the record.

## Headers

- `Idempotency-Key` string

## Request body

- PublicInvoiceSendSchemaIn
  - `to_emails` string[]
  - `cc_emails` string[]
  - `bcc_emails` string[]
  - `pdf_content` string, nullable
  - `message` string, nullable
  - `subject` string, nullable
  - `sandbox` boolean, nullable
  - `invoice_id` integer, nullable

## Response `200`

OK

- SuccessSchema
  - `success` true
  - `errors` object

## Other responses

- `404` — Not Found
- `422` — Unprocessable Content
- `500` — Internal Server Error

## Changes

> 27 revisions in range; 1 not diffed.

- **2026-09-21** `1e0766b03014` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/dualentry/apis/dualentry-public-api-2/changes/public/v1/invoices/:record_number/send/post.md)

---

[API](https://skmtc.dev/dualentry/apis/dualentry-public-api-2.md) · [All operations](https://skmtc.dev/dualentry/apis/dualentry-public-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/dualentry/apis/dualentry-public-api-2/revisions/c4df6bca164b?raw)
