Eventscribe Registration API

Overview

Eventscribe Registration offers two APIs. This article covers the XML API. The REST API is covered in the REST API documentation in Swagger.

Before you contract API access for a third-party vendor, read the Eventscribe REST API Overview for client expectations.

To push membership data instead of registration data, use the Eventscribe Registration Member API. It lets third-party systems create or update member records in Eventscribe Registration for membership validation and member pricing.

REST API and XML API compared
FeatureREST APIXML API
FormatJSONXML
Read registration dataYesYes
Write registration dataNoYes
Create registrations and update registrant details, billing contacts, attendance, and workshops.
WebhooksYes
Registration purchased, option purchased, line item cancelled, and event created.
No
CredentialsAccount token
Events are identified by activity ID in the URL. See Swagger for authentication details.
Account token and activity token
DocumentationSwagger
REST API documentation in Swagger
This article

Important Notes

Credentials

Every call needs an account token, which is unique to each client. Every call except getMeetingsXML also needs an activity token, which is unique to each event. Use getMeetingsXML to look up the activity token for each of your events.

Requests
  • Send parameters as a query string on a GET request, or as form fields on a POST request. Both work for every call, including the calls that write data.
  • Parameter names are case-sensitive. AccountToken works; accounttoken returns an error.
  • URL-encode every value, including spaces, slashes, colons, and @.
  • Flags such as ShowUDFs must be 1 to turn on.
Dates and Times
  • All times are U.S. Eastern Time.
  • Send StartTime and EndTime as MM/DD/YYYY HH:MM:SS in 24-hour time, URL-encoded (for example, 10%2F08%2F2026%2015%3A00%3A00). A date alone covers the whole day. You can send either parameter on its own.
  • Responses use M/D/YYYY h:mm AM (for example, 10/8/2026 3:52 PM).
Responses
  • Responses are XML encoded as UTF-8.
  • Empty values come back as empty elements (for example, <Room></Room>), not missing elements.
  • An unlimited capacity is returned as 268435455.
  • getRegistrationInformationXML, getPurchasesXML, and getPaymentsXML return at most about 10,000 records per call. For large events, request smaller time windows.
  • Calls that write data return <Success></Success> when they succeed.
Errors

Errors return a single <Error> element with a message. Check every response for an <Error> element rather than relying on the HTTP status code.

<Error>Registrant 1 not found</Error>

Common causes are a missing required parameter, an ID that doesn’t belong to the event, or a workshop that doesn’t belong to the session you sent.

IDs Used Across the API
IDIdentifiesWhere to get it
ActivityTokenAn eventgetMeetingsXML
RegistrantIDOne registrantgetRegistrationInformationXML, searchRegistrationInformationXML, change-tracking calls, submitRegistrationXML
BillingIDThe billing account (billing contact, payments) a registrant belongs toAny registrant record, or submitRegistrationXML
FeeItemIDA registration fee or option feegetFeesXML
SessionID / WorkshopIDA workshop or general session time slot, and a choice within itgetWorkshopsXML
UDFIDA custom registration question (user-defined field)getUDFsXML
Choice IDOne answer option on a dropdown or radio-button questionYour event organizer. In the Eventscribe Registration admin, open the event’s Meeting Wizard, go to the custom questions (UDF) page, and select the choice list name; the list shows a Choice ID for each option. Choice IDs aren’t available through the API. On older events, choice lists are shared across all events on the account, so the same choice ID can appear in several events.
⚠️ Writing Data — Best Practices
  • Send every value your event requires. Questions that are required on the registration form aren’t enforced through the API.
  • Search before you create. submitRegistrationXML creates a new registrant on every call. Use searchRegistrationInformationXML to check for an existing registrant first.
  • Send choice IDs from the question’s own list. For dropdown and radio-button questions, use only the choice IDs that belong to that question.
  • Check registration status before you update. Updates apply to cancelled registrants too.
  • Send dates as MM/DD/YYYY. Date questions store the value exactly as sent.
  • Re-read after an error. If a write method returns an error, some values in the request may already be saved. Read or search for the registrant before you retry.

Custom question (UDF) value formats

To write a custom question, send a parameter named UDF followed by the UDFID (for example, UDF899841=522587). Values you leave out are unchanged. Values you send empty are cleared. A UDFID that doesn’t belong to the event returns an error.

Question typeSendReturned as
Single-line text, multi-line textThe text. Values longer than the question’s character limit return an error.The text
NumberThe number. Only the character limit is checked.The number as text
Dropdown, radio buttonsThe choice ID (for example, 522587), not the answer text.The answer text (for example, Interventional Cardiology)
CheckboxYes to check it; an empty value to clear itYes when checked. When unchecked, No if the registrant used the registration form, or empty if the registrant was created through the API.
Multi-select checkboxesEach option is its own checkbox question with its own UDFID. Send Yes for each option you want selected.One question per option, each Yes, No, or empty
DateA date as text. MM/DD/YYYY is recommended. The value isn’t validated.The text exactly as sent
File uploadFiles can’t be uploaded through the API. Don’t write to these questions.The stored file name (for example, 715842bc-…-Fellowship-Verification-Letter.pdf), or empty. No download URL is returned.

Endpoint

https://websvcs.edgereg.net/er/API/EROnline/

Add the method name to the endpoint, followed by your parameters:

https://websvcs.edgereg.net/er/API/EROnline/getFeesXML.jsp?AccountToken=YOUR_ACCOUNT_TOKEN&ActivityToken=YOUR_ACTIVITY_TOKEN

Event Setup Methods

Use these methods to look up the IDs you’ll need for the registrant and write methods.

getMeetingsXML

Returns the events (meetings) on your account, including each event’s activity token. This is the only call that doesn’t need an activity token.

HTTP Method: GET or POST

ParameterValueRequired
AccountTokenYour account tokenYes
ShowArchives1 to include archived eventsNo
ShowLastActivity1 to add LastActivityDate, the date of the event’s most recent transaction or changeNo

Categories is a comma-separated list of the categories the event belongs to. StartDate and EndDate are empty when the event has no dates set.

Request Example:

https://websvcs.edgereg.net/er/API/EROnline/getMeetingsXML.jsp?AccountToken=YOUR_ACCOUNT_TOKEN&ShowLastActivity=1

Response Example:

<?xml version="1.0" encoding="UTF-8" ?>
<Meetings>
  <Meeting>
    <ActivityID>44451</ActivityID>
    <ActivityName>Demo Cardiology Society Annual Scientific Sessions</ActivityName>
    <ActivityToken>YOUR_ACTIVITY_TOKEN</ActivityToken>
    <StartDate>9/16/2027</StartDate>
    <EndDate>9/18/2027</EndDate>
    <Categories></Categories>
    <LastActivityDate>10/8/2026</LastActivityDate>
  </Meeting>
</Meetings>
getFeesXML

Returns the event’s fees. Use FeeItemID from a Registration fee with submitRegistrationXML.

HTTP Method: GET or POST

ParameterValueRequired
AccountTokenYour account tokenYes
ActivityTokenThe event’s activity tokenYes

FeeType is Registration for registration fees or Options for add-on items. CapacityLimit is 268435455 when the fee has no limit.

Response Example:

<Fees>
  <Fee>
    <FeeItemID>731440</FeeItemID>
    <FeeName>Annual Scientific Sessions: In-Person and On-Demand Access</FeeName>
    <FeeType>Registration</FeeType>
    <Price>795.00</Price>
    <GoodUntil>9/18/2027</GoodUntil>
    <PromotionCode></PromotionCode>
    <DisplayOrder>4</DisplayOrder>
    <CapacityLimit>268435455</CapacityLimit>
    <TotalSold>11</TotalSold>
    <Prompt>Annual Scientific Sessions: In-Person and On-Demand Access</Prompt>
    <Description></Description>
    <AccountCode></AccountCode>
    <IsMembershipRate>0</IsMembershipRate>
    <RegistrationCategory>Annual Conference: In-Person</RegistrationCategory>
    <BadgeDisplay></BadgeDisplay>
  </Fee>
  <Fee>
    <FeeItemID>731442</FeeItemID>
    <FeeName>Advanced Cardiac Rhythm Interpretation</FeeName>
    <FeeType>Options</FeeType>
    <Price>225.00</Price>
    <!-- remaining elements match the fee above -->
  </Fee>
</Fees>
getWorkshopsXML

Returns every workshop and general session in the event. A session is a time slot (SessionID); a workshop is a choice within it (WorkshopID). General sessions are returned the same way as workshops.

HTTP Method: GET or POST

ParameterValueRequired
AccountTokenYour account tokenYes
ActivityTokenThe event’s activity tokenYes

Room and Track are empty when not set. Capacity is 268435455 when there’s no limit. NumSold is the number of registrants currently in the workshop.

Response Example:

<?xml version="1.0" encoding="UTF-8" ?>
<Workshops>
  <Workshop>
    <SessionName>Session 1: Thursday Morning Workshops</SessionName>
    <SessionPrompt>Session 1: Thursday Morning Workshops</SessionPrompt>
    <SessionID>102474</SessionID>
    <WorkshopItemCode>W101</WorkshopItemCode>
    <WorkshopName>Advanced Echocardiography – Strain Imaging in Cardio-Oncology</WorkshopName>
    <WorkshopPrompt>Advanced Echocardiography – Strain Imaging in Cardio-Oncology</WorkshopPrompt>
    <WorkshopID>274195</WorkshopID>
    <StartTime>9/16/2027 8:00 AM</StartTime>
    <EndTime>9/16/2027 10:00 AM</EndTime>
    <Room>Ballroom C</Room>
    <Track>Cardiovascular Imaging</Track>
    <Capacity>60</Capacity>
    <NumSold>1</NumSold>
    <WorkshopDescription>Case-based review of global longitudinal strain…</WorkshopDescription>
  </Workshop>
  <Workshop>
    <SessionName>Session 1: Thursday Morning Workshops</SessionName>
    <SessionPrompt>Session 1: Thursday Morning Workshops</SessionPrompt>
    <SessionID>102474</SessionID>
    <WorkshopItemCode>W102</WorkshopItemCode>
    <WorkshopName>Hands-On Point-of-Care Ultrasound for the Cardiology Fellow</WorkshopName>
    <WorkshopPrompt>Hands-On Point-of-Care Ultrasound for the Cardiology Fellow</WorkshopPrompt>
    <WorkshopID>274196</WorkshopID>
    <StartTime>9/16/2027 8:00 AM</StartTime>
    <EndTime>9/16/2027 10:00 AM</EndTime>
    <Room></Room>
    <Track></Track>
    <Capacity>268435455</Capacity>
    <NumSold>1</NumSold>
    <WorkshopDescription>Small-group scanning stations…</WorkshopDescription>
  </Workshop>
</Workshops>
getUDFsXML

Returns the event’s custom registration questions (user-defined fields, or UDFs). Comments and separators aren’t included. Question types and answer choices aren’t returned; see Writing Data — Best Practices under Important Notes.

HTTP Method: GET or POST

ParameterValueRequired
AccountTokenYour account tokenYes
ActivityTokenThe event’s activity tokenYes

Response Example:

<?xml version="1.0" encoding="UTF-8" ?>
<UDFs>
  <UDF>
    <UDFID>899841</UDFID>
    <UDFName>Primary Specialty</UDFName>
  </UDF>
  <UDF>
    <UDFID>899842</UDFID>
    <UDFName>Profession</UDFName>
  </UDF>
</UDFs>

Registrant Methods

getRegistrationInformationXML

Returns full registrant records: contact information, and optionally custom question answers, workshops, and registration fee.

HTTP Method: GET or POST

ParameterValueRequired
AccountTokenYour account tokenYes
ActivityTokenThe event’s activity tokenYes
RegistrantIDReturn one registrantNo
StartTimeReturn registrants who registered at or after this timeNo
EndTimeReturn registrants who registered at or before this timeNo
ShowUDFs1 to include custom question answersNo
ShowWorkshops1 to include workshops and general sessionsNo
ShowRegFeeInfo1 to include the registration feeNo
  • With no RegistrantID and no times, the call returns every active registrant in the event, up to about 10,000. Use a time window for large events.
  • Active means registered, attended, bad check, or bill later. Cancelled, deleted, and waitlisted registrants aren’t included.
  • The time filter uses the original registration time. To find registrants who changed after registering, use the change-tracking calls below.
  • Cancelled registrants are left out of time-window and all-registrant results, but you can still retrieve one by RegistrantID.
  • BalanceDue is negative when the registrant owes money and 0.00 when paid in full.
  • ConsentQuestions is always included and lists the registrant’s answer to each consent question.
  • A RegistrantID that doesn’t exist returns <Error>Registrant 1 not found</Error>.

Request Example:

https://websvcs.edgereg.net/er/API/EROnline/getRegistrationInformationXML.jsp?AccountToken=YOUR_ACCOUNT_TOKEN&ActivityToken=YOUR_ACTIVITY_TOKEN&RegistrantID=9509894&ShowUDFs=1&ShowWorkshops=1&ShowRegFeeInfo=1

Response Example:

<?xml version="1.0" encoding="UTF-8" ?>
<Registrations>
  <Registrant>
    <RegistrantID>9509894</RegistrantID>
    <BillingID>8027317</BillingID>
    <RegistrationTime>10/8/2026 3:52 PM</RegistrationTime>
    <MemberID></MemberID>
    <externalMemberId></externalMemberId>
    <BalanceDue>0.00</BalanceDue>
    <ConfirmationCode>XXXXXXXXXXXXXXXXXXXXXXXXXX</ConfirmationCode>
    <RegFeeItemInfo>
      <FeeName>Annual Scientific Sessions: In-Person and On-Demand Access</FeeName>
      <FeePrice>795.00</FeePrice>
      <FeeItemCode>Annual Conference: In-Person</FeeItemCode>
      <FeeBadgeDisplay></FeeBadgeDisplay>
    </RegFeeItemInfo>
    <ContactInfo>
      <Salutation>Dr.</Salutation>
      <FirstName>Marcus</FirstName>
      <MiddleName></MiddleName>
      <LastName>Delgado-Reyes</LastName>
      <Suffix>MD</Suffix>
      <Pronouns>he/him/his</Pronouns>
      <Credentials></Credentials>
      <Company>Lakeshore Heart &amp; Vascular Institute</Company>
      <NameOnBadge>Marcus</NameOnBadge>
      <Title>Interventional Cardiologist</Title>
      <Department></Department>
      <PhoneNumber>(312) 555-0147</PhoneNumber>
      <Phone>(312) 555-0147</Phone>
      <MobilePhoneNumber></MobilePhoneNumber>
      <Fax></Fax>
      <Email>marcus.delgado.test@example.com</Email>
      <Address1>401 N. Michigan Ave.</Address1>
      <Address2>Suite 1200</Address2>
      <City>Chicago</City>
      <State>IL</State>
      <ZipCode>60611</ZipCode>
      <Country>US</Country>
      <CountryFull>United States</CountryFull>
      <Photo></Photo>
      <FacebookUrl></FacebookUrl>
      <LinkedInUrl></LinkedInUrl>
      <XUserName></XUserName>
      <CCEmail></CCEmail>
      <Attended>false</Attended>
      <QRCodeToken>XXXXXXXXXXXXXXXXXXXXXXXXXX</QRCodeToken>
    </ContactInfo>
    <UDFs>
      <UDF>
        <UDFID>899841</UDFID>
        <UDFName>Primary Specialty</UDFName>
        <UDFPrompt>Primary Specialty</UDFPrompt>
        <UDFValue>Interventional Cardiology</UDFValue>
      </UDF>
      <UDF>
        <UDFID>901930</UDFID>
        <UDFName>CME Credit Requested</UDFName>
        <UDFPrompt>I would like to claim CME credit for this meeting.</UDFPrompt>
        <UDFValue>No</UDFValue>
      </UDF>
    </UDFs>
    <Workshops>
      <Workshop>
        <SessionName>Session 1: Thursday Morning Workshops</SessionName>
        <SessionID>102474</SessionID>
        <WorkshopItemCode>W101</WorkshopItemCode>
        <WorkshopName>Advanced Echocardiography – Strain Imaging in Cardio-Oncology</WorkshopName>
        <WorkshopID>274195</WorkshopID>
        <StartTime>9/16/2027 8:00 AM</StartTime>
        <EndTime>9/16/2027 10:00 AM</EndTime>
        <Room>Ballroom C</Room>
      </Workshop>
    </Workshops>
    <ConsentQuestions>
      <ConsentQuestion>
        <QuestionText>Share my data with all users of the following software services offered in connection with the Demo Cardiology Society Annual Scientific Sessions: Public Attendee Lists</QuestionText>
        <ConsentAccepted>true</ConsentAccepted>
      </ConsentQuestion>
    </ConsentQuestions>
  </Registrant>
</Registrations>
searchRegistrationInformationXML

Searches registrants by name. Matching is case-insensitive and matches the start of the name only: LastName=don finds “Donovan”, but LastName=novan doesn’t.

HTTP Method: GET or POST

ParameterValueRequired
AccountTokenYour account tokenYes
ActivityTokenThe event’s activity tokenYes
FirstNameBeginning of the first nameSee note
LastNameBeginning of the last nameSee note
ShowUDFs1 to include custom question answersNo
ShowWorkshops1 to include workshops and general sessionsNo
  • FirstName and LastName together must contain at least two characters. Shorter searches, or searches with no matches, return an empty <Registrations> element rather than an error.
  • Results also include BadgeDisplay, IsMember, FullName, and MembershipInfoUpdated. Social media elements are LinkedInProfileUrl, FacebookProfileUrl, and XUsername.
  • The registration fee isn’t available from search. Use getRegistrationInformationXML with the returned RegistrantID.

Request Example:

https://websvcs.edgereg.net/er/API/EROnline/searchRegistrationInformationXML.jsp?AccountToken=YOUR_ACCOUNT_TOKEN&ActivityToken=YOUR_ACTIVITY_TOKEN&FirstName=Mar&LastName=Delg

Response Example:

<?xml version="1.0" encoding="UTF-8" ?>
<Registrations>
  <Registrant>
    <RegistrantID>9509894</RegistrantID>
    <BillingID>8027317</BillingID>
    <RegistrationTime>10/8/2026 3:52 PM</RegistrationTime>
    <BadgeDisplay></BadgeDisplay>
    <MemberID></MemberID>
    <externalMemberId></externalMemberId>
    <IsMember></IsMember>
    <BalanceDue>0.00</BalanceDue>
    <ConfirmationCode>XXXXXXXXXXXXXXXXXXXXXXXXXX</ConfirmationCode>
    <ContactInfo>
      <FirstName>Marcus</FirstName>
      <LastName>Delgado-Reyes</LastName>
      <NameOnBadge>Marcus</NameOnBadge>
      <FullName>Marcus Delgado-Reyes</FullName>
      <!-- other contact elements match getRegistrationInformationXML -->
      <Attended>false</Attended>
      <MembershipInfoUpdated>false</MembershipInfoUpdated>
      <LinkedInProfileUrl></LinkedInProfileUrl>
      <FacebookProfileUrl></FacebookProfileUrl>
      <XUsername></XUsername>
      <QRCodeToken>XXXXXXXXXXXXXXXXXXXXXXXXXX</QRCodeToken>
    </ContactInfo>
    <ConsentQuestions>
      <!-- same as getRegistrationInformationXML -->
    </ConsentQuestions>
  </Registrant>
</Registrations>
getBillingContactInformationXML

Returns the billing contact for a registrant or billing account. The billing contact is copied from the registrant at registration; after that, the two records are updated separately.

HTTP Method: GET or POST

ParameterValueRequired
AccountTokenYour account tokenYes
ActivityTokenThe event’s activity tokenYes
RegistrantIDA registrant on the billing accountConditional
BillingIDThe billing accountConditional

Send either RegistrantID or BillingID.

Response Example:

<?xml version="1.0" encoding="UTF-8" ?>
<BillingContact>
  <BillingID>8027317</BillingID>
  <ContactInfo>
    <FirstName>Marcus</FirstName>
    <LastName>Delgado-Reyes</LastName>
    <Company>Lakeshore Heart &amp; Vascular Institute</Company>
    <Title>Interventional Cardiologist</Title>
    <Department></Department>
    <PhoneNumber>(312) 555-0147</PhoneNumber>
    <Phone>(312) 555-0147</Phone>
    <Fax></Fax>
    <Email>marcus.delgado.test@example.com</Email>
    <Address1>401 N. Michigan Ave.</Address1>
    <Address2>Suite 1200</Address2>
    <City>Chicago</City>
    <State>IL</State>
    <ZipCode>60611</ZipCode>
    <Country>US</Country>
    <CountryFull>United States</CountryFull>
  </ContactInfo>
</BillingContact>

Change Tracking Methods

These methods return only RegistrantID values. Use getRegistrationInformationXML, getPurchasesXML, or getPaymentsXML to get the details.

Which change tracking method to use
MethodReturns registrants who…Time filter
getAllChangedRegistrationsXMLRegistered, were updated, or had a purchase or payment in the time windowYes
getModifiedRegistrationsXMLWere updated after they registered (contact information, custom questions, attendance, or workshops). New registrations aren’t included.Yes
getCancelledRegistrantsXMLAre no longer attending the eventNo
getCancelledRegistrationsXMLHad any registration fee cancelled, including registrants who exchanged one registration fee for another and are still attendingYes
getAllChangedRegistrationsXML

Returns registrants who registered, were updated, or had a purchase or payment in the time window. This is the best single call for keeping another system in sync.

HTTP Method: GET or POST

ParameterValueRequired
AccountTokenYour account tokenYes
ActivityTokenThe event’s activity tokenYes
StartTimeStart of the time windowNo, but recommended
EndTimeEnd of the time windowNo

With no times, the call returns every registrant who has ever changed.

Request Example:

https://websvcs.edgereg.net/er/API/EROnline/getAllChangedRegistrationsXML.jsp?AccountToken=YOUR_ACCOUNT_TOKEN&ActivityToken=YOUR_ACTIVITY_TOKEN&StartTime=10%2F08%2F2026%2015%3A00%3A00&EndTime=10%2F08%2F2026%2023%3A59%3A59

Response Example:

<?xml version="1.0" encoding="UTF-8" ?>
<Registrations>
  <RegistrantID>9509894</RegistrantID>
  <RegistrantID>9509902</RegistrantID>
</Registrations>
getModifiedRegistrationsXML

Returns registrants who were updated after they registered. New registrations aren’t included; use getAllChangedRegistrationsXML to catch both.

HTTP Method: GET or POST

ParameterValueRequired
AccountTokenYour account tokenYes
ActivityTokenThe event’s activity tokenYes
StartTimeStart of the time windowNo
EndTimeEnd of the time windowNo

Response Example:

<?xml version="1.0" encoding="UTF-8" ?>
<Registrations>
  <RegistrantID>9509835</RegistrantID>
  <RegistrantID>9509836</RegistrantID>
</Registrations>
getCancelledRegistrantsXML

Returns registrants who are no longer attending the event. This call has no time filter; it always returns every cancelled registrant who matches the filters.

HTTP Method: GET or POST

ParameterValueRequired
AccountTokenYour account tokenYes
ActivityTokenThe event’s activity tokenYes
FirstNameBeginning of the first nameNo
LastNameBeginning of the last nameNo
CompanyAny part of the company nameNo
PhoneBeginning of the phone number, exactly as stored (for example, (312) 555)No

“Cancelled” includes registrants who were cancelled or deleted.

Response Example:

<?xml version="1.0" encoding="UTF-8" ?>
<Registrations>
  <RegistrantID>9509835</RegistrantID>
</Registrations>
getCancelledRegistrationsXML

Returns registrants who had a registration fee cancelled. This doesn’t necessarily mean the registrant is no longer attending. For example, a registrant who exchanges one registration fee for another has a cancellation and a new purchase, and appears here but not in getCancelledRegistrantsXML.

HTTP Method: GET or POST

ParameterValueRequired
AccountTokenYour account tokenYes
ActivityTokenThe event’s activity tokenYes
StartTimeStart of the time windowNo
EndTimeEnd of the time windowNo

Response Example:

<?xml version="1.0" encoding="UTF-8" ?>
<Registrations>
  <RegistrantID>9509835</RegistrantID>
  <RegistrantID>9509836</RegistrantID>
</Registrations>

Financial Methods

getPurchasesXML

Returns the fees each registrant currently holds, grouped by purchase transaction.

HTTP Method: GET or POST

ParameterValueRequired
AccountTokenYour account tokenYes
ActivityTokenThe event’s activity tokenYes
RegistrantIDOne registrantConditional
StartTimeStart of the time windowConditional
EndTimeEnd of the time windowConditional

Send at least one of RegistrantID, StartTime, or EndTime.

  • This call shows current holdings. Cancelled or exchanged fees disappear from it; use getCancelledItemsXML to see them.
  • Discounts aren’t applied here. PurchasePrice is the full fee price. Discounts appear in getPaymentsXML.
  • FeeType is Registration or Options.

Request Example:

https://websvcs.edgereg.net/er/API/EROnline/getPurchasesXML.jsp?AccountToken=YOUR_ACCOUNT_TOKEN&ActivityToken=YOUR_ACTIVITY_TOKEN&RegistrantID=9509894

Response Example:

<?xml version="1.0" encoding="UTF-8" ?>
<Purchases>
  <Purchase>
    <RegistrantID>9509894</RegistrantID>
    <BillingID>8027317</BillingID>
    <TransactionID>26720063</TransactionID>
    <PurchaseTime>10/8/2026</PurchaseTime>
    <LineItems>
      <LineItem>
        <LineItemID>10769399</LineItemID>
        <FeeItemID>731440</FeeItemID>
        <FeeName>Annual Scientific Sessions: In-Person and On-Demand Access</FeeName>
        <FeeType>Registration</FeeType>
        <Quantity>1</Quantity>
        <FeePrice>795.00</FeePrice>
        <PurchasePrice>795.00</PurchasePrice>
        <AccountCode></AccountCode>
        <PromotionCode></PromotionCode>
      </LineItem>
      <LineItem>
        <LineItemID>10769400</LineItemID>
        <FeeItemID>731442</FeeItemID>
        <FeeName>Advanced Cardiac Rhythm Interpretation</FeeName>
        <FeeType>Options</FeeType>
        <Quantity>1</Quantity>
        <FeePrice>225.00</FeePrice>
        <PurchasePrice>225.00</PurchasePrice>
        <AccountCode></AccountCode>
        <PromotionCode></PromotionCode>
      </LineItem>
    </LineItems>
    <TotalPurchaseAmount>1020.00</TotalPurchaseAmount>
  </Purchase>
</Purchases>
getPaymentsXML

Returns payments and discounts applied to billing accounts.

HTTP Method: GET or POST

ParameterValueRequired
AccountTokenYour account tokenYes
ActivityTokenThe event’s activity tokenYes
BillingIDOne billing account. RegistrantID isn’t accepted here; get the BillingID from the registrant record.Conditional
StartTimeStart of the time windowConditional
EndTimeEnd of the time windowConditional

Send at least one of BillingID, StartTime, or EndTime.

TXType describes the transaction. Credits (refunds) have positive Amount values, the same as payments; use TXType to tell them apart. This call can return:

CategoryTXType values
PaymentsE-Commerce Credit Card Payment, Manual Credit Card Payment, Check Payment, Cash Payment, Money Order Payment, E-Check Payment, Wire Transfer Payment
Credits (refunds)E-Commerce Credit Card Credit, Manual Credit Card Credit, Check Credit, Cash Credit, Money Order Credit, Wire Transfer Credit
Reversals and feesCheck Returned, E-Check Failure, Refund Processing Fee
DiscountsDiscount

Purchases, cancellations, future credits, surcharges, and exchange-rate adjustments aren’t returned. PaymentDetail depends on the type:

  • Credit card (payments and credits): CreditCardType (may be empty), LastFourCreditCard, and OrderNumber
  • Check: CheckNumber
  • Discount: DiscountCode. Amount is the amount taken off.

Request Example:

https://websvcs.edgereg.net/er/API/EROnline/getPaymentsXML.jsp?AccountToken=YOUR_ACCOUNT_TOKEN&ActivityToken=YOUR_ACTIVITY_TOKEN&BillingID=8027317

Response Example:

<?xml version="1.0" encoding="UTF-8" ?>
<Transactions>
  <Transaction>
    <TransactionID>26720064</TransactionID>
    <BillingID>8027317</BillingID>
    <TXType>Discount</TXType>
    <Description>DISCOUNT $10 off registration fee</Description>
    <Amount>10.00</Amount>
    <TransactionTime>10/8/2026 3:52 PM</TransactionTime>
    <PaymentDetail>
      <DiscountCode>10OFF</DiscountCode>
    </PaymentDetail>
  </Transaction>
  <Transaction>
    <TransactionID>26720065</TransactionID>
    <BillingID>8027317</BillingID>
    <TXType>E-Commerce Credit Card Payment</TXType>
    <Description>E-Commerce Credit Card Payment</Description>
    <Amount>1010.00</Amount>
    <TransactionTime>10/8/2026 3:52 PM</TransactionTime>
    <PaymentDetail>
      <CreditCardType></CreditCardType>
      <LastFourCreditCard>1111</LastFourCreditCard>
      <OrderNumber>1103776395</OrderNumber>
    </PaymentDetail>
  </Transaction>
</Transactions>

A check payment returns <TXType>Check Payment</TXType>, a description such as Check Payment (CK# 123), and <CheckNumber>123</CheckNumber> in PaymentDetail.

getCancelledItemsXML

Returns cancelled fees, including the old fee when a registrant exchanges one registration fee for another.

HTTP Method: GET or POST

ParameterValueRequired
AccountTokenYour account tokenYes
ActivityTokenThe event’s activity tokenYes
RegistrantIDOne registrantConditional
StartTimeStart of the time windowConditional
EndTimeEnd of the time windowConditional

Send at least one of RegistrantID, StartTime, or EndTime.

Response Example:

<?xml version="1.0" encoding="UTF-8" ?>
<Cancellations>
  <Cancellation>
    <RegistrantID>9509836</RegistrantID>
    <BillingID>8027256</BillingID>
    <TransactionID>26720082</TransactionID>
    <CancellationTime>10/8/2026</CancellationTime>
    <LineItems>
      <LineItem>
        <FeeItemID>731440</FeeItemID>
        <FeeName>Annual Scientific Sessions: In-Person and On-Demand Access</FeeName>
        <FeeType>Registration</FeeType>
        <Quantity>1</Quantity>
        <FeePrice>795.00</FeePrice>
        <PurchasePrice>795.00</PurchasePrice>
        <AccountCode></AccountCode>
        <PromotionCode></PromotionCode>
      </LineItem>
    </LineItems>
  </Cancellation>
</Cancellations>

Write Methods

Before you use these methods, read Writing Data — Best Practices under Important Notes. Test against a sandbox event first.

submitRegistrationXML

Creates a new registrant with one registration fee and returns the new RegistrantID and BillingID. No payment is collected. The registrant is set to pay later, and their balance is the fee price minus any discount. A $0 fee is recorded as complimentary.

⚠️ Sends a confirmation email. If you include Email, Eventscribe Registration sends the event’s registration confirmation email to that address. Leave Email out if your system sends its own confirmation.

HTTP Method: GET or POST

ParameterValueRequired
AccountTokenYour account tokenYes
ActivityTokenThe event’s activity tokenYes
FeeItemIDA fee with FeeType Registration, from getFeesXML. Option fees are rejected.Yes
Contact fieldsContact information. State is a two-letter abbreviation such as IL, and Country is a two-letter code such as US. The billing contact is copied from these values.
Salutation, FirstName, MiddleName, LastName, Suffix, Pronouns, NameOnBadge, Company, Title, Department, PhoneNumber, Fax, Email, Address1, Address2, City, State, ZipCode, Country
No
UDF + UDFIDA custom question answer (for example, UDF899841=522587). See Writing Data — Best Practices under Important Notes. Only questions shown on the registration form are saved, and empty values are skipped.No
DiscountCodeA discount code set up for the event. Check BalanceDue on the registrant to confirm the discount was applied.No
  • Workshops and option fees can’t be added in this call. Use updateWorkshopXML to add workshops afterward. Option fees can’t be added through the API.

Request Example:

https://websvcs.edgereg.net/er/API/EROnline/submitRegistrationXML.jsp?AccountToken=YOUR_ACCOUNT_TOKEN&ActivityToken=YOUR_ACTIVITY_TOKEN&FeeItemID=731441&FirstName=Priya&LastName=Natarajan&Email=priya.natarajan.test%40example.com&UDF899841=522599&UDF899842=522580&DiscountCode=10OFF

Response Example:

<?xml version="1.0" encoding="UTF-8" ?>
<Registrant>
  <RegistrantID>9509907</RegistrantID>
  <BillingID>8027324</BillingID>
</Registrant>
updateRegistrantInformationXML

Updates a registrant’s contact information and custom question answers, and records attendance. Send only the fields you want to change.

HTTP Method: GET or POST

ParameterValueRequired
AccountTokenYour account tokenYes
ActivityTokenThe event’s activity tokenYes
RegistrantIDThe registrant to updateYes
Attended1 to mark the registrant as attended. Attendance can’t be removed through the API.No
Contact fieldsContact information. Changes here don’t update the billing contact. See the state and country note below.
Salutation, FirstName, MiddleName, LastName, Suffix, Pronouns, NameOnBadge, Company, Title, Department, PhoneNumber, Fax, Email, Address1, Address2, City, State, ZipCode, Country
No
UDF + UDFIDA custom question answer. See Writing Data — Best Practices under Important Notes.No
  • Fields you leave out are unchanged. Fields you send with an empty value are cleared.
  • State and country: set State when you create the registrant with submitRegistrationXML; changing an existing state isn’t supported through this method. Send Country in its own request, as a two-letter code (US) or full name (United States).
  • A UDFID that isn’t in the event returns <Error>UDFID 1 does not belong to provided Activity.</Error>.
  • A value longer than a question’s character limit returns an error such as UDFID 901939 has a limit of 3 but the value provided is 5 characters.

Request Example:

https://websvcs.edgereg.net/er/API/EROnline/updateRegistrantInformationXML.jsp?AccountToken=YOUR_ACCOUNT_TOKEN&ActivityToken=YOUR_ACTIVITY_TOKEN&RegistrantID=9509894&Attended=1&Title=Director%20of%20Interventional%20Cardiology&UDF901930=Yes

Response Example:

<?xml version="1.0" encoding="UTF-8" ?>
<Success>
</Success>
updateWorkshopXML

Sets a registrant’s workshop or general session for one session. If the registrant already has a workshop in that session, it’s replaced.

HTTP Method: GET or POST

ParameterValueRequired
AccountTokenYour account tokenYes
ActivityTokenThe event’s activity tokenYes
RegistrantIDThe registrantYes
SessionIDThe session, from getWorkshopsXMLYes
WorkshopIDA workshop in that session, from getWorkshopsXMLYes
  • A WorkshopID that isn’t in the session you sent returns <Error>Access denied 3</Error>.
  • A full workshop returns <Error>Workshop sold out</Error>. This includes resending the workshop a registrant already holds when that workshop is full.
  • Workshops can be added or replaced but not removed. There’s no way to clear a registrant’s selection for a session through the API.
  • The workshop’s NumSold updates immediately. Workshops don’t create purchases.

Request Example:

https://websvcs.edgereg.net/er/API/EROnline/updateWorkshopXML.jsp?AccountToken=YOUR_ACCOUNT_TOKEN&ActivityToken=YOUR_ACTIVITY_TOKEN&RegistrantID=9509894&SessionID=102474&WorkshopID=274196

Response Example:

<?xml version="1.0" encoding="UTF-8" ?>
<Success>
</Success>
updateBillingContactInformationXML

Updates a billing contact. Changes here don’t update the registrant’s contact information.

HTTP Method: GET or POST

ParameterValueRequired
AccountTokenYour account tokenYes
ActivityTokenThe event’s activity tokenYes
BillingIDThe billing account. RegistrantID isn’t accepted.Yes
Contact fieldsBilling contact information
FirstName, LastName, Company, Title, Department, PhoneNumber, Fax, Email, Address1, Address2, City, State, ZipCode, Country
No

A BillingID that doesn’t exist returns <Error>Access denied 1</Error>.

Request Example:

https://websvcs.edgereg.net/er/API/EROnline/updateBillingContactInformationXML.jsp?AccountToken=YOUR_ACCOUNT_TOKEN&ActivityToken=YOUR_ACTIVITY_TOKEN&BillingID=8027317&Email=accounts.payable.test%40example.com

Response Example:

<?xml version="1.0" encoding="UTF-8" ?>
<Success>
</Success>

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article