> ## Documentation Index
> Fetch the complete documentation index at: https://rain-sandbox-trial.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Rewards Overview

> Learn how Raindrops works and what you need to configure, display, or integrate.

Rewards is infrastructure that lets partners add a points program to their card product. Cardholders earn points on posted card transactions, and can access multiple redemption options, including statement credits (functionally similar to cashback) and travel rewards.

Rain supports three points modes: **Rain-Managed** (default), where Rain handles the full lifecycle onchain, and two **Partner-Managed** modes for partners that own part or all of the rewards orchestration.

## Points Modes

| Mode                           | Description                                                                                                                                                                                                                                                                                                     |
| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Rain-Managed**               | Rain calculates points, mints ERC-20 tokens onchain, and handles redemptions. Points live in the cardholder's Rain collateral contract.                                                                                                                                                                         |
| **Partner-Managed (Onchain)**  | You hold the minter key and control per-user wallets. You mint tokens, process burns, and update your own ledger when necessary. Rain orchestrates travel redemptions and queries your server for end user balances via synchronous webhook.                                                                    |
| **Partner-Managed (Offchain)** | No onchain rewards activity. Rain keeps the canonical per-user points ledger in its database, supports adjustment APIs, and handles travel redemptions against that DB balance. For statement credits, you call Rain's API to debit the DB points balance, then apply the cardholder credit in your own system. |

<Info>
  Partner-managed programs should choose **Onchain** if your end users are crypto native, hold crypto wallets, and want to self-custody their assets, or if you otherwise want to take advantage of the extensibility/interoperability of public blockchain networks. If you want to optimize for simplicity and ease of integration, choose **Offchain**.
</Info>

## How It Works (Rain-Managed)

1. **Earn**: When a transaction settles, points entries are created in a pending state
2. **Settle**: When the statement closes, points move from pending to ready
3. **Mint**: At liquidation, ready points are minted onchain to the user's collateral contract
4. **Redeem**: Cardholder uses points for statement credits or travel bookings

## How It Works (Partner-Managed)

Partner-Managed behavior depends on whether balances live onchain or in Rain's database:

1. **Earn**: In onchain mode, calculate points from `transaction.spend.completed` webhooks. In offchain mode, Rain calculates card-spend points from your configured earn rates and stores them in the DB ledger.
2. **Mint**: In onchain mode, mint tokens to user wallets you control. In offchain mode, Rain marks points as minted in the DB without submitting an onchain transaction.
3. **Redeem**: For statement credits, onchain partners handle the redemption in their own system, while offchain partners call Rain to debit the DB points balance and then apply the credit themselves. For travel redemptions, Rain orchestrates the booking and checks balances against your webhook (onchain) or Rain's database (offchain).

See [Earning](/docs/rewards/earning) and [Minted](/docs/rewards/minted) for mode-specific details.

## What You Configure

During onboarding, you will:

* **Choose a points mode**: Rain-Managed (default), Partner-Managed (Onchain), or Partner-Managed (Offchain)
* **Set earn rates** (Rain-Managed and Partner-Managed Offchain): Define how many points cardholders earn per category. See [Configuring Rates](/docs/rewards/configuring-rates).

## Billing

Rewards allows you to take advantage of the same economics that have made programs like Skymiles the most profitable division of Delta Airlines. When cardholders earn points, there are no cash expenses incurred by you or Rain. Points are created as either tokens or database entries depending on your configuration, and you realize the benefit of rewards-based spend lift immediately. Cash expenses are only incurred later at redemption time, so you can take advantage of the **float** created by the time value of money and **breakage** when points go unredeemed.

Rain will include all expenses incurred by rewards redemptions for a given period on that period's invoice. If a reward is refunded after you have been billed for it, you will see a credit on your next invoice.

<Info>
  For clients with more complex accounting needs, please inquire for alternative reward funding mechanisms.
</Info>

## What Is Automatic

What Rain handles automatically depends on your points mode:

| Capability                   | Rain-Managed      | Partner-Managed (Onchain) | Partner-Managed (Offchain) |
| ---------------------------- | ----------------- | ------------------------- | -------------------------- |
| Point calculation            | ✓                 | ✓                         | ✓                          |
| Onchain minting              | ✓                 | You handle                | N/A                        |
| Statement-credit redemptions | ✓                 | You handle                | Both handle                |
| Travel-portal redemptions    | Rain orchestrates | Rain orchestrates         | ✓                          |
| Charge reconciliation        | ✓                 | ✓                         | ✓                          |

## Reading Balances

Use these endpoints to display points data in your app:

* `GET /issuing/raindrops/balance` - Returns the full onchain, withheld, pending, statement-credit, and available breakdown for Rain-Managed tenants. For Partner-Managed Offchain tenants, returns `{ availablePoints }`. Partner-Managed Onchain tenants receive 405 because balances are read from your system.
* `GET /issuing/raindrops/activity` — Returns a paginated list of earn and redeem events

<Info>
  Point amounts in API responses are JSON strings to preserve precision for values beyond 2^53.
</Info>

For Partner-Managed (Onchain), you maintain balances in your own system. Rain queries your balance via the `raindrop_balance.requested` webhook when needed for travel redemptions.

External endpoints require the `Api-Key` header. See [Authenticating with the API](/reference/authenticating-with-the-api) for details.
