Billing
Show the company's plan and credits
The authenticated company’s plan, its credit balance and what of it can be spent, the credits each kind of usage has drawn this month, and the price of more. Every company reads its credits; the plan and the plans on offer are null and empty when platform billing does not invoice the company. Reading changes nothing.
GET
/
api
/
settings
/
billing
/
credits
Show the company's plan and credits
curl --request GET \
--url https://api.fluid.app/api/settings/billing/credits \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/settings/billing/credits"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/settings/billing/credits', 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.fluid.app/api/settings/billing/credits",
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.fluid.app/api/settings/billing/credits"
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.fluid.app/api/settings/billing/credits")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/settings/billing/credits")
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{
"credits": {
"card_surcharge": {
"rate_basis_points": 290,
"applies": false,
"auto_reload_applies": false
},
"balance_cents": 184250,
"spendable_cents": 184250,
"expired_cents": 0,
"held_cents": 0,
"pending": {
"card": {
"count": 0,
"amount_cents": 0,
"total_cents": 0,
"credit_cents": 0
},
"us_bank_account": {
"count": 0,
"amount_cents": 0,
"total_cents": 0,
"credit_cents": 0
}
},
"drawn_cents": 0,
"pace": null,
"month_statement": {
"opening_cents": 74250,
"plan_cents": 0,
"purchased_cents": 110000,
"granted_cents": 0,
"used_cents": 0,
"expired_cents": 0,
"revoked_cents": 0,
"closing_cents": 184250
},
"expiries": [
{
"at": "2027-09-12T16:20:05Z",
"cents": 110000
}
],
"next_expiry": {
"at": "2027-09-12T16:20:05Z",
"cents": 110000
},
"low_balance_cents": 2000,
"funded_categories": [
"ai",
"hosting"
],
"credit_billing": null,
"plan": {
"key": "growth",
"name": "Growth",
"monthly_price_cents": 1500000,
"bonus_percent": 10,
"included_credits": 16500,
"billing_interval": "monthly",
"monthly_charge_cents": 1500000,
"monthly_surcharge_cents": 0,
"monthly_total_cents": 1500000,
"monthly_price_surcharge_cents": 0,
"monthly_price_total_cents": 1500000
},
"next_plan": null,
"plans": [
{
"monthly_price_cents": 250000,
"bonus_percent": 0,
"included_credits": 2500,
"monthly_surcharge_cents": 0,
"monthly_total_cents": 250000
},
{
"monthly_price_cents": 1000000,
"bonus_percent": 10,
"included_credits": 11000,
"monthly_surcharge_cents": 0,
"monthly_total_cents": 1000000
},
{
"monthly_price_cents": 2500000,
"bonus_percent": 20,
"included_credits": 30000,
"monthly_surcharge_cents": 0,
"monthly_total_cents": 2500000
},
{
"monthly_price_cents": 5000000,
"bonus_percent": 30,
"included_credits": 65000,
"monthly_surcharge_cents": 0,
"monthly_total_cents": 5000000
}
],
"catalog_plans": [
{
"key": "launch",
"name": "Launch",
"monthly_price_cents": 250000,
"monthly_surcharge_cents": 0,
"monthly_total_cents": 250000
},
{
"key": "growth",
"name": "Growth",
"monthly_price_cents": 1500000,
"monthly_surcharge_cents": 0,
"monthly_total_cents": 1500000
},
{
"key": "scale",
"name": "Scale",
"monthly_price_cents": 5000000,
"monthly_surcharge_cents": 0,
"monthly_total_cents": 5000000
},
{
"key": "enterprise",
"name": "Enterprise",
"monthly_price_cents": 15000000,
"monthly_surcharge_cents": 0,
"monthly_total_cents": 15000000
}
],
"credit_bonus_mode": "always",
"usage": {
"period_start": "2026-09-01T00:00:00Z",
"orders": 70012,
"ai": 18400,
"hosting": 0,
"media": null,
"studios": null
},
"orders_percent": "1.45",
"rollover_months": 3,
"annual_discount_percent": 10,
"top_up_cents": 100,
"min_purchase_cents": 10000,
"max_purchase_cents": 1000000,
"discounts": [
{
"min_cents": 10000,
"percent_off": 0
},
{
"min_cents": 50000,
"percent_off": 5
},
{
"min_cents": 100000,
"percent_off": 10
},
{
"min_cents": 250000,
"percent_off": 15
},
{
"min_cents": 500000,
"percent_off": 20
},
{
"min_cents": 1000000,
"percent_off": 30
}
],
"purchasable": true,
"purchase_terms": {
"version": "2026-10-06",
"text": "Usage credits are prepaid. One credit pays for one US dollar of Fluid usage. Credits you buy, and any bonus credits on them, expire one year after the purchase date. Credits are not refundable and cannot move between companies, except where Fluid refunds unused purchased credits to the payment method that paid for them. If a payment is refunded, returned, or disputed, the credits it paid for, and their bonus share, are taken back, even when that makes the balance negative. A purchase paid with a credit card or a bank account can carry a processing fee that Fluid sets for your account: a percentage of the amount, which can have a cap. The fee is shown before you pay and charged with it. Debit cards and prepaid cards carry no fee. A refund returns the fee in proportion to the amount refunded."
}
},
"status": 200,
"meta": {
"request_id": "f3b8c2d1-6a4e-4f7b-9c1d-2e5a8b7c4d90",
"timestamp": "2026-09-30T14:05:11Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}⌘I
Show the company's plan and credits
curl --request GET \
--url https://api.fluid.app/api/settings/billing/credits \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/settings/billing/credits"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/settings/billing/credits', 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.fluid.app/api/settings/billing/credits",
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.fluid.app/api/settings/billing/credits"
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.fluid.app/api/settings/billing/credits")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/settings/billing/credits")
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{
"credits": {
"card_surcharge": {
"rate_basis_points": 290,
"applies": false,
"auto_reload_applies": false
},
"balance_cents": 184250,
"spendable_cents": 184250,
"expired_cents": 0,
"held_cents": 0,
"pending": {
"card": {
"count": 0,
"amount_cents": 0,
"total_cents": 0,
"credit_cents": 0
},
"us_bank_account": {
"count": 0,
"amount_cents": 0,
"total_cents": 0,
"credit_cents": 0
}
},
"drawn_cents": 0,
"pace": null,
"month_statement": {
"opening_cents": 74250,
"plan_cents": 0,
"purchased_cents": 110000,
"granted_cents": 0,
"used_cents": 0,
"expired_cents": 0,
"revoked_cents": 0,
"closing_cents": 184250
},
"expiries": [
{
"at": "2027-09-12T16:20:05Z",
"cents": 110000
}
],
"next_expiry": {
"at": "2027-09-12T16:20:05Z",
"cents": 110000
},
"low_balance_cents": 2000,
"funded_categories": [
"ai",
"hosting"
],
"credit_billing": null,
"plan": {
"key": "growth",
"name": "Growth",
"monthly_price_cents": 1500000,
"bonus_percent": 10,
"included_credits": 16500,
"billing_interval": "monthly",
"monthly_charge_cents": 1500000,
"monthly_surcharge_cents": 0,
"monthly_total_cents": 1500000,
"monthly_price_surcharge_cents": 0,
"monthly_price_total_cents": 1500000
},
"next_plan": null,
"plans": [
{
"monthly_price_cents": 250000,
"bonus_percent": 0,
"included_credits": 2500,
"monthly_surcharge_cents": 0,
"monthly_total_cents": 250000
},
{
"monthly_price_cents": 1000000,
"bonus_percent": 10,
"included_credits": 11000,
"monthly_surcharge_cents": 0,
"monthly_total_cents": 1000000
},
{
"monthly_price_cents": 2500000,
"bonus_percent": 20,
"included_credits": 30000,
"monthly_surcharge_cents": 0,
"monthly_total_cents": 2500000
},
{
"monthly_price_cents": 5000000,
"bonus_percent": 30,
"included_credits": 65000,
"monthly_surcharge_cents": 0,
"monthly_total_cents": 5000000
}
],
"catalog_plans": [
{
"key": "launch",
"name": "Launch",
"monthly_price_cents": 250000,
"monthly_surcharge_cents": 0,
"monthly_total_cents": 250000
},
{
"key": "growth",
"name": "Growth",
"monthly_price_cents": 1500000,
"monthly_surcharge_cents": 0,
"monthly_total_cents": 1500000
},
{
"key": "scale",
"name": "Scale",
"monthly_price_cents": 5000000,
"monthly_surcharge_cents": 0,
"monthly_total_cents": 5000000
},
{
"key": "enterprise",
"name": "Enterprise",
"monthly_price_cents": 15000000,
"monthly_surcharge_cents": 0,
"monthly_total_cents": 15000000
}
],
"credit_bonus_mode": "always",
"usage": {
"period_start": "2026-09-01T00:00:00Z",
"orders": 70012,
"ai": 18400,
"hosting": 0,
"media": null,
"studios": null
},
"orders_percent": "1.45",
"rollover_months": 3,
"annual_discount_percent": 10,
"top_up_cents": 100,
"min_purchase_cents": 10000,
"max_purchase_cents": 1000000,
"discounts": [
{
"min_cents": 10000,
"percent_off": 0
},
{
"min_cents": 50000,
"percent_off": 5
},
{
"min_cents": 100000,
"percent_off": 10
},
{
"min_cents": 250000,
"percent_off": 15
},
{
"min_cents": 500000,
"percent_off": 20
},
{
"min_cents": 1000000,
"percent_off": 30
}
],
"purchasable": true,
"purchase_terms": {
"version": "2026-10-06",
"text": "Usage credits are prepaid. One credit pays for one US dollar of Fluid usage. Credits you buy, and any bonus credits on them, expire one year after the purchase date. Credits are not refundable and cannot move between companies, except where Fluid refunds unused purchased credits to the payment method that paid for them. If a payment is refunded, returned, or disputed, the credits it paid for, and their bonus share, are taken back, even when that makes the balance negative. A purchase paid with a credit card or a bank account can carry a processing fee that Fluid sets for your account: a percentage of the amount, which can have a cap. The fee is shown before you pay and charged with it. Debit cards and prepaid cards carry no fee. A refund returns the fee in proportion to the amount refunded."
}
},
"status": 200,
"meta": {
"request_id": "f3b8c2d1-6a4e-4f7b-9c1d-2e5a8b7c4d90",
"timestamp": "2026-09-30T14:05:11Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}