Products
Operations related to products
Retrieves information about all products in your store. Use the page parameter to paginate results. Set details to true to include detailed product information. Set only_enabled to true to retrieve only enabled products.
Authorization:
Requires a valid JWT Bearer token.
The token must include the permission:
read-products.
The page number to retrieve.
1The maximum number of elements per page. This number must be between 5-50.
50Enable detailed response for each product.
falseInclude only enabled products.
falseLimit products to a specific category ID.
18Display currency code (optional). Supported currencies: GBP, USD, EUR, CAD, AUD, CHF. If omitted, prices are displayed in store currency. Converts all product prices (price, old_price, min_donation) and custom field prices.
USDSuccessful operation
87Currency in which all prices are expressed. Matches the requested currency parameter, or the store's default currency if not specified.
GBPDidn't provide a valid Tip4Serv API Key
Internal Server Error
GET /v1/store/products HTTP/1.1
Host: api.tip4serv.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"products": [
{
"id": "64",
"name": "VIP +",
"status": true,
"slug": "vip-plus",
"price": 17.99,
"old_price": 19.99,
"percent_off": 10,
"recurring_discount": true,
"discount_end": 1758563356951,
"donation": false,
"min_donation": 10,
"small_description": "This product is quite amazing. It allows you to unlock our VIP +\nperks...\n",
"category": 1,
"subscription": true,
"stock": 10,
"duration_periodicity": "month",
"period_num": 3,
"trial": 7,
"featured": true,
"image": "https://cdn.tip4serv.com/shops-img/example.png",
"created_date": 1753098967,
"currency": "GBP"
}
],
"product_count": 87,
"currency": "GBP"
}Retrieves information about all categories. Use page to paginate results. Use parent to filter subcategories of a specific parent category.
Authorization:
Requires a valid JWT Bearer token.
The token must include the permission:
read-products.
The page number to retrieve.
1The maximum number of elements per page. This number must be between 5-50.
50The parent category to which we will retrieve it's sub-categories. By default it won't filter by parent category.
1Successful operation
8Didn't provide a valid Tip4Serv API Key
Internal Server Error
GET /v1/store/categories HTTP/1.1
Host: api.tip4serv.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"categories": [
{
"id": 67,
"name": "Perks",
"description": "In this category, you will find special perks for the Duster Epic Rust server. Ranging from vehicles to epic items.",
"slug": "perks",
"hide": false,
"main_redirect": false,
"parent_id": 1
}
],
"category_count": 8
}Retrieves detailed information about a single product identified by it's slug. set details to true for full product details.
Authorization:
Requires a valid JWT Bearer token.
The token must include the permission:
read-products.
the slug of the product to retrieve.
vip-plusEnable detailed response.
Display currency code (optional). Supported currencies: GBP, USD, EUR, CAD, AUD, CHF. If omitted, prices are displayed in store currency. Converts all product prices (price, old_price, min_donation) and custom field prices.
USDProduct found successfully
Unique identifier of the product.
40Name of the product.
VIP +Indicates whether the product is enabled.
trueURL-friendly name of the product.
vip-plusCurrent price of the product after any applicable discounts. Expressed in the store's currency, or the requested display currency if the currency parameter was used.
17.99Original price of the product without discounts. Expressed in the store's currency, or the requested display currency if the currency parameter was used.
19.99Percentage off from the original price if a discount applies.
10Indicates whether the discount is applied on each occurrence of the subscription.
trueTimestamp of the discount expiration. (expressed in the store timezone)
1758563356951Indicates if the product is a donation-type product, this allow the user to choose the amount of the donation, price therefore defines the minimum donation amount.
falseMinimum donation amount (only present if donation is true). If currency parameter is used, this value is converted to the requested currency.
10Full description of the product.
This product is quite amazing. It allows you to unlock our VIP + perks and showcase your skills on our server.List of all images related to the product.
["https://cdn.tip4serv.com/shops-img/example.png","https://cdn.tip4serv.com/shops-img/another_image.jpg"]URL of the video associated with the product.
https://youtu.be/K1QICrgxTjACategory the product belongs to (integer or full category object if details are enabled).
1Indicates whether the product is featured.
trueAvailable stock of the product.
10Number of trial days available for this product.
14If trial days are enabled, defines when commands in the "Do this after each renewal payment" event start.
Accepted values:
first_payment, second_payment
first_paymentIndicates the delivery method used to deliver the actions of the product. Can Possible values:
all_servers: will deliver the product commands on every servers. -server_choice: the user will be prompted to choose on which server he wish to receive his product. -auto_detect: Tip4Serv will automatically detect on which server the user is connected, and deliver only on this server. If no option is specified, the default option will be set toall_servers
Indicates whether the customer can select the server for product delivery. ⚠ This flag is deprecated, please use delivery_mode instead, to know the delivery method of the actions.
falseIndicates whether the customer can select the quantity to purchase.
trueIf quantity is selectable, determines whether commands are multiplied by the chosen quantity.
falseIndicates if the product provides downloadable files upon purchase.
falseIndicates whether the product is a subscription.
trueIndicates whether the product can be purchased with a giftcard. If not specified this option will be set to false by default. If set to true a customer won't be able to purchase this product with a giftcard.
Indicates whether the product supports gift cards.
falseIndicates whether the generated gift card will eventually expire.
falseUnit of time for the gift card expiration duration.
Possible values:
day– duration in days -week– duration in weeks -month– duration in months -year– duration in years
Example: If duration_periodicity = month and period_num = 3, the giftcard will expire 3 months after the purchase.
monthNumber of duration_periodicity units before the giftcard expires.
Examples:
- Giftcard expires after 3 months
- Giftcard expires after 1 year
Example:
period_num: 3→ charge every 3 months
3Indicates if stock management is enabled for the product.
falseDetermines whether subscriptions are recurring or expire by default. Accepted values: each, expire
eachIf set to false prevents customers from subscribing to the same product multiple times.
falseAllows customers to purchase the product for a single billing cycle without subscribing.
falseIndicates whether trial days are enabled.
trueUnit of time for the subscription duration.
Possible values:
day– duration in daysweek– duration in weeksmonth– duration in monthsyear– duration in years
Example: If duration_periodicity = month and period_num = 3, the subscription lasts 3 months.
monthNumber of duration_periodicity units before the subscription expires or the next charge occurs.
Examples:
- Charge the customer every 3 months
- Charge the customer every 1 year
Accepted ranges:
- 1–99 for days
- 1–52 for weeks
- 1–12 for months
- 1–1 for years
Example: period_num: 3 → charge every 3 months
3Timestamp of product creation in the store's timezone.
1758563300951Timestamp of the last product modification in the store's timezone.
1758563356951Currency in which all prices are expressed. Matches the requested currency parameter, or the store's default currency if not specified.
GBPError in your request
Didn't provide a valid Tip4Serv API Key
Couldn't find the product with that id.
Internal Server Error
GET /v1/store/product/{slug} HTTP/1.1
Host: api.tip4serv.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "40",
"name": "VIP +",
"status": true,
"slug": "vip-plus",
"price": 17.99,
"old_price": 19.99,
"percent_off": 10,
"recurring_discount": true,
"discount_end": 1758563356951,
"donation": false,
"min_donation": 10,
"description": "This product is quite amazing. It allows you to unlock our VIP + perks and showcase your skills on our server.",
"gallery": [
"https://cdn.tip4serv.com/shops-img/example.png",
"https://cdn.tip4serv.com/shops-img/another_image.jpg"
],
"youtube": "https://youtu.be/K1QICrgxTjA",
"category": 1,
"featured": true,
"stock": 10,
"trial": 14,
"renewal_start": "first_payment",
"delivery_method": "text",
"server_choice": false,
"quantity": true,
"cmd_multiplier": false,
"files": false,
"subscription": true,
"disable_giftcard_payments": true,
"giftcard": false,
"giftcard_expiration": false,
"giftcard_expiration_duration_periodicity": "month",
"giftcard_expiration_period_num": 3,
"enable_stock": false,
"subscription_cycle": "each",
"cumul_sub": false,
"onetime_sub": false,
"enable_trial": true,
"purchase_limit": {
"purchase_times": 2,
"type": "every",
"cycle": 3,
"periodicity": "month"
},
"duration_periodicity": "month",
"period_num": 3,
"custom_rules": [
{
"id": 1,
"order": 1,
"name": "My new rule",
"type": "number_limit",
"min": 1,
"max": 1,
"fields": [
1,
3
]
}
],
"custom_fields": [
{
"id": 1,
"order": 1,
"name": "My custom field",
"type": "text",
"marker": "bonus_points",
"if_not_filled": "text",
"default_value": 10,
"required": true,
"minimum": 1,
"maximum": 100,
"step": 1,
"number_type": "text",
"price": 2.5,
"options": [
{
"id": 2,
"order": 2,
"name": "Red",
"value": 3,
"price": 2.5
}
]
}
],
"created_date": 1758563300951,
"last_edited": 1758563356951,
"server_options": [
{
"id": 10,
"name": "Duster SMP #1"
}
],
"actions": {
"36252": {
"payment_command": [
{
"str": "AddPoints {steam_id} 5000",
"event": "Must be online"
},
{
"str": "say Thanks {steam_username} for your purchase!",
"event": "Execute"
}
],
"refund_command": [
{
"str": "RemovePoints {steam_id} 5000",
"event": "Must be online"
}
]
}
},
"currency": "GBP"
}Create a new product in your store.
Authorization:
Requires a valid JWT Bearer token.
The token must include the permission:
create-discounts.
Name of the product.
VIP +Indicates whether the product is enabled. If not specified, the product will be automatically enabled
trueExample: trueURL-friendly name of the product. If not specified will be automatically calculated.
vip-plusCurrent price of the product after any applicable discounts, in the store's currency.
17.99Indicates whether the discount is applied on each occurrence of the subscription.
trueIndicates if the product is a donation-type product, this allow the user to choose the amount of the donation, price therefore defines the minimum donation amount.
falseFull description of the product.
This product is quite amazing. It allows you to unlock our VIP + perks and showcase your skills on our server.URL of the video associated with the product.
https://youtu.be/K1QICrgxTjACategory the product belongs to (integer or full category object if details are enabled). If not specified, the product will be automatically added to the default category.
1Indicates whether the product is featured. If not specified will be set to false.
falseEnable a system of limited stock for this product. By default if not set, no stock system will be implemented.
trueAvailable stock of the product. enable_stock must be set to true first.
10Indicates whether trial days are enabled.
trueNumber of trial days available for this product. If not specified no trial period will be set. enable_trial must first be set to true.
14If trial days are enabled, defines when commands in the "Do this after each renewal payment" event start.
Accepted values:
first_payment, second_payment
first_paymentIndicates whether the customer can select the quantity to purchase. If not specified customers will by default be able to purchase the product multiple times.
trueIf quantity is selectable, determines whether commands are multiplied by the chosen quantity. If set to true each command will be executed "quantity" times, by default cmd_multiplier is set to false.
falseIndicates whether the product is a subscription. If not specified the product will not be an subscription.
falseIndicates whether the product can be purchased with a giftcard. If not specified this option will be set to false by default. If set to true a customer won't be able to purchase this product with a giftcard.
falseIndicates whether the product supports gift cards. If not specified the product will not offer any giftcard.
falseIndicates whether the generated gift card will eventually expire.
falseUnit of time for the gift card expiration duration.
Possible values:
day– duration in days -week– duration in weeks -month– duration in months -year– duration in years
Example: If duration_periodicity = month and period_num = 3, the giftcard will expire 3 months after the purchase.
monthNumber of duration_periodicity units before the giftcard expires.
Examples:
- Giftcard expires after 3 months
- Giftcard expires after 1 year
Example:
period_num: 3→ charge every 3 months
3Determines whether subscriptions are recurring or expire by default. Accepted values: each, expire
eachIf set to false prevents customers from subscribing to the same product multiple times. By default set to true.
falseAllows customers to purchase the product for a single billing cycle without subscribing. By default set to true.
falseUnit of time for the subscription duration.
Possible values:
day– duration in daysweek– duration in weeksmonth– duration in monthsyear– duration in years
Example: If duration_periodicity = month and period_num = 3, the subscription lasts 3 months.
monthNumber of duration_periodicity units before the subscription expires or the next charge occurs.
Examples:
- Charge the customer every 3 months
- Charge the customer every 1 year
Accepted ranges:
- 1–99 for days
- 1–52 for weeks
- 1–12 for months
- 1–1 for years
Example: period_num: 3 → charge every 3 months
If not specified will be set by default to 1.
3Successful operation
Unique identifier of the product.
40Name of the product.
VIP +Indicates whether the product is enabled.
trueURL-friendly name of the product.
vip-plusCurrent price of the product after any applicable discounts. Expressed in the store's currency, or the requested display currency if the currency parameter was used.
17.99Original price of the product without discounts. Expressed in the store's currency, or the requested display currency if the currency parameter was used.
19.99Percentage off from the original price if a discount applies.
10Indicates whether the discount is applied on each occurrence of the subscription.
trueTimestamp of the discount expiration. (expressed in the store timezone)
1758563356951Indicates if the product is a donation-type product, this allow the user to choose the amount of the donation, price therefore defines the minimum donation amount.
falseMinimum donation amount (only present if donation is true). If currency parameter is used, this value is converted to the requested currency.
10Full description of the product.
This product is quite amazing. It allows you to unlock our VIP + perks and showcase your skills on our server.List of all images related to the product.
["https://cdn.tip4serv.com/shops-img/example.png","https://cdn.tip4serv.com/shops-img/another_image.jpg"]URL of the video associated with the product.
https://youtu.be/K1QICrgxTjACategory the product belongs to (integer or full category object if details are enabled).
1Indicates whether the product is featured.
trueAvailable stock of the product.
10Number of trial days available for this product.
14If trial days are enabled, defines when commands in the "Do this after each renewal payment" event start.
Accepted values:
first_payment, second_payment
first_paymentIndicates the delivery method used to deliver the actions of the product. Can Possible values:
all_servers: will deliver the product commands on every servers. -server_choice: the user will be prompted to choose on which server he wish to receive his product. -auto_detect: Tip4Serv will automatically detect on which server the user is connected, and deliver only on this server. If no option is specified, the default option will be set toall_servers
Indicates whether the customer can select the server for product delivery. ⚠ This flag is deprecated, please use delivery_mode instead, to know the delivery method of the actions.
falseIndicates whether the customer can select the quantity to purchase.
trueIf quantity is selectable, determines whether commands are multiplied by the chosen quantity.
falseIndicates if the product provides downloadable files upon purchase.
falseIndicates whether the product is a subscription.
trueIndicates whether the product can be purchased with a giftcard. If not specified this option will be set to false by default. If set to true a customer won't be able to purchase this product with a giftcard.
Indicates whether the product supports gift cards.
falseIndicates whether the generated gift card will eventually expire.
falseUnit of time for the gift card expiration duration.
Possible values:
day– duration in days -week– duration in weeks -month– duration in months -year– duration in years
Example: If duration_periodicity = month and period_num = 3, the giftcard will expire 3 months after the purchase.
monthNumber of duration_periodicity units before the giftcard expires.
Examples:
- Giftcard expires after 3 months
- Giftcard expires after 1 year
Example:
period_num: 3→ charge every 3 months
3Indicates if stock management is enabled for the product.
falseDetermines whether subscriptions are recurring or expire by default. Accepted values: each, expire
eachIf set to false prevents customers from subscribing to the same product multiple times.
falseAllows customers to purchase the product for a single billing cycle without subscribing.
falseIndicates whether trial days are enabled.
trueUnit of time for the subscription duration.
Possible values:
day– duration in daysweek– duration in weeksmonth– duration in monthsyear– duration in years
Example: If duration_periodicity = month and period_num = 3, the subscription lasts 3 months.
monthNumber of duration_periodicity units before the subscription expires or the next charge occurs.
Examples:
- Charge the customer every 3 months
- Charge the customer every 1 year
Accepted ranges:
- 1–99 for days
- 1–52 for weeks
- 1–12 for months
- 1–1 for years
Example: period_num: 3 → charge every 3 months
3Timestamp of product creation in the store's timezone.
1758563300951Timestamp of the last product modification in the store's timezone.
1758563356951Currency in which all prices are expressed. Matches the requested currency parameter, or the store's default currency if not specified.
GBPError in your request
Missing or invalid Tip4Serv API Key
Internal server error
POST /v1/store/product HTTP/1.1
Host: api.tip4serv.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1465
{
"name": "VIP +",
"status": true,
"slug": "vip-plus",
"price": 17.99,
"recurring_discount": true,
"donation": false,
"description": "This product is quite amazing. It allows you to unlock our VIP + perks and showcase your skills on our server.",
"youtube": "https://youtu.be/K1QICrgxTjA",
"category": 1,
"featured": false,
"enable_stock": true,
"stock": 10,
"enable_trial": true,
"trial": 14,
"renewal_start": "first_payment",
"quantity": true,
"cmd_multiplier": false,
"subscription": false,
"disable_giftcard_payments": false,
"giftcard": false,
"giftcard_expiration": false,
"giftcard_expiration_duration_periodicity": "month",
"giftcard_expiration_period_num": 3,
"custom_fields": [
{
"id": 1,
"order": 1,
"name": "My custom field",
"type": "text",
"marker": "bonus_points",
"if_not_filled": "text",
"default_value": 10,
"required": true,
"minimum": 1,
"maximum": 100,
"step": 1,
"number_type": "text",
"price": 2.5,
"options": [
{
"id": 2,
"order": 2,
"name": "Red",
"value": 3,
"price": 2.5
}
]
}
],
"custom_rules": [
{
"name": "My new rule",
"type": "number_limit",
"min": 1,
"max": 1,
"fields": [
1,
3
]
}
],
"subscription_cycle": "each",
"cumul_sub": false,
"onetime_sub": false,
"duration_periodicity": "month",
"period_num": 3,
"purchase_limit": {
"purchase_times": 2,
"type": "every",
"cycle": 3,
"periodicity": "month"
},
"actions": {
"36252": {
"payment_command": [
{
"str": "AddPoints {steam_id} 5000",
"event": "Must be online"
},
{
"str": "say Thanks {steam_username} for your purchase!",
"event": "Execute"
}
],
"refund_command": [
{
"str": "RemovePoints {steam_id} 5000",
"event": "Must be online"
}
]
}
}
}{
"id": "40",
"name": "VIP +",
"status": true,
"slug": "vip-plus",
"price": 17.99,
"old_price": 19.99,
"percent_off": 10,
"recurring_discount": true,
"discount_end": 1758563356951,
"donation": false,
"min_donation": 10,
"description": "This product is quite amazing. It allows you to unlock our VIP + perks and showcase your skills on our server.",
"gallery": [
"https://cdn.tip4serv.com/shops-img/example.png",
"https://cdn.tip4serv.com/shops-img/another_image.jpg"
],
"youtube": "https://youtu.be/K1QICrgxTjA",
"category": 1,
"featured": true,
"stock": 10,
"trial": 14,
"renewal_start": "first_payment",
"delivery_method": "text",
"server_choice": false,
"quantity": true,
"cmd_multiplier": false,
"files": false,
"subscription": true,
"disable_giftcard_payments": true,
"giftcard": false,
"giftcard_expiration": false,
"giftcard_expiration_duration_periodicity": "month",
"giftcard_expiration_period_num": 3,
"enable_stock": false,
"subscription_cycle": "each",
"cumul_sub": false,
"onetime_sub": false,
"enable_trial": true,
"purchase_limit": {
"purchase_times": 2,
"type": "every",
"cycle": 3,
"periodicity": "month"
},
"duration_periodicity": "month",
"period_num": 3,
"custom_rules": [
{
"id": 1,
"order": 1,
"name": "My new rule",
"type": "number_limit",
"min": 1,
"max": 1,
"fields": [
1,
3
]
}
],
"custom_fields": [
{
"id": 1,
"order": 1,
"name": "My custom field",
"type": "text",
"marker": "bonus_points",
"if_not_filled": "text",
"default_value": 10,
"required": true,
"minimum": 1,
"maximum": 100,
"step": 1,
"number_type": "text",
"price": 2.5,
"options": [
{
"id": 2,
"order": 2,
"name": "Red",
"value": 3,
"price": 2.5
}
]
}
],
"created_date": 1758563300951,
"last_edited": 1758563356951,
"server_options": [
{
"id": 10,
"name": "Duster SMP #1"
}
],
"actions": {
"36252": {
"payment_command": [
{
"str": "AddPoints {steam_id} 5000",
"event": "Must be online"
},
{
"str": "say Thanks {steam_username} for your purchase!",
"event": "Execute"
}
],
"refund_command": [
{
"str": "RemovePoints {steam_id} 5000",
"event": "Must be online"
}
]
}
},
"currency": "GBP"
}Update a new product in your store.
Authorization:
Requires a valid JWT Bearer token.
The token must include the permission:
create-productsorupdate-products.
The ID of the product to attach the file to.
123The thumbnail to upload. Ther image must not be heavier than 8Mb.
File uploaded successfully.
The thumbnail was successfully uploaded.200Error in your request.
Missing or invalid Tip4Serv API Key.
Product not found.
Internal Server Error.
POST /v1/store/product/{id}/thumbnail HTTP/1.1
Host: api.tip4serv.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 17
{
"file": "binary"
}{
"message": "The thumbnail was successfully uploaded.",
"status": 200
}Update a new product in your store.
Authorization:
Requires a valid JWT Bearer token.
The token must include the permission:
create-productsorupdate-products.
The ID of the product to attach the image to.
123The image to upload. The image must not be heavier than 8Mb.
Image uploaded successfully.
The image was successfully uploaded.200Error in your request.
Missing or invalid Tip4Serv API Key.
Product not found.
Internal Server Error.
POST /v1/store/product/{id}/gallery HTTP/1.1
Host: api.tip4serv.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 17
{
"file": "binary"
}{
"message": "The image was successfully uploaded.",
"status": 200
}Delete a monetized file.
Authorization:
Requires a valid JWT Bearer token.
The token must include the permission:
create-productsorupdate-products.
The ID of the product to attach the file to.
123The id of the file attached to a product to delete.
1File uploaded successfully.
The file was successfully deleted.200Error in your request.
Missing or invalid Tip4Serv API Key.
Product not found.
Internal Server Error.
DELETE /v1/store/product/{id}/file/{file_id} HTTP/1.1
Host: api.tip4serv.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"message": "The file was successfully deleted.",
"status": 200
}Upload a file to sell in your product.
Authorization:
Requires a valid JWT Bearer token.
The token must include the permission:
create-productsorupdate-products.
The ID of the product to attach the file to.
123Number of days the file remains available after purchase.
Use -1 to keep the file valid forever.
(This will affect the other files for the same product)
-1Example: -1The file to upload. The file must not be heavier than 50Mb.
File uploaded successfully.
Unique ID of the uploaded product file.
1Display name of the uploaded file.
vip-pack.zipNumber of days the file remains available after purchase.
-1 means the file never expires.
-1Internal or signed URL used to download the file.
https://api.tip4serv.com/v1/store/product/123/file/42/downloadUnix timestamp when the file was uploaded.
1761234717Error in your request.
Missing or invalid Tip4Serv API Key.
Product not found.
Storage quota exceeded.
Internal Server Error.
POST /v1/store/product/{id}/file HTTP/1.1
Host: api.tip4serv.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 33
{
"expiration": -1,
"file": "binary"
}{
"id": 1,
"file_name": "vip-pack.zip",
"expiration": -1,
"url": "https://api.tip4serv.com/v1/store/product/123/file/42/download",
"created_at": 1761234717
}Delete a gallery image from the product.
Authorization:
Requires a valid JWT Bearer token.
The token must include the permission:
create-productsorupdate-products.
The ID of the product where the image is attached to.
123The image_id corresponds to the gallery image position, starting at 1.
For example, given the gallery:
["image_1.webp", "image_2.webp", "image_3.png"]
To delete image_2.webp, send:
image_id = 2
Important: If your product uses both a thumbnail and a gallery, the thumbnail may appear at the beginning of the gallery array returned by the API.
Do not include the thumbnail when calculating the image_id.
For example, given:
["thumbnail.jpg", "image_1.webp", "image_2.webp", "image_3.png"]
To delete image_2.webp, the image_id is still 2, not 3.
1Image successfully deleted.
The image was successfully deleted.200Error in your request.
Missing or invalid Tip4Serv API Key.
Product not found.
Internal Server Error.
DELETE /v1/store/product/{id}/gallery/{image_id} HTTP/1.1
Host: api.tip4serv.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"message": "The image was successfully deleted.",
"status": 200
}Retrieves detailed information about a single product identified by id. Set details to true for full product details.
Authorization:
Requires a valid JWT Bearer token.
The token must include the permission:
read-products.
The ID of the product to retrieve.
Enable detailed response.
Display currency code (optional). Supported currencies: GBP, USD, EUR, CAD, AUD, CHF. If omitted, prices are displayed in store currency. Converts all product prices (price, old_price, min_donation) and custom field prices.
USDProduct found successfully
Unique identifier of the product.
40Name of the product.
VIP +Indicates whether the product is enabled.
trueURL-friendly name of the product.
vip-plusCurrent price of the product after any applicable discounts. Expressed in the store's currency, or the requested display currency if the currency parameter was used.
17.99Original price of the product without discounts. Expressed in the store's currency, or the requested display currency if the currency parameter was used.
19.99Percentage off from the original price if a discount applies.
10Indicates whether the discount is applied on each occurrence of the subscription.
trueTimestamp of the discount expiration. (expressed in the store timezone)
1758563356951Indicates if the product is a donation-type product, this allow the user to choose the amount of the donation, price therefore defines the minimum donation amount.
falseMinimum donation amount (only present if donation is true). If currency parameter is used, this value is converted to the requested currency.
10Full description of the product.
This product is quite amazing. It allows you to unlock our VIP + perks and showcase your skills on our server.List of all images related to the product.
["https://cdn.tip4serv.com/shops-img/example.png","https://cdn.tip4serv.com/shops-img/another_image.jpg"]URL of the video associated with the product.
https://youtu.be/K1QICrgxTjACategory the product belongs to (integer or full category object if details are enabled).
1Indicates whether the product is featured.
trueAvailable stock of the product.
10Number of trial days available for this product.
14If trial days are enabled, defines when commands in the "Do this after each renewal payment" event start.
Accepted values:
first_payment, second_payment
first_paymentIndicates the delivery method used to deliver the actions of the product. Can Possible values:
all_servers: will deliver the product commands on every servers. -server_choice: the user will be prompted to choose on which server he wish to receive his product. -auto_detect: Tip4Serv will automatically detect on which server the user is connected, and deliver only on this server. If no option is specified, the default option will be set toall_servers
Indicates whether the customer can select the server for product delivery. ⚠ This flag is deprecated, please use delivery_mode instead, to know the delivery method of the actions.
falseIndicates whether the customer can select the quantity to purchase.
trueIf quantity is selectable, determines whether commands are multiplied by the chosen quantity.
falseIndicates if the product provides downloadable files upon purchase.
falseIndicates whether the product is a subscription.
trueIndicates whether the product can be purchased with a giftcard. If not specified this option will be set to false by default. If set to true a customer won't be able to purchase this product with a giftcard.
Indicates whether the product supports gift cards.
falseIndicates whether the generated gift card will eventually expire.
falseUnit of time for the gift card expiration duration.
Possible values:
day– duration in days -week– duration in weeks -month– duration in months -year– duration in years
Example: If duration_periodicity = month and period_num = 3, the giftcard will expire 3 months after the purchase.
monthNumber of duration_periodicity units before the giftcard expires.
Examples:
- Giftcard expires after 3 months
- Giftcard expires after 1 year
Example:
period_num: 3→ charge every 3 months
3Indicates if stock management is enabled for the product.
falseDetermines whether subscriptions are recurring or expire by default. Accepted values: each, expire
eachIf set to false prevents customers from subscribing to the same product multiple times.
falseAllows customers to purchase the product for a single billing cycle without subscribing.
falseIndicates whether trial days are enabled.
trueUnit of time for the subscription duration.
Possible values:
day– duration in daysweek– duration in weeksmonth– duration in monthsyear– duration in years
Example: If duration_periodicity = month and period_num = 3, the subscription lasts 3 months.
monthNumber of duration_periodicity units before the subscription expires or the next charge occurs.
Examples:
- Charge the customer every 3 months
- Charge the customer every 1 year
Accepted ranges:
- 1–99 for days
- 1–52 for weeks
- 1–12 for months
- 1–1 for years
Example: period_num: 3 → charge every 3 months
3Timestamp of product creation in the store's timezone.
1758563300951Timestamp of the last product modification in the store's timezone.
1758563356951Currency in which all prices are expressed. Matches the requested currency parameter, or the store's default currency if not specified.
GBPError in your request
Didn't provide a valid Tip4Serv API Key
Couldn't find the product with that id.
Internal Server Error
GET /v1/store/product/{id} HTTP/1.1
Host: api.tip4serv.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "40",
"name": "VIP +",
"status": true,
"slug": "vip-plus",
"price": 17.99,
"old_price": 19.99,
"percent_off": 10,
"recurring_discount": true,
"discount_end": 1758563356951,
"donation": false,
"min_donation": 10,
"description": "This product is quite amazing. It allows you to unlock our VIP + perks and showcase your skills on our server.",
"gallery": [
"https://cdn.tip4serv.com/shops-img/example.png",
"https://cdn.tip4serv.com/shops-img/another_image.jpg"
],
"youtube": "https://youtu.be/K1QICrgxTjA",
"category": 1,
"featured": true,
"stock": 10,
"trial": 14,
"renewal_start": "first_payment",
"delivery_method": "text",
"server_choice": false,
"quantity": true,
"cmd_multiplier": false,
"files": false,
"subscription": true,
"disable_giftcard_payments": true,
"giftcard": false,
"giftcard_expiration": false,
"giftcard_expiration_duration_periodicity": "month",
"giftcard_expiration_period_num": 3,
"enable_stock": false,
"subscription_cycle": "each",
"cumul_sub": false,
"onetime_sub": false,
"enable_trial": true,
"purchase_limit": {
"purchase_times": 2,
"type": "every",
"cycle": 3,
"periodicity": "month"
},
"duration_periodicity": "month",
"period_num": 3,
"custom_rules": [
{
"id": 1,
"order": 1,
"name": "My new rule",
"type": "number_limit",
"min": 1,
"max": 1,
"fields": [
1,
3
]
}
],
"custom_fields": [
{
"id": 1,
"order": 1,
"name": "My custom field",
"type": "text",
"marker": "bonus_points",
"if_not_filled": "text",
"default_value": 10,
"required": true,
"minimum": 1,
"maximum": 100,
"step": 1,
"number_type": "text",
"price": 2.5,
"options": [
{
"id": 2,
"order": 2,
"name": "Red",
"value": 3,
"price": 2.5
}
]
}
],
"created_date": 1758563300951,
"last_edited": 1758563356951,
"server_options": [
{
"id": 10,
"name": "Duster SMP #1"
}
],
"actions": {
"36252": {
"payment_command": [
{
"str": "AddPoints {steam_id} 5000",
"event": "Must be online"
},
{
"str": "say Thanks {steam_username} for your purchase!",
"event": "Execute"
}
],
"refund_command": [
{
"str": "RemovePoints {steam_id} 5000",
"event": "Must be online"
}
]
}
},
"currency": "GBP"
}Delete the specified product.
Authorization:
Requires a valid JWT Bearer token.
The token must include the permissions:
delete-products.
the ID of the product to update.
Successful operation
The product has been successfully deleted.200Error in your request
Missing or invalid Tip4Serv API Key
Conflicting conditions
Internal server error
DELETE /v1/store/product/{id} HTTP/1.1
Host: api.tip4serv.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"message": "The product has been successfully deleted.",
"status": 200
}Update a new product in your store.
Authorization:
Requires a valid JWT Bearer token.
The token must include the permission:
update-products.
The ID of the product to update.
Name of the product.
VIP +Indicates whether the product is enabled. If not specified, the product will be automatically enabled
trueExample: trueURL-friendly name of the product. If not specified will be automatically calculated.
vip-plusCurrent price of the product after any applicable discounts, in the store's currency.
17.99Indicates whether the discount is applied on each occurrence of the subscription.
trueIndicates if the product is a donation-type product, this allow the user to choose the amount of the donation, price therefore defines the minimum donation amount.
falseFull description of the product.
This product is quite amazing. It allows you to unlock our VIP + perks and showcase your skills on our server.URL of the video associated with the product.
https://youtu.be/K1QICrgxTjACategory the product belongs to (integer or full category object if details are enabled). If not specified, the product will be automatically added to the default category.
1Indicates whether the product is featured. If not specified will be set to false.
falseEnable a system of limited stock for this product. By default if not set, no stock system will be implemented.
trueAvailable stock of the product. enable_stock must be set to true first.
10Indicates whether trial days are enabled.
trueNumber of trial days available for this product. If not specified no trial period will be set. enable_trial must first be set to true.
14If trial days are enabled, defines when commands in the "Do this after each renewal payment" event start.
Accepted values:
first_payment, second_payment
first_paymentIndicates whether the customer can select the quantity to purchase. If not specified customers will by default be able to purchase the product multiple times.
trueIf quantity is selectable, determines whether commands are multiplied by the chosen quantity. If set to true each command will be executed "quantity" times, by default cmd_multiplier is set to false.
trueIndicates whether the product is a subscription. If not specified the product will not be an subscription.
falseIndicates whether the product can be purchased with a giftcard. If not specified this option will be set to false by default. If set to true a customer won't be able to purchase this product with a giftcard.
Indicates whether the product supports gift cards. If not specified the product will not offer any giftcard.
falseIndicates whether the generated gift card will eventually expire.
falseUnit of time for the gift card expiration duration.
Possible values:
day– duration in days -week– duration in weeks -month– duration in months -year– duration in years
Example: If duration_periodicity = month and period_num = 3, the giftcard will expire 3 months after the purchase.
monthNumber of duration_periodicity units before the giftcard expires.
Examples:
- Giftcard expires after 3 months
- Giftcard expires after 1 year
Example:
period_num: 3→ charge every 3 months
3Determines whether subscriptions are recurring or expire by default. Accepted values: each, expire
eachIf set to false prevents customers from subscribing to the same product multiple times.
falseAllows customers to purchase the product for a single billing cycle without subscribing.
falseUnit of time for the subscription duration.
Possible values:
day– duration in daysweek– duration in weeksmonth– duration in monthsyear– duration in years
Example: If duration_periodicity = month and period_num = 3, the subscription lasts 3 months.
monthNumber of duration_periodicity units before the subscription expires or the next charge occurs.
Examples:
- Charge the customer every 3 months
- Charge the customer every 1 year
Accepted ranges:
- 1–99 for days
- 1–52 for weeks
- 1–12 for months
- 1–1 for years
Example: period_num: 3 → charge every 3 months
3Successful operation
Unique identifier of the product.
40Name of the product.
VIP +Indicates whether the product is enabled.
trueURL-friendly name of the product.
vip-plusCurrent price of the product after any applicable discounts. Expressed in the store's currency, or the requested display currency if the currency parameter was used.
17.99Original price of the product without discounts. Expressed in the store's currency, or the requested display currency if the currency parameter was used.
19.99Percentage off from the original price if a discount applies.
10Indicates whether the discount is applied on each occurrence of the subscription.
trueTimestamp of the discount expiration. (expressed in the store timezone)
1758563356951Indicates if the product is a donation-type product, this allow the user to choose the amount of the donation, price therefore defines the minimum donation amount.
falseMinimum donation amount (only present if donation is true). If currency parameter is used, this value is converted to the requested currency.
10Full description of the product.
This product is quite amazing. It allows you to unlock our VIP + perks and showcase your skills on our server.List of all images related to the product.
["https://cdn.tip4serv.com/shops-img/example.png","https://cdn.tip4serv.com/shops-img/another_image.jpg"]URL of the video associated with the product.
https://youtu.be/K1QICrgxTjACategory the product belongs to (integer or full category object if details are enabled).
1Indicates whether the product is featured.
trueAvailable stock of the product.
10Number of trial days available for this product.
14If trial days are enabled, defines when commands in the "Do this after each renewal payment" event start.
Accepted values:
first_payment, second_payment
first_paymentIndicates the delivery method used to deliver the actions of the product. Can Possible values:
all_servers: will deliver the product commands on every servers. -server_choice: the user will be prompted to choose on which server he wish to receive his product. -auto_detect: Tip4Serv will automatically detect on which server the user is connected, and deliver only on this server. If no option is specified, the default option will be set toall_servers
Indicates whether the customer can select the server for product delivery. ⚠ This flag is deprecated, please use delivery_mode instead, to know the delivery method of the actions.
falseIndicates whether the customer can select the quantity to purchase.
trueIf quantity is selectable, determines whether commands are multiplied by the chosen quantity.
falseIndicates if the product provides downloadable files upon purchase.
falseIndicates whether the product is a subscription.
trueIndicates whether the product can be purchased with a giftcard. If not specified this option will be set to false by default. If set to true a customer won't be able to purchase this product with a giftcard.
Indicates whether the product supports gift cards.
falseIndicates whether the generated gift card will eventually expire.
falseUnit of time for the gift card expiration duration.
Possible values:
day– duration in days -week– duration in weeks -month– duration in months -year– duration in years
Example: If duration_periodicity = month and period_num = 3, the giftcard will expire 3 months after the purchase.
monthNumber of duration_periodicity units before the giftcard expires.
Examples:
- Giftcard expires after 3 months
- Giftcard expires after 1 year
Example:
period_num: 3→ charge every 3 months
3Indicates if stock management is enabled for the product.
falseDetermines whether subscriptions are recurring or expire by default. Accepted values: each, expire
eachIf set to false prevents customers from subscribing to the same product multiple times.
falseAllows customers to purchase the product for a single billing cycle without subscribing.
falseIndicates whether trial days are enabled.
trueUnit of time for the subscription duration.
Possible values:
day– duration in daysweek– duration in weeksmonth– duration in monthsyear– duration in years
Example: If duration_periodicity = month and period_num = 3, the subscription lasts 3 months.
monthNumber of duration_periodicity units before the subscription expires or the next charge occurs.
Examples:
- Charge the customer every 3 months
- Charge the customer every 1 year
Accepted ranges:
- 1–99 for days
- 1–52 for weeks
- 1–12 for months
- 1–1 for years
Example: period_num: 3 → charge every 3 months
3Timestamp of product creation in the store's timezone.
1758563300951Timestamp of the last product modification in the store's timezone.
1758563356951Currency in which all prices are expressed. Matches the requested currency parameter, or the store's default currency if not specified.
GBPError in your request
Missing or invalid Tip4Serv API Key
Internal server error
PATCH /v1/store/product/{id} HTTP/1.1
Host: api.tip4serv.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1439
{
"name": "VIP +",
"status": true,
"slug": "vip-plus",
"price": 17.99,
"recurring_discount": true,
"donation": false,
"description": "This product is quite amazing. It allows you to unlock our VIP + perks and showcase your skills on our server.",
"youtube": "https://youtu.be/K1QICrgxTjA",
"category": 1,
"featured": false,
"enable_stock": true,
"stock": 10,
"enable_trial": true,
"trial": 14,
"renewal_start": "first_payment",
"quantity": true,
"cmd_multiplier": true,
"subscription": false,
"disable_giftcard_payments": true,
"giftcard": false,
"giftcard_expiration": false,
"giftcard_expiration_duration_periodicity": "month",
"giftcard_expiration_period_num": 3,
"custom_fields": [
{
"order": 1,
"name": "My custom field",
"type": "text",
"marker": "bonus_points",
"if_not_filled": "text",
"default_value": 10,
"required": true,
"minimum": 1,
"maximum": 100,
"step": 1,
"number_type": "text",
"price": 2.5,
"options": [
{
"name": "Red",
"value": 3,
"price": 2.5
}
]
}
],
"custom_rules": [
{
"name": "My new rule",
"type": "number_limit",
"min": 1,
"max": 1,
"fields": [
1,
3
]
}
],
"subscription_cycle": "each",
"cumul_sub": false,
"onetime_sub": false,
"duration_periodicity": "month",
"period_num": 3,
"purchase_limit": {
"purchase_times": 2,
"type": "every",
"cycle": 3,
"periodicity": "month"
},
"actions": {
"36252": {
"payment_command": [
{
"str": "AddPoints {steam_id} 5000",
"event": "Must be online"
},
{
"str": "say Thanks {steam_username} for your purchase!",
"event": "Execute"
}
],
"refund_command": [
{
"str": "RemovePoints {steam_id} 5000",
"event": "Must be online"
}
]
}
}
}{
"id": "40",
"name": "VIP +",
"status": true,
"slug": "vip-plus",
"price": 17.99,
"old_price": 19.99,
"percent_off": 10,
"recurring_discount": true,
"discount_end": 1758563356951,
"donation": false,
"min_donation": 10,
"description": "This product is quite amazing. It allows you to unlock our VIP + perks and showcase your skills on our server.",
"gallery": [
"https://cdn.tip4serv.com/shops-img/example.png",
"https://cdn.tip4serv.com/shops-img/another_image.jpg"
],
"youtube": "https://youtu.be/K1QICrgxTjA",
"category": 1,
"featured": true,
"stock": 10,
"trial": 14,
"renewal_start": "first_payment",
"delivery_method": "text",
"server_choice": false,
"quantity": true,
"cmd_multiplier": false,
"files": false,
"subscription": true,
"disable_giftcard_payments": true,
"giftcard": false,
"giftcard_expiration": false,
"giftcard_expiration_duration_periodicity": "month",
"giftcard_expiration_period_num": 3,
"enable_stock": false,
"subscription_cycle": "each",
"cumul_sub": false,
"onetime_sub": false,
"enable_trial": true,
"purchase_limit": {
"purchase_times": 2,
"type": "every",
"cycle": 3,
"periodicity": "month"
},
"duration_periodicity": "month",
"period_num": 3,
"custom_rules": [
{
"id": 1,
"order": 1,
"name": "My new rule",
"type": "number_limit",
"min": 1,
"max": 1,
"fields": [
1,
3
]
}
],
"custom_fields": [
{
"id": 1,
"order": 1,
"name": "My custom field",
"type": "text",
"marker": "bonus_points",
"if_not_filled": "text",
"default_value": 10,
"required": true,
"minimum": 1,
"maximum": 100,
"step": 1,
"number_type": "text",
"price": 2.5,
"options": [
{
"id": 2,
"order": 2,
"name": "Red",
"value": 3,
"price": 2.5
}
]
}
],
"created_date": 1758563300951,
"last_edited": 1758563356951,
"server_options": [
{
"id": 10,
"name": "Duster SMP #1"
}
],
"actions": {
"36252": {
"payment_command": [
{
"str": "AddPoints {steam_id} 5000",
"event": "Must be online"
},
{
"str": "say Thanks {steam_username} for your purchase!",
"event": "Execute"
}
],
"refund_command": [
{
"str": "RemovePoints {steam_id} 5000",
"event": "Must be online"
}
]
}
},
"currency": "GBP"
}Last updated
