> 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`).
> - If a reference page seems to be missing its schema (parameters, return types, or type definitions), append `?schema=true` to its `.md` URL (e.g. `https://dev.wix.com/docs/contexts/contexts/stores/category-info/use-category-info-context.md?schema=true`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

# ConnectByCredentials

# Package: conferencing

# Namespace: ConferencingProvider

# Method link: https://dev.wix.com/docs/api-reference/business-management/calendar/conferencing/conferencing-provider-v1/connect-by-credentials.md

## Introduction

Connects a resource to your provider using a username and password.

Wix calls this method when a user connects an account by credentials. Wix calls it only if your configuration lists `CREDENTIALS` in `connectionMethods`.

Wix returns the connection to the caller and uses it to create conferences for the resource.

*Your implementation should:**
- Validate the credentials with your provider, then store and return the established connection, including its `connectedDate`.

*Error handling:** If your implementation returns an error, Wix surfaces it to the caller.

---

## REST API

### Schema

```
 Method: connectByCredentials
 Description: Connects a resource to your provider using a username and password.  Wix calls this method when a user connects an account by credentials. Wix calls it only if your configuration lists `CREDENTIALS` in `connectionMethods`.  Wix returns the connection to the caller and uses it to create conferences for the resource.  *Your implementation should:** - Validate the credentials with your provider, then store and return the established connection, including its `connectedDate`.  *Error handling:** If your implementation returns an error, Wix surfaces it to the caller.
 URL: {DEPLOYMENT-URI}/v1/connect-by-credentials
 Method: POST
 # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present.
 Required parameters:  resourceId
 Method parameters: 
   param name: password | type: password | description: Password for the conferencing account.  | validation: maxLength 500
   param name: resourceId | type: resourceId | description: GUID of the resource to connect. Treat it as an opaque, stable Wix identifier that you key the connection by. | required: true | validation: format GUID
   param name: userName | type: userName | description: Username for the conferencing account. May be an email address or another identifier.  | validation: maxLength 500
 Return type: ConnectByCredentialsResponse
  - name: connection | type: Connection | description: Established connection.  
     - name: id | type: string | description: Connection GUID. Generate a stable, unique GUID for the connection. Wix passes it back to reference the connection later.  | read-only: true | validation: format GUID
     - name: status | type: ConnectionStatus | description: Connection status.  
         - enum:
         -     CONNECTED: The connection is usable now.
         -     DISCONNECTED: The user or your implementation intentionally disconnected the account.
         -     ERROR: The connection was established but is now broken, for example tokens were revoked or expired externally, and needs reconnection.
     - name: email | type: string | description: Email associated with the connection.  | validation: maxLength 320
     - name: connectionMethod | type: ConnectionMethod | description: Method used to establish this connection.  
         - enum:
         -     OAUTH: OAuth authorization flow.
         -     CREDENTIALS: Username and password authentication.
     - name: connectedDate | type: string | description: Date and time the connection was established, in UTC. Set this on every connection you store. Wix ignores connections without it.  | read-only: true | validation: format date-time
     - name: resourceId | type: string | description: GUID of the resource this connection belongs to. Treat it as an opaque, stable Wix identifier. Replaces `accountOwnerId`.  | validation: format GUID

 Possible Errors:
   HTTP Code: 401 | Status Code: UNAUTHENTICATED | Application Code: BAD_CREDENTIALS | Description: The provided credentials are invalid.


```

### Examples

### Connect with a username and password
Wix sends the request payload as an encoded JWT. For the purposes of this example, we show the request and response objects decoded.

```curl
curl -X POST \
'https://my-conferencing.example.com/v1/connect-by-credentials' \
-H 'user-agent: Wix' \
-H 'Content-Type: text/plain; charset=utf-8' \
-d '{
  "resourceId": "a1f3c9e2-6b7d-4e58-9c0a-2d4b8e7f1356",
  "userName": "dana.levi@example.com",
  "password": "Studio-Pass-42"
}'
```

---

## JavaScript SDK

### Schema

```
 Method: wixClientAdmin.calendar.conferencingProvider.connectByCredentials(request, metadata)
 Description: Connects a resource to your provider using a username and password.  Wix calls this method when a user connects an account by credentials. Wix calls it only if your configuration lists `CREDENTIALS` in `connectionMethods`.  Wix returns the connection to the caller and uses it to create conferences for the resource.  *Your implementation should:** - Validate the credentials with your provider, then store and return the established connection, including its `connectedDate`.  *Error handling:** If your implementation returns an error, Wix surfaces it to the caller.
 Method parameters:
   param name: metadata | type: Context | description: this message is not directly used by any service, it exists to describe the expected parameters that SHOULD be provided to invoked Velo methods as part of open-platform. e.g. SPIs, event-handlers, etc.. NOTE: this context object MUST be provided as the last argument in each Velo method signature.  Example: ```typescript export function wixStores_onOrderCanceled({ event, metadata }: OrderCanceledEvent) { ... } ```  
        - name: requestId | type: string | description: A unique identifier of the request. You may print this GUID to your logs to help with future debugging and easier correlation with Wix's logs.  
        - name: currency | type: string | description: [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) 3-letter currency code.  | validation: format CURRENCY
        - name: identity | type: IdentificationData | description: An object that describes the identity that triggered this request.  
           - ONE-OF: 
              - name: anonymousVisitorId | type: string | description: GUID of a site visitor that has not logged in to the site.  | validation: format GUID
              - name: memberId | type: string | description: GUID of a site visitor that has logged in to the site.  | validation: format GUID
              - name: wixUserId | type: string | description: GUID of a Wix user (site owner, contributor, etc.).  | validation: format GUID
              - name: appId | type: string | description: GUID of an app.  | validation: format GUID
        - name: languages | type: array<string> | description: A string representing a language and region in the format of `"xx-XX"`. First 2 letters represent the language code according to ISO 639-1. This is followed by a dash "-", and then a by 2 capital letters representing the region according to ISO 3166-2. For example, `"en-US"`.  
        - name: instanceId | type: string | description: The service provider app's instance GUID.  | validation: format GUID
   param name: request | type: ConnectByCredentialsRequest    
        - name: userName | type: string | description: Username for the conferencing account. May be an email address or another identifier.  | validation: maxLength 500
        - name: password | type: string | description: Password for the conferencing account.  | validation: maxLength 500
        - name: resourceId | type: string | description: GUID of the resource to connect. Treat it as an opaque, stable Wix identifier that you key the connection by.  | validation: format GUID
 Return type: PROMISE<ConnectByCredentialsResponse>
  - name: connection | type: Connection | description: Established connection.  
     - name: _id | type: string | description: Connection GUID. Generate a stable, unique GUID for the connection. Wix passes it back to reference the connection later.  | read-only: true | validation: format GUID
     - name: status | type: ConnectionStatus | description: Connection status.  
         - enum:
         -     CONNECTED: The connection is usable now.
         -     DISCONNECTED: The user or your implementation intentionally disconnected the account.
         -     ERROR: The connection was established but is now broken, for example tokens were revoked or expired externally, and needs reconnection.
     - name: email | type: string | description: Email associated with the connection.  | validation: maxLength 320
     - name: connectionMethod | type: ConnectionMethod | description: Method used to establish this connection.  
         - enum:
         -     OAUTH: OAuth authorization flow.
         -     CREDENTIALS: Username and password authentication.
     - name: connectedDate | type: Date | description: Date and time the connection was established, in UTC. Set this on every connection you store. Wix ignores connections without it.  | read-only: true 
     - name: resourceId | type: string | description: GUID of the resource this connection belongs to. Treat it as an opaque, stable Wix identifier. Replaces `accountOwnerId`.  | validation: format GUID

 Possible Errors:
   HTTP Code: 401 | Status Code: UNAUTHENTICATED | Application Code: BAD_CREDENTIALS | Description: The provided credentials are invalid.


```

### Examples

### Connect with a username and password
Validates the credentials with your provider and returns the stored connection.

```javascript
import { conferencingProvider } from "@wix/calendar/service-plugins";

conferencingProvider.provideHandlers({
  connectByCredentials: async (payload) => {
    const { request, metadata } = payload;
    const { userName, password, resourceId } = request;
    // Validate the credentials with your provider, then store the connection for `resourceId`.

    return {
      connection: {
        _id: "e5d1b8f4-2a6c-4f93-8b07-3c9e1a4d6f28",
        status: conferencingProvider.ConnectionStatus.CONNECTED,
        connectionMethod: conferencingProvider.ConnectionMethod.CREDENTIALS,
        connectedDate: new Date("2026-11-02T08:14:22.512Z"),
        resourceId: "a1f3c9e2-6b7d-4e58-9c0a-2d4b8e7f1356",
      },
    };
  },
});

/* Promise resolves to:
 * {
 *   "connection": {
 *     "_id": "e5d1b8f4-2a6c-4f93-8b07-3c9e1a4d6f28",
 *     "status": "CONNECTED",
 *     "connectionMethod": "CREDENTIALS",
 *     "connectedDate": "2026-11-02T08:14:22.512Z",
 *     "resourceId": "a1f3c9e2-6b7d-4e58-9c0a-2d4b8e7f1356"
 *   }
 * }
 */

```

### connectByCredentials (self-managed)
Self-managed 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 { conferencingProvider } from '@wix/calendar/service-plugins';
// Import the auth strategy for the relevant access type
// Import the relevant host module if needed

const myWixClient = createClient ({
  modules: { conferencingProvider },
  // Include the auth strategy and host as relevant
});


async function connectByCredentials(request,metadata) {
  const response = await myWixClient.conferencingProvider.connectByCredentials(request,metadata);
};
```

---