List Project Payments
curl --request GET \
--url https://api.devkit4ai.com/api/v1/payments/stripe/projects/{project_id}/payments \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devkit4ai.com/api/v1/payments/stripe/projects/{project_id}/payments"
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/stripe/projects/{project_id}/payments', 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/stripe/projects/{project_id}/payments",
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/stripe/projects/{project_id}/payments"
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/stripe/projects/{project_id}/payments")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devkit4ai.com/api/v1/payments/stripe/projects/{project_id}/payments")
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",
"is_test_mode": true,
"payment_intent_id": "<string>",
"status": "<string>",
"amount_cents": 123,
"currency": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"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>"
}
]
}Stripe Configuration
List Project Payments
List all Stripe payment transactions for a specific project
GET
/
api
/
v1
/
payments
/
stripe
/
projects
/
{project_id}
/
payments
List Project Payments
curl --request GET \
--url https://api.devkit4ai.com/api/v1/payments/stripe/projects/{project_id}/payments \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devkit4ai.com/api/v1/payments/stripe/projects/{project_id}/payments"
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/stripe/projects/{project_id}/payments', 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/stripe/projects/{project_id}/payments",
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/stripe/projects/{project_id}/payments"
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/stripe/projects/{project_id}/payments")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devkit4ai.com/api/v1/payments/stripe/projects/{project_id}/payments")
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",
"is_test_mode": true,
"payment_intent_id": "<string>",
"status": "<string>",
"amount_cents": 123,
"currency": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"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>"
}
]
}List all Stripe payment transactions for a specific project. This endpoint is for developers to view all payments made by their end users.
Authentication
This endpoint requires developer authentication via OAuth2 Bearer Token. You must own the project.
Path Parameters
string (UUID)
required
The unique identifier of the project
Query Parameters
boolean
default:"true"
Filter by test mode. Set to
false for live payments only.integer
default:"1"
Page number for pagination (minimum: 1)
integer
default:"50"
Number of items per page (1-100)
Response
array
Array of payment objects
Show Payment
Show Payment
string (UUID)
Internal payment ID
string (UUID)
Project ID
string (UUID)
Related subscription ID (if subscription payment)
string (UUID)
End user ID (if linked)
boolean
Whether this is a test payment
string
Stripe PaymentIntent ID (e.g.,
pi_1ABC...)string
Payment status
integer
Payment amount in cents
string
Currency code (e.g.,
usd)string
Payment description
integer
default:"0"
Amount refunded in cents
string (datetime)
When the payment was created
integer
Total number of payments
integer
Current page number
integer
Items per page
Example Request
curl "https://api.devkit4ai.com/api/v1/payments/stripe/projects/550e8400-e29b-41d4-a716-446655440000/payments?test_mode=true&page=1" \
-H "Authorization: Bearer {developer_jwt}"
Example Response
{
"payments": [
{
"id": "aa0e8400-e29b-41d4-a716-446655440000",
"project_id": "550e8400-e29b-41d4-a716-446655440000",
"subscription_id": "880e8400-e29b-41d4-a716-446655440000",
"user_id": "990e8400-e29b-41d4-a716-446655440000",
"is_test_mode": true,
"payment_intent_id": "pi_1ABC123def456",
"status": "succeeded",
"amount_cents": 1999,
"currency": "usd",
"description": "Subscription to Pro Plan",
"refunded_amount_cents": 0,
"created_at": "2026-01-15T10:30:00Z"
}
],
"total": 1,
"page": 1,
"page_size": 50
}
Payment Statuses
| Status | Description |
|---|---|
succeeded | Payment completed successfully |
pending | Payment is being processed |
failed | Payment attempt failed |
refunded | Payment was fully refunded |
partially_refunded | Payment was partially refunded |
canceled | Payment was canceled |
Amount Formatting
Amounts are stored in cents. To display as currency:const amount = payment.amount_cents / 100;
const formatted = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: payment.currency.toUpperCase()
}).format(amount);
// $19.99
Refund Tracking
Check if a payment has been refunded:if (payment.refunded_amount_cents === 0) {
// No refund
} else if (payment.refunded_amount_cents === payment.amount_cents) {
// Full refund
} else {
// Partial refund
}
Related Pages
List Project Subscriptions
View project subscriptions
List All Transactions
View payments across projects
Get My Payments
End user payment history
Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
Query Parameters
Filter by test mode
Required range:
x >= 1Required range:
1 <= x <= 100
