Join Applications API: Sample Flows

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.

Handle member-initiated program applications

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:

  1. Call Create Join Application with only the programId. The system automatically creates an application with APPROVAL_PENDING status and uses the caller's member identity.
  2. Call Query Join Applications to retrieve pending applications for review by program owners.
  3. Call Approve Join Application to accept the member's request, transitioning the status to APPROVED.
  4. If payment is required, call Prepare Payment to initiate the payment process.
  5. Handle payment completion through payment events, which automatically creates a participant when successful.

Alternatively, call Decline Join Application to reject the application, or the member can call Cancel Join Application to withdraw their request.

Manage owner-initiated program invitations

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:

  1. Call Create Join Application with memberId, programId, and status: "INVITED". This requires additional permissions for the owner flow.
  2. Call Bulk Create Join Applications to invite up to 100 members simultaneously.
  3. Call Bulk Invite Members To Program By Filter to invite all site members matching the default member filter, optionally excluding up to 100 member IDs. This returns a job ID for async tracking.
  4. The invited member calls Accept Invite with the joinApplicationId, which transitions their application from INVITED to APPROVED status.
  5. If payment is required, the member calls Prepare Payment to begin the checkout process.
  6. Handle payment completion to automatically create the participant enrollment.

Members can also call Cancel Join Application to decline the invitation.

Process program payments and discounts

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:

  1. After the join application reaches APPROVED status, call Prepare Payment with paymentType: "SINGLE_PAYMENT" or paymentType: "PAID_PLANS".
  2. Inspect the returned 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.
  3. For a Wix Payments order, optionally call Apply Coupon with a couponCode to provide discounts on the order total.
  4. Direct the member to complete payment through the Wix payment system using the prepared order.
  5. Handle payment events to automatically update the paymentStatus and create the participant when payment is successful.
  6. If needed, call Remove Coupon to remove previously applied discounts before payment completion.
  7. If the coupon covers the full payment amount, call Complete Free Coupon Payment to complete the payment and create the participant without sending the member through a paid checkout.

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.

Bulk manage applications and invitations

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:

  1. Call Bulk Create Join Applications to send up to 100 invitations at once, providing memberId, programId, and status: "INVITED" for each.
  2. Call Search Join Applications with member search criteria like member.email or member.firstName to find specific applications.
  3. Call Bulk Update Join Application Tags to organize applications by department, priority, or other categories.
  4. Call Bulk Update Join Application Tags By Filter to apply tags to all applications matching specific criteria, returning a job ID for tracking the async operation.
  5. Call Bulk Delete Join Applications to remove multiple applications that are no longer needed.

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

Did this help?