curl --request GET \
--url https://app.base44.com/api/billing/billing-info \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/billing/billing-info"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/billing/billing-info', 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://app.base44.com/api/billing/billing-info",
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://app.base44.com/api/billing/billing-info"
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://app.base44.com/api/billing/billing-info")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/billing/billing-info")
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{
"invoices": [
{
"id": "in_1QZk4LDr56L89dkKx3bT0aPq",
"provider": "stripe",
"amount": 50,
"currency": "USD",
"status": "paid",
"date": 1761379200,
"period_start": 1761379200,
"period_end": 1763971200,
"hosted_invoice_url": "https://invoice.stripe.com/i/acct_1N3XrmDr56L89dkK/live_YWNjdF8xTjNYcm1EcjU2TDg5ZGtL",
"invoice_pdf": "https://pay.stripe.com/invoice/acct_1N3XrmDr56L89dkK/live_YWNjdF8xTjNYcm1EcjU2TDg5ZGtL/pdf",
"description": "Pro Plan - Monthly",
"billing_reason": "subscription_cycle",
"disputed": false
}
],
"payment_methods": [
{
"id": "pm_1QZk4LDr56L89dkK2c9sXy0b",
"brand": "visa",
"last4": "4242",
"exp_month": 12,
"exp_year": 2028,
"is_default": true
}
],
"billing_information": {
"name": "Nordwind Furniture Ltd",
"email": "owner@nordwind.example",
"billing_address": "12 Harbour St, Bristol, BS1 4QA, GB"
},
"default_card_payment_method_id": "pm_1QZk4LDr56L89dkK2c9sXy0b"
}{
"detail": [
{
"type": "bool_parsing",
"loc": [
"query",
"include_all_provider_invoices"
],
"msg": "Input should be a valid boolean, unable to interpret input",
"input": "maybe"
}
]
}Get billing info
Returns your workspace’s invoices, saved payment methods and billing contact. Only the workspace owner can call this.
What you get depends on how the workspace is billed:
- Stripe: the 50 most recent Stripe invoices, the saved cards with their expiry dates, and which card is the default.
- Wix: every Wix invoice, the payment method on the plan, and the billing contact with the workspace owner’s email.
Without include_all_provider_invoices, a Wix-billed workspace also gets its Google Ads charges, and a workspace that moved off Wix keeps its Wix invoices. Set include_all_provider_invoices to true to add the invoices from every other billing provider the workspace has used instead, except drafts and voided invoices. Each invoice names its provider in provider.
Invoices from a provider other than the one billing the workspace are left out when that provider doesn’t answer within a few seconds. On a Wix-billed workspace, Wix invoices and payment methods are also left out when Wix doesn’t answer. So an empty list doesn’t always mean there’s nothing there.
Open a Wix invoice or a Google Ads charge with Open invoice. Update the card with Create billing portal session or Create payment method update session.
curl --request GET \
--url https://app.base44.com/api/billing/billing-info \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/billing/billing-info"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/billing/billing-info', 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://app.base44.com/api/billing/billing-info",
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://app.base44.com/api/billing/billing-info"
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://app.base44.com/api/billing/billing-info")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/billing/billing-info")
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{
"invoices": [
{
"id": "in_1QZk4LDr56L89dkKx3bT0aPq",
"provider": "stripe",
"amount": 50,
"currency": "USD",
"status": "paid",
"date": 1761379200,
"period_start": 1761379200,
"period_end": 1763971200,
"hosted_invoice_url": "https://invoice.stripe.com/i/acct_1N3XrmDr56L89dkK/live_YWNjdF8xTjNYcm1EcjU2TDg5ZGtL",
"invoice_pdf": "https://pay.stripe.com/invoice/acct_1N3XrmDr56L89dkK/live_YWNjdF8xTjNYcm1EcjU2TDg5ZGtL/pdf",
"description": "Pro Plan - Monthly",
"billing_reason": "subscription_cycle",
"disputed": false
}
],
"payment_methods": [
{
"id": "pm_1QZk4LDr56L89dkK2c9sXy0b",
"brand": "visa",
"last4": "4242",
"exp_month": 12,
"exp_year": 2028,
"is_default": true
}
],
"billing_information": {
"name": "Nordwind Furniture Ltd",
"email": "owner@nordwind.example",
"billing_address": "12 Harbour St, Bristol, BS1 4QA, GB"
},
"default_card_payment_method_id": "pm_1QZk4LDr56L89dkK2c9sXy0b"
}{
"detail": [
{
"type": "bool_parsing",
"loc": [
"query",
"include_all_provider_invoices"
],
"msg": "Input should be a valid boolean, unable to interpret input",
"input": "maybe"
}
]
}Authorizations
Personal access token, sent as Authorization: Bearer <token>. Each operation lists the permission it needs: read_only or full_access. A full-access token can call every operation. A read-only token can call only the operations that list read_only; anything else returns 403 read_only_credential_route_not_allowed.
Query Parameters
true adds the invoices from every other billing provider the workspace has used, except drafts and voided invoices. Defaults to false.
Response
The workspace's invoices, payment methods and billing contact.
The workspace's invoices, payment methods and billing contact.
The workspace's invoices, newest first.
Show child attributes
Show child attributes
[ { "amount": 50, "billing_reason": "subscription_cycle", "currency": "USD", "date": 1761379200, "description": "Pro Plan - Monthly", "disputed": false, "hosted_invoice_url": "https://invoice.stripe.com/i/acct_1N3XrmDr56L89dkK/live_YWNjdF8xTjNYcm1EcjU2TDg5ZGtL", "id": "in_1QZk4LDr56L89dkKx3bT0aPq", "invoice_pdf": "https://pay.stripe.com/invoice/acct_1N3XrmDr56L89dkK/live_YWNjdF8xTjNYcm1EcjU2TDg5ZGtL/pdf", "period_end": 1763971200, "period_start": 1761379200, "provider": "stripe", "status": "paid" } ]
Saved payment methods.
Show child attributes
Show child attributes
[ { "brand": "visa", "exp_month": 12, "exp_year": 2028, "id": "pm_1QZk4LDr56L89dkK2c9sXy0b", "is_default": true, "last4": "4242" } ]
Billing contact and address, or null when the provider has none.
Show child attributes
Show child attributes
ID of the card Stripe charges by default, or null when the default isn't a card. Always null on Wix-billed workspaces.
"pm_1QZk4LDr56L89dkK2c9sXy0b"
Was this page helpful?