This method approves the posted merchant payout batch to transfer funds to multiple beneficiaries and this is applicable for 4-eye and 6-eye principle workflows. For payload explanations for both request and response, click here
using OneKhusa.SDK; 
using OneKhusa.SDK.Models.Transactions.BatchDisbursements; 

//code omitted for brevity 

OneKhusaResponse<ApproveBatchResponse> response = await client 
    .Transactions 
    .BatchDisbursements 
    .ApproveBatchAsync(new ApproveBatchRequest 
    { 
        MerchantAccountNumber = 12345678, 
        BatchNumber = 123456, 
        ActionedBy = "joe.doe@example.com" 
    }); 

if (response is { IsSuccess: true, Data: not null }) 
{ 
Console.WriteLine($"""
     MerchantAccountNumber: {response.Data.MerchantAccountNumber};
     BatchNumber: {response.Data.BatchNumber};
     CurrencyCode: {response.Data.CurrencyCode};
     BatchStatusCode: {response.Data.BatchStatusCode};
     ContentType: {response.Data.ContentType};
     DataSource: {response.Data.DataSource};
     NumberOfSuccessfulEntries: {response.Data.NumberOfSuccessfulEntries};
     TotalAmountOfSuccessfulEntries: {response.Data.TotalAmountOfSuccessfulEntries};
  """);
    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();
Note: This method accepts custom idempotency key generated by your system. By default, if not specified, it will create one on your behalf.