List Projects Payment Config
curl --request GET \
--url https://api.devkit4ai.com/api/v1/payments/projects \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devkit4ai.com/api/v1/payments/projects"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.devkit4ai.com/api/v1/payments/projects', 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.devkit4ai.com/api/v1/payments/projects",
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.devkit4ai.com/api/v1/payments/projects"
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.devkit4ai.com/api/v1/payments/projects")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devkit4ai.com/api/v1/payments/projects")
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{
"projects": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"has_payment_config": true,
"has_test_credentials": true,
"has_live_credentials": true,
"is_active": true,
"created_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"test_configured_at": "2023-11-07T05:31:56Z",
"live_configured_at": "2023-11-07T05:31:56Z"
}
],
"total": 123
}Payments
List Projects Payment Config
List all developer’s projects with their payment configuration status
GET
/
api
/
v1
/
payments
/
projects
List Projects Payment Config
curl --request GET \
--url https://api.devkit4ai.com/api/v1/payments/projects \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devkit4ai.com/api/v1/payments/projects"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.devkit4ai.com/api/v1/payments/projects', 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.devkit4ai.com/api/v1/payments/projects",
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.devkit4ai.com/api/v1/payments/projects"
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.devkit4ai.com/api/v1/payments/projects")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devkit4ai.com/api/v1/payments/projects")
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{
"projects": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"has_payment_config": true,
"has_test_credentials": true,
"has_live_credentials": true,
"is_active": true,
"created_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"test_configured_at": "2023-11-07T05:31:56Z",
"live_configured_at": "2023-11-07T05:31:56Z"
}
],
"total": 123
}Retrieve all projects owned by the authenticated developer along with their Stripe payment configuration status. Shows whether test and/or live credentials are configured for each project.
Authentication
This endpoint requires developer authentication via OAuth2 Bearer Token.
Response
array
Array of projects with payment configuration status
Show Project Payment Config
Show Project Payment Config
string (UUID)
Project ID
string
Project name
string
Project description
boolean
Whether any Stripe configuration exists
boolean
Whether test mode credentials are configured
boolean
Whether live mode credentials are configured
string (datetime)
When test credentials were last configured
string (datetime)
When live credentials were last configured
boolean
Whether the project is active
string (datetime)
When the project was created
integer
Total number of projects
Example Request
curl "https://api.devkit4ai.com/api/v1/payments/projects" \
-H "Authorization: Bearer {developer_jwt}"
Example Response
{
"projects": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "My SaaS App",
"description": "AI-powered image generation platform",
"has_payment_config": true,
"has_test_credentials": true,
"has_live_credentials": false,
"test_configured_at": "2026-01-10T14:30:00Z",
"live_configured_at": null,
"is_active": true,
"created_at": "2026-01-01T00:00:00Z"
},
{
"id": "660e8400-e29b-41d4-a716-446655440001",
"name": "Beta Project",
"description": null,
"has_payment_config": false,
"has_test_credentials": false,
"has_live_credentials": false,
"test_configured_at": null,
"live_configured_at": null,
"is_active": true,
"created_at": "2026-01-15T00:00:00Z"
}
],
"total": 2
}
Configuration Status
The payment configuration status helps you understand which projects are ready for payments:Start with test credentials for development and testing, then add live credentials when you’re ready to accept real payments.
Related Pages
Get Stripe Config
View detailed Stripe configuration
Update Stripe Config
Configure Stripe credentials
List Projects
View all projects
Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.

