Skip to main content
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>'
{
  "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
}
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

project_id
string (UUID)
required
The unique identifier of the project

Query Parameters

test_mode
boolean
default:"true"
Filter by test mode. Set to false for live payments only.
page
integer
default:"1"
Page number for pagination (minimum: 1)
page_size
integer
default:"50"
Number of items per page (1-100)

Response

payments
array
Array of payment objects
total
integer
Total number of payments
page
integer
Current page number
page_size
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

StatusDescription
succeededPayment completed successfully
pendingPayment is being processed
failedPayment attempt failed
refundedPayment was fully refunded
partially_refundedPayment was partially refunded
canceledPayment 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
}

Authorizations

Authorization
string
header
required

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

Path Parameters

project_id
string<uuid>
required

Query Parameters

test_mode
boolean
default:true

Filter by test mode

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

Response

Successful Response

Paginated list of Stripe payments.

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