Purchase Credits
curl --request POST \
--url https://api.example.com/api/billing/credits/purchase \
--header 'Content-Type: application/json' \
--header 'X-Organization-Id: <x-organization-id>' \
--data '{
"amount": 123
}'import requests
url = "https://api.example.com/api/billing/credits/purchase"
payload = { "amount": 123 }
headers = {
"X-Organization-Id": "<x-organization-id>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Organization-Id': '<x-organization-id>', 'Content-Type': 'application/json'},
body: JSON.stringify({amount: 123})
};
fetch('https://api.example.com/api/billing/credits/purchase', 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.example.com/api/billing/credits/purchase",
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([
'amount' => 123
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Organization-Id: <x-organization-id>"
],
]);
$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.example.com/api/billing/credits/purchase"
payload := strings.NewReader("{\n \"amount\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Organization-Id", "<x-organization-id>")
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.example.com/api/billing/credits/purchase")
.header("X-Organization-Id", "<x-organization-id>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/billing/credits/purchase")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Organization-Id"] = '<x-organization-id>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": 123\n}"
response = http.request(request)
puts response.read_body{
"checkout_url": "https://checkout.dodopayments.com/pay/cs_abc123",
"session_id": "cs_abc123",
"credits_to_receive": 10000
}
Billing
Purchase Credits
POST
/
api
/
billing
/
credits
/
purchase
Purchase Credits
curl --request POST \
--url https://api.example.com/api/billing/credits/purchase \
--header 'Content-Type: application/json' \
--header 'X-Organization-Id: <x-organization-id>' \
--data '{
"amount": 123
}'import requests
url = "https://api.example.com/api/billing/credits/purchase"
payload = { "amount": 123 }
headers = {
"X-Organization-Id": "<x-organization-id>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Organization-Id': '<x-organization-id>', 'Content-Type': 'application/json'},
body: JSON.stringify({amount: 123})
};
fetch('https://api.example.com/api/billing/credits/purchase', 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.example.com/api/billing/credits/purchase",
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([
'amount' => 123
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Organization-Id: <x-organization-id>"
],
]);
$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.example.com/api/billing/credits/purchase"
payload := strings.NewReader("{\n \"amount\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Organization-Id", "<x-organization-id>")
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.example.com/api/billing/credits/purchase")
.header("X-Organization-Id", "<x-organization-id>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/billing/credits/purchase")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Organization-Id"] = '<x-organization-id>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": 123\n}"
response = http.request(request)
puts response.read_body{
"checkout_url": "https://checkout.dodopayments.com/pay/cs_abc123",
"session_id": "cs_abc123",
"credits_to_receive": 10000
}
Create a checkout session to purchase additional platform credits. This endpoint is available across all plan tiers.
Request
string
required
The unique identifier of the organization.
integer
required
The dollar amount of credits to purchase (e.g.,
10, 50, 100, 250, 500).Response
string
The URL to redirect the user to complete their payment via Dodo Payments.
string
The unique identifier of the checkout session.
integer
The number of credits that will be added to the balance upon successful payment.
{
"checkout_url": "https://checkout.dodopayments.com/pay/cs_abc123",
"session_id": "cs_abc123",
"credits_to_receive": 10000
}
⌘I