curl --request POST \
--url https://api-sandbox.beinfi.com/products/{productID}/versions/{versionID}/prices \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"meterId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"unitAmount": "<string>",
"tiers": [],
"currency": "BRL"
}
'import requests
url = "https://api-sandbox.beinfi.com/products/{productID}/versions/{versionID}/prices"
payload = {
"meterId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"unitAmount": "<string>",
"tiers": [],
"currency": "BRL"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
meterId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
unitAmount: '<string>',
tiers: [],
currency: 'BRL'
})
};
fetch('https://api-sandbox.beinfi.com/products/{productID}/versions/{versionID}/prices', 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-sandbox.beinfi.com/products/{productID}/versions/{versionID}/prices",
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([
'meterId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'unitAmount' => '<string>',
'tiers' => [
],
'currency' => 'BRL'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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-sandbox.beinfi.com/products/{productID}/versions/{versionID}/prices"
payload := strings.NewReader("{\n \"meterId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"unitAmount\": \"<string>\",\n \"tiers\": [],\n \"currency\": \"BRL\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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-sandbox.beinfi.com/products/{productID}/versions/{versionID}/prices")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"meterId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"unitAmount\": \"<string>\",\n \"tiers\": [],\n \"currency\": \"BRL\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.beinfi.com/products/{productID}/versions/{versionID}/prices")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"meterId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"unitAmount\": \"<string>\",\n \"tiers\": [],\n \"currency\": \"BRL\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"productVersionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"meterId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"model": "flat",
"unitAmount": "<string>",
"tiers": [
{}
],
"currency": "<string>"
}{
"message": "<string>",
"error_code": "internal_error",
"tracer_id": "<string>"
}{
"message": "<string>",
"error_code": "internal_error",
"tracer_id": "<string>"
}{
"message": "<string>",
"error_code": "internal_error",
"tracer_id": "<string>",
"resource": "<string>"
}{
"message": "<string>",
"error_code": "internal_error",
"tracer_id": "<string>",
"errors": [
{
"field": "<string>",
"value": "<string>",
"constraint": "<string>",
"description": "<string>"
}
]
}Add a price to a version
Adds a meter’s price (per token, per request) to a draft version. A fixed-price product does not need this route: the version’s basePrice already is the price. On a published version the response is 409 version_not_draft.
curl --request POST \
--url https://api-sandbox.beinfi.com/products/{productID}/versions/{versionID}/prices \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"meterId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"unitAmount": "<string>",
"tiers": [],
"currency": "BRL"
}
'import requests
url = "https://api-sandbox.beinfi.com/products/{productID}/versions/{versionID}/prices"
payload = {
"meterId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"unitAmount": "<string>",
"tiers": [],
"currency": "BRL"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
meterId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
unitAmount: '<string>',
tiers: [],
currency: 'BRL'
})
};
fetch('https://api-sandbox.beinfi.com/products/{productID}/versions/{versionID}/prices', 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-sandbox.beinfi.com/products/{productID}/versions/{versionID}/prices",
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([
'meterId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'unitAmount' => '<string>',
'tiers' => [
],
'currency' => 'BRL'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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-sandbox.beinfi.com/products/{productID}/versions/{versionID}/prices"
payload := strings.NewReader("{\n \"meterId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"unitAmount\": \"<string>\",\n \"tiers\": [],\n \"currency\": \"BRL\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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-sandbox.beinfi.com/products/{productID}/versions/{versionID}/prices")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"meterId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"unitAmount\": \"<string>\",\n \"tiers\": [],\n \"currency\": \"BRL\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.beinfi.com/products/{productID}/versions/{versionID}/prices")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"meterId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"unitAmount\": \"<string>\",\n \"tiers\": [],\n \"currency\": \"BRL\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"productVersionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"meterId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"model": "flat",
"unitAmount": "<string>",
"tiers": [
{}
],
"currency": "<string>"
}{
"message": "<string>",
"error_code": "internal_error",
"tracer_id": "<string>"
}{
"message": "<string>",
"error_code": "internal_error",
"tracer_id": "<string>"
}{
"message": "<string>",
"error_code": "internal_error",
"tracer_id": "<string>",
"resource": "<string>"
}{
"message": "<string>",
"error_code": "internal_error",
"tracer_id": "<string>",
"errors": [
{
"field": "<string>",
"value": "<string>",
"constraint": "<string>",
"description": "<string>"
}
]
}Authorizations
Your account's secret key: Authorization: Bearer sk_test_… or sk_live_…. Server-side only.
Headers
A unique key per operation (a UUID works). Retrying with the same key returns the original response.
Path Parameters
Product ID.
Product version ID.
Body
The meter this price rates, on the same product. Required: a fixed recurring amount is not a price, it is the version's basePrice.
flat, per_unit, tiered, volume or package.
flat, per_unit, tiered, volume, package Amount per unit as a decimal string.
Price tiers for tiered, volume and package.
Optional; defaults to the product's currency.
"BRL"
Response
Price created.
A meter's price on a version.
The meter this price rates.
flat, per_unit, tiered (graduated), volume or package.
flat, per_unit, tiered, volume, package Amount per unit as a decimal string; sub-cent values allowed.
Price tiers for tiered, volume and package.