curl --request POST \
--url https://api.meetcampfire.com/rev/api/v1/usage-events \
--header 'Content-Type: application/json' \
--data '
{
"performance_obligation": 123,
"usage_date": "2023-12-25",
"description": "<string>",
"quantity": 0,
"input_amount": 0,
"currency": "<string>"
}
'import requests
url = "https://api.meetcampfire.com/rev/api/v1/usage-events"
payload = {
"performance_obligation": 123,
"usage_date": "2023-12-25",
"description": "<string>",
"quantity": 0,
"input_amount": 0,
"currency": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
performance_obligation: 123,
usage_date: '2023-12-25',
description: '<string>',
quantity: 0,
input_amount: 0,
currency: '<string>'
})
};
fetch('https://api.meetcampfire.com/rev/api/v1/usage-events', 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.meetcampfire.com/rev/api/v1/usage-events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'performance_obligation' => 123,
'usage_date' => '2023-12-25',
'description' => '<string>',
'quantity' => 0,
'input_amount' => 0,
'currency' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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.meetcampfire.com/rev/api/v1/usage-events"
payload := strings.NewReader("{\n \"performance_obligation\": 123,\n \"usage_date\": \"2023-12-25\",\n \"description\": \"<string>\",\n \"quantity\": 0,\n \"input_amount\": 0,\n \"currency\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.post("https://api.meetcampfire.com/rev/api/v1/usage-events")
.header("Content-Type", "application/json")
.body("{\n \"performance_obligation\": 123,\n \"usage_date\": \"2023-12-25\",\n \"description\": \"<string>\",\n \"quantity\": 0,\n \"input_amount\": 0,\n \"currency\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meetcampfire.com/rev/api/v1/usage-events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"performance_obligation\": 123,\n \"usage_date\": \"2023-12-25\",\n \"description\": \"<string>\",\n \"quantity\": 0,\n \"input_amount\": 0,\n \"currency\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"performance_obligation": 123,
"obligation_name": "<string>",
"contract": 123,
"contract_name": "<string>",
"contract_number": "<string>",
"client_name": "<string>",
"usage_date": "2023-12-25",
"records": [
{
"id": 123,
"performance_obligation": 123,
"obligation_name": "<string>",
"contract": 123,
"contract_name": "<string>",
"contract_number": "<string>",
"client_name": "<string>",
"usage_event": 123,
"input_type": "<string>",
"usage_date": "2023-12-25",
"billed_invoice": 123,
"billed_invoice_number": "<string>",
"billed_invoice_status": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"last_modified_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"quantity": 0,
"rate": 0,
"pricing": "COMMIT",
"currency": "<string>",
"amount": 0
}
],
"created_at": "2023-11-07T05:31:56Z",
"last_modified_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"input_type": "QUANTITY",
"quantity": 0,
"input_amount": 0,
"currency": "<string>"
}Create Usage Event
Reported usage facts — the write path for the usage ledger. Creating an
event prices its quantity into ledger rows (commit vs overage segments),
returned inline as records.
curl --request POST \
--url https://api.meetcampfire.com/rev/api/v1/usage-events \
--header 'Content-Type: application/json' \
--data '
{
"performance_obligation": 123,
"usage_date": "2023-12-25",
"description": "<string>",
"quantity": 0,
"input_amount": 0,
"currency": "<string>"
}
'import requests
url = "https://api.meetcampfire.com/rev/api/v1/usage-events"
payload = {
"performance_obligation": 123,
"usage_date": "2023-12-25",
"description": "<string>",
"quantity": 0,
"input_amount": 0,
"currency": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
performance_obligation: 123,
usage_date: '2023-12-25',
description: '<string>',
quantity: 0,
input_amount: 0,
currency: '<string>'
})
};
fetch('https://api.meetcampfire.com/rev/api/v1/usage-events', 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.meetcampfire.com/rev/api/v1/usage-events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'performance_obligation' => 123,
'usage_date' => '2023-12-25',
'description' => '<string>',
'quantity' => 0,
'input_amount' => 0,
'currency' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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.meetcampfire.com/rev/api/v1/usage-events"
payload := strings.NewReader("{\n \"performance_obligation\": 123,\n \"usage_date\": \"2023-12-25\",\n \"description\": \"<string>\",\n \"quantity\": 0,\n \"input_amount\": 0,\n \"currency\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.post("https://api.meetcampfire.com/rev/api/v1/usage-events")
.header("Content-Type", "application/json")
.body("{\n \"performance_obligation\": 123,\n \"usage_date\": \"2023-12-25\",\n \"description\": \"<string>\",\n \"quantity\": 0,\n \"input_amount\": 0,\n \"currency\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meetcampfire.com/rev/api/v1/usage-events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"performance_obligation\": 123,\n \"usage_date\": \"2023-12-25\",\n \"description\": \"<string>\",\n \"quantity\": 0,\n \"input_amount\": 0,\n \"currency\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"performance_obligation": 123,
"obligation_name": "<string>",
"contract": 123,
"contract_name": "<string>",
"contract_number": "<string>",
"client_name": "<string>",
"usage_date": "2023-12-25",
"records": [
{
"id": 123,
"performance_obligation": 123,
"obligation_name": "<string>",
"contract": 123,
"contract_name": "<string>",
"contract_number": "<string>",
"client_name": "<string>",
"usage_event": 123,
"input_type": "<string>",
"usage_date": "2023-12-25",
"billed_invoice": 123,
"billed_invoice_number": "<string>",
"billed_invoice_status": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"last_modified_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"quantity": 0,
"rate": 0,
"pricing": "COMMIT",
"currency": "<string>",
"amount": 0
}
],
"created_at": "2023-11-07T05:31:56Z",
"last_modified_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"input_type": "QUANTITY",
"quantity": 0,
"input_amount": 0,
"currency": "<string>"
}Body
A reported usage fact — the client write path. The server either prices
its quantity or accepts its raw dollar amount, then expands it into ledger
rows (records).
500Whether the event reports units to rate or a raw dollar amount.
QUANTITY- QuantityDOLLARS- Dollar amount
QUANTITY, DOLLARS -100000000000 < x < 100000000000Direct billed amount for dollar events; negative values correct prior consumption.
-10000000000000 < x < 100000000000003Response
A reported usage fact — the client write path. The server either prices
its quantity or accepts its raw dollar amount, then expands it into ledger
rows (records).
Show child attributes
Show child attributes
500Whether the event reports units to rate or a raw dollar amount.
QUANTITY- QuantityDOLLARS- Dollar amount
QUANTITY, DOLLARS -100000000000 < x < 100000000000Direct billed amount for dollar events; negative values correct prior consumption.
-10000000000000 < x < 100000000000003