> ## Documentation Index
> Fetch the complete documentation index at: https://agenticbanking.backbase.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Reference

> Configuration properties, operations, events, and error mapping for the FIS Zelle Connector.

export const VendorApiVersionTag = ({versions, label = "Supports"}) => {
  useEffect(() => {
    if (!versions || versions.length === 0) {
      return undefined;
    }
    const findAndSegmentStart = (reference, target) => {
      let i = 0;
      while (i < reference.length && i < target.length && reference[i] === target[i]) {
        i += 1;
      }
      let start = i;
      while (start > 0 && (/[0-9.vR]/).test(target[start - 1])) {
        start -= 1;
      }
      return start;
    };
    const formatText = () => {
      const suffix = " operations";
      if (versions.length === 1) {
        return `${label} ${versions[0]}${suffix}`;
      }
      const [first, ...rest] = versions;
      const last = rest[rest.length - 1];
      const andStart = findAndSegmentStart(first, last);
      const lead = first.slice(0, andStart);
      if (versions.length === 2) {
        return `${label} ${first} and ${last.slice(andStart)}${suffix}`;
      }
      const stems = versions.map(version => version.slice(andStart));
      return `${label} ${lead}${stems.slice(0, -1).join(", ")}, and ${stems[stems.length - 1]}${suffix}`;
    };
    const text = formatText();
    const mountCallout = () => {
      const title = document.querySelector("#page-title");
      const header = title?.closest("header") ?? document.querySelector("#header");
      if (!title || !header || !header.contains(title)) {
        return null;
      }
      let titleBlock = title;
      while (titleBlock.parentElement && titleBlock.parentElement !== header) {
        titleBlock = titleBlock.parentElement;
      }
      let callout = header.querySelector("[data-vendor-api-version-callout='true']");
      if (!callout) {
        callout = document.createElement("div");
        callout.dataset.vendorApiVersionCallout = "true";
        callout.className = "vendor-api-version-callout";
        titleBlock.insertAdjacentElement("afterend", callout);
      }
      callout.replaceChildren();
      const textEl = document.createElement("span");
      textEl.className = "vendor-api-version-text";
      textEl.textContent = text;
      callout.appendChild(textEl);
      return callout;
    };
    let callout = mountCallout();
    if (callout) {
      return () => {
        callout?.remove();
      };
    }
    const observer = new MutationObserver(() => {
      callout = mountCallout();
      if (callout) {
        observer.disconnect();
      }
    });
    observer.observe(document.body, {
      childList: true,
      subtree: true
    });
    return () => {
      observer.disconnect();
      callout?.remove();
    };
  }, [versions, label]);
  return null;
};

export const vendorApiVersions = ["FIS Zelle REST API v4", "FIS PeoplePay SOAP v1.6.0"];

<VendorApiVersionTag versions={vendorApiVersions} />

The FIS Zelle integration provides outbound (synchronous) connectivity for payer management, payer account management, and Zelle sign-in. On ecos-dev, Argo CD deploys two charts under the `gc-fis-zelle` application.

The following table lists the two charts deployed for FIS Zelle.

| Chart | Values file | Role |
| :- | :- | :- |
| `gc-fis-zelle-payment-order-connector` | `payment-order-v2.values.yaml` | Payer and payer account management |
| `gc-fis-zelle-party-authentication-connector` | `party-authentication-v0.values.yaml` | Zelle sign-in |

Both charts mount the shared `fis-zelle` SOPS secret. For setup steps, see [Get started](/connectors/payments/fis-zelle/get-started).

## Configuration properties

Configure each chart in its values file under `runtimes/<runtime>/values/gc-fis-zelle/`.

### Values to obtain from FIS

Obtain the following values from FIS and set them in the values files. These values are environment-specific, so they have no default.

| Property | Description |
| :- | :- |
| `zelle.rest.base.url` | Base URL of the FIS API gateway for small-business REST calls |
| `zelle.soap.endpoint` | Retail PeoplePay SOAP endpoint URL |
| `zelle.fis.application-id` | Application identifier FIS expects on requests |
| `zelle.fis.source-id` | Source identifier for your financial institution |
| `zelle.fis.fe-id` | Frontend identifier for the Zelle program |
| `zelle.fis.environment-id` | FIS environment label (for example `uat`) |
| `http.client.oauth2.token-url` | FIS OAuth2 token endpoint URL |

### gc-fis-zelle-payment-order-connector

Set the following properties in `payment-order-v2.values.yaml`. Defaults reflect the ecos-dev installation; confirm production values with the Grand Central team.

| Property | Description | Default |
| :- | :- | :- |
| `retail.endpointType` | Transport for retail traffic (`soap` for PeoplePay) | `soap` |
| `business.endpointType` | Transport for small-business traffic (`rest` for Code Connect) | `rest` |
| `zelle.rest.access-token-url` | URL used for Zelle context-token access | *Environment-specific full URL under the FIS gateway* |
| `zelle.http.client.configurer` | HTTP client configurer class for OAuth2 and context-token handling | `com.backbase.grandcentral.sdk.zelle.config.FisZelleHttpClientConfigurer` |
| `zelle.fis.locale` | Locale sent on FIS identity headers | `en_US` |
| `zelle.fis.context-token.fetch-enabled` | Whether the connector fetches a FIS context token | `true` |
| `zelle.soap.svc-ver` | PeoplePay service version | `v1.6.0` |
| `zelle.soap.appl-id` | PeoplePay application ID | *Environment-specific* |
| `zelle.soap.routing-id` | PeoplePay routing ID | *Environment-specific* |
| `zelle.soap.src-id` | PeoplePay source ID | *Environment-specific* |
| `zelle.soap.mtvn-svc-ver` | Metavante service version | `v1.1.0` |
| `zelle.soap.channel-name` | PeoplePay channel name | `WEB` |
| `zelle.soap.locale` | Locale for SOAP calls | `en-US` |
| `cxf.client.ssl.ca.cert.path` | Path to the CA certificate mounted from the SOPS secret | `/etc/camel/conf.d/_secrets/fis-zelle/server.crt` |
| `cxf.client.ssl.pkcs12.path` | Path to the client PKCS12 keystore mounted from the SOPS secret | `/etc/camel/conf.d/_secrets/fis-zelle/client.p12` |
| `http.client.proxy.activate` | Whether HTTP egress uses the platform web proxy | Chart-dependent; ecos-dev sets `false` |

### gc-fis-zelle-party-authentication-connector

Set the following properties in `party-authentication-v0.values.yaml`.

| Property | Description | Default |
| :- | :- | :- |
| `retail.endpointType` | Transport for retail sign-in (`soap`) | `soap` |
| `business.endpointType` | Transport for small-business sign-in (`rest`) | `rest` |
| `httpClientConfigurer` | HTTP client configurer for OAuth2 without the Zelle context-token handshake | `com.backbase.grandcentral.sdk.config.OAuth2HttpClientConfigurer` |
| `zelle.http.client.configurer` | Same configurer bound for the Zelle HTTP client | `com.backbase.grandcentral.sdk.config.OAuth2HttpClientConfigurer` |
| `zelle.soap.mtvn-svc-ver` | Metavante service version for sign-in SOAP | `v1.6.0` |
| `http.client.proxy.activate` | Whether HTTP egress uses the platform web proxy | Chart-dependent; ecos-dev sets `false` |
| `cxf.client.proxy.activate` | Whether CXF SOAP egress uses the platform web proxy | Chart-dependent; ecos-dev sets `false` |

## SOPS secrets

Both charts read credentials and mTLS material from the `fis-zelle` SOPS secret (`existingSecretName: fis-zelle`). On ecos-dev the secret lives in the `gc-fis-zelle` namespace.

The following table lists keys stored in that secret.

| Key | Description |
| :- | :- |
| `fis-zelle.properties` | Property file that holds OAuth2 `client-id` and `client-secret`, the PKCS12 passphrase (`cxf.client.ssl.pkcs12.pass`), and `zelle.fis.secret-key` |
| `client.p12` | Client PKCS12 keystore for retail SOAP mTLS |
| `server.crt` | CA certificate for retail SOAP mTLS |

## Supported operations

For the operation-to-endpoint tables, see [Overview](/connectors/payments/fis-zelle/overview). For the full contract, see the [API playground](/grand-central-apis/api-playground).

## Events

Both `gc-fis-zelle-payment-order-connector` and `gc-fis-zelle-party-authentication-connector` are synchronous and do not publish or consume events.

## Error mapping

The connector maps vendor error codes to Grand Central status codes. For the full list, see [Error codes](/grand-central-apis/error-codes).

## Dependencies

* FIS Zelle Small Business REST API (outbound), reachable at `zelle.rest.base.url`
* FIS PeoplePay SOAP endpoint (outbound), reachable at `zelle.soap.endpoint`
* FIS OAuth2 token endpoint (outbound), for Bearer token authentication
* `fis-zelle-connector-sdk` (shared HTTP and SOAP configuration for FIS Zelle)
