Retrieve Product
curl --request GET \
--url https://api.meetcampfire.com/rr/api/v1/product/{id}import requests
url = "https://api.meetcampfire.com/rr/api/v1/product/{id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.meetcampfire.com/rr/api/v1/product/{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.meetcampfire.com/rr/api/v1/product/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.meetcampfire.com/rr/api/v1/product/{id}"
req, _ := http.NewRequest("GET", url, nil)
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.meetcampfire.com/rr/api/v1/product/{id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meetcampfire.com/rr/api/v1/product/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"id": 123,
"is_deleted": false,
"deleted_at": "2023-11-07T05:31:56Z",
"department_name": "<string>",
"invoice_account_name": "<string>",
"revenue_account_name": "<string>",
"ar_account_name": "<string>",
"bad_debt_account_name": "<string>",
"invoice_unbilled_account_name": "<string>",
"tax_account_name": "<string>",
"tags": [
{}
],
"last_modified_at": "2023-11-07T05:31:56Z",
"product_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"display_name": "<string>",
"usage_group_count": 0,
"usage_groups": [
{
"id": 123,
"tier_count": 0,
"tiers": [
{
"id": 123,
"name": "<string>",
"pricing_type": "<string>",
"from_quantity": 0,
"to_quantity": 0,
"price": 0,
"percentage": 0
}
],
"name": "<string>",
"pricing_model": "unit_based",
"unit_of_measure": "<string>"
}
],
"created_at": "2023-11-07T05:31:56Z",
"customer": 123,
"product_id": "<string>",
"product_name": "<string>",
"product_description": "<string>",
"tag_ids": [
0
],
"tag_group_ids": [
0
],
"currency": "<string>",
"price": 0,
"cost": 0,
"exclude_from_mrr": true,
"is_taxable": true,
"is_renewable": true,
"recognize_revenue": true,
"bundled_usage_revenue_recognition_type": "RATABLE",
"is_immediate_recognition": true,
"stripe_product_id": "<string>",
"avalara_item_id": 0,
"avalara_item_data": null,
"avalara_tax_code": "<string>",
"anrok_item_id": "<string>",
"sphere_item_id": "<string>",
"netsuite_item_id": "<string>",
"apply_dept_tag_to_invoice_journals": true,
"department": 123,
"invoice_account": 123,
"revenue_account": 123,
"ar_account": 123,
"bad_debt_account": 123,
"invoice_unbilled_account": 123
}Revenue Recognition
Retrieve Product
GET
/
rr
/
api
/
v1
/
product
/
{id}
Retrieve Product
curl --request GET \
--url https://api.meetcampfire.com/rr/api/v1/product/{id}import requests
url = "https://api.meetcampfire.com/rr/api/v1/product/{id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.meetcampfire.com/rr/api/v1/product/{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.meetcampfire.com/rr/api/v1/product/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.meetcampfire.com/rr/api/v1/product/{id}"
req, _ := http.NewRequest("GET", url, nil)
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.meetcampfire.com/rr/api/v1/product/{id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meetcampfire.com/rr/api/v1/product/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"id": 123,
"is_deleted": false,
"deleted_at": "2023-11-07T05:31:56Z",
"department_name": "<string>",
"invoice_account_name": "<string>",
"revenue_account_name": "<string>",
"ar_account_name": "<string>",
"bad_debt_account_name": "<string>",
"invoice_unbilled_account_name": "<string>",
"tax_account_name": "<string>",
"tags": [
{}
],
"last_modified_at": "2023-11-07T05:31:56Z",
"product_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"display_name": "<string>",
"usage_group_count": 0,
"usage_groups": [
{
"id": 123,
"tier_count": 0,
"tiers": [
{
"id": 123,
"name": "<string>",
"pricing_type": "<string>",
"from_quantity": 0,
"to_quantity": 0,
"price": 0,
"percentage": 0
}
],
"name": "<string>",
"pricing_model": "unit_based",
"unit_of_measure": "<string>"
}
],
"created_at": "2023-11-07T05:31:56Z",
"customer": 123,
"product_id": "<string>",
"product_name": "<string>",
"product_description": "<string>",
"tag_ids": [
0
],
"tag_group_ids": [
0
],
"currency": "<string>",
"price": 0,
"cost": 0,
"exclude_from_mrr": true,
"is_taxable": true,
"is_renewable": true,
"recognize_revenue": true,
"bundled_usage_revenue_recognition_type": "RATABLE",
"is_immediate_recognition": true,
"stripe_product_id": "<string>",
"avalara_item_id": 0,
"avalara_item_data": null,
"avalara_tax_code": "<string>",
"anrok_item_id": "<string>",
"sphere_item_id": "<string>",
"netsuite_item_id": "<string>",
"apply_dept_tag_to_invoice_journals": true,
"department": 123,
"invoice_account": 123,
"revenue_account": 123,
"ar_account": 123,
"bad_debt_account": 123,
"invoice_unbilled_account": 123
}Path Parameters
Response
200 - application/json
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Maximum string length:
250Maximum string length:
250Maximum string length:
250Required range:
-9223372036854776000 <= x <= 9223372036854776000Required range:
-9223372036854776000 <= x <= 9223372036854776000Maximum string length:
3Required range:
-100000000000000 < x < 100000000000000Required range:
-1000000000000000000 < x < 1000000000000000000If False, contract-sync skips the revenue-recognition waterfall for this product (no ContractSubscription / RevenueTransaction rows).
Default subscription revenue recognition when this customer-scoped product is created on a contract with a prepaid usage commitment.
RATABLE- RatableRELATIVE_TO_PREPAID_COMMIT- Relative to prepaid commit
Available options:
RATABLE, RELATIVE_TO_PREPAID_COMMIT When true, revenue for this product is recognized in full on the invoice finalization date instead of being amortized over the service period. Used by the Stripe accrual JE waterfall.
Maximum string length:
250Required range:
-9223372036854776000 <= x <= 9223372036854776000Avalara tax code (e.g., SW052000 for SAAS)
Maximum string length:
50Maximum string length:
250Maximum string length:
250Maximum string length:
250Apply Department and Tag categorization to all lines on Invoice Journals