Below is the info about the "CUSTOMER LIST ENDPOINT" for the CoreCommerce API.


The Request:


<?xml version="1.0" encoding="utf-8"?>
<Request version="1.0">
<Authentication>
<Username></Username>
<Password></Password>
<StoreName></StoreName>
<XmlKey></XmlKey>
</Authentication>
<Action>ACTION_TYPE_CUSTOMER_LIST</Action>
<Limit>1</Limit>
<Skip></Skip>
<SearchCriteria type="Search Criteria Type">
<Names>
<Name type="Address Types">
<First>Jack</First>
<Last>Shepherd</Last>
</Name>
<Name type="Address Types">
<First>Kate</First>
<Last>Austen</Last>
</Name>
</Names>
<Ids>
<Id>3</Id>
</Ids>
<CustomerStrings>
<CustomerString><![CDATA[5gfkom5489jrgeiun65yijntrg89gfbiun]]></CustomerString>
</CustomerStrings>
<Emails>
<Email><![CDATA[test@tester.com]]></Email>
</Emails>
</SearchCriteria>
</Request>


Below is a chart of the definitions of what is in the above request, and what each search term means:


Authentication and Fields


NameReqExample ValueComments
UsernameY"admin" or "mystorename"You create this value inside your admin under Settings->Store API. The value you set there inside your CoreCommerce Admin Panel is the value you use here.
PasswordYAn alphanumeric string that is hard to guess (i.e. "MyPassWord1!")You create this value inside your admin under Settings->Store API. The value you set there inside your CoreCommerce Admin Panel is the value you use here.
XML KeyYA long string to further add to the security of your API connection (i.e. "FY3D57THY32HTC3748TRC38H74TR")You create this value inside your admin under Settings->Store API. The value you set there inside your CoreCommerce Admin Panel is the value you use here.
ActionYACTION_TYPE_CUSTOMER_ADD
 This is telling the API which endpoint you want to work with. In this case it is ACTION_TYPE_CUSTOMER_ADD
LimitY"1" "100"This tells the API how many results to limit the response to. If you use 1 it will return a max of 1 customer based on the search criteria. If you use 100, it will return a max of 100 customers depending on the search criteria.
SkipY'10" "50"This is whether you want the system to skip records or not in the response. Its like saying "skip the first 10" or "skip the first 50"
SearchCriteria

"Exact" or "Like"This is the opening node for what you want to search for. There are 2 "types" you can use for the search, "Exact" or "Like". Exact will try to find exact matches for what you pass in the request. Like will try to find "Like" matches. Where you see "Search Criteria Type" in the request, is where you would enter "Exact" or "Like". 


Search by Name:


NameReqExample ValueComments
Names

Opening Node for Name Search. You can search for multiple "names" by specifying a single Name node (see below) for each name you want to include in the search. 
Name

Opening Node for a single "First/Last Name" combo search
FirstNameY"Joe"The first name of the customer you want to search for
LastNameY"Williams"The last name of the customer you want to search for.


Search by ID:


NameReqExample ValueComments
Ids

This is the opening Tag for an ID search. This is the database ID of the customer. If you know this ID you can search for it. You can also search for multiple ID's by specifying a different ID node for each ID.
Id
"3" or "10"This is for a single Customer ID to search by. Each node will search for that specific ID. 


Search by Customer String:


NameReqExample ValueComments
CustomerStrings

Opening Node for Customer String Search. You can search for multiple "customer strings" by specifying a single CustomerString node (see below) for each string you want to include in the search. 
CustomerString
f4589hg9843gh4h0842hg024gh02hg425Opening Node for a single Customer String value. The Customer String is the long encrypted value that represents that customer. It changes each time that customer logs in. If you know this value from the admin or from any exports you did, you can search by it. It can also be used in combo with other Endpoints. Example: You use the ORDER LIST ENDPOINT and get the Customer String back from which customer was tied to that order. Then you can use this Endpoint and do a list search for that specific customer string so you ensure you grab the details of the proper customer.


Search by Customer Email Address:


NameReqExample ValueComments
Emails

Opening Node for Email Addressg Search. You can search for multiple email addresses by specifying a single Email node (see below) for each email you want to include in the search. 
Email
f4589hg9843gh4h0842hg024gh02hg425Opening Node for a single Email Address value.



The Response:


<?xml version="1.0" encoding="utf-8"?>
<Response>
<Status>Status Code List</Status>
<Code>Code List</Code>
<Message>Message List</Message>
<List length="1" possibleLength="100">
<Customer id="5">
<CustomerString><![CDATA[5gfkom5489jrgeiun65yijntrg89gfbiun]]></CustomerString>
<BillingSameAsShipping>Boolean Types</BillingSameAsShipping>
<Address>
<Company><![CDATA[Lost & Found Inc.]]></Company>
<FirstName><![CDATA[Jack]]></FirstName>
<LastName><![CDATA[Shepherd]]></LastName>
<Address1><![CDATA[144 SE Parkway]]></Address1>
<Address2><![CDATA[Ste 260]]></Address2>
<City><![CDATA[Franklin]]></City>
<State><![CDATA[TN]]></State>
<Zip><![CDATA[37064-7829]]></Zip>
<Country><![CDATA[US]]></Country>
<County><![CDATA[Williamson]]></County>
<Email><![CDATA[jack.shepherd@lostandfound.com]]></Email>
</Address>
<ShippingAddress>
<Company><![CDATA[Lost & Found Inc.]]></Company>
<FirstName><![CDATA[Kate]]></FirstName>
<LastName><![CDATA[Austen]]></LastName>
<Address1><![CDATA[144 SE Parkway]]></Address1>
<Address2><![CDATA[Suite 260]]></Address2>
<City><![CDATA[Franklin]]></City>
<State><![CDATA[TN]]></State>
<Zip><![CDATA[37064-7829]]></Zip>
<Country><![CDATA[US]]></Country>
<County><![CDATA[Williamson]]></County>
<Email><![CDATA[kate.austen@lostandfound.com]]></Email>
</ShippingAddress>
<CustomerGroupId>5</CustomerGroupId>
<Phone><![CDATA[615-555-1212]]></Phone>
<Fax><![CDATA[615-555-1234]]></Fax>
<InternalNumber><![CDATA[4x8y15z16a23b42]]></InternalNumber>
<HowHeardAbout><![CDATA[Our friend Jacob]]></HowHeardAbout>
<Password><![CDATA[abc123]]></Password>
<PasswordHint><![CDATA[abc+3]]></PasswordHint>
<Memo><![CDATA[Don't forget to include the first aid kit.]]></Memo>
<Created>
<UnixTimeStamp>1235156691</UnixTimeStamp>
<Day>20</Day>
<Month>02</Month>
<Year>2009</Year>
<Hour>13</Hour>
<Minute>04</Minute>
<Second>51</Second>
</Created>
<LastUpdated>
<UnixTimeStamp>1257793665</UnixTimeStamp>
<Day>09</Day>
<Month>11</Month>
<Year>2009</Year>
<Hour>13</Hour>
<Minute>07</Minute>
<Second>45</Second>
</LastUpdated>
<WholesaleDiscount><![CDATA[10]]></WholesaleDiscount>
<TaxExempt>Boolean Types</TaxExempt>
<FreeShipping>Boolean Types</FreeShipping>
<QuickbooksId><![CDATA[12345]]></QuickbooksId>
<QuickbooksExportId><![CDATA[12345]]></QuickbooksExportId>
<StoneEdgeExported>Boolean Types</StoneEdgeExported>
<RemoteCountry>US</RemoteCountry>
<CustomFields length="1">
<CustomField id="62">
<Name><![CDATA[Age]]></Name>
<Value><![CDATA[23]]></Value>
</CustomField>
</CustomFields>
<MailingLists length="1">
<MailingList id="1">
<Name><![CDATA[Beta Internal]]></Name>
<PublicName><![CDATA[Beta Public]]></PublicName>
</MailingList>
</MailingLists>
<Status>Customer Status List</Status>
<RewardPoints><![CDATA[15]]></RewardPoints>
<ReferAFriendCustomer id="2"></ReferAFriendCustomer>
</Customer>
</List>
</Response>


NameExample ValueComments
Status
SUCCESS_CODE means it was successful. Anything other than this means it failed.
Code
"200" is a valid response and means it was successful and executed the request you made properly. Anything other than "200" means there was an error.
Messages
This will be the message from the API telling you what the issue was IF it failed.
List
This will show you the list of customers it successfully added. You will only see this IF you get a "200" success response code.
Customerid="3"This is the database ID of the customer
CustomerString5gfkom5489jrgeiun65yijntrg89gfbiun
The Customer String of the customer. This changes each time the customer logs in or out of their account, but if you are doing combo API calls it can be helpful to make sure you have the exact customer you are wanting.
BillingSameAsShipping
Y or NDoes this customer have it set to assume the Shipping Address and Billing Address match? Yes or No.
Address
The Billing address of the customer
CompanyLost and Found Inc.The Billing Company Name 
FirstNameJackThe Billing First Name
LastNameShepardThe Billing Last Name
Address1144 SE ParkwayThe Billing Address 1
Address2Suite 200The Billing Address 2
CityFranklinThe Billing City
StateTNThe Billing State
Zip37064The Billing Zip/Postal Code
CountryUSThe Billing Country
CountyWilliamsonThe Billing County
Emailjack@iamlost.comEmail Address
ShippingAddress
The Shipping address of the customer
CompanyLost and Found Inc.The Shipping Company Name 
FirstNameJackThe Shipping First Name
LastNameShepardThe Shipping Last Name
Address1144 SE ParkwayThe Shipping Address 1
Address2Suite 200The Shipping Address 2
CityFranklinThe Shipping City
StateTNThe Shipping State
Zip37064The Shipping Zip/Postal Code
CountryUSThe Shipping Country
CountyWilliamsonThe Shipping County
Emailjack@iamlost.comThe Shipping Email Address
CustomerGroupId5The ID of the customer group this customer is tied to. You can view/manage Customer Groups in your admin to get these ID numbers.
Phone615-790-0823The phone number of the customer
Fax615-790-0824The fax number of the customer.
InternalNumber12345The Internal Number of the Customer. For more info on what this field is for, see the "CUSTOMER ADD ENDPOINT DOCUMENTATION"
HowHeardAboutWebThe answer to "How did you hear about us?" for this customer.
PasswordpasswordThe customer's password. 
Created
The next 6 lines within the created node will breakout the exact date and time the customer record was added into CoreCommerce.
UnixTimeStamp1235156691The Unix Timestamp
Day20The Day the customer was created.
Month02The Month the customer was created.
Year2019The Year the customer was created.
Hour13The hour the customer was created.
Minute04The minute the customer was created.
Second51The second the customer was created.
LastUpdated
The next 6 lines within the lastUpdated node will breakout the exact date and time the customer record was last updated or changed within CoreCommerce.
UnixTimeStamp1235156691The Unix Timestamp
Day20The Day the customer was last updated.
Month02The Month the customer was last updated.
Year2019The Year the customer was last updated.
Hour13The hour the customer was last updated.
Minute04The minute the customer was last updated.
Second51The second the customer was last updated.
WholesaleDisount10The percentage discount this customer gets. If they get none, this will say 0. 
TaxExemptY or NIf the customer is tax exempt, it will say Y, otherwise N.
FreeShippingY or NIf the customer gets a Free Shipping option during checkout, this will say Y, otherwise N.
QuickbooksID12345The Quickbooks ID of the customer. If you use our Quickbooks integration, this is where that ID comes from. 
QuickbooksExportID12345The Quickbooks Export ID of the customer. If is a different ID number and is also generated by Quickbooks.
StoneEdgeExportedY or NHas the customer been exported to Stone Edge? If so, Y, otherwise, N. 
remoteCountryUSThe remote country. It will be a 2 letter abbreviation.
StatusActive or PendingThe status of the customer. If you have the "Customer Approval" feature enabled, it can say either Active or  Pending. Otherwise if that feature is disabled, it will always say Active.
RewardPoints50The amount of reward points the customer has.
ReferaFriendCustomer
If the customer has referred any other customers, it will tell you who here


Custom Fields:


NameExample ValueComments
CustomFields
length = "1"The opening Node for Custom Fields that are saved for this customer. If there is more than 1, you will see that number defined as the "length". 
CustomField
62The opening tag of the Custom Field Node for a single Custom Field. The "id" value is the database ID of the custom field answer for that customer.
NameAgeThe name of the custom field. 
Value23The value of the custom field for that customer. 


Mailing Lists:


NameExample ValueComments
MailingLists
length = "1"The opening Node for Mailing List that are saved for this customer. If there is more than 1, you will see that number defined as the "length". 
MailingList
1The opening tag of the Mailing List Node for a single Mailing List. The "id" value is the database ID of the mailing list this customer is part of.
NameVIPSThe name of the mailing list
ValueWholesaleThe public name (nickname) of the mailing list, if you added one.