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
Insert Registrant DEPRECATED (use Event Registration)
Insert Registrant with Credit Card Payment DEPRECATED (use Event Registration)
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.