AIM Web Services

<back to all web services

CustomerInfoRequest

CustomerInfo
Requires active-e Customer Service.

The following routes are available for this service:
GET/api/CustomerInfo
// @ts-nocheck

// @DataContract
export class BaseRequest
{
    /** @description This is your AIM API Key provided by Tri-Tech */
    // @DataMember
    // @ApiMember(DataType="string", Description="This is your AIM API Key provided by Tri-Tech", IsRequired=true, Name="ApiKey", ParameterType="Header")
    public ApiKey: string;

    /** @description The OAuthToken token return by AeServices30 */
    // @DataMember
    // @ApiMember(DataType="string", Description="The OAuthToken token return by AeServices30", IsRequired=true, Name="OAuthToken", ParameterType="Header")
    public OAuthToken: string;

    /** @description The Device ID of the Mobile Device. Not used for non-mobile devices. */
    // @DataMember
    // @ApiMember(DataType="string", Description="The Device ID of the Mobile Device. Not used for non-mobile devices.", Name="DeviceId", ParameterType="Header")
    public DeviceId?: string;

    /** @description An identifier for your integration */
    // @DataMember
    // @ApiMember(DataType="string", Description="An identifier for your integration", IsRequired=true, Name="AppId", ParameterType="Header")
    public AppId: string;

    public constructor(init?: Partial<BaseRequest>) { (Object as any).assign(this, init); }
}

// @DataContract
export class BaseSecureRequest extends BaseRequest
{
    /** @description The Login Token return by the Security API. Required for secured calls. */
    // @DataMember
    // @ApiMember(DataType="string", Description="The Login Token return by the Security API. Required for secured calls.", Name="Token", ParameterType="Header")
    public Token?: string;

    public constructor(init?: Partial<BaseSecureRequest>) { super(init); (Object as any).assign(this, init); }
}

// @DataContract
export class BaseResponseResult
{
    /** @description  */
    // @DataMember
    // @ApiMember(DataType="string", Description="", Name="StatusCode", ParameterType="body")
    public StatusCode?: string;

    /** @description  */
    // @DataMember
    // @ApiMember(DataType="string", Description="", Name="Login", ParameterType="body")
    public Login?: string;

    /** @description  */
    // @DataMember
    // @ApiMember(DataType="string", Description="", Name="ErrorCode", ParameterType="body")
    public ErrorCode?: string;

    /** @description  */
    // @DataMember
    // @ApiMember(DataType="string", Description="", Name="ErrorDisplayText", ParameterType="body")
    public ErrorDisplayText?: string;

    /** @description  */
    // @DataMember
    // @ApiMember(DataType="string", Description="", Name="ErrorMessage", ParameterType="body")
    public ErrorMessage?: string;

    /** @description  */
    // @DataMember
    // @ApiMember(DataType="string", Description="", ExcludeInSchema=true, Name="DomainName", ParameterType="body")
    public DomainName?: string;

    /** @description  */
    // @DataMember
    // @ApiMember(DataType="string", Description="", ExcludeInSchema=true, Name="IPAddress", ParameterType="body")
    public IpAddress?: string;

    public constructor(init?: Partial<BaseResponseResult>) { (Object as any).assign(this, init); }
}

// @DataContract
export class BaseResponse
{
    /** @description  */
    // @DataMember
    // @ApiMember(DataType="BaseResponseResult", Description="", Name="Status", ParameterType="body")
    public Status?: BaseResponseResult;

    public constructor(init?: Partial<BaseResponse>) { (Object as any).assign(this, init); }
}

// @DataContract
export class BindableObject
{

    public constructor(init?: Partial<BindableObject>) { (Object as any).assign(this, init); }
}

// @DataContract
export class DependantRecord
{
    // @DataMember
    public Name?: string;

    // @DataMember
    public OnlineId?: string;

    // @DataMember
    public SchoolDistrict?: string;

    // @DataMember
    public School?: string;

    // @DataMember
    public Id: number;

    public constructor(init?: Partial<DependantRecord>) { (Object as any).assign(this, init); }
}

// @DataContract
export class CustomerDefaultInfo
{
    // @DataMember
    public Id: number;

    // @DataMember
    public Desc?: string;

    // @DataMember
    public ShortDesc?: string;

    public constructor(init?: Partial<CustomerDefaultInfo>) { (Object as any).assign(this, init); }
}

// @DataContract
export class TaxAuthorityInfo
{
    // @DataMember
    public Id: number;

    // @DataMember
    public Desc?: string;

    // @DataMember
    public ShortDesc?: string;

    public constructor(init?: Partial<TaxAuthorityInfo>) { (Object as any).assign(this, init); }
}

// @DataContract
export class LocationInfo
{
    // @DataMember
    public Id: number;

    // @DataMember
    public Desc?: string;

    // @DataMember
    public ShortDesc?: string;

    // @DataMember
    public Region?: string;

    // @DataMember
    public Latitude: number;

    // @DataMember
    public Longitude: number;

    // @DataMember
    public InStorePickup?: string;

    // @DataMember
    public Active: boolean;

    // @DataMember
    public CashSaleAcct?: number;

    public constructor(init?: Partial<LocationInfo>) { (Object as any).assign(this, init); }
}

// @DataContract
export class AdditionalDetail
{
    // @DataMember
    public CreationDate: string;

    // @DataMember
    public LastModifiedDate: string;

    // @DataMember
    public Notes?: string;

    // @DataMember
    public CustomerDefault?: CustomerDefaultInfo;

    // @DataMember
    public TaxAuthority?: TaxAuthorityInfo;

    // @DataMember
    public CanCharge: boolean;

    // @DataMember
    public PopupNotes?: string;

    // @DataMember
    public DlNumber?: string;

    // @DataMember
    public Phone2?: string;

    // @DataMember
    public Phone3?: string;

    // @DataMember
    public Phone4?: string;

    // @DataMember
    public Location?: LocationInfo;

    public constructor(init?: Partial<AdditionalDetail>) { (Object as any).assign(this, init); }
}

// @DataContract
export class CustomerSearchRecord extends BindableObject
{
    // @DataMember
    public Pk: number;

    // @DataMember
    public Acct: number;

    // @DataMember
    public Last?: string;

    // @DataMember
    public Name?: string;

    // @DataMember
    public Addr1?: string;

    // @DataMember
    public Addr2?: string;

    // @DataMember
    public City?: string;

    // @DataMember
    public St?: string;

    // @DataMember
    public Zip?: string;

    // @DataMember
    public Phone?: string;

    // @DataMember
    public Email?: string;

    // @DataMember
    public OpenInvoices: boolean;

    // @DataMember
    public RentalActivity: boolean;

    // @DataMember
    public StLoc?: string;

    // @DataMember
    public Hold: boolean;

    // @DataMember
    public Barcode?: string;

    // @DataMember
    public Color: number;

    // @DataMember
    public DependantInfo?: DependantRecord[];

    // @DataMember
    public AdditionalDetails?: AdditionalDetail;

    // @DataMember
    public MatchedOn?: string;

    public constructor(init?: Partial<CustomerSearchRecord>) { super(init); (Object as any).assign(this, init); }
}

// @DataContract
export class CategoryLevelDiscount
{
    // @DataMember
    public Category: number;

    // @DataMember
    public SubCategory?: number;

    // @DataMember
    public DiscountType?: string;

    // @DataMember
    public DiscountAmount: number;

    public constructor(init?: Partial<CategoryLevelDiscount>) { (Object as any).assign(this, init); }
}

// @DataContract
export class CustomerDiscountInfo
{
    // @DataMember
    public AccessoryInventory: number;

    // @DataMember
    public SerializedInventory: number;

    // @DataMember
    public ShortTermRental: number;

    // @DataMember
    public NonInventory: number;

    // @DataMember
    public Labor: number;

    // @DataMember
    public MediaInventory: number;

    // @DataMember
    public CategoryLevelDiscounts?: CategoryLevelDiscount[];

    // @DataMember
    public PriceLevel?: string;

    public constructor(init?: Partial<CustomerDiscountInfo>) { (Object as any).assign(this, init); }
}

// @DataContract
export class CustomerMembershipInfo
{
    // @DataMember
    public Description?: string;

    // @DataMember
    public TeeLevel: number;

    // @DataMember
    public WebTeeLevel: number;

    // @DataMember
    public StationLevel: number;

    public constructor(init?: Partial<CustomerMembershipInfo>) { (Object as any).assign(this, init); }
}

// @DataContract
export class CustomerEmailInfo
{
    // @DataMember
    public Description?: string;

    // @DataMember
    public Email?: string;

    // @DataMember
    public Method?: string;

    // @DataMember
    public Type?: string;

    public constructor(init?: Partial<CustomerEmailInfo>) { (Object as any).assign(this, init); }
}

// @DataContract
export class AttributeValue
{
    // @DataMember
    public Name?: string;

    // @DataMember
    public Tag?: string;

    // @DataMember
    public Value?: string;

    public constructor(init?: Partial<AttributeValue>) { (Object as any).assign(this, init); }
}

// @DataContract
export class CustomerInfoResponse extends BaseResponse
{
    // @DataMember
    public Customer?: CustomerSearchRecord;

    // @DataMember
    public DiscountInfo?: CustomerDiscountInfo;

    // @DataMember
    public Memberships?: CustomerMembershipInfo[];

    // @DataMember
    public Emails?: CustomerEmailInfo[];

    // @DataMember
    public Attributes?: AttributeValue[];

    public constructor(init?: Partial<CustomerInfoResponse>) { super(init); (Object as any).assign(this, init); }
}

/** @description CustomerInfoRequires active-e Customer Service. */
// @DataContract
export class CustomerInfoRequest extends BaseSecureRequest
{
    // @DataMember
    public Acct: number;

    public constructor(init?: Partial<CustomerInfoRequest>) { super(init); (Object as any).assign(this, init); }
}

TypeScript CustomerInfoRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /api/CustomerInfo HTTP/1.1 
Host: active-ewebservice.biz 
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"Customer":{"Pk":0,"Acct":0,"Last":"String","Name":"String","Addr1":"String","Addr2":"String","City":"String","St":"String","Zip":"String","Phone":"String","Email":"String","OpenInvoices":false,"RentalActivity":false,"StLoc":"String","Hold":false,"Barcode":"String","Color":0,"DependantInfo":[{"Name":"String","OnlineId":"String","SchoolDistrict":"String","School":"String","Id":0}],"AdditionalDetails":{"Notes":"String","CustomerDefault":{"Id":0,"Desc":"String","ShortDesc":"String"},"TaxAuthority":{"Id":0,"Desc":"String","ShortDesc":"String"},"CanCharge":false,"PopupNotes":"String","DlNumber":"String","Phone2":"String","Phone3":"String","Phone4":"String","Location":{"Id":0,"Desc":"String","ShortDesc":"String","Region":"String","Latitude":0,"Longitude":0,"InStorePickup":"String","Active":false,"CashSaleAcct":0}},"MatchedOn":"String"},"DiscountInfo":{"AccessoryInventory":0,"SerializedInventory":0,"ShortTermRental":0,"NonInventory":0,"Labor":0,"MediaInventory":0,"CategoryLevelDiscounts":[{"Category":0,"SubCategory":0,"DiscountType":"String","DiscountAmount":0}],"PriceLevel":"String"},"Memberships":[{"Description":"String","TeeLevel":0,"WebTeeLevel":0,"StationLevel":0}],"Emails":[{"Description":"String","Email":"String","Method":"String","Type":"String"}],"Attributes":[{"Name":"String","Tag":"String","Value":"String"}],"Status":{"StatusCode":"String","Login":"String","ErrorCode":"String","ErrorDisplayText":"String","ErrorMessage":"String","DomainName":"String","IpAddress":"String"}}