AES ConductorLink API Guide

Updated by Jon Doehling

Overview

The AES ConductorLink API can be accessed by http POST, with parameters passed in JSON format.  Sample code can be found below.

In all cases an API access key must be used in the request header to authenticate. Please email contactus@aesauctions.com to obtain your Organization’s unique access key. 

Test and Production Server URL's

QA Staging Serverhttps://actestserver.com

Production Serverhttps://auctionconductor.com

Available Calls

Events

/getEvent returns the current name of the event, to ensure accuracy of event_id's.

/getOrganizationEvents returns all events found for a particular Organization.

Contributors

A Contributor is any person involved with the event. This may be a Patron (someone who makes a purchase), Attendee for an event, Online only participant, corporate or personal Sponsor, event Volunteer, or in-kind auction item Donor.

/createContributor

/updateContributor

/getContributor

/deleteContributor

Event Contributors

Event Contributors reference existing Contributors, and contain additional data specific to a particular Event.

/createEventContributor

/updateEventContributor

/getEventContributor

/deleteEventContributor

The following call is used to associate Event Contributors into households or corporate groups to ease the check-in process. Use of this whenever possible is highly recommended.

/associateEventContributors

Categories

All Packages that are being sold need to have a single assigned Category. The category assigned determines the friendly number of the package. By default, category number ranges will be assigned by 100's for 3 digit numbering or 100's for 4 digit numbering. For example, a category may be assigned the range of 100-199, and the first package added to this category would automatically be assigned pkg #100, the second #101, etc.

/createPackageCategory

/updatePackageCategory

/getPackageCategory

/deletePackageCategory

/getPackageCategories

Packages

Packages are sold at the event. Some packages may be published (visible on the mobile bidding site) or unpublished (for purposes of controlling which devices show special packages). By default all Silent, Live and Fixed Price packages should be published, and all Multi-Unit, Registration Extras, Sponsorships, and Tickets and Admission packages should be unpublished. Donation packages may be published in certain scenarios, and hidden in others.

/createPackage

/updatePackage

/getPackage

/deletePackage

Post Event (Final Data Sync)

After the event has concluded, there is typically a period of a few days where final payments and sales are validated, changed, and finalized. After this waiting period has passed, and all auction categories have permanently closed, the final data may be downloaded one last time, in the following order:

  1. /lockEvent - when the event is Locked, all low level users will be restricted from adding or editing contributors, packages, payments and sales in AES.
  2. /getContributors - provides all Contributors found for the event. It is crucial to the success of the next 2 steps to ensure all contributors are accounted for.
  3. /getSales - provides all Sales (purchases and winning bids) for the event, for all currently closed packages. Each Sale is assigned to a specific Contributor.
  4. /getPayments - provides all cash, check, and credit card Payments collected in AES. Each Payment is assigned to a specific Contributor.

Webhooks

AES Webhooks - will let your application know when a Contributor checks out successfully from the event Microsite only. Includes information about the Contributor and their Guests, which Packages they purchased, and their Payment.

Webhooks are only fired when a user checks out from the event microsite. All auction sales and purchases entered from other AES applications (Auction Conductor, Event Conductor, and Event Manager) must be pulled using the API calls above.

Appendix A - US State/Territory or Country Values

US State/Territory

Code

ALABAMA

AL

ALASKA

AK

ARIZONA

AZ

ARKANSAS

AR

CALIFORNIA

CA

CANAL ZONE

CZ

COLORADO

CO

CONNECTICUT

CT

DELAWARE

DE

DISTRICT OF COLUMBIA

DC

FLORIDA

FL

GEORGIA

GA

HAWAII

HI

IDAHO

ID

ILLINOIS

IL

INDIANA

IN

IOWA

IA

KANSAS

KS

KENTUCKY

KY

LOUISIANA

LA

MAINE

ME

MARYLAND

MD

MASSACHUSETTS

MA

MICHIGAN

MI

MINNESOTA

MN

MISSISSIPPI

MS

MISSOURI

MO

MONTANA

MT

NEBRASKA

NE

NEVADA

NV

NEW HAMPSHIRE

NH

NEW JERSEY

NJ

NEW MEXICO

NM

NEW YORK

NY

NORTH CAROLINA

NC

NORTH DAKOTA

ND

OHIO

OH

OKLAHOMA

OK

OREGON

OR

PENNSYLVANIA

PA

PUERTO RICO

PR

RHODE ISLAND

RI

SOUTH CAROLINA

SC

SOUTH DAKOTA

SD

TENNESSEE

TN

TEXAS

TX

UTAH

UT

VERMONT

VT

VIRGIN ISLANDS

VI

VIRGINIA

VA

WASHINGTON

WA

WEST VIRGINIA

WV

WISCONSIN

WI

WYOMING

WY

Country

Afghanistan

Albania

Algeria

Andorra

Angola

Antigua and Barbuda

Argentina

Armenia

Australia

Austria

Azerbaijan

Bahamas

Bahrain

Bangladesh

Barbados

Belarus

Belgium

Belize

Benin

Bhutan

Bolivia

Bosnia and Herzegovina

Botswana

Brazil

Brunei Darussalam

Bulgaria

Burkina Faso

Burundi

Cabo Verde

Cambodia

Cameroon

Canada

Central African Republic

Chad

Chile

China

Colombia

Comoros

Congo

Costa Rica

Côte d'Ivoire

Croatia

Cuba

Cyprus

Czech Republic

Democratic Republic of the Cong

Denmark

Djibouti

Dominica

Dominican Republic

Ecuador

Egypt

El Salvador

Equatorial Guinea

Eritrea

Estonia

Ethiopia

Fiji

Finland

France

Gabon

Gambia

Georgia

Germany

Ghana

Greece

Grenada

Guatemala

Guinea

Guinea-Bissau

Guyana

Haiti

Honduras

Hungary

Iceland

India

Indonesia

Iran

Iraq

Ireland

Israel

Italy

Jamaica

Japan

Jordan

Kazakhstan

Kenya

Kiribati

Kuwait

Kyrgyzstan

Laos

Latvia

Lebanon

Lesotho

Liberia

Libya

Liechtenstein

Lithuania

Luxembourg

Macedonia

Madagascar

Malawi

Malaysia

Maldives

Mali

Malta

Marshall Islands

Mauritania

Mauritius

Mexico

Micronesia (Federated States of)

Monaco

Mongolia

Montenegro

Morocco

Mozambique

Myanmar

Namibia

Nauru

Nepal

Netherlands

New Zealand

Nicaragua

Niger

Nigeria

North Korea

Norway

Oman

Pakistan

Palestine

Palau

Panama

Papua New Guinea

Paraguay

Peru

Philippines

Poland

Portugal

Qatar

Republic of Korea (South Korea)

Republic of Moldova

Romania

Russian Federation

Rwanda

Saint Kitts and Nevis

Saint Lucia

Saint Vincent and the Grenadines

Samoa

San Marino

Sao Tome and Principe

Saudi Arabia

Senegal

Serbia

Seychelles

Sierra Leone

Singapore

Slovakia

Slovenia

Solomon Islands

Somalia

South Africa

South Sudan

Spain

Sri Lanka

Sudan

Suriname

Swaziland

Sweden

Switzerland

Syrian Arab Republic

Tajikistan

Thailand

Timor-Leste

Togo

Tonga

Trinidad and Tobago

Tunisia

Turkey

Turkmenistan

Tuvalu

Uganda

Ukraine

United Arab Emirates

United Kingdom of Great Britain and Northern Ireland

United Republic of Tanzania

United States of America

Uruguay

Uzbekistan

Vanuatu

Venezuela

Vietnam

Yemen

Zambia

Zimbabwe

Appendix B - Sample Call in C#

private string createContributor()
{
try
{

var httpWebRequest = (HttpWebRequest)WebRequest.Create(createContributorUrl);

httpWebRequest.Headers.Add("AES_API_KEY", "xxx___KEY___xxx");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";

using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = new JavaScriptSerializer().Serialize(new {
first_name = "First Name",
middle_name = "Middle Name",
last_name = "Last Name",
company = "Company Name",
title = "Administrator",
address1 = "Address 1",
address2 = "Address 2",
city = "City",
state = "NY",
zip = "12354",
contributor_since = "2017/01/2017",
phone = "1234567890",
cell = "0123456789",
fax = "0123456789",
website = "http://mysite.com",
salutation = "Mr.",
email = "testemail@testdomain.com",
email_opt = true
});

streamWriter.Write(json);
}

var response = (HttpWebResponse)httpWebRequest.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

return responseString;
}
catch (WebException ex)
{
//Catch 500 error response
if (((HttpWebResponse)ex.Response).StatusCode == HttpStatusCode.InternalServerError)
{
using (var stream = ex.Response.GetResponseStream())
using (var reader = new StreamReader(stream))
return reader.ReadToEnd();
}

throw;
}
}


How did we do?