API Documentation
Base URL:
Authentication: Session-based (GFAVIP Simple SSO)
https://learning.gfavip.comAuthentication: Session-based (GFAVIP Simple SSO)
Authentication
GET /login
Redirects to GFAVIP Wallet SSO for authentication
Response:
Redirects to: wallet.gfavip.com/api/auth/sso/authorize
GET /callback
SSO callback endpoint - handles user registration/login
Query Parameters:
user_id- SSO user IDemail- User emailusername- Usernametier- Membership tier (free/paid/team/superadmin)token- SSO token
Courses
GET /api/courses
List all courses
Response:
[
{
"id": 1,
"title": "Course Title",
"description": "Course description",
"instructor_id": 2,
"instructor_name": "Instructor Name",
"min_completion_pct": 80,
"certificate_toggle": true
}
]
POST /api/courses
Requires: Instructor/Admin
Create a new course
Request Body:
{
"title": "Course Title",
"description": "Course description",
"min_completion_pct": 80,
"certificate_toggle": true
}
Response:
{
"id": 1,
"message": "Course created successfully"
}
GET /api/courses/:id
Get course details with modules and lessons
Response:
{
"id": 1,
"title": "Course Title",
"modules": [
{
"id": 1,
"title": "Module 1",
"lessons": [
{
"id": 1,
"title": "Lesson 1",
"video_url": "https://...",
"attachment_url1": "https://..."
}
]
}
]
}
Enrollment
POST /api/student/enroll
Requires: Login
Enroll in a course (handles pricing & payment)
Query Parameters:
?course_id=1
Response (Free Course):
{
"message": "Enrolled successfully"
}
Response (Paid Course):
{
"checkout_url": "https://checkout.gfavip.com/pay/..."
}
Admin Endpoints
GET /api/admin/applications
Requires: Admin
Get instructor applications
Query Parameters:
?status=pending|approved|rejected
PUT /api/admin/applications/:id
Requires: Admin
Approve/reject instructor application
Request Body:
{
"status": "approved" | "rejected"
}
Webhooks
POST /webhooks/payment
Payment webhook from checkout.gfavip.com
Headers:
X-Webhook-Signature: HMAC-SHA256 signature
Events:
invoice.paid- Auto-enrolls studentinvoice.failed- Cancels enrollmentinvoice.expired- Cancels enrollmentinvoice.cancelled- Cancels enrollment