Integration & APIsDecision memoUpdated 2026-02-20

The RESTful Surface

An immaculate, fully documented RESTful API surface area featuring dynamic filtering, cursor-based pagination, and rich HATEOAS responses.

Buyer-readyFounder-grade detailCommercial

The backend isn't just a database wrapper; it is a meticulously crafted HTTP surface. SCRIPE exposes a pristine RESTful API that adheres strictly to standard HTTP verbs, status codes, and hypermedia conventions.

Strict Controller Topography

ControllerEndpointsDescription
AuthController8Login, register, 2FA, password reset, sessions
UserController27CRUD, bulk ops, enterprise operations
RoleController12Role management, permission assignment
TenantController10Tenant lifecycle, settings, activation
AuditController6Audit log querying, export, streaming
NotificationController5Push notifications, mark read, preferences
FileController4Upload, download, delete, metadata
TemplateController5Email/message template CRUD, preview
MenuController6Dynamic menu management, overrides
SettingsController4System settings, tenant settings
DashboardController3KPI data, chart data, summaries
WebhookController5Subscription management, event catalog
RecycleBinController4Soft-deleted items, restore, purge
EditionsController11Edition CRUD, features, versioning, rollout
FeaturesController5Feature CRUD, value types, system features
SubscriptionsController12Assign, upgrade, downgrade, lifecycle, impact analysis
TenantFeaturesController4Per-tenant overrides, resolved features

Standardized Predictable Payloads

No more parsing random error strings. Every API response—whether successful or a catastrophic failure—is wrapped in our standardized `Result<T>` Problem Details structure, guaranteeing absolute predictability for frontend and third-party consumers.

Standard API ResponseJSON
// Success response
{
  "succeeded": true,
  "data": { ... },
  "message": "Operation completed successfully"
}

// Error response
{
  "succeeded": false,
  "errors": ["Validation failed: Email is required"],
  "errorCode": "VALIDATION_ERROR"
}

Cursor & Offset Pagination

Paginated Response FormatJSON
{
  "data": [...],
  "pagination": {
    "currentPage": 1,
    "pageSize": 20,
    "totalPages": 5,
    "totalCount": 95,
    "hasNextPage": true,
    "hasPreviousPage": false
  }
}

Strict Cryptographic Authorization

Every single controller is locked down by default. SCRIPE utilizes robust JWT token validation, requiring precise granular permissions and validated tenant claims before a single byte of JSON is returned.

Authentication HeaderText
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
X-Tenant-Id: 550e8400-e29b-41d4-a716-446655440000

Interactive OpenAPI Portals

We generate comprehensive, deeply annotated Swagger (OpenAPI 3.0) documentation directly from the C# source code at runtime. Developers can interactively test authenticated payloads directly from their browser the moment the system boots.

  • Auto-generated from controller attributes and XML documentation
  • Try-it-out mode for testing endpoints directly
  • JWT authentication support in the Swagger UI
  • Request/response schema documentation with examples
  • Grouped by controller for easy navigation
  • Available at /swagger in development mode