Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://testflight.tremendous.com/api/v2
https://www.tremendous.com/api/v2
/balance_transactions
Fetch a list of all balance transactions on your account.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| offset | query | optional | integer | Offsets the returned list by the given number of transactions. The returned transactions are ordered (and offsetted) by their creation date (DESC). |
| limit | query | optional | integer | Limits the number of transactions listed. The default value is 10. |
| created_at[gte] | query | optional | string | Only return results where the created_at field is greater than or equal to the supplied value. The string needs to be an ISO 8601 datetime. |
| created_at[lte] | query | optional | string | Only return results where the created_at field is less than or equal to the supplied value. The string needs to be an ISO 8601 datetime. |
GET /balance_transactions
/campaigns
Retrieve a list of all campaigns created in your account
GET /campaigns
/campaigns/{id}
Retrieve a campaign, identified by the given `id` in the URL
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the campaign that should be retrieved |
GET /campaigns/{id}
/fields
For reporting and analytics purposes, custom fields can be associated with rewards generated through the API. Custom fields must be first added by members of your admin team through the Tremendous Dashboard.
GET /fields
/funding_sources
Retrieve a list of all funding sources available for ordering through the API in your organization's account.
GET /funding_sources
/funding_sources/{id}
Retrieve a funding source, identified by the given `id` in the URL
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the funding source that should be retrieved |
GET /funding_sources/{id}
/invoices
Fetch a list of all invoices on your account. > 🚧 Deleted invoices are omitted > > The response does not include any previously deleted invoices.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| offset | query | optional | integer | Offsets the returned list by the given number of invoices. The returned invoices are ordered (and offsetted) by their creation date (DESC). |
| limit | query | optional | integer | Limits the number of invoices listed. The maximum and default value is 10. |
GET /invoices
/invoices/{id}
Retrieve an invoice, identified by the given `id` in the URL > 📘 Deleted Invoices > > This endpoint can be used to retrieve details on deleted invoices > that the list of invoices omits.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the invoice that should be retrieved |
GET /invoices/{id}
/invoices/{id}/csv
Generates a CSV version for an invoice listing the associated rewards and orders
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the Invoice for that the CSV should be generated |
GET /invoices/{id}/csv
/invoices/{id}/pdf
Generates a PDF version for an invoice
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the Invoice for that the PDF should be generated |
GET /invoices/{id}/pdf
/members
To list members of a sub-organization [create an API key for that organization](https://developers.tremendous.com/) first, then use the new API key in the list members request.
GET /members
/members/{id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the member to retrieve |
GET /members/{id}
/orders
Retrieve a list of orders
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| offset | query | optional | integer | Offsets the returned list by the given number of orders. The returned orders are ordered (and offsetted) by their creation date (DESC). |
| campaign_id | query | optional | string | Only return results with a matching campaign_id. |
| external_id | query | optional | string | Only return results with a matching external_id. |
| created_at[gte] | query | optional | string | Only return results where the created_at field is greater than or equal to the supplied value. The string needs to be an ISO 8601 datetime. |
| created_at[lte] | query | optional | string | Only return results where the created_at field is less than or equal to the supplied value. The string needs to be an ISO 8601 datetime. |
| limit | query | optional | integer | Limits the number of orders listed. The maximum value is 100 and the default is 10. |
GET /orders
/orders/{id}
Retrieve the order, identified by the given `id` in the URL
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the order that should be retrieved. In case the order has an `external_id` reference supplied by the customer on creation, it's possible to use it instead. |
GET /orders/{id}
/organizations
The returned list only includes the organization to which the API key belongs to, that is used for the request.
GET /organizations
/organizations/{id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the organization to retrieve |
GET /organizations/{id}
/products
Retrieve a list of available products
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| country | query | optional | string | Comma-separated list of [Alpha-2 country codes](https://www.iban.com/country-codes), used to only retrieve products available in the provided countries |
| currency | query | optional | string | Comma-separated list of [currency codes](https://www.iban.com/currency-codes), used to only retrieve products available in the provided currencies |
GET /products
/products/{id}
Retrieve a product, identified by the given `id` in the URL
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the product that should be retrieved |
GET /products/{id}
/rewards
Retrieve a list of all created rewards
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| offset | query | optional | integer | Offsets the returned list by the given number of rewards. The returned rewards are ordered (and offsetted) by their creation date (DESC). |
GET /rewards
/rewards/{id}
Retrieve the reward, identified by the given `id` in the URL
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the reward that should be retrieved |
GET /rewards/{id}
/webhooks
Every organization can only have one webhook. This endpoint shows the details about that webhook. > 📘 Learn more about Webhooks > > Our guide explains everything you need to know about the Tremendous webhooks: > [Read it here](https://developers.tremendous.com/)
GET /webhooks
/webhooks/{id}
> 📘 Learn more about Webhooks > > Our guide explains everything you need to know about the Tremendous webhooks: > [Read it here](https://developers.tremendous.com/)
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the webhook to retrieve |
GET /webhooks/{id}
/webhooks/{id}/events
Lists all event types that can be sent to the configured webhook endpoint. > 📘 Learn more about Webhooks > > Our guide explains everything you need to know about the Tremendous webhooks: > [Read it here](https://developers.tremendous.com/)
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the webhook to list the events for |
GET /webhooks/{id}/events
BalanceTransaction
{
"type": "object",
"properties": {
"action": {
"type": "string",
"example": "Deposit",
"description": "The action that was performed"
},
"amount": {
"type": "number",
"format": "double",
"example": 50.35,
"description": "Amount of the transaction in USD"
},
"balance": {
"type": "number",
"format": "double",
"example": 92.48,
"description": "The updated total after the transaction. Note that this running balance may be delayed and contain `null`."
},
"created_at": {
"type": "string",
"format": "date",
"description": "Date that the transaction was created"
},
"description": {
"type": "string",
"description": "A brief description of the transaction"
}
},
"description": "A balance transaction represents a specific movement or change in an account's balance.\n"
}
BalanceTransactionsListAll401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
BalanceTransactionsListAll422Response
{
"type": "object",
"example": {
"errors": {
"message": "Order failed: validation failure",
"payload": {
"some_field": {
"some_sub_field": "Something went wrong with this parameter"
}
}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
BalanceTransactionsListAll429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
BalanceTransactionsListAll500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
BalanceTransactionsListAllResponse
{
"type": "object",
"properties": {
"invoices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"action": {
"type": "string",
"example": "Deposit",
"description": "The action that was performed"
},
"amount": {
"type": "number",
"format": "double",
"example": 50.35,
"description": "Amount of the transaction in USD"
},
"balance": {
"type": "number",
"format": "double",
"example": 92.48,
"description": "The updated total after the transaction. Note that this running balance may be delayed and contain `null`."
},
"created_at": {
"type": "string",
"format": "date",
"description": "Date that the transaction was created"
},
"description": {
"type": "string",
"description": "A brief description of the transaction"
}
},
"description": "A balance transaction represents a specific movement or change in an account's balance.\n"
}
}
}
}
Campaign
{
"type": "object",
"required": [
"id",
"name",
"description",
"products"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true
},
"name": {
"type": "string",
"example": "My Default Campaign",
"description": "Name of the campaign"
},
"products": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true
},
"example": [
"P3MR06THYM8R",
"EFMULTF26PMR"
],
"description": "List of IDs of products (different gift cards, charity, etc.) that are available in this campaign.\n"
},
"description": {
"type": "string",
"example": "A campaign I use as the default in Tremendous\"",
"nullable": true,
"description": "Description of the campaign"
}
},
"description": "With a campaign you can define the look & feel of how rewards are sent out.\nIt also lets you set the available products (different gift cards, charity, etc.)\nrecipients can choose from.\n\n> Note: Campaigns must be created from the Tremendous dashboard.\n>\n> • [Production Dashboard](https://app.tremendous.com)\n> • [Sandbox Dashboard](https://app.testflight.tremendous.com/)\n"
}
CampaignsGetAll401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
CampaignsGetAll429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
CampaignsGetAll500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
CampaignsGetAllResponse
{
"type": "object",
"required": [
"campaigns"
],
"properties": {
"campaigns": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"description",
"products"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"name": {
"type": "string",
"example": "My Default Campaign",
"description": "Name of the campaign"
},
"products": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"example": [
"P3MR06THYM8R",
"EFMULTF26PMR"
],
"description": "List of IDs of products (different gift cards, charity, etc.) that are available in this campaign.\n"
},
"description": {
"type": "string",
"example": "A campaign I use as the default in Tremendous\"",
"nullable": true,
"description": "Description of the campaign"
}
},
"description": "With a campaign you can define the look & feel of how rewards are sent out.\nIt also lets you set the available products (different gift cards, charity, etc.)\nrecipients can choose from.\n\n> Note: Campaigns must be created from the Tremendous dashboard.\n>\n> • [Production Dashboard](https://app.tremendous.com)\n> • [Sandbox Dashboard](https://app.testflight.tremendous.com/)\n"
}
}
}
}
CampaignsGetById401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
CampaignsGetById404Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
CampaignsGetById429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
CampaignsGetById500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
CampaignsGetByIdResponse
{
"type": "object",
"required": [
"campaign"
],
"properties": {
"campaign": {
"type": "object",
"required": [
"id",
"name",
"description",
"products"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"name": {
"type": "string",
"example": "My Default Campaign",
"description": "Name of the campaign"
},
"products": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"example": [
"P3MR06THYM8R",
"EFMULTF26PMR"
],
"description": "List of IDs of products (different gift cards, charity, etc.) that are available in this campaign.\n"
},
"description": {
"type": "string",
"example": "A campaign I use as the default in Tremendous\"",
"nullable": true,
"description": "Description of the campaign"
}
},
"description": "With a campaign you can define the look & feel of how rewards are sent out.\nIt also lets you set the available products (different gift cards, charity, etc.)\nrecipients can choose from.\n\n> Note: Campaigns must be created from the Tremendous dashboard.\n>\n> • [Production Dashboard](https://app.tremendous.com)\n> • [Sandbox Dashboard](https://app.testflight.tremendous.com/)\n"
}
}
}
CreateInvoice
{
"type": "object",
"required": [
"amount"
],
"properties": {
"memo": {
"type": "string",
"nullable": true,
"description": "A note to be included in the invoice. This is for your internal use and will not be visible to the recipient.\n"
},
"amount": {
"type": "number",
"format": "double",
"example": 50.35,
"description": "Amount of the invoice in USD"
},
"po_number": {
"type": "string",
"example": "123-PO-EE",
"nullable": true,
"description": "Reference to the purchase order number within your organization"
}
}
}
CreateMember
{
"type": "object",
"required": [
"email",
"name",
"role"
],
"properties": {
"name": {
"type": "string",
"example": "Jane Doe",
"description": "Full name of the member"
},
"role": {
"enum": [
"MEMBER",
"ADMIN"
],
"type": "string",
"example": "MEMBER",
"description": "Role of the member within the organization.\n\n<table>\n <thead>\n <tr>\n <th>Role</th>\n <th>Description</th>\n </tr>\n </thead>\n <tr>\n <td><code>MEMBER</code></td>\n <td>Limited permissions. Can view their own reward and order histories only.</td>\n </tr>\n <tr>\n <td><code>ADMIN</code></td>\n <td>Update organization settings, invite other members to the organization, and view all member order and reward histories within their organization.</td>\n </tr>\n <tbody>\n</table>\n"
},
"email": {
"type": "string",
"format": "email",
"example": "jane@example.com",
"description": "Email address of the member"
}
}
}
CreateOrganization
{
"type": "object",
"required": [
"name",
"website"
],
"properties": {
"name": {
"type": "string",
"example": "ACME Inc.",
"description": "Name of the organization"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the organization. For non-US phone numbers, specify the country code (prefixed with +)."
},
"website": {
"type": "string",
"format": "uri",
"example": "https://www.example.com/some-org",
"description": "URL of the website of that organization"
},
"with_api_key": {
"type": "boolean",
"example": true,
"description": "Default value is `false`. Set to true to also generate an API key associated to the new organization."
},
"copy_settings": {
"type": "object",
"properties": {
"users": {
"type": "boolean",
"default": false,
"example": false,
"description": "Copy over the users from the current organization to the new organization. Defaults to `false`."
},
"campaigns": {
"type": "boolean",
"default": false,
"example": false,
"description": "Copy over the campaigns from the current organization to the new organization. Defaults to `false`."
},
"custom_fields": {
"type": "boolean",
"default": false,
"example": false,
"description": "Copy over the custom fields from the current organization to the new organization. Defaults to `false`."
},
"order_approvals": {
"type": "boolean",
"default": false,
"example": false,
"description": "Copy over the order approvals settings from the current organization to the new organization. Defaults to `false`."
},
"payment_methods": {
"type": "boolean",
"default": false,
"example": false,
"description": "Copy over the payment methods from the current organization to the new organization. Defaults to `false`."
},
"fraud_prevention": {
"type": "boolean",
"default": false,
"example": false,
"description": "Copy over the fraud prevention settings and rules from the current organization to the new organization. Defaults to `false`."
},
"security_settings": {
"type": "boolean",
"default": true,
"example": true,
"description": "Copy over the security settings from the current organization to the new organization. Defaults to `true`."
}
},
"description": "A list of the settings that you wish to copy over to the new organization."
}
}
}
CurrencyCodes
{
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD"
}
CustomField
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": false,
"description": "Tremendous ID of the custom field"
},
"label": {
"type": "string",
"example": "harry_potter_house",
"readOnly": false,
"description": "Label of the custom field"
},
"value": {
"type": "string",
"example": "Hufflepuff",
"nullable": true,
"readOnly": false,
"description": "Value of the custom field"
}
},
"description": "Reward custom data for searching, tracking or copy (see [Adding custom fields to orders](https://developers.tremendous.com/reference/using-custom-fields-to-add-custom-data-to-rewards).)"
}
DeliveryDetails
{
"type": "object",
"required": [
"method",
"status"
],
"properties": {
"method": {
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
},
"status": {
"enum": [
"SCHEDULED",
"FAILED",
"SUCCEEDED",
"PENDING"
],
"type": "string",
"readOnly": true,
"description": "Current status of the delivery of the reward:\n\n* `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon.\n* `FAILED` - Delivery of reward failed (e.g. email bounced).\n* `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link opened).\n* `PENDING` - Delivery is pending but not yet scheduled.\n"
}
},
"description": "Details on how the reward is delivered to the recipient.\n"
}
DeliveryDetailsWithLink
{
"type": "object",
"required": [
"method",
"status"
],
"properties": {
"link": {
"type": "string",
"example": "https://testflight.tremendous.com/rewards/payout/z67jic92r",
"readOnly": true,
"description": "Link to redeem the reward at. You need to deliver this link to the recipient.\n\nOnly available for rewards for which the `method` for delivery is set to `LINK`.\n"
},
"method": {
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
},
"status": {
"enum": [
"SCHEDULED",
"FAILED",
"SUCCEEDED",
"PENDING"
],
"type": "string",
"readOnly": true,
"description": "Current status of the delivery of the reward:\n\n* `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon.\n* `FAILED` - Delivery of reward failed (e.g. email bounced).\n* `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link opened).\n* `PENDING` - Delivery is pending but not yet scheduled.\n"
}
},
"description": "Details on how the reward is delivered to the recipient.\n"
}
DeliveryMethod
{
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
}
DeliveryStatus
{
"enum": [
"SCHEDULED",
"FAILED",
"SUCCEEDED",
"PENDING"
],
"type": "string",
"readOnly": true,
"description": "Current status of the delivery of the reward:\n\n* `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon.\n* `FAILED` - Delivery of reward failed (e.g. email bounced).\n* `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link opened).\n* `PENDING` - Delivery is pending but not yet scheduled.\n"
}
ErrorModel
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
Field
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true
},
"data": {
"type": "object",
"additionalProperties": true
},
"label": {
"type": "string",
"example": "recipient_name",
"description": "Label of the field"
},
"scope": {
"type": "string",
"example": "REWARD",
"description": "Type of objects this field gets associated with"
},
"required": {
"type": "boolean",
"example": true,
"description": "Is this field required (true) or optional (false)"
},
"data_type": {
"type": "string",
"example": "Text",
"description": "Type of the values of the field"
}
}
}
FieldsGetCustomFields401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
FieldsGetCustomFields429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
FieldsGetCustomFields500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
FieldsGetCustomFieldsResponse
{
"type": "object",
"properties": {
"fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"data": {
"type": "object",
"additionalProperties": true
},
"label": {
"type": "string",
"example": "recipient_name",
"description": "Label of the field"
},
"scope": {
"type": "string",
"example": "REWARD",
"description": "Type of objects this field gets associated with"
},
"required": {
"type": "boolean",
"example": true,
"description": "Is this field required (true) or optional (false)"
},
"data_type": {
"type": "string",
"example": "Text",
"description": "Type of the values of the field"
}
}
}
}
}
}
FundingSource
{
"type": "object",
"required": [
"id",
"method",
"meta"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true
},
"meta": {
"type": "object",
"properties": {
"last4": {
"type": "string",
"example": "1234",
"pattern": "[0-9]{4}",
"description": "**Only available when `method` is set to `credit_card`.**\n\nLast 4 digits of the credit card number\n"
},
"expired": {
"type": "boolean",
"example": false,
"description": "**Only available when `method` is set to `credit_card`.**\n\nIs this credit card expired\n"
},
"network": {
"enum": [
"MasterCard",
"Amex",
"JCB",
"Diner's Club",
"visa",
"discover",
"laser",
"elo",
"maestro",
"solo"
],
"type": "string",
"example": "Amex",
"description": "**Only available when `method` is set to `credit_card`.**\n\nNetwork of the credit card\n"
},
"bank_name": {
"type": "string",
"example": "Bank of Fancyland",
"nullable": true,
"description": "**Only available when `method` is set to `bank_account`.**\n\nName of the bank\n"
},
"refundable": {
"type": "boolean",
"example": false,
"description": "**Only available when `method` is set to `bank_account`.**\n\nCan refunds be deposited to this bank account\n"
},
"account_type": {
"enum": [
"checking",
"savings"
],
"type": "string",
"example": "checking",
"description": "**Only available when `method` is set to `bank_account`.**\n\nIs this a checking or savings account\n"
},
"pending_cents": {
"type": "integer",
"example": 25000,
"description": "**Only available when `method` is set to `balance`.**\n\nFunds that are already registered on your Tremendous account but which have not yet been deposited in your account (e.g. unpaid invoices) (in Cents USD).\n"
},
"available_cents": {
"type": "integer",
"example": 50000,
"description": "**Only available when `method` is set to `balance`.**\n\nAvailable amount for this funding source (in Cents USD)\n"
},
"accountholder_name": {
"type": "string",
"example": "Jane Doe",
"description": "**Only available when `method` is set to `bank_account` or `credit_card`.**\n\nName of the holder of the bank account or credit_card\n"
},
"account_number_mask": {
"type": "string",
"example": "1234",
"pattern": "[0-9]{4}",
"description": "**Only available when `method` is set to `bank_account`.**\n\nLast 4 digits of the account number\n"
},
"account_routing_mask": {
"type": "string",
"example": "5678",
"pattern": "[0-9]{4}",
"description": "**Only available when `method` is set to `bank_account`.**\n\nLast 4 digits of the routing number\n"
},
"last_payment_failed_at": {
"type": "string",
"format": "date-time",
"nullable": true,
"description": "**Only available when `method` is set to `bank_account` or `credit_card`.**\n\nPoint in time when the last order failed using this bank account or credit card as a funding source.\n"
}
}
},
"type": {
"enum": [
"COMMERCIAL",
"PRO_FORMA",
"PREFUNDING_ONLY"
],
"type": "string",
"example": "COMMERCIAL",
"description": "**Only available when `method` is set to `invoice`.**\n"
},
"method": {
"enum": [
"balance",
"bank_account",
"credit_card",
"invoice"
],
"type": "string",
"example": "balance",
"description": "You can pay for rewards using different payment methods on Tremendous:\n\n<table>\n <thead>\n <tr>\n <th>Payment Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>balance</code></td>\n <td>Pre-funded balance in your Tremendous account to draw funds from to send rewards to recipients.</td>\n </tr>\n <tr>\n <td><code>bank_account</code></td>\n <td>Bank account to draw funds from to send rewards to recipients.</td>\n </tr>\n <tr>\n <td><code>credit_card</code></td>\n <td>Credit card to draw funds from to send rewards to recipients.</td>\n </tr>\n <tr>\n <td><code>invoice</code></td>\n <td>Send rewards to recipients and pay by invoice.</td>\n </tr>\n\n </tbody>\n</table>\n"
}
},
"description": ""
}
FundingSourcesGetAll401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
FundingSourcesGetAll429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
FundingSourcesGetAll500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
FundingSourcesGetAllResponse
{
"type": "object",
"required": [
"funding_sources"
],
"properties": {
"funding_sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"method",
"meta"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"meta": {
"type": "object",
"properties": {
"last4": {
"type": "string",
"example": "1234",
"pattern": "[0-9]{4}",
"description": "**Only available when `method` is set to `credit_card`.**\n\nLast 4 digits of the credit card number\n"
},
"expired": {
"type": "boolean",
"example": false,
"description": "**Only available when `method` is set to `credit_card`.**\n\nIs this credit card expired\n"
},
"network": {
"enum": [
"MasterCard",
"Amex",
"JCB",
"Diner's Club",
"visa",
"discover",
"laser",
"elo",
"maestro",
"solo"
],
"type": "string",
"example": "Amex",
"description": "**Only available when `method` is set to `credit_card`.**\n\nNetwork of the credit card\n"
},
"bank_name": {
"type": "string",
"example": "Bank of Fancyland",
"nullable": true,
"description": "**Only available when `method` is set to `bank_account`.**\n\nName of the bank\n"
},
"refundable": {
"type": "boolean",
"example": false,
"description": "**Only available when `method` is set to `bank_account`.**\n\nCan refunds be deposited to this bank account\n"
},
"account_type": {
"enum": [
"checking",
"savings"
],
"type": "string",
"example": "checking",
"description": "**Only available when `method` is set to `bank_account`.**\n\nIs this a checking or savings account\n"
},
"pending_cents": {
"type": "integer",
"example": 25000,
"description": "**Only available when `method` is set to `balance`.**\n\nFunds that are already registered on your Tremendous account but which have not yet been deposited in your account (e.g. unpaid invoices) (in Cents USD).\n"
},
"available_cents": {
"type": "integer",
"example": 50000,
"description": "**Only available when `method` is set to `balance`.**\n\nAvailable amount for this funding source (in Cents USD)\n"
},
"accountholder_name": {
"type": "string",
"example": "Jane Doe",
"description": "**Only available when `method` is set to `bank_account` or `credit_card`.**\n\nName of the holder of the bank account or credit_card\n"
},
"account_number_mask": {
"type": "string",
"example": "1234",
"pattern": "[0-9]{4}",
"description": "**Only available when `method` is set to `bank_account`.**\n\nLast 4 digits of the account number\n"
},
"account_routing_mask": {
"type": "string",
"example": "5678",
"pattern": "[0-9]{4}",
"description": "**Only available when `method` is set to `bank_account`.**\n\nLast 4 digits of the routing number\n"
},
"last_payment_failed_at": {
"type": "string",
"format": "date-time",
"nullable": true,
"description": "**Only available when `method` is set to `bank_account` or `credit_card`.**\n\nPoint in time when the last order failed using this bank account or credit card as a funding source.\n"
}
}
},
"type": {
"enum": [
"COMMERCIAL",
"PRO_FORMA",
"PREFUNDING_ONLY"
],
"type": "string",
"example": "COMMERCIAL",
"description": "**Only available when `method` is set to `invoice`.**\n"
},
"method": {
"enum": [
"balance",
"bank_account",
"credit_card",
"invoice"
],
"type": "string",
"example": "balance",
"description": "You can pay for rewards using different payment methods on Tremendous:\n\n<table>\n <thead>\n <tr>\n <th>Payment Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>balance</code></td>\n <td>Pre-funded balance in your Tremendous account to draw funds from to send rewards to recipients.</td>\n </tr>\n <tr>\n <td><code>bank_account</code></td>\n <td>Bank account to draw funds from to send rewards to recipients.</td>\n </tr>\n <tr>\n <td><code>credit_card</code></td>\n <td>Credit card to draw funds from to send rewards to recipients.</td>\n </tr>\n <tr>\n <td><code>invoice</code></td>\n <td>Send rewards to recipients and pay by invoice.</td>\n </tr>\n\n </tbody>\n</table>\n"
}
},
"description": ""
}
}
}
}
FundingSourcesGetById401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
FundingSourcesGetById404Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
FundingSourcesGetById429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
FundingSourcesGetById500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
FundingSourcesGetByIdResponse
{
"type": "object",
"required": [
"funding_source"
],
"properties": {
"funding_source": {
"type": "object",
"required": [
"id",
"method",
"meta"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"meta": {
"type": "object",
"properties": {
"last4": {
"type": "string",
"example": "1234",
"pattern": "[0-9]{4}",
"description": "**Only available when `method` is set to `credit_card`.**\n\nLast 4 digits of the credit card number\n"
},
"expired": {
"type": "boolean",
"example": false,
"description": "**Only available when `method` is set to `credit_card`.**\n\nIs this credit card expired\n"
},
"network": {
"enum": [
"MasterCard",
"Amex",
"JCB",
"Diner's Club",
"visa",
"discover",
"laser",
"elo",
"maestro",
"solo"
],
"type": "string",
"example": "Amex",
"description": "**Only available when `method` is set to `credit_card`.**\n\nNetwork of the credit card\n"
},
"bank_name": {
"type": "string",
"example": "Bank of Fancyland",
"nullable": true,
"description": "**Only available when `method` is set to `bank_account`.**\n\nName of the bank\n"
},
"refundable": {
"type": "boolean",
"example": false,
"description": "**Only available when `method` is set to `bank_account`.**\n\nCan refunds be deposited to this bank account\n"
},
"account_type": {
"enum": [
"checking",
"savings"
],
"type": "string",
"example": "checking",
"description": "**Only available when `method` is set to `bank_account`.**\n\nIs this a checking or savings account\n"
},
"pending_cents": {
"type": "integer",
"example": 25000,
"description": "**Only available when `method` is set to `balance`.**\n\nFunds that are already registered on your Tremendous account but which have not yet been deposited in your account (e.g. unpaid invoices) (in Cents USD).\n"
},
"available_cents": {
"type": "integer",
"example": 50000,
"description": "**Only available when `method` is set to `balance`.**\n\nAvailable amount for this funding source (in Cents USD)\n"
},
"accountholder_name": {
"type": "string",
"example": "Jane Doe",
"description": "**Only available when `method` is set to `bank_account` or `credit_card`.**\n\nName of the holder of the bank account or credit_card\n"
},
"account_number_mask": {
"type": "string",
"example": "1234",
"pattern": "[0-9]{4}",
"description": "**Only available when `method` is set to `bank_account`.**\n\nLast 4 digits of the account number\n"
},
"account_routing_mask": {
"type": "string",
"example": "5678",
"pattern": "[0-9]{4}",
"description": "**Only available when `method` is set to `bank_account`.**\n\nLast 4 digits of the routing number\n"
},
"last_payment_failed_at": {
"type": "string",
"format": "date-time",
"nullable": true,
"description": "**Only available when `method` is set to `bank_account` or `credit_card`.**\n\nPoint in time when the last order failed using this bank account or credit card as a funding source.\n"
}
}
},
"type": {
"enum": [
"COMMERCIAL",
"PRO_FORMA",
"PREFUNDING_ONLY"
],
"type": "string",
"example": "COMMERCIAL",
"description": "**Only available when `method` is set to `invoice`.**\n"
},
"method": {
"enum": [
"balance",
"bank_account",
"credit_card",
"invoice"
],
"type": "string",
"example": "balance",
"description": "You can pay for rewards using different payment methods on Tremendous:\n\n<table>\n <thead>\n <tr>\n <th>Payment Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>balance</code></td>\n <td>Pre-funded balance in your Tremendous account to draw funds from to send rewards to recipients.</td>\n </tr>\n <tr>\n <td><code>bank_account</code></td>\n <td>Bank account to draw funds from to send rewards to recipients.</td>\n </tr>\n <tr>\n <td><code>credit_card</code></td>\n <td>Credit card to draw funds from to send rewards to recipients.</td>\n </tr>\n <tr>\n <td><code>invoice</code></td>\n <td>Send rewards to recipients and pay by invoice.</td>\n </tr>\n\n </tbody>\n</table>\n"
}
},
"description": ""
}
}
}
Invoice
{
"type": "object",
"required": [
"id",
"amount",
"status",
"created_at",
"paid_at"
],
"properties": {
"id": {
"type": "string",
"example": "PPS-26873",
"description": "The invoice number"
},
"amount": {
"type": "number",
"format": "double",
"example": 50.35,
"description": "Amount of the invoice in USD"
},
"orders": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true
},
"example": [
"ABC123456789",
"DEF123456789"
],
"description": "List of orders related to the invoice (it doesn't apply to prefunding)"
},
"status": {
"enum": [
"DELETED",
"PAID",
"OPEN",
"MARKED_AS_PAID"
],
"type": "string",
"example": "PAID",
"description": "Status of this invoice\n\n<table>\n <thead>\n <tr>\n <th>Status</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>DELETED</code></td>\n <td>Invoice has been deleted by your organization</td>\n </tr>\n <tr>\n <td><code>PAID</code></td>\n <td>Invoice has been paid by your organization</td>\n </tr>\n <tr>\n <td><code>OPEN</code></td>\n <td>Invoice has been created by your organization but has not been paid, yet</td>\n </tr>\n </tbody>\n</table>\n"
},
"paid_at": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Timestamp of when the invoice has been paid.\n"
},
"rewards": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true
},
"example": [
"ABC123456789",
"DEF123456789"
],
"description": "List of rewards related to the invoice (it doesn't apply to prefunding)"
},
"po_number": {
"type": "string",
"example": "123-PO-EE",
"nullable": true,
"description": "Reference to the purchase order number within your organization"
},
"created_at": {
"type": "string",
"format": "date",
"description": "Timestamp of when the invoice has been created.\n"
}
},
"description": "Invoices are instruments to fund your Tremendous account's balance.\n\nInvoices can be created by your organization programatically.\nOnce we receive your payment, the invoice is marked as `PAID` and we add\nthe respective funds to your account's balance.\n"
}
InvoicesCreateAndFundAccountBalance400Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesCreateAndFundAccountBalance401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesCreateAndFundAccountBalance429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesCreateAndFundAccountBalance500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesCreateAndFundAccountBalanceRequest
{
"type": "object",
"required": [
"amount"
],
"properties": {
"memo": {
"type": "string",
"nullable": true,
"description": "A note to be included in the invoice. This is for your internal use and will not be visible to the recipient.\n"
},
"amount": {
"type": "number",
"format": "double",
"example": 50.35,
"description": "Amount of the invoice in USD"
},
"po_number": {
"type": "string",
"example": "123-PO-EE",
"nullable": true,
"description": "Reference to the purchase order number within your organization"
}
}
}
InvoicesCreateAndFundAccountBalanceResponse
{
"type": "object",
"required": [
"invoice"
],
"properties": {
"invoice": {
"type": "object",
"required": [
"id",
"amount",
"status",
"created_at",
"paid_at"
],
"properties": {
"id": {
"type": "string",
"example": "PPS-26873",
"description": "The invoice number"
},
"amount": {
"type": "number",
"format": "double",
"example": 50.35,
"description": "Amount of the invoice in USD"
},
"orders": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"example": [
"ABC123456789",
"DEF123456789"
],
"description": "List of orders related to the invoice (it doesn't apply to prefunding)"
},
"status": {
"enum": [
"DELETED",
"PAID",
"OPEN",
"MARKED_AS_PAID"
],
"type": "string",
"example": "PAID",
"description": "Status of this invoice\n\n<table>\n <thead>\n <tr>\n <th>Status</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>DELETED</code></td>\n <td>Invoice has been deleted by your organization</td>\n </tr>\n <tr>\n <td><code>PAID</code></td>\n <td>Invoice has been paid by your organization</td>\n </tr>\n <tr>\n <td><code>OPEN</code></td>\n <td>Invoice has been created by your organization but has not been paid, yet</td>\n </tr>\n </tbody>\n</table>\n"
},
"paid_at": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Timestamp of when the invoice has been paid.\n"
},
"rewards": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"example": [
"ABC123456789",
"DEF123456789"
],
"description": "List of rewards related to the invoice (it doesn't apply to prefunding)"
},
"po_number": {
"type": "string",
"example": "123-PO-EE",
"nullable": true,
"description": "Reference to the purchase order number within your organization"
},
"created_at": {
"type": "string",
"format": "date",
"description": "Timestamp of when the invoice has been created.\n"
}
},
"description": "Invoices are instruments to fund your Tremendous account's balance.\n\nInvoices can be created by your organization programatically.\nOnce we receive your payment, the invoice is marked as `PAID` and we add\nthe respective funds to your account's balance.\n"
}
}
}
InvoicesGetAll401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesGetAll429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesGetAll500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesGetAllResponse
{
"type": "object",
"required": [
"invoices",
"total_count"
],
"properties": {
"invoices": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"amount",
"status",
"created_at",
"paid_at"
],
"properties": {
"id": {
"type": "string",
"example": "PPS-26873",
"description": "The invoice number"
},
"amount": {
"type": "number",
"format": "double",
"example": 50.35,
"description": "Amount of the invoice in USD"
},
"orders": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"example": [
"ABC123456789",
"DEF123456789"
],
"description": "List of orders related to the invoice (it doesn't apply to prefunding)"
},
"status": {
"enum": [
"DELETED",
"PAID",
"OPEN",
"MARKED_AS_PAID"
],
"type": "string",
"example": "PAID",
"description": "Status of this invoice\n\n<table>\n <thead>\n <tr>\n <th>Status</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>DELETED</code></td>\n <td>Invoice has been deleted by your organization</td>\n </tr>\n <tr>\n <td><code>PAID</code></td>\n <td>Invoice has been paid by your organization</td>\n </tr>\n <tr>\n <td><code>OPEN</code></td>\n <td>Invoice has been created by your organization but has not been paid, yet</td>\n </tr>\n </tbody>\n</table>\n"
},
"paid_at": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Timestamp of when the invoice has been paid.\n"
},
"rewards": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"example": [
"ABC123456789",
"DEF123456789"
],
"description": "List of rewards related to the invoice (it doesn't apply to prefunding)"
},
"po_number": {
"type": "string",
"example": "123-PO-EE",
"nullable": true,
"description": "Reference to the purchase order number within your organization"
},
"created_at": {
"type": "string",
"format": "date",
"description": "Timestamp of when the invoice has been created.\n"
}
},
"description": "Invoices are instruments to fund your Tremendous account's balance.\n\nInvoices can be created by your organization programatically.\nOnce we receive your payment, the invoice is marked as `PAID` and we add\nthe respective funds to your account's balance.\n"
}
},
"total_count": {
"type": "integer",
"example": 1,
"description": "The total number of invoices across all pages"
}
}
}
InvoicesGetById401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesGetById404Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesGetById429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesGetById500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesGetByIdResponse
{
"type": "object",
"required": [
"invoice"
],
"properties": {
"invoice": {
"type": "object",
"required": [
"id",
"amount",
"status",
"created_at",
"paid_at"
],
"properties": {
"id": {
"type": "string",
"example": "PPS-26873",
"description": "The invoice number"
},
"amount": {
"type": "number",
"format": "double",
"example": 50.35,
"description": "Amount of the invoice in USD"
},
"orders": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"example": [
"ABC123456789",
"DEF123456789"
],
"description": "List of orders related to the invoice (it doesn't apply to prefunding)"
},
"status": {
"enum": [
"DELETED",
"PAID",
"OPEN",
"MARKED_AS_PAID"
],
"type": "string",
"example": "PAID",
"description": "Status of this invoice\n\n<table>\n <thead>\n <tr>\n <th>Status</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>DELETED</code></td>\n <td>Invoice has been deleted by your organization</td>\n </tr>\n <tr>\n <td><code>PAID</code></td>\n <td>Invoice has been paid by your organization</td>\n </tr>\n <tr>\n <td><code>OPEN</code></td>\n <td>Invoice has been created by your organization but has not been paid, yet</td>\n </tr>\n </tbody>\n</table>\n"
},
"paid_at": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Timestamp of when the invoice has been paid.\n"
},
"rewards": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"example": [
"ABC123456789",
"DEF123456789"
],
"description": "List of rewards related to the invoice (it doesn't apply to prefunding)"
},
"po_number": {
"type": "string",
"example": "123-PO-EE",
"nullable": true,
"description": "Reference to the purchase order number within your organization"
},
"created_at": {
"type": "string",
"format": "date",
"description": "Timestamp of when the invoice has been created.\n"
}
},
"description": "Invoices are instruments to fund your Tremendous account's balance.\n\nInvoices can be created by your organization programatically.\nOnce we receive your payment, the invoice is marked as `PAID` and we add\nthe respective funds to your account's balance.\n"
}
}
}
InvoicesGetCsv400Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesGetCsv401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesGetCsv404Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesGetCsv429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesGetCsv500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesGetCsvResponse
{
"type": "string",
"format": "text",
"description": "The CSV text file"
}
InvoicesGetPdf401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesGetPdf404Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesGetPdf429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesGetPdf500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesGetPdfResponse
{
"type": "string",
"format": "binary",
"description": "The PDF binary data"
}
InvoicesRemoveInvoice401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesRemoveInvoice404Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesRemoveInvoice429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesRemoveInvoice500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
InvoicesRemoveInvoiceResponse
{
"type": "object",
"required": [
"invoice"
],
"properties": {
"invoice": {
"type": "object",
"required": [
"id",
"amount",
"status",
"created_at",
"paid_at"
],
"properties": {
"id": {
"type": "string",
"example": "PPS-26873",
"description": "The invoice number"
},
"amount": {
"type": "number",
"format": "double",
"example": 50.35,
"description": "Amount of the invoice in USD"
},
"orders": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"example": [
"ABC123456789",
"DEF123456789"
],
"description": "List of orders related to the invoice (it doesn't apply to prefunding)"
},
"status": {
"enum": [
"DELETED",
"PAID",
"OPEN",
"MARKED_AS_PAID"
],
"type": "string",
"example": "PAID",
"description": "Status of this invoice\n\n<table>\n <thead>\n <tr>\n <th>Status</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>DELETED</code></td>\n <td>Invoice has been deleted by your organization</td>\n </tr>\n <tr>\n <td><code>PAID</code></td>\n <td>Invoice has been paid by your organization</td>\n </tr>\n <tr>\n <td><code>OPEN</code></td>\n <td>Invoice has been created by your organization but has not been paid, yet</td>\n </tr>\n </tbody>\n</table>\n"
},
"paid_at": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Timestamp of when the invoice has been paid.\n"
},
"rewards": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"example": [
"ABC123456789",
"DEF123456789"
],
"description": "List of rewards related to the invoice (it doesn't apply to prefunding)"
},
"po_number": {
"type": "string",
"example": "123-PO-EE",
"nullable": true,
"description": "Reference to the purchase order number within your organization"
},
"created_at": {
"type": "string",
"format": "date",
"description": "Timestamp of when the invoice has been created.\n"
}
},
"description": "Invoices are instruments to fund your Tremendous account's balance.\n\nInvoices can be created by your organization programatically.\nOnce we receive your payment, the invoice is marked as `PAID` and we add\nthe respective funds to your account's balance.\n"
}
}
}
Member
{
"type": "object",
"required": [
"id",
"name",
"email",
"role",
"status"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true
},
"name": {
"type": "string",
"example": "Jane Doe",
"nullable": true,
"description": "Full name of the member"
},
"role": {
"enum": [
"MEMBER",
"ADMIN",
"DELETED"
],
"type": "string",
"description": "Role of the member within the organization.\n\n<table>\n <thead>\n <tr>\n <th>Role</th>\n <th>Description</th>\n </tr>\n </thead>\n <tr>\n <td><code>MEMBER</code></td>\n <td>Limited permissions. Can view their own reward and order histories only.</td>\n </tr>\n <tr>\n <td><code>ADMIN</code></td>\n <td>Update organization settings, invite other members to the organization, and view all member order and reward histories within their organization.</td>\n </tr>\n <tr>\n <td><code>DELETED</code></td>\n <td>No longer a member of this organization.</td>\n </tr>\n <tbody>\n </tbody>\n</table>\n"
},
"email": {
"type": "string",
"format": "email",
"example": "jane@example.com",
"description": "Email address of the member"
},
"status": {
"enum": [
"REGISTERED",
"INVITED"
],
"type": "string",
"example": "INVITED",
"readOnly": true,
"description": "Current status of the member's account.\n\nWhen creating a member it starts out in the status `INVITED`. As soon as that member open the invitation link and registers an account, the status switches to `REGISTERED`.\n"
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2021-08-02T11:05:59Z",
"readOnly": true,
"description": "Timestamp when this member was created.\n\nThe `created_at` timestamp is **NOT** returned when retrieving a member (but is part of the response when listing or creating members).\n"
},
"last_login_at": {
"type": "string",
"format": "date-time",
"example": "2021-08-02T11:05:59Z",
"nullable": true,
"readOnly": true,
"description": "Timestamp when this member most recently logged into the dashboard of the organization associated with this API key.\n"
}
},
"description": "Each organization has one or more users that can access and manage that organization. These users are called members.\n\nMembers can take actions via the Tremendous web dashboard directly.\n\nThese actions include adding funding sources to the organization, creating Campaigns, and more.\n"
}
MemberBase
{
"type": "object",
"required": [
"id",
"name",
"email",
"role",
"status"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true
},
"name": {
"type": "string",
"example": "Jane Doe",
"nullable": true,
"description": "Full name of the member"
},
"role": {
"enum": [
"MEMBER",
"ADMIN",
"DELETED"
],
"type": "string",
"description": "Role of the member within the organization.\n\n<table>\n <thead>\n <tr>\n <th>Role</th>\n <th>Description</th>\n </tr>\n </thead>\n <tr>\n <td><code>MEMBER</code></td>\n <td>Limited permissions. Can view their own reward and order histories only.</td>\n </tr>\n <tr>\n <td><code>ADMIN</code></td>\n <td>Update organization settings, invite other members to the organization, and view all member order and reward histories within their organization.</td>\n </tr>\n <tr>\n <td><code>DELETED</code></td>\n <td>No longer a member of this organization.</td>\n </tr>\n <tbody>\n </tbody>\n</table>\n"
},
"email": {
"type": "string",
"format": "email",
"example": "jane@example.com",
"description": "Email address of the member"
},
"status": {
"enum": [
"REGISTERED",
"INVITED"
],
"type": "string",
"example": "INVITED",
"readOnly": true,
"description": "Current status of the member's account.\n\nWhen creating a member it starts out in the status `INVITED`. As soon as that member open the invitation link and registers an account, the status switches to `REGISTERED`.\n"
}
},
"description": "Each organization has one or more users that can access and manage that organization. These users are called members.\n\nMembers can take actions via the Tremendous web dashboard directly.\n\nThese actions include adding funding sources to the organization, creating Campaigns, and more.\n"
}
MemberWithEvents
{
"type": "object",
"required": [
"id",
"name",
"email",
"role",
"status"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true
},
"name": {
"type": "string",
"example": "Jane Doe",
"nullable": true,
"description": "Full name of the member"
},
"role": {
"enum": [
"MEMBER",
"ADMIN",
"DELETED"
],
"type": "string",
"description": "Role of the member within the organization.\n\n<table>\n <thead>\n <tr>\n <th>Role</th>\n <th>Description</th>\n </tr>\n </thead>\n <tr>\n <td><code>MEMBER</code></td>\n <td>Limited permissions. Can view their own reward and order histories only.</td>\n </tr>\n <tr>\n <td><code>ADMIN</code></td>\n <td>Update organization settings, invite other members to the organization, and view all member order and reward histories within their organization.</td>\n </tr>\n <tr>\n <td><code>DELETED</code></td>\n <td>No longer a member of this organization.</td>\n </tr>\n <tbody>\n </tbody>\n</table>\n"
},
"email": {
"type": "string",
"format": "email",
"example": "jane@example.com",
"description": "Email address of the member"
},
"events": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"enum": [
"created",
"last_login"
],
"type": "string",
"example": "created",
"description": "Event type"
},
"date_utc": {
"type": "string",
"format": "date-time",
"example": "2021-08-02T11:05:59Z",
"nullable": true,
"description": "Timestamp when the event happened"
}
}
},
"readOnly": true,
"description": "List of events related to the member."
},
"status": {
"enum": [
"REGISTERED",
"INVITED"
],
"type": "string",
"example": "INVITED",
"readOnly": true,
"description": "Current status of the member's account.\n\nWhen creating a member it starts out in the status `INVITED`. As soon as that member open the invitation link and registers an account, the status switches to `REGISTERED`.\n"
}
},
"description": "Each organization has one or more users that can access and manage that organization. These users are called members.\n\nMembers can take actions via the Tremendous web dashboard directly.\n\nThese actions include adding funding sources to the organization, creating Campaigns, and more.\n"
}
MemberWithoutEvents
{
"type": "object",
"required": [
"id",
"name",
"email",
"role",
"status"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true
},
"name": {
"type": "string",
"example": "Jane Doe",
"nullable": true,
"description": "Full name of the member"
},
"role": {
"enum": [
"MEMBER",
"ADMIN",
"DELETED"
],
"type": "string",
"description": "Role of the member within the organization.\n\n<table>\n <thead>\n <tr>\n <th>Role</th>\n <th>Description</th>\n </tr>\n </thead>\n <tr>\n <td><code>MEMBER</code></td>\n <td>Limited permissions. Can view their own reward and order histories only.</td>\n </tr>\n <tr>\n <td><code>ADMIN</code></td>\n <td>Update organization settings, invite other members to the organization, and view all member order and reward histories within their organization.</td>\n </tr>\n <tr>\n <td><code>DELETED</code></td>\n <td>No longer a member of this organization.</td>\n </tr>\n <tbody>\n </tbody>\n</table>\n"
},
"email": {
"type": "string",
"format": "email",
"example": "jane@example.com",
"description": "Email address of the member"
},
"status": {
"enum": [
"REGISTERED",
"INVITED"
],
"type": "string",
"example": "INVITED",
"readOnly": true,
"description": "Current status of the member's account.\n\nWhen creating a member it starts out in the status `INVITED`. As soon as that member open the invitation link and registers an account, the status switches to `REGISTERED`.\n"
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2021-08-02T11:05:59Z",
"readOnly": true,
"description": "Timestamp when this member was created.\n\nThe `created_at` timestamp is **NOT** returned when retrieving a member (but is part of the response when listing or creating members).\n"
},
"last_login_at": {
"type": "string",
"format": "date-time",
"example": "2021-08-02T11:05:59Z",
"nullable": true,
"readOnly": true,
"description": "Timestamp when this member most recently logged into the dashboard of the organization associated with this API key.\n"
}
},
"description": "Each organization has one or more users that can access and manage that organization. These users are called members.\n\nMembers can take actions via the Tremendous web dashboard directly.\n\nThese actions include adding funding sources to the organization, creating Campaigns, and more.\n"
}
MembersCreateNewMember400Response
{
"type": "object",
"example": {
"errors": {
"message": "Order failed: validation failure",
"payload": {
"some_field": {
"some_sub_field": "Something went wrong with this parameter"
}
}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
MembersCreateNewMember401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
MembersCreateNewMember429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
MembersCreateNewMember500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
MembersCreateNewMemberRequest
{
"type": "object",
"required": [
"email",
"name",
"role"
],
"properties": {
"name": {
"type": "string",
"example": "Jane Doe",
"description": "Full name of the member"
},
"role": {
"enum": [
"MEMBER",
"ADMIN"
],
"type": "string",
"example": "MEMBER",
"description": "Role of the member within the organization.\n\n<table>\n <thead>\n <tr>\n <th>Role</th>\n <th>Description</th>\n </tr>\n </thead>\n <tr>\n <td><code>MEMBER</code></td>\n <td>Limited permissions. Can view their own reward and order histories only.</td>\n </tr>\n <tr>\n <td><code>ADMIN</code></td>\n <td>Update organization settings, invite other members to the organization, and view all member order and reward histories within their organization.</td>\n </tr>\n <tbody>\n</table>\n"
},
"email": {
"type": "string",
"format": "email",
"example": "jane@example.com",
"description": "Email address of the member"
}
}
}
MembersCreateNewMemberResponse
{
"type": "object",
"required": [
"member"
],
"properties": {
"member": {
"type": "object",
"required": [
"id",
"name",
"email",
"role",
"status"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"name": {
"type": "string",
"example": "Jane Doe",
"nullable": true,
"description": "Full name of the member"
},
"role": {
"enum": [
"MEMBER",
"ADMIN",
"DELETED"
],
"type": "string",
"description": "Role of the member within the organization.\n\n<table>\n <thead>\n <tr>\n <th>Role</th>\n <th>Description</th>\n </tr>\n </thead>\n <tr>\n <td><code>MEMBER</code></td>\n <td>Limited permissions. Can view their own reward and order histories only.</td>\n </tr>\n <tr>\n <td><code>ADMIN</code></td>\n <td>Update organization settings, invite other members to the organization, and view all member order and reward histories within their organization.</td>\n </tr>\n <tr>\n <td><code>DELETED</code></td>\n <td>No longer a member of this organization.</td>\n </tr>\n <tbody>\n </tbody>\n</table>\n"
},
"email": {
"type": "string",
"format": "email",
"example": "jane@example.com",
"description": "Email address of the member"
},
"status": {
"enum": [
"REGISTERED",
"INVITED"
],
"type": "string",
"example": "INVITED",
"description": "Current status of the member's account.\n\nWhen creating a member it starts out in the status `INVITED`. As soon as that member open the invitation link and registers an account, the status switches to `REGISTERED`.\n"
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2021-08-02T11:05:59Z",
"description": "Timestamp when this member was created.\n\nThe `created_at` timestamp is **NOT** returned when retrieving a member (but is part of the response when listing or creating members).\n"
},
"last_login_at": {
"type": "string",
"format": "date-time",
"example": "2021-08-02T11:05:59Z",
"nullable": true,
"description": "Timestamp when this member most recently logged into the dashboard of the organization associated with this API key.\n"
}
},
"description": "Each organization has one or more users that can access and manage that organization. These users are called members.\n\nMembers can take actions via the Tremendous web dashboard directly.\n\nThese actions include adding funding sources to the organization, creating Campaigns, and more.\n"
}
}
}
MembersGetMember401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
MembersGetMember404Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
MembersGetMember429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
MembersGetMember500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
MembersGetMemberResponse
{
"type": "object",
"required": [
"member"
],
"properties": {
"member": {
"type": "object",
"required": [
"id",
"name",
"email",
"role",
"status"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"name": {
"type": "string",
"example": "Jane Doe",
"nullable": true,
"description": "Full name of the member"
},
"role": {
"enum": [
"MEMBER",
"ADMIN",
"DELETED"
],
"type": "string",
"description": "Role of the member within the organization.\n\n<table>\n <thead>\n <tr>\n <th>Role</th>\n <th>Description</th>\n </tr>\n </thead>\n <tr>\n <td><code>MEMBER</code></td>\n <td>Limited permissions. Can view their own reward and order histories only.</td>\n </tr>\n <tr>\n <td><code>ADMIN</code></td>\n <td>Update organization settings, invite other members to the organization, and view all member order and reward histories within their organization.</td>\n </tr>\n <tr>\n <td><code>DELETED</code></td>\n <td>No longer a member of this organization.</td>\n </tr>\n <tbody>\n </tbody>\n</table>\n"
},
"email": {
"type": "string",
"format": "email",
"example": "jane@example.com",
"description": "Email address of the member"
},
"events": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"enum": [
"created",
"last_login"
],
"type": "string",
"example": "created",
"description": "Event type"
},
"date_utc": {
"type": "string",
"format": "date-time",
"example": "2021-08-02T11:05:59Z",
"nullable": true,
"description": "Timestamp when the event happened"
}
}
},
"description": "List of events related to the member."
},
"status": {
"enum": [
"REGISTERED",
"INVITED"
],
"type": "string",
"example": "INVITED",
"description": "Current status of the member's account.\n\nWhen creating a member it starts out in the status `INVITED`. As soon as that member open the invitation link and registers an account, the status switches to `REGISTERED`.\n"
}
},
"description": "Each organization has one or more users that can access and manage that organization. These users are called members.\n\nMembers can take actions via the Tremendous web dashboard directly.\n\nThese actions include adding funding sources to the organization, creating Campaigns, and more.\n"
}
}
}
MembersListMembers401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
MembersListMembers429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
MembersListMembers500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
MembersListMembersResponse
{
"type": "object",
"required": [
"members"
],
"properties": {
"members": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"email",
"role",
"status"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"name": {
"type": "string",
"example": "Jane Doe",
"nullable": true,
"description": "Full name of the member"
},
"role": {
"enum": [
"MEMBER",
"ADMIN",
"DELETED"
],
"type": "string",
"description": "Role of the member within the organization.\n\n<table>\n <thead>\n <tr>\n <th>Role</th>\n <th>Description</th>\n </tr>\n </thead>\n <tr>\n <td><code>MEMBER</code></td>\n <td>Limited permissions. Can view their own reward and order histories only.</td>\n </tr>\n <tr>\n <td><code>ADMIN</code></td>\n <td>Update organization settings, invite other members to the organization, and view all member order and reward histories within their organization.</td>\n </tr>\n <tr>\n <td><code>DELETED</code></td>\n <td>No longer a member of this organization.</td>\n </tr>\n <tbody>\n </tbody>\n</table>\n"
},
"email": {
"type": "string",
"format": "email",
"example": "jane@example.com",
"description": "Email address of the member"
},
"status": {
"enum": [
"REGISTERED",
"INVITED"
],
"type": "string",
"example": "INVITED",
"description": "Current status of the member's account.\n\nWhen creating a member it starts out in the status `INVITED`. As soon as that member open the invitation link and registers an account, the status switches to `REGISTERED`.\n"
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2021-08-02T11:05:59Z",
"description": "Timestamp when this member was created.\n\nThe `created_at` timestamp is **NOT** returned when retrieving a member (but is part of the response when listing or creating members).\n"
},
"last_login_at": {
"type": "string",
"format": "date-time",
"example": "2021-08-02T11:05:59Z",
"nullable": true,
"description": "Timestamp when this member most recently logged into the dashboard of the organization associated with this API key.\n"
}
},
"description": "Each organization has one or more users that can access and manage that organization. These users are called members.\n\nMembers can take actions via the Tremendous web dashboard directly.\n\nThese actions include adding funding sources to the organization, creating Campaigns, and more.\n"
}
}
}
}
NullableTremendousId
{
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"readOnly": true
}
Order
{
"type": "object",
"required": [
"id",
"created_at",
"status"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the order"
},
"reward": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the reward"
},
"value": {
"type": "object",
"example": {
"denomination": 50,
"currency_code": "USD"
},
"required": [
"denomination",
"currency_code"
],
"properties": {
"denomination": {
"type": "number",
"format": "double",
"description": "Amount of the reward"
},
"currency_code": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD",
"description": "Currency of the reward"
}
}
},
"delivery": {
"type": "object",
"required": [
"method",
"status"
],
"properties": {
"method": {
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
},
"status": {
"enum": [
"SCHEDULED",
"FAILED",
"SUCCEEDED",
"PENDING"
],
"type": "string",
"readOnly": true,
"description": "Current status of the delivery of the reward:\n\n* `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon.\n* `FAILED` - Delivery of reward failed (e.g. email bounced).\n* `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link opened).\n* `PENDING` - Delivery is pending but not yet scheduled.\n"
}
},
"description": "Details on how the reward is delivered to the recipient.\n"
},
"order_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the order this reward is part of."
},
"products": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": false,
"writeOnly": true
},
"minItems": 1,
"writeOnly": true,
"description": "List of IDs of product (different gift cards, charity, etc.) that will be available\nto the recipient to choose from.\n\nProviding a `products` array will override the products made available by the campaign\nspecified using the `campaign_id` property unless the `products` array is empty. It will\n_not_ override other campaign attributes, like the message and customization of the look and feel.\n"
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe Jr.",
"description": "Name of the recipient"
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "Email address of the recipient"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +)."
}
},
"description": "Details of the recipient of the reward"
},
"created_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "Date the reward was created"
},
"deliver_at": {
"type": "string",
"format": "date",
"example": "2023-12-31",
"pattern": "YYYY-MM-DD",
"description": "Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored."
},
"campaign_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"readOnly": false,
"writeOnly": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": false,
"description": "Tremendous ID of the custom field"
},
"label": {
"type": "string",
"example": "harry_potter_house",
"readOnly": false,
"description": "Label of the custom field"
},
"value": {
"type": "string",
"example": "Hufflepuff",
"nullable": true,
"readOnly": false,
"description": "Value of the custom field"
}
},
"description": "Reward custom data for searching, tracking or copy (see [Adding custom fields to orders](https://developers.tremendous.com/reference/using-custom-fields-to-add-custom-data-to-rewards).)"
}
}
},
"description": "A single reward, sent to a recipient. A reward is always part of an order.\n\nEither `products` or `campaign_id` must be specified.\n"
},
"status": {
"enum": [
"CANCELED",
"CART",
"EXECUTED",
"FAILED",
"PENDING APPROVAL",
"PENDING INTERNAL PAYMENT APPROVAL"
],
"type": "string",
"readOnly": true,
"description": "Execution status of a given order\n\n<table>\n <thead>\n <tr>\n <th>\n Status\n </th>\n <th>\n Description\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n <code>\n CANCELED\n </code>\n </td>\n <td>\n The order and all of its rewards were canceled.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n CART\n </code>\n </td>\n <td>\n The order has been created, but hasn't yet been processed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n EXECUTED\n </code>\n </td>\n <td>\n The order has been executed. Payment has been handled and rewards are being delivered (if applicable).\n </td>\n </tr>\n <tr>\n <td>\n <code>\n FAILED\n </code>\n </td>\n <td>\n The order could not be processed due to an error. E.g. due to insufficient funds in the account.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING APPROVAL\n </code>\n </td>\n <td>\n The order has been created but needs approval to be executed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING INTERNAL PAYMENT APPROVAL\n </code>\n </td>\n <td>\n The order has been created but it is under review and requires approval from our team.\n </td>\n </tr>\n\n </tbody>\n</table>\n"
},
"payment": {
"type": "object",
"properties": {
"fees": {
"type": "number",
"format": "double",
"example": 2.5,
"minimum": 0,
"readOnly": true,
"description": "Fees for the order (in USD)"
},
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"readOnly": true,
"description": "Total price of the order including fees (in USD)"
},
"refund": {
"type": "object",
"required": [
"total"
],
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"readOnly": true,
"description": "Total amount of the order refunds (in USD)"
}
},
"description": "Breakdown of the order refunds (total amount in USD, independent from the currency of the ordered rewards).\nNote that this property will only appear for canceled orders or orders with canceled rewards.\n"
},
"channel": {
"enum": [
"UI",
"API",
"EMBED",
"DECIPHER",
"QUALTRICS",
"TYPEFORM",
"SURVEY MONKEY"
],
"type": "string",
"description": "Name of the channel in which the order was created"
},
"subtotal": {
"type": "number",
"format": "double",
"example": 50,
"minimum": 0,
"readOnly": true,
"description": "Total price of the order before fees (in USD)"
}
},
"description": "Cost breakdown of the order (cost of rewards + fees). Cost and fees are always denominated in USD, independent from the currency of the ordered rewards.\nNote that this property will only appear for processed orders (`status` is `EXECUTED`)."
},
"created_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "Date the order has been created"
},
"invoice_id": {
"type": "string",
"example": "2E59A82B-0001",
"readOnly": true,
"description": "The ID for the invoice associated with this order"
},
"campaign_id": {
"type": "string",
"example": "IVM0I3WNJJL0",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"readOnly": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"external_id": {
"type": "string",
"example": "Your-Individual-Identifier-for-This-Order",
"nullable": true,
"description": "Reference for this order, supplied by the customer.\n\nWhen set, `external_id` makes order idempotent. All requests that use the same `external_id`\nafter the initial order creation, will result in a response that returns the data of the\ninitially created order. The response will have a `201` response code. These responses\n**fail** to create any further orders.\n\nIt also allows for retrieving by `external_id` instead of `id` only.\n"
}
},
"description": "An order wraps around the fulfilment of one or more rewards."
}
OrderBase
{
"type": "object",
"required": [
"id",
"created_at",
"status"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the order"
},
"status": {
"enum": [
"CANCELED",
"CART",
"EXECUTED",
"FAILED",
"PENDING APPROVAL",
"PENDING INTERNAL PAYMENT APPROVAL"
],
"type": "string",
"readOnly": true,
"description": "Execution status of a given order\n\n<table>\n <thead>\n <tr>\n <th>\n Status\n </th>\n <th>\n Description\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n <code>\n CANCELED\n </code>\n </td>\n <td>\n The order and all of its rewards were canceled.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n CART\n </code>\n </td>\n <td>\n The order has been created, but hasn't yet been processed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n EXECUTED\n </code>\n </td>\n <td>\n The order has been executed. Payment has been handled and rewards are being delivered (if applicable).\n </td>\n </tr>\n <tr>\n <td>\n <code>\n FAILED\n </code>\n </td>\n <td>\n The order could not be processed due to an error. E.g. due to insufficient funds in the account.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING APPROVAL\n </code>\n </td>\n <td>\n The order has been created but needs approval to be executed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING INTERNAL PAYMENT APPROVAL\n </code>\n </td>\n <td>\n The order has been created but it is under review and requires approval from our team.\n </td>\n </tr>\n\n </tbody>\n</table>\n"
},
"payment": {
"type": "object",
"properties": {
"fees": {
"type": "number",
"format": "double",
"example": 2.5,
"minimum": 0,
"readOnly": true,
"description": "Fees for the order (in USD)"
},
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"readOnly": true,
"description": "Total price of the order including fees (in USD)"
},
"refund": {
"type": "object",
"required": [
"total"
],
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"readOnly": true,
"description": "Total amount of the order refunds (in USD)"
}
},
"description": "Breakdown of the order refunds (total amount in USD, independent from the currency of the ordered rewards).\nNote that this property will only appear for canceled orders or orders with canceled rewards.\n"
},
"channel": {
"enum": [
"UI",
"API",
"EMBED",
"DECIPHER",
"QUALTRICS",
"TYPEFORM",
"SURVEY MONKEY"
],
"type": "string",
"description": "Name of the channel in which the order was created"
},
"subtotal": {
"type": "number",
"format": "double",
"example": 50,
"minimum": 0,
"readOnly": true,
"description": "Total price of the order before fees (in USD)"
}
},
"description": "Cost breakdown of the order (cost of rewards + fees). Cost and fees are always denominated in USD, independent from the currency of the ordered rewards.\nNote that this property will only appear for processed orders (`status` is `EXECUTED`)."
},
"created_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "Date the order has been created"
},
"invoice_id": {
"type": "string",
"example": "2E59A82B-0001",
"readOnly": true,
"description": "The ID for the invoice associated with this order"
},
"campaign_id": {
"type": "string",
"example": "IVM0I3WNJJL0",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"readOnly": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"external_id": {
"type": "string",
"example": "Your-Individual-Identifier-for-This-Order",
"nullable": true,
"description": "Reference for this order, supplied by the customer.\n\nWhen set, `external_id` makes order idempotent. All requests that use the same `external_id`\nafter the initial order creation, will result in a response that returns the data of the\ninitially created order. The response will have a `201` response code. These responses\n**fail** to create any further orders.\n\nIt also allows for retrieving by `external_id` instead of `id` only.\n"
}
},
"description": "An order wraps around the fulfilment of one or more rewards."
}
OrderForCreate
{
"type": "object",
"required": [
"payment",
"reward"
],
"properties": {
"reward": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the reward"
},
"value": {
"type": "object",
"example": {
"denomination": 50,
"currency_code": "USD"
},
"required": [
"denomination",
"currency_code"
],
"properties": {
"denomination": {
"type": "number",
"format": "double",
"description": "Amount of the reward"
},
"currency_code": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD",
"description": "Currency of the reward"
}
}
},
"delivery": {
"type": "object",
"properties": {
"method": {
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
}
},
"description": "Details on how the reward is delivered to the recipient.\n"
},
"language": {
"type": "string",
"example": "de",
"description": "Set this to translate the redemption experience for this reward. Pass a 2-letter [ISO-639-1 code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) for the desired language. Defaults to `en`.\n"
},
"order_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the order this reward is part of."
},
"products": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": false,
"writeOnly": true
},
"minItems": 1,
"writeOnly": true,
"description": "List of IDs of product (different gift cards, charity, etc.) that will be available\nto the recipient to choose from.\n\nProviding a `products` array will override the products made available by the campaign\nspecified using the `campaign_id` property unless the `products` array is empty. It will\n_not_ override other campaign attributes, like the message and customization of the look and feel.\n"
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe Jr.",
"description": "Name of the recipient"
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "Email address of the recipient"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +)."
}
},
"description": "Details of the recipient of the reward"
},
"created_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "Date the reward was created"
},
"deliver_at": {
"type": "string",
"format": "date",
"example": "2023-12-31",
"pattern": "YYYY-MM-DD",
"description": "Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored."
},
"campaign_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"readOnly": false,
"writeOnly": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": false,
"description": "Tremendous ID of the custom field"
},
"label": {
"type": "string",
"example": "harry_potter_house",
"readOnly": false,
"description": "Label of the custom field"
},
"value": {
"type": "string",
"example": "Hufflepuff",
"nullable": true,
"readOnly": false,
"description": "Value of the custom field"
}
},
"description": "Reward custom data for searching, tracking or copy (see [Adding custom fields to orders](https://developers.tremendous.com/reference/using-custom-fields-to-add-custom-data-to-rewards).)"
}
}
},
"description": "A single reward, sent to a recipient. A reward is always part of an order.\n\nEither `products` or `campaign_id` must be specified.\n"
},
"payment": {
"type": "object",
"required": [
"funding_source_id"
],
"properties": {
"funding_source_id": {
"type": "string",
"description": "Tremendous ID of the funding source that will be used to pay for the order. Use `balance` to use your Tremendous's balance."
}
}
},
"external_id": {
"type": "string",
"example": "Your-Individual-Identifier-for-This-Order",
"nullable": true,
"description": "Reference for this order, supplied by the customer.\n\nWhen set, `external_id` makes order idempotent. All requests that use the same `external_id`\nafter the initial order creation, will result in a response that returns the data of the\ninitially created order. The response will have a `201` response code. These responses\n**fail** to create any further orders.\n\nIt also allows for retrieving by `external_id` instead of `id` only.\n"
}
}
}
OrderStatus
{
"enum": [
"CANCELED",
"CART",
"EXECUTED",
"FAILED",
"PENDING APPROVAL",
"PENDING INTERNAL PAYMENT APPROVAL"
],
"type": "string",
"description": "Execution status of a given order\n\n<table>\n <thead>\n <tr>\n <th>\n Status\n </th>\n <th>\n Description\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n <code>\n CANCELED\n </code>\n </td>\n <td>\n The order and all of its rewards were canceled.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n CART\n </code>\n </td>\n <td>\n The order has been created, but hasn't yet been processed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n EXECUTED\n </code>\n </td>\n <td>\n The order has been executed. Payment has been handled and rewards are being delivered (if applicable).\n </td>\n </tr>\n <tr>\n <td>\n <code>\n FAILED\n </code>\n </td>\n <td>\n The order could not be processed due to an error. E.g. due to insufficient funds in the account.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING APPROVAL\n </code>\n </td>\n <td>\n The order has been created but needs approval to be executed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING INTERNAL PAYMENT APPROVAL\n </code>\n </td>\n <td>\n The order has been created but it is under review and requires approval from our team.\n </td>\n </tr>\n\n </tbody>\n</table>\n"
}
OrderWithLink
{
"type": "object",
"required": [
"id",
"created_at",
"status"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the order"
},
"status": {
"enum": [
"CANCELED",
"CART",
"EXECUTED",
"FAILED",
"PENDING APPROVAL",
"PENDING INTERNAL PAYMENT APPROVAL"
],
"type": "string",
"readOnly": true,
"description": "Execution status of a given order\n\n<table>\n <thead>\n <tr>\n <th>\n Status\n </th>\n <th>\n Description\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n <code>\n CANCELED\n </code>\n </td>\n <td>\n The order and all of its rewards were canceled.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n CART\n </code>\n </td>\n <td>\n The order has been created, but hasn't yet been processed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n EXECUTED\n </code>\n </td>\n <td>\n The order has been executed. Payment has been handled and rewards are being delivered (if applicable).\n </td>\n </tr>\n <tr>\n <td>\n <code>\n FAILED\n </code>\n </td>\n <td>\n The order could not be processed due to an error. E.g. due to insufficient funds in the account.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING APPROVAL\n </code>\n </td>\n <td>\n The order has been created but needs approval to be executed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING INTERNAL PAYMENT APPROVAL\n </code>\n </td>\n <td>\n The order has been created but it is under review and requires approval from our team.\n </td>\n </tr>\n\n </tbody>\n</table>\n"
},
"payment": {
"type": "object",
"properties": {
"fees": {
"type": "number",
"format": "double",
"example": 2.5,
"minimum": 0,
"readOnly": true,
"description": "Fees for the order (in USD)"
},
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"readOnly": true,
"description": "Total price of the order including fees (in USD)"
},
"refund": {
"type": "object",
"required": [
"total"
],
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"readOnly": true,
"description": "Total amount of the order refunds (in USD)"
}
},
"description": "Breakdown of the order refunds (total amount in USD, independent from the currency of the ordered rewards).\nNote that this property will only appear for canceled orders or orders with canceled rewards.\n"
},
"channel": {
"enum": [
"UI",
"API",
"EMBED",
"DECIPHER",
"QUALTRICS",
"TYPEFORM",
"SURVEY MONKEY"
],
"type": "string",
"description": "Name of the channel in which the order was created"
},
"subtotal": {
"type": "number",
"format": "double",
"example": 50,
"minimum": 0,
"readOnly": true,
"description": "Total price of the order before fees (in USD)"
}
},
"description": "Cost breakdown of the order (cost of rewards + fees). Cost and fees are always denominated in USD, independent from the currency of the ordered rewards.\nNote that this property will only appear for processed orders (`status` is `EXECUTED`)."
},
"rewards": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the reward"
},
"value": {
"type": "object",
"example": {
"denomination": 50,
"currency_code": "USD"
},
"required": [
"denomination",
"currency_code"
],
"properties": {
"denomination": {
"type": "number",
"format": "double",
"description": "Amount of the reward"
},
"currency_code": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD",
"description": "Currency of the reward"
}
}
},
"delivery": {
"type": "object",
"required": [
"method",
"status"
],
"properties": {
"link": {
"type": "string",
"example": "https://testflight.tremendous.com/rewards/payout/z67jic92r",
"readOnly": true,
"description": "Link to redeem the reward at. You need to deliver this link to the recipient.\n\nOnly available for rewards for which the `method` for delivery is set to `LINK`.\n"
},
"method": {
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
},
"status": {
"enum": [
"SCHEDULED",
"FAILED",
"SUCCEEDED",
"PENDING"
],
"type": "string",
"readOnly": true,
"description": "Current status of the delivery of the reward:\n\n* `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon.\n* `FAILED` - Delivery of reward failed (e.g. email bounced).\n* `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link opened).\n* `PENDING` - Delivery is pending but not yet scheduled.\n"
}
},
"description": "Details on how the reward is delivered to the recipient.\n"
},
"order_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the order this reward is part of."
},
"products": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": false,
"writeOnly": true
},
"minItems": 1,
"writeOnly": true,
"description": "List of IDs of product (different gift cards, charity, etc.) that will be available\nto the recipient to choose from.\n\nProviding a `products` array will override the products made available by the campaign\nspecified using the `campaign_id` property unless the `products` array is empty. It will\n_not_ override other campaign attributes, like the message and customization of the look and feel.\n"
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe Jr.",
"description": "Name of the recipient"
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "Email address of the recipient"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +)."
}
},
"description": "Details of the recipient of the reward"
},
"created_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "Date the reward was created"
},
"deliver_at": {
"type": "string",
"format": "date",
"example": "2023-12-31",
"pattern": "YYYY-MM-DD",
"description": "Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored."
},
"campaign_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"readOnly": false,
"writeOnly": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": false,
"description": "Tremendous ID of the custom field"
},
"label": {
"type": "string",
"example": "harry_potter_house",
"readOnly": false,
"description": "Label of the custom field"
},
"value": {
"type": "string",
"example": "Hufflepuff",
"nullable": true,
"readOnly": false,
"description": "Value of the custom field"
}
},
"description": "Reward custom data for searching, tracking or copy (see [Adding custom fields to orders](https://developers.tremendous.com/reference/using-custom-fields-to-add-custom-data-to-rewards).)"
}
}
},
"description": "A single reward, sent to a recipient. A reward is always part of an order.\n\nEither `products` or `campaign_id` must be specified.\n"
},
"minItems": 1
},
"created_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "Date the order has been created"
},
"invoice_id": {
"type": "string",
"example": "2E59A82B-0001",
"readOnly": true,
"description": "The ID for the invoice associated with this order"
},
"campaign_id": {
"type": "string",
"example": "IVM0I3WNJJL0",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"readOnly": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"external_id": {
"type": "string",
"example": "Your-Individual-Identifier-for-This-Order",
"nullable": true,
"description": "Reference for this order, supplied by the customer.\n\nWhen set, `external_id` makes order idempotent. All requests that use the same `external_id`\nafter the initial order creation, will result in a response that returns the data of the\ninitially created order. The response will have a `201` response code. These responses\n**fail** to create any further orders.\n\nIt also allows for retrieving by `external_id` instead of `id` only.\n"
}
},
"description": "An order wraps around the fulfilment of one or more rewards."
}
OrderWithoutLink
{
"type": "object",
"required": [
"id",
"created_at",
"status"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the order"
},
"reward": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the reward"
},
"value": {
"type": "object",
"example": {
"denomination": 50,
"currency_code": "USD"
},
"required": [
"denomination",
"currency_code"
],
"properties": {
"denomination": {
"type": "number",
"format": "double",
"description": "Amount of the reward"
},
"currency_code": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD",
"description": "Currency of the reward"
}
}
},
"delivery": {
"type": "object",
"required": [
"method",
"status"
],
"properties": {
"method": {
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
},
"status": {
"enum": [
"SCHEDULED",
"FAILED",
"SUCCEEDED",
"PENDING"
],
"type": "string",
"readOnly": true,
"description": "Current status of the delivery of the reward:\n\n* `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon.\n* `FAILED` - Delivery of reward failed (e.g. email bounced).\n* `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link opened).\n* `PENDING` - Delivery is pending but not yet scheduled.\n"
}
},
"description": "Details on how the reward is delivered to the recipient.\n"
},
"order_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the order this reward is part of."
},
"products": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": false,
"writeOnly": true
},
"minItems": 1,
"writeOnly": true,
"description": "List of IDs of product (different gift cards, charity, etc.) that will be available\nto the recipient to choose from.\n\nProviding a `products` array will override the products made available by the campaign\nspecified using the `campaign_id` property unless the `products` array is empty. It will\n_not_ override other campaign attributes, like the message and customization of the look and feel.\n"
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe Jr.",
"description": "Name of the recipient"
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "Email address of the recipient"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +)."
}
},
"description": "Details of the recipient of the reward"
},
"created_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "Date the reward was created"
},
"deliver_at": {
"type": "string",
"format": "date",
"example": "2023-12-31",
"pattern": "YYYY-MM-DD",
"description": "Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored."
},
"campaign_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"readOnly": false,
"writeOnly": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": false,
"description": "Tremendous ID of the custom field"
},
"label": {
"type": "string",
"example": "harry_potter_house",
"readOnly": false,
"description": "Label of the custom field"
},
"value": {
"type": "string",
"example": "Hufflepuff",
"nullable": true,
"readOnly": false,
"description": "Value of the custom field"
}
},
"description": "Reward custom data for searching, tracking or copy (see [Adding custom fields to orders](https://developers.tremendous.com/reference/using-custom-fields-to-add-custom-data-to-rewards).)"
}
}
},
"description": "A single reward, sent to a recipient. A reward is always part of an order.\n\nEither `products` or `campaign_id` must be specified.\n"
},
"status": {
"enum": [
"CANCELED",
"CART",
"EXECUTED",
"FAILED",
"PENDING APPROVAL",
"PENDING INTERNAL PAYMENT APPROVAL"
],
"type": "string",
"readOnly": true,
"description": "Execution status of a given order\n\n<table>\n <thead>\n <tr>\n <th>\n Status\n </th>\n <th>\n Description\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n <code>\n CANCELED\n </code>\n </td>\n <td>\n The order and all of its rewards were canceled.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n CART\n </code>\n </td>\n <td>\n The order has been created, but hasn't yet been processed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n EXECUTED\n </code>\n </td>\n <td>\n The order has been executed. Payment has been handled and rewards are being delivered (if applicable).\n </td>\n </tr>\n <tr>\n <td>\n <code>\n FAILED\n </code>\n </td>\n <td>\n The order could not be processed due to an error. E.g. due to insufficient funds in the account.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING APPROVAL\n </code>\n </td>\n <td>\n The order has been created but needs approval to be executed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING INTERNAL PAYMENT APPROVAL\n </code>\n </td>\n <td>\n The order has been created but it is under review and requires approval from our team.\n </td>\n </tr>\n\n </tbody>\n</table>\n"
},
"payment": {
"type": "object",
"properties": {
"fees": {
"type": "number",
"format": "double",
"example": 2.5,
"minimum": 0,
"readOnly": true,
"description": "Fees for the order (in USD)"
},
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"readOnly": true,
"description": "Total price of the order including fees (in USD)"
},
"refund": {
"type": "object",
"required": [
"total"
],
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"readOnly": true,
"description": "Total amount of the order refunds (in USD)"
}
},
"description": "Breakdown of the order refunds (total amount in USD, independent from the currency of the ordered rewards).\nNote that this property will only appear for canceled orders or orders with canceled rewards.\n"
},
"channel": {
"enum": [
"UI",
"API",
"EMBED",
"DECIPHER",
"QUALTRICS",
"TYPEFORM",
"SURVEY MONKEY"
],
"type": "string",
"description": "Name of the channel in which the order was created"
},
"subtotal": {
"type": "number",
"format": "double",
"example": 50,
"minimum": 0,
"readOnly": true,
"description": "Total price of the order before fees (in USD)"
}
},
"description": "Cost breakdown of the order (cost of rewards + fees). Cost and fees are always denominated in USD, independent from the currency of the ordered rewards.\nNote that this property will only appear for processed orders (`status` is `EXECUTED`)."
},
"created_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "Date the order has been created"
},
"invoice_id": {
"type": "string",
"example": "2E59A82B-0001",
"readOnly": true,
"description": "The ID for the invoice associated with this order"
},
"campaign_id": {
"type": "string",
"example": "IVM0I3WNJJL0",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"readOnly": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"external_id": {
"type": "string",
"example": "Your-Individual-Identifier-for-This-Order",
"nullable": true,
"description": "Reference for this order, supplied by the customer.\n\nWhen set, `external_id` makes order idempotent. All requests that use the same `external_id`\nafter the initial order creation, will result in a response that returns the data of the\ninitially created order. The response will have a `201` response code. These responses\n**fail** to create any further orders.\n\nIt also allows for retrieving by `external_id` instead of `id` only.\n"
}
},
"description": "An order wraps around the fulfilment of one or more rewards."
}
OrdersApproveOrderById401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersApproveOrderById402Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersApproveOrderById403Response
{
"type": "object",
"example": {
"errors": {
"message": "Unsupported operation for this reward.",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersApproveOrderById404Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersApproveOrderById422Response
{
"type": "object",
"example": {
"errors": {
"message": "Order failed: validation failure",
"payload": {
"some_field": {
"some_sub_field": "Something went wrong with this parameter"
}
}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersApproveOrderById429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersApproveOrderById500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersApproveOrderByIdResponse
{
"type": "object",
"required": [
"order"
],
"properties": {
"order": {
"type": "object",
"required": [
"id",
"created_at",
"status"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the order"
},
"reward": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the reward"
},
"value": {
"type": "object",
"example": {
"denomination": 50,
"currency_code": "USD"
},
"required": [
"denomination",
"currency_code"
],
"properties": {
"denomination": {
"type": "number",
"format": "double",
"description": "Amount of the reward"
},
"currency_code": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD",
"description": "Currency of the reward"
}
}
},
"delivery": {
"type": "object",
"required": [
"method",
"status"
],
"properties": {
"method": {
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
},
"status": {
"enum": [
"SCHEDULED",
"FAILED",
"SUCCEEDED",
"PENDING"
],
"type": "string",
"description": "Current status of the delivery of the reward:\n\n* `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon.\n* `FAILED` - Delivery of reward failed (e.g. email bounced).\n* `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link opened).\n* `PENDING` - Delivery is pending but not yet scheduled.\n"
}
},
"description": "Details on how the reward is delivered to the recipient.\n"
},
"order_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the order this reward is part of."
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe Jr.",
"description": "Name of the recipient"
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "Email address of the recipient"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +)."
}
},
"description": "Details of the recipient of the reward"
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Date the reward was created"
},
"deliver_at": {
"type": "string",
"format": "date",
"example": "2023-12-31",
"pattern": "YYYY-MM-DD",
"description": "Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the custom field"
},
"label": {
"type": "string",
"example": "harry_potter_house",
"description": "Label of the custom field"
},
"value": {
"type": "string",
"example": "Hufflepuff",
"nullable": true,
"description": "Value of the custom field"
}
},
"description": "Reward custom data for searching, tracking or copy (see [Adding custom fields to orders](https://developers.tremendous.com/reference/using-custom-fields-to-add-custom-data-to-rewards).)"
}
}
},
"description": "A single reward, sent to a recipient. A reward is always part of an order.\n\nEither `products` or `campaign_id` must be specified.\n"
},
"status": {
"enum": [
"CANCELED",
"CART",
"EXECUTED",
"FAILED",
"PENDING APPROVAL",
"PENDING INTERNAL PAYMENT APPROVAL"
],
"type": "string",
"description": "Execution status of a given order\n\n<table>\n <thead>\n <tr>\n <th>\n Status\n </th>\n <th>\n Description\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n <code>\n CANCELED\n </code>\n </td>\n <td>\n The order and all of its rewards were canceled.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n CART\n </code>\n </td>\n <td>\n The order has been created, but hasn't yet been processed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n EXECUTED\n </code>\n </td>\n <td>\n The order has been executed. Payment has been handled and rewards are being delivered (if applicable).\n </td>\n </tr>\n <tr>\n <td>\n <code>\n FAILED\n </code>\n </td>\n <td>\n The order could not be processed due to an error. E.g. due to insufficient funds in the account.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING APPROVAL\n </code>\n </td>\n <td>\n The order has been created but needs approval to be executed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING INTERNAL PAYMENT APPROVAL\n </code>\n </td>\n <td>\n The order has been created but it is under review and requires approval from our team.\n </td>\n </tr>\n\n </tbody>\n</table>\n"
},
"payment": {
"type": "object",
"properties": {
"fees": {
"type": "number",
"format": "double",
"example": 2.5,
"minimum": 0,
"description": "Fees for the order (in USD)"
},
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"description": "Total price of the order including fees (in USD)"
},
"refund": {
"type": "object",
"required": [
"total"
],
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"description": "Total amount of the order refunds (in USD)"
}
},
"description": "Breakdown of the order refunds (total amount in USD, independent from the currency of the ordered rewards).\nNote that this property will only appear for canceled orders or orders with canceled rewards.\n"
},
"channel": {
"enum": [
"UI",
"API",
"EMBED",
"DECIPHER",
"QUALTRICS",
"TYPEFORM",
"SURVEY MONKEY"
],
"type": "string",
"description": "Name of the channel in which the order was created"
},
"subtotal": {
"type": "number",
"format": "double",
"example": 50,
"minimum": 0,
"description": "Total price of the order before fees (in USD)"
}
},
"description": "Cost breakdown of the order (cost of rewards + fees). Cost and fees are always denominated in USD, independent from the currency of the ordered rewards.\nNote that this property will only appear for processed orders (`status` is `EXECUTED`)."
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Date the order has been created"
},
"invoice_id": {
"type": "string",
"example": "2E59A82B-0001",
"description": "The ID for the invoice associated with this order"
},
"campaign_id": {
"type": "string",
"example": "IVM0I3WNJJL0",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"external_id": {
"type": "string",
"example": "Your-Individual-Identifier-for-This-Order",
"nullable": true,
"description": "Reference for this order, supplied by the customer.\n\nWhen set, `external_id` makes order idempotent. All requests that use the same `external_id`\nafter the initial order creation, will result in a response that returns the data of the\ninitially created order. The response will have a `201` response code. These responses\n**fail** to create any further orders.\n\nIt also allows for retrieving by `external_id` instead of `id` only.\n"
}
},
"description": "An order wraps around the fulfilment of one or more rewards."
}
}
}
OrdersCreateOrder201Response
{
"type": "object",
"required": [
"order"
],
"properties": {
"order": {
"type": "object",
"required": [
"id",
"created_at",
"status"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the order"
},
"reward": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the reward"
},
"value": {
"type": "object",
"example": {
"denomination": 50,
"currency_code": "USD"
},
"required": [
"denomination",
"currency_code"
],
"properties": {
"denomination": {
"type": "number",
"format": "double",
"description": "Amount of the reward"
},
"currency_code": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD",
"description": "Currency of the reward"
}
}
},
"delivery": {
"type": "object",
"required": [
"method",
"status"
],
"properties": {
"method": {
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
},
"status": {
"enum": [
"SCHEDULED",
"FAILED",
"SUCCEEDED",
"PENDING"
],
"type": "string",
"description": "Current status of the delivery of the reward:\n\n* `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon.\n* `FAILED` - Delivery of reward failed (e.g. email bounced).\n* `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link opened).\n* `PENDING` - Delivery is pending but not yet scheduled.\n"
}
},
"description": "Details on how the reward is delivered to the recipient.\n"
},
"order_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the order this reward is part of."
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe Jr.",
"description": "Name of the recipient"
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "Email address of the recipient"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +)."
}
},
"description": "Details of the recipient of the reward"
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Date the reward was created"
},
"deliver_at": {
"type": "string",
"format": "date",
"example": "2023-12-31",
"pattern": "YYYY-MM-DD",
"description": "Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the custom field"
},
"label": {
"type": "string",
"example": "harry_potter_house",
"description": "Label of the custom field"
},
"value": {
"type": "string",
"example": "Hufflepuff",
"nullable": true,
"description": "Value of the custom field"
}
},
"description": "Reward custom data for searching, tracking or copy (see [Adding custom fields to orders](https://developers.tremendous.com/reference/using-custom-fields-to-add-custom-data-to-rewards).)"
}
}
},
"description": "A single reward, sent to a recipient. A reward is always part of an order.\n\nEither `products` or `campaign_id` must be specified.\n"
},
"status": {
"enum": [
"CANCELED",
"CART",
"EXECUTED",
"FAILED",
"PENDING APPROVAL",
"PENDING INTERNAL PAYMENT APPROVAL"
],
"type": "string",
"description": "Execution status of a given order\n\n<table>\n <thead>\n <tr>\n <th>\n Status\n </th>\n <th>\n Description\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n <code>\n CANCELED\n </code>\n </td>\n <td>\n The order and all of its rewards were canceled.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n CART\n </code>\n </td>\n <td>\n The order has been created, but hasn't yet been processed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n EXECUTED\n </code>\n </td>\n <td>\n The order has been executed. Payment has been handled and rewards are being delivered (if applicable).\n </td>\n </tr>\n <tr>\n <td>\n <code>\n FAILED\n </code>\n </td>\n <td>\n The order could not be processed due to an error. E.g. due to insufficient funds in the account.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING APPROVAL\n </code>\n </td>\n <td>\n The order has been created but needs approval to be executed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING INTERNAL PAYMENT APPROVAL\n </code>\n </td>\n <td>\n The order has been created but it is under review and requires approval from our team.\n </td>\n </tr>\n\n </tbody>\n</table>\n"
},
"payment": {
"type": "object",
"properties": {
"fees": {
"type": "number",
"format": "double",
"example": 2.5,
"minimum": 0,
"description": "Fees for the order (in USD)"
},
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"description": "Total price of the order including fees (in USD)"
},
"refund": {
"type": "object",
"required": [
"total"
],
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"description": "Total amount of the order refunds (in USD)"
}
},
"description": "Breakdown of the order refunds (total amount in USD, independent from the currency of the ordered rewards).\nNote that this property will only appear for canceled orders or orders with canceled rewards.\n"
},
"channel": {
"enum": [
"UI",
"API",
"EMBED",
"DECIPHER",
"QUALTRICS",
"TYPEFORM",
"SURVEY MONKEY"
],
"type": "string",
"description": "Name of the channel in which the order was created"
},
"subtotal": {
"type": "number",
"format": "double",
"example": 50,
"minimum": 0,
"description": "Total price of the order before fees (in USD)"
}
},
"description": "Cost breakdown of the order (cost of rewards + fees). Cost and fees are always denominated in USD, independent from the currency of the ordered rewards.\nNote that this property will only appear for processed orders (`status` is `EXECUTED`)."
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Date the order has been created"
},
"invoice_id": {
"type": "string",
"example": "2E59A82B-0001",
"description": "The ID for the invoice associated with this order"
},
"campaign_id": {
"type": "string",
"example": "IVM0I3WNJJL0",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"external_id": {
"type": "string",
"example": "Your-Individual-Identifier-for-This-Order",
"nullable": true,
"description": "Reference for this order, supplied by the customer.\n\nWhen set, `external_id` makes order idempotent. All requests that use the same `external_id`\nafter the initial order creation, will result in a response that returns the data of the\ninitially created order. The response will have a `201` response code. These responses\n**fail** to create any further orders.\n\nIt also allows for retrieving by `external_id` instead of `id` only.\n"
}
},
"description": "An order wraps around the fulfilment of one or more rewards."
}
}
}
OrdersCreateOrder202Response
{
"type": "object",
"required": [
"order"
],
"properties": {
"order": {
"type": "object",
"required": [
"id",
"created_at",
"status"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the order"
},
"status": {
"enum": [
"CANCELED",
"CART",
"EXECUTED",
"FAILED",
"PENDING APPROVAL",
"PENDING INTERNAL PAYMENT APPROVAL"
],
"type": "string",
"description": "Execution status of a given order\n\n<table>\n <thead>\n <tr>\n <th>\n Status\n </th>\n <th>\n Description\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n <code>\n CANCELED\n </code>\n </td>\n <td>\n The order and all of its rewards were canceled.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n CART\n </code>\n </td>\n <td>\n The order has been created, but hasn't yet been processed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n EXECUTED\n </code>\n </td>\n <td>\n The order has been executed. Payment has been handled and rewards are being delivered (if applicable).\n </td>\n </tr>\n <tr>\n <td>\n <code>\n FAILED\n </code>\n </td>\n <td>\n The order could not be processed due to an error. E.g. due to insufficient funds in the account.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING APPROVAL\n </code>\n </td>\n <td>\n The order has been created but needs approval to be executed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING INTERNAL PAYMENT APPROVAL\n </code>\n </td>\n <td>\n The order has been created but it is under review and requires approval from our team.\n </td>\n </tr>\n\n </tbody>\n</table>\n"
},
"payment": {
"type": "object",
"properties": {
"fees": {
"type": "number",
"format": "double",
"example": 2.5,
"minimum": 0,
"description": "Fees for the order (in USD)"
},
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"description": "Total price of the order including fees (in USD)"
},
"refund": {
"type": "object",
"required": [
"total"
],
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"description": "Total amount of the order refunds (in USD)"
}
},
"description": "Breakdown of the order refunds (total amount in USD, independent from the currency of the ordered rewards).\nNote that this property will only appear for canceled orders or orders with canceled rewards.\n"
},
"channel": {
"enum": [
"UI",
"API",
"EMBED",
"DECIPHER",
"QUALTRICS",
"TYPEFORM",
"SURVEY MONKEY"
],
"type": "string",
"description": "Name of the channel in which the order was created"
},
"subtotal": {
"type": "number",
"format": "double",
"example": 50,
"minimum": 0,
"description": "Total price of the order before fees (in USD)"
}
},
"description": "Cost breakdown of the order (cost of rewards + fees). Cost and fees are always denominated in USD, independent from the currency of the ordered rewards.\nNote that this property will only appear for processed orders (`status` is `EXECUTED`)."
},
"rewards": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the reward"
},
"value": {
"type": "object",
"example": {
"denomination": 50,
"currency_code": "USD"
},
"required": [
"denomination",
"currency_code"
],
"properties": {
"denomination": {
"type": "number",
"format": "double",
"description": "Amount of the reward"
},
"currency_code": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD",
"description": "Currency of the reward"
}
}
},
"delivery": {
"type": "object",
"required": [
"method",
"status"
],
"properties": {
"link": {
"type": "string",
"example": "https://testflight.tremendous.com/rewards/payout/z67jic92r",
"description": "Link to redeem the reward at. You need to deliver this link to the recipient.\n\nOnly available for rewards for which the `method` for delivery is set to `LINK`.\n"
},
"method": {
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
},
"status": {
"enum": [
"SCHEDULED",
"FAILED",
"SUCCEEDED",
"PENDING"
],
"type": "string",
"description": "Current status of the delivery of the reward:\n\n* `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon.\n* `FAILED` - Delivery of reward failed (e.g. email bounced).\n* `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link opened).\n* `PENDING` - Delivery is pending but not yet scheduled.\n"
}
},
"description": "Details on how the reward is delivered to the recipient.\n"
},
"order_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the order this reward is part of."
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe Jr.",
"description": "Name of the recipient"
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "Email address of the recipient"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +)."
}
},
"description": "Details of the recipient of the reward"
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Date the reward was created"
},
"deliver_at": {
"type": "string",
"format": "date",
"example": "2023-12-31",
"pattern": "YYYY-MM-DD",
"description": "Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the custom field"
},
"label": {
"type": "string",
"example": "harry_potter_house",
"description": "Label of the custom field"
},
"value": {
"type": "string",
"example": "Hufflepuff",
"nullable": true,
"description": "Value of the custom field"
}
},
"description": "Reward custom data for searching, tracking or copy (see [Adding custom fields to orders](https://developers.tremendous.com/reference/using-custom-fields-to-add-custom-data-to-rewards).)"
}
}
},
"description": "A single reward, sent to a recipient. A reward is always part of an order.\n\nEither `products` or `campaign_id` must be specified.\n"
},
"minItems": 1
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Date the order has been created"
},
"invoice_id": {
"type": "string",
"example": "2E59A82B-0001",
"description": "The ID for the invoice associated with this order"
},
"campaign_id": {
"type": "string",
"example": "IVM0I3WNJJL0",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"external_id": {
"type": "string",
"example": "Your-Individual-Identifier-for-This-Order",
"nullable": true,
"description": "Reference for this order, supplied by the customer.\n\nWhen set, `external_id` makes order idempotent. All requests that use the same `external_id`\nafter the initial order creation, will result in a response that returns the data of the\ninitially created order. The response will have a `201` response code. These responses\n**fail** to create any further orders.\n\nIt also allows for retrieving by `external_id` instead of `id` only.\n"
}
},
"description": "An order wraps around the fulfilment of one or more rewards."
}
}
}
OrdersCreateOrder400Response
{
"type": "object",
"example": {
"errors": {
"message": "Order failed: validation failure",
"payload": {
"some_field": {
"some_sub_field": "Something went wrong with this parameter"
}
}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersCreateOrder401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersCreateOrder402Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersCreateOrder422Response
{
"type": "object",
"example": {
"errors": {
"message": "Order failed: validation failure",
"payload": {
"some_field": {
"some_sub_field": "Something went wrong with this parameter"
}
}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersCreateOrder429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersCreateOrder500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersCreateOrderRequest
{
"type": "object",
"required": [
"payment",
"reward"
],
"properties": {
"reward": {
"type": "object",
"properties": {
"value": {
"type": "object",
"example": {
"denomination": 50,
"currency_code": "USD"
},
"required": [
"denomination",
"currency_code"
],
"properties": {
"denomination": {
"type": "number",
"format": "double",
"description": "Amount of the reward"
},
"currency_code": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD",
"description": "Currency of the reward"
}
}
},
"delivery": {
"type": "object",
"properties": {
"method": {
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
}
},
"description": "Details on how the reward is delivered to the recipient.\n"
},
"language": {
"type": "string",
"example": "de",
"description": "Set this to translate the redemption experience for this reward. Pass a 2-letter [ISO-639-1 code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) for the desired language. Defaults to `en`.\n"
},
"products": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"minItems": 1,
"description": "List of IDs of product (different gift cards, charity, etc.) that will be available\nto the recipient to choose from.\n\nProviding a `products` array will override the products made available by the campaign\nspecified using the `campaign_id` property unless the `products` array is empty. It will\n_not_ override other campaign attributes, like the message and customization of the look and feel.\n"
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe Jr.",
"description": "Name of the recipient"
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "Email address of the recipient"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +)."
}
},
"description": "Details of the recipient of the reward"
},
"deliver_at": {
"type": "string",
"format": "date",
"example": "2023-12-31",
"pattern": "YYYY-MM-DD",
"description": "Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored."
},
"campaign_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the custom field"
},
"label": {
"type": "string",
"example": "harry_potter_house",
"description": "Label of the custom field"
},
"value": {
"type": "string",
"example": "Hufflepuff",
"nullable": true,
"description": "Value of the custom field"
}
},
"description": "Reward custom data for searching, tracking or copy (see [Adding custom fields to orders](https://developers.tremendous.com/reference/using-custom-fields-to-add-custom-data-to-rewards).)"
}
}
},
"description": "A single reward, sent to a recipient. A reward is always part of an order.\n\nEither `products` or `campaign_id` must be specified.\n"
},
"payment": {
"type": "object",
"required": [
"funding_source_id"
],
"properties": {
"funding_source_id": {
"type": "string",
"description": "Tremendous ID of the funding source that will be used to pay for the order. Use `balance` to use your Tremendous's balance."
}
}
},
"external_id": {
"type": "string",
"example": "Your-Individual-Identifier-for-This-Order",
"nullable": true,
"description": "Reference for this order, supplied by the customer.\n\nWhen set, `external_id` makes order idempotent. All requests that use the same `external_id`\nafter the initial order creation, will result in a response that returns the data of the\ninitially created order. The response will have a `201` response code. These responses\n**fail** to create any further orders.\n\nIt also allows for retrieving by `external_id` instead of `id` only.\n"
}
}
}
OrdersCreateOrderResponse
{
"type": "object",
"required": [
"order"
],
"properties": {
"order": {
"type": "object",
"required": [
"id",
"created_at",
"status"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the order"
},
"status": {
"enum": [
"CANCELED",
"CART",
"EXECUTED",
"FAILED",
"PENDING APPROVAL",
"PENDING INTERNAL PAYMENT APPROVAL"
],
"type": "string",
"description": "Execution status of a given order\n\n<table>\n <thead>\n <tr>\n <th>\n Status\n </th>\n <th>\n Description\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n <code>\n CANCELED\n </code>\n </td>\n <td>\n The order and all of its rewards were canceled.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n CART\n </code>\n </td>\n <td>\n The order has been created, but hasn't yet been processed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n EXECUTED\n </code>\n </td>\n <td>\n The order has been executed. Payment has been handled and rewards are being delivered (if applicable).\n </td>\n </tr>\n <tr>\n <td>\n <code>\n FAILED\n </code>\n </td>\n <td>\n The order could not be processed due to an error. E.g. due to insufficient funds in the account.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING APPROVAL\n </code>\n </td>\n <td>\n The order has been created but needs approval to be executed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING INTERNAL PAYMENT APPROVAL\n </code>\n </td>\n <td>\n The order has been created but it is under review and requires approval from our team.\n </td>\n </tr>\n\n </tbody>\n</table>\n"
},
"payment": {
"type": "object",
"properties": {
"fees": {
"type": "number",
"format": "double",
"example": 2.5,
"minimum": 0,
"description": "Fees for the order (in USD)"
},
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"description": "Total price of the order including fees (in USD)"
},
"refund": {
"type": "object",
"required": [
"total"
],
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"description": "Total amount of the order refunds (in USD)"
}
},
"description": "Breakdown of the order refunds (total amount in USD, independent from the currency of the ordered rewards).\nNote that this property will only appear for canceled orders or orders with canceled rewards.\n"
},
"channel": {
"enum": [
"UI",
"API",
"EMBED",
"DECIPHER",
"QUALTRICS",
"TYPEFORM",
"SURVEY MONKEY"
],
"type": "string",
"description": "Name of the channel in which the order was created"
},
"subtotal": {
"type": "number",
"format": "double",
"example": 50,
"minimum": 0,
"description": "Total price of the order before fees (in USD)"
}
},
"description": "Cost breakdown of the order (cost of rewards + fees). Cost and fees are always denominated in USD, independent from the currency of the ordered rewards.\nNote that this property will only appear for processed orders (`status` is `EXECUTED`)."
},
"rewards": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the reward"
},
"value": {
"type": "object",
"example": {
"denomination": 50,
"currency_code": "USD"
},
"required": [
"denomination",
"currency_code"
],
"properties": {
"denomination": {
"type": "number",
"format": "double",
"description": "Amount of the reward"
},
"currency_code": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD",
"description": "Currency of the reward"
}
}
},
"delivery": {
"type": "object",
"required": [
"method",
"status"
],
"properties": {
"link": {
"type": "string",
"example": "https://testflight.tremendous.com/rewards/payout/z67jic92r",
"description": "Link to redeem the reward at. You need to deliver this link to the recipient.\n\nOnly available for rewards for which the `method` for delivery is set to `LINK`.\n"
},
"method": {
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
},
"status": {
"enum": [
"SCHEDULED",
"FAILED",
"SUCCEEDED",
"PENDING"
],
"type": "string",
"description": "Current status of the delivery of the reward:\n\n* `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon.\n* `FAILED` - Delivery of reward failed (e.g. email bounced).\n* `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link opened).\n* `PENDING` - Delivery is pending but not yet scheduled.\n"
}
},
"description": "Details on how the reward is delivered to the recipient.\n"
},
"order_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the order this reward is part of."
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe Jr.",
"description": "Name of the recipient"
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "Email address of the recipient"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +)."
}
},
"description": "Details of the recipient of the reward"
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Date the reward was created"
},
"deliver_at": {
"type": "string",
"format": "date",
"example": "2023-12-31",
"pattern": "YYYY-MM-DD",
"description": "Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the custom field"
},
"label": {
"type": "string",
"example": "harry_potter_house",
"description": "Label of the custom field"
},
"value": {
"type": "string",
"example": "Hufflepuff",
"nullable": true,
"description": "Value of the custom field"
}
},
"description": "Reward custom data for searching, tracking or copy (see [Adding custom fields to orders](https://developers.tremendous.com/reference/using-custom-fields-to-add-custom-data-to-rewards).)"
}
}
},
"description": "A single reward, sent to a recipient. A reward is always part of an order.\n\nEither `products` or `campaign_id` must be specified.\n"
},
"minItems": 1
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Date the order has been created"
},
"invoice_id": {
"type": "string",
"example": "2E59A82B-0001",
"description": "The ID for the invoice associated with this order"
},
"campaign_id": {
"type": "string",
"example": "IVM0I3WNJJL0",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"external_id": {
"type": "string",
"example": "Your-Individual-Identifier-for-This-Order",
"nullable": true,
"description": "Reference for this order, supplied by the customer.\n\nWhen set, `external_id` makes order idempotent. All requests that use the same `external_id`\nafter the initial order creation, will result in a response that returns the data of the\ninitially created order. The response will have a `201` response code. These responses\n**fail** to create any further orders.\n\nIt also allows for retrieving by `external_id` instead of `id` only.\n"
}
},
"description": "An order wraps around the fulfilment of one or more rewards."
}
}
}
OrdersGetList401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersGetList429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersGetList500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersGetListResponse
{
"type": "object",
"required": [
"orders",
"total_count"
],
"properties": {
"orders": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"created_at",
"status"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the order"
},
"reward": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the reward"
},
"value": {
"type": "object",
"example": {
"denomination": 50,
"currency_code": "USD"
},
"required": [
"denomination",
"currency_code"
],
"properties": {
"denomination": {
"type": "number",
"format": "double",
"description": "Amount of the reward"
},
"currency_code": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD",
"description": "Currency of the reward"
}
}
},
"delivery": {
"type": "object",
"required": [
"method",
"status"
],
"properties": {
"method": {
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
},
"status": {
"enum": [
"SCHEDULED",
"FAILED",
"SUCCEEDED",
"PENDING"
],
"type": "string",
"description": "Current status of the delivery of the reward:\n\n* `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon.\n* `FAILED` - Delivery of reward failed (e.g. email bounced).\n* `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link opened).\n* `PENDING` - Delivery is pending but not yet scheduled.\n"
}
},
"description": "Details on how the reward is delivered to the recipient.\n"
},
"order_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the order this reward is part of."
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe Jr.",
"description": "Name of the recipient"
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "Email address of the recipient"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +)."
}
},
"description": "Details of the recipient of the reward"
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Date the reward was created"
},
"deliver_at": {
"type": "string",
"format": "date",
"example": "2023-12-31",
"pattern": "YYYY-MM-DD",
"description": "Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the custom field"
},
"label": {
"type": "string",
"example": "harry_potter_house",
"description": "Label of the custom field"
},
"value": {
"type": "string",
"example": "Hufflepuff",
"nullable": true,
"description": "Value of the custom field"
}
},
"description": "Reward custom data for searching, tracking or copy (see [Adding custom fields to orders](https://developers.tremendous.com/reference/using-custom-fields-to-add-custom-data-to-rewards).)"
}
}
},
"description": "A single reward, sent to a recipient. A reward is always part of an order.\n\nEither `products` or `campaign_id` must be specified.\n"
},
"status": {
"enum": [
"CANCELED",
"CART",
"EXECUTED",
"FAILED",
"PENDING APPROVAL",
"PENDING INTERNAL PAYMENT APPROVAL"
],
"type": "string",
"description": "Execution status of a given order\n\n<table>\n <thead>\n <tr>\n <th>\n Status\n </th>\n <th>\n Description\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n <code>\n CANCELED\n </code>\n </td>\n <td>\n The order and all of its rewards were canceled.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n CART\n </code>\n </td>\n <td>\n The order has been created, but hasn't yet been processed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n EXECUTED\n </code>\n </td>\n <td>\n The order has been executed. Payment has been handled and rewards are being delivered (if applicable).\n </td>\n </tr>\n <tr>\n <td>\n <code>\n FAILED\n </code>\n </td>\n <td>\n The order could not be processed due to an error. E.g. due to insufficient funds in the account.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING APPROVAL\n </code>\n </td>\n <td>\n The order has been created but needs approval to be executed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING INTERNAL PAYMENT APPROVAL\n </code>\n </td>\n <td>\n The order has been created but it is under review and requires approval from our team.\n </td>\n </tr>\n\n </tbody>\n</table>\n"
},
"payment": {
"type": "object",
"properties": {
"fees": {
"type": "number",
"format": "double",
"example": 2.5,
"minimum": 0,
"description": "Fees for the order (in USD)"
},
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"description": "Total price of the order including fees (in USD)"
},
"refund": {
"type": "object",
"required": [
"total"
],
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"description": "Total amount of the order refunds (in USD)"
}
},
"description": "Breakdown of the order refunds (total amount in USD, independent from the currency of the ordered rewards).\nNote that this property will only appear for canceled orders or orders with canceled rewards.\n"
},
"channel": {
"enum": [
"UI",
"API",
"EMBED",
"DECIPHER",
"QUALTRICS",
"TYPEFORM",
"SURVEY MONKEY"
],
"type": "string",
"description": "Name of the channel in which the order was created"
},
"subtotal": {
"type": "number",
"format": "double",
"example": 50,
"minimum": 0,
"description": "Total price of the order before fees (in USD)"
}
},
"description": "Cost breakdown of the order (cost of rewards + fees). Cost and fees are always denominated in USD, independent from the currency of the ordered rewards.\nNote that this property will only appear for processed orders (`status` is `EXECUTED`)."
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Date the order has been created"
},
"invoice_id": {
"type": "string",
"example": "2E59A82B-0001",
"description": "The ID for the invoice associated with this order"
},
"campaign_id": {
"type": "string",
"example": "IVM0I3WNJJL0",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"external_id": {
"type": "string",
"example": "Your-Individual-Identifier-for-This-Order",
"nullable": true,
"description": "Reference for this order, supplied by the customer.\n\nWhen set, `external_id` makes order idempotent. All requests that use the same `external_id`\nafter the initial order creation, will result in a response that returns the data of the\ninitially created order. The response will have a `201` response code. These responses\n**fail** to create any further orders.\n\nIt also allows for retrieving by `external_id` instead of `id` only.\n"
}
},
"description": "An order wraps around the fulfilment of one or more rewards."
}
},
"total_count": {
"type": "integer",
"example": 1,
"description": "The total number of orders across all pages"
}
}
}
OrdersGetOrderById401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersGetOrderById404Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersGetOrderById429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersGetOrderById500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersGetOrderByIdResponse
{
"type": "object",
"required": [
"order"
],
"properties": {
"order": {
"type": "object",
"required": [
"id",
"created_at",
"status"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the order"
},
"reward": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the reward"
},
"value": {
"type": "object",
"example": {
"denomination": 50,
"currency_code": "USD"
},
"required": [
"denomination",
"currency_code"
],
"properties": {
"denomination": {
"type": "number",
"format": "double",
"description": "Amount of the reward"
},
"currency_code": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD",
"description": "Currency of the reward"
}
}
},
"delivery": {
"type": "object",
"required": [
"method",
"status"
],
"properties": {
"method": {
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
},
"status": {
"enum": [
"SCHEDULED",
"FAILED",
"SUCCEEDED",
"PENDING"
],
"type": "string",
"description": "Current status of the delivery of the reward:\n\n* `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon.\n* `FAILED` - Delivery of reward failed (e.g. email bounced).\n* `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link opened).\n* `PENDING` - Delivery is pending but not yet scheduled.\n"
}
},
"description": "Details on how the reward is delivered to the recipient.\n"
},
"order_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the order this reward is part of."
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe Jr.",
"description": "Name of the recipient"
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "Email address of the recipient"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +)."
}
},
"description": "Details of the recipient of the reward"
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Date the reward was created"
},
"deliver_at": {
"type": "string",
"format": "date",
"example": "2023-12-31",
"pattern": "YYYY-MM-DD",
"description": "Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the custom field"
},
"label": {
"type": "string",
"example": "harry_potter_house",
"description": "Label of the custom field"
},
"value": {
"type": "string",
"example": "Hufflepuff",
"nullable": true,
"description": "Value of the custom field"
}
},
"description": "Reward custom data for searching, tracking or copy (see [Adding custom fields to orders](https://developers.tremendous.com/reference/using-custom-fields-to-add-custom-data-to-rewards).)"
}
}
},
"description": "A single reward, sent to a recipient. A reward is always part of an order.\n\nEither `products` or `campaign_id` must be specified.\n"
},
"status": {
"enum": [
"CANCELED",
"CART",
"EXECUTED",
"FAILED",
"PENDING APPROVAL",
"PENDING INTERNAL PAYMENT APPROVAL"
],
"type": "string",
"description": "Execution status of a given order\n\n<table>\n <thead>\n <tr>\n <th>\n Status\n </th>\n <th>\n Description\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n <code>\n CANCELED\n </code>\n </td>\n <td>\n The order and all of its rewards were canceled.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n CART\n </code>\n </td>\n <td>\n The order has been created, but hasn't yet been processed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n EXECUTED\n </code>\n </td>\n <td>\n The order has been executed. Payment has been handled and rewards are being delivered (if applicable).\n </td>\n </tr>\n <tr>\n <td>\n <code>\n FAILED\n </code>\n </td>\n <td>\n The order could not be processed due to an error. E.g. due to insufficient funds in the account.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING APPROVAL\n </code>\n </td>\n <td>\n The order has been created but needs approval to be executed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING INTERNAL PAYMENT APPROVAL\n </code>\n </td>\n <td>\n The order has been created but it is under review and requires approval from our team.\n </td>\n </tr>\n\n </tbody>\n</table>\n"
},
"payment": {
"type": "object",
"properties": {
"fees": {
"type": "number",
"format": "double",
"example": 2.5,
"minimum": 0,
"description": "Fees for the order (in USD)"
},
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"description": "Total price of the order including fees (in USD)"
},
"refund": {
"type": "object",
"required": [
"total"
],
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"description": "Total amount of the order refunds (in USD)"
}
},
"description": "Breakdown of the order refunds (total amount in USD, independent from the currency of the ordered rewards).\nNote that this property will only appear for canceled orders or orders with canceled rewards.\n"
},
"channel": {
"enum": [
"UI",
"API",
"EMBED",
"DECIPHER",
"QUALTRICS",
"TYPEFORM",
"SURVEY MONKEY"
],
"type": "string",
"description": "Name of the channel in which the order was created"
},
"subtotal": {
"type": "number",
"format": "double",
"example": 50,
"minimum": 0,
"description": "Total price of the order before fees (in USD)"
}
},
"description": "Cost breakdown of the order (cost of rewards + fees). Cost and fees are always denominated in USD, independent from the currency of the ordered rewards.\nNote that this property will only appear for processed orders (`status` is `EXECUTED`)."
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Date the order has been created"
},
"invoice_id": {
"type": "string",
"example": "2E59A82B-0001",
"description": "The ID for the invoice associated with this order"
},
"campaign_id": {
"type": "string",
"example": "IVM0I3WNJJL0",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"external_id": {
"type": "string",
"example": "Your-Individual-Identifier-for-This-Order",
"nullable": true,
"description": "Reference for this order, supplied by the customer.\n\nWhen set, `external_id` makes order idempotent. All requests that use the same `external_id`\nafter the initial order creation, will result in a response that returns the data of the\ninitially created order. The response will have a `201` response code. These responses\n**fail** to create any further orders.\n\nIt also allows for retrieving by `external_id` instead of `id` only.\n"
}
},
"description": "An order wraps around the fulfilment of one or more rewards."
}
}
}
OrdersRejectById401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersRejectById403Response
{
"type": "object",
"example": {
"errors": {
"message": "Unsupported operation for this reward.",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersRejectById404Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersRejectById422Response
{
"type": "object",
"example": {
"errors": {
"message": "Order failed: validation failure",
"payload": {
"some_field": {
"some_sub_field": "Something went wrong with this parameter"
}
}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersRejectById429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersRejectById500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrdersRejectByIdResponse
{
"type": "object",
"required": [
"order"
],
"properties": {
"order": {
"type": "object",
"required": [
"id",
"created_at",
"status"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the order"
},
"reward": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the reward"
},
"value": {
"type": "object",
"example": {
"denomination": 50,
"currency_code": "USD"
},
"required": [
"denomination",
"currency_code"
],
"properties": {
"denomination": {
"type": "number",
"format": "double",
"description": "Amount of the reward"
},
"currency_code": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD",
"description": "Currency of the reward"
}
}
},
"delivery": {
"type": "object",
"required": [
"method",
"status"
],
"properties": {
"method": {
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
},
"status": {
"enum": [
"SCHEDULED",
"FAILED",
"SUCCEEDED",
"PENDING"
],
"type": "string",
"description": "Current status of the delivery of the reward:\n\n* `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon.\n* `FAILED` - Delivery of reward failed (e.g. email bounced).\n* `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link opened).\n* `PENDING` - Delivery is pending but not yet scheduled.\n"
}
},
"description": "Details on how the reward is delivered to the recipient.\n"
},
"order_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the order this reward is part of."
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe Jr.",
"description": "Name of the recipient"
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "Email address of the recipient"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +)."
}
},
"description": "Details of the recipient of the reward"
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Date the reward was created"
},
"deliver_at": {
"type": "string",
"format": "date",
"example": "2023-12-31",
"pattern": "YYYY-MM-DD",
"description": "Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the custom field"
},
"label": {
"type": "string",
"example": "harry_potter_house",
"description": "Label of the custom field"
},
"value": {
"type": "string",
"example": "Hufflepuff",
"nullable": true,
"description": "Value of the custom field"
}
},
"description": "Reward custom data for searching, tracking or copy (see [Adding custom fields to orders](https://developers.tremendous.com/reference/using-custom-fields-to-add-custom-data-to-rewards).)"
}
}
},
"description": "A single reward, sent to a recipient. A reward is always part of an order.\n\nEither `products` or `campaign_id` must be specified.\n"
},
"status": {
"enum": [
"CANCELED",
"CART",
"EXECUTED",
"FAILED",
"PENDING APPROVAL",
"PENDING INTERNAL PAYMENT APPROVAL"
],
"type": "string",
"description": "Execution status of a given order\n\n<table>\n <thead>\n <tr>\n <th>\n Status\n </th>\n <th>\n Description\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n <code>\n CANCELED\n </code>\n </td>\n <td>\n The order and all of its rewards were canceled.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n CART\n </code>\n </td>\n <td>\n The order has been created, but hasn't yet been processed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n EXECUTED\n </code>\n </td>\n <td>\n The order has been executed. Payment has been handled and rewards are being delivered (if applicable).\n </td>\n </tr>\n <tr>\n <td>\n <code>\n FAILED\n </code>\n </td>\n <td>\n The order could not be processed due to an error. E.g. due to insufficient funds in the account.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING APPROVAL\n </code>\n </td>\n <td>\n The order has been created but needs approval to be executed.\n </td>\n </tr>\n <tr>\n <td>\n <code>\n PENDING INTERNAL PAYMENT APPROVAL\n </code>\n </td>\n <td>\n The order has been created but it is under review and requires approval from our team.\n </td>\n </tr>\n\n </tbody>\n</table>\n"
},
"payment": {
"type": "object",
"properties": {
"fees": {
"type": "number",
"format": "double",
"example": 2.5,
"minimum": 0,
"description": "Fees for the order (in USD)"
},
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"description": "Total price of the order including fees (in USD)"
},
"refund": {
"type": "object",
"required": [
"total"
],
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"description": "Total amount of the order refunds (in USD)"
}
},
"description": "Breakdown of the order refunds (total amount in USD, independent from the currency of the ordered rewards).\nNote that this property will only appear for canceled orders or orders with canceled rewards.\n"
},
"channel": {
"enum": [
"UI",
"API",
"EMBED",
"DECIPHER",
"QUALTRICS",
"TYPEFORM",
"SURVEY MONKEY"
],
"type": "string",
"description": "Name of the channel in which the order was created"
},
"subtotal": {
"type": "number",
"format": "double",
"example": 50,
"minimum": 0,
"description": "Total price of the order before fees (in USD)"
}
},
"description": "Cost breakdown of the order (cost of rewards + fees). Cost and fees are always denominated in USD, independent from the currency of the ordered rewards.\nNote that this property will only appear for processed orders (`status` is `EXECUTED`)."
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Date the order has been created"
},
"invoice_id": {
"type": "string",
"example": "2E59A82B-0001",
"description": "The ID for the invoice associated with this order"
},
"campaign_id": {
"type": "string",
"example": "IVM0I3WNJJL0",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"external_id": {
"type": "string",
"example": "Your-Individual-Identifier-for-This-Order",
"nullable": true,
"description": "Reference for this order, supplied by the customer.\n\nWhen set, `external_id` makes order idempotent. All requests that use the same `external_id`\nafter the initial order creation, will result in a response that returns the data of the\ninitially created order. The response will have a `201` response code. These responses\n**fail** to create any further orders.\n\nIt also allows for retrieving by `external_id` instead of `id` only.\n"
}
},
"description": "An order wraps around the fulfilment of one or more rewards."
}
}
}
Organization
{
"type": "object",
"required": [
"name",
"website"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true
},
"name": {
"type": "string",
"example": "ACME Inc.",
"description": "Name of the organization"
},
"status": {
"enum": [
"PENDING",
"APPROVED",
"REJECTED"
],
"type": "string",
"example": "APPROVED",
"readOnly": true,
"description": "Status of the organization. Organizations need to be approved to be able to use them to send out rewards."
},
"website": {
"type": "string",
"format": "uri",
"example": "https://www.example.com/some-org",
"description": "URL of the website of that organization"
},
"created_at": {
"type": "string",
"format": "date",
"example": "2021-08-02",
"readOnly": true,
"description": "Timestamp of when the organization has been created.\n\n*This field is only returned when creating an organization.* It is not returned anymore when retrieving or listing organizations.\n"
}
},
"description": "Organizations are a way to separate different parts of your business within the same Tremendous account.\nYour root Tremendous account is an organization itself and can have multiple sub-organizations.\n\nYou can assign users in your Tremendous team as members to any organization. Users can be members of multiple\norganizations at once.\n\nEach organizations can have it's own API key.\n"
}
OrganizationsCreateApiKey401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrganizationsCreateApiKey404Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrganizationsCreateApiKey429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrganizationsCreateApiKey500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrganizationsCreateApiKeyResponse
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"example": "TEST_02feed72c2f6ab8dadc7f6156d1106828aabf81e5c4d38ea94d62817717ea261",
"description": "The new API key"
}
}
}
OrganizationsCreateNewOrganization400Response
{
"type": "object",
"example": {
"errors": {
"message": "Order failed: validation failure",
"payload": {
"some_field": {
"some_sub_field": "Something went wrong with this parameter"
}
}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrganizationsCreateNewOrganization401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrganizationsCreateNewOrganization429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrganizationsCreateNewOrganization500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrganizationsCreateNewOrganizationRequest
{
"type": "object",
"required": [
"name",
"website"
],
"properties": {
"name": {
"type": "string",
"example": "ACME Inc.",
"description": "Name of the organization"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the organization. For non-US phone numbers, specify the country code (prefixed with +)."
},
"website": {
"type": "string",
"format": "uri",
"example": "https://www.example.com/some-org",
"description": "URL of the website of that organization"
},
"with_api_key": {
"type": "boolean",
"example": true,
"description": "Default value is `false`. Set to true to also generate an API key associated to the new organization."
},
"copy_settings": {
"type": "object",
"properties": {
"users": {
"type": "boolean",
"default": false,
"example": false,
"description": "Copy over the users from the current organization to the new organization. Defaults to `false`."
},
"campaigns": {
"type": "boolean",
"default": false,
"example": false,
"description": "Copy over the campaigns from the current organization to the new organization. Defaults to `false`."
},
"custom_fields": {
"type": "boolean",
"default": false,
"example": false,
"description": "Copy over the custom fields from the current organization to the new organization. Defaults to `false`."
},
"order_approvals": {
"type": "boolean",
"default": false,
"example": false,
"description": "Copy over the order approvals settings from the current organization to the new organization. Defaults to `false`."
},
"payment_methods": {
"type": "boolean",
"default": false,
"example": false,
"description": "Copy over the payment methods from the current organization to the new organization. Defaults to `false`."
},
"fraud_prevention": {
"type": "boolean",
"default": false,
"example": false,
"description": "Copy over the fraud prevention settings and rules from the current organization to the new organization. Defaults to `false`."
},
"security_settings": {
"type": "boolean",
"default": true,
"example": true,
"description": "Copy over the security settings from the current organization to the new organization. Defaults to `true`."
}
},
"description": "A list of the settings that you wish to copy over to the new organization."
}
}
}
OrganizationsCreateNewOrganizationResponse
{
"type": "object",
"properties": {
"organization": {
"type": "object",
"required": [
"name",
"website"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"name": {
"type": "string",
"example": "ACME Inc.",
"description": "Name of the organization"
},
"status": {
"enum": [
"PENDING",
"APPROVED",
"REJECTED"
],
"type": "string",
"example": "APPROVED",
"description": "Status of the organization. Organizations need to be approved to be able to use them to send out rewards."
},
"api_key": {
"type": "string",
"description": "The API key for the created organization.\nThis property is only returned when `with_api_key` is set to `true`.\n"
},
"website": {
"type": "string",
"format": "uri",
"example": "https://www.example.com/some-org",
"description": "URL of the website of that organization"
},
"created_at": {
"type": "string",
"format": "date",
"example": "2021-08-02",
"description": "Timestamp of when the organization has been created.\n\n*This field is only returned when creating an organization.* It is not returned anymore when retrieving or listing organizations.\n"
}
},
"description": "Organizations are a way to separate different parts of your business within the same Tremendous account.\nYour root Tremendous account is an organization itself and can have multiple sub-organizations.\n\nYou can assign users in your Tremendous team as members to any organization. Users can be members of multiple\norganizations at once.\n\nEach organizations can have it's own API key.\n"
}
}
}
OrganizationsGetList401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrganizationsGetList429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrganizationsGetList500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrganizationsGetListResponse
{
"type": "object",
"properties": {
"organizations": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"website"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"name": {
"type": "string",
"example": "ACME Inc.",
"description": "Name of the organization"
},
"status": {
"enum": [
"PENDING",
"APPROVED",
"REJECTED"
],
"type": "string",
"example": "APPROVED",
"description": "Status of the organization. Organizations need to be approved to be able to use them to send out rewards."
},
"website": {
"type": "string",
"format": "uri",
"example": "https://www.example.com/some-org",
"description": "URL of the website of that organization"
},
"created_at": {
"type": "string",
"format": "date",
"example": "2021-08-02",
"description": "Timestamp of when the organization has been created.\n\n*This field is only returned when creating an organization.* It is not returned anymore when retrieving or listing organizations.\n"
}
},
"description": "Organizations are a way to separate different parts of your business within the same Tremendous account.\nYour root Tremendous account is an organization itself and can have multiple sub-organizations.\n\nYou can assign users in your Tremendous team as members to any organization. Users can be members of multiple\norganizations at once.\n\nEach organizations can have it's own API key.\n"
}
}
}
}
OrganizationsGetOrganization401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrganizationsGetOrganization404Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrganizationsGetOrganization429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrganizationsGetOrganization500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
OrganizationsGetOrganizationResponse
{
"type": "object",
"properties": {
"organization": {
"type": "object",
"required": [
"name",
"website"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"name": {
"type": "string",
"example": "ACME Inc.",
"description": "Name of the organization"
},
"status": {
"enum": [
"PENDING",
"APPROVED",
"REJECTED"
],
"type": "string",
"example": "APPROVED",
"description": "Status of the organization. Organizations need to be approved to be able to use them to send out rewards."
},
"website": {
"type": "string",
"format": "uri",
"example": "https://www.example.com/some-org",
"description": "URL of the website of that organization"
},
"created_at": {
"type": "string",
"format": "date",
"example": "2021-08-02",
"description": "Timestamp of when the organization has been created.\n\n*This field is only returned when creating an organization.* It is not returned anymore when retrieving or listing organizations.\n"
}
},
"description": "Organizations are a way to separate different parts of your business within the same Tremendous account.\nYour root Tremendous account is an organization itself and can have multiple sub-organizations.\n\nYou can assign users in your Tremendous team as members to any organization. Users can be members of multiple\norganizations at once.\n\nEach organizations can have it's own API key.\n"
}
}
}
PaymentDetails
{
"type": "object",
"properties": {
"fees": {
"type": "number",
"format": "double",
"example": 2.5,
"minimum": 0,
"readOnly": true,
"description": "Fees for the order (in USD)"
},
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"readOnly": true,
"description": "Total price of the order including fees (in USD)"
},
"refund": {
"type": "object",
"required": [
"total"
],
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"readOnly": true,
"description": "Total amount of the order refunds (in USD)"
}
},
"description": "Breakdown of the order refunds (total amount in USD, independent from the currency of the ordered rewards).\nNote that this property will only appear for canceled orders or orders with canceled rewards.\n"
},
"channel": {
"enum": [
"UI",
"API",
"EMBED",
"DECIPHER",
"QUALTRICS",
"TYPEFORM",
"SURVEY MONKEY"
],
"type": "string",
"description": "Name of the channel in which the order was created"
},
"subtotal": {
"type": "number",
"format": "double",
"example": 50,
"minimum": 0,
"readOnly": true,
"description": "Total price of the order before fees (in USD)"
}
}
}
Product
{
"type": "object",
"required": [
"id",
"name",
"description",
"category",
"disclosure",
"currency_codes",
"countries",
"images"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true
},
"name": {
"type": "string",
"description": "Name of the product"
},
"skus": {
"type": "array",
"items": {
"type": "object",
"example": [
{
"max": 100,
"min": 20
}
],
"minItems": 0,
"required": [
"min",
"max"
],
"properties": {
"max": {
"type": "number",
"example": 100,
"minimum": 0,
"description": "Maximum denomination that this product supports (in the product's currency)"
},
"min": {
"type": "number",
"example": 20,
"minimum": 0,
"description": "Minimal denomination that this product supports (in the product's currency)"
}
}
},
"description": "Products may are restricted in their usage based on the amount of the reward. The `skus` array defines bands of denominations in which this product may be used for payouts.\n"
},
"images": {
"type": "array",
"items": {
"type": "object",
"required": [
"src",
"type"
],
"properties": {
"src": {
"type": "string",
"format": "uri",
"description": "URL to this image"
},
"type": {
"enum": [
"card",
"logo"
],
"type": "string",
"description": "Type of image"
}
}
},
"example": [
{
"src": "https://example.com/some-logo.jpg",
"type": "logo"
}
],
"minItems": 0,
"description": "List of product images associated with this product (e.g. logos or images of the gift cards)"
},
"category": {
"enum": [
"ach",
"charity",
"merchant_card",
"paypal",
"venmo",
"visa_card"
],
"type": "string",
"example": "charities",
"description": "The category of this product\n\n<table>\n <thead>\n <tr>\n <th>Category</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>ach</code></td>\n <td>Bank transfer to the recipient</td>\n </tr>\n <tr>\n <td><code>charity</code></td>\n <td>Donations to a charity</td>\n </tr>\n <tr>\n <td><code>merchant_card</code></td>\n <td>A gift card for a certain merchant (e.g. Amazon)</td>\n </tr>\n <tr>\n <td><code>paypal</code></td>\n <td>Payout via PayPal</td>\n </tr>\n <tr>\n <td><code>venmo</code></td>\n <td>Payout via Venmo</td>\n </tr>\n <tr>\n <td><code>visa_card</code></td>\n <td>Payout in form of a Visa debit card</td>\n </tr>\n </tbody>\n</table>\n"
},
"countries": {
"type": "array",
"items": {
"type": "object",
"required": [
"abbr"
],
"properties": {
"abbr": {
"type": "string",
"example": "US",
"description": "ISO 3166 country code"
}
}
},
"example": [
{
"abbr": "US"
}
],
"minItems": 1,
"description": "List of countries in which this product is available to recipients."
},
"disclosure": {
"type": "string",
"example": "<ul><li><p>This card may not be exchanged for cash.</p></li><li><p>…</p></li></ul>",
"description": "Legal disclosures for this product. Can be in HTML format."
},
"description": {
"type": "string",
"description": "Detailed description of the product. Mostly used for products with a `category` of `charities`."
},
"currency_codes": {
"type": "array",
"items": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD"
},
"minItems": 1,
"description": "Available currencies for this product"
}
},
"description": "A product represents one way to payout a reward to it's recipient. Think:\n\n* Amazon.com gift card (ID: `OKMHM2X2OHYV`)\n* Donations to Save the Children (ID: `ESRNAD533W5A`)\n* Virtual Visa debit card (ID: `Q24BD9EZ332JT`)\n\neach of which is one specific product on Tremendous.\n\n> 📘 All available products\n>\n> See this [list](https://www.tremendous.com/catalog)\n\nProducts can be limited in their availability to recipients by\n\n* geography (field `countries`)\n* currency (field `currencies`)\n* amount of the reward (field `skus`)\n * e.g. adidas gift cards accept any amount between 5 and 200 USD.\n\nSee the description of each respective parameter for further details.\n"
}
ProductsGetById401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
ProductsGetById404Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
ProductsGetById429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
ProductsGetById500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
ProductsGetByIdResponse
{
"type": "object",
"title": "GetProductResponse",
"required": [
"product"
],
"properties": {
"product": {
"type": "object",
"required": [
"id",
"name",
"description",
"category",
"disclosure",
"currency_codes",
"countries",
"images"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"name": {
"type": "string",
"description": "Name of the product"
},
"skus": {
"type": "array",
"items": {
"type": "object",
"example": [
{
"max": 100,
"min": 20
}
],
"minItems": 0,
"required": [
"min",
"max"
],
"properties": {
"max": {
"type": "number",
"example": 100,
"minimum": 0,
"description": "Maximum denomination that this product supports (in the product's currency)"
},
"min": {
"type": "number",
"example": 20,
"minimum": 0,
"description": "Minimal denomination that this product supports (in the product's currency)"
}
}
},
"description": "Products may are restricted in their usage based on the amount of the reward. The `skus` array defines bands of denominations in which this product may be used for payouts.\n"
},
"images": {
"type": "array",
"items": {
"type": "object",
"required": [
"src",
"type"
],
"properties": {
"src": {
"type": "string",
"format": "uri",
"description": "URL to this image"
},
"type": {
"enum": [
"card",
"logo"
],
"type": "string",
"description": "Type of image"
}
}
},
"example": [
{
"src": "https://example.com/some-logo.jpg",
"type": "logo"
}
],
"minItems": 0,
"description": "List of product images associated with this product (e.g. logos or images of the gift cards)"
},
"category": {
"enum": [
"ach",
"charity",
"merchant_card",
"paypal",
"venmo",
"visa_card"
],
"type": "string",
"example": "charities",
"description": "The category of this product\n\n<table>\n <thead>\n <tr>\n <th>Category</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>ach</code></td>\n <td>Bank transfer to the recipient</td>\n </tr>\n <tr>\n <td><code>charity</code></td>\n <td>Donations to a charity</td>\n </tr>\n <tr>\n <td><code>merchant_card</code></td>\n <td>A gift card for a certain merchant (e.g. Amazon)</td>\n </tr>\n <tr>\n <td><code>paypal</code></td>\n <td>Payout via PayPal</td>\n </tr>\n <tr>\n <td><code>venmo</code></td>\n <td>Payout via Venmo</td>\n </tr>\n <tr>\n <td><code>visa_card</code></td>\n <td>Payout in form of a Visa debit card</td>\n </tr>\n </tbody>\n</table>\n"
},
"countries": {
"type": "array",
"items": {
"type": "object",
"required": [
"abbr"
],
"properties": {
"abbr": {
"type": "string",
"example": "US",
"description": "ISO 3166 country code"
}
}
},
"example": [
{
"abbr": "US"
}
],
"minItems": 1,
"description": "List of countries in which this product is available to recipients."
},
"disclosure": {
"type": "string",
"example": "<ul><li><p>This card may not be exchanged for cash.</p></li><li><p>…</p></li></ul>",
"description": "Legal disclosures for this product. Can be in HTML format."
},
"description": {
"type": "string",
"description": "Detailed description of the product. Mostly used for products with a `category` of `charities`."
},
"currency_codes": {
"type": "array",
"items": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD"
},
"minItems": 1,
"description": "Available currencies for this product"
}
},
"description": "A product represents one way to payout a reward to it's recipient. Think:\n\n* Amazon.com gift card (ID: `OKMHM2X2OHYV`)\n* Donations to Save the Children (ID: `ESRNAD533W5A`)\n* Virtual Visa debit card (ID: `Q24BD9EZ332JT`)\n\neach of which is one specific product on Tremendous.\n\n> 📘 All available products\n>\n> See this [list](https://www.tremendous.com/catalog)\n\nProducts can be limited in their availability to recipients by\n\n* geography (field `countries`)\n* currency (field `currencies`)\n* amount of the reward (field `skus`)\n * e.g. adidas gift cards accept any amount between 5 and 200 USD.\n\nSee the description of each respective parameter for further details.\n"
}
}
}
ProductsGetList401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
ProductsGetList429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
ProductsGetList500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
ProductsGetListResponse
{
"type": "object",
"title": "ListProductsResponse",
"required": [
"products"
],
"properties": {
"products": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"description",
"category",
"disclosure",
"currency_codes",
"countries",
"images"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"name": {
"type": "string",
"description": "Name of the product"
},
"skus": {
"type": "array",
"items": {
"type": "object",
"example": [
{
"max": 100,
"min": 20
}
],
"minItems": 0,
"required": [
"min",
"max"
],
"properties": {
"max": {
"type": "number",
"example": 100,
"minimum": 0,
"description": "Maximum denomination that this product supports (in the product's currency)"
},
"min": {
"type": "number",
"example": 20,
"minimum": 0,
"description": "Minimal denomination that this product supports (in the product's currency)"
}
}
},
"description": "Products may are restricted in their usage based on the amount of the reward. The `skus` array defines bands of denominations in which this product may be used for payouts.\n"
},
"images": {
"type": "array",
"items": {
"type": "object",
"required": [
"src",
"type"
],
"properties": {
"src": {
"type": "string",
"format": "uri",
"description": "URL to this image"
},
"type": {
"enum": [
"card",
"logo"
],
"type": "string",
"description": "Type of image"
}
}
},
"example": [
{
"src": "https://example.com/some-logo.jpg",
"type": "logo"
}
],
"minItems": 0,
"description": "List of product images associated with this product (e.g. logos or images of the gift cards)"
},
"category": {
"enum": [
"ach",
"charity",
"merchant_card",
"paypal",
"venmo",
"visa_card"
],
"type": "string",
"example": "charities",
"description": "The category of this product\n\n<table>\n <thead>\n <tr>\n <th>Category</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>ach</code></td>\n <td>Bank transfer to the recipient</td>\n </tr>\n <tr>\n <td><code>charity</code></td>\n <td>Donations to a charity</td>\n </tr>\n <tr>\n <td><code>merchant_card</code></td>\n <td>A gift card for a certain merchant (e.g. Amazon)</td>\n </tr>\n <tr>\n <td><code>paypal</code></td>\n <td>Payout via PayPal</td>\n </tr>\n <tr>\n <td><code>venmo</code></td>\n <td>Payout via Venmo</td>\n </tr>\n <tr>\n <td><code>visa_card</code></td>\n <td>Payout in form of a Visa debit card</td>\n </tr>\n </tbody>\n</table>\n"
},
"countries": {
"type": "array",
"items": {
"type": "object",
"required": [
"abbr"
],
"properties": {
"abbr": {
"type": "string",
"example": "US",
"description": "ISO 3166 country code"
}
}
},
"example": [
{
"abbr": "US"
}
],
"minItems": 1,
"description": "List of countries in which this product is available to recipients."
},
"disclosure": {
"type": "string",
"example": "<ul><li><p>This card may not be exchanged for cash.</p></li><li><p>…</p></li></ul>",
"description": "Legal disclosures for this product. Can be in HTML format."
},
"description": {
"type": "string",
"description": "Detailed description of the product. Mostly used for products with a `category` of `charities`."
},
"currency_codes": {
"type": "array",
"items": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD"
},
"minItems": 1,
"description": "Available currencies for this product"
}
},
"description": "A product represents one way to payout a reward to it's recipient. Think:\n\n* Amazon.com gift card (ID: `OKMHM2X2OHYV`)\n* Donations to Save the Children (ID: `ESRNAD533W5A`)\n* Virtual Visa debit card (ID: `Q24BD9EZ332JT`)\n\neach of which is one specific product on Tremendous.\n\n> 📘 All available products\n>\n> See this [list](https://www.tremendous.com/catalog)\n\nProducts can be limited in their availability to recipients by\n\n* geography (field `countries`)\n* currency (field `currencies`)\n* amount of the reward (field `skus`)\n * e.g. adidas gift cards accept any amount between 5 and 200 USD.\n\nSee the description of each respective parameter for further details.\n"
}
}
}
}
Recipient
{
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe Jr.",
"description": "Name of the recipient"
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "Email address of the recipient"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +)."
}
},
"description": "Details of the recipient of the reward"
}
RefundDetails
{
"type": "object",
"required": [
"total"
],
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 52.5,
"minimum": 0,
"readOnly": true,
"description": "Total amount of the order refunds (in USD)"
}
}
}
Reward
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the reward"
},
"value": {
"type": "object",
"example": {
"denomination": 50,
"currency_code": "USD"
},
"required": [
"denomination",
"currency_code"
],
"properties": {
"denomination": {
"type": "number",
"format": "double",
"description": "Amount of the reward"
},
"currency_code": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD",
"description": "Currency of the reward"
}
}
},
"delivery": {
"type": "object",
"required": [
"method",
"status"
],
"properties": {
"method": {
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
},
"status": {
"enum": [
"SCHEDULED",
"FAILED",
"SUCCEEDED",
"PENDING"
],
"type": "string",
"readOnly": true,
"description": "Current status of the delivery of the reward:\n\n* `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon.\n* `FAILED` - Delivery of reward failed (e.g. email bounced).\n* `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link opened).\n* `PENDING` - Delivery is pending but not yet scheduled.\n"
}
},
"description": "Details on how the reward is delivered to the recipient.\n"
},
"order_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the order this reward is part of."
},
"products": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": false,
"writeOnly": true
},
"minItems": 1,
"writeOnly": true,
"description": "List of IDs of product (different gift cards, charity, etc.) that will be available\nto the recipient to choose from.\n\nProviding a `products` array will override the products made available by the campaign\nspecified using the `campaign_id` property unless the `products` array is empty. It will\n_not_ override other campaign attributes, like the message and customization of the look and feel.\n"
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe Jr.",
"description": "Name of the recipient"
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "Email address of the recipient"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +)."
}
},
"description": "Details of the recipient of the reward"
},
"created_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "Date the reward was created"
},
"deliver_at": {
"type": "string",
"format": "date",
"example": "2023-12-31",
"pattern": "YYYY-MM-DD",
"description": "Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored."
},
"campaign_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"readOnly": false,
"writeOnly": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": false,
"description": "Tremendous ID of the custom field"
},
"label": {
"type": "string",
"example": "harry_potter_house",
"readOnly": false,
"description": "Label of the custom field"
},
"value": {
"type": "string",
"example": "Hufflepuff",
"nullable": true,
"readOnly": false,
"description": "Value of the custom field"
}
},
"description": "Reward custom data for searching, tracking or copy (see [Adding custom fields to orders](https://developers.tremendous.com/reference/using-custom-fields-to-add-custom-data-to-rewards).)"
}
}
},
"description": "A single reward, sent to a recipient. A reward is always part of an order.\n\nEither `products` or `campaign_id` must be specified.\n"
}
RewardBase
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the reward"
},
"value": {
"type": "object",
"example": {
"denomination": 50,
"currency_code": "USD"
},
"required": [
"denomination",
"currency_code"
],
"properties": {
"denomination": {
"type": "number",
"format": "double",
"description": "Amount of the reward"
},
"currency_code": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD",
"description": "Currency of the reward"
}
}
},
"order_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the order this reward is part of."
},
"products": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": false,
"writeOnly": true
},
"minItems": 1,
"writeOnly": true,
"description": "List of IDs of product (different gift cards, charity, etc.) that will be available\nto the recipient to choose from.\n\nProviding a `products` array will override the products made available by the campaign\nspecified using the `campaign_id` property unless the `products` array is empty. It will\n_not_ override other campaign attributes, like the message and customization of the look and feel.\n"
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe Jr.",
"description": "Name of the recipient"
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "Email address of the recipient"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +)."
}
},
"description": "Details of the recipient of the reward"
},
"created_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "Date the reward was created"
},
"deliver_at": {
"type": "string",
"format": "date",
"example": "2023-12-31",
"pattern": "YYYY-MM-DD",
"description": "Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored."
},
"campaign_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"readOnly": false,
"writeOnly": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": false,
"description": "Tremendous ID of the custom field"
},
"label": {
"type": "string",
"example": "harry_potter_house",
"readOnly": false,
"description": "Label of the custom field"
},
"value": {
"type": "string",
"example": "Hufflepuff",
"nullable": true,
"readOnly": false,
"description": "Value of the custom field"
}
},
"description": "Reward custom data for searching, tracking or copy (see [Adding custom fields to orders](https://developers.tremendous.com/reference/using-custom-fields-to-add-custom-data-to-rewards).)"
}
}
},
"description": "A single reward, sent to a recipient. A reward is always part of an order.\n\nEither `products` or `campaign_id` must be specified.\n"
}
RewardForOrderCreate
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the reward"
},
"value": {
"type": "object",
"example": {
"denomination": 50,
"currency_code": "USD"
},
"required": [
"denomination",
"currency_code"
],
"properties": {
"denomination": {
"type": "number",
"format": "double",
"description": "Amount of the reward"
},
"currency_code": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD",
"description": "Currency of the reward"
}
}
},
"delivery": {
"type": "object",
"properties": {
"method": {
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
}
},
"description": "Details on how the reward is delivered to the recipient.\n"
},
"language": {
"type": "string",
"example": "de",
"description": "Set this to translate the redemption experience for this reward. Pass a 2-letter [ISO-639-1 code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) for the desired language. Defaults to `en`.\n"
},
"order_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the order this reward is part of."
},
"products": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": false,
"writeOnly": true
},
"minItems": 1,
"writeOnly": true,
"description": "List of IDs of product (different gift cards, charity, etc.) that will be available\nto the recipient to choose from.\n\nProviding a `products` array will override the products made available by the campaign\nspecified using the `campaign_id` property unless the `products` array is empty. It will\n_not_ override other campaign attributes, like the message and customization of the look and feel.\n"
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe Jr.",
"description": "Name of the recipient"
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "Email address of the recipient"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +)."
}
},
"description": "Details of the recipient of the reward"
},
"created_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "Date the reward was created"
},
"deliver_at": {
"type": "string",
"format": "date",
"example": "2023-12-31",
"pattern": "YYYY-MM-DD",
"description": "Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored."
},
"campaign_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"readOnly": false,
"writeOnly": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": false,
"description": "Tremendous ID of the custom field"
},
"label": {
"type": "string",
"example": "harry_potter_house",
"readOnly": false,
"description": "Label of the custom field"
},
"value": {
"type": "string",
"example": "Hufflepuff",
"nullable": true,
"readOnly": false,
"description": "Value of the custom field"
}
},
"description": "Reward custom data for searching, tracking or copy (see [Adding custom fields to orders](https://developers.tremendous.com/reference/using-custom-fields-to-add-custom-data-to-rewards).)"
}
}
},
"description": "A single reward, sent to a recipient. A reward is always part of an order.\n\nEither `products` or `campaign_id` must be specified.\n"
}
RewardLink
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the reward"
},
"link": {
"type": "string",
"example": "https://testflight.tremendous.com/rewards/payout/ve0jrwn6q--ba1eoadem8ayukldsygyrlbikascdgsh",
"readOnly": true,
"description": "Link to redeem the reward at. You need to deliver this link to the recipient.\n"
}
},
"description": "The redemption link for a reward."
}
RewardToken
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the reward"
},
"token": {
"type": "string",
"example": "ve0jrwn6q--ba1eoadem8ayukldsygyrlbikascdgsh",
"readOnly": true,
"description": "The token to redeem the reward.\n"
},
"expires_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "Date the token expires"
}
},
"description": "The redemption token for a reward."
}
RewardValue
{
"type": "object",
"example": {
"denomination": 50,
"currency_code": "USD"
},
"required": [
"denomination",
"currency_code"
],
"properties": {
"denomination": {
"type": "number",
"format": "double",
"description": "Amount of the reward"
},
"currency_code": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD",
"description": "Currency of the reward"
}
}
}
RewardWithLink
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the reward"
},
"value": {
"type": "object",
"example": {
"denomination": 50,
"currency_code": "USD"
},
"required": [
"denomination",
"currency_code"
],
"properties": {
"denomination": {
"type": "number",
"format": "double",
"description": "Amount of the reward"
},
"currency_code": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD",
"description": "Currency of the reward"
}
}
},
"delivery": {
"type": "object",
"required": [
"method",
"status"
],
"properties": {
"link": {
"type": "string",
"example": "https://testflight.tremendous.com/rewards/payout/z67jic92r",
"readOnly": true,
"description": "Link to redeem the reward at. You need to deliver this link to the recipient.\n\nOnly available for rewards for which the `method` for delivery is set to `LINK`.\n"
},
"method": {
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
},
"status": {
"enum": [
"SCHEDULED",
"FAILED",
"SUCCEEDED",
"PENDING"
],
"type": "string",
"readOnly": true,
"description": "Current status of the delivery of the reward:\n\n* `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon.\n* `FAILED` - Delivery of reward failed (e.g. email bounced).\n* `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link opened).\n* `PENDING` - Delivery is pending but not yet scheduled.\n"
}
},
"description": "Details on how the reward is delivered to the recipient.\n"
},
"order_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the order this reward is part of."
},
"products": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": false,
"writeOnly": true
},
"minItems": 1,
"writeOnly": true,
"description": "List of IDs of product (different gift cards, charity, etc.) that will be available\nto the recipient to choose from.\n\nProviding a `products` array will override the products made available by the campaign\nspecified using the `campaign_id` property unless the `products` array is empty. It will\n_not_ override other campaign attributes, like the message and customization of the look and feel.\n"
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe Jr.",
"description": "Name of the recipient"
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "Email address of the recipient"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +)."
}
},
"description": "Details of the recipient of the reward"
},
"created_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "Date the reward was created"
},
"deliver_at": {
"type": "string",
"format": "date",
"example": "2023-12-31",
"pattern": "YYYY-MM-DD",
"description": "Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored."
},
"campaign_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"readOnly": false,
"writeOnly": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": false,
"description": "Tremendous ID of the custom field"
},
"label": {
"type": "string",
"example": "harry_potter_house",
"readOnly": false,
"description": "Label of the custom field"
},
"value": {
"type": "string",
"example": "Hufflepuff",
"nullable": true,
"readOnly": false,
"description": "Value of the custom field"
}
},
"description": "Reward custom data for searching, tracking or copy (see [Adding custom fields to orders](https://developers.tremendous.com/reference/using-custom-fields-to-add-custom-data-to-rewards).)"
}
}
},
"description": "A single reward, sent to a recipient. A reward is always part of an order.\n\nEither `products` or `campaign_id` must be specified.\n"
}
RewardWithoutLink
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the reward"
},
"value": {
"type": "object",
"example": {
"denomination": 50,
"currency_code": "USD"
},
"required": [
"denomination",
"currency_code"
],
"properties": {
"denomination": {
"type": "number",
"format": "double",
"description": "Amount of the reward"
},
"currency_code": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD",
"description": "Currency of the reward"
}
}
},
"delivery": {
"type": "object",
"required": [
"method",
"status"
],
"properties": {
"method": {
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
},
"status": {
"enum": [
"SCHEDULED",
"FAILED",
"SUCCEEDED",
"PENDING"
],
"type": "string",
"readOnly": true,
"description": "Current status of the delivery of the reward:\n\n* `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon.\n* `FAILED` - Delivery of reward failed (e.g. email bounced).\n* `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link opened).\n* `PENDING` - Delivery is pending but not yet scheduled.\n"
}
},
"description": "Details on how the reward is delivered to the recipient.\n"
},
"order_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true,
"description": "Tremendous ID of the order this reward is part of."
},
"products": {
"type": "array",
"items": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": false,
"writeOnly": true
},
"minItems": 1,
"writeOnly": true,
"description": "List of IDs of product (different gift cards, charity, etc.) that will be available\nto the recipient to choose from.\n\nProviding a `products` array will override the products made available by the campaign\nspecified using the `campaign_id` property unless the `products` array is empty. It will\n_not_ override other campaign attributes, like the message and customization of the look and feel.\n"
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe Jr.",
"description": "Name of the recipient"
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "Email address of the recipient"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +)."
}
},
"description": "Details of the recipient of the reward"
},
"created_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "Date the reward was created"
},
"deliver_at": {
"type": "string",
"format": "date",
"example": "2023-12-31",
"pattern": "YYYY-MM-DD",
"description": "Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored."
},
"campaign_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"nullable": true,
"readOnly": false,
"writeOnly": true,
"description": "ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.)\nthat the recipient can choose from.\n"
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": false,
"description": "Tremendous ID of the custom field"
},
"label": {
"type": "string",
"example": "harry_potter_house",
"readOnly": false,
"description": "Label of the custom field"
},
"value": {
"type": "string",
"example": "Hufflepuff",
"nullable": true,
"readOnly": false,
"description": "Value of the custom field"
}
},
"description": "Reward custom data for searching, tracking or copy (see [Adding custom fields to orders](https://developers.tremendous.com/reference/using-custom-fields-to-add-custom-data-to-rewards).)"
}
}
},
"description": "A single reward, sent to a recipient. A reward is always part of an order.\n\nEither `products` or `campaign_id` must be specified.\n"
}
RewardsGenerateEmbedToken401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsGenerateEmbedToken404Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsGenerateEmbedToken429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsGenerateEmbedToken500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsGenerateEmbedTokenResponse
{
"type": "object",
"required": [
"reward"
],
"properties": {
"reward": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the reward"
},
"token": {
"type": "string",
"example": "ve0jrwn6q--ba1eoadem8ayukldsygyrlbikascdgsh",
"description": "The token to redeem the reward.\n"
},
"expires_at": {
"type": "string",
"format": "date-time",
"description": "Date the token expires"
}
},
"description": "The redemption token for a reward."
}
}
}
RewardsGenerateLink401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsGenerateLink403Response
{
"type": "object",
"example": {
"errors": {
"message": "Unsupported operation for this reward.",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsGenerateLink404Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsGenerateLink429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsGenerateLink500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsGenerateLinkResponse
{
"type": "object",
"required": [
"reward"
],
"properties": {
"reward": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the reward"
},
"link": {
"type": "string",
"example": "https://testflight.tremendous.com/rewards/payout/ve0jrwn6q--ba1eoadem8ayukldsygyrlbikascdgsh",
"description": "Link to redeem the reward at. You need to deliver this link to the recipient.\n"
}
},
"description": "The redemption link for a reward."
}
}
}
RewardsGetSingleReward401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsGetSingleReward404Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsGetSingleReward429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsGetSingleReward500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsGetSingleRewardResponse
{
"type": "object",
"required": [
"reward"
],
"properties": {
"reward": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the reward"
},
"value": {
"type": "object",
"example": {
"denomination": 50,
"currency_code": "USD"
},
"required": [
"denomination",
"currency_code"
],
"properties": {
"denomination": {
"type": "number",
"format": "double",
"description": "Amount of the reward"
},
"currency_code": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD",
"description": "Currency of the reward"
}
}
},
"delivery": {
"type": "object",
"required": [
"method",
"status"
],
"properties": {
"method": {
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
},
"status": {
"enum": [
"SCHEDULED",
"FAILED",
"SUCCEEDED",
"PENDING"
],
"type": "string",
"description": "Current status of the delivery of the reward:\n\n* `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon.\n* `FAILED` - Delivery of reward failed (e.g. email bounced).\n* `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link opened).\n* `PENDING` - Delivery is pending but not yet scheduled.\n"
}
},
"description": "Details on how the reward is delivered to the recipient.\n"
},
"order_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the order this reward is part of."
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe Jr.",
"description": "Name of the recipient"
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "Email address of the recipient"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +)."
}
},
"description": "Details of the recipient of the reward"
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Date the reward was created"
},
"deliver_at": {
"type": "string",
"format": "date",
"example": "2023-12-31",
"pattern": "YYYY-MM-DD",
"description": "Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the custom field"
},
"label": {
"type": "string",
"example": "harry_potter_house",
"description": "Label of the custom field"
},
"value": {
"type": "string",
"example": "Hufflepuff",
"nullable": true,
"description": "Value of the custom field"
}
},
"description": "Reward custom data for searching, tracking or copy (see [Adding custom fields to orders](https://developers.tremendous.com/reference/using-custom-fields-to-add-custom-data-to-rewards).)"
}
}
},
"description": "A single reward, sent to a recipient. A reward is always part of an order.\n\nEither `products` or `campaign_id` must be specified.\n"
}
}
}
RewardsListAllRewards401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsListAllRewards429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsListAllRewards500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsListAllRewardsResponse
{
"type": "object",
"properties": {
"rewards": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the reward"
},
"value": {
"type": "object",
"example": {
"denomination": 50,
"currency_code": "USD"
},
"required": [
"denomination",
"currency_code"
],
"properties": {
"denomination": {
"type": "number",
"format": "double",
"description": "Amount of the reward"
},
"currency_code": {
"enum": [
"USD",
"CAD",
"EUR",
"AED",
"AFN",
"ALL",
"AMD",
"ARS",
"AUD",
"AZN",
"BAM",
"BDT",
"BGN",
"BHD",
"BIF",
"BND",
"BOB",
"BRL",
"BWP",
"BYR",
"BZD",
"CDF",
"CHF",
"CLP",
"CNY",
"COP",
"CRC",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EEK",
"EGP",
"ERN",
"ETB",
"GBP",
"GEL",
"GHS",
"GNF",
"GTQ",
"HKD",
"HNL",
"HRK",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KHR",
"KRW",
"KWD",
"KZT",
"LBP",
"LKR",
"LTL",
"LVL",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MOP",
"MUR",
"MXN",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SDG",
"SEK",
"SGD",
"SOS",
"SYP",
"THB",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"UYU",
"UZS",
"VEF",
"VND",
"XAF",
"XOF",
"YER",
"ZAR",
"ZMK"
],
"type": "string",
"example": "USD",
"description": "Currency of the reward"
}
}
},
"delivery": {
"type": "object",
"required": [
"method",
"status"
],
"properties": {
"method": {
"enum": [
"EMAIL",
"LINK",
"PHONE"
],
"type": "string",
"description": "How to deliver the reward to the recipient.\n\n<table>\n <thead>\n <tr>\n <th>Delivery Method</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>EMAIL</code></td>\n <td>Deliver the reward to the recipient by email</td>\n </tr>\n <tr>\n <td><code>LINK</code></td>\n <td>\n <p>Deliver the reward to the recipient via a link.</p>\n <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p>\n </td>\n </tr>\n <tr>\n <td><code>PHONE</code></td>\n <td>Deliver the reward to the recipient by SMS</td>\n </tr>\n </tbody>\n</table>\n"
},
"status": {
"enum": [
"SCHEDULED",
"FAILED",
"SUCCEEDED",
"PENDING"
],
"type": "string",
"description": "Current status of the delivery of the reward:\n\n* `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon.\n* `FAILED` - Delivery of reward failed (e.g. email bounced).\n* `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link opened).\n* `PENDING` - Delivery is pending but not yet scheduled.\n"
}
},
"description": "Details on how the reward is delivered to the recipient.\n"
},
"order_id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the order this reward is part of."
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe Jr.",
"description": "Name of the recipient"
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "Email address of the recipient"
},
"phone": {
"type": "string",
"example": "123-456-7890",
"description": "Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +)."
}
},
"description": "Details of the recipient of the reward"
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Date the reward was created"
},
"deliver_at": {
"type": "string",
"format": "date",
"example": "2023-12-31",
"pattern": "YYYY-MM-DD",
"description": "Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"description": "Tremendous ID of the custom field"
},
"label": {
"type": "string",
"example": "harry_potter_house",
"description": "Label of the custom field"
},
"value": {
"type": "string",
"example": "Hufflepuff",
"nullable": true,
"description": "Value of the custom field"
}
},
"description": "Reward custom data for searching, tracking or copy (see [Adding custom fields to orders](https://developers.tremendous.com/reference/using-custom-fields-to-add-custom-data-to-rewards).)"
}
}
},
"description": "A single reward, sent to a recipient. A reward is always part of an order.\n\nEither `products` or `campaign_id` must be specified.\n"
}
},
"total_count": {
"type": "integer",
"example": 1,
"description": "The total number of rewards across all pages"
}
}
}
RewardsResendRewardById401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsResendRewardById404Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsResendRewardById422Response
{
"type": "object",
"example": {
"errors": {
"message": "Order failed: validation failure",
"payload": {
"some_field": {
"some_sub_field": "Something went wrong with this parameter"
}
}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsResendRewardById429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsResendRewardById500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
RewardsResendRewardByIdResponse
{
"type": "object",
"example": {},
"properties": {}
}
TremendousId
{
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true
}
Webhook
{
"type": "object",
"required": [
"url"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}",
"readOnly": true
},
"url": {
"type": "string",
"format": "uri",
"example": "https://example.com/webhook",
"nullable": true,
"description": "URL the webhook will make requests to"
},
"private_key": {
"type": "string",
"example": "jXjdU8dozx571TG6YzL4",
"readOnly": true,
"description": "Private key for the webhook"
}
}
}
WebhookPost
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"example": "https://example.com/webhook",
"description": "URL the webhook will make requests to"
}
}
}
WebhooksCreateWebhook400Response
{
"type": "object",
"example": {
"errors": {
"message": "Order failed: validation failure",
"payload": {
"some_field": {
"some_sub_field": "Something went wrong with this parameter"
}
}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
WebhooksCreateWebhook401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
WebhooksCreateWebhook429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
WebhooksCreateWebhook500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
WebhooksCreateWebhookRequest
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"example": "https://example.com/webhook",
"description": "URL the webhook will make requests to"
}
}
}
WebhooksCreateWebhookResponse
{
"type": "object",
"properties": {
"webhook": {
"type": "object",
"required": [
"url"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"url": {
"type": "string",
"format": "uri",
"example": "https://example.com/webhook",
"nullable": true,
"description": "URL the webhook will make requests to"
},
"private_key": {
"type": "string",
"example": "jXjdU8dozx571TG6YzL4",
"description": "Private key for the webhook"
}
}
}
}
}
WebhooksGetDetails200Response
{
"type": "object",
"properties": {
"webhook": {
"type": "object",
"required": [
"url"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"url": {
"type": "string",
"format": "uri",
"example": "https://example.com/webhook",
"nullable": true,
"description": "URL the webhook will make requests to"
},
"private_key": {
"type": "string",
"example": "jXjdU8dozx571TG6YzL4",
"description": "Private key for the webhook"
}
}
}
}
}
WebhooksGetDetails401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
WebhooksGetDetails404Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
WebhooksGetDetails429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
WebhooksGetDetails500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
WebhooksGetDetailsResponse
{
"type": "object",
"properties": {
"webhooks": {
"type": "array",
"items": {
"type": "object",
"required": [
"url"
],
"properties": {
"id": {
"type": "string",
"example": "SOMEIDSOMEID",
"pattern": "[A-Z0-9]{4,20}"
},
"url": {
"type": "string",
"format": "uri",
"example": "https://example.com/webhook",
"nullable": true,
"description": "URL the webhook will make requests to"
},
"private_key": {
"type": "string",
"example": "jXjdU8dozx571TG6YzL4",
"description": "Private key for the webhook"
}
}
}
}
}
}
WebhooksListEvents401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
WebhooksListEvents404Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
WebhooksListEvents429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
WebhooksListEvents500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
WebhooksListEventsResponse
{
"type": "object",
"properties": {
"events": {
"type": "array",
"items": {
"type": "string",
"example": "CAMPAIGNS.CREATED"
}
}
}
}
WebhooksTriggerEvent401Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
WebhooksTriggerEvent404Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
WebhooksTriggerEvent422Response
{
"type": "object",
"example": {
"errors": {
"message": "Order failed: validation failure",
"payload": {
"some_field": {
"some_sub_field": "Something went wrong with this parameter"
}
}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
WebhooksTriggerEvent429Response
{
"type": "object",
"example": {
"errors": {
"message": "Too many requests",
"payload": {}
}
},
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
WebhooksTriggerEvent500Response
{
"type": "object",
"required": [
"errors"
],
"properties": {
"errors": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message"
},
"payload": {
"type": "object",
"example": {
"rewards": {
"catalog": "At least one valid product required"
}
},
"description": "Mirrors the request parameters structure, filled only with the (nested) properties that caused an error."
}
}
}
}
}
WebhooksTriggerEventRequest
{
"type": "object",
"required": [
"event"
],
"properties": {
"event": {
"type": "string",
"example": "INVOICES.PAID",
"description": "The event to test. See the [List events endpoint reference](https://developers.tremendous.com/) for all available events."
}
}
}
WebhooksTriggerEventResponse
{
"type": "string",
"description": "Empty body"
}