Skip to main content
Travel redemptions let cardholders book flights, hotels, car rentals, and packages using their points at full face value (1 point = $0.01). This requires integration between your app, Rain, and our white-label travel portal provider. What you build depends on your points mode. Pick the page that matches your program type. Each one covers the end-to-end flow and the code you write in one place.

Rain Managed

Rain orchestrates the redemption and fires raindrop_redemption.created so you can burn the points. Covers the flow plus the portal-launch and webhook recipes.

Partner Managed

Rain uses your balance source (onchain or offchain) and fires raindrop_redemption.completed. Covers both modes plus the balance, completion, and refund recipes.

Who Builds What

Redemption Status Values

API Endpoints

Use these endpoints to manage travel redemptions.
The refund endpoint is safe to retry. The first call on a COMPLETED redemption restores the points and marks it REFUNDED; a later retry on the same redemption returns 200 with REFUNDED again rather than refunding twice. Two refunds racing in parallel return 409 for the loser. A 404 means the redemption does not exist or is not in a refundable state (for example, it never reached COMPLETED).
Travel portal API keys need raindrops-travel:read for balance display and raindrops-travel:write for create/refund calls.

Billing Impact

The booking’s face value is charged on your next tenant report when the travel redemption completes. Charges are created at redemption time by default, not at mint or DB finalization time. A refund inserts a compensating credit.