Core Concepts

Understanding how RevKeen's objects work together to power your billing

RevKeen uses a relationship-based object model where entities connect to enable powerful billing workflows. Understanding these relationships is key to using the platform effectively.

Object Hierarchy

┌─────────────────────────────────────────────────────────────────┐
│                         MERCHANT                                 │
│  (Your Business Account)                                        │
└───────────┬────────────────────────────────────────────┬────────┘
            │                                            │
            ▼                                            ▼
┌─────────────────────┐                    ┌─────────────────────┐
│      PRODUCTS       │                    │     CUSTOMERS       │
│  - Name, Description│                    │  - Name, Email      │
│  - Fulfillment Type │                    │  - Payment Methods  │
│  - Benefits         │                    │  - Addresses        │
└─────────┬───────────┘                    └──────────┬──────────┘
          │                                           │
          ▼                                           │
┌─────────────────────┐                               │
│       PRICES        │                               │
│  - One-time         │                               │
│  - Recurring        │                               │
│  - Pay-what-you-want│                               │
└─────────┬───────────┘                               │
          │                                           │
          ▼                                           │
┌─────────────────────┐                               │
│   CHECKOUT LINKS    │◄──────────────────────────────┤
│  - Public URL       │                               │
│  - Customization    │                               │
│  - Analytics        │                               │
└─────────┬───────────┘                               │
          │                                           │
          ▼                                           ▼
┌─────────────────────────────────────────────────────────────────┐
│                      CHECKOUT SESSION                            │
│  (Customer completes payment)                                    │
└─────────┬───────────────────────────────────────────┬───────────┘
          │                                           │
          ▼                                           ▼
┌─────────────────────┐                    ┌─────────────────────┐
│       ORDERS        │                    │   SUBSCRIPTIONS     │
│  (One-time purchase)│                    │  (Recurring billing)│
│  - Order Line Items │                    │  - Subscription Items│
│  - Fulfillment      │                    │  - Trial period     │
└─────────┬───────────┘                    └──────────┬──────────┘
          │                                           │
          └───────────────────┬───────────────────────┘
                              │
                              ▼
                   ┌─────────────────────┐
                   │      INVOICES       │
                   │  - Invoice Line Items│
                   │  - Due date         │
                   │  - Status lifecycle │
                   └─────────┬───────────┘
                             │
                             ▼
                   ┌─────────────────────┐
                   │      PAYMENTS       │
                   │  - Payment attempts │
                   │  - Refunds          │
                   │  - Disputes         │
                   └─────────────────────┘

Core Objects

Product

A product represents something you sell—a physical item, digital download, or service. Products don't have prices directly; instead, you attach one or more Prices to a product.

Key Fields:

  • name - Display name
  • description - Detailed description
  • fulfillment_type - physical | digital | none (service)
  • is_active - Whether product is available for sale

Price

A price defines how much a product costs and how it's billed. A single product can have multiple prices (e.g., monthly and annual billing options).

Price Types:

  • One-time - Single payment (e.g., $99)
  • Recurring - Repeated billing (e.g., $29/month)
  • Pay-what-you-want - Customer chooses amount

Checkout Link (Payment Link)

A checkout link is a shareable URL that customers can use to purchase your products. When a customer completes checkout, it creates either an Order (one-time) or Subscription (recurring).

Customer

A customer represents someone who has purchased from you or who you'll invoice. Customers can have multiple payment methods and addresses.

Invoice

An invoice is a request for payment. Invoices can be Manual (created by you for custom charges) or Automatic (generated by subscriptions).

Invoice Line Item Sources:

  • price - From a product price
  • order_line_item - From an order
  • subscription_item - From a subscription
  • adjustment - Manual adjustment

Order

An order represents a one-time purchase. Orders track fulfillment status for physical and digital products.

Subscription

A subscription represents ongoing recurring billing. Subscriptions automatically generate invoices at each billing period.

Subscription Items allow multiple products in a single subscription, similar to Stripe's model.

Event

Events provide a complete audit trail of everything that happens in your account. Use events to track customer activity, payment history, and administrative actions.

Learn More