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. |
List of all transactions on this account
Authorization error e.g. due to an invalid or missing API key.
Validation error of the sent parameters or request body
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
GET /balance_transactions
/campaigns
Retrieve a list of all campaigns created in your account
List of all campaigns in your organization’s account.
Authorization error e.g. due to an invalid or missing API key.
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
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 |
Requested campaign
Authorization error e.g. due to an invalid or missing API key.
No resource could be found for the provided ID
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
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.
List of all fields
Authorization error e.g. due to an invalid or missing API key.
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
GET /fields
/funding_sources
Retrieve a list of all funding sources available for ordering through the API in your organization’s account.
List of all funding sources available in your organization’s account.
Authorization error e.g. due to an invalid or missing API key.
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
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 |
Requested funding source
Authorization error e.g. due to an invalid or missing API key.
No resource could be found for the provided ID
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
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. |
List of all invoices in state PAID or OPEN
Authorization error e.g. due to an invalid or missing API key.
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
GET /invoices
/invoices
Creating an invoice is the way for your organization to fund your account’s balance.
| Property | Type | Description |
|---|---|---|
po_number
| string | Reference to the purchase order number within your organization |
amount
| number double | Amount of the invoice in USD |
memo
| string | A note to be included in the invoice. This is for your internal use and will not be visible to the recipient. |
Invoice details
application/json
InvoicesCreateAndFundAccountBalanceRequest
| Property | Type | Required |
|---|---|---|
| memo | string | optional |
| amount | number | required |
| po_number | string | optional |
An invoice (to be overwritten in specific reponses)
The invoice couldn’t be created
Authorization error e.g. due to an invalid or missing API key.
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
POST /invoices
/invoices/{id}
Removes an invoice. This has no further consequences but is a rather cosmetic operation.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the invoice that should be retrieved |
An invoice (to be overwritten in specific reponses)
Authorization error e.g. due to an invalid or missing API key.
No resource could be found for the provided ID
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
DELETE /invoices/{id}
/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 |
An invoice (to be overwritten in specific reponses)
Authorization error e.g. due to an invalid or missing API key.
No resource could be found for the provided ID
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
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 |
CSV for the specified Invoice
The invoice can’t be exported to CSV because it isn’t associated with any rewards
Authorization error e.g. due to an invalid or missing API key.
No resource could be found for the provided ID
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
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 |
PDF for the specified Invoice
Authorization error e.g. due to an invalid or missing API key.
No resource could be found for the provided ID
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
GET /invoices/{id}/pdf
/members
To list members of a sub-organization create an API key for that organization first, then use the new API key in the list members request.
List of all members
Authorization error e.g. due to an invalid or missing API key.
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
GET /members
/members
Each organization has one or more users that can access and manage that organization. These users are called members.
Members can take actions via the Tremendous web dashboard directly. These actions include adding funding sources to the organization, creating Campaigns, and more.
Members can have one of two roles that determine their permissions within the organization:
MEMBER: Limited permissions. Can view their own reward and order histories only.ADMIN: Update organization settings, invite other members to the organization, and view all member order and reward histories within their organization.To create members of a sub-organizations create an API key for that organization first, then use the new API key in the create member request.
After creating a member, an automatic invite is sent to the email address. If the user is not registered yet, that person will then need to sign up for a Tremendous account.
❗️ Automatic invitations are not available in the sandbox
You must manually use the returned
invite_urlfield in the payload instead.
Member details
application/json
MembersCreateNewMemberRequest
| Property | Type | Required |
|---|---|---|
| name | string | required |
| role | string | required |
| string | required |
A member (to be overwritten in specific responses)
Validation error of the sent parameters or request body
Authorization error e.g. due to an invalid or missing API key.
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
POST /members
/members/{id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the member to retrieve |
Details on the retrieved member
Authorization error e.g. due to an invalid or missing API key.
No resource could be found for the provided ID
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
GET /members/{id}
/order_approvals/{id}/approve
Approves an order that is pending review, identified by the given id in the URL.
Approvals is a feature that requires orders to be approved by an organization admin
before they are sent out. To enable approvals for your organization, please enable
‘Allow approvals via API’ via the organization’’s ‘Order Approvals’ settings from the Tremendous dashboard.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the order that should be approved. In case the order has an |
An order (to be overwritten in specific reponses)
Authorization error e.g. due to an invalid or missing API key.
Not enough funds in your account. Please send another approval request after you have deposited sufficient funds into your balance.
API approvals are not enabled. Enable ‘Allow approvals via API’ in the organization’s settings on the Tremendous dashboard.
No resource could be found for the provided ID
Validation error of the sent parameters or request body
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
POST /order_approvals/{id}/approve
/order_approvals/{id}/reject
Rejects an order that is pending review, identified by the given id in the URL.
Approvals is a feature that requires orders to be approved by an organization admin
before they are sent out. To enable approvals for your organization, please enable
‘Allow approvals via API’ via the organization’’s ‘Order Approvals’ settings from the Tremendous dashboard.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the order that should be rejected. In case the order has an |
An order (to be overwritten in specific reponses)
Authorization error e.g. due to an invalid or missing API key.
API approvals are not enabled for this organization. Enable “Allow approvals via API” via the organization’s order approval settings from the Tremendous dashboard.
No resource could be found for the provided ID
Validation error of the sent parameters or request body
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
POST /order_approvals/{id}/reject
/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. |
List of existing orders. Ordered by creation date (DESC).
Authorization error e.g. due to an invalid or missing API key.
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
GET /orders
/orders
Every time you want to send out a reward through Tremendous you need to create an order for it.
📘 Getting started with your first order
Our step-by-step guide walks you through everything you need
to send your first gift card through the Tremendous API:
| Property | Type | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
external_id
| string | Reference for this order, supplied by the customer. When set, It also allows for retrieving by | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
payment
| object | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Show object properties
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reward
| object | A single reward, sent to a recipient. A reward is always part of an order. Either | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Show object properties
|
Order to create
application/json
OrdersCreateOrderRequest
| Property | Type | Required |
|---|---|---|
| reward | object | required |
| └ value | object | optional |
| └ denomination | number | required |
| └ currency_code | string | required |
| └ delivery | object | optional |
| └ method | string | optional |
| └ language | string | optional |
| └ products | array | optional |
| └ recipient | object | optional |
| └ name | string | optional |
| string | optional | |
| └ phone | string | optional |
| └ deliver_at | string | optional |
| └ campaign_id | string | optional |
| └ custom_fields | array | optional |
| └ id | string | optional |
| └ label | string | optional |
| └ value | string | optional |
| payment | object | required |
| └ funding_source_id | string | required |
| external_id | string | optional |
An order (to be overwritten in specific reponses)
An order (to be overwritten in specific reponses)
An order (to be overwritten in specific reponses)
Validation error of the sent parameters or request body
Authorization error e.g. due to an invalid or missing API key.
Not enough funds to carry out the request. Please top-up your account
Validation error of the sent parameters or request body
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
POST /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 |
An order (to be overwritten in specific reponses)
Authorization error e.g. due to an invalid or missing API key.
No resource could be found for the provided ID
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
GET /orders/{id}
/organizations
The returned list only includes the organization to which the API key belongs to, that is used for the request.
List of all organizations
Authorization error e.g. due to an invalid or missing API key.
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
GET /organizations
/organizations
Organizations are a way to separate different parts of your business within the same Tremendous account.
You can assign users in your Tremendous team as members to any organization. Users can be members of multiple organizations at once.
API keys belong to a single organization. The API key used in a request determines on behalf of which organization the request is carried out.
Important note: When creating an organization, you are required to either pass with_api_key or copy_settings[user] in the request body as true. This ensures that your new Organization can either be accessed via the API or the Dashboard.
Organization details
application/json
OrganizationsCreateNewOrganizationRequest
| Property | Type | Required |
|---|---|---|
| name | string | required |
| phone | string | optional |
| website | string | required |
| with_api_key | boolean | optional |
| copy_settings | object | optional |
| └ users | boolean | optional |
| └ campaigns | boolean | optional |
| └ custom_fields | boolean | optional |
| └ order_approvals | boolean | optional |
| └ payment_methods | boolean | optional |
| └ fraud_prevention | boolean | optional |
| └ security_settings | boolean | optional |
The created organization
Validation error of the sent parameters or request body
Authorization error e.g. due to an invalid or missing API key.
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
POST /organizations
/organizations/create_api_key
Creates a new API key. The API key used to make the request will remain active.
Created API keys are generated randomly and returned in the response. You cannot retrieve them again.
The created API key
Authorization error e.g. due to an invalid or missing API key.
No resource could be found for the provided ID
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
POST /organizations/create_api_key
/organizations/{id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the organization to retrieve |
An organization (to be overwritten in specific responses)
Authorization error e.g. due to an invalid or missing API key.
No resource could be found for the provided ID
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
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, used to only retrieve products available in the provided countries |
| currency | query | optional | string | Comma-separated list of currency codes, used to only retrieve products available in the provided currencies |
List of available products.
Authorization error e.g. due to an invalid or missing API key.
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
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 |
Requested product
Authorization error e.g. due to an invalid or missing API key.
No resource could be found for the provided ID
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
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). |
List of existing rewards. Ordered by creation date (DESC).
Authorization error e.g. due to an invalid or missing API key.
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
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 |
A reward (to be overwritten in specific reponses)
Authorization error e.g. due to an invalid or missing API key.
No resource could be found for the provided ID
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
GET /rewards/{id}
/rewards/{id}/generate_embed_token
Generate a temporary reward token identified by the id in the URL.
These tokens are needed to render a reward when using Tremendous Embed.
The token is valid for 24 hours.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the reward |
A redemption token for a reward
Authorization error e.g. due to an invalid or missing API key.
No resource could be found for the provided ID
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
POST /rewards/{id}/generate_embed_token
/rewards/{id}/generate_link
Generate a redemption link for the reward identified by the id in the URL
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the reward |
A redemption link for a reward
Authorization error e.g. due to an invalid or missing API key.
Operation not permitted; only rewards that are of type link support this operation
No resource could be found for the provided ID
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
POST /rewards/{id}/generate_link
/rewards/{id}/resend
Resends a reward, identified by the given id in the URL, to its recipient.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the reward that should be resent |
Reward will be resent.
Authorization error e.g. due to an invalid or missing API key.
No resource could be found for the provided ID
Validation error of the sent parameters or request body
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
POST /rewards/{id}/resend
/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
List of configured webhooks (never more than 1 webhook)
Authorization error e.g. due to an invalid or missing API key.
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
GET /webhooks
/webhooks
Tremendous uses webhooks as a notification system for various events that happen in your account.
📘 Learn more about Webhooks
Our guide explains everything you need to know about the Tremendous webhooks:
Read it here
Every organization can define a single webhook endpoint where we send requests to, whenever an event happens.
This endpoint allows you to setup that endpoint. The URL of the endpoint can be changed by making a request to this endpoint again with the new URL.
| Property | Type | Description |
|---|---|---|
url
| string uri | URL the webhook will make requests to |
Webhook details
application/json
WebhooksCreateWebhookRequest
| Property | Type | Required |
|---|---|---|
| url | string | required |
A webhook (to be overwritten in specific responses)
Validation error of the sent parameters or request body
Authorization error e.g. due to an invalid or missing API key.
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
POST /webhooks
/webhooks/{id}
📘 Learn more about Webhooks
Our guide explains everything you need to know about the Tremendous webhooks:
Read it here
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the webhook to retrieve |
A webhook (to be overwritten in specific responses)
Authorization error e.g. due to an invalid or missing API key.
No resource could be found for the provided ID
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the webhook to list the events for |
List of all possible event types
Authorization error e.g. due to an invalid or missing API key.
No resource could be found for the provided ID
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
GET /webhooks/{id}/events
/webhooks/{id}/simulate
Making a request to this endpoint will cause our system to trigger a webhook for the specified event. This can be very useful when testing the setup that processes webhooks on your end.
📘 Learn more about Webhooks
Our guide explains everything you need to know about the Tremendous webhooks:
Read it here
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | ID of the webhook to test |
Webhook details
application/json
WebhooksTriggerEventRequest
| Property | Type | Required |
|---|---|---|
| event | string | required |
Webhook simulation triggered successfully
Authorization error e.g. due to an invalid or missing API key.
No resource could be found for the provided ID
Validation error of the sent parameters or request body
Rate limit exceeded, this request was not processed. Future requests may not be processed, until your account drops below the rate limit threshold, again.
The server encountered an unexpected error or couldn’t fulfill the request in time.
POST /webhooks/{id}/simulate
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."
}
}
}
}
}