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 browse the available programs and submit applications, which Wix users review and either approve or decline based on prerequisites and capacity.

To handle member-initiated program applications:

  1. Call Create Join Application with only programId. The application is created with status set to APPROVAL_PENDING, using the calling member's identity.
  2. Call Query Join Applications with a filter on status to retrieve the applications waiting for review.
  3. Call Approve Join Application to accept the member's request, which changes status to APPROVED. To reject the request instead, call Decline Join Application.
  4. If the program requires payment, call Prepare Payment to start the payment process.
  5. Retrieve the join application by ID with Get Join Application to track payment completion. A participant is created automatically when the payment succeeds.

A member can withdraw their own request at any point before it's approved by calling Cancel Join Application.

Manage owner-initiated program invitations

A corporate wellness program invites specific employees to executive coaching sessions. The program administrator sends targeted invitations to selected members, who then accept them.

To manage owner-initiated program invitations:

  1. Call Create Join Application with memberId, programId, and status set to INVITED.
  2. To invite up to 100 members at once, call Bulk Create Join Applications instead.
  3. To invite all eligible site members, call Bulk Invite Members To Program By Filter. Members who already have a join application for the program are skipped, and you can exclude up to 100 further member IDs. Pass the returned jobId to Get Async Job to track progress.
  4. The invited member calls Accept Invite with joinApplicationId, which changes status from INVITED to APPROVED.
  5. If the program requires payment, the member calls Prepare Payment to begin checkout.
  6. Retrieve the join application by ID with Get Join Application to track payment completion and the resulting participant enrollment.

To withdraw an invitation that a member hasn't accepted, call Delete Join Application.

Process program payments and discounts

A professional development program offers both one-time workshop fees and monthly subscription options. Members apply a discount coupon during checkout and choose their preferred payment method.

To process program payments and discounts:

  1. Once the join application reaches APPROVED, call Prepare Payment with paymentType set to SINGLE_PAYMENT or PAID_PLANS.
  2. Check the returned paymentStatus. If it's PAYMENT_SUCCESSFUL with paymentInfo.paidPlanIds, an existing Pricing Plans entitlement covers the program and no checkout is needed. Continue only when it's PAYMENT_IN_PROGRESS.
  3. For a Wix Payments order, call Apply Coupon with a couponCode to discount the order total.
  4. Direct the member to complete payment through the Wix payment system using the prepared order.
  5. Retrieve the join application by ID with Get Join Application to check the resulting paymentStatus and the participant created when payment succeeds.
  6. To clear a discount before payment completes, call Remove Coupon.
  7. If the coupon covers the full amount, call Complete Free Coupon Payment to complete the payment and create the participant without sending the member through a paid checkout.

paymentStatus moves from PAYMENT_PENDING through PAYMENT_IN_PROGRESS to PAYMENT_SUCCESSFUL, PAYMENT_FAILED, or PAYMENT_CANCELED, based on the payment result. Members retry a failed or canceled payment by calling Prepare Payment again.

Bulk manage applications and invitations

A large organization runs quarterly training programs and needs to 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, specifying memberId, programId, and status set to INVITED for each.
  2. Call Search Join Applications with member criteria such as member.email or member.firstName to find specific applications.
  3. Call Bulk Update Join Application Tags to organize those applications by department, priority, or another category.
  4. Call Bulk Update Join Application Tags By Filter to tag every application matching a filter. Pass the returned jobId to Get Async Job to track progress.
  5. Call Query Join Applications with filters such as status and paymentStatus to monitor progress and generate reports.
  6. Call Bulk Delete Join Applications to remove the applications that are no longer needed.

Last updated: 9 September 2026

Did this help?