Cashback Rewards
Overview
Cashback Rewards let a cardholder earn money back on eligible purchases made with their Upwardli-issued card. Rewards are powered by a rewards configuration that your partner program makes available; once a card is enrolled in a configuration, the cardholder can browse the offers they’re eligible for and cashback is posted to their account automatically.
This guide walks through the full lifecycle:
- Find the cardholder’s payment card.
- Check whether the card is already enrolled.
- List the rewards configurations the card is eligible for.
- Enroll the card in an active configuration.
- View the offers available to the enrolled card.
Who this is for: partners integrating directly against the API, and the embedded web component that surfaces this same flow to a consumer.
Token scope required: api:rewards:read for the read endpoints, api:rewards:write
to enroll. The broader api:read / api:write scopes also grant access.
Prerequisites
- Valid OAuth 2.0 Bearer token (see Authentication)
- The consumer has at least one active payment card on your partner network
- Cashback Rewards are enabled for your partner configuration
How It Works
Base URLs
1. Find the payment card
Rewards endpoints are keyed by a payment card external ID. List the consumer’s
cards and select an active one (skip cards whose status is canceled, closed,
or deactivated).
Endpoint
Example request
The id of the chosen card is the {payment_card_id} used in every step below.
Full API reference
2. Check the current enrollment
Before showing an activation prompt, check whether the card is already enrolled.
An enrollment with is_active: true means the cardholder is already earning rewards —
skip to step 5 and use its program_id to fetch offers.
Endpoint
Example request
Response — 200 OK
If no result has is_active: true, the card is not enrolled yet — continue to step 3.
Full API reference
3. List eligible rewards configurations
When the card has no active enrollment, list the configurations available to it. A
configuration with is_active: true can be enrolled in; its id is the
{rewards_configuration_id} you pass in step 4. is_enrolled tells you whether the
card is already enrolled in that specific configuration.
Endpoint
Example request
Response — 200 OK
No active configuration means rewards aren’t available for this card yet — surface a “coming soon” state rather than an activation prompt.
Full API reference
4. Enroll the card
Enroll the card in an active configuration. No request body is required — the card and
configuration are identified entirely by the path. The response is the new enrollment,
which carries the program_id you’ll need to fetch offers.
Endpoint
Example request
Response — 201 Created
Full API reference
5. View available offers
With an active enrollment, fetch the offers the cardholder is eligible for. Pass the
program_id from the enrollment as the {program_id} path parameter. To surface
nearby in-store offers, include the cardholder’s latitude and longitude (and an
optional radius).
Endpoint
Query parameters
Example request
Response — 200 OK
Reward types
The attributes.userReward object describes how much the cardholder earns:
purchaseChannel is ["INSTORE"] for in-store offers (which include an address)
or ["ONLINE"] for online offers (use websiteUrl).

