> 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/physical-payment-sync-async.md).

# Physical Payment (Sync/Async)

<table><thead><tr><th>Key</th><th>Description</th></tr></thead><tbody><tr><td><pre><code>ConnectionId
</code></pre></td><td>Physical POS provider connection ID</td></tr><tr><td><pre><code>TerminalId
</code></pre></td><td>Terminal/Device ID</td></tr><tr><td><pre><code>PaymentRequestId
</code></pre></td><td>The Paywall ID of the payment instruction.</td></tr><tr><td><pre><code>PaymentRequestActivityId
</code></pre></td><td>The ID of the last transaction of the payment.</td></tr><tr><td><pre><code>PaymentTypeId
</code></pre></td><td>Payment type<br><br>See: <a href="/pages/1xYupwNBhCGkf5K8pF0S">Payment Types</a></td></tr><tr><td><pre><code>PaymentStatusId
</code></pre></td><td>Payment status<br><br>See: <a href="/pages/J3yOjFSwZlEKFz4zXQa7">Payment Status</a></td></tr><tr><td><pre><code>MerchantUniqueCode
</code></pre></td><td>The tracking/order value provided at the time of payment creation.</td></tr><tr><td><pre><code>DisplayCode
</code></pre></td><td>The payment display information (shown in scenarios where the payment is listed on the device).</td></tr><tr><td><pre><code>Amount
</code></pre></td><td>Payment amount</td></tr><tr><td><pre><code>Message
</code></pre></td><td>Failure message in case the payment fails.</td></tr><tr><td><pre><code>Hash
</code></pre></td><td><p>It is the Hash value used to verify that the request comes from Paywall. It is generated using the <code>Physical POS Webhook Hash Key</code> created from 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 accordingly.</p></td></tr><tr><td><p></p><pre><code>HashFormat
</code></pre></td><td>The format type used to generate the hash information.<br><br>See: <a href="/pages/CwGK9IsyjWbnxDaBvQOq">Hash Formats</a></td></tr><tr><td><p></p><pre><code>HashKeyType
</code></pre></td><td>The key type used in generating the hash information.<br><br>See: <a href="/pages/rGeM863mExwJKspEaXUG">Key Types</a></td></tr></tbody></table>

```csharp
public class PhysicalPosCallbackModel
{
    public Guid ConnectionId { get; set; }
    public Guid TerminalId { get; set; }
    public Guid PaymentRequestId { get; set; }
    public Guid PaymentRequestActivityId { get; set; }
    public PaymentType PaymentTypeId { get; set; }
    public PaymentStatus PaymentStatusId { get; set; }
    public Guid MerchantUniqueCode { get; set; }
    public string DisplayCode { get; set; }
    public decimal Amount { get; set; }
    public string Message { get; set; }
    public string Hash { get; set; }
}
```
