> For the complete documentation index, see [llms.txt](https://developer.paywall.one/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.paywall.one/payment-orchestration-integration-document/callback-examples/apm.md).

# APM

<table><thead><tr><th>Key</th><th>Description</th></tr></thead><tbody><tr><td><pre><code>Id
</code></pre></td><td>Identifier of the APM transaction</td></tr><tr><td><pre><code>Result
</code></pre></td><td>True | False</td></tr><tr><td><pre><code>ResultMessage
</code></pre></td><td>Success | Unsuccessful</td></tr><tr><td><pre><code>CurrencyId
</code></pre></td><td><p>Currency of the payment</p><p><br>See: <a href="/pages/bahfUMz1dqpN1ZCnpVtM">Review</a></p></td></tr><tr><td><pre><code>ApmProviderId
</code></pre></td><td>APM provider ID</td></tr><tr><td><pre><code>ApmProviderName
</code></pre></td><td>APM provider name</td></tr><tr><td><pre><code>ApmProviderConnectionId
</code></pre></td><td>APM provider connection ID</td></tr><tr><td><pre><code>ApmProviderConnectionName
</code></pre></td><td>APM provider connection name</td></tr><tr><td><pre><code>Amount
</code></pre></td><td>Payment amount</td></tr><tr><td><pre><code>UniqueCode
</code></pre></td><td>Paywall unique tracking number of the payment</td></tr><tr><td><pre><code>MerchantUniqueCode
</code></pre></td><td>Tracking number provided at the time of payment creation</td></tr><tr><td><pre><code>Hash
</code></pre></td><td><p>The Hash value used to verify that the notification was sent from Paywall.<br>It is generated using the APM Webhook Hash Key activated 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="/pages/CwGK9IsyjWbnxDaBvQOq">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="/pages/rGeM863mExwJKspEaXUG">Key Types</a></td></tr><tr><td><pre><code>CallbackAddress
</code></pre></td><td>Address provided at the time of payment creation</td></tr><tr><td><pre><code>Date
</code></pre></td><td>Date of the payment</td></tr></tbody></table>

**Web Callback:**

```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
    <form action="your_callback_url" method="post">
        <input type="hidden" name="date" value="apmDateValue">
        <input type="hidden" name="status" value="statusValue">
        <input type="hidden" name="errorCode" value="errorCodeValue">
        <input type="hidden" name="errorMessage" value="errorMessageValue">
        <input type="hidden" name="uniqueCode" value="uniqueCodeValue">
        <input type="hidden" name="merchantUniqueCode" value="merchantUniqueCodeValue">
        <input type="hidden" name="amount" value="amountValue">
        <input type="hidden" name="apmTransactionId" value="apmTransactionIdValue">
        // Eğer Hash mekanizması Paywall panelde aktif edildiyse aşağıdaki satır da iletilir
        <input type="hidden" name="hash" value="dfgh87df98h79dfh7987dfh==">
    </form>
</body>
</html>
```

**Sunucu Geri Bildirim:**

```csharp
public class ApmCallbackRequestModel
{
    public int Id { get; set; }
    public bool Result { get; set; }
    public string ResultMessage { get; set; }
    public short CurrencyId { get; set; }
    public int ApmProviderId { get; set; }
    public string ApmProviderName { get; set; }
    public int ApmProviderConnectionId { get; set; }
    public string ApmProviderConnectionName { get; set; }
    public decimal Amount { get; set; }
    public string UniqueCode { get; set; }
    public string MerchantUniqueCode { get; set; }
    public string Hash { get; set; }
    public string CallbackAddress { get; set; }
    public DateTime Date { get; set; }
}
```
