public void CanDeSerialize_Reversal_WithNoErrors()
        {
            var dto = JsonSerializer.Deserialize <ReversalResponseDto>(PaymentOrderReversalResponse, JsonSerialization.JsonSerialization.Settings);
            var sut = new ReversalResponse(dto.Payment, dto.Reversal.Map());

            Assert.NotNull(sut);
            Assert.NotNull(sut.Reversal);
            Assert.NotNull(sut.Reversal.Transaction);
            Assert.NotNull(sut.Payment);
        }
        static async Task <ReversalResponse> ReversalRequestAsync()
        {
            Dictionary <string, string> _parameters = new Dictionary <string, string>();

            _parameters.Add("Initiator", "testapi481");
            _parameters.Add("SecurityCredential", "Safaricom481$");
            _parameters.Add("CommandID", "TransactionReversal");
            _parameters.Add("TransactionID", "LKXXXX1234");
            _parameters.Add("Amount", 1000.ToString());
            _parameters.Add("ReceiverParty", "600481");
            _parameters.Add("RecieverIdentifierType", "4");
            _parameters.Add("ResultURL", "https://safaricom.api");
            _parameters.Add("QueueTimeOutURL", "https://safaricom.api");
            _parameters.Add("Remarks", "Test");
            _parameters.Add("Occasion", "Test");

            string _reversalResponse = await _safaricomApiClient.Execute("mpesa/reversal/v1/request", _parameters);

            ReversalResponse _response = JsonConvert.DeserializeObject <ReversalResponse>(_reversalResponse);

            if (_response.ErrorCode == null)
            {
                Console.WriteLine("===========================================");
                Console.WriteLine("=====Reversal Request Success Response=====");
                Console.WriteLine("===========================================");

                Console.WriteLine(Environment.NewLine);
                Console.WriteLine(_response.OriginatorConversationID + Environment.NewLine + _response.ConversationID + Environment.NewLine + _response.ResponseDescription);
                Console.WriteLine(Environment.NewLine);
            }

            else
            {
                Console.WriteLine("===========================================");
                Console.WriteLine("======Reversal Request Error Response======");
                Console.WriteLine("===========================================");

                Console.WriteLine(Environment.NewLine);
                Console.WriteLine(_response.ErrorCode + Environment.NewLine + _response.ErrorMessage + Environment.NewLine + _response.ErrorRequestId);
                Console.WriteLine(Environment.NewLine);
            }

            return(_response);
        }