PayWatch

PayWatch is a tracking algorithm that checks the final status of payments on the providers' side.

Overview: The related algorithm is triggered when payments remain in a pending state and, by default, checks the payment status after 25 minutes. For payments that remain pending, it sends a notification indicating the final status. In order for this notification to be sent, you must configure the PayWatch setting at the time the payment order is created. Otherwise, Paywall will still perform the status check but will not send you a notification.

Key
Description
PayWatchId

PayWatch identifier (sent for informational purposes only)

PaymentId

Payment identifier

MerchantUniqueCode

Tracking number provided at the time of payment creation

PaymentLastStatusId

The status of the payment before PayWatch intervention

See: Review

PaymentNewStatusId

The status of the payment after PayWatch intervention

See: Review

PaymentStatusChanged

Was there a change in the payment status? Example: Started → Successful

ProviderRequest

The request sent to the provider at the time of payment inquiry

ProviderResponse

The response received from the provider at the time of payment inquiry

ProviderHttpStatus

The HTTP response received from the provider at the time of inquiry

PaymentDateTime

The date of the payment

Hash

It is the Hash value used to verify that the request originated from Paywall. It is generated using the System Webhook Hash Key created in the Paywall panel.

The key mentioned above may vary depending on the value of the HashKeyType parameter. A dynamic structure should be implemented.

HashFormat

The format type used to generate the hash value Bkz: Hash Formats

HashKeyType

The type of key used in generating the hash value See: Key Types

public class PayWatchCallbackRequest
{
    public int PayWatchId { get; set; }
    public int PaymentId { get; set; }
    public string MerchantUniqueCode { get; set; }
    public int PaymentLastStatusId { get; set; }
    public int PaymentNewStatusId { get; set; }
    public bool PaymentStatusChanged { get; set; }
    public object ProviderRequest { get; set; }
    public object ProviderResponse { get; set; }
    public int ProviderHttpStatus { get; set; }
    public DateTime PaymentDateTime { get; set; }
}

Last updated