curl --request GET \
--url https://api.smokeball.com/matters/{matterId}/invoices/{invoiceId} \
--header 'Authorization: <api-key>' \
--header 'x-api-key: <api-key>'import requests
url = "https://api.smokeball.com/matters/{matterId}/invoices/{invoiceId}"
headers = {
"x-api-key": "<api-key>",
"Authorization": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>', Authorization: '<api-key>'}};
fetch('https://api.smokeball.com/matters/{matterId}/invoices/{invoiceId}', 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.smokeball.com/matters/{matterId}/invoices/{invoiceId}",
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: <api-key>",
"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"
"net/http"
"io"
)
func main() {
url := "https://api.smokeball.com/matters/{matterId}/invoices/{invoiceId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Authorization", "<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.smokeball.com/matters/{matterId}/invoices/{invoiceId}")
.header("x-api-key", "<api-key>")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.smokeball.com/matters/{matterId}/invoices/{invoiceId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"href": "<string>",
"relation": "<string>",
"method": "GET",
"self": {
"id": "<string>",
"href": "<string>",
"relation": "<string>",
"method": "GET"
},
"id": "16567e88-784c-470e-8952-e5a70fe2eb0c",
"versionId": "39ffde97-eeeb-4747-bb8f-7c7c10b3c985",
"matter": {
"id": "<string>",
"href": "<string>",
"relation": "<string>",
"method": "GET"
},
"matterId": "6398a045-509e-49a2-9268-bb8231fa9340",
"lastUpdatedByUserId": "5fc5ee85-6643-4623-b019-a0dccceafe47",
"description": "Services provided.",
"status": 0,
"invoiceNumber": 10001,
"invoiceTitle": "My First Invoice",
"invoiceTitleLine2": "Subtitle",
"issuedDate": "2022-09-16T00:00:00+00:00",
"dueDate": "2022-09-25T00:00:00+00:00",
"paidDate": "2022-09-20T00:00:00+00:00",
"discount": {
"type": 0,
"fixedDiscount": 100,
"percentage": 10,
"description": "Friend of the Firm"
},
"surcharge": {
"type": 1,
"fixedSurcharge": 100,
"percentage": 123,
"description": "Late Payment Fee",
"applyTo": 1
},
"debtors": [
{
"contact": {
"id": "<string>",
"href": "<string>",
"relation": "<string>",
"method": "GET"
}
}
],
"entries": [
{
"id": "<string>",
"versionId": "<string>",
"type": 0
}
],
"waived": false,
"invoiceTotals": {
"paid": 100,
"billed": 200,
"unpaid": 100,
"unpaidExcInterest": 100,
"writtenOff": 0,
"waived": 0,
"discount": 0,
"total": 100,
"tax": 10,
"interest": 0,
"feeTotal": 100,
"writtenOffFeeTotal": 100,
"expenseTotal": 100,
"writtenOffExpenseTotal": 180
}
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}Get an invoice
Retrieves a specified invoice.
curl --request GET \
--url https://api.smokeball.com/matters/{matterId}/invoices/{invoiceId} \
--header 'Authorization: <api-key>' \
--header 'x-api-key: <api-key>'import requests
url = "https://api.smokeball.com/matters/{matterId}/invoices/{invoiceId}"
headers = {
"x-api-key": "<api-key>",
"Authorization": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>', Authorization: '<api-key>'}};
fetch('https://api.smokeball.com/matters/{matterId}/invoices/{invoiceId}', 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.smokeball.com/matters/{matterId}/invoices/{invoiceId}",
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: <api-key>",
"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"
"net/http"
"io"
)
func main() {
url := "https://api.smokeball.com/matters/{matterId}/invoices/{invoiceId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Authorization", "<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.smokeball.com/matters/{matterId}/invoices/{invoiceId}")
.header("x-api-key", "<api-key>")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.smokeball.com/matters/{matterId}/invoices/{invoiceId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"href": "<string>",
"relation": "<string>",
"method": "GET",
"self": {
"id": "<string>",
"href": "<string>",
"relation": "<string>",
"method": "GET"
},
"id": "16567e88-784c-470e-8952-e5a70fe2eb0c",
"versionId": "39ffde97-eeeb-4747-bb8f-7c7c10b3c985",
"matter": {
"id": "<string>",
"href": "<string>",
"relation": "<string>",
"method": "GET"
},
"matterId": "6398a045-509e-49a2-9268-bb8231fa9340",
"lastUpdatedByUserId": "5fc5ee85-6643-4623-b019-a0dccceafe47",
"description": "Services provided.",
"status": 0,
"invoiceNumber": 10001,
"invoiceTitle": "My First Invoice",
"invoiceTitleLine2": "Subtitle",
"issuedDate": "2022-09-16T00:00:00+00:00",
"dueDate": "2022-09-25T00:00:00+00:00",
"paidDate": "2022-09-20T00:00:00+00:00",
"discount": {
"type": 0,
"fixedDiscount": 100,
"percentage": 10,
"description": "Friend of the Firm"
},
"surcharge": {
"type": 1,
"fixedSurcharge": 100,
"percentage": 123,
"description": "Late Payment Fee",
"applyTo": 1
},
"debtors": [
{
"contact": {
"id": "<string>",
"href": "<string>",
"relation": "<string>",
"method": "GET"
}
}
],
"entries": [
{
"id": "<string>",
"versionId": "<string>",
"type": 0
}
],
"waived": false,
"invoiceTotals": {
"paid": 100,
"billed": 200,
"unpaid": 100,
"unpaidExcInterest": 100,
"writtenOff": 0,
"waived": 0,
"discount": 0,
"total": 100,
"tax": 10,
"interest": 0,
"feeTotal": 100,
"writtenOffFeeTotal": 100,
"expenseTotal": 100,
"writtenOffExpenseTotal": 180
}
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}Response
When request is successful. Returns a 'Invoice' object.
Show child attributes
Show child attributes
The unique identifier of the invoice.
"16567e88-784c-470e-8952-e5a70fe2eb0c"
The unique identifier representing the current version of the invoice.
"39ffde97-eeeb-4747-bb8f-7c7c10b3c985"
A link to the matter associated with the invoice.
Show child attributes
Show child attributes
The unique identifier of the matter this invoice belongs to.
"6398a045-509e-49a2-9268-bb8231fa9340"
The unique identifier of the user who last updated the invoice.
"5fc5ee85-6643-4623-b019-a0dccceafe47"
A short description of the invoice contents or purpose.
"Services provided."
The current status of the invoice.
Possible values: Draft = 0, Final = 1, Paid = 2, Deleted = 3 or Void = 4.
0, 1, 2, 3, 4 0
The sequential number assigned to the invoice.
10001
The main title of the invoice.
"My First Invoice"
The optional second line of the invoice title.
"Subtitle"
The date the invoice was issued.
"2022-09-16T00:00:00+00:00"
The date by which payment for the invoice is due.
"2022-09-25T00:00:00+00:00"
The date the invoice was fully paid.
Only populated if the invoice has been paid in full.
"2022-09-20T00:00:00+00:00"
The discount configuration for the invoice (e.g., fixed or percentage).
See InvoiceTotals.Discount for the actual amount discounted.
Show child attributes
Show child attributes
The surcharge configuration for the invoice (e.g., fixed or percentage).
Show child attributes
Show child attributes
The list of debtors associated with this invoice.
Show child attributes
Show child attributes
The individual entries (fees or expenses) included in the invoice.
Show child attributes
Show child attributes
Indicates whether the invoice has been waived.
false
The calculated totals for the invoice, including billed, paid, unpaid, tax, interest, discounts, etc.
Show child attributes
Show child attributes