Skip to main content

Overview

Podium includes a programmable points ledger. Points are earned through purchases, campaign participation, API grants, and reward interactions. They can be spent on order discounts, reward redemption, and token presales. Points are scoped to your organization and optionally to a specific creator within it. This lets brands offer creator-specific loyalty programs while maintaining a unified points balance.

Earning Points

Via API (Agent/Programmatic)

Grant or deduct points directly. This is the primary method for companion agents and backend automations.
The details object is stored verbatim with the PointTransaction record for audit and analytics. A points-received event is published on successful grants.

Via Purchase

When a product has pointEligible: true, purchases automatically earn points based on the creator’s pointsPerDollar configuration. The earning happens as part of the purchase-processed event handler.

Via Campaign Completion

Campaign rewards are configured per-campaign via the CampaignReward model (see Campaigns). Points are awarded automatically when a user completes their CampaignJourney — after voting, submitting a survey, or completing UGC.

Transaction Types

Spending Points at Checkout

Points can be applied as a discount during the checkout flow using a two-phase commit pattern that prevents points from being spent on failed orders.

Step 1: Apply Points During Checkout

This reserves 500 points against the order and reduces the payment amount accordingly. The points value is deducted from the order total before creating the PaymentIntent.

Step 2a: Finalize (Payment Succeeded)

Commits the point reservation. After this call, the points are permanently deducted and cannot be reverted.

Step 2b: Revert (Payment Failed)

Deletes the PURCHASE point transactions for the order and returns the points to the user’s balance. This only works on orders in OPEN status.
Always finalize or revert points after payment completes. Leaving points in a reserved state causes balance inconsistencies.

Get Points Balance

Optionally scope to a single creator: ?creatorId=clcreator_abc.

Points Transaction History

Query Parameters

Response

PointTransaction Model

Linked Transaction Records

Each PointTransaction may have one linked detail record depending on the source:

Endpoint Summary