curl --request PUT \
--url https://api.sonderplan.com/v2/invoice \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"client": [
{
"uuid": "p4",
"contact_person": {
"id": 2837
}
}
],
"id": 1,
"prefix": "INV-",
"number": 892,
"date": 1547501100,
"date_time_iso": "2022-02-22T09:00:00+11:00",
"due_date": 1547501100,
"due_date_time_iso": "2022-02-22T09:00:00+11:00",
"items": [
{
"id": 982342,
"item_text": "Edit Suite 1 Grading",
"item_uuid": "r2394",
"ratescheme_id": 989234,
"description": "Session booked between 10th Jan -> 12th Jan 2023",
"quantity": "2.4",
"unit": "hourly",
"unit_amount": "20.65",
"unit_buy_amount": "10.15",
"tax": true,
"taxes": [
{
"id": 3247,
"name": "GST",
"rate": "10.00",
"total": "151.00"
}
],
"discount": "20.00%",
"buy_total": "200.00",
"buy_total_fixed": false,
"order": 2,
"parent_group_id": 234842
}
],
"groups": [
{
"id": 23425,
"name": "Video Editing Services",
"description": "Includes all editing services",
"order": 2,
"hide_items": true
}
],
"status": [
{
"id": 2
}
],
"project": [
{
"id": 2342354,
"start": 1547501100,
"end": 1547538900
}
],
"custom_fields": [
{
"id": 7823,
"name": "Type",
"value": "Video Editing",
"value_id": 8973,
"update_key": "2_1_7823"
}
],
"terms": "Payment to be made in 30 days",
"template_id": 213,
"cloned_id": 545647,
"reference": "QU-9893",
"currency": "AUD",
"created_sp_flag": "true"
}
'import requests
url = "https://api.sonderplan.com/v2/invoice"
payload = {
"client": [
{
"uuid": "p4",
"contact_person": { "id": 2837 }
}
],
"id": 1,
"prefix": "INV-",
"number": 892,
"date": 1547501100,
"date_time_iso": "2022-02-22T09:00:00+11:00",
"due_date": 1547501100,
"due_date_time_iso": "2022-02-22T09:00:00+11:00",
"items": [
{
"id": 982342,
"item_text": "Edit Suite 1 Grading",
"item_uuid": "r2394",
"ratescheme_id": 989234,
"description": "Session booked between 10th Jan -> 12th Jan 2023",
"quantity": "2.4",
"unit": "hourly",
"unit_amount": "20.65",
"unit_buy_amount": "10.15",
"tax": True,
"taxes": [
{
"id": 3247,
"name": "GST",
"rate": "10.00",
"total": "151.00"
}
],
"discount": "20.00%",
"buy_total": "200.00",
"buy_total_fixed": False,
"order": 2,
"parent_group_id": 234842
}
],
"groups": [
{
"id": 23425,
"name": "Video Editing Services",
"description": "Includes all editing services",
"order": 2,
"hide_items": True
}
],
"status": [{ "id": 2 }],
"project": [
{
"id": 2342354,
"start": 1547501100,
"end": 1547538900
}
],
"custom_fields": [
{
"id": 7823,
"name": "Type",
"value": "Video Editing",
"value_id": 8973,
"update_key": "2_1_7823"
}
],
"terms": "Payment to be made in 30 days",
"template_id": 213,
"cloned_id": 545647,
"reference": "QU-9893",
"currency": "AUD",
"created_sp_flag": "true"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
client: [{uuid: 'p4', contact_person: {id: 2837}}],
id: 1,
prefix: 'INV-',
number: 892,
date: 1547501100,
date_time_iso: '2022-02-22T09:00:00+11:00',
due_date: 1547501100,
due_date_time_iso: '2022-02-22T09:00:00+11:00',
items: [
{
id: 982342,
item_text: 'Edit Suite 1 Grading',
item_uuid: 'r2394',
ratescheme_id: 989234,
description: 'Session booked between 10th Jan -> 12th Jan 2023',
quantity: '2.4',
unit: 'hourly',
unit_amount: '20.65',
unit_buy_amount: '10.15',
tax: true,
taxes: [{id: 3247, name: 'GST', rate: '10.00', total: '151.00'}],
discount: '20.00%',
buy_total: '200.00',
buy_total_fixed: false,
order: 2,
parent_group_id: 234842
}
],
groups: [
{
id: 23425,
name: 'Video Editing Services',
description: 'Includes all editing services',
order: 2,
hide_items: true
}
],
status: [{id: 2}],
project: [{id: 2342354, start: 1547501100, end: 1547538900}],
custom_fields: [
{
id: 7823,
name: 'Type',
value: 'Video Editing',
value_id: 8973,
update_key: '2_1_7823'
}
],
terms: 'Payment to be made in 30 days',
template_id: 213,
cloned_id: 545647,
reference: 'QU-9893',
currency: 'AUD',
created_sp_flag: 'true'
})
};
fetch('https://api.sonderplan.com/v2/invoice', 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.sonderplan.com/v2/invoice",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'client' => [
[
'uuid' => 'p4',
'contact_person' => [
'id' => 2837
]
]
],
'id' => 1,
'prefix' => 'INV-',
'number' => 892,
'date' => 1547501100,
'date_time_iso' => '2022-02-22T09:00:00+11:00',
'due_date' => 1547501100,
'due_date_time_iso' => '2022-02-22T09:00:00+11:00',
'items' => [
[
'id' => 982342,
'item_text' => 'Edit Suite 1 Grading',
'item_uuid' => 'r2394',
'ratescheme_id' => 989234,
'description' => 'Session booked between 10th Jan -> 12th Jan 2023',
'quantity' => '2.4',
'unit' => 'hourly',
'unit_amount' => '20.65',
'unit_buy_amount' => '10.15',
'tax' => true,
'taxes' => [
[
'id' => 3247,
'name' => 'GST',
'rate' => '10.00',
'total' => '151.00'
]
],
'discount' => '20.00%',
'buy_total' => '200.00',
'buy_total_fixed' => false,
'order' => 2,
'parent_group_id' => 234842
]
],
'groups' => [
[
'id' => 23425,
'name' => 'Video Editing Services',
'description' => 'Includes all editing services',
'order' => 2,
'hide_items' => true
]
],
'status' => [
[
'id' => 2
]
],
'project' => [
[
'id' => 2342354,
'start' => 1547501100,
'end' => 1547538900
]
],
'custom_fields' => [
[
'id' => 7823,
'name' => 'Type',
'value' => 'Video Editing',
'value_id' => 8973,
'update_key' => '2_1_7823'
]
],
'terms' => 'Payment to be made in 30 days',
'template_id' => 213,
'cloned_id' => 545647,
'reference' => 'QU-9893',
'currency' => 'AUD',
'created_sp_flag' => 'true'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.sonderplan.com/v2/invoice"
payload := strings.NewReader("{\n \"client\": [\n {\n \"uuid\": \"p4\",\n \"contact_person\": {\n \"id\": 2837\n }\n }\n ],\n \"id\": 1,\n \"prefix\": \"INV-\",\n \"number\": 892,\n \"date\": 1547501100,\n \"date_time_iso\": \"2022-02-22T09:00:00+11:00\",\n \"due_date\": 1547501100,\n \"due_date_time_iso\": \"2022-02-22T09:00:00+11:00\",\n \"items\": [\n {\n \"id\": 982342,\n \"item_text\": \"Edit Suite 1 Grading\",\n \"item_uuid\": \"r2394\",\n \"ratescheme_id\": 989234,\n \"description\": \"Session booked between 10th Jan -> 12th Jan 2023\",\n \"quantity\": \"2.4\",\n \"unit\": \"hourly\",\n \"unit_amount\": \"20.65\",\n \"unit_buy_amount\": \"10.15\",\n \"tax\": true,\n \"taxes\": [\n {\n \"id\": 3247,\n \"name\": \"GST\",\n \"rate\": \"10.00\",\n \"total\": \"151.00\"\n }\n ],\n \"discount\": \"20.00%\",\n \"buy_total\": \"200.00\",\n \"buy_total_fixed\": false,\n \"order\": 2,\n \"parent_group_id\": 234842\n }\n ],\n \"groups\": [\n {\n \"id\": 23425,\n \"name\": \"Video Editing Services\",\n \"description\": \"Includes all editing services\",\n \"order\": 2,\n \"hide_items\": true\n }\n ],\n \"status\": [\n {\n \"id\": 2\n }\n ],\n \"project\": [\n {\n \"id\": 2342354,\n \"start\": 1547501100,\n \"end\": 1547538900\n }\n ],\n \"custom_fields\": [\n {\n \"id\": 7823,\n \"name\": \"Type\",\n \"value\": \"Video Editing\",\n \"value_id\": 8973,\n \"update_key\": \"2_1_7823\"\n }\n ],\n \"terms\": \"Payment to be made in 30 days\",\n \"template_id\": 213,\n \"cloned_id\": 545647,\n \"reference\": \"QU-9893\",\n \"currency\": \"AUD\",\n \"created_sp_flag\": \"true\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://api.sonderplan.com/v2/invoice")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"client\": [\n {\n \"uuid\": \"p4\",\n \"contact_person\": {\n \"id\": 2837\n }\n }\n ],\n \"id\": 1,\n \"prefix\": \"INV-\",\n \"number\": 892,\n \"date\": 1547501100,\n \"date_time_iso\": \"2022-02-22T09:00:00+11:00\",\n \"due_date\": 1547501100,\n \"due_date_time_iso\": \"2022-02-22T09:00:00+11:00\",\n \"items\": [\n {\n \"id\": 982342,\n \"item_text\": \"Edit Suite 1 Grading\",\n \"item_uuid\": \"r2394\",\n \"ratescheme_id\": 989234,\n \"description\": \"Session booked between 10th Jan -> 12th Jan 2023\",\n \"quantity\": \"2.4\",\n \"unit\": \"hourly\",\n \"unit_amount\": \"20.65\",\n \"unit_buy_amount\": \"10.15\",\n \"tax\": true,\n \"taxes\": [\n {\n \"id\": 3247,\n \"name\": \"GST\",\n \"rate\": \"10.00\",\n \"total\": \"151.00\"\n }\n ],\n \"discount\": \"20.00%\",\n \"buy_total\": \"200.00\",\n \"buy_total_fixed\": false,\n \"order\": 2,\n \"parent_group_id\": 234842\n }\n ],\n \"groups\": [\n {\n \"id\": 23425,\n \"name\": \"Video Editing Services\",\n \"description\": \"Includes all editing services\",\n \"order\": 2,\n \"hide_items\": true\n }\n ],\n \"status\": [\n {\n \"id\": 2\n }\n ],\n \"project\": [\n {\n \"id\": 2342354,\n \"start\": 1547501100,\n \"end\": 1547538900\n }\n ],\n \"custom_fields\": [\n {\n \"id\": 7823,\n \"name\": \"Type\",\n \"value\": \"Video Editing\",\n \"value_id\": 8973,\n \"update_key\": \"2_1_7823\"\n }\n ],\n \"terms\": \"Payment to be made in 30 days\",\n \"template_id\": 213,\n \"cloned_id\": 545647,\n \"reference\": \"QU-9893\",\n \"currency\": \"AUD\",\n \"created_sp_flag\": \"true\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sonderplan.com/v2/invoice")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"client\": [\n {\n \"uuid\": \"p4\",\n \"contact_person\": {\n \"id\": 2837\n }\n }\n ],\n \"id\": 1,\n \"prefix\": \"INV-\",\n \"number\": 892,\n \"date\": 1547501100,\n \"date_time_iso\": \"2022-02-22T09:00:00+11:00\",\n \"due_date\": 1547501100,\n \"due_date_time_iso\": \"2022-02-22T09:00:00+11:00\",\n \"items\": [\n {\n \"id\": 982342,\n \"item_text\": \"Edit Suite 1 Grading\",\n \"item_uuid\": \"r2394\",\n \"ratescheme_id\": 989234,\n \"description\": \"Session booked between 10th Jan -> 12th Jan 2023\",\n \"quantity\": \"2.4\",\n \"unit\": \"hourly\",\n \"unit_amount\": \"20.65\",\n \"unit_buy_amount\": \"10.15\",\n \"tax\": true,\n \"taxes\": [\n {\n \"id\": 3247,\n \"name\": \"GST\",\n \"rate\": \"10.00\",\n \"total\": \"151.00\"\n }\n ],\n \"discount\": \"20.00%\",\n \"buy_total\": \"200.00\",\n \"buy_total_fixed\": false,\n \"order\": 2,\n \"parent_group_id\": 234842\n }\n ],\n \"groups\": [\n {\n \"id\": 23425,\n \"name\": \"Video Editing Services\",\n \"description\": \"Includes all editing services\",\n \"order\": 2,\n \"hide_items\": true\n }\n ],\n \"status\": [\n {\n \"id\": 2\n }\n ],\n \"project\": [\n {\n \"id\": 2342354,\n \"start\": 1547501100,\n \"end\": 1547538900\n }\n ],\n \"custom_fields\": [\n {\n \"id\": 7823,\n \"name\": \"Type\",\n \"value\": \"Video Editing\",\n \"value_id\": 8973,\n \"update_key\": \"2_1_7823\"\n }\n ],\n \"terms\": \"Payment to be made in 30 days\",\n \"template_id\": 213,\n \"cloned_id\": 545647,\n \"reference\": \"QU-9893\",\n \"currency\": \"AUD\",\n \"created_sp_flag\": \"true\"\n}"
response = http.request(request)
puts response.read_body{
"success": {
"id": 1
}
}{
"error": {
"code": "404",
"message": "Requested resource was not found"
}
}Update Invoice
WRITE access to the SALES module is required to access this endpointinvoiceEdited webhook will be fired when this endpoint has run successfullycurl --request PUT \
--url https://api.sonderplan.com/v2/invoice \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"client": [
{
"uuid": "p4",
"contact_person": {
"id": 2837
}
}
],
"id": 1,
"prefix": "INV-",
"number": 892,
"date": 1547501100,
"date_time_iso": "2022-02-22T09:00:00+11:00",
"due_date": 1547501100,
"due_date_time_iso": "2022-02-22T09:00:00+11:00",
"items": [
{
"id": 982342,
"item_text": "Edit Suite 1 Grading",
"item_uuid": "r2394",
"ratescheme_id": 989234,
"description": "Session booked between 10th Jan -> 12th Jan 2023",
"quantity": "2.4",
"unit": "hourly",
"unit_amount": "20.65",
"unit_buy_amount": "10.15",
"tax": true,
"taxes": [
{
"id": 3247,
"name": "GST",
"rate": "10.00",
"total": "151.00"
}
],
"discount": "20.00%",
"buy_total": "200.00",
"buy_total_fixed": false,
"order": 2,
"parent_group_id": 234842
}
],
"groups": [
{
"id": 23425,
"name": "Video Editing Services",
"description": "Includes all editing services",
"order": 2,
"hide_items": true
}
],
"status": [
{
"id": 2
}
],
"project": [
{
"id": 2342354,
"start": 1547501100,
"end": 1547538900
}
],
"custom_fields": [
{
"id": 7823,
"name": "Type",
"value": "Video Editing",
"value_id": 8973,
"update_key": "2_1_7823"
}
],
"terms": "Payment to be made in 30 days",
"template_id": 213,
"cloned_id": 545647,
"reference": "QU-9893",
"currency": "AUD",
"created_sp_flag": "true"
}
'import requests
url = "https://api.sonderplan.com/v2/invoice"
payload = {
"client": [
{
"uuid": "p4",
"contact_person": { "id": 2837 }
}
],
"id": 1,
"prefix": "INV-",
"number": 892,
"date": 1547501100,
"date_time_iso": "2022-02-22T09:00:00+11:00",
"due_date": 1547501100,
"due_date_time_iso": "2022-02-22T09:00:00+11:00",
"items": [
{
"id": 982342,
"item_text": "Edit Suite 1 Grading",
"item_uuid": "r2394",
"ratescheme_id": 989234,
"description": "Session booked between 10th Jan -> 12th Jan 2023",
"quantity": "2.4",
"unit": "hourly",
"unit_amount": "20.65",
"unit_buy_amount": "10.15",
"tax": True,
"taxes": [
{
"id": 3247,
"name": "GST",
"rate": "10.00",
"total": "151.00"
}
],
"discount": "20.00%",
"buy_total": "200.00",
"buy_total_fixed": False,
"order": 2,
"parent_group_id": 234842
}
],
"groups": [
{
"id": 23425,
"name": "Video Editing Services",
"description": "Includes all editing services",
"order": 2,
"hide_items": True
}
],
"status": [{ "id": 2 }],
"project": [
{
"id": 2342354,
"start": 1547501100,
"end": 1547538900
}
],
"custom_fields": [
{
"id": 7823,
"name": "Type",
"value": "Video Editing",
"value_id": 8973,
"update_key": "2_1_7823"
}
],
"terms": "Payment to be made in 30 days",
"template_id": 213,
"cloned_id": 545647,
"reference": "QU-9893",
"currency": "AUD",
"created_sp_flag": "true"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
client: [{uuid: 'p4', contact_person: {id: 2837}}],
id: 1,
prefix: 'INV-',
number: 892,
date: 1547501100,
date_time_iso: '2022-02-22T09:00:00+11:00',
due_date: 1547501100,
due_date_time_iso: '2022-02-22T09:00:00+11:00',
items: [
{
id: 982342,
item_text: 'Edit Suite 1 Grading',
item_uuid: 'r2394',
ratescheme_id: 989234,
description: 'Session booked between 10th Jan -> 12th Jan 2023',
quantity: '2.4',
unit: 'hourly',
unit_amount: '20.65',
unit_buy_amount: '10.15',
tax: true,
taxes: [{id: 3247, name: 'GST', rate: '10.00', total: '151.00'}],
discount: '20.00%',
buy_total: '200.00',
buy_total_fixed: false,
order: 2,
parent_group_id: 234842
}
],
groups: [
{
id: 23425,
name: 'Video Editing Services',
description: 'Includes all editing services',
order: 2,
hide_items: true
}
],
status: [{id: 2}],
project: [{id: 2342354, start: 1547501100, end: 1547538900}],
custom_fields: [
{
id: 7823,
name: 'Type',
value: 'Video Editing',
value_id: 8973,
update_key: '2_1_7823'
}
],
terms: 'Payment to be made in 30 days',
template_id: 213,
cloned_id: 545647,
reference: 'QU-9893',
currency: 'AUD',
created_sp_flag: 'true'
})
};
fetch('https://api.sonderplan.com/v2/invoice', 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.sonderplan.com/v2/invoice",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'client' => [
[
'uuid' => 'p4',
'contact_person' => [
'id' => 2837
]
]
],
'id' => 1,
'prefix' => 'INV-',
'number' => 892,
'date' => 1547501100,
'date_time_iso' => '2022-02-22T09:00:00+11:00',
'due_date' => 1547501100,
'due_date_time_iso' => '2022-02-22T09:00:00+11:00',
'items' => [
[
'id' => 982342,
'item_text' => 'Edit Suite 1 Grading',
'item_uuid' => 'r2394',
'ratescheme_id' => 989234,
'description' => 'Session booked between 10th Jan -> 12th Jan 2023',
'quantity' => '2.4',
'unit' => 'hourly',
'unit_amount' => '20.65',
'unit_buy_amount' => '10.15',
'tax' => true,
'taxes' => [
[
'id' => 3247,
'name' => 'GST',
'rate' => '10.00',
'total' => '151.00'
]
],
'discount' => '20.00%',
'buy_total' => '200.00',
'buy_total_fixed' => false,
'order' => 2,
'parent_group_id' => 234842
]
],
'groups' => [
[
'id' => 23425,
'name' => 'Video Editing Services',
'description' => 'Includes all editing services',
'order' => 2,
'hide_items' => true
]
],
'status' => [
[
'id' => 2
]
],
'project' => [
[
'id' => 2342354,
'start' => 1547501100,
'end' => 1547538900
]
],
'custom_fields' => [
[
'id' => 7823,
'name' => 'Type',
'value' => 'Video Editing',
'value_id' => 8973,
'update_key' => '2_1_7823'
]
],
'terms' => 'Payment to be made in 30 days',
'template_id' => 213,
'cloned_id' => 545647,
'reference' => 'QU-9893',
'currency' => 'AUD',
'created_sp_flag' => 'true'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.sonderplan.com/v2/invoice"
payload := strings.NewReader("{\n \"client\": [\n {\n \"uuid\": \"p4\",\n \"contact_person\": {\n \"id\": 2837\n }\n }\n ],\n \"id\": 1,\n \"prefix\": \"INV-\",\n \"number\": 892,\n \"date\": 1547501100,\n \"date_time_iso\": \"2022-02-22T09:00:00+11:00\",\n \"due_date\": 1547501100,\n \"due_date_time_iso\": \"2022-02-22T09:00:00+11:00\",\n \"items\": [\n {\n \"id\": 982342,\n \"item_text\": \"Edit Suite 1 Grading\",\n \"item_uuid\": \"r2394\",\n \"ratescheme_id\": 989234,\n \"description\": \"Session booked between 10th Jan -> 12th Jan 2023\",\n \"quantity\": \"2.4\",\n \"unit\": \"hourly\",\n \"unit_amount\": \"20.65\",\n \"unit_buy_amount\": \"10.15\",\n \"tax\": true,\n \"taxes\": [\n {\n \"id\": 3247,\n \"name\": \"GST\",\n \"rate\": \"10.00\",\n \"total\": \"151.00\"\n }\n ],\n \"discount\": \"20.00%\",\n \"buy_total\": \"200.00\",\n \"buy_total_fixed\": false,\n \"order\": 2,\n \"parent_group_id\": 234842\n }\n ],\n \"groups\": [\n {\n \"id\": 23425,\n \"name\": \"Video Editing Services\",\n \"description\": \"Includes all editing services\",\n \"order\": 2,\n \"hide_items\": true\n }\n ],\n \"status\": [\n {\n \"id\": 2\n }\n ],\n \"project\": [\n {\n \"id\": 2342354,\n \"start\": 1547501100,\n \"end\": 1547538900\n }\n ],\n \"custom_fields\": [\n {\n \"id\": 7823,\n \"name\": \"Type\",\n \"value\": \"Video Editing\",\n \"value_id\": 8973,\n \"update_key\": \"2_1_7823\"\n }\n ],\n \"terms\": \"Payment to be made in 30 days\",\n \"template_id\": 213,\n \"cloned_id\": 545647,\n \"reference\": \"QU-9893\",\n \"currency\": \"AUD\",\n \"created_sp_flag\": \"true\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://api.sonderplan.com/v2/invoice")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"client\": [\n {\n \"uuid\": \"p4\",\n \"contact_person\": {\n \"id\": 2837\n }\n }\n ],\n \"id\": 1,\n \"prefix\": \"INV-\",\n \"number\": 892,\n \"date\": 1547501100,\n \"date_time_iso\": \"2022-02-22T09:00:00+11:00\",\n \"due_date\": 1547501100,\n \"due_date_time_iso\": \"2022-02-22T09:00:00+11:00\",\n \"items\": [\n {\n \"id\": 982342,\n \"item_text\": \"Edit Suite 1 Grading\",\n \"item_uuid\": \"r2394\",\n \"ratescheme_id\": 989234,\n \"description\": \"Session booked between 10th Jan -> 12th Jan 2023\",\n \"quantity\": \"2.4\",\n \"unit\": \"hourly\",\n \"unit_amount\": \"20.65\",\n \"unit_buy_amount\": \"10.15\",\n \"tax\": true,\n \"taxes\": [\n {\n \"id\": 3247,\n \"name\": \"GST\",\n \"rate\": \"10.00\",\n \"total\": \"151.00\"\n }\n ],\n \"discount\": \"20.00%\",\n \"buy_total\": \"200.00\",\n \"buy_total_fixed\": false,\n \"order\": 2,\n \"parent_group_id\": 234842\n }\n ],\n \"groups\": [\n {\n \"id\": 23425,\n \"name\": \"Video Editing Services\",\n \"description\": \"Includes all editing services\",\n \"order\": 2,\n \"hide_items\": true\n }\n ],\n \"status\": [\n {\n \"id\": 2\n }\n ],\n \"project\": [\n {\n \"id\": 2342354,\n \"start\": 1547501100,\n \"end\": 1547538900\n }\n ],\n \"custom_fields\": [\n {\n \"id\": 7823,\n \"name\": \"Type\",\n \"value\": \"Video Editing\",\n \"value_id\": 8973,\n \"update_key\": \"2_1_7823\"\n }\n ],\n \"terms\": \"Payment to be made in 30 days\",\n \"template_id\": 213,\n \"cloned_id\": 545647,\n \"reference\": \"QU-9893\",\n \"currency\": \"AUD\",\n \"created_sp_flag\": \"true\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sonderplan.com/v2/invoice")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"client\": [\n {\n \"uuid\": \"p4\",\n \"contact_person\": {\n \"id\": 2837\n }\n }\n ],\n \"id\": 1,\n \"prefix\": \"INV-\",\n \"number\": 892,\n \"date\": 1547501100,\n \"date_time_iso\": \"2022-02-22T09:00:00+11:00\",\n \"due_date\": 1547501100,\n \"due_date_time_iso\": \"2022-02-22T09:00:00+11:00\",\n \"items\": [\n {\n \"id\": 982342,\n \"item_text\": \"Edit Suite 1 Grading\",\n \"item_uuid\": \"r2394\",\n \"ratescheme_id\": 989234,\n \"description\": \"Session booked between 10th Jan -> 12th Jan 2023\",\n \"quantity\": \"2.4\",\n \"unit\": \"hourly\",\n \"unit_amount\": \"20.65\",\n \"unit_buy_amount\": \"10.15\",\n \"tax\": true,\n \"taxes\": [\n {\n \"id\": 3247,\n \"name\": \"GST\",\n \"rate\": \"10.00\",\n \"total\": \"151.00\"\n }\n ],\n \"discount\": \"20.00%\",\n \"buy_total\": \"200.00\",\n \"buy_total_fixed\": false,\n \"order\": 2,\n \"parent_group_id\": 234842\n }\n ],\n \"groups\": [\n {\n \"id\": 23425,\n \"name\": \"Video Editing Services\",\n \"description\": \"Includes all editing services\",\n \"order\": 2,\n \"hide_items\": true\n }\n ],\n \"status\": [\n {\n \"id\": 2\n }\n ],\n \"project\": [\n {\n \"id\": 2342354,\n \"start\": 1547501100,\n \"end\": 1547538900\n }\n ],\n \"custom_fields\": [\n {\n \"id\": 7823,\n \"name\": \"Type\",\n \"value\": \"Video Editing\",\n \"value_id\": 8973,\n \"update_key\": \"2_1_7823\"\n }\n ],\n \"terms\": \"Payment to be made in 30 days\",\n \"template_id\": 213,\n \"cloned_id\": 545647,\n \"reference\": \"QU-9893\",\n \"currency\": \"AUD\",\n \"created_sp_flag\": \"true\"\n}"
response = http.request(request)
puts response.read_body{
"success": {
"id": 1
}
}{
"error": {
"code": "404",
"message": "Requested resource was not found"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
The ID of the invoice to update
What validation method should the api use
strict, auto_correct Body
Invoice object that needs to be updated
Standard invoice model that returns most properties by default
Show child attributes
Show child attributes
Automatically generated unique invoice id
1
Prefix to the invoice number
"INV-"
Number of the invoice
892
Unix time of the invoice date
1547501100
ISO-8601 formatted result of the invoice date
"2022-02-22T09:00:00+11:00"
Unix time of the invoice due date
1547501100
ISO-8601 formatted result of the invoice due date
"2022-02-22T09:00:00+11:00"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Specific terms for this invoice
"Payment to be made in 30 days"
The template id selected for this invoice, 0 = Default or no template
213
The id of the quote or invoice that this was duplicated from
545647
Text reference to a quote, invoice or purchase order
"QU-9893"
Currency code (three character format) that this invoice is in
"AUD"
True if this invoice was created in Sonderplan
"true"
Response
Successful Operation
Show child attributes
Show child attributes