API Documentation

Complete documentation for Shop2Change digital services and recharge API

🔐 Authentication

All API requests require an API token in the request header. You can obtain your token from the dashboard.

Request Example:

X-API-Key: YOUR_API_TOKEN
⚠️ Important:

Keep your API token secure and never share it publicly.

👤 Account

GET /api/v1/account/profile
Retrieve account information including balance and currency.

📤 Response Example:

{
"isSuccess": true,
  "message": "Profile retrieved successful",
  "data": {
    "id": 587,
    "username": "YOUR_NAME",
    "balance": 0.0,
    "currency": "USD"
  }
}

📂 Categories

GET /api/v1/category
Retrieve all active categories in the system.

📤 Response Example:

{
  "isSuccess": true,
  "message": "Categories retrieved successful",
  "data": [
    {
  "id": 1,
  "name": "PUBG Mobile"
    },
    {
  "id": 2,
  "name": "Free Fire"
    }
  ]
}
GET /api/v1/category/{id}
Retrieve a specific category with all associated services.

📥 Parameters:

id integer Required

Category identifier

📤 Response Example:

{
"isSuccess": true,
  "message": "Success",
  "data": {
    "id": 1,
    "name": "PUBG Mobile",
    "services": [
      {
        "id": 101,
        "name": "60 UC",
        "price": 5.99,
        "type": "normal"
      }
    ]
  }
}

🎮 Services

GET /api/v1/services
Retrieve all active services with optional filtering capabilities.

📥 Query Parameters:

categoryId integer Optional

Filter by category

type string Optional

Service type: "manual" or "normal"

searchTerm string Optional

Search in service names

📤 Response Example:

 
{
  "isSuccess": true,
  "message": "Found 1 services",
  "data": [
    {
      "id": 101,
      "name": "60 UC - PUBG Mobile",
      "price": 5.99,
      "type": "normal",
      "categoryName": "PUBG Mobile"
    }
  ]
}

📦 Orders

POST /api/v1/order
Create a new order to purchase a service.

📥 Request Body:

{
  "serviceId": 101,
  "quantity": 1,
  "customerData": {
    "target": "123456789"
  },
  "delaySeconds": 0
}
serviceId integer Required

ID of the requested service

quantity integer Optional

Quantity (default: 1)

customerData object Required

Customer data (Player ID, Phone, etc.)

delaySeconds integer Optional

Delay execution in seconds (allows cancellation)

📤 Response Example:

{
  "isSuccess": true,
  "message": "Order created successfully",
  "data": {
    "orderId": 1234,
    "serviceName": "60 UC - PUBG Mobile",
    "serviceType": "normal",
    "categoryName": "PUBG Mobile",
    "amount": 5.99,
    "status": "pending",
    "isApiOrder": true,
    "createdAt": "2026-01-14T10:30:00Z",
    "expiresAt": "2026-01-14T11:00:00Z",
    "canBeCancelled": true
  }
}
GET /api/v1/order/{orderId}
Retrieve details of a specific order and its result.

📥 Parameters:

orderId integer Required

Order identifier

📤 Response Example:

{
  "isSuccess": true,
  "data": {
    "orderId": 1234,
    "serviceName": "60 UC - PUBG Mobile",
    "serviceType": "normal",
    "amount": 5.99,
    "status": "completed",
    "createdAt": "2026-01-14T10:30:00Z",
    "isApiOrder": true,
    "items": [
      {
        "id": 5678,
        "productTitle": "60 UC",
        "code": "XXXX-XXXX-XXXX-XXXX",
        "customerData": {
          "playerId": "123456789"
        }
      }
    ]
  }
}
POST /api/v1/order/{orderId}/cancel
Cancel an order (only for orders with "pending" status and before cancellation period expires).

📥 Parameters:

orderId integer Required

Order identifier to cancel

📤 Response Example:

{
  "isSuccess": true,
  "message": "Order cancelled successfully. 5.99 has been refunded to your balance."
}
GET /api/v1/order/orders
Retrieve all orders with optional filtering capabilities.

📥 Query Parameters:

status string Optional

Filter by status: 'pending', 'ongoing', 'completed', 'cancelled'

pageSize integer Optional

Number of items per page

pageNumber integer Optional

Page number

📤 Response Example:

{
  "isSuccess": true,
  "message": "Orders retrieved successful",
  "data": {
    "items": [
      {
        "orderId": 698,
        "serviceName": "Facebook Followers + Warranty",
        "amount": 0.3,
        "status": "cancelled",
        "createdAt": "2026-01-13T19:21:32"
      }
    ],
    "pageNumber": 1,
    "totalCount": 1,
    "pageSize": 10
  }
}

⚠️ Error Codes

HTTP Status Codes:

200 OK

Request succeeded

400 Bad Request

Invalid request data

401 Unauthorized

Missing or invalid API token

403 Forbidden

API token disabled or IP not allowed

404 Not Found

Requested resource not found

500 Internal Server Error

Server error

Error Response Example:

{
  "success": false,
  "error": {
    "code": 401,
    "message": "Invalid API Token."
  }
}

⏱️ Rate Limits

Default rate limit: 1000 requests/hour

You can request an increase by contacting technical support.

⚠️ Warning:

When the limit is exceeded, a 429 (Too Many Requests) error will be returned.