// create Invoice
        public MonetaSdkResult sdkMonetaCreateInvoice(string payer, long payee, decimal amount, string clientTransaction, bool isRegular)
        {
            MonetaSdkResult result = new MonetaSdkResult();

            try
            {
                InvoiceRequest invoiceRequest = new InvoiceRequest();
                if (String.Compare(payer, "") != 0)
                {
                    invoiceRequest.payer = payer;
                }

                invoiceRequest.payee             = payee;
                invoiceRequest.amount            = amount;
                invoiceRequest.clientTransaction = clientTransaction;

                OperationInfo            operationInfo = new OperationInfo();
                List <KeyValueAttribute> mntAttributes = new List <KeyValueAttribute>();

                if (isRegular)
                {
                    KeyValueAttribute monetaAtribute = new KeyValueAttribute();
                    monetaAtribute.key   = "PAYMENTTOKEN";
                    monetaAtribute.value = "request";
                    mntAttributes.Add(monetaAtribute);
                }

                operationInfo.attribute      = mntAttributes.ToArray();
                invoiceRequest.operationInfo = operationInfo;

                response = client.Invoice(invoiceRequest);

                result = prepareResult();
            }
            catch (Exception e)
            {
                result.error        = true;
                result.errorMessage = e.Message;
            }

            return(result);
        }