Flexi Kayak GDS

GDS Engine Architecture Baseline

Welcome to the core distribution unified suite of Flexi Kayak . This unified framework allows authorized API partners to dynamically extract media resources, inspect real-time seat snapshot inventories, and settle instant isolated booking cycles against their prepaid credit vaults.

All API endpoint requests strictly utilize JSON object communication payloads. Our ingress engines employ anti-tampering non-leakage filters and reject malicious data modifications on impact.

Authentication Gateways & Headers

Ingress validation middleware performs timing-attack protected cryptographic key verification. Missing or illegal header hashes trigger a fast fail-closed block immediately.

🔑 Public Ready-To-Use Test Credentials (Test API Agent 11 - Test Vault Account):
Developers can utilize this public Test API Key directly within request headers during integration and sandbox testing cycles. This token maps explicitly to the credit limits and ledger books of Test API Agent 11 (Demo Sandbox Agent).

• Header Key: X-API-KEY
• Header Value: FLX-TEST-KEY-2026-SUPER-SECRET

Mandatory Request Protocol Headers

Header KeyData TypeDescription Bounds
Content-TypeStringMust be exactly mapped to application/json; charset=UTF-8
X-API-KEYStringSecure client cryptographic hash token provided by the office.

1. Media Content Procurement API

INTEGRATION FLOW - STEP 1: This endpoint serves as the single source of truth for dynamic pricing model resolutions, commissions, cancellations, and multi-tenant identity profiles across both modules. API partners invoke this first to build product catalogs.

GET https://flexikayak.com/Flexigopal/api/content.php
🎯 Identity Enforcement Dynamic Parsing Rule:
When the administration updates backend configurations for a specific tour or journey (e.g., the 'Jolly Bouy Island' ferry), the flags inside the identity_enforcement response block update dynamically. The frontend integration layout must render conditional fields accordingly:
  • is_id_mandatory = 1: Verification documents must be strictly enforced for every passenger payload.
  • is_id_no_required = 1: Unique document string identifiers (e.g., Aadhaar or Passport numbers) are mandatory input structures.
  • is_id_upload_required = 1: Valid proof document binary attachments via Base64 stream uploads must be strictly collected.

Query String Mappings

Parameter KeyTypeStatusOperational Bounds
moduleStringRequiredStrict routing selectors allowed: ACTIVITY or BOAT.
travel_dateStringRequiredTarget search date string window. Format: YYYY-MM-DD
limitIntegerOptionalRecord packet constraints limit. Bound range: 1 to 500.

3. Real-Time Booking Engine (Dual Module Core)

INTEGRATION FLOW - STEP 3: Locks allocations, deducts financial nets atomically from credit lines, and completes real-time ticketing. Handles both fixed activity slots and boat dynamic schedules safely.

POST https://flexikayak.com/Flexigopal/api/create_booking.php
🛡️ Strict Security & Passenger Validation Guards:
Foreigner Passport Rule: If the nationality parameter value of any passenger inside the payload is non-Indian (i.e., anything other than INDIAN), the id_type must be strictly passed as PASSPORT, and both id_number and id_proof_file strings are strictly required. Failures will trigger an immediate firewall rejection.
Base64 Size Bomb Cap: The uploaded document verification binary stream (id_proof_file) must be strictly capped under a length of 2.0 MB.

Master Object Structural Fields

Field NameData TypeStatusValidation Metric Requirements
request_idStringRequiredUnique context tracking token. Length cap limit 100 chars.
module_typeStringRequiredExplicit processing router targets: ACTIVITY or BOAT.
qtyIntegerRequiredStrict integer scale range bound between 1 and 100.
travel_dateStringRequiredTemporal format string: YYYY-MM-DD (Must be >= Today).
customer_nameStringRequiredPrimary customer string name. Maximum length boundary: 100 chars.
customer_emailStringRequiredGeneric RFC regular expression email filter verification protection.
customer_phoneStringRequiredNumeric validation match sequence check string: ^[0-9]{8,15}$.
availability_idIntegerConditionalMandatory when module_type is ACTIVITY.
slot_idIntegerConditionalMandatory when module_type is ACTIVITY.
schedule_idIntegerConditionalMandatory when module_type is BOAT.
passengersArrayConditionalMandatory only for BOAT bookings. Array size must match qty.

4. Cancellation & Automated Refund Engine

INTEGRATION FLOW - STEP 4: Processes secure cancellation calculations when a passenger requests a cancellation. QUOTE evaluates refunds/charges, while CONFIRM permanent voids records and credits back wallet balances atomically.

POST https://flexikayak.com/Flexigopal/api/cancel_booking.php

Cancellation Parameters Matrix

Field KeyTypeStatusOperational Rule Parameter Metrics
request_idStringRequiredUnique tracking identifier to protect against multi-node replay blocks.
booking_refStringRequiredThe alphanumeric PNR reference code received during booking confirmation.
module_typeStringRequiredClassification target engine layers: ACTIVITY or BOAT.
actionStringRequiredFixed state control parameters options allowed: QUOTE or CONFIRM.
qtyIntegerConditionalMandatory for ACTIVITY module type. Count of seats to release.
passenger_idsArrayConditionalMandatory for BOAT module type. Array of individual traveler IDs.

5. Wallet Balance & Audit Gateway

INTEGRATION FLOW - STEP 5: Retrieves real-time active cash balances, credit facility limits, utilized runways, and lists recent ledger double-entry journal logs securely scoped by your tenant space. Used by finance systems to ensure sync.

POST https://flexikayak.com/Flexigopal/api/wallet_balance.php

6. Real-Time PNR Decoder Status API

INTEGRATION FLOW - STEP 6: Allows distributors to query precise real-time processing, traveler manifests, ledger reconciliations, and refund states of any active or cancelled reservation at any point in the post-booking lifecycle.

POST https://flexikayak.com/Flexigopal/api/booking_status.php

Standard GDS Error Matrix

When financial thresholds collapse or security constraints fail, the engine returns uniform JSON response shapes accompanied by exact protocol codes.

Interactive Postman Mappings

Developers can copy these exact configurations directly within Postman query, headers, and request body frames to begin sandbox cycles.

1. Media Content Query Pipeline

Step 1 — Content Lookup Specifications

1.1 BOAT MODULE METHOD & TARGET URL

Postman HTTP Request Component
GET https://flexikayak.com/Flexigopal/api/content.php?module=BOAT&travel_date=2026-07-05

Expected Response Payload (200 OK):

Response JSON
{
    "status": "SUCCESS",
    "module": "BOAT",
    "count": 1,
    "data": [
        {
            "schedule_id": 1,
            "boat_id": 2,
            "boat_name": "Ocean Pearl",
            "trip_id": 4,
            "trip_name": "Jolly Bouy / Red Skin Island Trip",
            "departure_time": "10:00:00",
            "return_time": "14:30:00",
            "policies": {
                "identity_enforcement": {
                    "is_id_mandatory": 1,
                    "is_id_no_required": 1,
                    "is_id_upload_required": 1
                },
                "gst_percentage": 5.00
            },
            "inventory": {
                "remaining_seats": 10,
                "status": "AVAILABLE"
            },
            "rates": [
                {
                    "ticket_type": "Adult",
                    "age_range": "12 - ∞ Years",
                    "nationality": "MIXED",
                    "mrp": 1675.00,
                    "net_price": 1675.00,
                    "currency": "INR"
                }
            ]
        }
    ]
}

1.2 ACTIVITY MODULE METHOD & TARGET URL

Postman HTTP Request Component
GET https://flexikayak.com/Flexigopal/api/content.php?module=ACTIVITY&travel_date=2026-07-05

Expected Response Payload (200 OK):

Response JSON
{
    "status": "SUCCESS",
    "module": "ACTIVITY",
    "count": 1,
    "data": [
        {
            "activity_id": 7,
            "title": "Bioluminescence Kayaking at Havelock",
            "location": "Havelock Island",
            "description": "Bioluminescence is one of nature's most enchanting phenomena...",
            "media": {
                "featured_image": "bioluminescence-kayaking-at-havelock-7-main-852.webp",
                "gallery": [
                    "gal-bioluminescence-kayaking-at-havelock-7-27550.webp"
                ]
            },
            "policies": {
                "inclusions": "Certified Instructor, Kayak, Life jacket",
                "exclusions": "Pick-up and drop",
                "cancellation_summary": "Policy [Standard]: Refund 95% if cancelled before 48 hours.",
                "gst_percentage": 12.00
            },
            "pricing": {
                "mrp": 3500.00,
                "offer_price": 2200.00,
                "agent_commission_type": "FLAT",
                "agent_commission_value": 1000.00,
                "net_price": 1200.00,
                "currency": "INR"
            }
        }
    ]
}

2. Live Availability Search Engine Pipeline

Step 2 — Real-time Seats Output

2.1 ACTIVITY MODULE SEARCH ROUTE

Postman HTTP Request Component
GET https://flexikayak.com/Flexigopal/api/search_availability.php?module=ACTIVITY&date=2026-07-05&activity_id=7

Expected Response Payload (200 OK):

Response JSON
{
    "status": "SUCCESS",
    "module": "ACTIVITY",
    "count": 1,
    "data": [
        {
            "availability_id": 588,
            "activity_id": 7,
            "activity_name": "Bioluminescence Kayaking at Havelock",
            "date": "2026-07-05",
            "slot": {
                "slot_id": 5,
                "label": "04:00-06:00am",
                "time_window": "04:00:00 - 06:00:00"
            },
            "inventory": {
                "remaining_seats": 40,
                "status": "AVAILABLE"
            },
            "pricing": {
                "offer_price": 2000.00,
                "agent_commission_type": "FLAT",
                "agent_commission_value": 1000.00,
                "net_price": 1000.00,
                "currency": "INR"
            }
        }
    ]
}

2.2 BOAT MODULE SEARCH ROUTE

Postman HTTP Request Component
GET https://flexikayak.com/Flexigopal/api/search_availability.php?module=BOAT&date=2026-07-05

Expected Response Payload (200 OK):

Response JSON
{
    "status": "SUCCESS",
    "module": "BOAT",
    "count": 1,
    "data": [
        {
            "schedule_id": 1,
            "boat_id": 2,
            "boat_name": "Ocean Pearl",
            "trip_id": 4,
            "trip_name": "Jolly Bouy / Red Skin Island Trip",
            "departure_time": "10:00:00",
            "return_time": "14:30:00",
            "inventory": {
                "remaining_seats": 8,
                "status": "AVAILABLE"
            },
            "rates": [
                {
                    "ticket_type": "Adult",
                    "age_range": "12 - ∞ Years",
                    "nationality": "MIXED",
                    "mrp": 1675.00,
                    "net_price": 1675.00,
                    "currency": "INR"
                }
            ]
        }
    ]
}

3. Ticket Creation Engine Pipeline

Step 3 — Settlement Processing

3.1 BOAT MODULE SCHEME

Postman HTTP Request Component
POST https://flexikayak.com/Flexigopal/api/create_booking.php
Request RAW JSON Body
{
    "request_id": "REQ_BOAT_PRODUCTION_TXN_999",
    "customer_name": "Ripos Das",
    "customer_email": "ripos.das@example.com",
    "customer_phone": "9933245842",
    "travel_date": "2026-07-05",
    "module_type": "BOAT",
    "qty": 1,
    "schedule_id": 1,
    "passengers": [
        {
            "traveler_name": "John Doe",
            "age": 35,
            "pax_gender": "MALE",
            "nationality": "AMERICAN",
            "id_type": "PASSPORT",
            "id_number": "PASS987654",
            "id_proof_file": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=="
        }
    ]
}

Expected Response Payload (211 Created):

Response JSON
{
    "status": "SUCCESS",
    "code": "BOOKING_IMMEDIATELY_SETTLED",
    "booking_id": 157,
    "booking_ref": "290626FLX5679",
    "settlement_breakdown": {
        "total_debited": 3752.00,
        "deducted_from_cash": 3752.00,
        "deducted_from_credit": 0.00
    }
}

3.2 ACTIVITY MODULE SCHEME

Postman HTTP Request Component
POST https://flexikayak.com/Flexigopal/api/create_booking.php
Request RAW JSON Body
{
    "request_id": "REQ_ACT_PRODUCTION_TXN_888",
    "customer_name": "Ripos Das",
    "customer_email": "ripos.das@example.com",
    "customer_phone": "9933245842",
    "travel_date": "2026-07-05",
    "module_type": "ACTIVITY",
    "qty": 2,
    "availability_id": 588,
    "slot_id": 5
}

Expected Response Payload (211 Created):

Response JSON
{
    "status": "SUCCESS",
    "code": "BOOKING_IMMEDIATELY_SETTLED",
    "booking_id": 484,
    "booking_ref": "20260628FLX5205",
    "settlement_breakdown": {
        "total_debited": 2100.00,
        "deducted_from_cash": 2100.00,
        "deducted_from_credit": 0.00
    }
}

4. Cancellation & Automated Refund Engine

Step 4 — Reversal Verification

4.1 BOAT CANCELLATION

Postman HTTP Request Component
POST https://flexikayak.com/Flexigopal/api/cancel_booking.php
Request RAW JSON Body
{
    "request_id": "REQ_LIVE_BOAT_REAL_SYNC_V26",
    "booking_ref": "290626FLX5679",
    "module_type": "BOAT",
    "action": "CONFIRM",
    "passenger_ids": [623, 624]
}

Expected Response Payload (200 OK):

Response JSON
{
    "status": "SUCCESS",
    "code": "BOOKING_CANCELLATION_SETTLED_INSTANTLY",
    "refund_reference": "BRF-1BF61D",
    "new_booking_status": "Cancelled",
    "pricing_summary": {
        "net_agent_refund_credited": 3350.00,
        "platform_cancellation_charge": 402.00
    }
}

4.2 ACTIVITY CANCELLATION

Postman HTTP Request Component
POST https://flexikayak.com/Flexigopal/api/cancel_booking.php
Request RAW JSON Body
{
    "request_id": "REQ_ACT_REAL_SYNC_V26",
    "booking_ref": "20260628FLX5205",
    "module_type": "ACTIVITY",
    "action": "CONFIRM",
    "qty": 2
}

Expected Response Payload (200 OK):

Response JSON
{
    "status": "SUCCESS",
    "code": "BOOKING_CANCELLATION_SETTLED_INSTANTLY",
    "refund_reference": "REF-60B61A",
    "new_booking_status": "Cancelled",
    "pricing_summary": {
        "net_agent_refund_credited": 1950.00,
        "platform_cancellation_charge": 150.00
    }
}

5. Wallet Balance Query Pipeline

Step 5 — Credit Audit

Postman HTTP Request Component
POST https://flexikayak.com/Flexigopal/api/wallet_balance.php
Request RAW JSON Body
{
    "request_id": "REQ_WALLET_LIVE_AUDIT_2026"
}

Expected Response Payload (200 OK):

Response JSON
{
    "status": "SUCCESS",
    "code": "WALLET_METRICS_DECODED_SUCCESSFULLY",
    "data": {
        "agent_id": 11,
        "tenant_id": "tenant_flexi_01",
        "account_status": "active",
        "financial_balances": {
            "live_available_balance": 10984.77,
            "currency": "INR"
        },
        "credit_facility": {
            "allocated_limit": 500000.00,
            "limit_utilized": 293491.39,
            "available_credit_runway": 206508.61
        },
        "recent_ledger_journal_snapshot": []
    }
}

6. Real-Time PNR Decoder Status API

Step 6 — Post-Booking Track Check

6.1 BOAT MODULE PASSBOOK STATUS

Postman HTTP Request Component
POST https://flexikayak.com/Flexigopal/api/booking_status.php
Request RAW JSON Body
{
    "request_id": "REQ_BOAT_STATUS_AUDIT_2026",
    "booking_ref": "290626FLX5679",
    "module_type": "BOAT"
}

Expected Response Payload Template (200 OK):

Response JSON
{
    "status": "SUCCESS",
    "code": "BOOKING_STATUS_DECODED_SUCCESSFULLY",
    "data": {
        "booking_reference": "290626FLX5679",
        "module": "BOAT",
        "booking_status": "Confirmed",
        "payment_status": "Paid",
        "refund_status": "NONE",
        "metadata": {
            "boat_name": "Ocean Pearl",
            "trip_name": "Jolly Bouy / Red Skin Island Trip",
            "departure_time": "10:00:00"
        },
        "financial_breakdown": {
            "fare_amount": 3200.00,
            "permit_amount": 150.00,
            "gst_amount": 402.00,
            "total_price": 3752.00
        },
        "traveler_manifest": [
            {
                "traveler_name": "John Doe",
                "age": 35,
                "pax_gender": "MALE",
                "passenger_type": "Adult",
                "traveler_status": "Confirmed"
            }
        ]
    }
}

6.2 ACTIVITY MODULE PASSBOOK STATUS

Postman HTTP Request Component
POST https://flexikayak.com/Flexigopal/api/booking_status.php
Request RAW JSON Body
{
    "request_id": "REQ_ACT_STATUS_AUDIT_2026",
    "booking_ref": "20260628FLX5205",
    "module_type": "ACTIVITY"
}

Expected Response Payload Template (200 OK):

Response JSON
{
    "status": "SUCCESS",
    "code": "BOOKING_STATUS_DECODED_SUCCESSFULLY",
    "data": {
        "booking_reference": "20260628FLX5205",
        "module": "ACTIVITY",
        "booking_status": "confirmed",
        "payment_status": "paid",
        "refund_status": "NONE",
        "metadata": {
            "activity_name": "Bioluminescence Kayaking at Havelock",
            "travel_date": "2026-07-04",
            "slot_label": "04:00-06:00am"
        },
        "financial_summary": {
            "total_paid": 2100.00,
            "total_refunded": 0.00,
            "balance_amount": 0.00
        },
        "ledger_reconciliation": {
            "journal_status": "SETTLED",
            "ledger_journal_entry_id": "TXN-20260628-99A8"
        }
    }
}