PUT /:document-type/:document-id/email-document.json
Sends an estimate by email.
Example Request
curl
curl --request PUT \
--url 'https://account_name.app.invoicexpress.com/:document-type/:document-id/email-document.json?api_key=YOUR%20API%20KEY%20HERE' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{"message":{"client":{"email":"someone@example.com","save":"0"},"subject":"Invoice from company","body":"This is where the email body goes","cc":"cc.client@company.com","bcc":"bcc.client@company.com","logo":"0"}}'
Ruby
require 'uri'
require 'net/http'
url = URI("https://account_name.app.invoicexpress.com/:document-type/:document-id/email-document.json?api_key=YOUR%20API%20KEY%20HERE")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Put.new(url)
request["accept"] = 'application/json'
request["content-type"] = 'application/json'
request.body = "{\"message\":{\"client\":{\"email\":\"someone@example.com\",\"save\":\"0\"},\"subject\":\"Invoice from company\",\"body\":\"This is where the email body goes\",\"cc\":\"cc.client@company.com\",\"bcc\":\"bcc.client@company.com\",\"logo\":\"0\"}}"
response = http.request(request)
puts response.read_body
Node
var http = require("https");
var options = {
"method": "PUT",
"hostname": "account_name.app.invoicexpress.com",
"port": null,
"path": "/:document-type/:document-id/email-document.json?api_key=YOUR%20API%20KEY%20HERE",
"headers": {
"accept": "application/json",
"content-type": "application/json"
}
};
var req = http.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function () {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.write(JSON.stringify({ message:
{ client: { email: 'someone@example.com', save: '0' },
subject: 'Invoice from company',
body: 'This is where the email body goes',
cc: 'cc.client@company.com',
bcc: 'bcc.client@company.com',
logo: '0' } }));
req.end();
Python
import http.client
conn = http.client.HTTPSConnection("account_name.app.invoicexpress.com")
payload = "{\"message\":{\"client\":{\"email\":\"someone@example.com\",\"save\":\"0\"},\"subject\":\"Invoice from company\",\"body\":\"This is where the email body goes\",\"cc\":\"cc.client@company.com\",\"bcc\":\"bcc.client@company.com\",\"logo\":\"0\"}}"
headers = {
'accept': "application/json",
'content-type': "application/json"
}
conn.request("PUT", "/:document-type/:document-id/email-document.json?api_key=YOUR%20API%20KEY%20HERE", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
PHP
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://account_name.app.invoicexpress.com/:document-type/:document-id/email-document.json?api_key=YOUR%20API%20KEY%20HERE",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => "{\"message\":{\"client\":{\"email\":\"someone@example.com\",\"save\":\"0\"},\"subject\":\"Invoice from company\",\"body\":\"This is where the email body goes\",\"cc\":\"cc.client@company.com\",\"bcc\":\"bcc.client@company.com\",\"logo\":\"0\"}}",
CURLOPT_HTTPHEADER => array(
"accept: application/json",
"content-type: application/json"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
Go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://account_name.app.invoicexpress.com/:document-type/:document-id/email-document.json?api_key=YOUR%20API%20KEY%20HERE"
payload := strings.NewReader("{\"message\":{\"client\":{\"email\":\"someone@example.com\",\"save\":\"0\"},\"subject\":\"Invoice from company\",\"body\":\"This is where the email body goes\",\"cc\":\"cc.client@company.com\",\"bcc\":\"bcc.client@company.com\",\"logo\":\"0\"}}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("accept", "application/json")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
Path Parameters
Name | Type | Required | Description | Example |
---|---|---|---|---|
document-type | String | Required | The type of estimate you wish to send by email: quotes, proformas or fees_notes. | quotes |
document-id | Integer | Required | ID of the document to send by email. | 42 |
Request Body
Name | Type | Required | Description |
---|---|---|---|
message | Object | Required | Email data. |
client | Object | Client email and save options. | |
email | String | Required | Document will be sent to this email address. Must be a valid email address: foo@bar.com |
save | String | Required | Saves this email as your client email address. (0 – Does not save the client’s email. 1 – Saves / Updates the client’s email). |
subject | String | The subject of the email. | |
body | String | The body of the email. | |
cc | String | Email CC field. Must be a valid email address ex: foo@bar.com | |
bcc | String | Email BCC field. Must be a valid email address ex: foo@bar.com | |
logo | String | Send email with logo. Defaults to 0. Only available in some plans. It’s ignored if the account doesn’t have the logo configured. Not available for trial accounts. (0 – Send email without logo. 1 – Send email with logo ) |
Example Body
{
"message": {
"client": {
"email": "someone@example.com",
"save": "0"
},
"subject": "Invoice from company",
"body": "This is where the email body goes",
"cc": "cc.client@company.com",
"bcc": "bcc.client@company.com",
"logo": "0"
}
}
Responses
200 | SUCCESS The email was sent successfully. | (Empty Response) |
401 | ACCESS DENIED The API Key parameter is missing or is incorrectly entered. | (Empty Response) |
404 | NOT FOUND The supplied :document-id doesn’t match any existing document. | (Empty Response) |
422 | UNPROCESSABLE ENTITY Some parameters sent were incorrect. | (Empty Response) |