Get a Variation Order
curl --request GET \
--url https://api.zivio.net/api/v4/variation_orders/{id} \
--header 'Authorization: Bearer <token>' \
--header 'zivio-tenant-id: <api-key>'import requests
url = "https://api.zivio.net/api/v4/variation_orders/{id}"
headers = {
"Authorization": "Bearer <token>",
"zivio-tenant-id": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {Authorization: 'Bearer <token>', 'zivio-tenant-id': '<api-key>'}
};
fetch('https://api.zivio.net/api/v4/variation_orders/{id}', 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.zivio.net/api/v4/variation_orders/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"zivio-tenant-id: <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"
"net/http"
"io"
)
func main() {
url := "https://api.zivio.net/api/v4/variation_orders/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("zivio-tenant-id", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.zivio.net/api/v4/variation_orders/{id}")
.header("Authorization", "Bearer <token>")
.header("zivio-tenant-id", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zivio.net/api/v4/variation_orders/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
request["zivio-tenant-id"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": 101,
"version_number": 101,
"status": "pending",
"rate": {
"cents": 150000,
"currency": "GBP"
},
"original_rate": {
"cents": 150000,
"currency": "GBP"
},
"additional_terms": "Example additional_terms",
"created_by": {
"id": 101,
"first_name": "Demo",
"last_name": "User",
"email": "user1@example.com",
"org_id": 501,
"org_name": "Acme Corporation"
},
"supplier_contract_template": null,
"client_contract_template": null,
"skip_acceptance": true,
"submitted_at": "2024-01-16T10:30:00+00:00",
"sent_at": "2024-01-16T10:30:00+00:00",
"start_date": "2024-03-08",
"due_on": "2024-01-16",
"expires_at": "2024-01-16T10:30:00+00:00",
"accepted_at": "2024-01-16T10:30:00+00:00",
"approved_at": "2024-01-16T10:30:00+00:00",
"approved_by": {
"id": 101,
"first_name": "Demo",
"last_name": "User",
"email": "user1@example.com",
"org_id": 501,
"org_name": "Acme Corporation"
},
"approver_declined_reason": "Example approver_declined_reason",
"declined_at": "2024-01-16T10:30:00+00:00",
"declined_reason": "Example declined_reason",
"reject_reason": "Example reject_reason",
"milestone_variations": [
{
"id": 101,
"variation_order_id": 501,
"original_title": "Phase 1 Milestone",
"varied_title": "Phase 1 Milestone",
"original_details": "Milestone details and requirements",
"varied_details": "Milestone details and requirements",
"original_due_on": "2024-01-16",
"varied_due_on": "2024-01-16",
"original_rate": {
"cents": 150000,
"currency": "GBP"
},
"varied_rate": {
"cents": 150000,
"currency": "GBP"
},
"original_tiered_markup_fee": {
"cents": 150000,
"currency": "GBP"
},
"varied_tiered_markup_fee": {
"cents": 150000,
"currency": "GBP"
},
"client_suggested": false,
"milestone_id": 501,
"custom_fields": {
"department": "Engineering",
"priority": "high",
"cost_code": "CC-001"
}
},
{
"id": 102,
"variation_order_id": 502,
"original_title": "Phase 2 Milestone",
"varied_title": "Phase 2 Milestone",
"original_details": "Milestone details and requirements",
"varied_details": "Milestone details and requirements",
"original_due_on": "2024-01-17",
"varied_due_on": "2024-01-17",
"original_rate": {
"cents": 300000,
"currency": "GBP"
},
"varied_rate": {
"cents": 300000,
"currency": "GBP"
},
"original_tiered_markup_fee": {
"cents": 300000,
"currency": "GBP"
},
"varied_tiered_markup_fee": {
"cents": 300000,
"currency": "GBP"
},
"client_suggested": false,
"milestone_id": 502,
"custom_fields": {
"department": "Engineering",
"priority": "high",
"cost_code": "CC-001"
}
}
],
"custom_fields": {
"department": "Engineering",
"priority": "high",
"cost_code": "CC-001"
},
"created_at": "2024-01-16T10:30:00+00:00",
"updated_at": "2024-01-16T10:30:00+00:00",
"project": {
"id": 101,
"title": "Website Redesign Project",
"description": "Complete redesign of corporate website with modern UX"
},
"project_line_item_variations": [
{
"id": 101,
"variation_order_id": 501,
"original_name": "Line Item Name",
"varied_name": "Line Item Name",
"original_manufacturer_name": "ACME Manufacturing",
"varied_manufacturer_name": "ACME Manufacturing",
"original_manufacturer_part_number": "PART-1001",
"varied_manufacturer_part_number": "PART-1001",
"original_quantity": "10.0",
"varied_quantity": "10.0",
"original_price": {
"cents": 150000,
"currency": "GBP"
},
"varied_price": {
"cents": 150000,
"currency": "GBP"
},
"original_uom": null,
"varied_uom": null,
"item_id": 501,
"project_line_item_id": 501
},
{
"id": 102,
"variation_order_id": 502,
"original_name": "Line Item Name",
"varied_name": "Line Item Name",
"original_manufacturer_name": "ACME Manufacturing",
"varied_manufacturer_name": "ACME Manufacturing",
"original_manufacturer_part_number": "PART-1002",
"varied_manufacturer_part_number": "PART-1002",
"original_quantity": "10.0",
"varied_quantity": "10.0",
"original_price": {
"cents": 300000,
"currency": "GBP"
},
"varied_price": {
"cents": 300000,
"currency": "GBP"
},
"original_uom": null,
"varied_uom": null,
"item_id": 502,
"project_line_item_id": 502
}
]
}Variation Orders
Get a Variation Order
GET
/
variation_orders
/
{id}
Get a Variation Order
curl --request GET \
--url https://api.zivio.net/api/v4/variation_orders/{id} \
--header 'Authorization: Bearer <token>' \
--header 'zivio-tenant-id: <api-key>'import requests
url = "https://api.zivio.net/api/v4/variation_orders/{id}"
headers = {
"Authorization": "Bearer <token>",
"zivio-tenant-id": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {Authorization: 'Bearer <token>', 'zivio-tenant-id': '<api-key>'}
};
fetch('https://api.zivio.net/api/v4/variation_orders/{id}', 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.zivio.net/api/v4/variation_orders/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"zivio-tenant-id: <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"
"net/http"
"io"
)
func main() {
url := "https://api.zivio.net/api/v4/variation_orders/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("zivio-tenant-id", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.zivio.net/api/v4/variation_orders/{id}")
.header("Authorization", "Bearer <token>")
.header("zivio-tenant-id", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zivio.net/api/v4/variation_orders/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
request["zivio-tenant-id"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": 101,
"version_number": 101,
"status": "pending",
"rate": {
"cents": 150000,
"currency": "GBP"
},
"original_rate": {
"cents": 150000,
"currency": "GBP"
},
"additional_terms": "Example additional_terms",
"created_by": {
"id": 101,
"first_name": "Demo",
"last_name": "User",
"email": "user1@example.com",
"org_id": 501,
"org_name": "Acme Corporation"
},
"supplier_contract_template": null,
"client_contract_template": null,
"skip_acceptance": true,
"submitted_at": "2024-01-16T10:30:00+00:00",
"sent_at": "2024-01-16T10:30:00+00:00",
"start_date": "2024-03-08",
"due_on": "2024-01-16",
"expires_at": "2024-01-16T10:30:00+00:00",
"accepted_at": "2024-01-16T10:30:00+00:00",
"approved_at": "2024-01-16T10:30:00+00:00",
"approved_by": {
"id": 101,
"first_name": "Demo",
"last_name": "User",
"email": "user1@example.com",
"org_id": 501,
"org_name": "Acme Corporation"
},
"approver_declined_reason": "Example approver_declined_reason",
"declined_at": "2024-01-16T10:30:00+00:00",
"declined_reason": "Example declined_reason",
"reject_reason": "Example reject_reason",
"milestone_variations": [
{
"id": 101,
"variation_order_id": 501,
"original_title": "Phase 1 Milestone",
"varied_title": "Phase 1 Milestone",
"original_details": "Milestone details and requirements",
"varied_details": "Milestone details and requirements",
"original_due_on": "2024-01-16",
"varied_due_on": "2024-01-16",
"original_rate": {
"cents": 150000,
"currency": "GBP"
},
"varied_rate": {
"cents": 150000,
"currency": "GBP"
},
"original_tiered_markup_fee": {
"cents": 150000,
"currency": "GBP"
},
"varied_tiered_markup_fee": {
"cents": 150000,
"currency": "GBP"
},
"client_suggested": false,
"milestone_id": 501,
"custom_fields": {
"department": "Engineering",
"priority": "high",
"cost_code": "CC-001"
}
},
{
"id": 102,
"variation_order_id": 502,
"original_title": "Phase 2 Milestone",
"varied_title": "Phase 2 Milestone",
"original_details": "Milestone details and requirements",
"varied_details": "Milestone details and requirements",
"original_due_on": "2024-01-17",
"varied_due_on": "2024-01-17",
"original_rate": {
"cents": 300000,
"currency": "GBP"
},
"varied_rate": {
"cents": 300000,
"currency": "GBP"
},
"original_tiered_markup_fee": {
"cents": 300000,
"currency": "GBP"
},
"varied_tiered_markup_fee": {
"cents": 300000,
"currency": "GBP"
},
"client_suggested": false,
"milestone_id": 502,
"custom_fields": {
"department": "Engineering",
"priority": "high",
"cost_code": "CC-001"
}
}
],
"custom_fields": {
"department": "Engineering",
"priority": "high",
"cost_code": "CC-001"
},
"created_at": "2024-01-16T10:30:00+00:00",
"updated_at": "2024-01-16T10:30:00+00:00",
"project": {
"id": 101,
"title": "Website Redesign Project",
"description": "Complete redesign of corporate website with modern UX"
},
"project_line_item_variations": [
{
"id": 101,
"variation_order_id": 501,
"original_name": "Line Item Name",
"varied_name": "Line Item Name",
"original_manufacturer_name": "ACME Manufacturing",
"varied_manufacturer_name": "ACME Manufacturing",
"original_manufacturer_part_number": "PART-1001",
"varied_manufacturer_part_number": "PART-1001",
"original_quantity": "10.0",
"varied_quantity": "10.0",
"original_price": {
"cents": 150000,
"currency": "GBP"
},
"varied_price": {
"cents": 150000,
"currency": "GBP"
},
"original_uom": null,
"varied_uom": null,
"item_id": 501,
"project_line_item_id": 501
},
{
"id": 102,
"variation_order_id": 502,
"original_name": "Line Item Name",
"varied_name": "Line Item Name",
"original_manufacturer_name": "ACME Manufacturing",
"varied_manufacturer_name": "ACME Manufacturing",
"original_manufacturer_part_number": "PART-1002",
"varied_manufacturer_part_number": "PART-1002",
"original_quantity": "10.0",
"varied_quantity": "10.0",
"original_price": {
"cents": 300000,
"currency": "GBP"
},
"varied_price": {
"cents": 300000,
"currency": "GBP"
},
"original_uom": null,
"varied_uom": null,
"item_id": 502,
"project_line_item_id": 502
}
]
}Authorizations
OAuth 2.0 client credentials. The access token from POST /oauth/token is sent as a bearer token. Request only the scopes you need.
Your Zivio organisation identifier. The regional API endpoints serve every Zivio organisation, so each request must identify yours.
Path Parameters
Variation Order ID
Response
Variation Order details
Available options:
draft, pending, accepted, declined, withdrawn, expired, generating, signature_error, sending, rejected, cancelled, submitted, supplier_draft, supplier_proposed, supplier_rejected Example:
"draft"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Example:
true
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Key-value pairs of custom field data
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes

