DragonPass API Developer Platform
v2
  • v2
  • v1
HomepageOfficial SiteContact Us
HomepageOfficial SiteContact Us
API Version
v2
  • v2
  • v1
  1. Membership
  • Implementation Guide
    • DragonPass Modules
    • Get Started
    • Our API Solution
  • Development Guide
    • Response Format
    • Error Codes
    • Multiple Language Support and Fallback
    • UI Design Guidelines
    • Authentication
    • Sandbox Order Simulation
  • DragonPass API Push Event
    • Instructions
    • Lounge/Dining Walk-in Redemption Event
    • Prebooking Order Status Change Event
    • Resource Update Push Service
  • Using the API
    • Search for Resources
      • Search for Resources
      • Check Prebooking Resource & Option Availability
      • Pricing Query
      • Image Parameters
    • Order Lifecycle
      • Walk-in & Prebooking Order
      • Order Status Enumeration
    • E-pass
      • Querying E-pass Usage Orders and Details
      • Issuing, Querying, and Cancelling an E-pass
      • Utilizing The E-pass
        • Lounge
        • Fast Track
        • Dining
        • Fitness
        • eSIM
        • Cross Module
    • Membership
      • Manage Memberships & Entitlements
      • Querying Membership Usage Orders and Details
      • Utilizing DragonPass Membership
        • Lounge
        • Fast Track
        • Dining
        • Fitness
        • eSIM
    • User
      • User Management
  • Release Notes
    • 2026
    • 2025
  • Migration Guide
    • From V1 to V2
  • API Reference
    • Authentication
      • Generate Access Token
    • User Management
      • User Creation
      • Update User Information
      • Retrieve User Information
      • Retrieve User E-passes List
      • Retrieve User Memberships List
      • Delete A User
    • Search
      • Retrieve Available Modules by Location
      • Aggregated Search by Keyword
    • Transport Hubs
      • Retrieve Transport Hub
      • Retrieve Transport Hub Details
    • Resources
      • Retrieve Resource List
        • Retrieve Resources List
      • Search For Resources
        • Retrieve Resource Details
        • List Updated Resources
      • Check Resource Availability
        • Check Prebooking Resource Availability
        • Check Prebooking Option Availability
      • Fitness
        • Retrieve Fitness Resources Schedule
        • Retrieve Fitness Resource Option Details
      • eSIM
        • Retrieve eSIM Resouces Options
        • Retrieve eSIM Resource Option Details
      • Pricing
        • Retrieve Resource Pricing Information
        • Retrieve Prebooking Option Pricing Information
    • Entitlement Management
      • Update Membership Entitlements
      • Retrieve Membership Entitlement Information
    • Membership Management
      • Membership Registration
      • Update A Membership
      • Retrieve Membership Information
      • Generate Membership Dynamic QR Codes
      • Change Membership Program(Upgrade/Downgrade)
    • Orders Management
      • Preview Orders
        • Membership
          • Preview Membership Prebooking Order
      • Create Orders
        • E-pass
          • Issue An E-pass
            • Create E-pass Order
          • Lounge Prebooking
            • Create E-pass Prebooking Order - Lounge
            • Create E-pass with Prebooking Order - Lounge
          • Fast Track
            • Create E-pass Prebooking Order - Fast Track
            • Create E-pass with Prebooking Order - Fast Track
          • Fitness
            • Create E-pass Prebooking Order - Fitness
            • Create E-pass with Prebooking Order - Fitness
          • eSIM
            • Create E-pass Prebooking Order - eSIM
            • Create E-pass with Prebooking Order - eSIM
            • Top up eSIM data package - E-pass
        • Membership
          • Create Membership Prebooking Order - Lounge
          • Create Membership Prebooking Order - Fast Track
          • Create Membership Prebooking Order - Fitness
          • Create Membership Prebooking Order - eSIM
          • Top up eSIM data package - Membership
      • Retrieve Order List
        • Retrieve E-pass Order List
        • Retrieve Membership Order List
      • Cancel Orders
        • Cancel an Order
      • Retrieve Order Details
        • E-pass
          • Retrieve E-pass Details
          • Retrieve E-pass Usage Order Details
        • Membership
          • Retrieve Membership Usage Order Details
      • Module Specific APIs
        • Fitness
          • Fitness Order Check-In
        • eSIM
          • Retrieve eSIM Order Live Extended Details
          • Check eSIM Top-up Availability
          • Retrieve eSIM Data Packages
    • [Sandbox Only] Simulation
      • Lounge
        • Simulate Lounge Redemption - Walk in
        • Simulate Lounge Redemption - Prebooking
        • Simulate Lounge Order Cancellation
      • Fast Track
        • Simulate Fast Track Redemption - Prebooking
        • Simulate Fast Track Order Cancellation
    • Push Event Recovery
      • Push Event Recovery
  • Our Team
  1. Membership

Manage Memberships & Entitlements

Manage Memberships#

3.png

Register a membership#

→ Use the /memberships endpoint to register a DragonPass membership for your end user.
The header parameters X-Program-ID specifying the associated program, which determines the membership's initial validity period and entitlement settings.
Request
Membership Registration - Request

{
    "clientUserId": "3EF5D065-76F8-4D3E-801A-B329D15F461A",
    "firstName": "DragonPass",
    "lastName": "DragonPass",
    "phoneNumber": "8081966002",
    "callingCode": "44",
    "email": "developer@dragonpass.com",
    "activationDate": "2028-10-31T23:59:59+00:00",
    "expirationDate": "2028-12-31T23:59:59+00:00"
}
Response
The response returns:
Membership Registration - Response

{
    "code": 0,
    "data": {
        "programId": "1876920048220766208",
        "clientUserId": "3EF5D065-76F8-4D3E-801A-B329D15F461A",
        "membershipId": "8888000066668888",
        "status": 1,
        "registrationDate": "2025-01-31T23:59:59+00:00",
        "activationDate": "2028-10-31T23:59:59+00:00",
        "expirationDate": "2028-12-31T23:59:59+00:00",
        "entitlements": {
            "moduleExclusiveEntitlements": [
                {
                    "module": 1,
                    "details": {
                        "cardholderExclusiveEntitlements": 1,
                        "guestsExclusiveEntitlements": 1,
                        "sharedEntitlements": 0,
                        "allowedGuestsPerUsage": 1,
                        "maxGuestsNextUse": 1
                    }
                }
            ]
        }
    }
}

Update a membership#

→ Use the /memberships/update endpoint to update membership information.
Currently, the information that can be updated via the API includes:
Membership expiration date
Membership status
Membership Status Update Matrix
From \ To0-Pending Activation1-Active2-Suspended3-Cancelled9-Expired
0-Pending Activation-✅✅✅❌ (Will update automatically)
1-Active❌-✅✅❌ (Will update automatically)
2-Suspended✅✅-✅❌ (Will update automatically)
3-Cancelled❌❌❌-❌
9-Expired❌✅❌✅-
When attempting to activate a membership that has already expired, a new expiration date to be provided. This ensures that the reactivated membership has a valid period of use.
Request
Update A Membership - Request

{
    "membershipId": "8888000066668888",
    "status": 2,
    "activationDate": "2028-10-31T23:59:59+00:00",
    "expirationDate": "2035-12-31T23:59:59+00:00"
}  
Response
Update A Membership - Response

{
  "code": 0,
  "data": {
    "membershipId": "8888000066668888",
    "status": 1,
    "registrationDate": "2025-12-31T23:59:59+00:00",
    "activationDate": "2028-10-31T23:59:59+00:00",
    "expirationDate": "2035-12-31T23:59:59+00:00"
  }
}  

Retrieve membership information#

→ Use the /memberships/search endpoint to retrieve membership information.
Request
Retrieve Membership Information - Request

{
    "membershipId": "8888000066668888"
}
Response
Retrieve Membership Information - Response

{
  "code": 0,
  "data": {
    "clientUserId": "3EF5D065-76F8-4D3E-801A-B329D15F461A",
    "programId": "1876920048220766208",
    "membershipId": "8888000066668888",
    "status": 1,
    "registrationDate": "2028-12-31T23:59:59+00:00",
    "activationDate": "2028-10-31T23:59:59+00:00",
    "expirationDate": "2028-12-31T23:59:59+00:00"
  }
}

Generate membership dynamic QR code#

→ Use the /memberships/qrCodes endpoint to generate membership dynamic QR codes.
In addition to using a fixed membershipId, clients can also choose to generate a dynamic membership QR code and display it in the application for enhanced security.
Request
You can use durationInSeconds to specify the validity period of the QR code, with a maximum duration of 7200 seconds.
Generate Membership Dynamic QR Codes - Request

{
  "membershipId": "8888000066668888",
  "durationInSeconds": 7200
}
Response
Generate Membership Dynamic QR Codes - Response

{
  "code": 0,
  "data": {
    "qrCode": "8886520686",
    "validUntil": 1923263999
  }
}

Change Membership Program(Upgrade/Downgrade)#

For clients aiming to enrich and expand their loyalty program ecosystem, there is a business requirement to support membership upgrade and downgrade operations.
This scenario typically occurs when a single end user (clientUserId) holds memberships corresponding to different loyalty tiers on the client side, each mapped to a distinct loyalty program, and needs the flexibility to move between tiers as their status changes.
This API enables a controlled and standardized membership migration between programs, ensuring data consistency, entitlement integrity, and correct membership lifecycle management.

Upgrade / Downgrade Mechanism#

After a successful upgrade or downgrade:
1.
The current Active membership will be set to Suspended
Existing entitlements on the Suspended membership remain unchanged.
2.
For the target program:
If no valid membership exists, a new membership will be created.
If a Suspended membership already exists, it will be Reactivated.
migration.png

Migration Strategies#

The migration operation supports two independent strategy dimensions at the moment:
1.
Entitlement Strategy (entitlementOptions)
Defines how entitlements are handled after migration.
StrategyDescription
1If no membership exists under the target program, a new membership will be created and the corresponding entitlements will be issued.
If a membership already exists under the target program(in Suspended status), all existing entitlements of this membership will be cleared, and entitlements will be reissued according to the target program configuration.
2Keep existing entitlements unchanged on the target membership.
migration2.png
2.
Validity Strategy (validityOptions)
Defines how valid period are handled after migration.
StrategyDescription
1Membership validity period remains unchanged after upgrade or downgrade.

Business Rules#

1.
Only active memberships are allowed to initiate an upgrade or downgrade.
2.
For both the current program and the target program:
If multiple valid memberships exist under the same program, migration is not allowed.
Memberships with status Cancelled or Deleted are not considered valid.
If the target program contains an inactive (not activated) membership, migration is not allowed.

Endpoint#

/memberships/programChange
Request
Change Membership Program - Request

{
    "membershipId": "8888888800000000",
    "programId": "1876920048220766208",
    "targetProgramId": "1876920048220766200",
    "entitlementOptions": {
        "strategy": 1
    },
    "validityOptions": {
        "strategy": 1
    }
} 
Response
Change Membership Program - Response

{
    "code": 0,
    "data": {
        "membershipId": "8888000066668888",
        "programId": "1876920048220766200",
        "previousProgramId": "1876920048220766208"
    }
} 

Manage Entitlement#

4.png

Update membership entitlement#

→ Use the /entitlements/update endpoint to update the membership entitlement.
Request
Use the mandatory fields in the request to specify the entitlements of the change.
Currently, the following modules support entitlement updates, with some modules only allowing the issuance of cardholder-exclusive entitlements.
ModuleEnumCardholder-exclusiveGuests-exclusiveShared
Lounge1✅✅✅
Fast Track2✅✅✅
Dining Coupon4✅✅✅
Fitness7✅❌❌
Update Membership Entitlements - Request

Add one cardholder-exclusive entitlement for lounge module to the membership.
1.
Specify membershipId.
2.
Specify the number of entitlements to be added in the quantity field.
3.
Specify the module in the module field, where 1 represents Lounge module.
4.
Set the usageRestriction field to 1 to designate the entitlement as cardholder-exclusive.
{
  "membershipId": "8888000066668888",
  "quantity": 1,
  "module": 1,
  "usageRestriction": 1
}
Add two shared entitlements for Fast Track module to the membership.
1.
Specify membershipId.
2.
Specify the number of entitlements to be added in the quantity field.
3.
Specify the module in the module field, where 4 represents Dining Coupon module.
4.
Set the usageRestriction field to 3 to designate the entitlement as shared.
{
  "membershipId": "8888000066668888",
  "quantity": 2,
  "module": 4,
  "usageRestriction": 3
}
Response
In the response, the entitlement details for each module will be returned as an array.
Update Membership Entitlements - Response

{
  "code": 0,
  "data": {
    "membershipId": "8888000066668888",
    "entitlements": {
      "moduleExclusiveEntitlements": [
        {
          "module": 1,
          "details": {
            "cardholderExclusiveEntitlements": 1,
            "guestsExclusiveEntitlements": 1,
            "sharedEntitlements": 0,
            "allowedGuestsPerUsage": 1,
            "maxGuestsNextUse": 1
          }
        }
      ]
    }
  }
}
Example 1
{
    "moduleExclusiveEntitlements": [
        {
            "module": 1,
            "details": {
                "cardholderExclusiveEntitlements": 1,
                "guestsExclusiveEntitlements": 1,
                "sharedEntitlements": 0,
                "allowedGuestsPerUsage": 1,
                "maxGuestsNextUse": 1
            }
        }
    ]
}
"module": 1 specifies that the current object lists the entitlement details for the lounge module.
"cardholderExclusiveEntitlements": 1 means this current membership has 1 cardholder-exclusive entitlement for the lounge module.
"guestsExclusiveEntitlements": 1 means that this membership has 1 guest-exclusive entitlement for the lounge module.
"sharedEntitlements": 0 means that this membership has no shared entitlements for the lounge module.
"allowedGuestsPerUsage": 1 specifies that, based on program settings, the maximum number of guests allowed per visit for this membership's lounge entitlement is 1.
"maxGuestsNextUse": 1 specifies that, based on the above entitlements data, the cardholder can bring 1 guest on the next lounge visit.
Example 2
{
    "moduleExclusiveEntitlements": [
        {
            "module": 4,
            "details": {
                "cardholderExclusiveEntitlements": -1,
                "guestsExclusiveEntitlements": 0,
                "sharedEntitlements": 0,
                "allowedGuestsPerUsage": 0,
                "maxGuestsNextUse": 0
            }
        }
    ]
}
"module": 3 specifies that the current object lists the entitlement details for the Dining Coupon module.
"cardholderExclusiveEntitlements": -1 means this current membership has unlimited cardholder-exclusive entitlement for the Dining Coupon module.
"guestsExclusiveEntitlements": 0 means that this membership has no guest-exclusive entitlement for the Dining Coupon module.
"sharedEntitlements": 0 means that this membership has no shared entitlements for the Dining Coupon module.
"allowedGuestsPerUsage": 0 specifies that, based on program settings, the maximum number of guests allowed per visit for this membership's dining set meal module entitlement is 0.
"maxGuestsNextUse": 0 specifies that, based on the above entitlements data, the cardholder is not allowed to bring guests when using this module next time.
Example 3
{
    "moduleExclusiveEntitlements": [
        {
            "module": 1,
            "details": {
                "cardholderExclusiveEntitlements": -1,
                "guestsExclusiveEntitlements": 0,
                "sharedEntitlements": -1,
                "allowedGuestsPerUsage": 4,
                "maxGuestsNextUse": 4
            }
        }
    ]
}
The above response indicates that, under this membership, both the cardholder and guests have unlimited entitlements for the lounge module, but the cardholder can only bring a maximum of 4 guests per visit.

Retrieve membership entitlement information#

→ Use the /entitlements/search endpoint to retrieve the membership entitlement information.
Request
Retrieve Membership Entitlement Information - Request

{
    "membershipId": "8888000066668888"
}
Response
Retrieve Membership Entitlement Information - Response

{
    "code": 0,
    "data": {
        "entitlements": {
            "moduleExclusiveEntitlements": [
                {
                    "module": 1,
                    "details": {
                        "cardholderExclusiveEntitlements": 1,
                        "guestsExclusiveEntitlements": 1,
                        "sharedEntitlements": 0,
                        "allowedGuestsPerUsage": 1,
                        "maxGuestsNextUse": 1
                    }
                }
            ]
        }
    }
}
Modified at 2025-12-29 06:06:19
Previous
Cross Module
Next
Querying Membership Usage Orders and Details