Estimate billing
curl --request POST \
--url https://api.truthlocks.com/v1/billing/estimate \
--header 'Content-Type: application/json' \
--data '
{
"contract_mode": "<string>",
"country_code": "<string>",
"expected_verifications_monthly": 123,
"issuers_needed": 123,
"storage_gb": 123,
"team_seats": 123,
"webhook_endpoints_needed": 123
}
'const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
contract_mode: '<string>',
country_code: '<string>',
expected_verifications_monthly: 123,
issuers_needed: 123,
storage_gb: 123,
team_seats: 123,
webhook_endpoints_needed: 123
})
};
fetch('https://api.truthlocks.com/v1/billing/estimate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.truthlocks.com/v1/billing/estimate"
payload = {
"contract_mode": "<string>",
"country_code": "<string>",
"expected_verifications_monthly": 123,
"issuers_needed": 123,
"storage_gb": 123,
"team_seats": 123,
"webhook_endpoints_needed": 123
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.truthlocks.com/v1/billing/estimate"
payload := strings.NewReader("{\n \"contract_mode\": \"<string>\",\n \"country_code\": \"<string>\",\n \"expected_verifications_monthly\": 123,\n \"issuers_needed\": 123,\n \"storage_gb\": 123,\n \"team_seats\": 123,\n \"webhook_endpoints_needed\": 123\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))
}{
"subtotal": 123,
"tax": 123,
"total": 123,
"currency": "<string>",
"proration": 123
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}Billing
Estimate plan cost
Get a plan recommendation and estimated monthly cost based on your expected usage.
POST
/
v1
/
billing
/
estimate
Estimate billing
curl --request POST \
--url https://api.truthlocks.com/v1/billing/estimate \
--header 'Content-Type: application/json' \
--data '
{
"contract_mode": "<string>",
"country_code": "<string>",
"expected_verifications_monthly": 123,
"issuers_needed": 123,
"storage_gb": 123,
"team_seats": 123,
"webhook_endpoints_needed": 123
}
'const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
contract_mode: '<string>',
country_code: '<string>',
expected_verifications_monthly: 123,
issuers_needed: 123,
storage_gb: 123,
team_seats: 123,
webhook_endpoints_needed: 123
})
};
fetch('https://api.truthlocks.com/v1/billing/estimate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.truthlocks.com/v1/billing/estimate"
payload = {
"contract_mode": "<string>",
"country_code": "<string>",
"expected_verifications_monthly": 123,
"issuers_needed": 123,
"storage_gb": 123,
"team_seats": 123,
"webhook_endpoints_needed": 123
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.truthlocks.com/v1/billing/estimate"
payload := strings.NewReader("{\n \"contract_mode\": \"<string>\",\n \"country_code\": \"<string>\",\n \"expected_verifications_monthly\": 123,\n \"issuers_needed\": 123,\n \"storage_gb\": 123,\n \"team_seats\": 123,\n \"webhook_endpoints_needed\": 123\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))
}{
"subtotal": 123,
"tax": 123,
"total": 123,
"currency": "<string>",
"proration": 123
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}POST /v1/billing/estimate
Response
string
The plan that best fits your requirements (e.g.,
plan_starter, plan_business).object[]
Add-ons the estimate suggests based on your needs (e.g., extra seats beyond the plan limit).
number
Projected monthly cost in USD.
string
Currency code (
USD).string[]
Notes about the estimate (e.g., volume discounts, custom pricing).
object
For a detailed line-item breakdown of costs, use the projected invoice endpoint instead.

