curl --request PUT \
--url https://api.decodahealth.com/billing/quote/{quote_id} \
--header 'API-KEY: <api-key>' \
--header 'Content-Type: application/json' \
--header 'TENANT: <tenant>' \
--data '
{
"title": "<string>",
"description": "<string>",
"validUntilDate": "2023-11-07T05:31:56Z",
"terms": "<string>",
"internalNotes": "<string>",
"requiresPatientVerification": true,
"discountAmount": 123,
"discountPercentage": 123
}
'import requests
url = "https://api.decodahealth.com/billing/quote/{quote_id}"
payload = {
"title": "<string>",
"description": "<string>",
"validUntilDate": "2023-11-07T05:31:56Z",
"terms": "<string>",
"internalNotes": "<string>",
"requiresPatientVerification": True,
"discountAmount": 123,
"discountPercentage": 123
}
headers = {
"TENANT": "<tenant>",
"API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {TENANT: '<tenant>', 'API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
description: '<string>',
validUntilDate: '2023-11-07T05:31:56Z',
terms: '<string>',
internalNotes: '<string>',
requiresPatientVerification: true,
discountAmount: 123,
discountPercentage: 123
})
};
fetch('https://api.decodahealth.com/billing/quote/{quote_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.decodahealth.com/billing/quote/{quote_id}",
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([
'title' => '<string>',
'description' => '<string>',
'validUntilDate' => '2023-11-07T05:31:56Z',
'terms' => '<string>',
'internalNotes' => '<string>',
'requiresPatientVerification' => true,
'discountAmount' => 123,
'discountPercentage' => 123
]),
CURLOPT_HTTPHEADER => [
"API-KEY: <api-key>",
"Content-Type: application/json",
"TENANT: <tenant>"
],
]);
$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.decodahealth.com/billing/quote/{quote_id}"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"validUntilDate\": \"2023-11-07T05:31:56Z\",\n \"terms\": \"<string>\",\n \"internalNotes\": \"<string>\",\n \"requiresPatientVerification\": true,\n \"discountAmount\": 123,\n \"discountPercentage\": 123\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("TENANT", "<tenant>")
req.Header.Add("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.put("https://api.decodahealth.com/billing/quote/{quote_id}")
.header("TENANT", "<tenant>")
.header("API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"validUntilDate\": \"2023-11-07T05:31:56Z\",\n \"terms\": \"<string>\",\n \"internalNotes\": \"<string>\",\n \"requiresPatientVerification\": true,\n \"discountAmount\": 123,\n \"discountPercentage\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.decodahealth.com/billing/quote/{quote_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["TENANT"] = '<tenant>'
request["API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"validUntilDate\": \"2023-11-07T05:31:56Z\",\n \"terms\": \"<string>\",\n \"internalNotes\": \"<string>\",\n \"requiresPatientVerification\": true,\n \"discountAmount\": 123,\n \"discountPercentage\": 123\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"patientId": "<string>",
"status": "DRAFT",
"discountAmount": 123,
"discountPercentage": 123,
"taxAmount": 123,
"total": 123,
"subtotal": 123,
"creatorId": "<string>",
"chargeId": "<string>",
"title": "<string>",
"itemCount": 0,
"packageCount": 0,
"createdDate": "2023-11-07T05:31:56Z",
"updatedDate": "2023-11-07T05:31:56Z",
"validUntilDate": "2023-11-07T05:31:56Z",
"sentDate": "2023-11-07T05:31:56Z",
"viewedDate": "2023-11-07T05:31:56Z",
"respondedDate": "2023-11-07T05:31:56Z",
"internalNotes": "<string>",
"creator": {
"id": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"createdDate": "2023-11-07T05:31:56Z"
},
"patient": {
"id": "<string>",
"type": "PROVIDER",
"createdDate": "2023-11-07T05:31:56Z",
"firstName": "<string>",
"lastName": "<string>",
"phoneNumber": "<string>",
"email": "<string>",
"locationId": "<string>",
"externalId": "<string>",
"address": "<string>",
"addressLineTwo": "<string>",
"city": "<string>",
"state": "<string>",
"zipCode": "<string>",
"country": "<string>",
"addressValid": true,
"meta": {},
"isArchived": true,
"primaryLocationId": "<string>",
"gender": "<string>",
"dateOfBirth": "2023-12-25",
"patientMedications": [
"<string>"
],
"onSchedulingBlacklist": true,
"surchargeDisabled": true,
"tags": [
{
"id": "<string>",
"name": "<string>",
"isActive": true,
"createdDate": "2023-11-07T05:31:56Z",
"emoji": "<string>",
"color": "<string>",
"updatedDate": "2023-11-07T05:31:56Z"
}
],
"creditBalance": 123,
"preferredProviderId": "<string>"
},
"description": "<string>",
"terms": "<string>",
"items": [],
"convertedChargeId": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Update Quote
Update quote details like status, discounts, terms, etc. Recalculates totals if discounts are modified.
curl --request PUT \
--url https://api.decodahealth.com/billing/quote/{quote_id} \
--header 'API-KEY: <api-key>' \
--header 'Content-Type: application/json' \
--header 'TENANT: <tenant>' \
--data '
{
"title": "<string>",
"description": "<string>",
"validUntilDate": "2023-11-07T05:31:56Z",
"terms": "<string>",
"internalNotes": "<string>",
"requiresPatientVerification": true,
"discountAmount": 123,
"discountPercentage": 123
}
'import requests
url = "https://api.decodahealth.com/billing/quote/{quote_id}"
payload = {
"title": "<string>",
"description": "<string>",
"validUntilDate": "2023-11-07T05:31:56Z",
"terms": "<string>",
"internalNotes": "<string>",
"requiresPatientVerification": True,
"discountAmount": 123,
"discountPercentage": 123
}
headers = {
"TENANT": "<tenant>",
"API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {TENANT: '<tenant>', 'API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
description: '<string>',
validUntilDate: '2023-11-07T05:31:56Z',
terms: '<string>',
internalNotes: '<string>',
requiresPatientVerification: true,
discountAmount: 123,
discountPercentage: 123
})
};
fetch('https://api.decodahealth.com/billing/quote/{quote_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.decodahealth.com/billing/quote/{quote_id}",
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([
'title' => '<string>',
'description' => '<string>',
'validUntilDate' => '2023-11-07T05:31:56Z',
'terms' => '<string>',
'internalNotes' => '<string>',
'requiresPatientVerification' => true,
'discountAmount' => 123,
'discountPercentage' => 123
]),
CURLOPT_HTTPHEADER => [
"API-KEY: <api-key>",
"Content-Type: application/json",
"TENANT: <tenant>"
],
]);
$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.decodahealth.com/billing/quote/{quote_id}"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"validUntilDate\": \"2023-11-07T05:31:56Z\",\n \"terms\": \"<string>\",\n \"internalNotes\": \"<string>\",\n \"requiresPatientVerification\": true,\n \"discountAmount\": 123,\n \"discountPercentage\": 123\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("TENANT", "<tenant>")
req.Header.Add("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.put("https://api.decodahealth.com/billing/quote/{quote_id}")
.header("TENANT", "<tenant>")
.header("API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"validUntilDate\": \"2023-11-07T05:31:56Z\",\n \"terms\": \"<string>\",\n \"internalNotes\": \"<string>\",\n \"requiresPatientVerification\": true,\n \"discountAmount\": 123,\n \"discountPercentage\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.decodahealth.com/billing/quote/{quote_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["TENANT"] = '<tenant>'
request["API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"validUntilDate\": \"2023-11-07T05:31:56Z\",\n \"terms\": \"<string>\",\n \"internalNotes\": \"<string>\",\n \"requiresPatientVerification\": true,\n \"discountAmount\": 123,\n \"discountPercentage\": 123\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"patientId": "<string>",
"status": "DRAFT",
"discountAmount": 123,
"discountPercentage": 123,
"taxAmount": 123,
"total": 123,
"subtotal": 123,
"creatorId": "<string>",
"chargeId": "<string>",
"title": "<string>",
"itemCount": 0,
"packageCount": 0,
"createdDate": "2023-11-07T05:31:56Z",
"updatedDate": "2023-11-07T05:31:56Z",
"validUntilDate": "2023-11-07T05:31:56Z",
"sentDate": "2023-11-07T05:31:56Z",
"viewedDate": "2023-11-07T05:31:56Z",
"respondedDate": "2023-11-07T05:31:56Z",
"internalNotes": "<string>",
"creator": {
"id": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"createdDate": "2023-11-07T05:31:56Z"
},
"patient": {
"id": "<string>",
"type": "PROVIDER",
"createdDate": "2023-11-07T05:31:56Z",
"firstName": "<string>",
"lastName": "<string>",
"phoneNumber": "<string>",
"email": "<string>",
"locationId": "<string>",
"externalId": "<string>",
"address": "<string>",
"addressLineTwo": "<string>",
"city": "<string>",
"state": "<string>",
"zipCode": "<string>",
"country": "<string>",
"addressValid": true,
"meta": {},
"isArchived": true,
"primaryLocationId": "<string>",
"gender": "<string>",
"dateOfBirth": "2023-12-25",
"patientMedications": [
"<string>"
],
"onSchedulingBlacklist": true,
"surchargeDisabled": true,
"tags": [
{
"id": "<string>",
"name": "<string>",
"isActive": true,
"createdDate": "2023-11-07T05:31:56Z",
"emoji": "<string>",
"color": "<string>",
"updatedDate": "2023-11-07T05:31:56Z"
}
],
"creditBalance": 123,
"preferredProviderId": "<string>"
},
"description": "<string>",
"terms": "<string>",
"items": [],
"convertedChargeId": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Headers
The tenant you are making this request on behalf of
Your api key
Path Parameters
Body
Schema for updating quote details.
Quote status
DRAFT, SENT, VIEWED, ACCEPTED, DECLINED, EXPIRED, CONVERTED Title/subject of the quote
Description of the quote
When the quote expires
Terms and conditions
Internal notes
Require patient verification to view
Overall quote discount in cents
Overall quote discount percentage
Response
Successful Response
Detailed schema for quote with all items and packages.
Quote ID
Patient ID
Quote status
DRAFT, SENT, VIEWED, ACCEPTED, DECLINED, EXPIRED, CONVERTED Total discount in cents
Overall discount percentage
Total tax in cents
Final total in cents
Calculate subtotal from items after item-level discounts.
Creator ID
Source draft charge ID
Title/subject of the quote
Number of items in quote
Number of packages in quote
Date the quote was created
Date the quote was last updated
When the quote expires
When the quote was sent
When the patient first viewed the quote
When the patient responded to the quote
Internal notes
Creator details
Show child attributes
Show child attributes
Patient details
Show child attributes
Show child attributes
Description of the quote
Terms and conditions
Items and packages in the quote
Show child attributes
Show child attributes
ID of charge if quote was converted

