> ## Documentation Index
> Fetch the complete documentation index at: https://docs.go.gbgplc.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Understanding the PEPs and Sanctions module 

> Learn how to configure and customise default module outcomes in GBG GO.

For an overview of the PEPs and Sanctions module, its variants, capabilities, and result codes, see the [PEPs and Sanctions module](/docs/go-v2/platform/modules/compliance-screening/peps-and-sanctions) reference.

When the module detects a match, you can configure the journey to reject a customer, flag them for manual review, or apply additional checks.

<Note>
  You can view PEP and Sanctions screening results in the Investigation Portal. For more information, refer to the [View details of a journey session](/docs/go-v2/platform/investigate/view-journey-details) documentation.
</Note>

In this guide, you'll learn about the various capabilities of the module and its variants. You'll also learn how to test the module using GBG GO APIs.

## Module variants

The PEPs and Sanctions module has various variants that determine the scope of compliance checks performed on your customers. These include:

* [UK Instance](/docs/go-v2/platform/modules/compliance-screening/peps-and-sanctions#uk-instance)
* [UK Instance (with OGM)](/docs/go-v2/platform/modules/compliance-screening/peps-and-sanctions#uk-instance-with-ogm)
* [UK Instance (with Adverse Media and OGM)](/docs/go-v2/platform/modules/compliance-screening/peps-and-sanctions#uk-instance-with-adverse-media-and-ogm)
* [PEPs and Sanctions Standard](/docs/go-v2/platform/modules/compliance-screening/peps-and-sanctions#peps-and-sanctions-standard)
* [PEPs and Sanctions Standard with Adverse Media](/docs/go-v2/platform/modules/compliance-screening/peps-and-sanctions#peps-and-sanctions-standard-with-adverse-media)
* [PEPs and Sanctions Standard OGM Push](/docs/go-v2/platform/modules/compliance-screening/peps-and-sanctions#peps-and-sanctions-standard-ogm-push)

For a full description of each variant, its capabilities, and default outcomes, refer to [PEPs and Sanctions](/docs/go-v2/platform/modules/compliance-screening/peps-and-sanctions).

## Capabilities and allowed values

Each PEPs and Sanctions variant supports different capabilities that determine which screening checks the module performs. The capabilities include PEPs and sanctions results, sanctions hit type, PEPs hit type, sent to OGM, and adverse media hit type.

For a full description of each capability and its allowed values, refer to [PEPs and Sanctions](/docs/go-v2/platform/modules/compliance-screening/peps-and-sanctions).

## Example: Testing the PEPs and Sanctions module using GO API

This section walks you through testing the PEPs and Sanctions module.

### Step 1: Add the module to your journey

To test the PEPs and Sanctions module, you first need to add it to a customer journey.

1. Create a new journey or open an existing one in the Journey builder.
2. Click **Browse and add modules**.
3. Search for **PEPs and Sanctions** or navigate to the *Compliance Screening category*.
4. Select the **PEPs and Sanctions** module.
5. Choose a variant.

<Info>
  The **UK Instance (with Adverse Media and OGM)** variant is used for testing during these steps.
</Info>

6. Click **Add to journey**.
7. Click **Configure outcomes**.

* **Rules**:
  * **Match**: *PEPs and Sanctions Results* + *is any* of + *PEPs and Sanctions Hit*. This rule means that if the PEPs and Sanctions check results in a hit, then there is a match.
  * **No Match**: *PEPs and Sanctions Results* + *is any* of + *PEPs and Sanctions No Hit*. This rule means that if the PEPs and Sanctions check results in a no hit, then there is no match.

8. Click **Close**.

You have successfully added the PEPs and Sanctions module to your journey and configured the evaluation rules. Next, publish the journey to Preview for testing.

### Step 2: Publish the journey

After adding and configuring the module:

1. Click **Publish to Preview**.
2. Go to the GBG GO Dashboard and copy your Resource ID and Version for testing.

For more information on publishing journeys, refer to the [Publish journey guide](/docs/go-v2/platform/journey-builder/publish-journey).

### Step 3: Start journey with test data

Use the Start journey endpoint to trigger the PEPs and Sanctions screening with test customer data.

Send a POST request to [`/journey/start`](/docs/go-v2/api-reference/endpoint/start-journey):

**Request body**:

```json cURL theme={null}
curl --request POST \
  --url https://eu.platform.go.gbgplc.com/v2/captain/api/journey/start \
  --header 'Authorization: Bearer your_access_token' \
  --header 'Content-Type: application/json' \
  --data '{
    "resourceId": "23cdfdf1822ce2750399eac9508116af26a1403c72996851715c950de09a8983@69wllt84",
    "context": {
      "config": { "delivery": "api" },
      "subject": {}
    }
  }'
```

Replace `your_access_token` with a valid access token. Replace the `resourceId` value with your journey's Resource ID and Version.

**What happens**:

* The API creates a journey instance and returns an `instanceId` that you use in the following steps to drive and inspect the journey.

**Response:**

```json JSON theme={null}
{
    "instanceId": "8OIK7NODGJdqYkBLDs2znY",
    "status": "started",
    "message": "Journey 8OIK7NODGJdqYkBLDs2znY started successfully"
}
```

For more details on starting a journey, refer to the [Start a journey guide](/docs/go-v2/developer-integration/execute-customer-journeys/start-a-journey-step).

### Step 4: Fetch interaction

After the journey starts, fetch the next interaction to find out which fields the journey needs from the end-user. This is also where you obtain the `interactionId` you'll need when submitting data.

Send a POST request to [`/journey/interaction/fetch`](/docs/go-v2/api-reference/endpoint/fetch-interaction):

**Request body**:

```json cURL theme={null}
curl --request POST \
  --url https://eu.platform.go.gbgplc.com/v2/captain/api/journey/interaction/fetch \
  --header 'Authorization: Bearer your_access_token' \
  --header 'Content-Type: application/json' \
  --data '{
    "instanceId": "8OIK7NODGJdqYkBLDs2znY"
  }'
```

**What you receive**:

* The `interactionId` for the current interaction. You will pass this back in the next step.
* The interaction's `collects` list, which describes the data the journey can accept.
* An `outstanding` list, which highlights the fields that must be supplied before the journey can progress.

**Example response**:

```json JSON expandable theme={null}
{
    "instanceId": "8OIK7NODGJdqYkBLDs2znY",
    "interactionId": "grn:::gbg:design:interaction:segment1@latest",
    "journey": {
        "status": "InProgress"
    },
    "interaction": {
        "grId": "grn:::gbg:design:interaction:segment1@latest",
        "resource": {
            "id": "segment1",
            "name": "segment1",
            "version": "latest",
            "type": "interaction",
            "data": {
                "pages": [
                    {
                        "id": "personal_details",
                        "label": "Personal details",
                        "cards": [
                            { "id": "NameCard" },
                            { "id": "GenderCard" },
                            { "id": "DateOfBirthCard" },
                            { "id": "ControlCard" }
                        ]
                    },
                    {
                        "id": "address_details",
                        "label": "Address details",
                        "cards": [
                            {
                                "id": "AddressCard",
                                "config": {
                                    "secrets": {
                                        "loqateApiKey": { "value": "WJ28-WP43-WG34-YD87" }
                                    }
                                }
                            },
                            { "id": "ControlCard" }
                        ]
                    }
                ]
            }
        },
        "collects": [
            { "ref": "FullName", "spec": "required" },
            { "ref": "Gender", "spec": "optional" },
            { "ref": "DateOfBirth", "spec": "optional" },
            { "ref": "CurrentAddress", "spec": "optional", "parentSpec": "optional" }
        ],
        "consumes": []
    },
    "outstanding": [
        "FullName"
    ]
}
```

### Step 5: Submit the end-user's details

Submit the customer data the journey is waiting on. The `outstanding` list from the previous step shows that `FullName` is required. `dateOfBirth` is optional but recommended, as it improves screening accuracy.

Send a POST request to [`/journey/interaction/submit`](/docs/go-v2/api-reference/endpoint/submit-interaction):

**Request body**:

```json cURL theme={null}
curl --request POST \
  --url https://eu.platform.go.gbgplc.com/v2/captain/api/journey/interaction/submit \
  --header 'Authorization: Bearer your_access_token' \
  --header 'Content-Type: application/json' \
  --data '{
    "instanceId": "8OIK7NODGJdqYkBLDs2znY",
    "interactionId": "grn:::gbg:design:interaction:segment1@latest",
    "context": {
      "subject": {
        "identity": {
          "firstName": "John",
          "lastNames": ["Doe"],
          "dateOfBirth": "1985-03-15"
        }
      }
    },
    "participants": [
      { "domainElementId": "FullName" }
    ]
  }'
```

Use the `instanceId` from [Step 3](#step-3-start-journey-with-test-data) and the `interactionId` from [Step 4](#step-4-fetch-interaction). The `participants` array tells the journey which domain element the submitted data belongs to.

**Response:**

```json JSON theme={null}
{
    "status": "success"
}
```

A `success` status confirms that the submitted data was accepted. The journey continues processing in the background. Move on to the next step to retrieve the screening result.

### Step 6: Poll for the screening result

The PEPs and Sanctions screening runs asynchronously. Poll the Fetch journey state endpoint until the journey `status` is `Completed`.

Send a POST request to [`/journey/state/fetch`](/docs/go-v2/api-reference/endpoint/fetch-journey-state):

**Request body**:

```json cURL theme={null}
curl --request POST \
  --url https://eu.platform.go.gbgplc.com/v2/captain/api/journey/state/fetch \
  --header 'Authorization: Bearer your_access_token' \
  --header 'Content-Type: application/json' \
  --data '{
    "instanceId": "8OIK7NODGJdqYkBLDs2znY"
  }'
```

**What you receive**:

* The overall journey `status`. Continue polling while the status is `InProgress`.
* A `steps` array, where each step describes a module that ran in the journey. The PEPs and Sanctions step includes the `outcome` (for example, `MATCH`), the `advice` (decision, hit types, OGM enrolment, candidate scores) and the `note` block (PEP and sanctions match details such as aliases, positions, addresses, and sanctioning bodies).

**Example response**:

```json JSON expandable theme={null}
{
    "instanceId": "8OIK7NODGJdqYkBLDs2znY",
    "status": "Completed",
    "context": {
        "result": {
            "status": "complete",
            "advice": {}
        },
        "process": {
            "instance": {
                "instanceId": "8OIK7NODGJdqYkBLDs2znY",
                "id": "8OIK7NODGJdqYkBLDs2znY"
            },
            "journey": {
                "id": "1334c341594dbec363c1b40ebea28933aab653ea37d9d4d3c209842786898a90",
                "version": "1bfgzreq",
                "name": "Journey Name",
                "startedAt": "2026-05-14T08:55:55.850Z",
                "endedAt": "2026-05-14T08:58:59.540Z",
                "durationMilliSec": 183690,
                "terminateInteraction": {
                    "grId": "grn:::gbg:design:interaction:end@latest",
                    "resource": {
                        "id": "end",
                        "name": "interactionEnd",
                        "version": "latest",
                        "type": "interaction",
                        "data": {
                            "pages": [
                                {
                                    "id": "pagesForEnd",
                                    "cards": [
                                        { "id": "AllDoneCard" }
                                    ]
                                }
                            ]
                        }
                    },
                    "collects": [],
                    "consumes": []
                }
            },
            "steps": [
                {
                    "nodeId": "mp58t9mvo2ainb8t4r",
                    "result": {
                        "outcome": "MATCH",
                        "advice": {
                            "sent_to_ogm": true,
                            "pep_candidate_score": 99,
                            "sanction_candidate_score": 99,
                            "customDecision": null,
                            "decision": "hit",
                            "sanctions_hit": "A match was found against the full name",
                            "pep_hit": "A match was found against the full name",
                            "adverse_media_hit": "Not Available"
                        },
                        "note": {
                            "pep_match_details": [
                                {
                                    "personId": 153448,
                                    "nationality": "US - United States",
                                    "fullname": "John Michael Doe",
                                    "aliases": [
                                        "John Doe",
                                        "J. Michael Doe",
                                        "Johnny Doe"
                                    ],
                                    "positions": [
                                        {
                                            "position": "Member, Federal Legislature (Legislative Branch) (2021-present)",
                                            "country": "US"
                                        },
                                        {
                                            "position": "Former Member, Upper Chamber (2011-2016)",
                                            "country": "US"
                                        }
                                    ],
                                    "tier": 1,
                                    "gender": "Male",
                                    "addresses": [
                                        {
                                            "country": "",
                                            "superAdministrativeArea": "",
                                            "lines": [
                                                "1 Example Street"
                                            ],
                                            "locality": "Chicago"
                                        }
                                    ],
                                    "dates": [
                                        {
                                            "type": "Birth",
                                            "date": "1985-03-15"
                                        }
                                    ]
                                }
                            ],
                            "sanctions_match_details": [
                                {
                                    "aliases": [
                                        "John Doe",
                                        "J. Michael Doe",
                                        "Johnny Doe"
                                    ],
                                    "addresses": [
                                        {
                                            "locality": "Chicago",
                                            "country": "",
                                            "superAdministrativeArea": "",
                                            "lines": [
                                                "1 Example Street"
                                            ]
                                        }
                                    ],
                                    "dates": [
                                        {
                                            "type": "Birth",
                                            "date": "1985-03-15"
                                        }
                                    ],
                                    "fullName": "John Michael Doe",
                                    "bodies": [
                                        "Office of Foreign Assets Control (OFAC)",
                                        "Her Majesty's Treasury/Office of Financial Sanction Implementation (HMT/OFSI)",
                                        "European Union Council (EU)",
                                        "United Kingdom Foreign, Commonwealth & Development Office"
                                    ]
                                }
                            ]
                        },
                        "status": "complete"
                    },
                    "process": {}
                }
            ]
        },
        "subject": {
            "identity": {
                "firstName": "John",
                "lastNames": [
                    "Doe"
                ]
            }
        }
    }
}
```

The response indicates that there was a hit and therefore, the outcome is a "MATCH".

<Note>
  If the status is **Completed**, the PEPs and Sanctions screening has finished processing.
</Note>
