Skip to main content
GET
/
api
/
v1
/
payments
/
transactions
List All Transactions
curl --request GET \
  --url https://api.devkit4ai.com/api/v1/payments/transactions \
  --header 'Authorization: Bearer <token>'
{
  "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
}
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

project_id
string (UUID)
Filter transactions by specific project ID
test_mode
boolean
Filter by test mode (true) or live mode (false). If omitted, returns both.
status
string
Filter by payment status: succeeded, pending, failed, canceled, refunded
page
integer
default:"1"
Page number for pagination (minimum: 1)
page_size
integer
default:"50"
Number of results per page (1-100)

Response

payments
array
Array of payment transaction objects with project information
total
integer
Total number of payments matching the filter
page
integer
Current page number
page_size
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"

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Query Parameters

project_id
string<uuid> | null

Filter by project

test_mode
boolean | null

Filter by test mode

status
string | null

Filter by status

page
integer
default:1
Required range: x >= 1
page_size
integer
default:50
Required range: 1 <= x <= 100

Response

Successful Response

Paginated list of payments across projects.

payments
AggregatedPaymentResponse · object[]
required
total
integer
required
page
integer
required
page_size
integer
required