Webhook URL
This section details how the system sends transaction status updates to your pre-configured Webhook URL. To configure your webhook URL, navigate to Settings > API Settings in your reseller panel.
Endpoint Details
URL: [Your Configured Webhook URL]
Method: POST
Data Payload Sent
When a transaction event occurs, the system will make a POST request to your webhook URL with the following JSON data in the request body:
{
"invoice": "#SYNNXXXXXXXXXX",
"product": "Product name - Product type",
"price": "The price of your product",
"status": "Status transaction",
"processed_at": "The time when the transaction was processed",
"message": "xxxx"
}
Field Descriptions
- invoice: The unique identifier for the transaction.
- product: Name and type of the product involved in the transaction.
- price: The price of the product for this transaction.
- status: The current status of the transaction (e.g., "Success", "Failed", "Pending").
- processed_at: Timestamp indicating when the transaction was processed.
- message: Any additional message or notes related to the transaction status.
Important Notes
- Ensure your webhook endpoint is publicly accessible and can accept POST requests.
- Your endpoint should respond with a
2xx
HTTP status code (e.g.,200 OK
) to acknowledge receipt of the webhook. - It's recommended to process the webhook data asynchronously to avoid timeouts.
- Consider implementing security measures, such as verifying a signature or checking the source IP.
Authentication
All API requests must be authenticated. This is done by providing your unique API key in the request headers.
API Key Usage
Include your API key in the Authorization
header using the Bearer token scheme.
Authorization: Bearer <YOUR_API_KEY>
Obtaining Your API Key
You can find or generate your API key in the Settings > API Settings section of your reseller panel. Keep your API key confidential and secure. Do not share it publicly.
Check Balance
Retrieve your current account balance.
Endpoint Details
URL: /v1/balance
Method: GET
Authentication:Required
Success Response (200 OK)
A successful request returns your account balance details.
{
"currency": "MYR",
"available_balance": 1234.56,
"pending_balance": 0,
"last_updated": "2025-05-27T10:30:00Z"
}
Field Descriptions
- currency: The currency of your account balance (e.g., "MYR", "IDR").
- available_balance: The amount currently available for use.
- pending_balance: Any balance that is currently pending or uncleared.
- last_updated: ISO 8601 timestamp of when the balance was last updated.
List Products
Retrieve a list of available products for top-up.
Endpoint Details
URL: /v1/products
Method: GET
Authentication:Required
Query Parameters (Optional)
- category: Filter by product category (e.g.,
mlbb
,pubgm
). - region: Filter by region code (e.g.,
MY
,GLOBAL
). - page: For pagination, page number. Defaults to 1.
- limit: For pagination, items per page. Defaults to 20.
Success Response (200 OK)
Returns a paginated list of products.
{
"data": [
{
"product_id": "MLBB_DIAMONDS_100",
"name": "Mobile Legends 100 Diamonds",
"category": "mlbb",
"region": "GLOBAL",
"price": 10.5,
"currency": "MYR"
},
{
"product_id": "PUBGM_UC_600",
"name": "PUBG Mobile 600 UC",
"category": "pubgm",
"region": "MY",
"price": 45,
"currency": "MYR"
}
],
"pagination": {
"total_items": 50,
"total_pages": 3,
"current_page": 1,
"limit": 20
}
}
Get Product Details
Retrieve detailed information for a specific product.
Endpoint Details
URL: /v1/products/{product_id}
Method: GET
Authentication:Required
Replace {product_id}
with the actual ID of the product.
Success Response (200 OK)
{
"product_id": "MLBB_DIAMONDS_100",
"name": "Mobile Legends 100 Diamonds",
"category": "mlbb",
"region": "GLOBAL",
"price": 10.5,
"currency": "MYR",
"description": "100 Diamonds for MLBB.",
"stock_status": "in_stock",
"requires_user_id": true,
"requires_zone_id": true
}
Create Transaction
Initiate a new top-up transaction.
Endpoint Details
URL: /v1/transactions
Method: POST
Authentication:Required
Request Body (JSON)
{
"product_id": "MLBB_DIAMONDS_100",
"user_id": "12345678",
"zone_id": "1234",
"quantity": 1
}
Success Response (201 Created)
{
"transaction_id": "TRX_zYxWvUt...",
"status": "pending",
"message": "Transaction received.",
"created_at": "2025-05-27T11:00:00Z"
}
Get Transaction Status
Check the status of a previously created transaction.
Endpoint Details
URL: /v1/transactions/{transaction_id}
Method: GET
Authentication:Required
Replace {transaction_id}
with the actual ID.
Success Response (200 OK)
{
"transaction_id": "TRX_zYxWvUt...",
"status": "success",
"product_name": "Mobile Legends 100 Diamonds",
"user_id": "12345678",
"processed_at": "2025-05-27T11:00:15Z"
}
MLBB User Checker
Verify an MLBB User ID and Zone ID to retrieve the nickname.
Endpoint Details
URL: /v1/mlbb/check-user
Method: POST
Authentication:Required
Request Body (JSON)
{
"user_id": "12345678",
"zone_id": "1234"
}
Success Response (200 OK)
{
"valid_user": true,
"nickname": "SynnPlayerX"
}