protected void lblbRecieptIn_Click(object sender, EventArgs e)
    {
        string merchantId   = ConfigurationManager.AppSettings["MerchantID"];
        string account      = ConfigurationManager.AppSettings["Account"];
        string sharedSecret = ConfigurationManager.AppSettings["SharedSecret"];

        Merchant     merchant = new Merchant(merchantId, account, sharedSecret);
        Order        order    = new Order("GBP", 9999);
        Address      address  = new Address("", "", "", "", "", "", "", "");
        PhoneNumbers numbers  = new PhoneNumbers("", "", "", "");
        Payer        payer    = new Payer("Business", "test", "", "Phil", "McCracken", "", address, numbers, "", new ArrayList());

        string timestamp = Common.GenerateTimestamp();

        //only needed if
        //string cvn = "123";
        string cardRef    = "card1";
        string autoSettle = "1";

        //not needed if not a recurring payment, use reciept in overload without recurring
        bool recurring = true;

        //fixed or variable
        //fixed - order amount is the same every transaction
        //variable - order amount is different in every transaction
        string recurringType = "variable";

        //first - first payment in a sequence
        //subsequent - any subsequent payments after the initial
        //final - no more payments in sequence will follow
        string recurringSequence = "first";

        RealVaultTransactionResponse resp = RealVault.RecieptIn(merchant, order, payer, cardRef, autoSettle, timestamp, new ArrayList(), recurring, recurringType, recurringSequence);

        lblErrorCode.Text = resp.ResultCode.ToString();
        lblResult.Text    = resp.Message;
    }