This method downloads the batch transaction errors file generated during data validation process. For payload explanations for both request and response, click here
using OneKhusa.SDK; 
using OneKhusa.SDK.Models.Transactions.BatchDisbursements; 

//code omitted for brevity 

OneKhusaResponse<DownloadBatchErrorsResponse> response = await client 
    .Transactions 
    .BatchDisbursements 
    .DownloadBatchErrorsAsync(new DownloadBatchErrorsRequest 
    { 
        MerchantAccountNumber = 12345678, 
        BatchNumber = 123456 
    }); 
if (response is { IsSuccess: true, Data: not null }) 
{ 
    Console.WriteLine($""" 
            DocumentName: {response.Data.DocumentName}; 
            ContentType: {response.Data.ContentType}; 
            DateCreated: {response.Data.DateCreated} 
        """); 

    //DEMO: create the downloaded file to disk 
    var fileBytes = Convert.FromBase64String(response.Data.DocumentBase64); 
    using (MemoryStream memoryStream = new MemoryStream(fileBytes)) 
    { 
        var fileName = $"batch_errors_{DateTime.Now:ddMMyyHHmmss}.{response.Data.ContentType.ToLower()}"; 
        using (FileStream fileStream = new FileStream(@$"file-directory-here\{fileName}", FileMode.Create)) 
        { 
            memoryStream.WriteTo(fileStream); 
        } 
    } 
    Console.ReadLine(); 
    return; 
} 
//it means the 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 ?? [])} 
    """);