curl --request POST \
--url https://api.dualentry.com/public/v3-alpha/invoices/{record_number}/send/ \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"to_emails": [
"<string>"
],
"cc_emails": [
"<string>"
],
"bcc_emails": [
"<string>"
],
"pdf_content": "<string>",
"message": "<string>",
"subject": "<string>",
"sandbox": true,
"invoice_id": 123
}
'import requests
url = "https://api.dualentry.com/public/v3-alpha/invoices/{record_number}/send/"
payload = {
"to_emails": ["<string>"],
"cc_emails": ["<string>"],
"bcc_emails": ["<string>"],
"pdf_content": "<string>",
"message": "<string>",
"subject": "<string>",
"sandbox": True,
"invoice_id": 123
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
to_emails: ['<string>'],
cc_emails: ['<string>'],
bcc_emails: ['<string>'],
pdf_content: '<string>',
message: '<string>',
subject: '<string>',
sandbox: true,
invoice_id: 123
})
};
fetch('https://api.dualentry.com/public/v3-alpha/invoices/{record_number}/send/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dualentry.com/public/v3-alpha/invoices/{record_number}/send/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'to_emails' => [
'<string>'
],
'cc_emails' => [
'<string>'
],
'bcc_emails' => [
'<string>'
],
'pdf_content' => '<string>',
'message' => '<string>',
'subject' => '<string>',
'sandbox' => true,
'invoice_id' => 123
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.dualentry.com/public/v3-alpha/invoices/{record_number}/send/"
payload := strings.NewReader("{\n \"to_emails\": [\n \"<string>\"\n ],\n \"cc_emails\": [\n \"<string>\"\n ],\n \"bcc_emails\": [\n \"<string>\"\n ],\n \"pdf_content\": \"<string>\",\n \"message\": \"<string>\",\n \"subject\": \"<string>\",\n \"sandbox\": true,\n \"invoice_id\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.dualentry.com/public/v3-alpha/invoices/{record_number}/send/")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"to_emails\": [\n \"<string>\"\n ],\n \"cc_emails\": [\n \"<string>\"\n ],\n \"bcc_emails\": [\n \"<string>\"\n ],\n \"pdf_content\": \"<string>\",\n \"message\": \"<string>\",\n \"subject\": \"<string>\",\n \"sandbox\": true,\n \"invoice_id\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dualentry.com/public/v3-alpha/invoices/{record_number}/send/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"to_emails\": [\n \"<string>\"\n ],\n \"cc_emails\": [\n \"<string>\"\n ],\n \"bcc_emails\": [\n \"<string>\"\n ],\n \"pdf_content\": \"<string>\",\n \"message\": \"<string>\",\n \"subject\": \"<string>\",\n \"sandbox\": true,\n \"invoice_id\": 123\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"errors": {}
}{
"errors": {},
"success": false
}{
"errors": {},
"success": false
}{
"errors": {},
"success": false
}Send InvoiceV2 record
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
curl --request POST \
--url https://api.dualentry.com/public/v3-alpha/invoices/{record_number}/send/ \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"to_emails": [
"<string>"
],
"cc_emails": [
"<string>"
],
"bcc_emails": [
"<string>"
],
"pdf_content": "<string>",
"message": "<string>",
"subject": "<string>",
"sandbox": true,
"invoice_id": 123
}
'import requests
url = "https://api.dualentry.com/public/v3-alpha/invoices/{record_number}/send/"
payload = {
"to_emails": ["<string>"],
"cc_emails": ["<string>"],
"bcc_emails": ["<string>"],
"pdf_content": "<string>",
"message": "<string>",
"subject": "<string>",
"sandbox": True,
"invoice_id": 123
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
to_emails: ['<string>'],
cc_emails: ['<string>'],
bcc_emails: ['<string>'],
pdf_content: '<string>',
message: '<string>',
subject: '<string>',
sandbox: true,
invoice_id: 123
})
};
fetch('https://api.dualentry.com/public/v3-alpha/invoices/{record_number}/send/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dualentry.com/public/v3-alpha/invoices/{record_number}/send/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'to_emails' => [
'<string>'
],
'cc_emails' => [
'<string>'
],
'bcc_emails' => [
'<string>'
],
'pdf_content' => '<string>',
'message' => '<string>',
'subject' => '<string>',
'sandbox' => true,
'invoice_id' => 123
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.dualentry.com/public/v3-alpha/invoices/{record_number}/send/"
payload := strings.NewReader("{\n \"to_emails\": [\n \"<string>\"\n ],\n \"cc_emails\": [\n \"<string>\"\n ],\n \"bcc_emails\": [\n \"<string>\"\n ],\n \"pdf_content\": \"<string>\",\n \"message\": \"<string>\",\n \"subject\": \"<string>\",\n \"sandbox\": true,\n \"invoice_id\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.dualentry.com/public/v3-alpha/invoices/{record_number}/send/")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"to_emails\": [\n \"<string>\"\n ],\n \"cc_emails\": [\n \"<string>\"\n ],\n \"bcc_emails\": [\n \"<string>\"\n ],\n \"pdf_content\": \"<string>\",\n \"message\": \"<string>\",\n \"subject\": \"<string>\",\n \"sandbox\": true,\n \"invoice_id\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dualentry.com/public/v3-alpha/invoices/{record_number}/send/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"to_emails\": [\n \"<string>\"\n ],\n \"cc_emails\": [\n \"<string>\"\n ],\n \"bcc_emails\": [\n \"<string>\"\n ],\n \"pdf_content\": \"<string>\",\n \"message\": \"<string>\",\n \"subject\": \"<string>\",\n \"sandbox\": true,\n \"invoice_id\": 123\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"errors": {}
}{
"errors": {},
"success": false
}{
"errors": {},
"success": false
}{
"errors": {},
"success": false
}Authorizations
Headers
Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422.
255Path Parameters
The number attribute of the record.
Body
Was this page helpful?