Introduction
Create, update, and search customers in the loyalty engine.
Error Codes
The Skechers Web Service uses conventional HTTP response codes to indicate the success or failure of an API request. When a request is valid, but does not complete successfully (e.g. user not found), a response is given containing a specific error code and error message about the point of failure.
Response Parameters
-
errorCode: string
An error code that can be referenced in the table to the right. Refer to this error code when identifying errors. -
errorMessage: string
A human-readable message providing more details about this error.
Codes
00001 | Request Timeout. |
---|---|
00002 | Invalid form data. |
00004 | Third party API is down. |
01000 | CRM Service is currently down. |
01001 | CRM Service timeout. |
01002 | Could not retrieve rewards for that CRM ID. |
01003 | Could not redeem rewards. |
01004 | Invalid CRM User data, CRM User not added. |
01005 | Invalid CRM User cardnumber or webid, this data was not saved. |
01007 | Invalid CRM User data or CRM Address data, data not updated. |
01014 | Could not generate new card number. |
01015 | Invalid card number. |
01016 | Invalid CRM ID. |
01017 | Invalid data, could not reverse redemption |
01019 | Invalid ECode. |
01020 | Unknown CRM Error. |
01021 | Not enough points to redeem. |
01023 | Could not find sale by that E-Code. |
01024 | ECode credit already claimed. |
01026 | Retry redemption again. |
01031 | User already exists. |
Add Retail User (Apropos/Aptos)
Create POS User in SessionM.
Request Parameters
-
email: string
Email address. -
phone: string
Phone number, 10 digits, numeric string only
Response Parameters
-
result: string
Newly generated Crm ID of customer.
Example Request
curl \
-X POST \
-H "Content-type: application/json" \
-d '{"apikey":"AY8ZRNUHN2I4MNM5JQDDWVBXWQBEUH","request":{"email":"skxtest400@skx.com","phone":"1234567890","storenum":"1"}} ' http://retailapi-skechers-com.dev.skechers.com/api/crm/user/create
Example Response
Live Response
Adv Search Users (Aptos)
Search user by crmId, email, phone, first & last name, external id(B2B corp code), employeeId and employee file number, this API replaces deprecated Search Users and Search Employee APIs, the searching result includes user detailed tier info from SessionM.
Request Parameters
-
crmid: string
optionalLoyalty number, SessionM's external id with prefix loyl. -
phone: string
optionalPhone number, phone number can be either with or without dialing code. -
email: string
optionalEmail. (minLength = 1, maxLength = 65) -
firstname: string
optionalFirst name. (minLength = 1, maxLength = 40) -
lastname: string
optionalLast name. (minLength = 1, maxLength = 40) -
employeeid: string
optionalSkechers employee id.(minLength = 1, maxLength = 40) -
filenumber: string
optionalSkechers employee file number. -
externalid: string
optionalB2B biz corporate code.
Response Parameters
-
sessionmid: string
An unique id from SessionM. -
email: string
SessionM member email. -
phone: string
SessionM member phone number. -
webid: string
An unique id for Skechers's customer. -
eliteNumber: string
An unique number for Skechers's SessionM member. -
firstname: string
SessionM member first name. -
lastname: string
SessionM member last name. -
employeeid: string
Skechers employee id. -
filenumber: string
Skechers employee's file number. -
points: int
Current available points. -
gcvalue: string
Current gift card amount available. If gc = 10, customer can redeem rewards to get a $10 gift card. -
smuser: SMUser object
User raw data from SessionM.
Example Request
curl \
-X POST \
-H "Content-type: application/json" \
-d '{"apikey":"AY8ZRNUHN2I4MNM5JQDDWVBXWQBEUH","request":{"phone":"3104567890"}} ' http://retailapi-skechers-com.dev.skechers.com/api/v2/crm/advSearchUser
Example Response
Live Response
Create Employee
Create Skechers Employee in SessionM.
Request Parameters
-
employeeid: string
Unique id generated by SuccessFactor for every employee. -
filenumber: string
optionalUnique generated by SuccessFactor for every employee, mostly employeeid is same as filenumber. -
email: string
optionalAn email address in SuccessFactor for every employee. -
firstname: string
optionalEmployee's first name. -
lastname: string
optionalEmployee's last name. -
country: string
optionalCountry for employee is located. -
employeetitle: string
optionalEmployee's title. -
employeelocation: string
optionalEmployee's working location. -
isemployee: boolean
optionalSkechers's employee. -
employeetier: string
optionalEmployee's tier that the employee will be assigned to. An employee can be assigned to one of the following tiers by passing in the value provided inside the parenthesis: Non-Management Employee (NON_MANAGEMENT_EMPLOYEE), Management Employee(MANAGEMENT_EMPLOYEE), and Directors and Above(DIRECTORS_AND_ABOVE)
Response Parameters
-
sessionmid: string
Unique alphanumeric SessionM generates for every SessionM account. -
externalIds: list
List of combination of external Id and external type. -
externalIds.externalId: string
Formatted by SessionM defined external type followed by numeric number. -
externalIds.externalIdType: string
SessionM defined external type such as EMPLOYEEID, FILENUMBER, WEBID etc ... -
employeeid: string
Employee's employee id consisted in create employee request. -
filenum: string
Employee's file number consisted in create employee request, if not in create employee request, an employee id is returned as file number. -
phone: string
Employee's phone number. -
email: string
Employee's email consisted in create employee request. -
firstname: string
Employee's first name consisted in create employee request. -
lastname: string
Employee's last name consisted in create employee request. -
country: string
Employee's working country consisted in create employee request. -
employeetitle: string
Employee's title consisted in create employee request. -
employeelocation: string
Employee's location consisted in create employee request. -
isemployee: boolean
Example Request
curl \
-X POST \
-H "Content-type: application/json" \
-d '{"apikey":"AY8ZRNUHN2I4MNM5JQDDWVBXWQBEUH","request":{"email":"amyr@skechers.com","employeeid":"0000001","firstname":"amy","employeetitle":"tester","employeelocation":"headquarter","country":"usa","isemployee":true,"employeetier":"NON_MANAGEMENT_EMPLOYEE","lastname":"ruan","filenumber":"111119"}} ' http://retailapi-skechers-com.dev.skechers.com/api/crm/employee/create
Example Response
Live Response
Credit By Ecode (POS - NotInUse)
Credit in-store purchase by ecode
Request Parameters
-
ecode: string
optionaleCode. Non-empty text. -
cardnum: string
optionalUser's CRM ID, known in Epicor as Customer Number (customer_no), maxLength = 20
Response Parameters
-
crmid: string
User's CRM ID, known in Epicor as Customer Number (customer_no), maxLength = 20 -
email: string
Email. (minLength = 1, maxLength = 20) -
phone: string
Phone number. -
firstname: string
First name. (minLength = 1, maxLength = 20) -
cardnum: string
Elite member number. -
lastname: string
Last name. (minLength = 1, maxLength = 20) -
points: int
Current points. -
gcvalue: int
Current gift card amount available. If gc = 10, customer can redeem rewards to get a $10 gift card.
Example Request
curl \
-X POST \
-H "Content-type: application/json" \
-d '{"apikey":"AY8ZRNUHN2I4MNM5JQDDWVBXWQBEUH","request":{"ecode":"1BF9DP8KRKFNXQ","cardnum":"9003444555"}} ' http://retailapi-skechers-com.dev.skechers.com/api/crm/creditTransaction
Example Response
Live Response
Credit In-Store Purchase (POS - NotInUse)
Credit in-store purchase by ecode
Request Parameters
-
ecode: string
optionaleCode. Non-empty text. -
crmid: string
optionalUser's CRM ID, known in Epicor as Customer Number (customer_no), maxLength = 20
Response Parameters
-
customerid: string
User's CRM ID, known in Epicor as Customer Number (customer_no), maxLength = 20 -
refid: string
eCode. Non-empty text.
Example Request
curl \
-X POST \
-H "Content-type: application/json" \
-d '{"apikey":"AY8ZRNUHN2I4MNM5JQDDWVBXWQBEUH","request":{"ecode":"0990201000356010720","crmid":"9003444555"}} ' http://retailapi-skechers-com.dev.skechers.com/api/crm/credit/instore
Example Response
Live Response
Delete Employee
Delete Skechers Employee in SessionM.
Request Parameters
-
employeeid: string
Existed employee id in SessionM.
Response Parameters
-
result: string
Result of delete.
Example Request
curl \
-X POST \
-H "Content-type: application/json" \
-d '{"apikey":"AY8ZRNUHN2I4MNM5JQDDWVBXWQBEUH","request":{"employeeid":"0000001"}} ' http://retailapi-skechers-com.dev.skechers.com/api/crm/employee/delete
Example Response
Live Response
Generate New Card(s) (NotInUse)
Bulk generate card numbers. Supply a quantity and the API will return a list of card numbers.
Request Parameters
-
quantity: int
Quantity of card numbers expected back. -
email: string
optionalOptional. Recipient email of attachment. If email is specified, email will be sent. Otherwise, the list of cards will be returned. -
csv: boolean
optionalYes/No: Email csv of cardnumbers. -
txt: boolean
optionalYes/No: Email text of cardnumbers.
Example Request
curl \
-X POST \
-H "Content-type: application/json" \
-d '{"apikey":"AY8ZRNUHN2I4MNM5JQDDWVBXWQBEUH","request":{"quantity":1}} ' http://retailapi-skechers-com.dev.skechers.com/api/crm/gencards
Example Response
Live Response
Redeem Points (NotInUse)
Use this API to redeem points for a reward certificate.
Request Parameters
-
crmid: string
User's CRM ID, known in Epicor as Customer Number (customer_no).
Response Parameters
-
cardnum: string
The card number. -
pin: string
The pin number. -
orderitemid: int
The order item ID of the reward certificate generated. -
amount: int
The amount of the certificate generated. -
expiration: long
UNIX timestamp in milliseconds of the expiration date of this certificate. -
createdate: long
UNIX timestamp in milliseconds of the creation date of this certificate. -
points: int
The points deducted to generate this certificate.
Example Request
curl \
-X POST \
-H "Content-type: application/json" \
-d '{"apikey":"AY8ZRNUHN2I4MNM5JQDDWVBXWQBEUH","request":{"crmid":"9010052660"}} ' http://retailapi-skechers-com.dev.skechers.com/api/crm/retail/redeem
Example Response
Live Response
Redeem Points (Web - CA/UK/DE/ESP)
Use this API to redeem points for a reward certificate.
Request Parameters
-
userid: int
Web User's ID.
Response Parameters
-
cardnum: string
The card number. -
pin: string
The pin number. -
orderitemid: int
The order item ID of the reward certificate generated. -
amount: int
The amount of the certificate generated. -
expiration: long
UNIX timestamp in milliseconds of the expiration date of this certificate. -
createdate: long
UNIX timestamp in milliseconds of the creation date of this certificate. -
points: int
The points deducted to generate this certificate.
Example Request
curl \
-X POST \
-H "Content-type: application/json" \
-d '{"apikey":"AY8ZRNUHN2I4MNM5JQDDWVBXWQBEUH","request":{"userid":15}} ' http://retailapi-skechers-com.dev.skechers.com/api/crm/redeem
Example Response
Live Response
Redeem Points By External ID(Web - US)
Use this API to redeem points for a reward certificate.
Request Parameters
-
externaluserid: String
Web User's ID. -
subscriberkey: String
Web User's customer relationship management ID. -
email: String
Web User's first name. -
phone: String
optionalWeb User's phone number. -
firstname: String
Web User's ID. -
lastname: String
Web User's last name.
Response Parameters
-
cardnum: string
The card number. -
pin: string
The pin number. -
orderitemid: String
The order item ID of the reward certificate generated. -
amount: int
The amount of the certificate generated. -
expiration: long
UNIX timestamp in milliseconds of the expiration date of this certificate. -
createdate: long
UNIX timestamp in milliseconds of the creation date of this certificate. -
points: int
The points deducted to generate this certificate.
Example Request
curl \
-X POST \
-H "Content-type: application/json" \
-d '{"apikey":"AY8ZRNUHN2I4MNM5JQDDWVBXWQBEUH","request":{"email":"jcrisan@skechers.com","externaluserid":"63409054","firstname":"John","lastname":"Crisanto","subscriberkey":"7000003180","phone":"9234567890"}} ' http://retailapi-skechers-com.dev.skechers.com/api/v2/crm/redeem
Example Response
Live Response
Redeem Points for MAO
Use this API to redeem points for a reward certificate.
Request Parameters
-
orderid: String
Web Order ID. -
externaluserid: String
Web User's ID. -
subscriberkey: String
Web User's customer relationship management ID. -
email: String
Web User's first name. -
phone: String
optionalWeb User's phone number. -
firstname: String
Web User's ID. -
lastname: String
Web User's last name.
Response Parameters
-
cardnum: string
The card number. -
pin: string
The pin number. -
orderitemid: int
The order item ID of the reward certificate generated. -
amount: int
The amount of the certificate generated. -
expiration: long
UNIX timestamp in milliseconds of the expiration date of this certificate. -
createdate: long
UNIX timestamp in milliseconds of the creation date of this certificate. -
points: int
The points deducted to generate this certificate.
Example Request
curl \
-X POST \
-H "Content-type: application/json" \
-d '{"apikey":"AY8ZRNUHN2I4MNM5JQDDWVBXWQBEUH","request":{"email":"AMYRUK1@SKX.COM","firstname":"test","userid":"63508275","lastname":"test","orderid":"23232323","subscriberkey":"6200017759","phone":"9234567890"}} ' http://retailapi-skechers-com.dev.skechers.com/api/v3/crm/redeem
Example Response
Live Response
Search Users(deprecated)
Search Epicor's database for customers by criteria.
Request Parameters
-
crmid: string
optionalUser's CRM ID, known in Epicor as Customer Number (customer_no), maxLength = 20 -
email: string
optionalEmail. (minLength = 1, maxLength = 20) -
phone: string
optionalPhone number or (deprecated) elite member card number. -
firstname: string
optionalFirst name. (minLength = 1, maxLength = 20) -
lastname: string
optionalLast name. (minLength = 1, maxLength = 20)
Response Parameters
-
crmid: string
User's CRM ID, known in Epicor as Customer Number (customer_no), maxLength = 20 -
email: string
Email. (minLength = 1, maxLength = 20) -
phone: string
Phone number. -
firstname: string
First name. (minLength = 1, maxLength = 20) -
cardnum: string
Elite member number. -
lastname: string
Last name. (minLength = 1, maxLength = 20) -
points: int
Current points. -
gcvalue: int
Current gift card amount available. If gc = 10, customer can redeem rewards to get a $10 gift card.
Example Request
curl \
-X POST \
-H "Content-type: application/json" \
-d '{"apikey":"AY8ZRNUHN2I4MNM5JQDDWVBXWQBEUH","request":{"phone":"9981234567"}} ' http://retailapi-skechers-com.dev.skechers.com/api/v2/crm/search
Example Response
Live Response
SearchEmployees(deprecated)
Search SessionM database for employees by criteria.
Request Parameters
-
employeeid: string
optionalUser's Employee ID/File Number -
filenumber: string
optionalUser's Employee File Number -
email: string
optionalEmail. (minLength = 1, maxLength = 20) -
phone: string
optionalPhone number or (deprecated) elite member card number.
Response Parameters
-
employeeid: string
User's Employee ID -
email: string
Email. (minLength = 1, maxLength = 20) -
phone: string
Phone number. -
firstname: string
First name. (minLength = 1, maxLength = 20) -
lastname: string
Last name. (minLength = 1, maxLength = 20) -
filenum: string
File number of the employee. -
externalIds: list
External ids of the employee.
Example Request
curl \
-X POST \
-H "Content-type: application/json" \
-d '{"apikey":"AY8ZRNUHN2I4MNM5JQDDWVBXWQBEUH","request":{"phone":"9981234567"}} ' http://retailapi-skechers-com.dev.skechers.com/api/v2/crm/search/employee
Example Response
Live Response
Sync CRM User (NotInUse)
Syncs user from Web to Epicor.
Request Parameters
-
crmid: string
The 10-digit CRM ID of the user.
Example Request
curl \
-X POST \
-H "Content-type: application/json" \
-d '{"apikey":"AY8ZRNUHN2I4MNM5JQDDWVBXWQBEUH","request":{"userid":4129266}} ' http://retailapi-skechers-com.dev.skechers.com/api/crm/user/sync
Example Response
Live Response
Sync Transaction (NotInUse)
Syncs transaction to SessionM.
Request Parameters
-
crmid: string
SessionM LOYL or SFMC Subscriber Key. -
invoiceNum: string
Order ID or Invoice Number. -
date: string
Expecting date in the format of yyyyMMdd. -
store: string
Store number, not padded with zeros. -
payments: array[string]
Array of payment type, such as VISA. -
isReturn: boolean
Is this order a return or a purchase? -
items.upc: string
UPC or Sku number. -
items.description: string
Product name. -
items.amount: string
Item price after discount but before tax and shipping. -
items.discounts[0].amount: string
Item discount amount. -
items.discounts[0].description: string
Item discount description.
Response Parameters
-
orderid: string
Item Order ID or Invoice Number. -
delta: int
Points delta.
Example Request
curl \
-X POST \
-H "Content-type: application/json" \
-d '{"apikey":"AY8ZRNUHN2I4MNM5JQDDWVBXWQBEUH","request":{"payments":["VISA"],"isReturn":false,"items":[{"upc":"193113404053","description":"Skechers On the GO 600 - Breezy Sprints","amount":25.6,"discounts":[{"amount":6.4,"description":"APRIL20"}]}],"store":"1","crmid":"920000130114","date":"20181108","invoiceNum":"22222222"}} ' http://retailapi-skechers-com.dev.skechers.com/api/crm/order/sync
Example Response
Live Response
Sync Transaction By Order ID (Web)
Syncs transaction from Web DB to SessionM. This will credit new web purchases and deduct new web returns. Becomes a no-op if there's nothing new to sync.
Request Parameters
-
orderid: number
Web Order ID to be synced.
Example Request
curl \
-X POST \
-H "Content-type: application/json" \
-d '{"apikey":"AY8ZRNUHN2I4MNM5JQDDWVBXWQBEUH","request":{"orderid":123}} ' http://retailapi-skechers-com.dev.skechers.comapi/crm/order/syncByID
Example Response
Live Response
Update Employee
Update Skechers Employee in SessionM.
Request Parameters
-
origemployeeid: string
Existed employee id in SessionM. -
filenumber: string
optionalUpdated employee's file number. -
email: string
optionalUpdated employee's email. -
firstname: string
optionalUpdated employee's first name. -
lastname: string
optionalUpdated employee's last name. -
country: string
optionalUpdated employee's country. -
employeetitle: string
optionalUpdated employee's title. -
employeelocation: string
optionalUpdated employee's location. -
isemployee: boolean
optionalUpdated employee status. -
employeetier: string
optionalEmployee's tier that the employee will be assigned to. An employee can be assigned to one of the following tiers by passing in the value provided inside the parenthesis: Non-Management Employee (NON_MANAGEMENT_EMPLOYEE), Management Employee(MANAGEMENT_EMPLOYEE), and Directors and Above(DIRECTORS_AND_ABOVE)
Response Parameters
-
sessionmid: string
Unique alphanumeric SessionM generates for every SessionM account. -
externalIds: list
List of combination of external Id and external type. -
externalIds.externalId: string
Formatted by SessionM defined external type followed by numeric number. -
externalIds.externalIdType: string
SessionM defined external type such as EMPLOYEEID, FILENUMBER, WEBID etc ... -
filenum: string
Employee's file number passed from update employee request. -
phone: string
Employee's phone number. -
email: string
Employee's email passed from update employee request. -
firstname: string
Employee's first name passed from update employee request. -
lastname: string
Employee's last name passed from update employee request. -
country: string
Employee's working country passed from update employee request. -
employeetitle: string
Employee's title passed from update employee request. -
employeelocation: string
Employee's location passed from in update employee request. -
isemployee: boolean
Example Request
curl \
-X POST \
-H "Content-type: application/json" \
-d '{"apikey":"AY8ZRNUHN2I4MNM5JQDDWVBXWQBEUH","request":{"email":"amyr@skechers.com","firstname":"amy","employeetitle":"tester","employeelocation":"headquarter","country":"usa","origemployeeid":"0000001","isemployee":true,"employeetier":"NON_MANAGEMENT_EMPLOYEE","lastname":"ruan","filenumber":"111119"}} ' http://retailapi-skechers-com.dev.skechers.com/api/crm/employee/update
Example Response
Live Response
Update Phone # (Apropos)
Update a customer's phone # if it's null.
Request Parameters
-
crmid: string
The 10-digit CRM ID of the user. -
phone: string
Phone number. Min length = 10. String of numbers only. No formatting.
Example Request
curl \
-X POST \
-H "Content-type: application/json" \
-d '{"apikey":"AY8ZRNUHN2I4MNM5JQDDWVBXWQBEUH","request":{"crmid":"9010052904","phone":"9981234567"}} ' http://retailapi-skechers-com.dev.skechers.com/api/crm/user/update/phone
Example Response
Live Response
Validate Elite Details (Apropos)
Validates elite member info
Request Parameters
-
phone: string
optionalPhone number. Min length = 10. String of numbers only. No formatting. -
cardnum: string
optionalSkechers Elite Card Number, maxLength = 10.
Response Parameters
-
isValidPhone: boolean
Confirm whether phone is valid or not. -
isValidCard: boolean
Confirm whether cardnum is valid or not.
Example Request
curl \
-X POST \
-H "Content-type: application/json" \
-d '{"apikey":"AY8ZRNUHN2I4MNM5JQDDWVBXWQBEUH","request":{"cardnum":"AK0OMZ","phone":"9981234567"}} ' http://retailapi-skechers-com.dev.skechers.com/api/crm/validation