Partial Update Contract Bundle
curl --request PATCH \
--url https://api.meetcampfire.com/rr/api/v1/contracts/{contract_id}/bundles/{id} \
--header 'Content-Type: application/json' \
--data '
{
"end_date": "2023-12-25",
"rebalance_journal_entries_indefinitely": false,
"lines": [
{
"contract_bundle": 123,
"amount": 0,
"product": 123
}
],
"bundle_name": "<string>",
"bundle_description": "<string>",
"start_date": "2023-12-25",
"use_daily_accounting": true,
"use_catchup": true,
"catchup_date": "2023-12-25",
"contract": 123
}
'import requests
url = "https://api.meetcampfire.com/rr/api/v1/contracts/{contract_id}/bundles/{id}"
payload = {
"end_date": "2023-12-25",
"rebalance_journal_entries_indefinitely": False,
"lines": [
{
"contract_bundle": 123,
"amount": 0,
"product": 123
}
],
"bundle_name": "<string>",
"bundle_description": "<string>",
"start_date": "2023-12-25",
"use_daily_accounting": True,
"use_catchup": True,
"catchup_date": "2023-12-25",
"contract": 123
}
headers = {"Content-Type": "application/json"}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
end_date: '2023-12-25',
rebalance_journal_entries_indefinitely: false,
lines: [{contract_bundle: 123, amount: 0, product: 123}],
bundle_name: '<string>',
bundle_description: '<string>',
start_date: '2023-12-25',
use_daily_accounting: true,
use_catchup: true,
catchup_date: '2023-12-25',
contract: 123
})
};
fetch('https://api.meetcampfire.com/rr/api/v1/contracts/{contract_id}/bundles/{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/contracts/{contract_id}/bundles/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'end_date' => '2023-12-25',
'rebalance_journal_entries_indefinitely' => false,
'lines' => [
[
'contract_bundle' => 123,
'amount' => 0,
'product' => 123
]
],
'bundle_name' => '<string>',
'bundle_description' => '<string>',
'start_date' => '2023-12-25',
'use_daily_accounting' => true,
'use_catchup' => true,
'catchup_date' => '2023-12-25',
'contract' => 123
]),
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/rr/api/v1/contracts/{contract_id}/bundles/{id}"
payload := strings.NewReader("{\n \"end_date\": \"2023-12-25\",\n \"rebalance_journal_entries_indefinitely\": false,\n \"lines\": [\n {\n \"contract_bundle\": 123,\n \"amount\": 0,\n \"product\": 123\n }\n ],\n \"bundle_name\": \"<string>\",\n \"bundle_description\": \"<string>\",\n \"start_date\": \"2023-12-25\",\n \"use_daily_accounting\": true,\n \"use_catchup\": true,\n \"catchup_date\": \"2023-12-25\",\n \"contract\": 123\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.meetcampfire.com/rr/api/v1/contracts/{contract_id}/bundles/{id}")
.header("Content-Type", "application/json")
.body("{\n \"end_date\": \"2023-12-25\",\n \"rebalance_journal_entries_indefinitely\": false,\n \"lines\": [\n {\n \"contract_bundle\": 123,\n \"amount\": 0,\n \"product\": 123\n }\n ],\n \"bundle_name\": \"<string>\",\n \"bundle_description\": \"<string>\",\n \"start_date\": \"2023-12-25\",\n \"use_daily_accounting\": true,\n \"use_catchup\": true,\n \"catchup_date\": \"2023-12-25\",\n \"contract\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meetcampfire.com/rr/api/v1/contracts/{contract_id}/bundles/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"end_date\": \"2023-12-25\",\n \"rebalance_journal_entries_indefinitely\": false,\n \"lines\": [\n {\n \"contract_bundle\": 123,\n \"amount\": 0,\n \"product\": 123\n }\n ],\n \"bundle_name\": \"<string>\",\n \"bundle_description\": \"<string>\",\n \"start_date\": \"2023-12-25\",\n \"use_daily_accounting\": true,\n \"use_catchup\": true,\n \"catchup_date\": \"2023-12-25\",\n \"contract\": 123\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"is_deleted": false,
"deleted_at": "2023-11-07T05:31:56Z",
"lines": [
{
"id": 123,
"is_deleted": false,
"deleted_at": "2023-11-07T05:31:56Z",
"product_name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"last_modified_at": "2023-11-07T05:31:56Z",
"customer": 123,
"amount": 0,
"product": 123
}
],
"bundle_name": "<string>",
"start_date": "2023-12-25",
"created_at": "2023-11-07T05:31:56Z",
"last_modified_at": "2023-11-07T05:31:56Z",
"customer": 123,
"contract": 123,
"end_date": "2023-12-25",
"rebalance_journal_entries_indefinitely": false,
"bundle_description": "<string>",
"use_daily_accounting": true,
"proration_method": "standard",
"use_catchup": true,
"catchup_date": "2023-12-25"
}Revenue Recognition
Partial Update Contract Bundle
PATCH
/
rr
/
api
/
v1
/
contracts
/
{contract_id}
/
bundles
/
{id}
Partial Update Contract Bundle
curl --request PATCH \
--url https://api.meetcampfire.com/rr/api/v1/contracts/{contract_id}/bundles/{id} \
--header 'Content-Type: application/json' \
--data '
{
"end_date": "2023-12-25",
"rebalance_journal_entries_indefinitely": false,
"lines": [
{
"contract_bundle": 123,
"amount": 0,
"product": 123
}
],
"bundle_name": "<string>",
"bundle_description": "<string>",
"start_date": "2023-12-25",
"use_daily_accounting": true,
"use_catchup": true,
"catchup_date": "2023-12-25",
"contract": 123
}
'import requests
url = "https://api.meetcampfire.com/rr/api/v1/contracts/{contract_id}/bundles/{id}"
payload = {
"end_date": "2023-12-25",
"rebalance_journal_entries_indefinitely": False,
"lines": [
{
"contract_bundle": 123,
"amount": 0,
"product": 123
}
],
"bundle_name": "<string>",
"bundle_description": "<string>",
"start_date": "2023-12-25",
"use_daily_accounting": True,
"use_catchup": True,
"catchup_date": "2023-12-25",
"contract": 123
}
headers = {"Content-Type": "application/json"}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
end_date: '2023-12-25',
rebalance_journal_entries_indefinitely: false,
lines: [{contract_bundle: 123, amount: 0, product: 123}],
bundle_name: '<string>',
bundle_description: '<string>',
start_date: '2023-12-25',
use_daily_accounting: true,
use_catchup: true,
catchup_date: '2023-12-25',
contract: 123
})
};
fetch('https://api.meetcampfire.com/rr/api/v1/contracts/{contract_id}/bundles/{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/contracts/{contract_id}/bundles/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'end_date' => '2023-12-25',
'rebalance_journal_entries_indefinitely' => false,
'lines' => [
[
'contract_bundle' => 123,
'amount' => 0,
'product' => 123
]
],
'bundle_name' => '<string>',
'bundle_description' => '<string>',
'start_date' => '2023-12-25',
'use_daily_accounting' => true,
'use_catchup' => true,
'catchup_date' => '2023-12-25',
'contract' => 123
]),
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/rr/api/v1/contracts/{contract_id}/bundles/{id}"
payload := strings.NewReader("{\n \"end_date\": \"2023-12-25\",\n \"rebalance_journal_entries_indefinitely\": false,\n \"lines\": [\n {\n \"contract_bundle\": 123,\n \"amount\": 0,\n \"product\": 123\n }\n ],\n \"bundle_name\": \"<string>\",\n \"bundle_description\": \"<string>\",\n \"start_date\": \"2023-12-25\",\n \"use_daily_accounting\": true,\n \"use_catchup\": true,\n \"catchup_date\": \"2023-12-25\",\n \"contract\": 123\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.meetcampfire.com/rr/api/v1/contracts/{contract_id}/bundles/{id}")
.header("Content-Type", "application/json")
.body("{\n \"end_date\": \"2023-12-25\",\n \"rebalance_journal_entries_indefinitely\": false,\n \"lines\": [\n {\n \"contract_bundle\": 123,\n \"amount\": 0,\n \"product\": 123\n }\n ],\n \"bundle_name\": \"<string>\",\n \"bundle_description\": \"<string>\",\n \"start_date\": \"2023-12-25\",\n \"use_daily_accounting\": true,\n \"use_catchup\": true,\n \"catchup_date\": \"2023-12-25\",\n \"contract\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meetcampfire.com/rr/api/v1/contracts/{contract_id}/bundles/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"end_date\": \"2023-12-25\",\n \"rebalance_journal_entries_indefinitely\": false,\n \"lines\": [\n {\n \"contract_bundle\": 123,\n \"amount\": 0,\n \"product\": 123\n }\n ],\n \"bundle_name\": \"<string>\",\n \"bundle_description\": \"<string>\",\n \"start_date\": \"2023-12-25\",\n \"use_daily_accounting\": true,\n \"use_catchup\": true,\n \"catchup_date\": \"2023-12-25\",\n \"contract\": 123\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"is_deleted": false,
"deleted_at": "2023-11-07T05:31:56Z",
"lines": [
{
"id": 123,
"is_deleted": false,
"deleted_at": "2023-11-07T05:31:56Z",
"product_name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"last_modified_at": "2023-11-07T05:31:56Z",
"customer": 123,
"amount": 0,
"product": 123
}
],
"bundle_name": "<string>",
"start_date": "2023-12-25",
"created_at": "2023-11-07T05:31:56Z",
"last_modified_at": "2023-11-07T05:31:56Z",
"customer": 123,
"contract": 123,
"end_date": "2023-12-25",
"rebalance_journal_entries_indefinitely": false,
"bundle_description": "<string>",
"use_daily_accounting": true,
"proration_method": "standard",
"use_catchup": true,
"catchup_date": "2023-12-25"
}Body
application/jsonapplication/x-www-form-urlencodedmultipart/form-data
Bundle end date. Required for standard contracts. For evergreen contracts this may be null to follow the contract timeline, or set to a billing-period end date.
Should only be used for Evergreen contracts. When true, linked invoice journal entries are rebalanced on each evergreen contract extension.
Show child attributes
Show child attributes
Maximum string length:
250Maximum string length:
250standard- Standard (actual month length)thirty_day- Fixed 30-day monthdaily- Daily
Available options:
standard, thirty_day, daily Response
200 - application/json
Show child attributes
Show child attributes
Maximum string length:
250Bundle end date. Required for standard contracts. For evergreen contracts this may be null to follow the contract timeline, or set to a billing-period end date.
Should only be used for Evergreen contracts. When true, linked invoice journal entries are rebalanced on each evergreen contract extension.
Maximum string length:
250standard- Standard (actual month length)thirty_day- Fixed 30-day monthdaily- Daily
Available options:
standard, thirty_day, daily