> For the complete documentation index, see [llms.txt](https://docs.nmkr.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nmkr.io/nmkr-studio/project/notifications.md).

# Notifications

NMKR Studio now allows also to send notifications to you for successful sales from your project.\
The notifications can be sent via E-Mail or Webhook.\
Please keep in mind that this feature is in beta phase now, if you experience any issues, [please let us know](https://nmkr.io/support).

<figure><img src="/files/jT338BAiXwBSyn8d8MJW" alt=""><figcaption></figcaption></figure>

## Set up Notifications for your project

The Notifications can be enabled for every project separately. Go to the Notifications tab in the [edit section](https://docs.nmkr.io/nmkr-studio/project/edit) of your project. Click "notifications".

<figure><img src="/files/Ad4M1ITCflHE899wKSvb" alt=""><figcaption><p>Notifications tab in the edit section of your project</p></figcaption></figure>

### Notifications via Email

Select E-Mail in the dropdown and insert your desired email address and activate the notifications. Click on "save".

<figure><img src="/files/cfagk0s8y4QJzgPrlKIA" alt=""><figcaption></figcaption></figure>

Click "save changes" in the notifications tab to save the newly added notification. You will now receive notification E-Mails about successful sales of your projects NFTs.

{% hint style="info" %}
As you may receive a lot of Emails, please whitelist the domain @nmkr.io with your E-mail provider.&#x20;
{% endhint %}

### Notifications via Webhook

A webhook is a callback function that uses HTTP to allow lightweight, event-driven communication between two application programming interfaces (APIs).\
\
To enable Notifications via Webhook please select Webhook in the dropdown.\
Insert your API Url Address and note the secret key.\
Activate the notification and klick "OK".

<figure><img src="/files/AY5RmDPLB8nUo0OG57u8" alt=""><figcaption></figcaption></figure>

Click "save changes" in the notifications tab to save the newly added notification.

#### Response classes

Webhooks will be called for every single sale in the project. The following shows the response classes that will be sent:

```
public enum NotificationEventTypes
    {
        transactionconfirmed,
        transactionfinished,
        transactioncanceled,
    }

    public class NotificationSaleNft
    {
        public string NftUid { get; set; }
        public string NftName { get; set; }
        public string NftNameInHex { get; set; }
        public string AssetId { get; set; }
        public string PolicyId { get; set; }
        public long Count { get; set; }
        public long Multiplier { get; set; }
    }

    public class NotificationSaleClass
    {
        [JsonConverter(typeof(StringEnumConverter))]
        public NotificationEventTypes EventType { get; set; }
        public string ProjectName { get; set; }
        public string ProjectUid { get; set; }

        [JsonConverter(typeof(StringEnumConverter))]
        public TransactionTypes SaleType { get; set; }
        public DateTime SaleDate { get; set; }
        public long Price { get; set; }
        public long? MintingCosts { get; set; }
        public long? SendbackCosts { get; set; }
        public long? NetworkFees { get; set; }
        public long? NMKRRewards { get; set; }
        public long? Discount { get; set; }
        public NotificationSaleNft[] NotificationSaleNfts { get; set; }
        public string TxHash { get; set; }
        public string ReceiverAddress { get; set; }
        public string OriginatorAddress { get; set; }
        public string StakeAddressReceiver { get; set; }
        public object DetailResults { get; set; }
    }
```

#### Payload example

```
{
  "EventType": "transactionconfirmed",
  "ProjectName": "a project",
  "ProjectUid": "9e2d000a-ed53-4db4-819b-xyz123456",
  "SaleType": "paidonprojectaddress",
  "SaleDate": "2022-11-23T12:14:43",
  "Price": 10000000,
  "MintingCosts": 2000000,
  "SendbackCosts": 2000000,
  "NetworkFees": 203341,
  "NMKRRewards": 0,
  "Discount": null,
  "NotificationSaleNfts": [
    {
      "NftId": 123456,
      "NftUid": "0f79ae64-aad4-4dcf-9b22-xyz1234",
      "NftName": "Thetoken0001",
      "NftNameInHex": "546865746F6B65630303031",
      "AssetId": "9ae5eba7256cdd1f51834676dcde4f1fea491e8adbb00ea632fb788e54686xyz12345677",
      "PolicyId": "9ae5eba7256cdd1f51834676dcde4f1fea491e8adbbxyz123456",
      "Count": 1,
      "Multiplier": 1
    }
  ],
  "TxHash": "b08aad615f599c80a243882330c99d33e07f443ca1b4d043f448bfxyz1234",
  "ReceiverAddress": "addr_test1qrqtawercjsj29xyq4kssxeru6s33y68kwmh8tj00q4vkhaeucuvwvhegqxf6ka0ewy0pallk044nnrtsj8zxyz1234",
  "OriginatorAddress": "addr_test1qrqtawercjsj29xyq4kssxeru6s33y68kwmh8tj00q4vkhaeucuvwvhegqxf6ka0ewy0pallk044nxyz1234",
  "StakeAddressReceiver": "stake_test1uzu7vwx8xtu5qryatwhuhz8s7llm866ee34cfr3tukxyz1234",
  "DetailResults": null,
  "Metadata": "{\n  \"721\": {\n    \"9ae5eba7256cdd1f51834676dcde4f1fea491e8adbbxyz123456\": 
  {\n      \"Thetoken0001\": {\n        \"name\": \"Thetoken0001\",\n        
  \"image\": \"ipfs://QmUojMDe1hviWNcL5o23xTiQUBiKaFmVxyz123456\",\n        
  \"mediaType\": \"image/jpeg\",\n        \"description\": \"\",\n        
  \"files\": [\n          {\n            \"name\": \"Thetoken0001\",\n            
  \"mediaType\": \"image/jpeg\",\n           
   \"src\": \"ipfs://QmUojMDe1hviWNcL5o23xTiQUBiKaFmVT6yxyz1234\"\n          
   }\n        ]\n      }\n    },\n    \"version\": \"1.0\"\n  }\n}"
}
```
