Merchant Login
Authenticate merchant and receive bearer token for API access.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| string | Required | Merchant email address | |
| password | string | Required | Merchant password |
| device_name | string | Optional | Device identifier for token (default: "API Access") |
Request Example
curl -X POST https://api.fyup.io/api/merchant/auth/login \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"email": "raguvasan@laabamone.com",
"password": "Test@123",
"device_name": "web_browser"
}'
{
"success": true,
"message": "Login successful",
"data": {
"access_token": "76|fyup_oO0lO2rONY8mRsxfTBPynTSZl0mVwwwwWrEE2JDY59db70f6",
"token_type": "Bearer",
"expires_in": null,
"merchant": {
"id": 12,
"merchant_code": "MVROXRCYT",
"business_name": "Sample Merchant",
"email": "raguvasan@laabamone.com",
"name": "Sample Merchant",
"role": "merchant"
}
}
}
Trader Forgot Password (Send OTP)
Send OTP to trader email for password reset.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| string | Required | Trader email address |
Request Example
curl -X POST https://api.fyup.io/api/trader/auth/forgot-password/send-otp \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"email": "john.trader@example.com"
}'
{
"success": true,
"message": "OTP sent to your email address.",
"data": {
"email": "john.trader@example.com",
"expires_in_seconds": 600
}
}
Trader Forgot Password (Verify OTP)
Verify OTP sent to trader email.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| string | Required | Trader email address | |
| otp | string | Required | 6-digit OTP |
Request Example
curl -X POST https://api.fyup.io/api/trader/auth/forgot-password/verify-otp \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"email": "john.trader@example.com",
"otp": "123456"
}'
{
"success": true,
"message": "OTP verified successfully.",
"data": {
"email": "john.trader@example.com",
"verified": true
}
}
Trader Forgot Password (Reset)
Reset trader password after OTP verification.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| string | Required | Trader email address | |
| password | string | Required | New password |
| password_confirmation | string | Required | Confirm new password |
Request Example
curl -X POST https://api.fyup.io/api/trader/auth/forgot-password/reset \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"email": "john.trader@example.com",
"password": "NewSecurePass@123",
"password_confirmation": "NewSecurePass@123"
}'
{
"success": true,
"message": "Password reset successfully."
}
Trader Login
Authenticate trader and receive API token for subsequent requests.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| string | Required | Trader email address | |
| password | string | Required | Trader password |
| device_name | string | Required | Device identifier (e.g. "web_browser") |
| device_id | string | Required | Unique device ID |
| latitude | number | Required | GPS latitude coordinate |
| longitude | number | Required | GPS longitude coordinate |
| ip_address | string | Required | IP address of the device |
Request Example
curl -X POST https://api.fyup.io/api/trader/auth/login \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"email": "john.trader@example.com",
"password": "SecurePass@123",
"device_name": "web_browser",
"device_id": "device_12345",
"latitude": "12.9716",
"longitude": "77.5946",
"ip_address": "103.127.29.123"
}'
{
"success": true,
"message": "Login successful",
"data": {
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"trader": {
"id": 123,
"name": "John Trader",
"email": "john.trader@example.com",
"status": "active"
}
}
}
Get Trader Profile
Get authenticated trader's profile information.
Headers
| Header | Value | Required | Description |
|---|---|---|---|
| Authorization | Bearer {token} | Required | Token from login response |
| Accept | application/json | Required | Response format |
{
"success": true,
"data": {
"id": 123,
"trader_code": "TRD-123456",
"name": "John Trader",
"email": "john.trader@example.com",
"phone": "+919876543210",
"whatsapp": "+919876543210",
"type": "trader",
"trader_type": "individual",
"status": "active",
"kyc_status": "verified",
"available_balance": 15000.00,
"locked_balance": 0.00,
"float_balance": 0.00,
"connectivity_status": "online",
"is_available": true,
"available": "Yes",
"created_at": "2024-01-15T10:30:00Z"
}
}
Upload Profile Image
Upload or update trader's profile image from mobile application.
Headers
| Header | Value | Required | Description |
|---|---|---|---|
| Authorization | Bearer {token} | Required | Token from login response |
| Content-Type | multipart/form-data | Required | Multipart form data for file upload |
| Accept | application/json | Required | Response format |
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
| profile_image | File | Required | Image file (jpeg, jpg, png) - Max 5MB |
{
"success": true,
"message": "Profile image uploaded successfully",
"data": {
"profile_image": "https://fyup.io/storage/trader_profiles/trader_profile_3_1738827541.jpg",
"profile_image_path": "trader_profiles/trader_profile_3_1738827541.jpg",
"uploaded_at": "2026-02-06T07:39:01.000000Z"
}
}
{
"success": false,
"message": "Validation failed",
"errors": {
"profile_image": [
"The profile image must be an image.",
"The profile image must not be greater than 5120 kilobytes."
]
}
}
List Transactions
Get paginated list of trader's transactions.
{
"success": true,
"data": {
"current_page": 1,
"data": [
{
"id": 1,
"amount": 5000,
"status": "completed",
"created_at": "2024-01-15T10:30:00Z"
}
],
"total": 50
}
}
List Pools
Get list of available trader pools.
{
"success": true,
"message": "Pools retrieved successfully",
"data": {
"pools": [
{
"id": 1,
"name": "Premium Pool",
"description": "High-value transactions pool",
"pool_type": "premium",
"risk_level": "premium",
"risk_label": "Premium",
"amounts": {
"min": 10000,
"max": 100000,
"formatted_min": "ā¹10,000.00",
"formatted_max": "ā¹100,000.00",
"range": "ā¹10,000.00 - ā¹100,000.00"
},
"currency": "INR",
"trader_margin": {
"type": "fixed",
"fixed": 2.5,
"min": null,
"max": null,
"formatted": "2.50%"
},
"commission": {
"rate": 2.5,
"formatted": "2.50%"
},
"priority": 1,
"traders": {
"total": 15,
"active": 12,
"max": 20,
"current": 15,
"capacity_status": "available"
},
"performance": {
"success_rate": 95.5,
"total_transactions": 1250,
"total_volume": 5000000,
"formatted_volume": "ā¹5,000,000.00"
},
"status": "active",
"is_active": true,
"trader_status": {
"is_joined": false,
"status": "not_joined",
"can_join": true
},
"created_at": "Jan 01, 2026",
"updated_at": "Jan 10, 2026 10:30 AM"
}
],
"summary": {
"total_pools": 1,
"active_pools": 1
}
}
}
Join Pool
Join a specific trader pool by providing the pool ID. Requires authentication.
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| poolId | integer | Required | The ID of the pool to join |
Headers
| Header | Value | Required | Description |
|---|---|---|---|
| Authorization | Bearer {token} | Required | Authentication token from trader login |
| Content-Type | application/json | Required | Request content type |
| Accept | application/json | Required | Response content type |
Request Example
curl -X POST https://api.fyup.io/api/trader/pool-join/15 \
-H "Authorization: Bearer {your_auth_token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const response = await fetch('/api/trader/pool-join/15', {
method: 'POST',
headers: {
'Authorization': `Bearer ${authToken}`,
'Content-Type': 'application/json',
'Accept': 'application/json'
}
});
const result = await response.json();
console.log(result);
import requests
headers = {
'Authorization': f'Bearer {auth_token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.post('https://api.fyup.io/api/trader/pool-join/15', headers=headers)
result = response.json()
print(result)
{
"success": true,
"message": "Successfully joined the pool!",
"status": "active",
"pool_id": 12,
"requires_deposit": false,
"deposit_amount": null
}
{
"success": false,
"message": "You are already part of this pool or have a pending request.",
"status": "pending"
}
Get Pool Join Status
Get the current trader's pool join status across all pools.
Headers
| Header | Value | Required | Description |
|---|---|---|---|
| Authorization | Bearer {token} | Required | Authentication token from trader login |
| Accept | application/json | Required | Response content type |
Request Example
curl -X GET https://api.fyup.io/api/trader/pool-join-status \
-H "Authorization: Bearer {your_auth_token}" \
-H "Accept: application/json"
{
"success": true,
"joined_pools": {
"12": {
"pool_id": 12,
"status": "active",
"joined_at": "2025-12-26T10:30:00Z",
"required_deposit_amount": null
},
"8": {
"pool_id": 8,
"status": "pending",
"joined_at": "2026-01-01T15:20:00Z",
"required_deposit_amount": 10000
}
}
}
Generate Order
Create a new order for payment processing with merchant and customer details.
⢠Merchant ID: 4 (Logistics And Transportation)
⢠Category ID: 1 (Gaming) or 4 (Logistics)
⢠Pool ID: 12 (IGAMING MEDIUM RISK)
⢠UUID: Will be
null for API testing. Add "is_customer_submission": true for real customer orders⢠Assigned Trader: Will be
null initially. Use the Assign Trader API below to assign trader ID 2⢠Status: Starts as
"pending", becomes "assigned" after trader assignment
Response Fields
| Field | Type | Description |
|---|---|---|
| uuid | string | Unique UUID generated when order is submitted (created on API call) |
| order_id | integer | Unique order identifier in database |
| order_reference | string | Human-readable order reference code |
| status | string | Current order status (pending, assigned, completed, etc.) |
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| merchant_id | integer | Required | Merchant ID (available: 4) |
| merchant_category_id | integer | Required | Merchant Category ID (available: 1-Gaming, 4-Logistics) |
| pool_id | integer | Required | Pool ID for processing (available: 12) |
| type | string | Required | Order type (PayIN or PayOut) |
| amount | number | Required | Order amount (1-999999.99) |
| customer_mobile | string | Required | Customer mobile number (10 digits) |
| customer_name | string | Required | Customer name (letters and spaces only) |
| invoice_number | string | Optional | Invoice number (max 100 chars) |
| notes | string | Optional | Additional notes (max 500 chars) |
curl -X POST https://api.fyup.io/api/v1/orders/generate \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"merchant_id": 4,
"merchant_category_id": 1,
"pool_id": 12,
"type": "PayIN",
"amount": 5000.00,
"customer_mobile": "9876543210",
"customer_name": "John Doe",
"invoice_number": "INV-001",
"notes": "Order for premium service"
}'
{
"success": true,
"message": "Order generated successfully.",
"data": {
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"order_id": 123,
"order_reference": "ORD20251231ABC123",
"status": "pending",
"type": "PayIN",
"amount": "5000.00",
"customer_mobile": "9876543210",
"customer_name": "John Doe",
"invoice_number": "INV-001",
"notes": "Order for premium service",
"merchant": {
"id": 1,
"name": "Sample Merchant",
"code": "MERCHANT001"
},
"merchant_category": {
"id": 2,
"name": "E-Commerce"
},
"pool": {
"id": 3,
"name": "Premium Pool",
"type": "instant"
},
"created_at": "2025-12-31T12:00:00.000000Z",
"estimated_processing_time": "15-30 minutes"
}
}
Get Latest Order Details
Get the latest order details for the authenticated merchant.
⢠Status: Will change from "pending" to "assigned" if auto-assignment occurs
⢠Assigned Trader: Will contain trader details (ID: 14 - Riswan)
⢠Assigned At: Will show the timestamp when assignment happened
Headers
| Header | Value | Required | Description |
|---|---|---|---|
| Authorization | Bearer {token} | Required | Bearer token from merchant login |
| Accept | application/json | Required | Response format |
Response
{
"success": true,
"data": {
"order_id": 20,
"order_reference": "ORD20251231452AA6",
"status": "assigned",
"type": "PayIN",
"amount": "2500.00",
"customer_mobile": "9876543211",
"customer_name": "Jane Smith",
"invoice_number": "INV-002",
"notes": "Test order via API",
"merchant": {
"id": 3,
"name": "Sample Merchant",
"code": "MERCHANT123"
},
"merchant_category": {
"id": 2,
"name": "E-commerce"
},
"pool": {
"id": 16,
"name": "Premium Pool",
"type": "instant"
},
"assigned_trader": {
"id": 14,
"name": "Riswan",
"email": "blindarkman@gmail.com",
"upi_id": "testuser@okbank"
},
"assigned_at": "2026-01-01T06:30:00.000000Z",
"processed_at": null,
"completed_at": null,
"created_at": "2025-12-31T09:23:00.000000Z",
"updated_at": "2025-12-31T09:23:00.000000Z"
}
}
curl -X GET https://api.fyup.io/api/v1/orders/ORD20251231ABC123 \ -H "Authorization: Bearer YOUR_TOKEN"
{
"success": true,
"data": {
"order_id": 123,
"order_reference": "ORD20251231ABC123",
"status": "pending",
"type": "PayIN",
"amount": "5000.00",
"customer_mobile": "9876543210",
"customer_name": "John Doe",
"invoice_number": "INV-001",
"notes": "Order for premium service",
"merchant": {
"id": 1,
"name": "Sample Merchant",
"code": "MERCHANT001"
},
"merchant_category": {
"id": 2,
"name": "E-Commerce"
},
"pool": {
"id": 3,
"name": "Premium Pool",
"type": "instant"
},
"assigned_trader": null,
"assigned_at": null,
"processed_at": null,
"completed_at": null,
"created_at": "2025-12-31T12:00:00.000000Z",
"updated_at": "2025-12-31T12:00:00.000000Z"
}
}
Merchant Orders List
Get a list of all orders for the authenticated merchant with optional filtering and pagination.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| status | string | Optional | Filter by status: pending, assigned, processing, completed, failed, cancelled |
| type | string | Optional | Filter by type: PayIn, PayOut |
| from_date | date | Optional | Filter orders from this date (YYYY-MM-DD) |
| to_date | date | Optional | Filter orders until this date (YYYY-MM-DD) |
| per_page | integer | Optional | Number of orders per page (1-100, default: 15) |
| page | integer | Optional | Page number (default: 1) |
Authentication
API Key Required: Use your merchant API key in the Authorization header
curl -X GET "https://api.fyup.io/api/v1/merchant/orders?status=pending&per_page=20" \ -H "Authorization: Bearer pk_live_your_merchant_api_key_here"
{
"success": true,
"message": "Orders retrieved successfully",
"data": {
"orders": [
{
"order_id": 123,
"order_reference": "ORD20251231ABC123",
"status": "pending",
"type": "PayIN",
"amount": 5000.00,
"customer_mobile": "9876543210",
"customer_name": "John Doe",
"invoice_number": "INV-001",
"assigned_trader": null,
"created_at": "2025-12-31T12:00:00.000000Z",
"updated_at": "2025-12-31T12:00:00.000000Z"
}
],
"pagination": {
"current_page": 1,
"per_page": 20,
"total": 150,
"last_page": 8,
"from": 1,
"to": 20
}
}
}
Merchant Order Details
Get detailed information about a specific order by order reference or ID. Merchants can only access their own orders.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| identifier | string | Required | Order reference (e.g., ORD20251231ABC123) or order ID |
Authentication
API Key Required: Use your merchant API key in the Authorization header
curl -X GET https://api.fyup.io/api/v1/merchant/orders/ORD20251231ABC123 \ -H "Authorization: Bearer pk_live_your_merchant_api_key_here"
{
"success": true,
"message": "Order details retrieved successfully",
"data": {
"order": {
"order_id": 123,
"order_reference": "ORD20251231ABC123",
"status": "pending",
"type": "PayIN",
"amount": 5000.00,
"customer_mobile": "9876543210",
"customer_name": "John Doe",
"invoice_number": "INV-001",
"notes": "Order for premium service",
"merchant": {
"id": 1,
"name": "Sample Merchant",
"code": "MERCHANT001"
},
"merchant_category": {
"id": 2,
"name": "E-Commerce"
},
"pool": {
"id": 3,
"name": "Premium Pool",
"type": "instant"
},
"assigned_trader": null,
"assigned_at": null,
"processed_at": null,
"completed_at": null,
"created_at": "2025-12-31T12:00:00.000000Z",
"updated_at": "2025-12-31T12:00:00.000000Z"
}
}
}
Get Recent Orders
Retrieve recent orders for the authenticated trader. Trader is automatically identified from the Bearer token.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | integer | Optional | Number of orders to return (default: 20, max: 100) |
| page | integer | Optional | Page number for pagination (default: 1) |
| status | string | Optional | Filter by status: completed, failed, refunded, cancelled |
| days | integer | Optional | Number of days to look back (default: 30, max: 90) |
Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer {your_token} | Yes |
| Content-Type | application/json | Yes |
| Accept | application/json | Yes |
Success Response
{
"success": true,
"message": "Recent orders retrieved successfully",
"data": {
"orders": [
{
"order_id": 123,
"pool_name": "Dream11",
"amount": "5000.00",
"commission": null,
"timing": {
"created_at": "2025-12-31 09:23:00",
"updated_at": "2025-12-31 09:23:00",
"processing_time": null
},
"date_time": "2025-12-31 09:23:00"
}
],
"total_count": 10
}
}
curl -X GET https://api.fyup.io/api/trader/orders/recent \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json"
{
"success": true,
"message": "Recent orders retrieved successfully",
"data": {
"orders": [
{
"order_id": 123,
"pool_name": "Dream11",
"amount": "5000.00",
"commission": null,
"timing": {
"created_at": "2025-12-31 09:23:00",
"updated_at": "2025-12-31 09:23:00",
"processing_time": null
},
"date_time": "2025-12-31 09:23:00"
}
],
"total_count": 10
}
}
Get Pending Orders
Retrieve all pending orders assigned to the authenticated trader. Trader is automatically identified from the authentication token.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | integer | Optional | Number of orders per page (default: 20, max: 100) |
| page | integer | Optional | Page number for pagination (default: 1) |
Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer {your_token} | Yes |
| Content-Type | application/json | Yes |
| Accept | application/json | Yes |
Success Response
{
"success": true,
"message": "Pending orders retrieved successfully",
"data": {
"orders": [
{
"order_id": 456,
"pool_name": "IGAMING LOW RISK POOL",
"amount": "7500.00",
"commission": null,
"timing": {
"created_at": "2025-12-31 10:15:00",
"updated_at": "2025-12-31 10:15:00",
"processing_time": null
},
"date_time": "2025-12-31 10:15:00"
}
],
"total_count": 16
}
}
curl -X GET https://api.fyup.io/api/trader/orders/pending \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json"
{
"success": true,
"message": "Pending orders retrieved successfully",
"data": {
"orders": [
{
"order_id": 456,
"pool_name": "IGAMING LOW RISK POOL",
"amount": "7500.00",
"commission": null,
"timing": {
"created_at": "2025-12-31 10:15:00",
"updated_at": "2025-12-31 10:15:00",
"processing_time": null
},
"date_time": "2025-12-31 10:15:00"
}
],
"total_count": 16
}
}
Accept Order
Accept a pending order assigned to the authenticated trader. Requires transaction number validation before accepting. Order status changes from pending/assigned to assigned.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| orderId | integer | Required | Unique order identifier (order ID or order reference) |
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
| transaction_number | string | Required | Transaction number from the order. Must match the order's transaction_number field |
Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer {your_token} | Yes |
| Content-Type | application/json | Yes |
| Accept | application/json | Yes |
Success Response
{
"success": true,
"message": "Order accepted successfully",
"data": {
"order_id": 123,
"order_reference": "ORD-F27EEB0",
"pool_name": "Dream11",
"amount": 5000.00,
"status": "assigned",
"action_taken": "accept",
"accepted_at": "2026-01-08T10:30:00Z"
},
"timestamp": "2026-01-08T10:30:00Z"
}
Error Responses
{
"success": false,
"message": "The given transaction number is wrong",
"timestamp": "2026-01-08T10:30:00Z"
}
{
"success": false,
"message": "Order not found or not in pending status",
"timestamp": "2026-01-08T10:30:00Z"
}
curl -X POST https://api.fyup.io/api/trader/orders/123/accept \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"transaction_number": "TXN123456789"
}'
{
"success": true,
"message": "Order accepted successfully",
"data": {
"order_id": 123,
"order_reference": "ORD-F27EEB0",
"pool_name": "Dream11",
"amount": 5000.00,
"status": "assigned",
"action_taken": "accept",
"accepted_at": "2026-01-08T10:30:00Z"
},
"timestamp": "2026-01-08T10:30:00Z"
}
Reject Order
Reject a pending order assigned to the authenticated trader. Order status changes to cancelled and trader assignment is removed.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| orderId | integer | Required | Unique order identifier (order ID or order reference) |
Request Body (Optional)
| Parameter | Type | Required | Description |
|---|---|---|---|
| reason | string | Optional | Reason for rejection (max 500 characters) |
Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer {your_token} | Yes |
| Content-Type | application/json | Yes |
| Accept | application/json | Yes |
Success Response
{
"success": true,
"message": "Order rejected successfully",
"data": {
"order_id": 123,
"order_reference": "ORD-F27EEB0",
"status": "cancelled",
"action_taken": "reject",
"rejected_at": "2026-01-08T10:30:00Z"
},
"timestamp": "2026-01-08T10:30:00Z"
}
curl -X POST https://api.fyup.io/api/trader/orders/123/reject \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"reason": "Unable to process at this time"
}'
curl -X POST https://api.fyup.io/api/trader/orders/123/reject \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json"
{
"success": true,
"message": "Order rejected successfully",
"data": {
"order_id": 123,
"order_reference": "ORD-F27EEB0",
"status": "cancelled",
"action_taken": "reject",
"rejected_at": "2026-01-08T10:30:00Z"
},
"timestamp": "2026-01-08T10:30:00Z"
}
Update Payment Details
Update payment UTR number and upload payment proof screenshot for an assigned order. Order status automatically changes to "processing" after successful update.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| orderId | integer | Required | Unique order identifier (order ID or order reference) |
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
| payment_utr | string | Required | Payment UTR/Reference number (max 255 characters) |
| payment_proof | file | Required | Payment proof screenshot (JPEG, JPG, PNG, WEBP, max 5MB) |
Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer {your_token} | Yes |
| Content-Type | multipart/form-data | Yes |
| Accept | application/json | Yes |
Business Rules
- Only the assigned trader can update payment details
- Payment updates allowed only for orders with status: pending, assigned, accepted, processing
- Order status automatically changes to "processing" after successful update
- Old payment proof is automatically deleted when uploading a new one
- Payment proof is stored in
storage/app/public/payment-proofs/
Success Response
{
"success": true,
"message": "Payment details updated successfully",
"data": {
"order_id": 123,
"order_reference": "ORD20260108ABC123",
"payment_utr": "UTR123456789",
"payment_proof_url": "https://api.fyup.io/storage/payment-proofs/payment_proof_ORD20260108ABC123_1736319600.jpg",
"status": "processing",
"updated_at": "2026-01-08T10:30:00.000000Z"
},
"timestamp": "2026-01-08T10:30:00.000000Z"
}
Error Responses
{
"success": false,
"message": "Trader profile not found.",
"timestamp": "2026-01-08T10:30:00.000000Z"
}
{
"success": false,
"message": "Order not found or access denied",
"timestamp": "2026-01-08T10:30:00.000000Z"
}
{
"success": false,
"message": "Order status does not allow payment updates. Current status: completed",
"timestamp": "2026-01-08T10:30:00.000000Z"
}
{
"message": "The payment utr field is required. (and 1 more error)",
"errors": {
"payment_utr": [
"The payment utr field is required."
],
"payment_proof": [
"The payment proof field is required."
]
}
}
curl -X POST https://api.fyup.io/api/trader/orders/123/update-payment \ -H "Authorization: Bearer YOUR_TOKEN" \ -F "payment_utr=UTR123456789" \ -F "payment_proof=@/path/to/payment_screenshot.jpg"
const formData = new FormData();
formData.append('payment_utr', 'UTR123456789');
formData.append('payment_proof', imageFile);
const response = await axios.post(
'https://api.fyup.io/api/trader/orders/123/update-payment',
formData,
{
headers: {
'Authorization': 'Bearer YOUR_TOKEN',
'Content-Type': 'multipart/form-data'
}
}
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.fyup.io/api/trader/orders/123/update-payment');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_TOKEN'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
'payment_utr' => 'UTR123456789',
'payment_proof' => new CURLFile('/path/to/payment_screenshot.jpg')
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
{
"success": true,
"message": "Payment details updated successfully",
"data": {
"order_id": 123,
"order_reference": "ORD20260108ABC123",
"payment_utr": "UTR123456789",
"payment_proof_url": "https://api.fyup.io/storage/payment-proofs/payment_proof_ORD20260108ABC123_1736319600.jpg",
"status": "processing",
"updated_at": "2026-01-08T10:30:00.000000Z"
},
"timestamp": "2026-01-08T10:30:00.000000Z"
}
ā ļø DEPRECATED: Accept/Decline Order
This endpoint is deprecated. Please use the new trader-specific endpoints:
- Use
/api/trader/orders/{orderId}/acceptto accept orders - Use
/api/trader/orders/{orderId}/rejectto reject orders - Use
/api/trader/orders/{orderId}/update-paymentto update payment details
Request Parameters (Legacy)
| Parameter | Type | Required | Description |
|---|---|---|---|
| order_id | integer | Required | Unique order identifier |
| action | string | Required | Action to perform: "accept" or "decline" |
Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer {your_token} | Yes |
| Content-Type | application/json | Yes |
| Accept | application/json | Yes |
Success Response
{
"success": true,
"message": "Order accepted successfully",
"data": {
"order_id": 123,
"pool_name": "Dream11",
"amount": "5000.00",
"commission": null,
"timing": {
"created_at": "2025-12-31 09:23:00",
"updated_at": "2025-12-31 09:25:00",
"accepted_at": "2025-12-31 09:25:00"
},
"date_time": "2025-12-31 09:25:00",
"status": "accepted",
"action_taken": "accept"
}
}
curl -X POST https://api.fyup.io/api/v1/orders/action \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"order_id": 123,
"action": "accept"
}'
curl -X POST https://api.fyup.io/api/v1/orders/action \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"order_id": 123,
"action": "decline"
}'
{
"success": true,
"message": "Order accepted successfully",
"data": {
"order_id": 123,
"pool_name": "Dream11",
"amount": "5000.00",
"commission": null,
"timing": {
"created_at": "2025-12-31 09:23:00",
"updated_at": "2025-12-31 09:25:00",
"accepted_at": "2025-12-31 09:25:00"
},
"date_time": "2025-12-31 09:25:00",
"status": "accepted",
"action_taken": "accept"
}
}
{
"success": true,
"message": "Order declined successfully",
"data": {
"order_id": 123,
"pool_name": "Dream11",
"amount": "5000.00",
"commission": null,
"timing": {
"created_at": "2025-12-31 09:23:00",
"updated_at": "2025-12-31 09:25:00",
"declined_at": "2025-12-31 09:25:00"
},
"date_time": "2025-12-31 09:25:00",
"status": "cancelled",
"action_taken": "decline"
}
}
Firebase Notification
Send Firebase notification to trader's mobile device. This API is designed for mobile team integration to send push notifications to traders.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| trader_id | integer | Required | ID of the trader to send notification to |
| title | string | Required | Notification title displayed on device |
| message | string | Required | Notification message content |
| message_status | string | Required | Status of the message (e.g., "sent", "delivered") |
Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer {your_token} | Yes |
| Content-Type | application/json | Yes |
| Accept | application/json | Yes |
Success Response
{
"success": true,
"message": "Firebase notification sent successfully",
"data": {
"trader_id": 14,
"title": "New Order Alert",
"message": "You have a new order worth ā¹5000 available",
"message_status": "sent",
"message_status_app": "new",
"notification_id": "firebase_123456789",
"sent_at": "2025-12-31 10:30:00"
}
}
curl -X POST https://api.fyup.io/api/v1/firebase/send-notification \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"trader_id": 14,
"title": "New Order Alert",
"message": "You have a new order worth ā¹5000 available",
"message_status": "sent"
}'
{
"success": true,
"message": "Firebase notification sent successfully",
"data": {
"trader_id": 14,
"title": "New Order Alert",
"message": "You have a new order worth ā¹5000 available",
"message_status": "sent",
"message_status_app": "new",
"notification_id": "firebase_123456789",
"sent_at": "2025-12-31 10:30:00"
}
}
{
"success": false,
"message": "Validation failed",
"errors": {
"trader_id": [
"The selected trader is invalid."
]
}
}
Wallet Overview
Get complete wallet overview including balance, profit, exchange rate, deposit address, and formatted data for mobile display.
Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer {your_token} | Yes |
| Content-Type | application/json | Yes |
| Accept | application/json | Yes |
curl -X GET https://api.fyup.io/api/trader/wallet/overview \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json"
{
"success": true,
"message": "Wallet overview retrieved successfully",
"data": {
"wallet_id": "#1ru2154F",
"balance": {
"inr": "262700.00",
"usdt": 2840.0000
},
"profit": "0.00",
"exchange_rate": 92.5,
"deposit_wallet_address": "TA97smfDpAgW1bAt7z1vbHQa6M3hF3ibKZ",
"formatted": {
"balance_inr": "ā¹262,700.00",
"balance_usdt": "USDT 2,840.0000",
"profit": "ā¹0.00"
}
}
}
Wallet Balance
Get only wallet balance information for quick checks (lightweight endpoint).
Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer {your_token} | Yes |
| Content-Type | application/json | Yes |
| Accept | application/json | Yes |
curl -X GET https://api.fyup.io/api/trader/wallet/balance \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json"
{
"success": true,
"message": "Balance retrieved successfully",
"data": {
"balance": {
"inr": 262700.00,
"usdt": 2840.0000,
"formatted_inr": "ā¹262,700.00",
"formatted_usdt": "USDT 2,840.0000"
},
"exchange_rate": 92.5
}
}
Wallet Transactions
Get paginated transaction history with optional filtering by transaction type.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| per_page | integer | Optional | Number of transactions per page (default: 20) |
| page | integer | Optional | Page number (default: 1) |
| type | string | Optional | Filter by type: deposit, withdraw, transfer, profit |
Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer {your_token} | Yes |
| Content-Type | application/json | Yes |
| Accept | application/json | Yes |
curl -X GET "https://api.fyup.io/api/trader/wallet/transactions?page=1&per_page=10&type=deposit" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json"
{
"success": true,
"message": "Transaction history retrieved successfully",
"data": [
{
"id": 54,
"transaction_number": "TXN-6955DAAA78F1B",
"type": "Deposit",
"direction": "credit",
"amount": {
"inr": "1000.00",
"usdt": "10.8108",
"formatted_inr": "ā¹1,000.00",
"formatted_usdt": "USDT 10.8108"
},
"exchange_rate": "92.5000",
"status": "Pending",
"description": "USDT deposit",
"created_at": "2026-01-01T02:23:38.000000Z",
"formatted_date": "Jan 01, 2026 2:23 AM",
"relative_time": "2 hours ago"
}
],
"pagination": {
"current_page": 1,
"last_page": 3,
"per_page": 10,
"total": 25,
"has_more_pages": true
}
}
Deposit Information
Get deposit wallet address, exchange rate, and deposit instructions.
Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer {your_token} | Yes |
| Content-Type | application/json | Yes |
| Accept | application/json | Yes |
curl -X GET https://api.fyup.io/api/trader/wallet/deposit-info \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json"
{
"success": true,
"message": "Deposit information retrieved successfully",
"data": {
"deposit_wallet_address": "TA97smfDpAgW1bAt7z1vbHQa6M3hF3ibKZ",
"exchange_rate": 92.5,
"currency": "INR",
"crypto_currency": "USDT",
"network": "TRC20",
"minimum_deposit": 10,
"note": "Only send USDT (TRC20) to this address. Minimum deposit is 10 USDT."
}
}
Wallet Statistics
Get comprehensive wallet statistics for mobile dashboard display.
Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer {your_token} | Yes |
| Content-Type | application/json | Yes |
| Accept | application/json | Yes |
curl -X GET https://api.fyup.io/api/trader/wallet/statistics \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json"
{
"success": true,
"message": "Wallet statistics retrieved successfully",
"data": {
"current_balance": {
"inr": 262700.00,
"formatted": "ā¹262,700.00"
},
"total_profit": {
"inr": 15000.00,
"formatted": "ā¹15,000.00"
},
"total_deposits": {
"inr": 500000.00,
"formatted": "ā¹500,000.00"
},
"total_withdrawals": {
"inr": 252300.00,
"formatted": "ā¹252,300.00"
},
"recent_transactions_count": 25,
"net_gain": {
"inr": 262700.00,
"formatted": "ā¹262,700.00"
}
}
}
Get Trader Profit
Get the total profit amount for the authenticated trader based on completed orders. Calculated as the sum of all fees from orders with status 'completed' assigned to this trader.
Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer {your_token} | Yes |
| Content-Type | application/json | Yes |
| Accept | application/json | Yes |
curl -X GET https://api.fyup.io/api/trader/wallet/profit \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json"
{
"success": true,
"message": "Profit retrieved successfully",
"data": {
"profit": {
"amount": "1250.75",
"currency": "INR",
"formatted": "ā¹1,250.75"
},
"total_completed_orders": 42,
"calculation": {
"sum_of_fees": "1250.75",
"order_status": "completed",
"description": "Total fees from all completed orders assigned to this trader"
}
}
}
{
"success": false,
"message": "Unauthenticated"
}
Get Mobile Notifications
Get all notifications for the authenticated trader, filtered by assigned_trader_id. Supports pagination and filtering by read status and notification type.
| Parameter | Type | Required | Description |
|---|---|---|---|
| per_page | integer | No | Number of items per page (1-50, default: 15) |
| page | integer | No | Page number (default: 1) |
| status | string | No | Filter by read status: 'read', 'unread' or omit for all |
| type | string | No | Filter by notification type |
| Field | Type | Description |
|---|---|---|
| id | string | Notification UUID |
| type | string | Notification class type |
| notifiable_type | string | Model type (e.g., App\Models\User) |
| notifiable_id | string | Model ID |
| data | object | JSON notification data |
| read_at | string|null | ISO datetime when marked read |
| created_at | string | ISO creation datetime |
| updated_at | string | ISO last update datetime |
| channel | string | Notification channel |
| title | string | Notification title |
| message | string | Notification message |
| status | string | Current status |
| deleted_at | string|null | ISO deletion datetime |
| read_status | string | Read status (read/unread) |
| notificationtype | string | Type category |
curl -X GET "https://api.fyup.io/api/trader/mobile/notifications/?per_page=15&page=1&status=unread" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json"
{
"success": true,
"message": "Notifications retrieved successfully",
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"type": "App\\Notifications\\TraderDepositApproved",
"notifiable_type": "App\\Models\\User",
"notifiable_id": "123",
"data": {
"amount": "1000.00",
"transaction_id": "TXN123456789"
},
"read_at": null,
"created_at": "2026-01-18T10:30:00.000000Z",
"updated_at": "2026-01-18T10:30:00.000000Z",
"channel": "firebase",
"title": "Deposit Approved",
"message": "Your deposit of ā¹1,000 has been approved.",
"status": "sent",
"deleted_at": null,
"read_status": "unread",
"notificationtype": "transaction"
}
],
"meta": {
"current_page": 1,
"total_pages": 3,
"per_page": 15,
"total": 45,
"from": 1,
"to": 15
}
}
Update Notification Status
Update the read status of a specific notification by notification ID. Can mark as 'read' or 'unread'.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Notification UUID to update |
| Parameter | Type | Required | Description |
|---|---|---|---|
| read_status | string | Yes | 'read' or 'unread' |
curl -X PUT "https://api.fyup.io/api/trader/mobile/notifications/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"read_status": "read"
}'
{
"success": true,
"message": "Notification marked as read successfully",
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"read_at": "2026-01-18T11:15:00.000000Z",
"read_status": "read",
"status": "read"
}
}
Get Unread Notifications Count
Get the count of unread notifications for the authenticated trader. Useful for mobile app badges.
curl -X GET "https://api.fyup.io/api/trader/mobile/notifications/unread-count" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json"
{
"success": true,
"message": "Unread count retrieved successfully",
"data": {
"unread_count": 12
}
}
Mark All Notifications Read
Mark all unread notifications as read for the authenticated trader. Useful for clearing notification badges in mobile apps.
curl -X PUT "https://api.fyup.io/api/trader/mobile/notifications/mark-all-read" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json"
{
"success": true,
"message": "All notifications marked as read successfully",
"data": {
"updated_count": 12
}
}
Initialize Deposit
Initialize a new deposit transaction for the authenticated trader. This is step 1 of the 3-step deposit process.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| amount | Number | Yes | Deposit amount in INR |
| network | String | No | Crypto network (default: TRC-20) |
curl -X POST https://api.fyup.io/api/trader/deposit/initialize \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"amount": 5000,
"network": "TRC-20"
}'
{
"success": true,
"message": "Deposit initialized successfully",
"data": {
"deposit_id": "DEP-676589D5A1234",
"amount": {
"inr": 5000,
"usdt": 58.82,
"formatted_inr": "ā¹5,000",
"formatted_usdt": "58.82 USDT"
},
"wallet_address": "TQRKdjHWA9xqzpqdddXW7F3vGeDJpQ8oid",
"qr_code": "data:image/png;base64,iVBORw0KGgoAAAANS...",
"network": "TRC-20",
"exchange_rate": {
"rate": 84.99,
"formatted": "ā¹84.99 per USDT"
},
"expires_at": "2025-12-31T10:30:00.000000Z"
}
}
Submit Deposit Details
Submit deposit transaction details and proof of payment. This is step 2 of the 3-step deposit process.
Request Body (multipart/form-data)
| Field | Type | Required | Description |
|---|---|---|---|
| deposit_id | String | Yes | Deposit ID from initialize step |
| transaction_hash | String | Yes | Blockchain transaction hash/reference |
| payment_proof | File/String | Yes | Payment proof: file upload (jpg, png, pdf, max 5MB) OR base64 image string |
| notes | String | No | Additional notes or comments |
curl -X POST https://api.fyup.io/api/trader/deposit/submit \ -H "Authorization: Bearer YOUR_TOKEN" \ -F "deposit_id=DEP-676589D5A1234" \ -F "transaction_hash=0xa1b2c3d4e5f6..." \ -F "payment_proof=@payment_screenshot.jpg" \ -F "notes=Payment sent successfully"
curl -X POST https://api.fyup.io/api/trader/deposit/submit \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"deposit_id": "DEP-676589D5A1234",
"transaction_hash": "0xa1b2c3d4e5f6...",
"payment_proof": "data:image/png;base64,iVBORw0KGgoAAAANSU...",
"notes": "Payment sent via mobile app"
}'
{
"success": true,
"message": "Deposit details submitted successfully",
"data": {
"deposit_id": "DEP-676589D5A1234",
"transaction_number": "TXN-6556290DC4CAE",
"status": "pending_verification",
"submitted_at": "2025-12-31T10:15:00.000000Z",
"estimated_verification_time": "1-2 hours"
}
}
Get Deposit Confirmation
Get confirmation details for a deposit transaction. This is step 3 of the 3-step deposit process.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| transaction_number | string | Required | Transaction number from submit deposit response |
Request Example
curl -X GET "https://api.fyup.io/api/trader/deposit/confirmation?transaction_number=TXN-WPN8F01BE7IO" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Accept: application/json"
curl -X GET https://api.fyup.io/api/trader/deposit/confirmation/DEP-676589D5A1234 \ -H "Authorization: Bearer YOUR_TOKEN"
{
"success": true,
"message": "Deposit confirmation retrieved successfully",
"data": {
"deposit_id": "DEP-676589D5A1234",
"transaction_number": "TXN-6556290DC4CAE",
"status": "pending_verification",
"amount": {
"inr": 5000,
"usdt": 58.82,
"formatted_inr": "ā¹5,000",
"formatted_usdt": "58.82 USDT"
},
"transaction_hash": "0xa1b2c3d4e5f6...",
"payment_proof_url": "https://api.fyup.io/storage/payment-proofs/proof123.jpg",
"network": "TRC-20",
"submitted_at": "2025-12-31T10:15:00.000000Z",
"estimated_verification_time": "1-2 hours",
"what_next": [
"Your deposit is being verified by our team",
"You will receive a notification once verification is complete",
"Funds will be credited to your wallet within 1-2 hours",
"Contact support if you have any questions"
]
}
}
Get Deposit History
Get paginated list of all deposit transactions for the authenticated trader.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| page | Integer | No | Page number (default: 1) |
| per_page | Integer | No | Items per page (default: 15, max: 50) |
| status | String | No | Filter by status (pending, approved, rejected) |
curl -X GET "https://api.fyup.io/api/trader/deposit/history?page=1&per_page=10&status=pending" \ -H "Authorization: Bearer YOUR_TOKEN"
{
"success": true,
"message": "Deposit history retrieved successfully",
"data": [
{
"deposit_id": "DEP-676589D5A1234",
"transaction_number": "TXN-6556290DC4CAE",
"amount": {
"inr": 5000,
"usdt": 58.82,
"formatted_inr": "ā¹5,000",
"formatted_usdt": "58.82 USDT"
},
"status": "pending_verification",
"transaction_hash": "0xa1b2c3d4e5f6...",
"network": "TRC-20",
"submitted_at": "2025-12-31T10:15:00.000000Z",
"verified_at": null
}
],
"pagination": {
"current_page": 1,
"per_page": 10,
"total": 25,
"last_page": 3,
"from": 1,
"to": 10
}
}
Create Withdrawal Request
Create a new withdrawal request. Simply provide the INR and USDT amounts - admin will process to your registered payment method.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| inr_amount | Decimal | Yes | Amount in INR to withdraw (minimum: 100) |
| usdt_amount | Decimal | Yes | Amount in USDT equivalent (minimum: 1) |
| notes | String | No | Optional notes (max 500 characters) |
curl -X POST "https://api.fyup.io/api/trader/withdraw/create" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"inr_amount": 10000,
"usdt_amount": 108.11,
"notes": "Monthly withdrawal"
}'
curl -X POST "https://api.fyup.io/api/trader/withdraw/create" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"inr_amount": 5000,
"usdt_amount": 54.05
}'
{
"success": true,
"message": "Withdraw request created successfully",
"data": {
"transaction_number": "TXN-694A99332353B",
"withdraw_id": 15,
"amounts": {
"usdt": 100.5000,
"inr": 9296.25,
"formatted_usdt": "100.5000 USDT",
"formatted_inr": "ā¹9,296.25"
},
"exchange_rate": 92.50,
"status": "pending",
"submitted_at": "2025-12-23T13:29:23.000000Z",
"processing_info": {
"message": "Your withdrawal request has been submitted and is pending admin approval.",
"estimated_time": "Within 24-48 hours",
"next_step": "Our team will review and process your withdrawal request. You will be notified once it's approved."
}
}
}
{
"success": false,
"message": "Insufficient balance",
"data": {
"required_balance": 9296.25,
"current_balance": 5000.00,
"shortage": 4296.25
}
}
Get Withdrawal History
Get paginated list of all withdrawal transactions for the authenticated trader.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| page | Integer | No | Page number (default: 1) |
| limit | Integer | No | Items per page (default: 10) |
curl -X GET "https://api.fyup.io/api/trader/withdraw/history?page=1&limit=10" \ -H "Authorization: Bearer YOUR_TOKEN"
{
"success": true,
"message": "Withdraw history retrieved successfully",
"data": {
"withdrawals": [
{
"transaction_number": "TXN-694A99332353B",
"amounts": {
"usdt": 100.5000,
"inr": 9296.25,
"formatted_usdt": "100.5000 USDT",
"formatted_inr": "ā¹9,296.25"
},
"status": {
"code": "pending",
"label": "Pending Approval",
"color": "#f59e0b"
},
"withdrawal_method": "bank_transfer",
"submitted_at": "Dec 23, 2025 1:29 PM",
"processed_at": null,
"rejection_reason": null
}
],
"pagination": {
"current_page": 1,
"total_pages": 1,
"total_items": 1,
"per_page": 10
}
}
}
Get Withdrawal Details
Get detailed information about a specific withdrawal transaction.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| transaction_number | String | Yes | The transaction number from withdrawal creation |
curl -X GET "https://api.fyup.io/api/trader/withdraw/details?transaction_number=TXN-694A99332353B" \ -H "Authorization: Bearer YOUR_TOKEN"
{
"success": true,
"message": "Withdraw details retrieved successfully",
"data": {
"transaction_number": "TXN-694A99332353B",
"amounts": {
"usdt": 100.5000,
"inr": 9296.25,
"formatted_usdt": "100.5000 USDT",
"formatted_inr": "ā¹9,296.25"
},
"exchange_rate": 92.50,
"status": {
"code": "pending",
"label": "Pending Approval",
"color": "#f59e0b"
},
"withdrawal_method": "bank_transfer",
"bank_details": {
"account_holder_name": "Riswan Kumar",
"account_number": "1234567890",
"ifsc_code": "SBIN0001234",
"bank_name": "State Bank of India",
"branch": "Mumbai Main"
},
"crypto_address": null,
"crypto_network": null,
"submitted_at": "Dec 23, 2025 1:29 PM",
"processed_at": null,
"verified_at": null,
"rejected_at": null,
"rejection_reason": null,
"notes": "Monthly withdrawal",
"processing_info": {
"message": "Your withdrawal is pending approval by our admin team.",
"estimated_time": "Within 24-48 hours"
}
}
}
Create Transfer Request
Create a new transfer request to send funds to another wallet address.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| inr_amount | Decimal | Yes | Amount in INR to transfer (minimum: 100) |
| usdt_amount | Decimal | Yes | Amount in USDT equivalent (minimum: 1) |
| recipient_wallet_id | String | Yes | Recipient's wallet ID (e.g., #1ur2154F) |
| notes | String | No | Optional notes (max 500 characters) |
curl -X POST "https://api.fyup.io/api/trader/transfer/create" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"inr_amount": 5000,
"usdt_amount": 54.05,
"recipient_wallet_id": "#1ur2154F",
"notes": "Payment to supplier"
}'
{
"success": true,
"message": "Transfer request created successfully",
"data": {
"transaction_number": "TXN-694A99332353C",
"transfer_id": 16,
"amounts": {
"usdt": 54.0500,
"inr": 5000.00,
"formatted_usdt": "54.0500 USDT",
"formatted_inr": "ā¹5,000.00"
},
"recipient_wallet_id": "#1ur2154F",
"exchange_rate": 92.50,
"status": "pending",
"submitted_at": "2026-01-12T14:30:00.000000Z",
"processing_info": {
"message": "Your transfer request has been submitted and is pending admin approval.",
"estimated_time": "Within 24-48 hours",
"next_step": "Our team will review and process your transfer request. You will be notified once it's approved."
}
}
}
{
"success": false,
"message": "Insufficient balance",
"data": {
"required_balance": 5000.00,
"current_balance": 2500.00,
"shortage": 2500.00
}
}
{
"success": false,
"message": "Validation failed",
"errors": {
"recipient_wallet_id": [
"The recipient wallet id field is required."
]
}
}
Get Connectivity Test
Get or create a new UPI connectivity test with random amounts. This API creates a new test for the day if none exists, or returns existing test data.
Headers
| Header | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Yes | Bearer {access_token} |
| Content-Type | string | Yes | application/json |
Response Examples
curl -X GET "https://api.fyup.io/api/trader/connectivity/test" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/json"
{
"success": true,
"message": "New connectivity test created",
"data": {
"test_id": 123,
"upi_id": "trader123@paytm",
"status": {
"receive": {
"amount": "ā¹15",
"status": "pending",
"completed_at": null
},
"send": {
"amount": "ā¹22",
"status": "pending",
"completed_at": null
}
},
"is_completed": false,
"created_at": "2026-01-13T10:00:00.000000Z"
}
}
{
"success": true,
"message": "Connectivity test data retrieved",
"data": {
"test_id": 123,
"upi_id": "trader123@paytm",
"status": {
"receive": {
"amount": "ā¹15",
"status": "completed",
"completed_at": "2026-01-13T10:15:00.000000Z"
},
"send": {
"amount": "ā¹22",
"status": "processing",
"completed_at": null
}
},
"is_completed": false,
"created_at": "2026-01-13T10:00:00.000000Z"
}
}
{
"success": false,
"message": "No UPI ID found for trader. Please add a UPI ID first."
}
Update Receive Status
Update the receive status of a connectivity test. Used when trader receives the test amount.
Headers
| Header | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Yes | Bearer {access_token} |
| Content-Type | string | Yes | application/json |
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| testId | integer | Yes | Connectivity test ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| status | string | Yes | Status: start, processing, completed |
| message | string | No | SMS message received (for completed status) |
| received_at | string | No | ISO datetime when amount received |
Response Examples
curl -X PUT "https://api.fyup.io/api/trader/connectivity/123/receive-status" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"status": "completed",
"message": "Received Rs 15 from UPI ID test123@paytm",
"received_at": "2026-01-13T10:15:00Z"
}'
{
"success": true,
"message": "Receive status updated successfully",
"data": {
"test_id": 123,
"status": {
"receive": {
"amount": "ā¹15",
"status": "completed",
"completed_at": "2026-01-13T10:15:00.000000Z"
},
"send": {
"amount": "ā¹22",
"status": "pending",
"completed_at": null
}
},
"is_completed": false
}
}
{
"success": false,
"message": "Connectivity test not found"
}
Update Send Status
Update the send status of a connectivity test. Used when trader sends the test amount.
Headers
| Header | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Yes | Bearer {access_token} |
| Content-Type | string | Yes | application/json |
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| testId | integer | Yes | Connectivity test ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| status | string | Yes | Status: start, processing, completed |
| message | string | No | SMS message sent (for completed status) |
| send_at | string | No | ISO datetime when amount sent |
Response Examples
curl -X PUT "https://api.fyup.io/api/trader/connectivity/123/send-status" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"status": "completed",
"message": "Sent Rs 22 to UPI ID test456@paytm",
"send_at": "2026-01-13T10:30:00Z"
}'
{
"success": true,
"message": "Send status updated successfully",
"data": {
"test_id": 123,
"status": {
"receive": {
"amount": "ā¹15",
"status": "completed",
"completed_at": "2026-01-13T10:15:00.000000Z"
},
"send": {
"amount": "ā¹22",
"status": "completed",
"completed_at": "2026-01-13T10:30:00.000000Z"
}
},
"is_completed": true
}
}
{
"success": false,
"message": "Validation failed",
"errors": {
"status": [
"The status field must be one of: start, processing, completed."
]
}
}
Initiate Payment
Create and initiate a new payment.
{
"success": true,
"message": "Payment initiated successfully",
"data": {
"payment_id": "PAY123456",
"amount": 1000,
"status": "pending"
}
}
Store SMS Data
Store SMS data from trader's device for payment confirmation and connectivity tracking.
Headers
| Header | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Yes | Bearer {your_token} |
| Content-Type | string | Yes | application/json |
Request Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| trader_id | string | Yes | Trader code (e.g., "TEVUV9BN8") |
| date | string | Yes | SMS received date (format: "YYYY-MM-DD HH:mm:ss") |
| sms_provider | string | Yes | Bank/provider name (e.g., "HDFC Bank", "Paytm") |
| sms_content | string | Yes | Complete SMS text content (max 1000 chars) |
| device_id | string | No | Unique device identifier |
| phone_number | string | No | Trader's phone number |
| sender_id | string | No | SMS sender ID (e.g., "HDFCBK", "PYTM") |
| amount | number | No | Transaction amount |
| utr | string | No | UPI Transaction Reference Number |
| otp | string | No | OTP if SMS contains one |
| current_balance | number | No | Account balance after transaction |
| latitude | number | No | GPS latitude |
| longitude | number | No | GPS longitude |
Request Example
{
"trader_id": "TEVUV9BN8",
"date": "2026-01-07 15:30:00",
"sms_provider": "HDFC Bank",
"sms_content": "Rs 5000.00 credited to A/c XX1234 on 07-01-26 via UPI/123456789012. Info: payment received. Avl Bal: Rs 25000.00",
"device_id": "abc123device",
"phone_number": "9876543210",
"sender_id": "HDFCBK",
"amount": 5000.00,
"utr": "123456789012",
"current_balance": 25000.00,
"latitude": 12.9716,
"longitude": 77.5946
}
{
"success": true,
"message": "SMS connectivity data stored successfully",
"data": {
"sms_history_id": 12345,
"trader_id": "TEVUV9BN8",
"trader_name": "Test Trader",
"stored_at": "2026-01-07T15:30:00.000000Z",
"sms_type": "bank_credit"
}
}
Get SMS Data
Retrieve stored SMS data for a trader.
{
"success": true,
"data": {
"current_page": 1,
"data": [
{
"id": 12345,
"trader_id": "TEVUV9BN8",
"amount": 5000.00,
"date": "2024-12-30T14:30:00Z"
}
]
}
}
SMS Statistics
Get SMS statistics and analytics.
{
"success": true,
"data": {
"total_sms": 250,
"processed": 240,
"pending": 10,
"last_updated": "2024-12-30T14:30:00Z"
}
}
Get Complaints List
Get a paginated list of complaints for the authenticated trader with optional filters.
Headers
| Header | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Yes | Bearer {your_token} |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| status | string | No | Filter by status: all, pending, in_progress, resolved, closed, rejected (default: all) |
| category | string | No | Filter by category: payment_issue, transaction_dispute, technical_issue, etc. |
| priority | string | No | Filter by priority: low, medium, high, urgent |
| limit | integer | No | Items per page (1-100, default: 20) |
| page | integer | No | Page number (default: 1) |
Request Example
curl -X GET "https://api.fyup.io/api/trader/complaints?status=pending&limit=10" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json"
{
"success": true,
"message": "Complaints retrieved successfully",
"data": {
"complaints": [
{
"id": 1,
"complaint_number": "TC-659CB3A077691",
"subject": "Payment not received",
"description": "I completed order ORD-123 but haven't received payment yet.",
"category": "payment_issue",
"priority": "high",
"status": "pending",
"order_id": 447,
"order_type": "payin",
"order_reference": "ORD-065B89E3",
"order_amount": "2312.00",
"created_at": "2026-01-09T10:30:00.000+05:30",
"created_at_formatted": "Jan 09, 2026 10:30 AM",
"created_at_relative": "2 hours ago"
}
],
"pagination": {
"current_page": 1,
"last_page": 1,
"per_page": 20,
"total": 1,
"from": 1,
"to": 1
}
}
}
Get Complaint Details
Get detailed information about a specific complaint.
Headers
| Header | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Yes | Bearer {your_token} |
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| complaintId | string/integer | Yes | Complaint ID or complaint_number |
Request Example
curl -X GET "https://api.fyup.io/api/trader/complaints/TC-659CB3A077691" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json"
{
"success": true,
"message": "Complaint details retrieved successfully",
"data": {
"complaint": {
"id": 1,
"complaint_number": "TC-659CB3A077691",
"subject": "Payment not received",
"description": "I completed order ORD-123 but haven't received payment yet.",
"category": "payment_issue",
"priority": "high",
"status": "in_progress",
"order_id": 447,
"order_type": "payin",
"order_reference": "ORD-065B89E3",
"order_amount": "2312.00",
"attachments": [
{
"filename": "screenshot.png",
"path": "complaint-attachments/complaint_1.png",
"url": "/storage/complaint-attachments/complaint_1.png",
"size": 245678,
"mime_type": "image/png"
}
],
"resolution_notes": null,
"resolved_at": null,
"assigned_to": {
"id": 2,
"name": "Support Admin",
"email": "support@fyup.io"
},
"created_at": "2026-01-09T10:30:00.000+05:30",
"updated_at": "2026-01-09T11:00:00.000+05:30"
}
}
}
Create New Complaint
Submit a new complaint with optional file attachments.
Headers
| Header | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Yes | Bearer {your_token} |
| Content-Type | string | Yes | multipart/form-data |
Request Body Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| subject | string | Yes | Complaint subject (max 255 chars) |
| description | string | Yes | Detailed description (max 5000 chars) |
| category | string | Yes | payment_issue, transaction_dispute, technical_issue, account_access, commission_dispute, pool_assignment, app_malfunction, other |
| priority | string | No | low, medium, high, urgent (default: medium) |
| order_id | integer | No | Related order ID (if complaint is about specific order) |
| order_type | string | No | payin or payout (required if order_id is provided) |
| attachments[] | file | No | Up to 5 files (jpg, jpeg, png, pdf, doc, docx, max 5MB each) |
attachments[] as the field name with multipart/form-data encoding. You can upload multiple files by using the same field name with array notation.
Request Example
curl -X POST "https://api.fyup.io/api/trader/complaints" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -F "subject=Payment not received for order ORD-123" \ -F "description=I completed the order on Jan 8 but haven't received payment yet." \ -F "category=payment_issue" \ -F "priority=high" \ -F "order_id=447" \ -F "order_type=payin" \ -F "attachments[]=@/path/to/screenshot.png"
{
"success": true,
"message": "Complaint submitted successfully",
"data": {
"complaint": {
"id": 1,
"complaint_number": "TC-659CB3A077691",
"subject": "Payment not received for order ORD-123",
"category": "payment_issue",
"priority": "high",
"status": "pending",
"order_id": 447,
"order_type": "payin",
"order_reference": "ORD-065B89E3",
"order_amount": "2312.00",
"created_at": "2026-01-09T10:30:00.000+05:30",
"created_at_formatted": "Jan 09, 2026 10:30 AM",
"created_at_relative": "just now"
}
}
}
Update Complaint
Update a complaint (only pending status can be updated by trader).
Headers
| Header | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Yes | Bearer {your_token} |
| Content-Type | string | Yes | multipart/form-data |
Request Body Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| description | string | No | Updated description (max 5000 chars) |
| attachments[] | file | No | Additional files to attach |
Request Example
curl -X PUT "https://api.fyup.io/api/trader/complaints/TC-659CB3A077691" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -F "description=Updated: Order ID is ORD-123. Payment still pending." \ -F "attachments[]=@/path/to/additional_proof.png"
{
"success": true,
"message": "Complaint updated successfully",
"data": {
"complaint": {
"id": 1,
"complaint_number": "TC-659CB3A077691",
"subject": "Payment not received for order ORD-123",
"category": "payment_issue",
"priority": "high",
"status": "pending",
"order_id": 447,
"order_type": "payin",
"order_reference": "ORD-065B89E3",
"order_amount": "2312.00",
"created_at": "2026-01-09T10:30:00.000+05:30",
"created_at_formatted": "Jan 09, 2026 10:30 AM",
"created_at_relative": "2 hours ago"
}
}
}
Delete Complaint
Delete a complaint (only pending status can be deleted).
Headers
| Header | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Yes | Bearer {your_token} |
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| complaintId | string/integer | Yes | Complaint ID or complaint_number |
Request Example
curl -X DELETE "https://api.fyup.io/api/trader/complaints/TC-659CB3A077691" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json"
{
"success": true,
"message": "Complaint deleted successfully",
"data": {
"complaint_id": 1,
"complaint_number": "TC-659CB3A077691",
"deleted_at": "2026-01-09T12:45:00.000+05:30"
}
}
Complaint Statistics
Get complaint statistics for the authenticated trader.
Headers
| Header | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Yes | Bearer {your_token} |
Request Example
curl -X GET "https://api.fyup.io/api/trader/complaints/statistics" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json"
{
"success": true,
"message": "Complaint statistics retrieved successfully",
"data": {
"statistics": {
"total_complaints": 15,
"pending": 3,
"in_progress": 5,
"resolved": 6,
"closed": 1,
"rejected": 0,
"by_category": {
"payment_issue": 8,
"transaction_dispute": 4,
"technical_issue": 2,
"app_malfunction": 1
},
"by_priority": {
"low": 2,
"medium": 8,
"high": 4,
"urgent": 1
},
"avg_resolution_time_hours": 24.5
}
}
}
Get Trader Status
Get current trader availability and online status.
Headers
| Header | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Yes | Bearer {your_token} |
Request Example
curl -X GET https://api.fyup.io/api/trader/status \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json"
{
"success": true,
"message": "Trader status retrieved successfully",
"data": {
"trader_id": 123,
"trader_code": "TEVUV9BN8",
"name": "John Trader",
"email": "john@example.com",
"is_available": true,
"status": "online",
"connectivity_status": "online",
"last_seen_at": "2026-01-07T10:30:00.000000Z",
"is_online": true
},
"timestamp": "2026-01-07T10:30:00.000000Z"
}
Go Online
Set trader status to online/available.
Headers
| Header | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Yes | Bearer {your_token} |
| Content-Type | string | Yes | application/json |
Request Body Parameters (Optional)
| Parameter | Type | Required | Description |
|---|---|---|---|
| latitude | number | No | GPS latitude (-90 to 90) |
| longitude | number | No | GPS longitude (-180 to 180) |
Request Example
{
"latitude": 12.9716,
"longitude": 77.5946
}
{
"success": true,
"message": "Trader is now online",
"data": {
"trader_id": 123,
"trader_code": "TEVUV9BN8",
"is_available": true,
"status": "online",
"last_seen_at": "2026-01-07T10:30:00.000000Z",
"updated_at": "2026-01-07T10:30:00.000000Z"
},
"timestamp": "2026-01-07T10:30:00.000000Z"
}
Go Offline
Set trader status to offline/unavailable.
Headers
| Header | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Yes | Bearer {your_token} |
| Content-Type | string | Yes | application/json |
Request Body Parameters (Optional)
| Parameter | Type | Required | Description |
|---|---|---|---|
| latitude | number | No | GPS latitude (-90 to 90) |
| longitude | number | No | GPS longitude (-180 to 180) |
Request Example
{
"latitude": 12.9716,
"longitude": 77.5946
}
{
"success": true,
"message": "Trader is now offline",
"data": {
"trader_id": 123,
"trader_code": "TEVUV9BN8",
"is_available": false,
"status": "offline",
"last_seen_at": "2026-01-07T10:30:00.000000Z",
"updated_at": "2026-01-07T10:30:00.000000Z"
},
"timestamp": "2026-01-07T10:30:00.000000Z"
}
Update Availability
Update trader availability status with custom value (online/offline).
Headers
| Header | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Yes | Bearer {your_token} |
| Content-Type | string | Yes | application/json |
Request Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| is_available | boolean | Yes | true = online, false = offline |
| latitude | number | No | GPS latitude (-90 to 90) |
| longitude | number | No | GPS longitude (-180 to 180) |
Request Example
{
"is_available": true,
"latitude": 12.9716,
"longitude": 77.5946
}
{
"success": true,
"message": "Trader is now online",
"data": {
"trader_id": 123,
"trader_code": "TEVUV9BN8",
"is_available": true,
"status": "online",
"last_seen_at": "2026-01-07T10:30:00.000000Z",
"updated_at": "2026-01-07T10:30:00.000000Z"
},
"timestamp": "2026-01-07T10:30:00.000000Z"
}