List All Transactions
curl --request GET \
--url https://api.devkit4ai.com/api/v1/payments/transactions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devkit4ai.com/api/v1/payments/transactions"
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/transactions', 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/transactions",
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/transactions"
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/transactions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devkit4ai.com/api/v1/payments/transactions")
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{
"payments": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"project_name": "<string>",
"is_test_mode": true,
"payment_intent_id": "<string>",
"status": "<string>",
"amount_cents": 123,
"currency": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"provider": "stripe",
"subscription_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"description": "<string>",
"refunded_amount_cents": 0
}
],
"total": 123,
"page": 123,
"page_size": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Payments
List All Transactions
List all payment transactions across developer’s projects with optional filtering
GET
/
api
/
v1
/
payments
/
transactions
List All Transactions
curl --request GET \
--url https://api.devkit4ai.com/api/v1/payments/transactions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devkit4ai.com/api/v1/payments/transactions"
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/transactions', 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/transactions",
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/transactions"
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/transactions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devkit4ai.com/api/v1/payments/transactions")
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{
"payments": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"project_name": "<string>",
"is_test_mode": true,
"payment_intent_id": "<string>",
"status": "<string>",
"amount_cents": 123,
"currency": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"provider": "stripe",
"subscription_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"description": "<string>",
"refunded_amount_cents": 0
}
],
"total": 123,
"page": 123,
"page_size": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Retrieve all payment transactions (successful and failed) across all projects owned by the authenticated developer. Supports filtering by project, test mode, and payment status.
Authentication
This endpoint requires developer authentication via OAuth2 Bearer Token.
Query Parameters
string (UUID)
Filter transactions by specific project ID
boolean
Filter by test mode (
true) or live mode (false). If omitted, returns both.string
Filter by payment status:
succeeded, pending, failed, canceled, refundedinteger
default:"1"
Page number for pagination (minimum: 1)
integer
default:"50"
Number of results per page (1-100)
Response
array
Array of payment transaction objects with project information
Show Payment Object
Show Payment Object
string (UUID)
Internal payment record ID
string (UUID)
Project this payment belongs to
string
Name of the project
string
Payment provider (always “stripe”)
string (UUID)
Related subscription ID (if applicable)
string (UUID)
End user who made the payment
boolean
Whether this is a test mode payment
string
Stripe payment intent ID (e.g.,
pi_xxx)string
Payment status
integer
Payment amount in cents
string
Currency code (e.g., “usd”)
string
Payment description
integer
Amount refunded in cents (0 if no refund)
string (datetime)
When the payment was created
integer
Total number of payments matching the filter
integer
Current page number
integer
Number of results per page
Example Request
curl "https://api.devkit4ai.com/api/v1/payments/transactions?status=succeeded&page=1" \
-H "Authorization: Bearer {developer_jwt}"
Example Response
{
"payments": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"project_id": "660e8400-e29b-41d4-a716-446655440001",
"project_name": "My SaaS App",
"provider": "stripe",
"subscription_id": "770e8400-e29b-41d4-a716-446655440002",
"user_id": "880e8400-e29b-41d4-a716-446655440003",
"is_test_mode": true,
"payment_intent_id": "pi_1234567890",
"status": "succeeded",
"amount_cents": 2999,
"currency": "usd",
"description": "Pro Plan - Monthly",
"refunded_amount_cents": 0,
"created_at": "2026-01-15T10:30:00Z"
}
],
"total": 1,
"page": 1,
"page_size": 50
}
Formatting Amounts
Payment amounts are returned in cents. To display as currency:const formatAmount = (cents, currency) => {
return new Intl.NumberFormat('en-US', {
style: 'currency',
currency: currency.toUpperCase()
}).format(cents / 100);
};
// formatAmount(2999, 'usd') => "$29.99"
Related Pages
List Subscriptions
View all subscriptions
Payment Statistics
Aggregated payment metrics
Project Payments
View payments for a specific project
Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Query Parameters
Filter by project
Filter by test mode
Filter by status
Required range:
x >= 1Required range:
1 <= x <= 100
