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

# Get started

> Configure and deploy the ComplyAdvantage AML connector with Grand Central

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 = ["ComplyAdvantage Mesh API v2.0"];

<VendorApiVersionTag versions={vendorApiVersions} />

Before you configure the connector, ensure you have the following credentials and connectivity in place:

* You have completed the steps in the [Get started](/connectors/getting-started).
* You have an active contract with ComplyAdvantage and your own accounts and credentials for their test and production services.
* You have a Sync Hub consumer subscription if you need monitoring alerts delivered to a downstream consumer. See [Sync Hub overview](/platform/sync-hub/overview).

## Configuration guide

Follow these steps to initialize and authorize your ComplyAdvantage Connector.

### Step 1: Establish connectivity

1. Set your APIM subscription key in the header as follows:
   * Key: `api-key`
   * Value: `<your subscription key>`
2. Contact the Grand Central team to set up a connection with ComplyAdvantage. Provide the following details for OAuth token generation:
   * `comply-advantage-username`
   * `comply-advantage-password`
   * `comply-advantage-realm`

### Step 2: Configure environment variables

1. Configure the base URL in the `gc-applications-live` repository in the connector's `values.yaml` file:

Sample `application.properties` file:

```properties theme={"system"}
complyAdvantage.baseUrl = //COMPLY environment base URL
```

The following example shows the location of the connector's `values.yaml` file:

```text theme={"system"}
├── iPaaS
└── azure/runtimes
    ├── dev
    └── test
        └── values
            └── gc-complyAdvantage
```

### Step 3: Configure monitoring event delivery through Sync Hub

The connector publishes monitoring alerts to **Sync Hub** after it hydrates Mesh webhook events. To deliver ongoing monitoring alerts to your consumer:

1. Work with ComplyAdvantage to register the Grand Central inbound webhook URL on your Mesh tenant so Mesh can deliver `CASE_CREATED` and `CASE_ALERT_LIST_UPDATED` events to the connector.
2. Contact the Grand Central team to enable Sync Hub publishing for ComplyAdvantage monitoring events in your environment.
3. Configure your consumer to subscribe to the Sync Hub topic for AML monitoring events. Confirm it parses `data.eventType` values `CASE_CREATED` and `CASE_ALERT_LIST_UPDATED`. The `data` payload aligns with the `customer-screening-response` schema where fields overlap; `CASE_CREATED` events may not include hydrated `screeningAlerts`.

<Info>
  Sync screening with `last_sync_step=SCREENING` does not return monitoring case identifiers. Monitoring remediation and alert delivery rely on Mesh inbound webhooks to the connector and Sync Hub publication to consumers.
</Info>

## Test your integration

To use the Party Lifecycle Unified API, include your Grand Central subscription key in the request header. If you don't have a key, contact the Grand Central Support Team to have one provisioned.

| Key       | Value                     |
| :-------- | :------------------------ |
| `api-key` | `<your_subscription_key>` |

Test the API using the [Postman collection](https://github.com/bb-ecos-ecos/grandcentral-documentation/blob/main/Postman-Collection/GC%20Party%20Lifecycle%20-%20Unified%20Spec.postman_collection.json).

### Remediation flow

After a `MATCH` screening response, test the sequential remediation path:

1. `POST /screening-assessment/match-profiles/dispositions` with `disposition` = `FALSE_POSITIVE`
2. `POST /screening-assessment/match-profiles/suppression` to suppress the profile on the false-positive path

## Troubleshooting

If your connector isn't responding as expected, check these common scenarios.

<AccordionGroup>
  <Accordion icon="lock" title="5xx: Internal server error or core system down">
    **Cause:** The Grand Central gateway cannot establish a handshake with the ComplyAdvantage endpoint. This typically indicates an upstream service outage at ComplyAdvantage or a network routing failure.

    **Solution:** Verify the operational status of the ComplyAdvantage environment with ComplyAdvantage. If the service is operational, contact the [GC Support](mailto:gc_support@backbase.com) team.
  </Accordion>

  <Accordion icon="wifi-slash" title="5xx: Timeout or SocketTimeoutException">
    **Cause:** The request to ComplyAdvantage exceeded the configured timeout threshold. This can occur during periods of high load or network latency.

    **Solution:** Verify the operational status of the ComplyAdvantage environment with ComplyAdvantage. If the service is operational, contact the [GC Support](mailto:gc_support@backbase.com) team to review timeout configurations.
  </Accordion>

  <Accordion icon="key" title="Invalid authentication">
    **Cause:** The credentials provided during setup are incorrect.

    **Solution:** Verify your credentials with ComplyAdvantage and contact the GC team to update the connection.
  </Accordion>

  <Accordion icon="gauge-high" title="429: Rate limit exceeded">
    **Cause:** The number of incoming requests exceeded the defined threshold for your subscription tier. This response protects the stability of the Grand Central and partner infrastructure.

    **Solution:** Review your app's request patterns to identify unexpected spikes. If you require higher throughput, contact the Grand Central team to request an adjustment to your APIM rate limit policy.
  </Accordion>

  <Accordion icon="bell" title="Monitoring events not received on Sync Hub">
    **Cause:** You have not registered the Mesh webhook, inbound signature validation failed, alert hydration failed after the inbound event, or your consumer does not subscribe to the correct Sync Hub topic.

    **Solution:** Confirm Mesh delivers to the GC inbound URL and check connector logs for GET-risks hydration errors. Verify Sync Hub publishing is enabled and your consumer subscription is active. Contact [GC Support](mailto:gc_support@backbase.com) if events don't appear on Sync Hub after successful connector processing.
  </Accordion>
</AccordionGroup>

***

## Need more help?

<Card icon="envelope" href="mailto:support@grandcentral.io" title="Contact support">
  Reach out to the Grand Central team for assistance with environment setup or rate limit increases.
</Card>
