Webhooks

Webhooks are where identity breach notifications get sent

To use the Identity Breach Monitoring Service, it is necessary to setup a Webhook with Enzoic. You will need to specify a URL on your end that will be called with a POST whenever a notification is made. This can be done via API using the Webhooks API or by contacting Enzoic Support. You will also receive a Webhook Key and Webhook Secret which will be passed to your endpoint via basic HTTP authentication.

NOTE: Webhook notifications will be sent from IP address: 52.42.159.171. You may need to update your firewall rules accordingly.

Webhook POST Body

The content of the POST body that will be sent to your webhook for new Breach Monitoring notifications will be a JSON object with the members specified in the table below.

Additional JSON keys may be added to this payload as we make enhancements to the service, so you must implement JSON parsing for the webhook in a way that will not fail if additional data members are present.

An example POST body:

{
    "type": "piiAlert",
    "tag": "my-tag",
    "id": "57dc11964d6db21300991b78",
    "date": "2023-04-07T07:43:09Z",
    "exposureID": "57ed11964d6db21300991c12",
    "matchedMonitoredItems": {
        "firstName": {
            "foundValue": "Jimmy", 
            "monitoredValue": "JIMMY"
        },
        "lastName": {
            "foundValue": "Dean", 
            "monitoredValue": "DEAN"
        },
        "address1": {
            "foundValue": "2121 Cherrybrook Dr", 
            "monitoredValue": "2121 CHERRYBROOK DR"
        },
        "address2": {
            "foundValue": "Suite 200", 
            "monitoredValue": "SUITE 200"
        },
        "city": {
            "foundValue": "Heisenberg", 
            "monitoredValue": "HEISENBERG"
        },
        "province": {
            "foundValue": "CO", 
            "monitoredValue": "CO"
        },
        "postalCode": {
            "foundValue": "12345", 
            "monitoredValue": "12345"
        },
        "governmentID": {
            "country": "US",
            "foundValue": "232-44-3432",
            "monitoredValue": "232443432",
        },
        "emails": [
            {
                "foundValue": "jimmy@nowhere.com", 
                "monitoredValue": "jimmy@nowhere.com"
            },
        ],
        "creditCards": [
            {
                "foundValue": "4111 1111 1111 1111", 
                "monitoredValue": "4111111111111111"
            },
        ],
        "cryptocurrencyWallets": [
            {
                "foundValue": "0xb794f5ea0ba39494ce839613fffba74279579268",
                "monitoredValue": "0xb794f5ea0ba39494ce839613fffba74279579268"
            },
        ],
        "phoneNumbers": [
            {
                "foundValue": "(555) 323-4433", 
                "monitoredValue": "+15553234433"
            },
        ],
        "secondaryMatchItems": [
            {
                "description": "EIN",
                "foundValue": "12-3123122",
                "monitoredValue": "123123122",
            },
            {
                "description": "Wells Fargo Account Number",
                "foundValue": "900000001",
                "monitoredValue": "900000001",
            },
        ],    
    },
    "rawMatchSource": "Jimmy Dean\n2121 Cherrybrook Dr, Suite 200 Heisenberg, CO 12345\nSSN 232-44-3432\nMobile: (555) 323-4423\njimmy@nowhere.com\nVisa 4111111111111111 03/28 444\nBTC Wallet 0xb794f5ea0ba39494ce839613fffba74279579268 (1.0233 balance)\nEIN: 12-3123122\nWells Fargo Checking - Account #900000001\n"
}

Webhook Authentication

For security reasons, you should authenticate calls to your Webhook endpoint. To facilitate this, you will be provided with a Webhook Key and a Webhook Secret when you setup your Webhook with Enzoic. These will be passed as a standard basic authentication HTTP with the Webhook Key as the username and the Webhook Secret as the password. As per the standard, the authentication header passed to your endpoint is constructed as follows:

authorization: basic Base64({Webhook Key}:{Webhook Secret})

Testing Your Implementation

Once you have your webhook up and publicly accessible, you can verify all is working using the Webhook Test REST Call using the type=piiAlert query string parameter. This will cause an Identity Breach Monitoring Notification POST to be made to your URL containing test data.

Last updated