This article presents possible use cases and corresponding sample flows that you can support. It provides a useful starting point as you plan your implementation.
A fitness studio offers specialized training programs that require instructor approval before members can join. Members can browse available programs and submit applications, which program owners review and either approve or decline based on prerequisites and capacity.
To handle member-initiated program applications:
programId. The system automatically creates an application with APPROVAL_PENDING status and uses the caller's member identity.APPROVED.Alternatively, call Decline Join Application to reject the application, or the member can call Cancel Join Application to withdraw their request.
A corporate wellness program wants to invite specific employees to participate in executive coaching sessions. The program administrator can send targeted invitations to selected members, who can then accept or decline the invitation.
To manage owner-initiated program invitations:
memberId, programId, and status: "INVITED". This requires additional permissions for the owner flow.joinApplicationId, which transitions their application from INVITED to APPROVED status.Members can also call Cancel Join Application to decline the invitation.
A professional development program offers both one-time workshop fees and monthly subscription options. Members can apply discount coupons during checkout and choose their preferred payment method.
To process program payments and discounts:
APPROVED status, call Prepare Payment with paymentType: "SINGLE_PAYMENT" or paymentType: "PAID_PLANS".paymentStatus. If it is PAYMENT_SUCCESSFUL with paymentInfo.paidPlanIds, an existing eligible Pricing Plans entitlement covers the program and no checkout is needed. Otherwise, continue only when it is PAYMENT_IN_PROGRESS.couponCode to provide discounts on the order total.paymentStatus and create the participant when payment is successful.The system automatically transitions the paymentStatus from PAYMENT_PENDING through PAYMENT_IN_PROGRESS to PAYMENT_SUCCESSFUL, PAYMENT_FAILED, or PAYMENT_CANCELED based on payment results. Members can retry failed or canceled payments by calling PreparePayment again.
A large organization runs quarterly training programs and needs to efficiently process hundreds of applications and send mass invitations to different employee groups.
To bulk manage applications and invitations:
memberId, programId, and status: "INVITED" for each.member.email or member.firstName to find specific applications.Use Query Join Applications with filters like status and paymentStatus to monitor the progress of bulk operations and generate reports.
Last updated: 24 August 2026