API Documentation

Base URL: https://learning.gfavip.com
Authentication: 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 ID
  • email - User email
  • username - Username
  • tier - 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 student
  • invoice.failed - Cancels enrollment
  • invoice.expired - Cancels enrollment
  • invoice.cancelled - Cancels enrollment