# General Communication

**Example:** You have an address like <https://domain.com/paywall/generalcallback> and registered it in the Paywall panel. During the setup, you specified that only Refunds, Cancellations, and Partial Refunds should be sent to this address. In this case, Paywall sends notifications to the specified address only for payments in those specific statuses.

<table><thead><tr><th>Key</th><th>Description</th></tr></thead><tbody><tr><td><pre><code>Type
</code></pre></td><td><p>Notification Type</p><p><br>See: <a href="broken-reference">Review </a></p></td></tr><tr><td><pre><code>PaymentId
</code></pre></td><td>Payment identifier</td></tr><tr><td><pre><code>Amount
</code></pre></td><td>Payment amount</td></tr><tr><td><pre><code>OperationAmount
</code></pre></td><td><p>The amount of the action taken on the payment.</p><p><br><strong>Example:</strong> If it is a partial refund, this represents the partial refund amount.</p></td></tr><tr><td><pre><code>IP
</code></pre></td><td>The IP address that sent the request to Paywall</td></tr><tr><td><pre><code>UniqueCode
</code></pre></td><td>Tracking number provided at the time of payment creation</td></tr><tr><td><pre><code>CurrencyId
</code></pre></td><td><p>Currency</p><p><br>See: <a href="../system-data/currency">Review</a></p></td></tr><tr><td><pre><code>PaymentMethodId
</code></pre></td><td><p><strong>Payment method</strong></p><p><br>See: <a href="broken-reference">Review</a></p></td></tr><tr><td><pre><code>Installment
</code></pre></td><td>Payment installment value</td></tr><tr><td><pre><code>ChannelId
</code></pre></td><td><p>Payment channel ID</p><p><br>See: <a href="../system-data/payment-channels">Review</a></p></td></tr><tr><td><pre><code>TagId
</code></pre></td><td>Payment tag ID.<br>This parameter is included if you provide it at the time of payment creation.</td></tr><tr><td><pre><code>DateTime
</code></pre></td><td>The date the payment was processed</td></tr><tr><td><pre><code>Hash
</code></pre></td><td><p>It is the Hash value used to verify that the request originated from Paywall. It is generated using the <strong>System Webhook Hash Key</strong> created in the Paywall panel.</p><p></p><p>The key mentioned above may vary depending on the value of the <code>HashKeyType</code> parameter. A dynamic structure should be implemented.</p></td></tr><tr><td><pre><code>HashFormat
</code></pre></td><td>The format type used to generate the hash value<br><br>See: <a href="broken-reference">Hash Formats</a></td></tr><tr><td><pre><code>HashKeyType
</code></pre></td><td>The type of key used in generating the hash value<br><br>See: <a href="broken-reference">Key Types</a></td></tr></tbody></table>

```csharp
public class GeneralCallbackModel
{
    public int Type { get; set; }
    public int PaymentId { get; set; }
    public decimal Amount { get; set; }
    public decimal OperationAmount { get; set; }
    public string IP { get; set; }
    public string UniqueCode { get; set; }
    public short CurrencyId { get; set; }
    public int PaymentMethodId { get; set; }
    public byte Installment { get; set; }
    public int ChannelId { get; set; }
    public int TagId { get; set; }
    public DateTime DateTime { get; set; }
    public string Hash { get; set; }
}
```
