Reward Programs

The Reward Program feature enables you to create spending-based incentive programs. To set up a Reward Program, you must first define "on paper" the conditions under which your customers can earn and burn (spend) rewards. Marqeta then takes your earn/burn condition definitions and sets up the Reward Program for you.

Incentives (or rewards) can be implemented in various ways. For example, an incentive could be a cash-back amount that is rewarded when purchases exceed a specified threshold. Or, as another example, an incentive could be a discount rewarded when purchases meet some specified conditions.

Reward conditions can be configured to occur either at specific times or at points along the transaction lifecycle. They can also be coupled with one another to craft specific and effective incentive programs.

Retrieve reward program

Action: GET
Endpoint: /rewardprograms/{token}

Use this endpoint to retrieve a reward program. Include the reward program token as a path parameter to identify the reward program.

URL path parameters

Name Type Required? Description Allowable Values
token string Yes Identifies the reward program to retrieve. Existing reward program token.

Issue a GET to /rewardprograms to retrieve reward program tokens.

Sample response body

{
"type" : "CAMPAIGN",
"name" : "my_reward",
"priority" : 0,
"active" : true,
"reward" : {
"value" : "0.10",
"descriptor" : "CENTS_PER_GALLON"
},
"actions" : [ {
"name" : "EarnRewardAction",
"argument" : {
"value" : "AUTH,CLEAR,SALE",
"descriptor" : "TRANSACTION_EVENT"
}
} ],
"token" : "my_reward_token",
"earn_conditions" : [ {
"name" : "PURCHASE_THRESHOLD",
"argument" : {
"value" : "50.00",
"descriptor" : "CASH_AMOUNT"
}
}, {
"name" : "REWARD_EXPIRATION_TIME",
"argument" : {
"value" : "30",
"descriptor" : "DAYS"
}
}, {
"name" : "PURCHASE_EXPIRATION_TIME",
"argument" : {
"value" : "30",
"descriptor" : "DAYS"
}
} ],
"burn_conditions" : [ {
"name" : "PURCHASE_THRESHOLD",
"argument" : {
"value" : "20",
"descriptor" : "GALLONS",
"constraint" : "MAX"
}
} ],
"created_time" : "2015-04-24T19:44:58Z",
"last_modified_time" : "2015-04-24T19:44:58Z",
"campaign" : {
"active" : true,
"name" : "my_campaign_2",
"token" : "my_campaign_2_token",
"start_date" : "2014-11-21",
"end_date" : "2043-11-21"
}
}


List reward programs

Action: GET
Endpoint: /rewardprograms

Use this endpoint to list all reward programs for all campaigns.

This endpoint supports field filtering and pagination.

Sample response body

{
"campaign": {
"active": false,
"name": "",
"token": "",
"store_tokens": "java.util.ArrayList<java.lang.String>",
"start_date": "",
"end_date": ""
},
"created_time": "",
"last_modified_time": "",
"token": "",
"active": false,
"start_date": "",
"end_date": "",
"reward": {
"value": "",
"descriptor": ""
},
"earn_conditions": [
{
"name": "",
"argument": {
"constraint": "argument_constraint",
"value": "",
"descriptor": "value_descriptor"
}
}
],
"burn_conditions": [
{
"name": "",
"argument": {
"constraint": "argument_constraint",
"value": "",
"descriptor": "value_descriptor"
}
}
],
"name": "",
"actions": [
{
"name": "",
"argument": {
"constraint": "argument_constraint",
"value": "",
"descriptor": "value_descriptor"
}
}
],
"priority": 0,
"tags": ""
}


List active reward programs

Action: GET
Endpoint: /rewardprograms/active

Use this endpoint to list all active reward programs.

This endpoint supports field filtering and pagination.

Sample response body

{
"count" : 2,
"start_index" : 0,
"end_index" : 1,
"is_more" : false,
"data" : [ {
"name" : "my_reward",
"priority" : 0,
"active" : true,
"reward" : {
"value" : "0.10",
"descriptor" : "CENTS_PER_GALLON"
},
"actions" : [ {
"name" : "EarnRewardAction",
"argument" : {
"value" : "AUTH,CLEAR,SALE",
"descriptor" : "TRANSACTION_EVENT"
}
} ],
"token" : "my_reward_token",
"earn_conditions" : [ {
"name" : "PURCHASE_THRESHOLD",
"argument" : {
"value" : "50.00",
"descriptor" : "CASH_AMOUNT"
}
}, {
"name" : "REWARD_EXPIRATION_TIME",
"argument" : {
"value" : "30",
"descriptor" : "DAYS"
}
}, {
"name" : "PURCHASE_EXPIRATION_TIME",
"argument" : {
"value" : "30",
"descriptor" : "DAYS"
}
} ],
"burn_conditions" : [ {
"name" : "PURCHASE_THRESHOLD",
"argument" : {
"value" : "20",
"descriptor" : "GALLONS",
"constraint" : "MAX"
}
} ],
"created_time" : "2015-04-24T19:44:58Z",
"last_modified_time" : "2015-04-24T19:44:58Z",
"campaign" : {
"active" : true,
"name" : "my_campaign_2",
"token" : "my_campaign_2_token",
"start_date" : "2014-11-21",
"end_date" : "2043-11-21"
}
}, {
"name" : "my_gas_reward",
"priority" : 0,
"active" : true,
"reward" : {
"value" : "0.10",
"descriptor" : "CENTS_PER_GALLON"
},
"actions" : [ {
"name" : "EarnRewardAction",
"argument" : {
"value" : "AUTH,CLEAR,SALE",
"descriptor" : "TRANSACTION_EVENT"
}
} ],
"token" : "my_gas_reward_token",
"earn_conditions" : [ {
"name" : "PURCHASE_THRESHOLD",
"argument" : {
"value" : "50.00",
"descriptor" : "CASH_AMOUNT"
}
}
} ]
}


List active reward programs for campaign

Action: GET
Endpoint: /rewardprograms/campaign/{token}

Use this endpoint to list all active rewards programs for a campaign. Include the campaign's token as a path parameter to identify the campaign.

This endpoint supports field filtering and pagination.

URL path parameters

Name Type Required? Description Allowable Values
token string No Identifies the campaign whose associated reward programs you want to list. Existing campaign token.

Issue a GET to /campaigns to retrieve campaign tokens.

Sample response body

{
"count": 1,
"start_index": 0,
"end_index": 0,
"is_more": false,
"data": [
{
"name": "my_reward",
"priority": 0,
"active": true,
"reward": {
"value": "0.10",
"descriptor": "CENTS_PER_GALLON"
},
"actions": [
{
"name": "EarnRewardAction",
"argument": {
"value": "AUTH,CLEAR,SALE",
"descriptor": "TRANSACTION_EVENT"
}
}
],
"token": "my_reward_token",
"earn_conditions": [
{
"name": "PURCHASE_THRESHOLD",
"argument": {
"value": "50.00",
"descriptor": "CASH_AMOUNT"
}
},
{
"name": "REWARD_EXPIRATION_TIME",
"argument": {
"value": "30",
"descriptor": "DAYS"
}
},
{
"name": "PURCHASE_EXPIRATION_TIME",
"argument": {
"value": "30",
"descriptor": "DAYS"
}
}
],
"burn_conditions": [
{
"name": "PURCHASE_THRESHOLD",
"argument": {
"value": "20",
"descriptor": "GALLONS",
"constraint": "MAX"
}
}
],
"created_time": "2015-04-24T19:44:58Z",
"last_modified_time": "2015-04-24T19:44:58Z",
"campaign": {
"active": true,
"name": "my_campaign_2",
"token": "my_campaign_2_token",
"start_date": "2014-11-21",
"end_date": "2043-11-21"
}
}
]
}