/// <summary>
        /// Sets the Mobile Number for the current invoice to sent to Mellat Gateway.
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="mobileNumber"></param>
        public static IInvoiceBuilder SetMellatMobileNumber(this IInvoiceBuilder builder, string mobileNumber)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }
            if (mobileNumber == null)
            {
                throw new ArgumentNullException(nameof(mobileNumber));
            }

            builder.AddOrUpdateProperty(MobileNumberKey, mobileNumber);

            return(builder);
        }
        /// <summary>
        /// Sets the additional data for PayPing Gateway.
        /// </summary>
        public static IInvoiceBuilder SetPayPingData(this IInvoiceBuilder builder, PayPingRequest payPingRequest)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }
            if (payPingRequest == null)
            {
                throw new ArgumentNullException(nameof(payPingRequest));
            }

            builder.AddOrUpdateProperty(PayPingRequestKey, payPingRequest);

            return(builder);
        }
        /// <summary>
        /// Sets the additional data for <see cref="FanAvaGateway"/>.
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="additionalData"></param>
        public static IInvoiceBuilder SetFanAvaAdditionalData(this IInvoiceBuilder builder, FanAvaGatewayAdditionalDataRequest additionalData)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }
            if (additionalData == null)
            {
                throw new ArgumentNullException(nameof(additionalData));
            }

            builder.AddOrUpdateProperty(FanAvaGatewayAdditionalDataRequest.InvoicePropertyKey, additionalData);

            return(builder);
        }