Referrals API
Manage your store's referral program, track referrals, and access referral statistics.
List Referrals
http
GET /api/external/v1/referralsQuery Parameters
| Parameter | Type | Description |
|---|---|---|
page | integer | Page number (default: 1) |
per_page | integer | Items per page (default: 15, max: 100) |
status | string | Filter: successful, pending |
search | string | Search by name or email |
Example Request
bash
curl -X GET "https://yourstore.pixlpay.net/api/external/v1/referrals?status=successful" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"Response
json
{
"success": true,
"data": [
{
"id": 1,
"name": "Player123",
"email": "player@example.com",
"referred_at": "2025-01-15T10:30:00Z",
"referrer": {
"id": 2,
"name": "TopReferrer",
"email": "referrer@example.com",
"referral_code": "ABC12345"
},
"status": "successful",
"first_order_at": "2025-01-16T14:00:00Z"
}
],
"meta": {
"current_page": 1,
"last_page": 3,
"per_page": 15,
"total": 42
}
}Get Referral Statistics
http
GET /api/external/v1/referrals/statisticsExample Request
bash
curl -X GET "https://yourstore.pixlpay.net/api/external/v1/referrals/statistics" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"Response
json
{
"success": true,
"data": {
"total_referrals": 150,
"successful_referrals": 89,
"conversion_rate": 59.33,
"rewards_claimed": 45,
"total_coupons_value": 450.00
}
}Get Referral Leaderboard
http
GET /api/external/v1/referrals/leaderboardQuery Parameters
| Parameter | Type | Description |
|---|---|---|
limit | integer | Number of entries (default: 10, max: 100) |
Example Request
bash
curl -X GET "https://yourstore.pixlpay.net/api/external/v1/referrals/leaderboard?limit=5" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"Response
json
{
"success": true,
"data": [
{
"id": 1,
"name": "TopReferrer",
"referral_count": 25
},
{
"id": 2,
"name": "Player456",
"referral_count": 18
}
]
}Get Top Referrers
http
GET /api/external/v1/referrals/top-referrersQuery Parameters
| Parameter | Type | Description |
|---|---|---|
limit | integer | Number of entries (default: 10, max: 100) |
Example Request
bash
curl -X GET "https://yourstore.pixlpay.net/api/external/v1/referrals/top-referrers?limit=10" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"Response
json
{
"success": true,
"data": [
{
"id": 1,
"name": "TopReferrer",
"email": "top@example.com",
"referral_code": "ABC12345",
"total_referrals": 30,
"successful_referrals": 25,
"rewards_claimed": 3
}
]
}Validate Referral Code
http
POST /api/external/v1/referrals/validateRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
code | string | Yes | The referral code to validate |
Example Request
bash
curl -X POST "https://yourstore.pixlpay.net/api/external/v1/referrals/validate" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"code": "ABC12345"}'Response
json
{
"success": true,
"data": {
"valid": true,
"referrer": {
"id": 1,
"name": "TopReferrer"
}
}
}Invalid Code Response
json
{
"success": true,
"data": {
"valid": false,
"error": "Invalid referral code"
}
}List Referral Tiers
http
GET /api/external/v1/referrals/tiersExample Request
bash
curl -X GET "https://yourstore.pixlpay.net/api/external/v1/referrals/tiers" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"Response
json
{
"success": true,
"data": [
{
"id": 1,
"name": "Bronze Referrer",
"description": "Reward for 5 successful referrals",
"referrals_required": 5,
"reward_type": "percentage_discount",
"reward_value": "10.00",
"reward_currency": null,
"coupon_validity_days": 30,
"is_active": true,
"sort_order": 1,
"formatted_reward": "10.00% off",
"claims_count": 12
},
{
"id": 2,
"name": "Silver Referrer",
"description": "Reward for 15 successful referrals",
"referrals_required": 15,
"reward_type": "fixed_discount",
"reward_value": "25.00",
"reward_currency": "USD",
"coupon_validity_days": 60,
"is_active": true,
"sort_order": 2,
"formatted_reward": "$25.00 off",
"claims_count": 5
}
]
}Create Referral Tier
http
POST /api/external/v1/referrals/tiersRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Tier name (max 255 characters) |
description | string | No | Tier description (max 1000 characters) |
referrals_required | integer | Yes | Number of referrals required to unlock |
reward_type | string | Yes | percentage_discount or fixed_discount |
reward_value | number | Yes | Discount value (min 0.01) |
reward_currency | string | No | Currency code for fixed discounts (e.g., USD) |
coupon_validity_days | integer | No | Coupon expiry days (1-365, default: 30) |
is_active | boolean | No | Whether tier is active (default: true) |
sort_order | integer | No | Display order (default: 0) |
Example Request
bash
curl -X POST "https://yourstore.pixlpay.net/api/external/v1/referrals/tiers" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Gold Referrer",
"description": "Reward for 25 successful referrals",
"referrals_required": 25,
"reward_type": "percentage_discount",
"reward_value": 20,
"coupon_validity_days": 90,
"is_active": true,
"sort_order": 3
}'Response
json
{
"success": true,
"data": {
"id": 3,
"name": "Gold Referrer",
"description": "Reward for 25 successful referrals",
"referrals_required": 25,
"reward_type": "percentage_discount",
"reward_value": "20.00",
"reward_currency": null,
"coupon_validity_days": 90,
"is_active": true,
"sort_order": 3,
"formatted_reward": "20.00% off",
"created_at": "2025-01-20T10:00:00Z",
"updated_at": "2025-01-20T10:00:00Z"
},
"message": "Referral tier created successfully"
}Update Referral Tier
http
PUT /api/external/v1/referrals/tiers/{id}Request Body
All fields are optional. Only include fields you want to update.
| Field | Type | Description |
|---|---|---|
name | string | Tier name (max 255 characters) |
description | string | Tier description (max 1000 characters) |
referrals_required | integer | Number of referrals required |
reward_type | string | percentage_discount or fixed_discount |
reward_value | number | Discount value |
reward_currency | string | Currency code for fixed discounts |
coupon_validity_days | integer | Coupon expiry days (1-365) |
is_active | boolean | Whether tier is active |
sort_order | integer | Display order |
Example Request
bash
curl -X PUT "https://yourstore.pixlpay.net/api/external/v1/referrals/tiers/3" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"reward_value": 25,
"coupon_validity_days": 120
}'Response
json
{
"success": true,
"data": {
"id": 3,
"name": "Gold Referrer",
"description": "Reward for 25 successful referrals",
"referrals_required": 25,
"reward_type": "percentage_discount",
"reward_value": "25.00",
"reward_currency": null,
"coupon_validity_days": 120,
"is_active": true,
"sort_order": 3,
"formatted_reward": "25.00% off"
},
"message": "Referral tier updated successfully"
}Delete Referral Tier
http
DELETE /api/external/v1/referrals/tiers/{id}WARNING
Tiers with existing claims will be deactivated instead of deleted.
Example Request
bash
curl -X DELETE "https://yourstore.pixlpay.net/api/external/v1/referrals/tiers/3" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"Response (No Claims)
json
{
"success": true,
"message": "Referral tier deleted successfully"
}Response (Has Claims)
json
{
"success": true,
"message": "Referral tier has been deactivated (has existing claims)"
}Toggle Tier Status
http
POST /api/external/v1/referrals/tiers/{id}/toggleExample Request
bash
curl -X POST "https://yourstore.pixlpay.net/api/external/v1/referrals/tiers/1/toggle" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"Response
json
{
"success": true,
"data": {
"id": 1,
"name": "Bronze Referrer",
"is_active": false,
"formatted_reward": "10.00% off"
},
"message": "Tier deactivated"
}Get Referral Settings
http
GET /api/external/v1/referrals/settingsExample Request
bash
curl -X GET "https://yourstore.pixlpay.net/api/external/v1/referrals/settings" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"Response
json
{
"success": true,
"data": {
"referral_enabled": true,
"referral_reward_event": "first_purchase",
"referral_welcome_discount_enabled": true,
"referral_welcome_discount_type": "percentage",
"referral_welcome_discount_value": 10
}
}Update Referral Settings
http
PUT /api/external/v1/referrals/settingsRequest Body
| Field | Type | Description |
|---|---|---|
referral_enabled | boolean | Enable/disable referral program |
referral_reward_event | string | When to count: signup or first_purchase |
referral_welcome_discount_enabled | boolean | Enable welcome discount for referred customers |
referral_welcome_discount_type | string | percentage or fixed |
referral_welcome_discount_value | number | Discount value |
Example Request
bash
curl -X PUT "https://yourstore.pixlpay.net/api/external/v1/referrals/settings" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"referral_enabled": true,
"referral_reward_event": "first_purchase",
"referral_welcome_discount_enabled": true,
"referral_welcome_discount_type": "percentage",
"referral_welcome_discount_value": 15
}'Response
json
{
"success": true,
"data": {
"referral_enabled": true,
"referral_reward_event": "first_purchase",
"referral_welcome_discount_enabled": true,
"referral_welcome_discount_type": "percentage",
"referral_welcome_discount_value": 15
},
"message": "Referral settings updated successfully"
}List Reward Claims
http
GET /api/external/v1/referrals/claimsQuery Parameters
| Parameter | Type | Description |
|---|---|---|
page | integer | Page number (default: 1) |
per_page | integer | Items per page (default: 15, max: 100) |
Example Request
bash
curl -X GET "https://yourstore.pixlpay.net/api/external/v1/referrals/claims" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"Response
json
{
"success": true,
"data": [
{
"id": 1,
"customer": {
"id": 1,
"name": "TopReferrer",
"email": "referrer@example.com"
},
"tier": {
"id": 1,
"name": "Bronze Referrer",
"referrals_required": 5
},
"coupon": {
"id": 10,
"code": "REF-A1B2C3D4",
"times_used": 1
},
"claimed_at": "2025-01-18T12:00:00Z"
}
],
"meta": {
"current_page": 1,
"last_page": 2,
"per_page": 15,
"total": 25
}
}Referral Object
| Field | Type | Description |
|---|---|---|
id | integer | Unique identifier of referred customer |
name | string | Customer name |
email | string | Customer email |
referred_at | string | ISO 8601 timestamp of referral |
referrer | object | Referrer customer details |
status | string | successful (has paid order) or pending |
first_order_at | string | First paid order timestamp (if any) |
Referrer Object
| Field | Type | Description |
|---|---|---|
id | integer | Unique identifier |
name | string | Customer name |
email | string | Customer email |
referral_code | string | Unique referral code |
Referral Tier Object
| Field | Type | Description |
|---|---|---|
id | integer | Unique identifier |
name | string | Tier name |
description | string | Tier description |
referrals_required | integer | Number of referrals to unlock |
reward_type | string | percentage_discount or fixed_discount |
reward_value | string | Discount value |
reward_currency | string | Currency code (for fixed discounts) |
coupon_validity_days | integer | Days until coupon expires |
is_active | boolean | Whether tier is active |
sort_order | integer | Display order |
formatted_reward | string | Human-readable reward (e.g., "10.00% off") |
claims_count | integer | Number of times this tier has been claimed |
Statistics Object
| Field | Type | Description |
|---|---|---|
total_referrals | integer | Total number of referred customers |
successful_referrals | integer | Referrals that made a purchase |
conversion_rate | number | Percentage of referrals that converted |
rewards_claimed | integer | Total reward claims made |
total_coupons_value | number | Total value of used referral coupons |
Errors
| Status | Error | Description |
|---|---|---|
| 401 | Unauthorized | Invalid or missing token |
| 403 | Forbidden | Token lacks referrals:read or referrals:write scope |
| 404 | Not Found | Referral tier doesn't exist |
| 422 | Unprocessable | Validation error (e.g., invalid reward type) |
