curl --request GET \
--url https://api.photon.codes/v1/organizations/{organizationId}/billing/terms \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.photon.codes/v1/organizations/{organizationId}/billing/terms"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.photon.codes/v1/organizations/{organizationId}/billing/terms', 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.photon.codes/v1/organizations/{organizationId}/billing/terms",
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: Bearer <token>"
],
]);
$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.photon.codes/v1/organizations/{organizationId}/billing/terms"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.photon.codes/v1/organizations/{organizationId}/billing/terms")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.photon.codes/v1/organizations/{organizationId}/billing/terms")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"subscription": {
"cancelsAt": "<string>",
"currentPeriodEnd": "<string>",
"currentPeriodStart": "<string>",
"nextBillingAt": "<string>",
"paymentMode": "automatic",
"plan": {
"baseAmountCents": 4503599627370495,
"currency": "<string>",
"description": "<string>",
"entitlements": [
{
"featureKey": "<string>",
"value": "<string>"
}
],
"fixedCharges": [
{
"chargeModel": "graduated",
"displayName": "<string>",
"fixedChargeCode": "<string>",
"payInAdvance": true,
"pricing": {
"amount": "<string>",
"tiers": [
{
"flatAmount": "<string>",
"fromUnit": 4503599627370495,
"perUnitAmount": "<string>",
"toUnit": 4503599627370495
}
]
},
"prorated": true,
"quantity": 4503599627370495
}
],
"interval": "weekly",
"isDefault": true,
"minimumCommitment": {
"amountCents": 4503599627370495,
"displayName": "<string>"
},
"name": "<string>",
"payInAdvance": true,
"planCode": "<string>",
"tier": 0,
"tierDisplayName": "<string>",
"usageCharges": [
{
"chargeCode": "<string>",
"chargeModel": "dynamic",
"displayName": "<string>",
"filters": [
{
"displayName": "<string>",
"pricing": {
"amount": "<string>",
"fixedAmount": "<string>",
"freeUnits": 4503599627370495,
"freeUnitsPerEvents": 4503599627370495,
"freeUnitsPerTotalAggregation": "<string>",
"packageSize": 4503599627370495,
"perTransactionMaxAmount": "<string>",
"perTransactionMinAmount": "<string>",
"pricingGroupKeys": [
"<string>"
],
"rate": "<string>",
"tiers": [
{
"flatAmount": "<string>",
"fromUnit": 4503599627370495,
"perUnitAmount": "<string>",
"rate": "<string>",
"toUnit": 4503599627370495
}
]
},
"values": [
{
"key": "<string>",
"values": [
"<string>"
]
}
]
}
],
"invoiceable": true,
"metricCode": "<string>",
"minimumAmountCents": 4503599627370495,
"payInAdvance": true,
"pricing": {
"amount": "<string>",
"fixedAmount": "<string>",
"freeUnits": 4503599627370495,
"freeUnitsPerEvents": 4503599627370495,
"freeUnitsPerTotalAggregation": "<string>",
"packageSize": 4503599627370495,
"perTransactionMaxAmount": "<string>",
"perTransactionMinAmount": "<string>",
"pricingGroupKeys": [
"<string>"
],
"rate": "<string>",
"tiers": [
{
"flatAmount": "<string>",
"fromUnit": 4503599627370495,
"perUnitAmount": "<string>",
"rate": "<string>",
"toUnit": 4503599627370495
}
]
},
"prorated": true
}
],
"usageThresholds": [
{
"amountCents": 4503599627370495,
"displayName": "<string>",
"recurring": true
}
],
"categoryDisplayName": "<string>"
},
"planSource": "catalog",
"scheduledPlanChange": {
"effectiveAt": "<string>",
"planCode": "<string>"
}
},
"timeZone": "<string>"
}{
"code": "INVALID_ARGUMENT",
"status": 400,
"title": "Invalid Argument",
"type": "https://photon.codes/docs/problems/invalid-argument"
}{
"code": "NOT_AUTHENTICATED",
"status": 401,
"title": "Not Authenticated",
"type": "https://photon.codes/docs/problems/not-authenticated"
}{
"code": "FORBIDDEN",
"status": 403,
"title": "Forbidden",
"type": "https://photon.codes/docs/problems/forbidden"
}{
"code": "FAILED_PRECONDITION",
"status": 409,
"title": "Failed Precondition",
"type": "https://photon.codes/docs/problems/failed-precondition"
}{
"code": "VALIDATION_FAILED",
"issues": [
{
"code": "invalid_type",
"location": "json",
"message": "Expected a string.",
"path": "/name"
}
],
"status": 422,
"title": "Request Validation Failed",
"type": "https://photon.codes/docs/problems/validation-failed"
}{
"code": "INTERNAL_ERROR",
"status": 500,
"title": "Internal Server Error",
"type": "https://photon.codes/docs/problems/internal-error"
}{
"code": "UPSTREAM_FAILURE",
"status": 502,
"title": "Upstream Service Failure",
"type": "https://photon.codes/docs/problems/upstream-failure"
}{
"code": "UPSTREAM_UNAVAILABLE",
"status": 503,
"title": "Upstream Service Unavailable",
"type": "https://photon.codes/docs/problems/upstream-unavailable"
}{
"code": "REQUEST_TIMEOUT",
"status": 504,
"title": "Request Timeout",
"type": "https://photon.codes/docs/problems/request-timeout"
}Get the organization's effective billing terms
Returns what the selected organization is billed on now on its own subscription, such as SSO and 10DLC campaigns: the plan as the subscription has it, with any override applied, each fixed charge at the subscription’s price and the quantity the organization holds, and resolved entitlements; where the plan comes from; how invoices are paid; the current period and next billing date; and any downgrade or cancellation waiting for the period end. subscription has a project subscription’s terms without its category, and is null when the organization holds none. Project subscriptions are read per project. This operation does not change billing.
curl --request GET \
--url https://api.photon.codes/v1/organizations/{organizationId}/billing/terms \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.photon.codes/v1/organizations/{organizationId}/billing/terms"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.photon.codes/v1/organizations/{organizationId}/billing/terms', 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.photon.codes/v1/organizations/{organizationId}/billing/terms",
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: Bearer <token>"
],
]);
$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.photon.codes/v1/organizations/{organizationId}/billing/terms"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.photon.codes/v1/organizations/{organizationId}/billing/terms")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.photon.codes/v1/organizations/{organizationId}/billing/terms")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"subscription": {
"cancelsAt": "<string>",
"currentPeriodEnd": "<string>",
"currentPeriodStart": "<string>",
"nextBillingAt": "<string>",
"paymentMode": "automatic",
"plan": {
"baseAmountCents": 4503599627370495,
"currency": "<string>",
"description": "<string>",
"entitlements": [
{
"featureKey": "<string>",
"value": "<string>"
}
],
"fixedCharges": [
{
"chargeModel": "graduated",
"displayName": "<string>",
"fixedChargeCode": "<string>",
"payInAdvance": true,
"pricing": {
"amount": "<string>",
"tiers": [
{
"flatAmount": "<string>",
"fromUnit": 4503599627370495,
"perUnitAmount": "<string>",
"toUnit": 4503599627370495
}
]
},
"prorated": true,
"quantity": 4503599627370495
}
],
"interval": "weekly",
"isDefault": true,
"minimumCommitment": {
"amountCents": 4503599627370495,
"displayName": "<string>"
},
"name": "<string>",
"payInAdvance": true,
"planCode": "<string>",
"tier": 0,
"tierDisplayName": "<string>",
"usageCharges": [
{
"chargeCode": "<string>",
"chargeModel": "dynamic",
"displayName": "<string>",
"filters": [
{
"displayName": "<string>",
"pricing": {
"amount": "<string>",
"fixedAmount": "<string>",
"freeUnits": 4503599627370495,
"freeUnitsPerEvents": 4503599627370495,
"freeUnitsPerTotalAggregation": "<string>",
"packageSize": 4503599627370495,
"perTransactionMaxAmount": "<string>",
"perTransactionMinAmount": "<string>",
"pricingGroupKeys": [
"<string>"
],
"rate": "<string>",
"tiers": [
{
"flatAmount": "<string>",
"fromUnit": 4503599627370495,
"perUnitAmount": "<string>",
"rate": "<string>",
"toUnit": 4503599627370495
}
]
},
"values": [
{
"key": "<string>",
"values": [
"<string>"
]
}
]
}
],
"invoiceable": true,
"metricCode": "<string>",
"minimumAmountCents": 4503599627370495,
"payInAdvance": true,
"pricing": {
"amount": "<string>",
"fixedAmount": "<string>",
"freeUnits": 4503599627370495,
"freeUnitsPerEvents": 4503599627370495,
"freeUnitsPerTotalAggregation": "<string>",
"packageSize": 4503599627370495,
"perTransactionMaxAmount": "<string>",
"perTransactionMinAmount": "<string>",
"pricingGroupKeys": [
"<string>"
],
"rate": "<string>",
"tiers": [
{
"flatAmount": "<string>",
"fromUnit": 4503599627370495,
"perUnitAmount": "<string>",
"rate": "<string>",
"toUnit": 4503599627370495
}
]
},
"prorated": true
}
],
"usageThresholds": [
{
"amountCents": 4503599627370495,
"displayName": "<string>",
"recurring": true
}
],
"categoryDisplayName": "<string>"
},
"planSource": "catalog",
"scheduledPlanChange": {
"effectiveAt": "<string>",
"planCode": "<string>"
}
},
"timeZone": "<string>"
}{
"code": "INVALID_ARGUMENT",
"status": 400,
"title": "Invalid Argument",
"type": "https://photon.codes/docs/problems/invalid-argument"
}{
"code": "NOT_AUTHENTICATED",
"status": 401,
"title": "Not Authenticated",
"type": "https://photon.codes/docs/problems/not-authenticated"
}{
"code": "FORBIDDEN",
"status": 403,
"title": "Forbidden",
"type": "https://photon.codes/docs/problems/forbidden"
}{
"code": "FAILED_PRECONDITION",
"status": 409,
"title": "Failed Precondition",
"type": "https://photon.codes/docs/problems/failed-precondition"
}{
"code": "VALIDATION_FAILED",
"issues": [
{
"code": "invalid_type",
"location": "json",
"message": "Expected a string.",
"path": "/name"
}
],
"status": 422,
"title": "Request Validation Failed",
"type": "https://photon.codes/docs/problems/validation-failed"
}{
"code": "INTERNAL_ERROR",
"status": 500,
"title": "Internal Server Error",
"type": "https://photon.codes/docs/problems/internal-error"
}{
"code": "UPSTREAM_FAILURE",
"status": 502,
"title": "Upstream Service Failure",
"type": "https://photon.codes/docs/problems/upstream-failure"
}{
"code": "UPSTREAM_UNAVAILABLE",
"status": 503,
"title": "Upstream Service Unavailable",
"type": "https://photon.codes/docs/problems/upstream-unavailable"
}{
"code": "REQUEST_TIMEOUT",
"status": 504,
"title": "Request Timeout",
"type": "https://photon.codes/docs/problems/request-timeout"
}Authorizations
Account Service Key, prefixed with pho_ask_, sent as Authorization: Bearer <key>. Acts on behalf of its owning account, subject to the permissions and credential restrictions of each operation. Account access tokens and OAuth grants also use the Bearer header. In organizations that require SSO, Account Service Keys are not accepted for managing the organization's SSO settings, deleting the organization, or checking whether it can be deleted.
Path Parameters
Response
The organization's effective billing terms.
What one subscription is billed on now. plan is the plan as this subscription has it: its own prices when overridden, each fixed charge at the subscription's price and quantity, and entitlements resolved with overrides. The organization's own subscription, or null when it holds none.
Show child attributes
Show child attributes
The IANA time zone the payer is billed in, e.g. America/Los_Angeles. Billing periods start and end at its midnights, so read their calendar dates in it.
Was this page helpful?