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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
