Webhook Data Structure
When your webhook receives a payment or subscription event, a JSON payload is sent.
This document explains the structure and meaning of each field.
Example Payload
{
"event": "payment.success",
"created_at": "2025-09-04T13:45:44-04:00",
"request_id": "51b97ba5891ec220e8b64385a00c3826",
"webhook_id": "458",
"store_id": "7541",
"mode": "live", // live or test
"data": {
"id": 71134,
"type": 1, // 1 = payment | 2 = subscription
"transaction_id": "68B9D0471D02A",
"gateway": "paypal", // stripe, paypal or free
"amount": {
"total_paid": 12,
"currency": "EUR"
},
"user": {
"email": "[email protected]",
"username": "Murga",
"steam_id": "76561198030562915",
"steam_username": "Murgator",
"discord_id": "376442921087995901",
"discord_username": "murgator"
},
"basket": [
{
"id": 183,
"sub_key": "762szqztj",
"name": "Gold Sword",
"price": 10,
"quantity": 1,
"custom_fields": {
"1": {
"field_id": 1,
"name": "Level",
"value": {
"option_id": 2,
"name": "Maximum",
"value": "800", // value selected by the customer
"price": 2.00
},
"total_price": 2,
"type": "selection"
}
}
}
],
"actions": [
{
"server_id": "20861",
"commands": [
{
"str": "give apple {minecraft_uuid} 1",
"event": "0",
"item_key": 0,
"product_id": "183"
},
{
"str": "give hook{minecraft_uuid} 1",
"event": "0",
"item_key": 0,
"product_id": "185"
}
]
},
{
"server_id": "20859",
"commands": [
{
"str": "give apple {minecraft_uuid} 1",
"event": "0",
"item_key": 0,
"product_id": "183"
},
{
"str": "give hook{minecraft_uuid} 1",
"event": "0",
"item_key": 0,
"product_id": "185"
}
]
}
],
}
}
🧾Main Fields
event
string
payment.success
, payment.refused
, payment.refunded
, subscription.created
, subscription.renewed
, subscription.expired
Event name
created_at
string (ISO 8601)
2025-09-04T13:45:44-04:00
Date and time of the event
request_id
string
51b97ba5891ec220e8b64385a00c3826
Unique webhook ID (useful for logs/debug)
webhook_id
int
458
Webhook ID
store_id
int
7541
Your shop ID
data
object
{...}
Event-related data
mode
string
test
, live
Payment mode
💳 Data
Object
Data
Objectid
int
71134
Internal payment ID or subscription ID
transaction_id
string
68B9D0471D02A
Transaction ID
gateway
string
free
, paypal
, stripe
Payment gateway used or free order
amount
object
{ "total_paid": 12, "currency": "EUR" }
Paid amount and currency
user
object
{...}
User information (multi-game + Discord/Steam/etc.)
basket
array
[ {...} ]
Purchased products
actions
object
{...}
Commands related to the payment (Discord, server, etc.)
type
int
1
, 2
1 = payment, 2 = subscription
👤 user
Object
user
ObjectContains identifiers of the user, which may vary depending on the configuration:
email
→ User emailusername
→ Display namesteam_id
,steam_username
→ Steam identityminecraft_username
,minecraft_uuid
→ Minecraft identityeosid
→ ARK:SA IDfivem_citizen_id
→ FiveM identifierdiscord_id
,discord_username
→ Discord identity
⚠️ Some fields may be missing if the user has not linked that service.
🛒 basket
Object
basket
ObjectEach purchased product is listed here:
id
183
Product ID
sub_key
762szqztj
Tip4Serv product key
name
VIP Rank
Product name
price
10.00
Unit price
quantity
1
Quantity purchased
custom_fields
{...}
Custom fields associated with the product
⚙️ commands
Object
commands
ObjectThe commands
object contains all servers (API type only) and actions configured by the seller in the product editor.
For each server you will find one or more groups of commands which depends on what you have configured in the products ordered by the customer.
str
give {steam_id} apple 1
The actual command string to execute.
event
0 or 1
Option selected by the seller in the product editor: 0 → Always execute 1 → Execute only if the player is online
product_id
183
The Tip4Serv product ID linked to this command.
item_key
0
, 1
, 2
...
Index of the item in the buyer’s basket.
0 = first product, 1 = second product...
server_id
XXXXXX
Server ID on which these commands should be executed
Last updated