> ## 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

> Error code mappings between BioCatch and Grand Central for troubleshooting

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 titleRow = document.querySelector("#page-title")?.parentElement;
      if (!titleRow) {
        return null;
      }
      let callout = titleRow.querySelector("[data-vendor-api-version-callout='true']");
      if (!callout) {
        callout = document.createElement("div");
        callout.dataset.vendorApiVersionCallout = "true";
        callout.className = "vendor-api-version-callout vendor-api-version-callout--in-title";
        titleRow.appendChild(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 = ["BioCatch API v2.0"];

<VendorApiVersionTag versions={vendorApiVersions} />

The BioCatch integration adds behavioral biometrics to fraud detection, analyzing how a user interacts with your app to retrieve an activity decision and to send feedback on that decision. For setup steps, see [Get started](/connectors/fraud-detection/biocatch/get-started).

## Supported operations

The BioCatch connector supports the following operations.

### Retrieve user activity analysis

* Retrieve user activity analysis details and decision for a scored session.
* The response includes:
  * `score`: top-level BioCatch risk score (0-1000)
  * `decision.decisionFlag`: mapped from BioCatch `policyAction` at the root level

### Provide feedback on user activity analysis

* Provide feedback on the user activity decision retrieved in case of false positive or false negative.

## Events

This connector is synchronous and doesn't publish or consume events.

## Error mapping

The following table maps each BioCatch error code to its Grand Central counterpart:

| BioCatch code                                          | Grand Central code |
| :----------------------------------------------------- | :----------------- |
| `wrong customer id was provided`                       | `GC025`            |
| `missing customer id`                                  | `GC025`            |
| `missing uuid`                                         | `GC025`            |
| `invalid customerSessionId value was sent`             | `GC025`            |
| `invalid value was sent in the customerSpecific field` | `GC025`            |
| `invalid customerSpecific field was sent`              | `GC025`            |
| `invalid value was sent in the customerSpecific field` | `GC025`            |
| `invalid brand value was sent`                         | `GC025`            |
| `empty request`                                        | `GC025`            |

<Info>
  For a complete list of Grand Central error codes and their descriptions, see [Status codes, errors, and responses](/connectors/reference/error-codes).
</Info>
