The Webinato Event Registration API is a webservice used to insert registrants in to your events

You may not use the event API to send any unsolicited emails. By using the API, you agree to only generate emails to recipients who have explicitly requested to attend your webinars and/or meetings.

Note: You will need to have a skilled web programmer who has a strong knowledge of programming languages such as PHP in order to implement these APIs.

API Methods

Please note the methods below require knowledge of your specific EventID. It is possible to query the event manager and retrieve information on events such as list of all events and their details. To do so refer to the Event Creation APIs documentation.

General Information and base sample code

Event Registration

Delete Invitee

Get custom questions

Insert Registrant DEPRECATED (use Event Registration)

Insert Registrant with Credit Card Payment DEPRECATED (use Event Registration)

Manual Send Email

Promotion Info

Refund Payment

Company Info

General information and base sample code

The following code block is provided as a function to initiate the authentication and make the url call. Each sample method utilizes this function.

$companyID = 1234;      ////Found in Modify Organization Settings section of the admin page
$roomID = 5678;           ////Found in Modify Organization Settings section of the admin page
$md5Pass = md5('password'); ////Found in Modify Organization Settings section of the admin page
$eventServiceURL = "http://www.webinato.com/api/event";

function callRemote($url, $params, $returnResponse = true)
{
	$c = curl_init($url);

	curl_setopt($c, CURLOPT_POST, true);
	curl_setopt($c, CURLOPT_POSTFIELDS, http_build_query($params));
	curl_setopt($c, CURLOPT_HEADER, false);
	curl_setopt($c, CURLOPT_RETURNTRANSFER, $returnResponse);

	$response = curl_exec($c);
	curl_close($c);

	if ($returnResponse)
	return $response;
}

Event Registration

Use this function to register one or more participants to one or more events. You can also add the answers to the custom questions added in the event manager and make credit card payments. Please note you will need to use the getCustomQuestions function to retrieve the event or company custom questions.

Note: You may NOT use this to register anyone or any group WITHOUT their consent. Registering anyone or any group without their consent can result in your account being suspended.

URL Call:

http://www.webinato.com/api/event/groupEventRegister

Input Parameters:

POST Parameters:
Required:
(str) companyID
(str) md5Pass
(num) eventID - Part of $event_info, a variable in XML format.
  or
(num) p_eventID - Part of $event_info, a variable in XML format.
(str) $registrant_info - All relevant data of registrant(s) in xml format.

Sample Code:

function eventRegistration($eventID, $eventDate, $eventTime)
{
	global $companyID, $md5Pass, $eventServiceURL;
	//Single Event
	$event_info = "<events>
				<event>
				   <eventID>$eventID</eventID>
				    <registeredEventDate>$eventDate $eventTime</registeredEventDate>
				</event>
			</events>
			";
	// or use:
	$event_info = "<events>
				<event>
				   <p_eventID>$p_eventID</p_eventID>
				    <registeredEventDate>$eventDate $eventTime</registeredEventDate>
				</event>
			</events>
			";

	/* //Un-comment this to register multiple users
	//Multiple Events
	$event_info = "<events>
				<event>
					<eventID>513304</eventID>
					<registeredEventDate>2011-05-26 09:00:00</registeredEventDate>
				</event>
				<event>
					<eventID>533360</eventID>
					<registeredEventDate>2011-05-21 23:00:00</registeredEventDate>
				</event>
				<event>
					<eventID>753292</eventID>
					<registeredEventDate>2011-05-30 09:00:00</registeredEventDate>
				</event>
			</events>
			";
        */

	//Single Registrant
	$registrant_info = "<registrants>
				<registrant>
					<firstName>Joe</firstName>
					<lastName>Martin</lastName>
					<email>test1@webinato.com</email>
					<questions>
						<question>
							<id>43683</id>
							<answer>Male</answer>
						</question>
						<question>
							<id>43685</id>
							<answer>First Time</answer>
						</question>
					</questions>
				</registrant>
			</registrants>
			";

	/*
	//Multiple Registrants
	$registrant_info = "<registrants>
					<registrant>
						<firstName>Bill</firstName>
						<lastName>Smith</lastName>
						<email>bsmith@company.com</email>
						<questions>
						       <question>
								<id>19471</id>
								<answer>male</answer>
							</question>
							<question>
								<id>19540</id>
								<answer>Trader</answer>
							</question>
						</questions>
					</registrant>
				       <registrant>
						<firstName>Sandra</firstName>
						<lastName>Perez</lastName>
						<email>sperez@company.com</email>
						<questions>
						    <question>
							<id>19471</id>
							<answer>female</answer>
						    </question>
						    <question>
								<id>19540</id>
								<answer>Investor</answer>
						    </question>
						</questions>
					</registrant>
				</registrants>
				";
	*/
	$params = array(
			'companyID' => $companyID,
			'md5pass' => $md5Pass,
			'eventInfo' => $event_info,
			'registrantInfo' => $registrant_info,
			'sendEmail' => 1,
			'custom' => '',
			/*'ccFirstName' => 'Joe',
			'ccLastName' => 'Martin',
			'ccType' => 'Visa',
			'ccNumber' => '4245350606097927',
			'ccExpDateMonth'=> 12,
			'ccExpDateYear' => 2019,
			'ccCVV2Number' => 135,
			'ccAddress1' => '1 Main St',
			'ccCity' => 'San Jose',
			'ccState' => 'CA',
			'ccZip' => '95131',
			'ccCountry' => 'US',
			'amountToPay' => 10.00,

			'invoiceNumber' => 'inv' . rand(1, 9999),
			'totalTax' => 0.49,
			'CC_Custom' => "$eventID|$eventDate|$eventTime|How to accept payments for your events",
			*/
				// 'CC_UserName' => 'AAAAA',
				// 'CC_Password' => 'BBBBB',
				// 'CC_Signature' => 'CCCCC',
				'dummy' => 0
			);

	$url = $eventServiceURL . "/groupEventRegister";
	echo callRemote($url, $params);
}

Sample Output:

<status>
	<eventID><![CDATA[80856]]></eventID>
	<eventName><![CDATA[Event Name]]></eventName>
	<status><![CDATA[Updated]]></status>
	<registeredEventDate><![CDATA[2011-06-03 10:00]]></registeredEventDate>
	<timeZone><![CDATA[US/Central]]></timeZone>
	<inviteeID><![CDATA[10673306]]></inviteeID>
	<eventGMTTime><![CDATA[1307113200]]></eventGMTTime>
</status>

Delete Invitee

This method deletes someone who has registered for an event from the list of registrants for that event.

URL Call:

http://www.webinato.com/api/event/deleteInvitee/{inviteeID} - This 'id' is found in the user object that is 
returned from the Event Report method.

Input Parameters:

POST Parameters:
Required:
(str) companyID
(str) md5Pass

Sample Code:

function deleteInvitee($inviteeID)
{
	global $companyID, $md5Pass, $eventServiceURL;
	$params = array(
			'companyID' => $companyID,
			'md5pass' => $md5Pass
			);

	$url = $eventServiceURL . "/deleteInvitee/" . $inviteeID;

	echo callRemote($url, $params);
}

deleteInvitee(12345);

Sample Output:

<status>
    <save><![CDATA['complete']]></save>
</status>

Get Event Custom Questions

Using this call you will be able to retrieve the custom questions. The event questions are only valid for a specific event, and the company questions are valid for all events.

URL Call:

http://www.webinato.com/api/event/questions/{eventID}/{type}

{type} can be 'company', 'event' or 'both'. If you pass 'company', the return will contain all company-wide custom questions, meaning 
custom questions for all events while passing 'event' will only return custom questions specific to the {eventID} event.

Input Parameters:

POST Parameters:
Required:
(str) companyID
(str) md5Pass
(num) eventID

Sample Code:

      

function getCustomQuestions($eventID, $type) 
//type = company | event | both
{
    global $companyID, $md5Pass, $eventServiceURL;

    $params = array(
                     'companyID' => $companyID,
                     'md5pass' => $md5Pass,
                   );

    $url = $eventServiceURL . "/questions/$eventID/$type";

    echo callRemote($url, $params);
}

Sample Output:

<question>
	<questionID><![CDATA[20898]]></questionID>
	<eventID><![CDATA[0]]></eventID>
	<companyID><![CDATA[181]]></companyID>
	<question><![CDATA[Test Text Box Company Wide]]></question>
	<questionType><![CDATA[1]]></questionType>
	<displayOrder><![CDATA[1]]></displayOrder>
	<required><![CDATA[1]]></required>
</question>
<question>
	<questionID><![CDATA[43683]]></questionID>
	<eventID><![CDATA[80856]]></eventID>
	<companyID><![CDATA[0]]></companyID>
	<question><![CDATA[What is your gender]]></question>
	<questionType><![CDATA[5]]></questionType>
	<displayOrder><![CDATA[1]]></displayOrder>
	<required><![CDATA[0]]></required>
	<option><![CDATA[male]]></option>
	<option><![CDATA[female]]></option>
</question>
<question>
	<questionID><![CDATA[43685]]></questionID>
	<eventID><![CDATA[80856]]></eventID>
	<companyID><![CDATA[0]]></companyID>
	<question><![CDATA[What is your position]]></question>
	<questionType><![CDATA[5]]></questionType>
	<displayOrder><![CDATA[2]]></displayOrder>
	<required><![CDATA[0]]></required>
	<option><![CDATA[Trader]]></option>
	<option><![CDATA[Investor]]></option>
	<option><![CDATA[other]]></option>
</question>

Insert Registrant

This method registers an invitee for a specified event.

Note: You may NOT use this to register anyone or any group WITHOUT their consent. Registering anyone or any group without their consent can result in your account being suspended.

URL Call:

http://www.webinato.com/api/event/eventregister

Input Parameters:

POST Parameters:
Required:
(str) companyID
(str) md5Pass
(str) email
(str) firstName
(str) lastName
(xml) eventInfo
(str) sendEmail
(str) custom

Sample Code:

function insertRegistrant($eventID, $eventDate, $eventTime)
{
	global $companyID, $md5Pass, $eventServiceURL;
	$event_info = "
			<events>
			   <event>
					<eventID>$eventID</eventID>
					<registeredEventDate>$eventDate $eventTime</registeredEventDate>
			   </event>
			</events>
		      ";

	$params = array(
			'companyID' => $companyID,
			'md5pass' => $md5Pass,
			'email' => 'email@address.com',
			'firstName' => 'First',
			'lastName' => 'Last',
			'eventInfo' => $event_info,
			'sendEmail' => 1,
			'custom' => ''
			);

	$url = $eventServiceURL . "/eventregister";

	echo callRemote($url, $params);
}

insertRegistrant(12345, "2010-02-28", "16:00:00");

Sample Output:

<events>
  <event>
    <eventID>12345</eventID>
    <registeredEventDate>2010-02-28 16:00:00</registeredEventDate>
  </event>
</events>

Insert Registrant with Credit Card Payment

This method registers an invitee for a specified paid event, and processes the payment using a credit card. Your company must be setup to accept credit card payments for events. Please contact our sales department to activate the credit card module.

Note: You may NOT use this to register anyone or any group WITHOUT their consent. Registering anyone or any group without their consent can result in your account being suspended.

URL Call:

http://www.webinato.com/api/event/eventregister

Input Parameters:

POST Parameters:
Required:
(str) companyID
(str) md5Pass
(str) email
(str) firstName
(str) lastName
(XML) eventInfo (See sample code below)
(num) sendEmail (0 | default: 1)
(str) ccFirstName
(str) ccLastName
(str) ccType ('Visa' | MasterCard' | 'Discover' | 'American Express')
(str) ccNumber
(str) ccExpDateMonth (mm)
(str) ccExpDateYear (yyyy)
(str) ccCVV2Number
(str) ccAddress1
(str) ccCity 
(str) ccState
(str) ccZip
(str) ccCountry
(float) amountToPay
Optional:
(str) custom  (Any custom message you want to add to the registration)

The following parameters are passed to PayPal for reporting purposes:
(float) totalTax
(str 127) invoiceNumber
(str 256) CC_Custom (Any custom message you want to pass to PayPal)

You can optionally pass a set of PayPal credentials different to the one saved under your company preferences 
 by using the three parameters below. For example: You can test a transaction using your sandbox credentials 
 without having to change the Environment setting in the Event Manager.
(str) CC_UserName
(str) CC_Password
(str)CC_Signature

Sample Code:

function insertRegistrantWithCC($eventID, $eventDate, $eventTime)
{
	global $companyID, $md5Pass, $eventServiceURL;
	$event_info = "
			<events>
				<event>
					<eventID>$eventID</eventID>
					<registeredEventDate>$eventDate $eventTime</registeredEventDate>
				</event>
			</events>
		     ";

	$params = array(
			'companyID' => $companyID,
			'md5pass' => $md5Pass,
			'email' => 'email@address.com',
			'firstName' => 'First',
			'lastName' => 'Last',
			'eventInfo' => $event_info,
			'sendEmail' => 1,
			'ccFirstName' => 'Joe',
			'ccLastName' => 'Martin',
			'ccType' => 'Visa',
			'ccNumber' => '4200123456789000',
			'ccExpDateMonth'=> 12,
			'ccExpDateYear' => 2019,
			'ccCVV2Number' => 135,
			'ccAddress1' => '1 Main St',
			'ccCity' => 'San Jose',
			'ccState' => 'CA',
			'ccZip' => '95131',
			'ccCountry' => 'US',
			'amountToPay' => 49.99,
			'custom' => ' This is an example of a paid event ',
			'totalTax' => 0.49,
			'invoiceNumber' => 'inv-8547',
			'CC_Custom' => "$eventID|$eventDate|$eventTime|How to accept payments for your events ",
			'CC_UserName' => 'my_test_username',
			'CC_Password' => 'my_test_password',
			'CC_Signature' => 'my_test_signature'
	               );

	$url = $eventServiceURL . "/eventregister";

	echo callRemote($url, $params);
}
insertRegistrantWithCC(12345, "2010-03-26", "09:00:00");

Sample Output:

Successful transaction:
<status>
 <eventID><![CDATA[12345]]></eventID>
 <eventName><![CDATA[How to accept payments for your events]]></eventName>
 <status><![CDATA[Added]]></status>
 <registeredEventDate><![CDATA[2010-03-26 09:00]]></registeredEventDate>
 <timeZone><![CDATA[US/Central]]></timeZone>
 <inviteeID><![CDATA[8704593]]></inviteeID>
 <eventGMTTime><![CDATA[1262017800]]></eventGMTTime>
 <TIMESTAMP><![CDATA[2010-03-26T15:00:00Z]]></TIMESTAMP>
 <CORRELATIONID><![CDATA[fb96fd2a9b061]]></CORRELATIONID>
 <ACK><![CDATA[Success]]></ACK>
 <VERSION><![CDATA[51.0]]></VERSION>
 <BUILD><![CDATA[1073465]]></BUILD>
 <AMT><![CDATA[49.99]]></AMT>
 <CURRENCYCODE><![CDATA[USD]]></CURRENCYCODE>
 <AVSCODE><![CDATA[X]]></AVSCODE>
 <CVV2MATCH><![CDATA[M]]></CVV2MATCH>
 <TRANSACTIONID><![CDATA[1GR75113HK623402F]]></TRANSACTIONID>
 <failure_contact><![CDATA[abc@company.com]]></failure_contact>
</status>
Failed transaction (Invalid credit card number):
<status>
	<TIMESTAMP><![CDATA[2010-03-26T15:53:04Z]]></TIMESTAMP>
	<CORRELATIONID><![CDATA[c2790cbda58]]></CORRELATIONID>
	<ACK><![CDATA[Failure]]></ACK>
	<VERSION><![CDATA[51.0]]></VERSION>
	<BUILD><![CDATA[1073465]]></BUILD>
	<L_ERRORCODE0><![CDATA[10527]]></L_ERRORCODE0>
	<L_SHORTMESSAGE0><![CDATA[Invalid Data]]></L_SHORTMESSAGE0>
	<L_LONGMESSAGE0><![CDATA[This transaction cannot be processed.
	Please enter a valid credit card number and type.]]></L_LONGMESSAGE0>
	<L_SEVERITYCODE0><![CDATA[Error]]></L_SEVERITYCODE0>
	<AMT><![CDATA[49.99]]></AMT>
	<CURRENCYCODE><![CDATA[USD]]></CURRENCYCODE>
	<failure_contact><![CDATA[abc@company.com]]></failure_contact>
	<status><![CDATA[ccfailed]]></status>
</status>
Company not setup to accept payments (Contact our sales department to activate the credit card module):
<status>
	<status><![CDATA[error]]></status>
	<message><![CDATA[Company is not setup to accept payments for events]]></message>
</status>

Manual Send Email

This method allows you to send manually any of the reminders or follow up emails to the registered users or to a single user if you pass the email parameter.

URL Call:

http://www.webinato.com/api/event/manualsend/{eventID}/{type}/{email}

Input Parameters:

URL Parameters:
Required:
(num) eventID: Internal ID of the event. The eventID can be retrieved from the Event List function.
(str) type:  ('reminder1' | 'reminder2' | 'followup')
Optional:
(str) email:  email address if sending to a single user instead of registered users
POST Parameters:
Required:
(str) companyID
(str) md5Pass
Optional:
(str) email_subject
(str) email_text
(str) email_html
(str) followup_type ('all' | 'attended' | 'not_attended')

Sample Code:

function manualSendEmail($eventID, $type, $email = '') 
{ 
	global $companyID, $md5Pass, $eventServiceURL;
	$params = array(
			'companyID' => $companyID,
			'md5pass' => $md5Pass,
			'email_subject' => "Test email",
			'email_text' => "This is a test email."
			);

	$url = $eventServiceURL . "/manualsend/$eventID/$type/$email";

	echo callRemote($url, $params);
}

manualSendEmail(12345, "reminder1", "email@address.com");

Sample Output:

<status>
    <send>complete</send>
</status>

Promotion Info

Use this method to get the details of a promotion code.

URL Call:

http://www.webinato.com/api/event/promotioninfo

Input Parameters:

POST Parameters:
Required:
(str) companyID
(str) md5Pass
(str) code

Sample Code:

function getPromotionInfo($code)
{
	global $companyID, $md5Pass, $eventServiceURL;
        $params = array(
                        'companyID' => $companyID,
                        'md5pass' => $md5Pass,
                        'code' => $code
                        );

       $url = $eventServiceURL . "/promotioninfo/";

      echo callRemote($url, $params);
}

getPromotionInfo("promo10off")

Sample Output:

Valid promotion code:
<promotion>
  <code><![CDATA[promo10off]]></code>
  <discountAmount><![CDATA[10.00]]></discountAmount>
  <discountRate><![CDATA[0.00]]></discountRate>
  <type><![CDATA[Amount]]></type>
</promotion>
Invalid promotion code:
<status>
<error><![CDATA[no results found]]></error>
</status>

Refund Payment

This method allows you to refund the payment for an event.

URL Call:

http://www.webinato.com/api/event/issueRefund

Input Parameters:

POST Parameters:
Required:
(str) companyID
(str) md5Pass
(str) transactionID
(str) refundType ('Full' | 'Partial')
(str) currencyID
(float) refundAmount

Sample Code:

function refundPayment($transactionID, $refundType, $currencyID, $refundAmount)
{
	global $companyID, $md5Pass, $eventServiceURL;
	$params = array(
			'companyID' => $companyID,
			'md5pass' => $md5Pass,
			'transactionID' => $transactionID,
			'refundType' => $refundType,
			'currencyID' => $currencyID,
			'refundAmount' => $refundAmount
			);

	$url = $eventServiceURL . "/issueRefund/";

	echo callRemote($url, $params);
}

Sample Output:

<status>
    <REFUNDTRANSACTIONID><![CDATA[45975190BK487031S]]></REFUNDTRANSACTIONID>
    <FEEREFUNDAMT><![CDATA[0.93]]></FEEREFUNDAMT>
    <GROSSREFUNDAMT><![CDATA[20.00]]></GROSSREFUNDAMT>
    <NETREFUNDAMT><![CDATA[19.07]]></NETREFUNDAMT>
    <CURRENCYCODE><![CDATA[USD]]></CURRENCYCODE>
    <TIMESTAMP><![CDATA[2010-05-05T19:25:27Z]]></TIMESTAMP>
    <CORRELATIONID><![CDATA[b40e5e15498f7]]></CORRELATIONID>
    <ACK><![CDATA[Success]]></ACK>
    <VERSION><![CDATA[51.0]]></VERSION>
    <BUILD><![CDATA[1288906]]></BUILD>
</status>

Company Info

This method returns all the properties and settings for a specified company.

URL Call:

http://www.webinato.com/api/event/company

Input Parameters:

POST Parameters:
Required:
(str) companyID
(str) md5Pass

Sample Code:

function companyInfo()
{
	global $companyID, $md5Pass, $eventServiceURL;
	$params = array(
			'companyID' => $companyID,
			'md5pass' => $md5Pass
			);

	$url = $eventServiceURL . "/company";

	echo callRemote($url, $params);
}

companyInfo();

Sample Output:

<company>
    <companyID><![CDATA[1234]]></companyID>
    <name><![CDATA[ABCD]]></name>
    <location><![CDATA[Houston,TX,US]]></location>
    <language><![CDATA[EN]]></language>
    <website><![CDATA[http://www.abcd.com]]></website>
    <shorturl><![CDATA[abcd]]></shorturl>
    <eventPeriod><![CDATA[60]]></eventPeriod>
    <defaultPub><![CDATA[1]]></defaultPub>
    <announcement><![CDATA[Welcome to the ABCD  Conference Center]]></announcement>
    <loginURL><![CDATA[http://www.abcd.com/members]]></loginURL>
    <logo2><![CDATA[0]]></logo2>
    <showArchiveLink><![CDATA[1]]></showArchiveLink>
    <paymentsEnabled><![CDATA[2]]></paymentsEnabled>
    <currentDate><![CDATA[2010-05-03]]></currentDate>
    <room>
        <roomID><![CDATA[5678]]></roomID>
        <name><![CDATA[room1]]></name>
        <timeZoneName><![CDATA[US/Central]]></timeZoneName>
    </room>
    <category>
        <id><![CDATA[810]]></id>
        <name><![CDATA[Marketing]]></name>
    </category>
    <category>
        <id><![CDATA[808]]></id>
        <name><![CDATA[Sales]]></name>
    </category>
    <category>
        <id><![CDATA[809]]></id>
        <name><![CDATA[Training]]></name>
    </category>
    <preferences>
        <callbackURL><![CDATA[http://www.abcd.com/notifyme.php]]></callbackURL>
        <groupRegistrationEnabled><![CDATA[1]]></groupRegistrationEnabled>
    </preferences>
    <paypalinfo>
        <apiUsername><![CDATA[aaaaaaaaaa]]></apiUsername>
        <apiPassword><![CDATA[bbbbbbbbbb]]></apiPassword>
        <signature><![CDATA

[cccccccccc]]

></signature>
<currency><![CDATA[USD]]></currency>
<contact><![CDATA[xyz@abcd.com]]></contact>
<environment><![CDATA[sandbox]]></environment>
</paypalinfo>
<promotionCode>
<id><![CDATA[1]]></id>
<discountAmount><![CDATA[10.00]]></discountAmount>
<discountRate><![CDATA[0.00]]></discountRate>
<code><![CDATA[10Off]]></code>
</promotionCode>
<promotionCode>
<id><![CDATA[3]]></id>
<discountAmount><![CDATA[0.00]]></discountAmount>
<discountRate><![CDATA[100.00]]></discountRate>
<code><![CDATA[100PercentOff]]></code>
</promotionCode>
</company>

You may not use the event API to send any unsolicited emails. By using the API, you agree to only generate emails to recipients who have explicitly requested to attend your webinars and/or meetings.