# 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}"
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.nmkr.io/nmkr-studio/project/notifications.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
