/// <inheritdoc /> public override async Task <IPaymentRefundResult> RefundAsync(InvoiceContext context, Money amount, CancellationToken cancellationToken = default) { if (context == null) { throw new ArgumentNullException(nameof(context)); } var account = await GetAccountAsync(context.Payment).ConfigureAwaitFalse(); var data = MellatHelper.CreateRefundData(context, account); var responseMessage = await _httpClient .PostXmlAsync(_gatewayOptions.ApiUrl, data, cancellationToken) .ConfigureAwaitFalse(); var response = await responseMessage.Content.ReadAsStringAsync().ConfigureAwaitFalse(); return(MellatHelper.CreateRefundResult(response, _messagesOptions.Value)); }