This method retrieves merchant analytics on successful, reversed and failed disbursement and collection transactions to measure success and failure rates, trend against previous month for transactions. For payload explanations for both request and response, click here
using OneKhusa.SDK; 
using OneKhusa.SDK.Models.Analytics; 
using OneKhusa.SDK.Models.Constants.Analytics; 

//code omitted for brevity \

OneKhusaResponse<GetTransactionMetricsResponse> response = await client 
    .Merchants 
    .Analytics 
    .GetTransactionMetricsAsync(new GetTransactionMetrcisRequest 
    { 
        MerchantAccountNumber = 12345678, 
        SummaryType = SummaryTypes.Disbursements, 
        FromDate = new DateTime(2026, 1, 1), 
        ToDate = new DateTime(2026, 1, 31) 
    }); 
if (response is { IsSuccess: true, Data: not null }) 
{ 
    Console.WriteLine($""" 
        NumberOfFailedTransactions: {response.Data.NumberOfFailedTransactions};  
        NumberOfSuccessfulTransactions: {response.Data.NumberOfSuccessfulTransactions};  
        NumberOfTransactions: {response.Data.NumberOfTransactions};  
        SuccessRate: {response.Data.SuccessRate};  
        FailureRate: {response.Data.FailureRate};  
        TotalFailedTransactionsAmount: {response.Data.TotalFailedTransactionsAmount};  
        TotalSuccessfulTransactionsAmount: {response.Data.TotalSuccessfulTransactionsAmount};  
        TotalTransactionsAmount: {response.Data.TotalTransactionsAmount};  
        TransactionsTrend: {response.Data.TransactionsTrend} 
    """); 
    Console.ReadLine(); 
    return; 
} 
//it means an error has occurred: RFC7807 compliant error object
Console.WriteLine($"""
        Type: {response.Error?.Type};
        Title: {response.Error?.Title};
        Detail: {response.Error?.Detail};
        ErrorCode: {response.Error?.ErrorCode};
        Status: {response.Error?.Status};
        Instance: {response.Error?.Instance};
        Errors: {string.Join(";", response.Error?.Errors ?? [])}
""");
Console.ReadLine();