curl --request POST \
--url https://{your-subdomain}.neetoinvoice.com/api/external/v2/clients/{client_id}/invoices/{invoice_id}/send \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <x-api-key>' \
--data '
{
"recipient_ids": [
"128c1dfc-b29f-4fda-9a05-8a90e197b81b"
],
"subject": "Invoice INV-2026-042 from Your Company",
"message": "Please find attached your invoice for the services rendered.",
"attach_pdf_invoice": true,
"send_me_a_copy": false,
"email": "oliver@example.com"
}
'const options = {
method: 'POST',
headers: {'X-Api-Key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
recipient_ids: ['128c1dfc-b29f-4fda-9a05-8a90e197b81b'],
subject: 'Invoice INV-2026-042 from Your Company',
message: 'Please find attached your invoice for the services rendered.',
attach_pdf_invoice: true,
send_me_a_copy: false,
email: 'oliver@example.com'
})
};
fetch('https://{your-subdomain}.neetoinvoice.com/api/external/v2/clients/{client_id}/invoices/{invoice_id}/send', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{your-subdomain}.neetoinvoice.com/api/external/v2/clients/{client_id}/invoices/{invoice_id}/send"
payload = {
"recipient_ids": ["128c1dfc-b29f-4fda-9a05-8a90e197b81b"],
"subject": "Invoice INV-2026-042 from Your Company",
"message": "Please find attached your invoice for the services rendered.",
"attach_pdf_invoice": True,
"send_me_a_copy": False,
"email": "oliver@example.com"
}
headers = {
"X-Api-Key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"message": "Invoice 'INV-2026-042' emailed to billing@acme.example.com and ap@acme.example.com.",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"number": "INV-2026-042",
"sent_date": "2026-10-15",
"recipient_emails": [
"billing@acme.example.com",
"ap@acme.example.com"
]
}Send an invoice
Email a generated invoice to the client’s recipients and mark it as sent. Without recipient_ids, every current recipient of the client receives it.
curl --request POST \
--url https://{your-subdomain}.neetoinvoice.com/api/external/v2/clients/{client_id}/invoices/{invoice_id}/send \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <x-api-key>' \
--data '
{
"recipient_ids": [
"128c1dfc-b29f-4fda-9a05-8a90e197b81b"
],
"subject": "Invoice INV-2026-042 from Your Company",
"message": "Please find attached your invoice for the services rendered.",
"attach_pdf_invoice": true,
"send_me_a_copy": false,
"email": "oliver@example.com"
}
'const options = {
method: 'POST',
headers: {'X-Api-Key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
recipient_ids: ['128c1dfc-b29f-4fda-9a05-8a90e197b81b'],
subject: 'Invoice INV-2026-042 from Your Company',
message: 'Please find attached your invoice for the services rendered.',
attach_pdf_invoice: true,
send_me_a_copy: false,
email: 'oliver@example.com'
})
};
fetch('https://{your-subdomain}.neetoinvoice.com/api/external/v2/clients/{client_id}/invoices/{invoice_id}/send', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{your-subdomain}.neetoinvoice.com/api/external/v2/clients/{client_id}/invoices/{invoice_id}/send"
payload = {
"recipient_ids": ["128c1dfc-b29f-4fda-9a05-8a90e197b81b"],
"subject": "Invoice INV-2026-042 from Your Company",
"message": "Please find attached your invoice for the services rendered.",
"attach_pdf_invoice": True,
"send_me_a_copy": False,
"email": "oliver@example.com"
}
headers = {
"X-Api-Key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"message": "Invoice 'INV-2026-042' emailed to billing@acme.example.com and ap@acme.example.com.",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"number": "INV-2026-042",
"sent_date": "2026-10-15",
"recipient_emails": [
"billing@acme.example.com",
"ap@acme.example.com"
]
}{your-subdomain} with your workspace’s subdomain. Learn how to find your subdomain in Workspace subdomain.
Headers
Use the X-Api-Key header to provide your workspace API key. Refer to Authentication for more information.
Path Parameters
Unique ID of the client for which you want to retrieve or update details. Refer to Getting the Client ID section for detailed instructions.
The invoice's number as printed on the document, its identifier, or its ID.
Body
IDs of the client's recipients to email. Defaults to every current recipient of the client. Refer to Getting the Recipient ID section for detailed instructions.
["128c1dfc-b29f-4fda-9a05-8a90e197b81b"]
Email subject. Defaults to the organization's standard subject.
"Invoice INV-2026-042 from Your Company"
Email body. Defaults to the organization's standard message, which includes the total with its currency.
"Please find attached your invoice for the services rendered."
Whether to attach the invoice PDF.
true
Whether to also send a copy to the acting user.
false
Email of the acting user. Required when you authenticate with an API key.
"oliver@example.com"
Response
OK - Invoice emailed