put(SessionConnection::PROCESSOR_HOST, "http://server.ibillingclient.org/ibilling/xmlhttps"); $config->put("debug", true); //Login $session = Session::login(2000, "welcome", $config); //Create customer account $customerAccount = $session->createCustomerAccount(); //code is optinal; if you specify the value, make sure the code is unique $customerAccount->setCode("php.ca-4"); $customerAccount->setMerchantAccountCode(2001); $customerAccount->setFirstName("Mary"); $customerAccount->setLastName("Doe"); $customerAccount->setType(CustomerAccountType::Female); $customerAccount->setHomePhone("5469856876"); $customerAccount->setEmail("test@google.com"); $customerAccount->setStreet1("203 16th Street"); $customerAccount->setCity("Honolulu"); $customerAccount->setState("CA"); $customerAccount->setZipCode("30904"); //Create payment plan $paymentPlan = $customerAccount->createPaymentPlan(); //code is optinal; if you specify the value, make sure the code is unique $paymentPlan->setCode("php.pp-4"); //all amounts are in cents $paymentPlan->setAmount(3000); //Item Codes must be setup in portal prior to being used $paymentPlan->setItemCode("Membership"); $paymentPlan->setType(PaymentPlanType::Complimentary); //Billing Cycle codes must be setup in portal prior to being used $paymentPlan->setBillingCycleCode("M03"); //Specify desired billing date; if nothing specified, next billing date of the selected cycle assumed. //$paymentPlan->setFirstBillingDate(); //Mark object for persistence $session->save($customerAccount); //Synchronize changes with the server try{ $session->synchronize(); } catch(Exception $ex){ //Be sure to properly handle exception, this is just a sample solution print($ex->getMessage()); return ; } //Logout $session->logout(); ?>