Admin Billing API
Admin-only endpoints for managing subscriptions, viewing revenue, processing refunds, and managing coupons. Requires instance admin authentication.
Subscriptions
List All Subscriptions
GET /api/admin/subscriptions/?offset=0&per_page=20Get Subscription Detail
GET /api/admin/subscriptions/{subId}/Revenue
Revenue Summary
GET /api/admin/revenue/Response:
json
{
"active_subscriptions": 42,
"trial_subscriptions": 5,
"mrr": 4195000,
"revenue_30d": 8390000,
"revenue_7d": 2097500,
"currency": "TRY"
}All monetary values are in kurus (1 TRY = 100 kurus). Divide by 100 for display.
Payments
List All Payments
GET /api/admin/payments/?offset=0&per_page=20Refund a Payment
POST /api/admin/payments/{paymentId}/refund/Request Body:
json
{
"amount": 0
}amount: 0 = full refund. Otherwise specify amount in kurus.
Invoices
List All Invoices
GET /api/admin/invoices/?offset=0&per_page=20Get Invoice Detail
GET /api/admin/invoices/{invoiceId}/Coupons
List Active Coupons
GET /api/admin/coupons/Create Coupon
POST /api/admin/coupons/Request Body:
json
{
"code": "WELCOME20",
"discount_type": "percent",
"discount_value": 20,
"max_redemptions": 100,
"valid_from": "2026-04-01T00:00:00Z",
"valid_until": "2026-12-31T23:59:59Z"
}| Field | Type | Description |
|---|---|---|
discount_type | string | percent (0-100) or fixed (kurus) |
discount_value | integer | Discount amount |
max_redemptions | integer | 0 = unlimited |
applies_to_plans | string[] | Empty = all plans |
Delete Coupon
DELETE /api/admin/coupons/{couponId}/Configuration
Billing Configuration
GET /api/admin/subscription-config/Returns payment provider status (PayTR, Stripe, Iyzico), trial config, dunning config, and invoice settings.