> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt # EndProgram # Package: benefitPrograms # Namespace: ProgramService # Method link: https://dev.wix.com/docs/api-reference/business-solutions/benefit-programs/programs/end-program.md ## Permission Scopes: Manage benefit programs: SCOPE.BENEFIT_PROGRAMS.MANAGE ## Introduction Ends the specified program. --- ## REST API ### Schema ``` Method: endProgram Description: Ends the specified program. URL: https://www.wixapis.com/benefit-programs/v1/programs/end Method: POST # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present. Required parameters: programId Method parameters: param name: programId | type: programId | description: GUID of the program to end. | required: true Return type: EndProgramResponse - name: jobId | type: string | description: Job GUID of the ending of the program. Retrieve job details using the [Async Job API](https://dev.wix.com/docs/rest/business-management/async-job/introduction.md). Possible Errors: HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: PROGRAM_STATUS_TRANSITION_NOT_ALLOWED | Description: Program was already ended. ``` ### Examples ### EndProgram ```curl ~~~cURL curl --request POST https://www.wixapis.com/benefit-programs/v1/programs/end \ -H "Authorization: " \ -H "Content-Type: application/json" \ --data '{ "program_id": "e5c42e1e-cd10-4210-b483-bb59932b1fa7" }' ~~~ ``` --- ## JavaScript SDK ### Schema ``` Method: wixClientAdmin.benefitPrograms.ProgramService.endProgram(programId) Description: Ends the specified program. # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present. Required parameters: programId Method parameters: param name: programId | type: string | description: GUID of the program to end. | required: true Return type: PROMISE - name: jobId | type: string | description: Job GUID of the ending of the program. Retrieve job details using the [Async Job API](https://dev.wix.com/docs/rest/business-management/async-job/introduction.md). Possible Errors: HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: PROGRAM_STATUS_TRANSITION_NOT_ALLOWED | Description: Program was already ended. ``` ### Examples ### endProgram ```javascript import { programs } from '@wix/benefit-programs'; async function endProgram(programId) { const response = await programs.endProgram(programId); }; ``` ### endProgram (with elevated permissions) ```javascript import { programs } from '@wix/benefit-programs'; import { auth } from '@wix/essentials'; async function myEndProgramMethod(programId) { const elevatedEndProgram = auth.elevate(programs.endProgram); const response = await elevatedEndProgram(programId); } ``` ### endProgram (self-hosted) Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md). ```javascript import { createClient } from '@wix/sdk'; import { programs } from '@wix/benefit-programs'; // Import the auth strategy for the relevant access type // Import the relevant host module if needed const myWixClient = createClient ({ modules: { programs }, // Include the auth strategy and host as relevant }); async function endProgram(programId) { const response = await myWixClient.programs.endProgram(programId); }; ``` ---