Introduction
Welcome to ShopYourWay - Rewards system API documentation.
Pay Your Way - OnBoarding
Introduction
Pay Your Way (PYW) provides a payment facility for any online purchase transaction. It provides an instant credit card apply & use facility along with using various other credit cards. PYW also provides payment facility using the Shop Your Way (SYW) points
Pre-Request
- Register Merchant into our ShopYourWay's OAuth System. Please refer ShopYourWay - OAuth Security
Pay Your Way Installation Guide.
- Please refer the attached PDF for Installation Guide Pay Your Way - Installation Guide
ShopYourWay - OAuth Security
Introduction
All ShopYourWay Systems such as Rewards, Checkout etc.. APIs are using OAuth API Security.
- Our ShopYourWay Systems uses OAuth 2.0 implementation to allow parties to access its API.
- The partners need to inform in advance about all the prod and non-prod servers that are being used (IP addresses and domains).
- The partners need to register with our OAuth System.
- After this, the partner will need to generate a JWT token and interface with our OAuth Servers. OAuth server will then will present back an access token.
- The client id and the access token needs to be attached in HTTP headers while calling our APIs such as Rewards, Checkout, Payment etc..
OAuth - Certificate Creation
ShopYourWay - Rewards system access requires Client registration is our ShopYourWay-OAuth system. OAuth registration requires CA Signed certificate. Here are 3 steps to create Certificate cnd get it signed by Certificate Authority (Public CA such as Symantec, GeoTrust, Comodo, Thawte, Digicert, GoDaddy, RapidSSL, Entrust, etc…)
- Create certificate which is consist of Public/Private key & CSR (Certificate Singing Request) using openssl tool. Plesae open command prompt (Windows) or terminal window (Mac) and make sure you have openssl tool installed if not then please install openssl command line tool.
- openssl req -out SYWOAUTHDEMO.csr -new -newkey rsa:2048 -nodes -days 365 -sha256 -keyout SYWOAUTHDEMO.key -subj "/C=US/ST=Illinois/L=Hoffman Estates/O=SYWOAUTHDEMO/OU=IT Department/CN=sywoauthdemo.com"
- Login to your prefereed Public CA website such as Symantec, GeoTrust, Comodo, Thawte, Digicert, GoDaddy, RapidSSL, Entrust, etc…
- There will be an option to upload the CSR File
- Once CA approves the certificate you should be able to download the signed certificate or you will an email from CA and email will have a link to download the signed certificate
- Follow the ShopYourWay - OAuth Registration via Portal steps to register your to ShopYourWay - OAuth System.
openssl command - Create Private/Public Key & CSR
openssl req -out SYWOAUTHDEMO.csr -new -newkey rsa:2048 -nodes -days 365 -sha256 -keyout SYWOAUTHDEMO.key -subj "/C=US/ST=Illinois/L=Hoffman Estates/O=SYWOAUTHDEMO/OU=IT Department/CN=sywoauthdemo.com"
OAuth - Registration via Portal
The section details steps to register as OAuth Client.
Pre-Request:-
- Work with ShopYourWay Team to mutually agreed Client_ID for Non Production & Production environment.
- Procure Certificate with following specification
- Algorithm: SHA256withRSA
- Validity: 1 Year or Less
- Key Size: 2048
- Certificate should be signed by known public signing authority example Verizon, Comodo, GoDaddy etc..
- Steps to Register:-
- Access OAuth Portal Login URL endpoint (Please refer respective environment URL Section)
- Click "Not-Yet-Registered" Link
- Fill in the details as below
- Client Name & Client ID - Example "EXT_PARTNER"
- Client Email - Example "partner@partner.com"
- Client Phone - Example "1111111111"
- Password - Example "random!#"
- Public Certificate - Copy Paste teh Public certificate content"
- Example:-
-----BEGIN CERTIFICATE----- MIIGDjCCA/agAwIBAgIQNoJef7WkgZN+9tFza7k8pjANBgkqhkiG9w0BAQwFADCB hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMjEy ..... .....
-----END CERTIFICATE-----
OAuth - Registration via API
- "noPasswordFlag" is an optional field to decide to register with/without passsword.
- "noPasswordFlag" - "true" means the system will set a random password. Once the client is approved the client can use of OAuth Portal's "Forgot Password" link to set a new password.
- "secretCodeFlag" is an optional field to decide to issue secret code in successful registration response or not.
- "secretCodeFlag" - "true" means the system will generate secret code and the same will be returned in API response. This secretcode will be used to Encrypt some of API parameters; such as constructing refId etc..
- "secretCodeFlag" - "false" means the system will not generate secret code and latter through our Portal you can login and generate secret code.
HTTP JSON Request - To Register WITH Password
{
"clientName": "EXT_PARTNER1",
"clientEmail": "partner@partner.com",
"clientId": "EXT_PARTNER1",
"phoneNumber": "1111111111",
"password": "adfdl*****!dafd",
"secretCodeFlag": "true",
"publicKey": "-----BEGIN CERTIFICATE-----\nMIIFsTCCBJmgAwIBAgIQbXUBs2MWE+I5MgBLNd8fljANBgkqhkiG9w0BAQsFADCB\nljELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxPDA6BgNV\nBAMTM0NPTU9ETyBSU0EgT3JnYW5pemF0aW9uIFZhbGlkYXRpb24gU2VjdXJlIFNl\ncnZlciBDQTAeFw0xNjA2MDkwMDAwMDBaFw0xNzA2MDkyMzU5NTlaMIGsMQswCQYD\nVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxGDAWBgNVBAcTD0hvZmZtYW4gRXN0\nYXRlczEZMBcGA1UEChMQU2VhcnMgQnJhbmRzIExMQzEgMB4GA1UECxMXMzUwMzYg\nLSBUZWxsdXJpZGUgKEFQSSkxETAPBgNVBAsTCEVsaXRlU1NMMSAwHgYDVQQDExdn\ndW5hLnFhLm9hdXRoLnNlYXJzLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC\nAQoCggEBAKuj897OYFNaHUdCQEoGxOKJ5fQMydf8lw81MAx3Rusvd34PvE9v5YiE\nmp2xMLHr4ZdXpmfNVNSDqUnSmvT4m6F2na6C0u6msxVMJ702bSd3LVAX00tOIZNL\nHdVTOvIf9W4pgBq3VPhU2yu2Yy4wkWv/XlPvrjbXIxMFHm/C7nL22Hj6IqZuID1Z\njTj+kyLx+TF0IZoxTQYxb1k0mx94gEhL6jZuxbIMEMeAowVynNcZa9U9wiUI74jn\n+3d2d0PabGrVY67KIBFeitnDpzdgmIOzXZQBKfsg8kl9kvusaGpX/9gKyQmHEJ/9\nmYb5NRNwfszQU3pSVpR2hzQai79I4NUCAwEAAaOCAeEwggHdMB8GA1UdIwQYMBaA\nFJrzK9rPrU+2L7sqSEgqErcbQsEkMB0GA1UdDgQWBBRbQQtogIcqDdC65Tt+Sle5\nXQmYEzAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggr\nBgEFBQcDAQYIKwYBBQUHAwIwUAYDVR0gBEkwRzA7BgwrBgEEAbIxAQIBAwQwKzAp\nBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNvbS9DUFMwCAYGZ4EM\nAQICMFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL0NP\nTU9ET1JTQU9yZ2FuaXphdGlvblZhbGlkYXRpb25TZWN1cmVTZXJ2ZXJDQS5jcmww\ngYsGCCsGAQUFBwEBBH8wfTBVBggrBgEFBQcwAoZJaHR0cDovL2NydC5jb21vZG9j\nYS5jb20vQ09NT0RPUlNBT3JnYW5pemF0aW9uVmFsaWRhdGlvblNlY3VyZVNlcnZl\nckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29tMCIG\nA1UdEQQbMBmCF2d1bmEucWEub2F1dGguc2VhcnMuY29tMA0GCSqGSIb3DQEBCwUA\nA4IBAQAzHXpavac0l+8P5qJyRsiK59s07Syqfc4cOGq+8Y0NCrHMfH5QkRMx/o0g\nX3kuUi1Ul10Xcvdy4n5/VJGSC5zn0OS/dlEPsJYJMoZZMz0Iew977HOPL9+Tr74K\n+Yrg+0fB9AJz5pf3GXorQwrzifpci2dSgH/UrYozMhvSnKk9yXxCJASncOWQOLz/\nAAP4LurBvfZH1FxTt0ivEyKA2SdQ9V1L6ddGm/IBK+2Cq2bQESG0+4ZiK8i+3yYh\ni90V9Qfgp6GLbCP7EjB8xY21X/Z5JUqHY5F593qZzQ0ckhF5fzhU/r26t0FYAlfi\nIYYMEi97o0PBNvgG3mAWCO1pMXWT\n-----END CERTIFICATE-----\n"
}
HTTP JSON Response
{"data":{"secretCodeID":null,"activeFlag":null,"secretCode":"XXXXGSF87DD2DE814343XXXXXXXXXA3DFDB47892468A42578D57DA95XXXX"},"status":"SUCCESS","message":"Registered client successfully","errors":null}
HTTP JSON Request - To Register WITHOUT Password
{
"clientName": "EXT_PARTNER1",
"clientEmail": "partner@partner.com",
"clientId": "EXT_PARTNER1",
"phoneNumber": "1111111111",
"noPasswordFlag": "true"
"secretCodeFlag": "true",
"publicKey": "-----BEGIN CERTIFICATE-----\nMIIFsTCCBJmgAwIBAgIQbXUBs2MWE+I5MgBLNd8fljANBgkqhkiG9w0BAQsFADCB\nljELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxPDA6BgNV\nBAMTM0NPTU9ETyBSU0EgT3JnYW5pemF0aW9uIFZhbGlkYXRpb24gU2VjdXJlIFNl\ncnZlciBDQTAeFw0xNjA2MDkwMDAwMDBaFw0xNzA2MDkyMzU5NTlaMIGsMQswCQYD\nVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxGDAWBgNVBAcTD0hvZmZtYW4gRXN0\nYXRlczEZMBcGA1UEChMQU2VhcnMgQnJhbmRzIExMQzEgMB4GA1UECxMXMzUwMzYg\nLSBUZWxsdXJpZGUgKEFQSSkxETAPBgNVBAsTCEVsaXRlU1NMMSAwHgYDVQQDExdn\ndW5hLnFhLm9hdXRoLnNlYXJzLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC\nAQoCggEBAKuj897OYFNaHUdCQEoGxOKJ5fQMydf8lw81MAx3Rusvd34PvE9v5YiE\nmp2xMLHr4ZdXpmfNVNSDqUnSmvT4m6F2na6C0u6msxVMJ702bSd3LVAX00tOIZNL\nHdVTOvIf9W4pgBq3VPhU2yu2Yy4wkWv/XlPvrjbXIxMFHm/C7nL22Hj6IqZuID1Z\njTj+kyLx+TF0IZoxTQYxb1k0mx94gEhL6jZuxbIMEMeAowVynNcZa9U9wiUI74jn\n+3d2d0PabGrVY67KIBFeitnDpzdgmIOzXZQBKfsg8kl9kvusaGpX/9gKyQmHEJ/9\nmYb5NRNwfszQU3pSVpR2hzQai79I4NUCAwEAAaOCAeEwggHdMB8GA1UdIwQYMBaA\nFJrzK9rPrU+2L7sqSEgqErcbQsEkMB0GA1UdDgQWBBRbQQtogIcqDdC65Tt+Sle5\nXQmYEzAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggr\nBgEFBQcDAQYIKwYBBQUHAwIwUAYDVR0gBEkwRzA7BgwrBgEEAbIxAQIBAwQwKzAp\nBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNvbS9DUFMwCAYGZ4EM\nAQICMFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL0NP\nTU9ET1JTQU9yZ2FuaXphdGlvblZhbGlkYXRpb25TZWN1cmVTZXJ2ZXJDQS5jcmww\ngYsGCCsGAQUFBwEBBH8wfTBVBggrBgEFBQcwAoZJaHR0cDovL2NydC5jb21vZG9j\nYS5jb20vQ09NT0RPUlNBT3JnYW5pemF0aW9uVmFsaWRhdGlvblNlY3VyZVNlcnZl\nckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29tMCIG\nA1UdEQQbMBmCF2d1bmEucWEub2F1dGguc2VhcnMuY29tMA0GCSqGSIb3DQEBCwUA\nA4IBAQAzHXpavac0l+8P5qJyRsiK59s07Syqfc4cOGq+8Y0NCrHMfH5QkRMx/o0g\nX3kuUi1Ul10Xcvdy4n5/VJGSC5zn0OS/dlEPsJYJMoZZMz0Iew977HOPL9+Tr74K\n+Yrg+0fB9AJz5pf3GXorQwrzifpci2dSgH/UrYozMhvSnKk9yXxCJASncOWQOLz/\nAAP4LurBvfZH1FxTt0ivEyKA2SdQ9V1L6ddGm/IBK+2Cq2bQESG0+4ZiK8i+3yYh\ni90V9Qfgp6GLbCP7EjB8xY21X/Z5JUqHY5F593qZzQ0ckhF5fzhU/r26t0FYAlfi\nIYYMEi97o0PBNvgG3mAWCO1pMXWT\n-----END CERTIFICATE-----\n"
}
HTTP JSON Response
{"data":{"secretCodeID":null,"activeFlag":null,"secretCode":"XXXXGSF87DD2DE814343XXXXXXXXXA3DFDB47892468A42578D57DA95XXXX"},"status":"SUCCESS","message":"Registered client successfully","errors":null}
API URL
Please refer respective environment's OAuth Registration API URL
HTTP Method - POST
OAuth - Token Request via API
Logical Steps to make Token Request API call
Create JWT
Header, Claim
{"alg":"RSA","typ":"JWT"}
{
"iss":"partner@partner.com",
"scope":"",
"aud":"https://oauth.telluride.shopyourway.com/oauthAS/service/token",
"exp":1328554385232,
"iat":1328550785227
}
A JSON Web Token (JWT) is composed of three parts:
- header
- claim set
- signature.
The header, claim set, and signature are concatenated together with a period (.) character, that makes JWT.
JWT Format
{Base64url encoded header}.{Base64url encoded claim set}.{Base64url encoded signature}
- Forming Header
JWT Header declares that the encoded object is a JSON Web Token (JWT). The header consists of two fields that indicate the signing algorithm and the format of the assertion. Both fields are mandatory, and each field has only one value. The JSON representation of the header is as follows:
- Forming Claim
The JWT claim set is a JSON object and is used in the calculation of the signature. The required claims in the JWT claim set are shown below.
Name | Value |
---|---|
iss | Client Id |
scope | not used |
aud | URL of OAuth server – TBD (Refer URL Section for according to the enviroment which you are trying to access) |
exp | The expiration time of the assertion, measured in milliseconds since 00:00:00 UTC, January 1, 1970. This value has a maximum of 4 hours from the issued time. But this value is configurable. The values should not have decimals |
iat | The time the assertion was issued, measured in milliseconds since 00:00:00 UTC, January 1, 1970. The values should not have decimals. |
- Computing the signature
JSON Web Signature (JWS) is the specification that guides the mechanics of generating the signature for the JWT. The input for the signature is the byte array of encoded header and claim content:
byte[] inputforSignature=System.Text.Encoding.UTF8.GetBytes({Base64url encoded header}.{Base64url encoded claim set})
Compute signature method will make use of private key to sign "inputforSignature" data. The only signing algorithm supported by the OAuth Server is RSA using SHA-256 hashing algorithm (SHA256withRSA). The method pseudocode would looks like this:
computeSignature(inputforSignature, private key){
//get private key from keystore
//get RSA Crypto Service Provider
//use SHA256 Crypto Service Provider for hashing
//sign data inputforSignature
//encode sign data to base 64
//return encoded data
}
Token request API Call
HTTP Request
{
"grant_type": "urn:ietf:params:oauth:grant-type:jwt-bearer",
"assertion": "eyJ0eXAiOiJKV1QiLCJhbGciOiJTSEEyNTZ3aXRoUlNBIn0=.eyJpc3MiOiJURUxMVVJJREVTVFJFU1MiLCJhdWQiOiJodHRwczovL29hdXRoLnByb2QudGVsbHVyaWRlLmludHJhLnRyYW5zZm9ybWNvLmNvbS9vYXV0aEFTL3NlcnZpY2Uvb0F1dGgvdG9rZW4uanNvbiIsImV4cCI6MTY0MTY2MDU0NTEzOCwiaWF0IjoxNjQxNjYwNTQ1MTM4fQ==.ILX9fzC5hCf+eu9mI2FieOZsiKayKTLo0AM8OmXW5ATqhhnu6Ce04r9LKj7mWW+W2vG7UnK2L/xLlpRHQXVrIaV6Ni1L4Rohexfre3peWuD6N+Kzde9ca+3h5YvbSzaRbp1Z4GrxUnuxRNuWNKrFNyEIPOF2/gwXkhRYj0svADRMNj9/xXdO32bRqRi8C2Kd2Cnmy7V0UF6aYaoxOQPbKg+GUOUwq1CT+bIr2xfAhyQUnzsGcuRrBD+Y00G99B8tG3mU5XE8ULHzpGmf6eWlrzAxUrs+OQXQ2MdT0UPlNu0rriUdH3c4QsFunn/psdKDpoD9ggkRWHMZvFbS6P8utA=="
}
HTTP Response
{
"access_token":"7b166dd2c4ac71f0d894b6ae095ce726147aa36065af325efe7a60bba470410c",
"token_type":"Bearer","exp":1641696545949,
"iss":1641660545949
}
The OAuth server would require JWT which is content generated from below format.
JWT= {Base64url encoded header}.{Base64url encoded claim set}.{Base64url encoded signature}
Client can make http post request to OAuth server URL with following parameters:
Parameteri Name | Parameter Value |
---|---|
grant_type | urn:ietf:params:oauth:grant-type:jwt-bearer |
assertion | Computed JWT Value |
Please make a note, this is http request, the OAuth server supports REST based call, Content-type can be any one of following format:
- application/json
- application/xml
- application/x-www-form-urlencoded
Please refer respective environment's OAuth Token Request API URL section for URL
OAuth - Non Production URLs
OAuth Portal Login URL
- https://oauthweb.uat.telluride.shopyourway.com/oauthUI/login
OAuth Registration API URL
- https://oauthweb.uat.telluride.shopyourway.com/oauthUI/register/registerClient
OAuth Token Request API URL
- https://oauth.uat.telluride.shopyourway.com/oauthAS/service/oAuth/token.json
OAuth - Production URLs
OAuth Portal Login URL
- https://oauthweb.telluride.shopyourway.com/oauthUI/login
OAuth Registration API URL
- https://oauthweb.telluride.shopyourway.com/oauthUI/register/registerClient
OAuth Token Request API URL
- https://oauth.telluride.shopyourway.com/oauthAS/service/oAuth/token.json
ShopYourWay - Rewards
Rewards - API Security using OAuth
Introduction
Telluride APIs requires client ID and access token as part of each API request in HTTP Header.
HTTP Header Names:
- client_id
- access_token
Client ID is unique identifier for calling client.
Implementation Steps
Following steps needs to be performed to access telluride platform:
- One time activity
- Each client application calling Telluride must procure a digital certificate. It is recommended to obtain a signed certificate from a Certifying Authority (CA).
- Once certificate request is approved, download signed certificate from Certifying Authority (CA)
- Register the certificate as mentioned under the section "ShopYourWay - Oauth Security".
- Obtain API requestorId from Telluride security team.
- Once client is approved by Telluride security team and requestorId is obtained, cleint can start accessing telluride APIs.
- Each client application calling Telluride must procure a digital certificate. It is recommended to obtain a signed certificate from a Certifying Authority (CA).
- Each API access
- After successfully registering clientId with OAuth server, client can request for access token using the Oauth API mentioned in section "ShopYourWay - Oauth Security"
- Add granted token in API request http header along with client ID.
Authentication at Telluride
Telluride API server will validate token and client ID with OAuth server. After successful authentication, it will serve the request, in case of API security validation error client will be getting following error codes:
The system will provide below error messages based on reason for authentication failure:
Code | Description |
---|---|
CLIENT_ID_INVALID | This describes the client id is not yet registered or not in approved state in OAuth server. |
CLIENT_ID_REQUIRED | Client ID is missing in http header. |
ACCESSTOKEN_INVALID | The current token is invalid. |
ACCESSTOKEN_EXPIRED | The current token is expired, need to refresh token. |
ACCESSTOKEN_REQUIRED | Access token is missing in http header. |
APPLICATION_NOT_PERMITTED | Application permission has to be granted by Administrator. Please contact Admin. |
AUTHENTICATION EXCEPTION | Generic error during authentication. Please contact Admin. |
CreateMember API
HTTP JSON Request
{
"MemberNumber":"",
"EmailAddress":"Gang.Test03@test.com",
"EmailValidation":"",
"Prefix":"",
"Suffix":"",
"FirstName":"Smithy",
"MiddleInitial":"M",
"TestAccount":"N",
"LastName":"RRob",
"Address1":"",
"Address2":"",
"City":"",
"State":"",
"ZipCode":"12345",
"ZipCodeExtension":"",
"AddressOverride":"Y",
"CountryCode":"",
"DOB":"1982-05-21",
"CurrentDate":"2018-06-08",
"CurrentTime":"01:26:59",
"ClubMembershipCreatedBy":"0116",
"WirelessPermissionFlag":"",
"ClubDNPStatus":"M",
"SHCAssociateInd":"N",
"CardDesignType":"K",
"ClubEmailOptStatus":"Y",
"PreferredLanguage":"E",
"StoreNumber":"03682",
"PinNumber":"11111",
"Terminal":"026",
"TnCStatus":"Y",
"RequestorID":"<provided requestorId>",
"MessageVersion":"14",
"TnCVersion":"7.0",
"EnrollmentOfferCode":"",
"PhoneNumbers":{
"Phone":[
{
"CarrierCode":"",
"PhoneNumber":"9169024998",
"PhoneType":"M",
"PhoneValidated":"",
"PreferredPhoneType":"Y"
}
]
}
}
HTTP JSON Response
{
"CreateMemberResult":{
"GetMemberLookupReply":[
{
"MTServerName":"5eu1931e_wildflyloca",
"Additional":{
"msg1":null,
"msg2":null,
"Status":"0",
"StatusText":"Success",
"MessageVersion":"13",
"SysPulse":"51768ms"
},
"Type":"PROCESSED",
"ResponseDate":1528396200000,
"ResponseTime":36801000,
"NumRecordsReturned":1,
"Members":{
"Member":[
{
"msg1":"View balance and account information",
"msg2":"at shopyourwayrewards.com",
"msg3":"",
"msg4":"",
"msg5":"",
"EmailAddress":"Gang.Test03@automation.com",
"Prefix":"",
"FirstName":"Smithy",
"LastName":"RRob",
"MiddleInitial":"M",
"Address1":"",
"Address2":"",
"City":"",
"State":"",
"ZipCode":"12345",
"ZipCodeExtension":"",
"Suffix":"",
"MemberNumber":"7081460000037153",
"ClubStatus":"A",
"AuthFirstName":"",
"AuthLastName":"",
"CreatedBy":"0116",
"DateIssued":1528401419000,
"MemberSinceDate":1528401419000,
"ClubDNPStatus":"M",
"AgeEligible":"Y",
"DOB":"2018-06-09",
"OnlineValidationFlag":"N",
"OnlineValidationDate":1528396200000,
"WirelessPermissionFlag":"Y",
"LanguagePreference":"E",
"VIPTier":"",
"TotalSpentYTD":0,
"SpendNextTierLevel":"2500.00",
"CardDesignType":"KMRT",
"SHCAssociateInd":"N",
"TotalRedeemablePoints":0,
"EmailStatusReturn":"",
"RedemptionSystemCode":"M",
"ClubEmailOptStatus":"Y",
"SearchType":"5",
"Deceased":false,
"CountryCode":"",
"PhoneNumbers":{
"Phone":[
{
"PhoneType":"M",
"PreferredPhoneType":"Y",
"PhoneNumber":"9169024998",
"CarrierCode":""
}
]
},
"IncompleteProfileInd":"N",
"EmailConfirmed":"N",
"MemberEarnType":"BONUS",
"TestCardIndicator":"N",
"MobileValid":"Y",
"Affinities":{
},
"Attributes":{
"Attr":[
{
"attrname":"RECEIPT",
"attrvalue":""
},
{
"attrname":"SEARSCC",
"attrvalue":""
}
]
},
"TermsAndConditions":{
"TermAndCondition":[
{
"TnCStatus":"",
"Version":"",
"StoreNumber":"",
"RegisterNumber":"",
"AssociateID":"",
"Prompt":"",
"LatestVersion":""
}
]
},
"CheckoutPrompt":{
"CheckoutPromptQuestions":[
{
}
]
},
"Charity":"",
"EnrollmentSourceCode":"KCOM",
"EnrollmentStoreNumber":"03682"
}
]
}
}
]
}
}
Overview
CreateMember API is used to create a new Member Profile for your rewards program.
Input
HTTP Method: POST
HTTP request headers:
HTTP Header | Required | Description |
---|---|---|
Content-Type | Y | application/json |
client_id | Y | pass provided clientid |
access_token | Y | pass valid token |
Accept | Y | application/json |
Telluride EndPoint for External Clients
Environment | EndPoint |
---|---|
UAT | https://rewards.uat.telluride.shopyourway.com/tellurideAS/profile/CreateMember |
PROD | https://rewards.telluride.shopyourway.com/tellurideAS/profile/CreateMember |
Request Parameters
Data Element Name | Required | Data Type | Length | Description |
---|---|---|---|---|
EmailAddress | Y | String | 50 | Member’s Email Address |
EmailValidation | N | String | 1 | Is Email pre validated |
Prefix | N | String | 4 | Mr., Ms., Mrs., Miss, Dr. & Prof |
Suffix | N | String | 4 | Member name Suffix |
FirstName | Y | String | 30 | Member name First Name |
MiddleInitial | N | String | 1 | Member name Middle Initial |
LastName | Y | String | 30 | Member name Last Name |
TestAccount | N | String | 1 | To set the members as test members Y or N or null |
Address1 | N | String | 40 | Line 1 of Member’s Address |
Address2 | N | string | 40 | Line 2 of Member’s Address |
City | N | string | 30 | City of Member’s Address |
State | N | string | 2 | State of Member’s Address |
ZipCode | Y | string | 6 | Pre-validated 5 digit zip code for US & MX. Alphanumeric Zip code for Canada |
ZipCodeExtension | N | string | 4 | Alphanumeric Zip code extension |
CountryCode | N | string | 2 | Default US Accepts, US, CA, MX |
DOB | N | string | 10 | Date of birth of member (YYYY-MM-DD) |
CurrentDate | Y | string | 10 | Current Date (YYYY-MM-DD) |
CurrentTime | Y | String | 8 | Current Time (HH:MM:SS) |
ClubMembershipCreatedBy | Y | String | 12 | Source identifier for member creation request |
ClubDNPStatus | Y | String | 1 | Do not Promote (DNP) Status of the member |
Null/Empty Tag – Defaulted to promotable | ||||
M - DNP by mail | ||||
P - DNP by phone | ||||
B - DNP by phone or mail | ||||
TnCStatus | N | String | 1 | Terms and Conditions acceptance status Y or N |
TnCVersion | N | String | 1 | Accepted/Declined version |
SHCAssociateInd | N | String | 1 | Valid values: N – Not associate (Default) |
A – Current associate | ||||
R – Retired | ||||
CardDesignType | N | String | 4 | Hardcode this value to VRTL |
AddressOverride | N | String | 1 | This field is used from Message version: 14 and above. By default this will be N. If Y is passed, then address will not be validated but persisted as-is |
Gender | Y | String | 1 | This field is used from Message version: 15 and above |
AnniversaryDate | N | String | 10 | This field is used from Message version: 15 and above |
WirelessPermissionFlag | N | String | 1 | Y for member opted for mobile SMS. |
ClubEmailOptStatus | N | String | 1 | Whether member opted for emails from system. |
PreferredLanguage | N | string | 1 | Member’s preferred language. English E is Default. Spanish S |
StoreNumber | Y | string | 5 | 5-digit valid store number . For ECOM pass value as 00001 |
Terminal | Y | string | 3 | Terminal or register number for POS . For ECOM pass value as 001. |
RequestorID | Y | String | 4 | RequestorId assigned during onboarding. Unique for each partner |
MessageVersion | Y | string | 3 | The version number of the API to invoke |
EnrollmentOfferCode | N | string | 10 | Enrollment flow identifier |
PinNumber | N | string | 8 | Pin number provided by the member, if not present will be defaulted to 5 digit zipcode. PinNumber can be used to validate member. |
PhoneNumbers | ||||
PhoneType | Y | String | 1 | Type of phone mobile or home M or H |
Preferred PhoneType | Y | String | 1 | Phone number set to preferred or not. Valid Values are Y or N |
PhoneNumber | Y | string | 10 | Phone number of the member(home or mobile number) |
PhoneValidated | N | String | 1 | Phone number is valid mobilenumber or not. Valid valules are Y or N |
CarrierCode | N | String | 4 | For valid mobile phone no contains carrier information |
Per Affinity | It is an Array. This feature provides ability to map various affiliations of the member. | |||
AffinityID | N | integer | 18 | Member's ID for an affiliation |
AffinityStatus | Y | String | 1 | Active A , Inactive I , Pending P, Declined D |
Affiliation Code | Y | String | 8 | Code created during set up of new affiliation |
Attributes | Ability to capture member's additional attributes | |||
Attrname | Y | String | 8 | Valid attribute name that needs to be created beforehand in the system. |
AttrValue | Y | String | 80 | Value of the attribute |
Response Parameters
Data Element Name | Empty? | Data Type | Length | Description |
---|---|---|---|---|
ResponseDate | N | String | 10 | Date of Response in ms |
ResponseTime | N | String | 8 | Time of Response in ms |
NumberRecordsReturned | N | String | 2 | Number of Records created/returned |
Members | ||||
EmailAddress | N | String | 50 | Member’s Email Address |
Prefix | Y | String | 4 | Member name Prefix |
FirstName | N | String | 30 | Member’s First Name |
LastName | N | String | 30 | Member’s Last Name |
MiddleInitial | Y | String | 1 | Member’s Middle Initial |
Address1 | Y | String | 40 | Line 1 of Member’s Address |
Address2 | Y | String | 40 | Line 2 of Member’s Address |
City | Y | String | 30 | City of Member’s Address |
State | Y | String | 2 | State of Member’s Address |
ZipCode | N | String | 6 | 6-digit zip code of Member’s Address |
ZipCodeExtension | Y | String | 4 | The +4 extension of zip code of Member’s Address |
Suffix | Y | String | 4 | Member’s Suffix |
MemberNumber | N | String | 18 | Allocated member number. |
ClubStatus | N | String | 1 | Status of the member, A – Active O – Merge I – Inactive R-Replaced |
CreatedBy | N | String | 12 | Associate name, if record is created by an associate. |
DateIssued | N | String | 25 | Created date in ms |
ClubStatusChangeDate | N | String | 25 | Date when clubstatus has changed in ms |
MemberSinceDate | N | String | 25 | Created/Enrolled date in ms |
ClubDNPStatus | N | String | 1 | Do not Promote (DNP) Status of the member. DNP Status which is provided in the request. If no value in the input/request, displays empty tag which means Promotable |
AgeEligible | N | String | 1 | Determines the eligibility based on member’s age. Y is > 13 Yrs, N is Minors |
DOB | N | String | 10 | Date of birth of member (YYYY-MM-DD) |
OnlineValidationFlag | N | String | 1 | Whether member has validated through online. (customer can do this from a loyalty email). N is Default when creating, Y is when registering |
OnlineValidationDate | N | String | 10 | Online Validation Date in ms, if not passed in the request will take enrollment date. |
WirelessPermissionFlag | Y | String | 1 | Y – Opted for Mobile SMS |
N – Not opted for Mobile SMS | ||||
LanguagePreference | N | String | 1 | Member’s preferred language as in request |
VIPTier | Y | String | 15 | Member’s VIP Tier like Base, Silver, Gold etc. |
TotalSpentYTD | N | String | 9 | Total amount spend year to date |
SpendNextTierLevel | Y | String | 9 | Amount needed to be spend to reach the next level |
CardDesignType | N | String | 4 | as in request |
SHCAssociateInd | N | String | 1 | as in request |
TotalRedeemablePoints | N | Integer | 10 | Total points redeemable by the member, value is defaulted to 0 when creating a member |
EmailStatusReturn | Y | String | 1 | Reserved for future pirpose |
Redemption SystemCode | N | String | 1 | Redemption System Code, M is default |
ClubEmail OptStatus | N | String | 1 | Email status on whether the member has opted to receive updates through emails Y or N |
Deceased | N | Boolean | While create it is defaulted to false | |
CountryCode | N | String | 2 | Default US |
Msg1 | N | String | 50 | Optional additional information provided by Telluride for display to the member. |
Msg2 | N | String | 50 | Optional additional information provided by Telluride for display to the member. |
Msg3 | Y | String | 50 | Reserved for future purpose |
Msg4 | Y | String | 50 | Reserved for future purpose |
Msg5 | Y | String | 50 | Reserved for future purpose |
EmailConfirmed | N | String | 1 | Email confirmation by member (member confirmed the email address by clicking on the link in the confirmation email. |
MobileConfirmed | N | String | 1 | Mobile confirmation by member (member confirmed the mobile number by clicking on the link in the text.) |
MemberEarnType | N | String | 5 | While creating member value will be defaulted to BONUS if he has a valid email address and club email opt status is Y. Otherwise Base |
MobileValid | Y | String | 1 | Reserved for future purpose |
AddressModified | Y | String | 1 | Reserved for future purpose |
Gender | Y | String | 1 | Gender |
AnniversaryDate | Y | String | 10 | Anniversary Date |
Terms&Conditions | ||||
TnCStatus | Y | String | 1 | Status of Terms & Conditions acceptance |
Version | Y | String | 5 | Y – Accepted & N – Declined |
Date | Y | String | 10 | Date in ms |
Time | Y | String | 8 | Time in ms |
StoreNumber | Y | String | 5 | Store location number |
Register Number | Y | String | 3 | Terminal or register number for POS |
AssociateID | Y | String | 12 | Name of Associate who is at the register |
Prompt | Y | String | 1 | Flag which says whether to/not to prompt the user. |
LatestVersion | Y | String | 5 | Latest version available. |
PhoneNumbers | ||||
PhoneType | Y | String | 1 | as in request |
Preferred Phone | Y | String | 1 | To set the Phone number as preferred or not. If Input has only one phone number, set the value as "Y" against that phone number and send the same in response |
Phone Number | Y | String | 10 | Phone number of the member From Input |
CarrierCode | Y | String | 4 | Carrier code from input request, or from mobile carrier validation response. Blank value for home phone number incase not valid mobile |
IncompleteProfileInd | N | String | 1 | Incomplete Profile indicator N – Regular Enrollment (Defaulted) , Y – Ghost Enrollment |
Additional | ||||
Status | N | string | 3 | API status code |
StatusText | N | String | 100 | A text representation of the Status code. Provides additional information about the error, if any. |
MessageVersion | N | String | 3 | The message version of the reply. |
SysPulse | N | String | 40 | The time in milliseconds it took to reply to the request. |
Per Affinity | ||||
AffinityID | Y | integer | 18 | Contains an ID for a valid affinity |
AffinityStatus | Y | String | 1 | as in request |
AffiliationCode | Y | String | 8 | as in request |
PerAttribute | ||||
AttrCode | N | String | 8 | Code for the attribute |
AttrValue | N | String | 80 | Value of the attribute |
EnrollmentSourceCode | Y | String | 4 | Created during onboarding |
EnrollmentStoreNumber | Y | String | 5 | Enrollment store number. |
Error/Status Code
Number | Description |
---|---|
0 | Success |
62 | Invalid affiliation code |
63 | Zip Code is required |
71 | A valid email address or mobile phone # or home phone # is required |
72 | CLUB ID ALREADY USED, TRY ANOTHER CARD |
77 | CLUB ID INVALID IN MEMBERSHIP SERVICES |
80 | Email Address must be < 50 characters |
Email Invalid. Request a different email | |
Cannot use email. Please try again | |
Email already in use. Provide new email. | |
Invalid email - Missing "@" sign | |
Invalid email - Missing User Name | |
Invalid email - Missing domain name | |
Invalid email - Extra '@' in email | |
Invalid character in email | |
Invalid email - Bad domain name | |
Invalid email - Too long or too short | |
Invalid email - Please request new email | |
Invalid email - double "." in domain | |
Invalid email - "." following "@" sign | |
Invalid email - Email begins with "." | |
Cannot use this email, please try again | |
Invalid email - Please try again | |
81 | INVALID FIELD(FIRST NAME) ENTRY |
INVALID FIELD(LAST NAME) ENTRY | |
Home Phone Reached Maximum Limit | |
PHONE NUMBER REQUIRED | |
Zip extension cannot exceed 4 positions | |
TEST_ACCOUNT FLAG IS INVALID | |
WIRELESS PERMISSION FLAG IS INVALID | |
TEST_ACCOUNT FLAG IS INVALID | |
ENROLLMENT OFFER CODE IS INVALID-The actual length is greater than the MaxLength value. | |
Zip extension cannot exceed 4 positions | |
INVALID PREFIX-The length cannot exceed 4 positions. | |
SUFFIX IS INVALID-The actual length is greater than the MaxLength value. | |
ADDRESSLINE1 INVALID-The actual length is greater than the MaxLength value. | |
ADDRESSLINE2 INVALID-The actual length is greater than the MaxLength value. | |
STATE INVALID-The actual length is greater than the MaxLength value. | |
INVALID COUNTRY/STATE | |
PLEASE ENTER A VALID ZIPCODE | |
PLEASE ENTER A VALID ZIPCODE EXTENSION | |
INVALID FIELD(MIDDLE INITIAL) ENTRY | |
CLUBDNPSTATUS IS INVALID | |
INVALID FIELD(DOB) ENTRY | |
AFFILIATION CODE INVALID-The actual length is greater than the MaxLength value. | |
AFFINITY STATUS-The actual length is greater than the MaxLength value. | |
ATTRIBUTE NAME INVALID-The actual length is greater than the MaxLength value. | |
ATTRIBUTE VALUE INVALID-The actual length is greater than the MaxLength value. | |
USE A DASH INSTEAD OF SPACE FOR NAME | |
83 | Invalid Attribute Code [attribute code that is invalid] |
84 | Invalid Attribute Value for [Attribute Code] |
85 | RECEIPT PREF NEEDS A VALID EMAIL ADDRESS |
86 | EMAIL ADDRESS EXISTS ON AN ACTIVE MEMBER |
87 | MOBILE PHONE EXISTS ON AN ACTIVE MEMBER |
88 | EMAIL ADDRESS AND MOBILE PHONE EXISTS ON AN ACTIVE MEMBER |
90 | MEMBERSHIP DB ERROR |
92 | Please enter a valid address |
Address associated to more than 4 SYW memberships | |
93 | Address validation failed due to system error |
99 | REQUESTOR ID IS REQUIRED |
MEMBER ID IS REQUIRED | |
MEMBER NUMBER IS INVALID | |
FIRST NAME IS REQUIRED | |
LAST NAME IS REQUIRED | |
CARD DESIGN TYPE IS REQUIRED | |
CURRENT DATE IS REQUIRED | |
CURRENT TIME IS REQUIRED | |
MESSAGE VERSION IS REQUIRED | |
REQUESTOR ID IS INVALID -The actual length is greater than the MaxLength value | |
INVALID FIELD(FIRST NAME) ENTRY | |
INVALID FIELD(LAST NAME) ENTRY | |
CARD DESIGN TYPE IS INVALID | |
PIN NUMBER IS INVALID | |
STORE NUMBER IS INVALID -The actual length is greater than the MaxLength value. | |
TERMINAL NUMBER IS INVALID -The actual length is greater than the MaxLength value | |
ACCOUNT STATUS IS INVALID | |
SHC ASSOCIATE ID IS INVALID | |
LANGUAGE PREFERENCE IS INVALID | |
CLUB MEMBERSHIP CREATED BY IS INVALID | |
CLUB EMAIL STATUS IS INVALID | |
TNCSTATUS IS INVALID | |
TNCSTATUS IS REQUIRED | |
TNCVERSION IS INVALID | |
TNCVERSION IS REQUIRED |
GetMemberLookup
HTTP JSON Request
{
"RequestorID":"Provide the RequestorID shared with you during setup",
"MemberNumber":"7081207612717221",
"MessageVersion":"22",
"SearchType":"05"
}
HTTP JSON Response
{"GetMemberLookupResult": {"GetMemberLookupReply": [{
"MTServerName": "149-188_rewards_ds21",
"Additional": {
"msg1": "View balance and account information",
"msg2": "at shopyourwayrewards.com",
"Status": "0",
"StatusText": "Success",
"MessageVersion": "22",
"SysPulse": "37ms"
},
"Type": "PROCESSED",
"ResponseDate": 1643263200000,
"ResponseTime": 24877000,
"NumRecordsReturned": 1,
"Members": {"Member": [ {
"msg1": "View balance and account information",
"msg2": "at shopyourwayrewards.com",
"msg3": "",
"msg4": "",
"msg5": "",
"EmailAddress": "CRTestID01@automation.com",
"Prefix": "",
"FirstName": "BOB",
"LastName": "ROB",
"MiddleInitial": "M",
"Address1": "3333 Beverly Rd",
"Address2": "",
"City": "Hoffman estates",
"State": "IL",
"ZipCode": "60179",
"ZipCodeExtension": "",
"Suffix": "",
"MemberNumber": "7081207612717221",
"ClubStatus": "A",
"AuthFirstName": "",
"AuthLastName": "",
"ClubStatusChangeDate": 1638459446000,
"StatusChangeReasonCode": "",
"StatusChangeReasonDesc": "",
"CreatedBy": "Tester",
"DateIssued": 1638459446000,
"MemberSinceDate": 1638459446000,
"ClubDNPStatus": "M",
"AgeEligible": "Y",
"DOB": "1988-03-21",
"OnlineValidationFlag": "N",
"OnlineValidationDate": 1643263200000,
"WirelessPermissionFlag": "Y",
"LanguagePreference": "E",
"VIPTier": "",
"TotalSpentYTD": 0,
"TotalTripYTD": 0,
"SpendNextTierLevel": "0",
"VIPNextLevel": [{}],
"CardDesignType": "VRTL",
"SHCAssociateInd": "N",
"TotalRedeemablePoints": 11000,
"EmailStatusReturn": "",
"RedemptionSystemCode": "M",
"ClubEmailOptStatus": "N",
"SearchType": "05",
"Deceased": false,
"CountryCode": "US",
"PhoneNumbers": {"Phone": [ {
"PhoneType": "M",
"PreferredPhoneType": "Y",
"PhoneNumber": "8472002626"
}]},
"IncompleteProfileInd": "N",
"EmailConfirmed": "N",
"MemberEarnType": "BASE",
"TestCardIndicator": "",
"MobileValid": "",
"Affinities": {"Affinity": [
{
"AffinityID": "",
"AffinityStatus": "A",
"AffiliationCode": "CRAFTMAN"
},
{
"AffinityID": "",
"AffinityStatus": "A",
"AffiliationCode": "UBERNDRV"
}
]},
"Attributes": {"Attr": [
{
"attrname": "receipt",
"attrvalue": ""
},
{
"attrname": "searscc",
"attrvalue": ""
}
]},
"TermsAndConditions": {"TermAndCondition": [ {
"TnCStatus": "Y",
"Version": "10.0",
"Date": 1643263200000,
"Time": 24860000,
"StoreNumber": "03682",
"RegisterNumber": "123",
"AssociateID": "TESTER",
"Prompt": "N",
"LatestVersion": "1.3"
}]},
"CheckoutPrompt": {},
"Charity": "N",
"EnrollmentSourceCode": "ABCD",
"EnrollmentStoreNumber": "03682",
"SurvivorMemberNumber": "",
"MobileConfirmed": "N",
"Gender": ""
}]}
}]}}
Overview
This API retrieves member profile details based on certain search criterias. Each search criteria is mapped with a number denoted by SearchType. Below are the available searchtypes and definition.
SearchType | Definition |
---|---|
02 | Based on EmailAddres |
01 | Based on FirstName and LastName of Member |
13 | Based on AffiliationId and Type |
05 | Based on MemberNumber |
03 | Based on MemberNumber, FirstName and ZipCode |
06 | Based on PhoneNumber and EmailAddress |
04 | Based on PhoneNumber |
07 | Based on PhoneNumber,EmailAddress, FirstName and ZipCode |
10 | Look Up based on EmailAddress (Mandatory), will validate for First Name (Optional) and Last Name (Optional) if present |
14 | Look Up based on encrypted MemberNumber |
11 | Look Up based on Phone Number (Mandatory), will validate for First Name (Optional) and Last Name (Optional) if present |
09 | MemberNumber is mandatory, FirstName and LastName optional |
08 | WildCharacter search of FirstName and LastName |
Input
HTTP Method: POST
HTTP request headers
HTTP Header | Required | Description |
---|---|---|
Accept | Y | application/json |
Content-Type | Y | application/json |
access_token | Y | pass the access token |
client_id | Y | pass the clientid shared with you during setup |
Telluride EndPoint for External Clients
Environment | EndPoint |
---|---|
UAT | https://rewards.uat.telluride.shopyourway.com/tellurideAS/profile/GetMemberLookup |
PROD | https://rewards.telluride.shopyourway.com/tellurideAS/profile/GetMemberLookup |
Request Parameters
Data Element Name | Required | Data Type | Length | Description |
---|---|---|---|---|
RequestorID | Y | String | 4 | RequestorId assigned during onboarding. Unique for each partner |
StoreNumber | N | String | 5 | 5-digit valid store number . For ECOM pass value as 00001 |
Terminal | N | String | ||
CurrentDate | N | String | Current Date (YYYY-MM-DD) | |
CurrentTime | N | String | Current Time (HH:MM:SS) | |
MaxRecords | Numeric | The max number of records that needs to be shown if there are more than one account associated to search condition | ||
Message Version | Y | String | 3 | The version number of the API to invoke |
SearchType | Y | Numeric | To identify different search criteria | |
Member Number | N | String | 18 | Customer/Member Number or SYW Profile |
EmailAddress | N | String | 50 | Member's Email Address |
PhoneNumber | N | Numeric | Member's PhoneNumber | |
FirstName | N | String | Member's FirstName. This field is required when SearchType is 01,03,07,08 | |
LastName | N | String | Member's LastName . This field is required when SearchType is 01,08 | |
ZipCode | N | String | Member's zipcode . This field is required when SearchType is 03,07 | |
ID | N | String | Search based on certain configured attributes like CardId, AffiliationId. This field is required when SearchType is 13 | |
Member Identifier | N | String | Encrypted member number(MemberIdentifier) corresponding to member profile . This field is required when SearchType is 14 | |
Type | N | String | Mandatory if we have a value in ID, if SearchType is 13 | |
MaxPosPrompt | N | String | Number of questions which can be asked to the member. | |
PromptGroup | N | String | The prompt group against whose questions has to be asked. The response will give the questions based on these parameters. |
Response Parameters
Data Element Name | Empty? | Data Type | Length | Description |
---|---|---|---|---|
ResponseDate | N | String | 10 | Date of Response in ms |
ResponseTime | N | String | 8 | Time of Response in ms |
NumberRecordsReturned | N | String | 2 | Number of Records created/returned |
Members | ||||
EmailAddress | N | String | 50 | Member’s Email Address |
Prefix | Y | String | 4 | Member name Prefix |
FirstName | N | String | 30 | Member’s First Name |
LastName | N | String | 30 | Member’s Last Name |
MiddleInitial | Y | String | 1 | Member’s Middle Initial |
Address1 | Y | String | 40 | Line 1 of Member’s Address |
Address2 | Y | String | 40 | Line 2 of Member’s Address |
City | Y | String | 30 | City of Member’s Address |
State | Y | String | 2 | State of Member’s Address |
ZipCode | N | String | 6 | 6-digit zip code of Member’s Address |
ZipCodeExtension | Y | String | 4 | The +4 extension of zip code of Member’s Address |
Suffix | Y | String | 4 | Member’s Suffix |
MemberNumber | N | String | 18 | Allocated member number. |
ClubStatus | N | String | 1 | Status of the member, A – Active O – Merge I – Inactive R-Replaced |
CreatedBy | N | String | 12 | Associate name, if record is created by an associate. |
DateIssued | N | String | 25 | Created date in ms |
ClubStatusChangeDate | N | String | 25 | Date when clubstatus has changed in ms |
MemberSinceDate | N | String | 25 | Created/Enrolled date in ms |
ClubDNPStatus | N | String | 1 | Do not Promote (DNP) Status of the member. DNP Status which is provided in the request. If no value in the input/request, displays empty tag which means Promotable |
AgeEligible | N | String | 1 | Determines the eligibility based on member’s age. Y is > 13 Yrs, N is Minors |
DOB | N | String | 10 | Date of birth of member (YYYY-MM-DD) |
OnlineValidationFlag | N | String | 1 | Whether member has validated through online. (customer can do this from a loyalty email). N is Default when creating, Y is when registering |
OnlineValidationDate | N | String | 10 | Online Validation Date in ms, if not passed in the request will take enrollment date. |
WirelessPermissionFlag | Y | String | 1 | Y – Opted for Mobile SMS |
N – Not opted for Mobile SMS | ||||
LanguagePreference | N | String | 1 | Member’s preferred language as in request |
VIPTier | Y | String | 15 | Member’s VIP Tier like Base, Silver, Gold etc. |
TotalSpentYTD | N | String | 9 | Total amount spend year to date |
SpendNextTierLevel | Y | String | 9 | Amount needed to be spend to reach the next level |
CardDesignType | N | String | 4 | as in request |
SHCAssociateInd | N | String | 1 | as in request |
TotalRedeemablePoints | N | Integer | 10 | Total points redeemable by the member, value is defaulted to 0 when creating a member |
EmailStatusReturn | Y | String | 1 | Reserved for future pirpose |
Redemption SystemCode | N | String | 1 | Redemption System Code, M is default |
ClubEmail OptStatus | N | String | 1 | Email status on whether the member has opted to receive updates through emails Y or N |
Deceased | N | Boolean | While create it is defaulted to false | |
CountryCode | N | String | 2 | Default US |
Msg1 | N | String | 50 | Optional additional information provided by Telluride for display to the member. |
Msg2 | N | String | 50 | Optional additional information provided by Telluride for display to the member. |
Msg3 | Y | String | 50 | Reserved for future purpose |
Msg4 | Y | String | 50 | Reserved for future purpose |
Msg5 | Y | String | 50 | Reserved for future purpose |
EmailConfirmed | N | String | 1 | Email confirmation by member (member confirmed the email address by clicking on the link in the confirmation email. |
MobileConfirmed | N | String | 1 | Mobile confirmation by member (member confirmed the mobile number by clicking on the link in the text.) |
MemberEarnType | N | String | 5 | While creating member value will be defaulted to BONUS if he has a valid email address and club email opt status is Y. Otherwise Base |
MobileValid | Y | String | 1 | Reserved for future purpose |
AddressModified | Y | String | 1 | Reserved for future purpose |
Gender | Y | String | 1 | Gender |
AnniversaryDate | Y | String | 10 | Anniversary Date |
Terms&Conditions | ||||
TnCStatus | Y | String | 1 | Status of Terms & Conditions acceptance |
Version | Y | String | 5 | Y – Accepted & N – Declined |
Date | Y | String | 10 | Date in ms |
Time | Y | String | 8 | Time in ms |
StoreNumber | Y | String | 5 | Store location number |
Register Number | Y | String | 3 | Terminal or register number for POS |
AssociateID | Y | String | 12 | Name of Associate who is at the register |
Prompt | Y | String | 1 | Flag which says whether to/not to prompt the user. |
LatestVersion | Y | String | 5 | Latest version available. |
PhoneNumbers | ||||
PhoneType | Y | String | 1 | as in request |
Preferred Phone | Y | String | 1 | To set the Phone number as preferred or not. If Input has only one phone number, set the value as "Y" against that phone number and send the same in response |
Phone Number | Y | String | 10 | Phone number of the member From Input |
CarrierCode | Y | String | 4 | Carrier code from input request, or from mobile carrier validation response. Blank value for home phone number incase not valid mobile |
IncompleteProfileInd | N | String | 1 | Incomplete Profile indicator N – Regular Enrollment (Defaulted) , Y – Ghost Enrollment |
Additional | ||||
Status | N | string | 3 | API status code |
StatusText | N | String | 100 | A text representation of the Status code. Provides additional information about the error, if any. |
MessageVersion | N | String | 3 | The message version of the reply. |
SysPulse | N | String | 40 | The time in milliseconds it took to reply to the request. |
Per Affinity | ||||
AffinityID | Y | integer | 18 | Contains an ID for a valid affinity |
AffinityStatus | Y | String | 1 | as in request |
AffiliationCode | Y | String | 8 | as in request |
PerAttribute | ||||
AttrCode | N | String | 8 | Code for the attribute |
AttrValue | N | String | 80 | Value of the attribute |
EnrollmentSourceCode | Y | String | 4 | Created during onboarding |
EnrollmentStoreNumber | Y | String | 5 | Enrollment store number. |
Error/Status Code
Status Code | Description |
---|---|
0 | Success |
46 | FIRST NAME IS REQUIRED |
47 | LAST NAME IS REQUIRED |
48 | EMAIL ADDRESS IS REQUIRED |
50 | PHONE NUMBER IS REQUIRED |
63 | ZIP CODE IS REQUIRED |
64 | NO MATCHING NAME FOUND |
65 | NO MATCHING EMAIL ADDRESS FOUND |
66 | NO MATCHING PHONE NUMBER FOUND |
67 | NO MATCHING ROW FOUND |
68 | CLUB MEMBER NOT FOUND |
70 | INVALID CLUB ID |
71 | CUSTOMER NOT FOUND |
90 | MEMBERSHIP DB ERROR |
99 | MEMBER NUMBER IS REQUIRED |
99 | INVALID MEMBER NUMBER |
99 | MESSAGE VERSION IS REQUIRED |
99 | MESSAGE VERSION IS NOT VALID |
99 | FIRST NAME IS REQUIRED |
99 | MAX POS PROMPT IS INVALID |
99 | STORE NUMBER IS INVALID |
99 | TERMINAL NUMBER IS INVALID |
99 | NO MATCHING RECORDS FOUND |
99 | MULTIPLE RECORDS FOUND |
99 | INVALID SEARCH TYPE FOR “reqID” |
GetRewardBalance
Overview
This API returns point balance for the member for the provided request date.
HTTP JSON Request
{
"channels":"Provide the Channel shared with you during setup",
"pointType":"",
"currentDate":"2022-02-04",
"currentTime":"10:16:57",
"requestorID":"Provide the RequestorID shared with you during setup",
"storeNumber":"",
"memberNumber":"7081137708564387",
"memberIdentifier":"F2EUW0aolRKC3FHTFfRf9rgb%2FmnkuyVLWlKaq3rSOpU%3D",
"messageVersion":"16"
}
HTTP JSON Response
{
"mtServerName": "24-38_rewards_ds5",
"emailAddress": "Automation01_2659@automation.com",
"firstName": "Tester",
"lastName": "Automationo",
"memberNumber": 7081137708564387,
"additional": {
"status": "0",
"statusText": "Good Balance",
"sysPulse": "301ms"
},
"totalAvailablePointsSummary": {
"totalAvailableBasePoints": "0",
"totalAvailableBonusPoints": "7000",
"totalAvailablePoints": "10000",
"totalAvailableMemberOwnPoints": "7000",
"totalAvailableSurprisePoints": "3000",
"channelWisePointsSummary": {"channel": [ {
"memberOwnPoints": 7000,
"pointsPerCent": 10,
"availablePoints": 10000,
"surprisePoints": 3000,
"restrictedPoints": 2000,
"availableDollars": "7.00",
"availableBonusPoints": 7000,
"availableBasePoints": 0,
"availableMemberOwnPointsList": {"memberOwnPointsToExpire": [
{
"memberOwnPoints": "5000",
"memberOwnExpiryDate": "20220228",
"memberOwnBasePoints": 0,
"memberOwnBonusPoints": 5000
},
{
"memberOwnPoints": "2000",
"memberOwnExpiryDate": "20220630",
"memberOwnBasePoints": 0,
"memberOwnBonusPoints": 2000
}
]},
"availableSurprisePointsList": {"availableSurprisePoints": [ {
"surpriseMultiplier": "0.0",
"offerName": "3xSurpriseOffer_Cars",
"registrationStartDate": "2021-07-30 00:46:20",
"registrationEndDate": "2022-06-21 00:59:59",
"offerCode": "99769-1",
"surprisePoints": "3000",
"surprisePointsExclusion": "NoEXC",
"pointsAvailableFor": "Rec3xSurpriseOffer_Cars",
"surpriseOfferQualifier": "Quantity>0.0",
"surpriseOfferConditions": "Offercdn: 3xSurpriseOffer_Cars",
"surprisePointsWorth": "3.00",
"surprisePointsExpiryDate": "20220621"
}]},
"availablePartnerBenefitsPointsList": {"availableSurprisePoints": []},
"availableXROfferList": {"totalAvailableXROffers": []},
"availablePointsToRedeem": 7000,
"redeemableDollars": "7.00",
"redemptionCapDetails": {
"capDuration": "",
"capValue": "0",
"capType": ""
}
}]}
}
}
Input
HTTP Method: POST
HTTP request headers:
HTTP Header | Required | Description |
---|---|---|
Content-Type | Y | application/json |
client_id | Y | pass provided clientid |
access_token | Y | pass valid token |
Accept | Y | application/json |
Telluride EndPoint for External Clients
Environment | EndPoint |
---|---|
UAT | https://rewards.uat.telluride.shopyourway.com/tellurideAS/profile/GetRewardBalance |
PROD | https://rewards.telluride.shopyourway.com/tellurideAS/profile/GetRewardBalance |
Request Parameters
Data Element Name | Required | Data Type | Data Length | Description |
---|---|---|---|---|
memberNumber | N | String | 18 | Customers loyalty member number |
memberIdentifier | Y | String | Encrypted member number(MemberIdentifier) corresponding to member profile | |
channels | N | List | ||
pointType | N | String | Channel for which points are displayed | |
currentDate | N | String | Current Date (YYYY-MM-DD) | |
currentTime | N | String | Current Time (HH:MM:SS) | |
requestorID | N | String | RequestorId assigned during onboarding. Unique for each partner | |
storeNumber | N | String | 5-digit valid store number . For ECOM pass value as 00001 | |
messageVersion | N | String | The version number of the API to invoke |
Response Parameters
Data Element Name | Empty? | Data Type | Data Length | Description |
---|---|---|---|---|
memberNumber | N | String | 18 | Customers loyalty member number |
memberIdentifier | Y | String | Encrypted member number(MemberIdentifier) corresponding to member profile | |
firstName | Y | String | 30 | First Name of the member |
lastName | Y | String | 30 | Last Name of the member |
emailAddress | N | String | 25 | Email Address of the member |
totalAvailablePointsSummary | N | List | ||
totalAvailablePoints | N | String | Sum of Freecash, Base and Bonus points | |
totalAvailableMemberOwnPoints | N | String | Sum of Base and Bonus points | |
totalAvailableSurprisePoints | N | String | Sum of Freecash points | |
totalAvailableBasePoints | N | String | Sum of base points | |
totalAvailableBonusPoints | N | String | Sum of bonus points. | |
channelWisePointsSummary | N | List | Channel wise display of points | |
channel | N | List | ||
channelCode | N | String | Channel for which points are displayed | |
pointsPerCent | N | String | This defines the points to dollar conversion rate. | |
availablePoints | N | String | Sum of Freecash,base and Bonus points available in that channel to redeem | |
availableDollars | N | String | Dollar value corresponding to the availablePointsin the channel to redeem | |
memberOwnPoints | N | String | Total Base and Bonus points available | |
surprisePoints | N | String | Total Freecash points available in that channel | |
availableBonusPoints | N | String | Total Bonus points available in that channel to redeem | |
availableBasePoints | N | String | Total Base points available in that channel to redeem | |
restrictedPoints | N | String | Restricted points will be redeemable only on | |
availableMemberOwnPointsList | Y | List | List of 5 nearest expiring point buckets | |
memberOwnPointsToExpire | Y | List | List of 5 nearest expiring point bucket | |
memberOwnExpiryDate | Y | Date | Expiry Date in format YYYYMMDD | |
memberOwnPoints | Y | String | Total base and bonus points getting expired | |
memberOwnBasePoints | Y | String | Base points getting expired. | |
memberOwnBonusPoints | Y | String | Bonus points getting expired | |
availableSurprisePointsList | N | List | ||
availableSurprisePoints | N | List | Lists the Freecash offers available for the member | |
pointsAvailableFor | Y | String | 28 | Specifies where the points are available for redemption. |
surprisePoints | Y | Integer | 6 | Specifies how much freecash points are available on that offer to redeem. |
surprisePointsWorth | Y | Decimal | 9,2 | Specifies the dollar value worth points. |
surpriseOfferQualifier | Y | String | 14 | Specifies the restrictions (Item/Spend threshold) “Multiple Criteria” if more than one criteria |
surpriseOfferConditions | Y | String | 1000 | Specifies the conditions of the offer (location, member, product and transaction related criteria). |
surprisePointsExpiryDate | Y | Date | 10 | Specifies the date on which the offer expire. |
surprisePointsExclusion | Y | String | 15 | Specifies the offer exclusion description |
offerCode | Y | String | Specifies the offer code which qualifies | |
offerName | Y | String | Specifies the offer Name for that offer code which qualifies | |
offerStartDate | Y | Date | Start date of the offer | |
offerEndDate | Y | Date | End date of the offer | |
registrationStartDate | Y | Date | The date from which the offer is available for the member | |
registrationEndDate | Y | Date | The date till when the offer is available for the member. | |
surpriseMultiplier | Y | String | ||
offerDescription | Y | String | The description of the offer given while creating the offer. | |
offerTitle | Y | String | The title/short description of the offer given while creating the offer. | |
legalCopy | Y | String | The legal copy of the offer given while creating the offer. | |
availableXROfferList | N | List | ||
totalAvailableXROffers | N | List | Specifies the list of XR offers available for the member. | |
xROfferPointsAvailableFor | Y | String | 28 | Specifies where the points are available for redemption. |
xROfferMultiplier | Y | String | 10 | Specifies the multiplier value of the offer |
xROfferQualifier | Y | String | 14 | Specifies the restrictions (Item/Spend threshold) “Multiple Criteria” if more than one criteria |
xROfferConditions | Y | String | 1000 | Specifies the conditions of the offer (location, member, product and transaction related criteria). |
xROfferExpiryDate | Y | Date | 10 | Specifies the date on which the offer expire. |
xRPointsExclusion | Y | String | 15 | Specifies the offer exclusion description |
offerCode | Y | String | The offer code given while creating the offer | |
offerName | Y | String | Specifies the offer Name for that offer code which qualifies | |
offerStartDate | Y | Date | Start date of the offer. | |
offerEndDate | Y | Date | End date of the offe. | |
registrationStartDate | Y | Date | The date from which the offer is available for the member | |
registrationEndDate | Y | Date | The date till the offer is available for the member | |
redemptionCapDetails | N | List | Detais regarding any restrictions defined for the member on redeeming memberown points. | |
capDuration | Y | String | 28 | Duration for which member can redeem points |
capValue | Y | String | 28 | How many times the member can redeem points in the duration defined. |
capType | Y | String | 28 | The type of Duration, whether it is monthly, daily or yearly. |
availablePointsToRedeem | N | String | Just the member own points that is available to redeem now. If there is no redemption retriction defined this will be same as memberOwnPoints. | |
redeemableDollars | N | String | The dollar value corresponding to availablePointsToRedeem. | |
status | N | string | 10 | API status code |
statusText | N | String | 100 | Status text |
messageVersion | N | String | 3 | Message version |
sysPulse | N | String | 100 | The time in milliseconds it took to reply to the request. |
msg1 | Y | String | 50 | View balance and account information |
msg2 | Y | String | 50 | at shopyourwayrewards.com |
Error/Status Code
Number | Description |
---|---|
0 | Good Balance |
4 | Retry DB Error |
44 | Club ID Not Found |
99 | * Requestor Id is invalid The actual length is greater than the MaxLength value |
* StoreNumber is invalid; The actual length is greater than the MaxLength value | |
* Invalid current date. Member number is not valid or length is not proper | |
* Associate ID is invalid; The actual length is greater than the MaxLength value | |
* Indicates a problem with the input. Telluride could not perform the match |
Update Member Affinity Subscription
HTTP JSON Request
{
"memberNumber":"7081327708413301",
"affinities":[
{
"affinityNumber":"",
"affinityStatus":"A",
"affiliationCode":"SYWMAXV2",
"affinityAdditionalAttributes":"{'CCCTOKEN':'someToken'}",
"affinityStartTS":"2022-01-29T23:03:58",
"affinityEndTS":"2022-03-09T23:03:58"
}
],
"messageVersion":"06",
"requestorID":"4 char requestor id assigned during onboarding",
"storeNumber":"00001",
"terminal":"001",
"associateId":"0001"
}
HTTP JSON Response
{
"additional": {
"status": "0",
"statusText": "Success",
"sysPulse": "492ms"
},
"mtServerName": "16-215_rewards_ds1_d"
}
Overview
This service is used to link a affinity to a member’s account. Affinity denotes different programs that a member has been enrolled to. If affinityStartTS is not provided it will take the current CST timing. If affinityEndTS is not provided the affinity will be active till we end it.
Input
HTTP Method: POST
HTTP request headers
HTTP Header | Required | Description |
---|---|---|
Content-Type | Y | application/json |
client_id | Y | pass the provided clientid |
access_token | Y | pass the valid token |
Accept | Y | application/json |
EndPoint Details
Environment | EndPoint |
---|---|
UAT | https://rewards.uat.telluride.shopyourway.com/tellurideAS/profile/UpdateMemberAffinitySubscriptions |
PROD | https://rewards.telluride.shopyourway.com/tellurideAS/profile/UpdateMemberAffinitySubscriptions |
Request Parameters
Data Element Name | Required | Data Type | Length | Description |
---|---|---|---|---|
requestorID | Y | String | 4 | RequestorId assigned during onboarding. Unique for each partner |
messageVersion | Y | String | 3 | Message version |
storeNumber | N | string | 5 | 5-digit number assigned during onboarding |
memberNumber | Y | string | 18 | Either MemberNumber or MemberIdentifier is mandatory |
memebrIdentifier | Y | string | 18 | Either MemberNumber or MemberIdentifier is mandatory |
associateID | N | String | 12 | Id of logged in assosiate |
user | N | String | 20 | Name of agent who updated the member |
terminal | N | string | 3 | Terminal or register number for POS |
affiliationCode | Y | String | 8 | Code created during set up of new affiliation |
affinityAdditionalAttributes | N | Json | 1800 | Any addition details related to the association that has to be stored in json format |
affinityID | N | string | 18 | Member's ID for an affiliation |
affinityStatus | Y | String | 1 | Staus A for Active, I for Inactive , P for Pending, D for Declined |
affinityStartTS | N | String | 20 | Timestamp when member got added to this affiliation, when not provided takes current CST date and time. Format YYYY-MM-DDTHH:mm:ss |
affinityEndTS | N | String | 20 | TimeStamp when member is removed from this affiliation. Format YYYY-MM-DDTHH:mm:ss |
Response Parameters
Data Element Name | Empty? | Data Type | Data Length | Description |
---|---|---|---|---|
statusText | N | String | 100 | A text representation of the Status code. Provides additional info about the error, if any. |
messageVersion | N | String | 3 | Message version |
sysPulse | N | String | 40 | The time in milliseconds it took to reply to the request. |
status | N | string | 3 | API status code |
Error/Status Code
Status Code | Description |
---|---|
0 | Success |
1 | CLUB MEMBER NOT FOUND |
15 | MEMBER NUMBER IS NOT VALID |
30 | Invalid Member Number |
82 | UPDATE FAILED - CLUB STATUS IS INACTIVE |
82 | INVALID AFFINITY STATUS |
82 | INVALID ENROLLMENT REGISTRATION CODE |
90 | Internal Error |
99 | * MESSAGE VERSION IS REQUIRED |
* MEMBER NUMBER IS REQUIRED | |
* MEMBER NUMBER IS NOT VALID | |
* STORE NUMBER IS INVALID | |
* TERMINAL NUMBER IS INVALID | |
* Requestor Id invalid | |
* ASSOCIATE ID IS INVALID | |
* MESSAGE VERSION IS NOT VALID | |
* AFFINITY STATUS IS REQUIRED | |
* AFFINITY STATUS DATA LENGTH NOT MATCHING | |
* AFFILIATION CODE IS REQUIRED |
GetMemberAffinitySubscriptions
HTTP JSON Request
{
"messageVersion":"04",
"requestorID":"4 char requestor id assigned during onboarding",
"memberNumber":"7081327708413301"
}
HTTP JSON Response
{
"affinities":{
"affinity":[
],
"affinityExtended":[
],
"affinityForMemberPricing":[
{
"affinityStartDate":"2018-03-07",
"associateId":"xoffdev1",
"storeNumber":"",
"terminal":"",
"requestorID":"",
"affinityID":"0",
"affiliationCode":"KIDVANTG",
"affinityStatus":"A",
"offerCode":""
},
{
"affinityStartDate":"2022-03-02",
"associateId":"",
"storeNumber":"",
"terminal":"",
"requestorID":"",
"affinityID":"0",
"affiliationCode":"SYWMENRL",
"affinityStatus":"A",
"offerCode":""
},
{
"affinityStartDate":"2018-08-17",
"associateId":"",
"storeNumber":"",
"terminal":"",
"requestorID":"",
"affinityID":"0",
"affiliationCode":"SYWMPILT",
"affinityStatus":"A",
"offerCode":""
},
{
"affinityStartDate":"2022-03-24",
"associateId":"",
"storeNumber":"",
"terminal":"",
"requestorID":"",
"affinityID":"0",
"affiliationCode":"SYWUNFI",
"affinityStatus":"A",
"offerCode":""
}
]
},
"mtServerName":"16-55_rewards_ds1",
"additional":{
"status":"0",
"statusText":"Success",
"sysPulse":"118ms"
}
}
Overview
This API will provide all the affinities the member is associated with.
Input
HTTP Method: POST
HTTP request headers:
HTTP Header | Required | Description |
---|---|---|
Content-Type | Y | application/json |
client_id | Y | pass provided clientid |
access_token | Y | pass valid token |
Accept | Y | application/json |
Telluride EndPoint for External Clients
Environment | EndPoint |
---|---|
UAT | https://rewards.uat.telluride.shopyourway.com/tellurideAS/profile/GetMemberAffinitySubscriptions |
PROD | https://rewards.telluride.shopyourway.com/tellurideAS/profile/GetMemberAffinitySubscriptions |
Request Parameters
Data Element Name | Required | Data Type | Data Length | Description |
---|---|---|---|---|
MemberNumber | Y | string | 16 | Customers loyalty member number |
MessageVersion | Y | string | 2 | The version number of the API to invoke |
RequestorID | Y | String | 4 | RequestorId assigned during onboarding. Unique for each partner |
StoreNumber | N | string | 5 | Store number |
Terminal | N | string | 3 | Terminal or register number for POS |
AssociateId | N | String | 12 | Id of logged in assosiate |
CurrentDate | N | string | 10 | Affinities active as of this date will be returned in the response (YYYY-MM-DD). |
CurrentTime | N | String | 8 | Affinities active as of this time will be returned in the response (HH:MM:SS) |
Response Parameters
Data Element Name | Empty? | Data Type | Data Length | Description |
---|---|---|---|---|
MemberNumber | N | String | 16 | The member number from input |
MessageVersion | N | String | 2 | The version number of the API to invoke from input |
Per Affinity | It is an Array. This feature provides ability to list various affiliations of the member. | |||
AffinityID | Y | Integer | 18 | Member''s ID for an affiliation |
AffinityStatus | Y | String | 1 | Affiliation status of the member.A for Active, I for Inactive , P for Pending, D for Declined |
AffiliationCode | Y | String | 8 | Code created during set up of new affiliation |
CreatedBy | Y | String | 50 | Affinity created by |
AffinityStartDate | Y | DateTime | 10 | Member''s affiliation start date |
AffinityEndDate | Y | DateTime | 10 | Member''s affiliation end date |
Status | N | String | 3 | API status code |
StatusText | N | String | 100 | Description of status code |
MessageVersion | N | String | 3 | The version number of the API to invoke |
SysPulse | N | String | 40 | The time in milliseconds it took to reply to the request. |
Error/Status Code
Status Code | Description |
---|---|
0 | Successful Call |
1 | CLUB MEMBER NOT FOUND INACTIVE MEMBER GetMemberAffinitySubscriptions Failed |
30 | Invalid Member Number |
99 | STRUCTURAL VALIDATION ERRORS |
MEMBER NUMBER IS REQUIRED | |
INVALID MEMBER NUMBER | |
MESSAGE VERSION IS REQUIRED | |
MESSAGE VERSION IS NOT VALID |
Process Redemption
HTTP JSON Request
{
"OrderId":8207,
"Preview":"Y",
"Function":"R",
"LineItems":[
{
"Division":"1",
"ItemType":"1",
"Quantity":1,
"ItemNumber":"10001",
"LineNumber":1,
"LineRequestorId":"RAIS",
"DollarValuePreDisc":"10.00",
"DollarValuePostDisc":"10.00",
"LineOrderStoreNumber":"001",
"LinePickUpStoreNumber":"99001",
"LineItemAmountTypeCode":"1",
"RedemptionExclusionFlag":"N"
}
],
"RequestorID":"<provided requestorId>",
"MemberNumber":"7081317696526669",
"ApplyFunction":"A",
"MessageVersion":"12",
"RegisterNumber":"000",
"TransactionDate":"2022-02-04",
"TransactionTime":"10:19:14",
"OrderStoreNumber":"09305",
"RedemptionPoints":"10000",
"PickUpStoreNumber":"00001",
"TransactionNumber":9957,
"MaxRedeemablePoints":"0",
"ShowQualifiedOffers":"Y",
"RedemptionDollarValue":"10.0",
"MaxRedeemableDollarValue":"0"
}
HTTP JSON Response
{
"MemberNumber":"7081317696526669",
"PickUpStoreNumber":"00001",
"OrderStoreNumber":"09305",
"RegisterNumber":"000",
"TransactionNumber":"9957",
"OrderId":"8207",
"TransactionDate":"2022-02-04",
"TransactionTime":"10:19:14",
"RedemptionPoints":10000,
"RedemptionDollarValue":"10.00",
"MaxRedeemablePoints":10000,
"MaxRedeemableDollarValue":"10.00",
"TotalAvailableRewardPoints":8405,
"AuthorizationCode":"TSKFCQ8K",
"MaxRedeemableMemberOwnPoints":10000,
"MaxRedeemableMemberOwnPointsDollarValue":"10.00",
"MaxRedeemableSurprisePoints":0,
"MaxRedeemableSurprisePointsDollarValue":"0.00",
"TotalAvailableMemberOwnPoints":18405,
"TotalAvailableMemberOwnPointsDollarValue":"18.41",
"TotalAvailableSurprisePoints":0,
"TotalAvailableSurprisePointsDollarValue":"0.00",
"MaxRedeemableSurprisePointsList":{
"RedeemableSurprisePoints":[
]
},
"TotalAvailableSurprisePointsList":{
"AvailableSurprisePoints":[
]
},
"TotalQualifiedXRPointsList":{
"QualifiedXRPoints":[
{
"XROfferPointsAvailableFor":"SYW_Base_1X",
"XROfferMultiplier":"1.0",
"XROfferQualifier":"Spend>0.01",
"XROfferExpiryDate":"2035-10-15",
"XRPointsExclusion":"Coupons",
"OfferCode":"SYW_Base_1X",
"OfferEndDate":"2035-10-15"
},
{
"XROfferPointsAvailableFor":"Rais XR offer",
"XROfferMultiplier":"1.0",
"XROfferQualifier":"Spend>0.01",
"XROfferExpiryDate":"2035-05-11",
"XRPointsExclusion":"Coupons",
"OfferCode":"RAIS_Multi_MCard",
"OfferEndDate":"2035-05-11"
}
]
},
"MaxRedeemableXRPointsList":{
"RedeemableXRPoints":[
{
"XROfferPointsAvailableFor":"Rais XR offer",
"XROfferMultiplier":"1X",
"XROfferQualifier":"Spend>0.01",
"XROfferConditions":"SYW offer",
"XROfferExpiryDate":"2035-05-11",
"XRPointsExclusion":"Coupons",
"OfferDescription":"",
"OfferTitle":"",
"OfferEndDate":"",
"LegalCopy":""
}
]
},
"TotalAvailableXRPointsList":{
"AvailableXRPoints":[
{
"XROfferPointsAvailableFor":"Rais XR offer",
"XROfferMultiplier":"1X",
"XROfferQualifier":"Spend>0.01",
"XRPointsExclusion":"Coupons"
},
{
"XROfferPointsAvailableFor":"SYW_Base_1X",
"XROfferMultiplier":"1X",
"XROfferQualifier":"Spend>0.01",
"XRPointsExclusion":"Coupons"
}
]
},
"LineItems":{
"LineItem":[
{
"LineNumber":"1",
"ItemType":"1",
"Division":"1",
"ItemNumber":"10001",
"LineItemAmountTypeCode":"1",
"LineRequestorId":"RAIS",
"LineOrderStoreNumber":"001",
"LinePickUpStoreNumber":"99001",
"DollarValuePreDisc":"10.00",
"DollarValuePostDisc":"10.00",
"PriceMatchAmount":"0.00",
"PriceMatchBonusAmount":"0.00",
"Quantity":"1.0",
"PointsRedeemed":"10000",
"DollarValueOfPointsRedeemed":"10.00",
"RedemptionExclusionFlag":"N",
"TaxAmount":"0.00",
"PostSalesAdjustmentAmount":"0.00",
"RedemptionOffersList":{
"RedemptionOffer":[
{
"OfferCode":"RAIS_Multi_MCard",
"RedemptionMultiplier":"1",
"OfferPointsRedeemed":10000,
"RedeemedPointsOriginalDollarValue":10,
"RedeemedPointsXRDollarValue":10,
"RedeemedXRPointsWorth":10000,
"RedemptionCapDollarValue":0,
"OfferType":"X",
"OfferSubType":"BASE",
"RedemptionOfferMultiplierAndCapTxt":"1X CAP $0",
"MemberOwnPointsRedeemed":"10000",
"DollarValueOfMemberOwnPointsRedeemed":"10.00",
"SurprisePointsRedeemed":"0",
"DollarValueOfSurprisePointsRedeemed":"0.00",
"OfferDescription":"",
"OfferTitle":"",
"OfferEndDate":"2035-05-11 23:59:59",
"LegalCopy":"",
"MapOfferName":"Shop Your Way offer"
}
]
},
"NonMemberPrice":"0.00"
}
]
},
"ResponseText":"SUCCESS",
"PointsToExpire":8405,
"PointExpirationDate":"2023-03-31",
"PointsRedeemedOnBaseOffer":"0",
"DollarValueOfPointsRedeemedOnBaseOffer":"0.00",
"PointsRedeemedOnBonusOffer":"10000",
"DollarValueOfPointsRedeemedOnBonusOffer":"10.00",
"Additional":{
"msg1":{
},
"msg2":{
},
"Status":"0",
"StatusText":"SUCCESS",
"MessageVersion":"12",
"SysPulse":"168ms"
},
"MTServerName":"24-198_rewards_ds3"
}
Overview
This API is to redeem points as well as check point balance available for member to redeem for a purchase.
Input
HTTP Method: POST
HTTP request headers
HTTP Header | Required | Description |
---|---|---|
Accept | Y | application/json |
Content-Type | Y | application/json |
access_token | Y | pass the access token |
client_id | Y | pass the clientid |
Telluride EndPoint for External Clients
Environment | EndPoint |
---|---|
UAT | https://rewards.uat.telluride.shopyourway.com/tellurideAS/transaction/ProcessRedemption |
PROD | https://rewards.telluride.shopyourway.com/tellurideAS/transaction/ProcessRedemption |
Request Parameters
Data Element Name | Required | Type | Length | Description |
---|---|---|---|---|
MessageVersion | Y | String | 3 | The version number of the API to invoke |
Function | Y | String | 1 | R - Redemption, B - Points Balance inquiry, V - voiding/reversing redemption |
RequestorID | Y | String | 4 | RequestorId assigned during onboarding. Unique for each partner |
MemberNumber | Y | String | 18 | Either MemberNumber or MemberIdentifier is mandatory |
MemberIdentifier | Y | string | 64 | Either MemberNumber or MemberIdentifier is mandatory |
PickUpStore enumber | Y | String | 5 | Pick up store number |
OrderStore Number | Y | string | 5 | Order Store Number |
RegisterNumber | Y | string | 3 | Identifies register Number |
Transaction Date | Y | String | 10 | Transaction date in "YYYY-MM-DD" format |
Transaction TIme | Y | string | 8 | Transaction Time in "HH.MM.SS" format |
AssociateID | Y | String | 12 | Associate id |
RedemptionPoints | Y | Integer | 10 | Points to be redeemed |
RedemptionDollarValue | N | Decimal | 10 | DollarValue corresponding to the points to be redeemed |
MaxRedeemablePoints | N | Integer | 10 | Maximum points that can be redeemed from member''s own points |
MaxRedeemableDollarValue | N | Decimal | 10 | Dollarvalue corresponding to the maximum redeemable points. |
AuthorizationCode | N | String | 10 | Used for voiding redemption request. The authorization code of the original redemption which has to be voided. |
TransactionNumber | N | String | 16 | Unique transaction number |
OrderId | N | String | 40 | Unique order id. Single order can have multiple transactions. |
ApplyFunction | N | String | 1 | Flag to determine which points should be redeemed. |
A : MemberOwnPoints, FreeCash points and Deals will be considered for redemption. | ||||
M: Only MemberOwnPoints will be considered for redemption. | ||||
F : Only FreeCash points will be considered for redemption. | ||||
S : Only the selected offers in the request will be considered for redemption. | ||||
G : Guest redemption, which is used only for Deals redemption. No member number is needed for this redemption | ||||
P : MemberOwnPoints and FreeCash points will only be considered for redemption. | ||||
ShowQualifiedOffers | N | String | 1 | Show qualified offers during redemption Y, N or Blank |
Preview | N | String | 1 | To Test Deals Offers which are activated , but not live currently. |
MaxRedeemableMemberOwnPoints | N | String | 10 | Specify the maximum memberown points that can be redeemed |
MemberSelectedOffers | N | List | List of MemberSelected offer | |
OfferCode | N | String | 30 | Member selected offer code |
Priority | N | String | 10 | Member given priority of selected offer for redemation |
PerLineItem | ||||
LineNumber | Y | String | 4 | Line number in sequence starting from 1 |
ItemType | Y | String | 1 | Item type 1 = Sale, 2 = Return, 3 = Sales Adjustment,8=Sales Adjustment Void |
Division | Y | String | 3 | Division/Category the item belongs to. |
ItemNumber | Y | String | 9 | Identifies an item |
SKU | N | String | 3 | Refers to the stock keeping unit |
UPC | Y | String | 13 | Universal Product Code |
LineItemAmountTypeCode | Y | String | 2 | Line Item Amount type code 1 = Regular, 2 = Promotional, 3 = Clearance, 4 = Last sales price, 5 = PLU override, 6 = PLU override (notified host), 8 = Non Scan(Kmart), 9 = Regular (Kmart), 17 = Percent off (Kmart), 18 = Clearance (Kmart), 20 = Member pricing item |
LineRequestorId | N | String | 4 | Line Item requestor ID, applicable for mixed cart |
LineOrderStoreNumber | N | String | 5 | Order store number, applicable for mixed cart |
LinePickUpStoreNumber | N | String | 5 | Pickup store number, applicable for mixed cart |
BaseDollarValue | N | String | 10 | To specify the Regular Price |
DollarValuePreDisc | Y | String | 10 | Dollar value before the discount applied |
DollarValuePostDisc | Y | String | 10 | Dollar value after the discount applied |
PriceMatchAmount | N | String | 10 | Price Match Amount |
PriceMatchBonusAmount | N | String | 10 | Price Match Bonus Amount |
Quantity | Y | String | 4 | Item Quantity |
PointsRedeemed | N | String | 9 | Redeemed Points |
DollarValueOfPointsRedeemed | N | String | 10 | Redeemed dollar value |
RedemptionExclusionFlag | Y | String | 1 | Redemption exclusion flag Y : Do not consider this item for redemption . N or Empty - Consider this item for redemption |
LayawayFlag | N | String | 1 | Layaway indicator |
TaxAmount | N | String | 10 | Tax for the item |
PostSalesAdjustmentAmount | N | String | 10 | Adjusted amount after the sale |
NonMemberPrice | N | String | 10 | This indicates the Nonmember price |
MapCompliance | N | String | 1 | To indicate whether item is a MapCompilant one or not |
ShippingAmount | N | String | 10,2 | The shipping charge of the item |
PerLineAttribute (per item) | ||||
LineAttributeKey | N | String | 30 | To specify the attribute name of the lineitem |
LineAttribute Value | N | String | 30 | To specify the value for the corresponding attribute |
PerCoupon (per item) | ||||
CouponNumber | N | String | 18 | Coupon Number |
DiscountAmount | N | String | 10 | Discounted Amount |
CouponType | N | String | 1 | Coupon Type 1 = Manufacturer or 2 = Store |
AlternateCouponDecision | N | String | 1 | The customer decision to either earn points or avail discount. Value P indicates the coupon to earn points from Alternate pricing offer. Value D indicates the coupon will not earn point from the Alternate pricing offer. values can be P & D |
OfferCode | N | String | 20 | Offer Code |
Response Parameters
Data Element Name | Empty? | Data Type | Length | Description |
---|---|---|---|---|
PerCall | ||||
MemberNumber | N | String | 16 | Club member number |
PickUpStorenumber | N | String | 5 | Pickup store number |
OrderStoreNumber | N | String | 5 | store where order took place |
RegisterNumber | N | String | 3 | Identifies register |
TransactionDate | N | String | 10 | Transaction Date in YYYY-MM-DD format |
TransactionTime | N | String | 8 | Transaction Time in HH.MM.SS format |
TimeZone | Y | String | 12 | Transmission time zone |
AssociateID | N | String | 12 | Callers email address or associate id |
RedemptionPoints | N | String | 9 | Points to be redeemed Example |
RedemptionDollarValue | N | String | 9 | Dollars to be redeemedExample |
MaxRedeemablePoints | N | String | 9 | Maximum redeemable points |
MaxRedeemableDollarValue | N | Decimal | 10,2 | Maximum redeemable dollar value |
TotalAdjustmentAmount | N | Decimal | 10,2 | Total deals discount that gets applied to the cart |
TotalAvailableRewardPoints | N | String | 9 | Total points for the member at that time/for the specified cart. |
LayawayFlag | Y | String | 1 | This flag should be sent only at the first installment. 'Y' - Item is layawayed 'N' / SPACES - Item not layawayed |
AuthorizationCode | N | String | 10 | Unique alphanumeric value |
MaxRedeemableMemberOwnPoints | Y | Integer | 10 | Maximum redeemable points for the member at that time/for the specified cart. (Member Own Points). |
MaxRedeemableMemberOwnPointsDollarValue | Y | Decimal | 10,2 | Specifies the dollar value worth points. |
MaxRedeemableSurprisePoints | Y | Integer | 10 | Specifies the details about surprise points |
MaxRedeemableSurprisePointsDollarValue | Y | Decimal | 10,2 | Specifies the dollar value worth points. |
TotalAvailableMemberOwnPoints | Y | Integer | 10 | Total points for the member at that time/for the specified cart. (Member own Points) |
TotalAvailableMemberOwnPointsDollarValue | Y | Decimal | 10,2 | Specifies the dollar value worth points. |
TotalAvailableSurprisePoints | Y | Integer | 10 | Total points for the member at that time/for the specified cart. (Surprise Points) |
TotalAvailableSurprisePointsDollarValue | Y | Decimal | 10,2 | Specifies the dollar value worth points. |
AlwaysStackingCoupons | ||||
CouponNumber | N | String | 18 | CouponNumbers that always stack with XR and freecash offers |
MaxRedeemableSurprisePointsList | ||||
RedeemableSurprisePoints | N | List | Specifies the details about surprise points | |
PointsAvailableFor | N | String | 28 | Specifies where the points are available for redemption. |
SurprisePoints | N | Integer | 6 | Specifies the details about surprise point. |
SurprisePointsWorth | N | Decimal | 10,2 | Specifies the dollar value worth points. |
SurpriseOfferQualifier | N | String | 14 | Specifies the restrictions "Multiple Criteria" if more than one criteria |
SurpriseOfferConditions | N | String | 1000 | Specifies the conditions of the offer |
SurprisePointsExpiryDate | N | Date | 10 | Specifies the date on which the offer expire. |
SurprisePointsExclusion | N | String | 15 | Specifies the Points Exclusion for redemption |
TotalAvailableSurprisePointsList | ||||
AvailableSurprisePoints | N | List | Specifies the details about surprise points | |
PointsAvailableFor | N | String | 28 | Specifies where the points are available for redemption. |
SurprisePoints | N | Integer | 6 | Specifies the details about surprise point. |
SurprisePointsWorth | N | Decimal | 10,2 | Specifies the dollar value worth points. |
SurpriseOfferQualifier | N | String | 14 | Specifies the restrictions "Multiple Criteria" if more than one criteria |
SurpriseOfferConditions | N | String | 1000 | Specifies the conditions of the offer. This will have text Provided by liquidity team during offer creation |
SurprisePointsExpiryDate | N | String | 10 | Specifies the date on which the offer expire. YYYY-MM-DD format. |
SurprisePointsExclusion | N | String | 15 | Specifies the Points Exclusion for redemption |
MaxRedeemableXRPointsList | ||||
RedeemableXRPoints | N | List | Specifies the details about maximum redeemable XR points | |
XROfferPointsAvailableFor | N | String | 28 | Specifies where the XRPoints are available for redemption. |
XROfferMultiplier | N | String | 10 | Specifies The XROffer multiplier |
XROfferQualifier | N | String | 14 | Specifies the restrictions "Multiple Criteria" if more than one criteria |
XROfferConditions | N | String | 1000 | Specifies the conditions of the offer |
XROfferExpiryDate | N | String | 10 | Specifies the date on which the XRoffer expire. YYYY-MM-DD format. |
XRPointsExclusion | N | String | 15 | Specifies the XRPoints Exclusion for redemption |
TotalAvailableXRPointsList | ||||
AvailableXRPoints | N | List | Specifies the details about total available XR points | |
XROfferPointsAvailableFor | N | String | 28 | Specifies where the XRPoints are available for redemption. |
XROfferMultiplier | N | String | 10 | Specifies The XROffer multiplier |
XROfferQualifier | N | String | 14 | Specifies the restrictions "Multiple Criteria" if more than one criteria |
XROfferConditions | N | String | 1000 | Specifies the conditions of the offer |
XROfferExpiryDate | N | String | 10 | Specifies the date on which the XRoffer expire. YYYY-MM-DD format. |
XRPointsExclusion | N | String | 15 | Specifies the XRPoints Exclusion for redemption |
ResponseText | N | String | 50 | Status |
PointsRedeemedOnBaseOffer | Y | String | 9 | Points Redeemed On Base Offer |
PointsRedeemedOnBonusOffer | Y | String | 9 | Points Redeemed On Bonus Offer |
DollarValueOfPointsRedeemedOnBaseOffer | Y | String | 10,2 | Dollar redeemed on base offer |
DollarValueOfPointsRedeemedOnBonusOffer | Y | String | 10,2 | Dollar redeemed on bonus offer |
TotalQualifiedSurprisePointsList | ||||
QualifiedSurprisePoints | Y | List | Specifies the details about surprise points | |
PointsAvailableFor | N | String | 28 | Specifies where the points are available for redemption. |
SurprisePoints | N | Inetger | 6 | Specifies the details about surprise point. |
SurprisePointsWorth | N | String | 14 | Specifies the restrictions |
SurpriseOfferConditions | N | String | 1000 | Specifies the conditions of the offer |
SurprisePointsExpiryDate | N | String | 10 | Specifies the date on which the offer expire. |
SurprisePointsExclusion | N | String | 15 | Specifies the Points Exclusion for redemption |
ExcludedCoupons | Y | List | List of strings excluded coupon number | |
IncludedCoupons | Y | List | List of strings included coupon number | |
TotalQualifiedXRPointsList | ||||
TotalQualifiedXRPoints | Y | List | Specifies the details about total available XR points | |
XROfferPointsAvailableFor | N | String | 28 | Specifies where the XRPoints are available for redemption. |
XROfferMultiplier | N | String | 10 | Specifies The XROffer multiplier |
XROfferQualifier | N | String | 14 | Specifies the restrictions "Multiple Criteria" if more than one criteria |
XROfferConditions | N | String | 1000 | Specifies the conditions of the offer. This will have text Provided by liquidity team during offer creation |
XROfferExpiryDate | N | String | 10 | Specifies the date on which the XRoffer expire. YYYY-MM-DD format. |
XRPointsExclusion | N | String | 15 | Specifies the XRPoints Exclusion for redemption |
ExcludedCoupons | Y | List | Excluded coupon number | |
IncludedCoupons | Y | List | Included coupon number | |
PerLineItem | ||||
LineNumber | N | String | 4 | Line 1, Line 2, etc.Starting at 1.less than 4 characters |
ItemType | N | String | 1 | Valid values are 1 = Sale2 = Return3 = Sales Adjustment4 = Allowance5= Coupon (sears) 7 = Manufacturers Coupon (Kmart only) 8 = Sales Adjustment Void |
Division | N | String | 3 | Product division |
ItemNumber | N | String | 9 | Item Number / KSN ID / Miscellaneous Acct NO. less than 9 characters |
SKU | Y | String | 3 | Refers to the stock keeping unit |
UPC | N | String | 13 | Universal Price Code |
CouponNumber | Y | String | 8 | Coupon number |
LineItemAmountTypeCode | N | String | 2 | Valid values are 1 = Regular 2 = Promotional 3 = Clearance 4 = Last sales price 5 = PLU override 6 = PLU override (notified host) 7 = RTV Override Price 8 = Non Scan(Kmart) 9 = Regular (Kmart) 10 = Competitive(Kmart) 11 = Misc(Kmart) 12 = Override(Kmart) 13 = Adv/ Promo(Kmart)14 = Cents off(Kmart) 15 = Adv/ Coupon(Kmart )16 = Rain check/Price (Kmart)Promise 17 = Percent off (Kmart) 18 = Clearance (Kmart) 20 = Member pricing item |
LineRequestorId | N | String | 4 | If the product is owned by a different seller, than from which request is coming from. Mainly used where there are marketplace products are sold. |
LineOrderStoreNumber | N | String | 5 | Order store number |
LinePickUpStoreNumber | N | String | 5 | Pickup store number |
DollarValuePreDisc | Y | String | 10 | Dollar value before the discount |
DollarValuePostDisc | Y | String | 10 | Dollar value after the discount |
PriceMatchAmount | N | String | 10 | |
PriceMatchBonusAmount | N | String | 10 | |
ShippingAmount | N | String | 10 | |
Quantity | N | String | 4 | No of quantities |
RedemptionExclusionFlag | N | String | 1 | If the value is Y, the item will not be considered for redemption.N -Consider this item for redemption |
NonMemberPrice | N | Decimal | 10,2 | This indicates the Nonmember price |
PointsRedeemed | N | String | 9 | Redeemed points |
DollarValueOfPointsRedeemed | N | String | 10 | Redeemed dollar value |
LayawayFlag | Y | String | 1 | To specify whether item is purchases using Layaway or not |
TaxAmount | Y | String | Indicates the tax corresponding to the item | |
Status | Y | String | 10 | Status code |
StatusText | Y | String | 100 | Status message |
PerAdjustment (per item) | ||||
PromoId | Y | String | 20 | PromoId corresponding to coupon that is applied |
PromoCode | Y | String | 20 | Coupon code corresponding to coupon that is applied |
PromoType | Y | String | 10 | Type of coupon whether |
PromoMultiplier | Y | String | ||
Amount | Y | String | Discount amount that we get by applying the coupon | |
ShortDescription | Y | String | 100 | Description of the corresponding promotion |
OfferTitle | Y | String | 100 | Description of the coupon |
EndDate | Y | String | 20 | End date of coupon |
ExclusionText | Y | String | 1000 | Coupon details |
PerDCAdjustment (per Item) | ||||
PromoId | Y | String | 20 | PromoId corresponding to coupon that is applied |
PromoCode | Y | String | 20 | Coupon code corresponding to coupon that is applied |
PromoType | Y | String | 10 | Type of coupon whether |
PromoMultiplier | Y | String | ||
Amount | Y | String | Discount amount that we get by applying the coupon | |
ShortDescription | Y | String | 100 | Description of the corresponding promotion |
OfferTitle | Y | String | 100 | Description of the coupon |
EndDate | Y | String | 20 | End date of coupon |
ExclusionText | Y | String | 1000 | Coupon details |
PerLineItemAttribute (per Item) | ||||
LineAttributeKey | Y | String | 30 | To specify the attribute name of the lineitem |
LineAttribute alue | Y | String | 30 | To specify the value for the corresponding attribute |
RedemptionOffersList (per Item) | ||||
RedemptionOffer (per offer) | ||||
OfferCode | Y | String | 20 | Offer Number |
RedemptionMultiplier | Y | String | 10 | Multiplier (1000 points = 1 dollar = 1X) |
OfferPointsRedeemed | Y | String | 9 | Redeemed points |
RedeemedPointsOriginalDollarValue | Y | Decimal | 10,2 | Dollar value equal to base points |
RedeemedPointsXRDollarValue | Y | Decimal | 10,2 | Redeemed dollar value except base redemption |
RedeemedXRPointsWorth | Y | String | 9 | Redeemed points except base points |
RedemptionCapDollarValue | Y | Decimal | 10,2 | Dollar cap for that offer |
OfferType | Y | String | 1 | Base or XR |
RedemptioOfferMultiplierAndCapTxt | Y | String | 17 | Multiplier with dollar cap value |
MemberOwnPointsRedeemed | Y | String | 10 | Specifies the Member Own points redeemed per line item. |
DollarValueOfMembeOwnPointsRedeemed | Y | String | 10 | Dollar Values corresponding to the member own points redeemed |
SurprisePointsRedeemed | Y | String | 10 | Specifies the surprise points redeemed for a line item. |
DollarValueOfSurprisePointsRedeemed | Y | String | 10 | Dollar Values corresponding to the surprise points redeemed |
ResponseText | Y | String | 1 | Indicates duplicate response or not |
PointsToExpire | Y | String | ||
PointsExpirationDate | Y | String | 9 | |
PointsRedeemedOnBaseOffer | Y | String | 9 | Show the points redeemed using the Base 1X offer |
DollarValueOfPointsRedeemedOnBaseOffer | Y | String | 9 | Show the dollar value corresponding to the points that redeemed on Base 1X offer |
PointsRedeemedOnBonusOffer | Y | String | 9 | Show the points redeemed using all bonus offers |
DollarValueOfPointsRedeemedOnBonusOffer | Y | String | 9 | Show the dollar value corresponding to the points that redeemed on all bonus offers |
Additional | ||||
Status | N | String | 3 | API status code |
StatusText | N | String | 100 | A text representation of the Status code. Provides additional information about the error, if any. |
MessageVersion | N | String | 3 | The message version of the reply. |
SysPulse | N | String | 100 | The time in milliseconds it took to reply to the request. |
Error/Status Code
Status Code | Description |
---|---|
00 | Good Response |
01 | Points Not Available |
03 | Invalid Member Number/Password |
30 | No member found |
31 | Member's status is Suspended |
32 | Member's status is Inactive |
33 | Member's status is Merge and alternate member not found or not active |
90 | Database Error occurred. |
91 | Required Balance inquiry. |
93 | Redemption already voided |
94 | Points not valid |
99 | Message Version is invalid / Structural Validation Errors |
35 | Member's status is Pending Verified |
ProcessEarn
HTTP JSON Request
{
"EarnFlag":"E",
"LineItems":{
"LineItem":[
{
"Division":"01",
"ItemType":"1",
"Quantity":"5",
"ItemNumber":"SKU124",
"LineNumber":"1",
"LineAttributes":{
"LineAttribute":[
{
"LineAttributeKey":"identifier",
"LineAttributeValue":"Groc"
},
{
"LineAttributeKey":"subcategory1",
"LineAttributeValue":"Grocery"
},
{
"LineAttributeKey":"itemDescription",
"LineAttributeValue":"RICES"
},
{
"LineAttributeKey":"sku",
"LineAttributeValue":"000"
}
]
},
"ComissionAmount":"25",
"LineRequestorId":"SCLB",
"DollarValuePostDisc":"100",
"LineOrderStoreNumber":"2"
}
]
},
"TenderList":{
"Tender":[
{
"TenderType":"XX",
"TenderAmount":"10"
}
]
},
"RequestorID":"LEAP",
"StoreNumber":"00001",
"MemberNumber":"7081317701355161",
"AttributeList":{
"Attribute":[
{
"AttributeKey":"btn_ref",
"AttributeValue":"srctok-bdf4d92946cd1e83"
},
{
"AttributeKey":"category",
"AttributeValue":"new-user-order"
},
{
"AttributeKey":"currency",
"AttributeValue":"USD"
},
{
"AttributeKey":"publisher_organization",
"AttributeValue":"org-72a5f88e44b278a8"
},
{
"AttributeKey":"channel",
"AttributeValue":"SYWMAX"
},
{
"AttributeKey":"showAllQualifiedOffers",
"AttributeValue":"Y"
}
]
},
"MessageVersion":"05",
"TransactionDate":"2021-12-01",
"OrderStoreNumber":"1",
"TransactionTotal":"10",
"TransactionNumber":9989
}
HTTP JSON Response
{"ProcessEarnResult": {"ProcessEarnReply": [{
"MTServerName": "16-224_rewards_ds3",
"Additional": {
"msg1": "View balance and account information",
"msg2": "at shopyourwayrewards.com",
"Status": "0",
"StatusText": "SUCCESS",
"MessageVersion": "05",
"SysPulse": "265ms"
},
"Type": "PROCESSED",
"MemberNumber": "7081317701355161",
"BasePointsEarned": "0",
"BonusPointsEarned": 17500,
"PointsRedeemedOnBaseOffer": "0",
"DollarValueOfPointsRedeemedOnBaseOffer": "0.00",
"PointsRedeemedOnBonusOffer": "0",
"DollarValueOfPointsRedeemedOnBonusOffer": "0.00",
"TotalPointsEarned": "17530",
"PointDebit": "0",
"CurrencyDebit": "0",
"MemberSavingsDollarValue": "0.00",
"TimeZone": "CST",
"BonusPointsSummary": {
"TxnEarnOffers": {"TxnEarnOffer": [ {
"TxnEarnOfferCode": "BLCSAMSCLUB001",
"TxnEarnOfferName": "Points earned at Sam's Club",
"TxnEarnOfferReceiptDesc": "SYW Affiliate",
"TxnEarnOfferType": "BONUS",
"TxnPointsEarned": 17500,
"TxnItemLevelOffer": "N",
"TxnPointsEarnedTxt": "SYW Affiliate: 17500"
}]},
"CouponBonusPointsEarned": 0,
"CouponBonusPointsEarnedTxt": "SYW CPN BONUS PTS: 0",
"OtherBonusPointsEarned": 17500,
"OtherBonusPointsEarnedTxt": "SYW NON CPN BONUS PTS: 17500",
"TotalBonusPointsEarned": 17500,
"TotalBonusPointsEarnedTxt": "BONUS POINTS EARNED: 17500"
},
"Messages": {"Message": [
"You are a BONUS Member",
"Current Points Balance: 17,530",
"Base Points Earned: 0",
"Bonus Points Earned: 17,500"
]},
"TenderList": {},
"LineItems": {"LineItem": [ {
"LineNumber": "1",
"ItemType": "1",
"Division": "1",
"ItemNumber": "SKU124",
"LineItemAmountTypeCode": "1",
"LineRequestorId": "SCLB",
"LineOrderStoreNumber": "2",
"DollarValuePreDisc": "100.00",
"DollarValuePostDisc": "100.00",
"PriceMatchAmount": "0.00",
"PriceMatchBonusAmount": "0.00",
"Quantity": "5.0",
"BasePoints": 0,
"OtherPoints": 17500,
"CouponPoints": 0,
"EarnOffers": {"EarnOffer": [ {
"EarnOfferCode": "BLCSAMSCLUB001",
"EarnOfferName": "Points earned at Sam's Club",
"EarnOfferReceiptDesc": "SYW Affiliate",
"EarnOfferType": "BONUS",
"PointsEarned": 17500,
"ItemLevelOffer": "N",
"PointsEarnedTxt": "SYW Affiliate: 17500",
"ProgramType": "SYWMAX",
"ProgramSubType": "mission",
"OfferCategory": "SINGLETRAN",
"EarnType": "PointPerDollar"
}]},
"QualifiedOffers": {"QualifiedOffer": [ {
"EarnOfferCode": "YTD2022",
"EarnOfferName": "To track the YTD spend for 2022",
"EarnOfferReceiptDesc": "YTD2022",
"EarnOfferType": "BONUS",
"PointsEarned": 0,
"ItemLevelOffer": "N",
"PointsEarnedTxt": "YTD2022: 0",
"ProgramType": "YTD",
"OfferCategory": "SINGLETRAN",
"EarnType": "FlatPoints"
}]},
"MissedOffers": {},
"PointsRedeemed": "0",
"DollarValueOfPointsRedeemed": "0.00",
"TaxAmount": "0.00",
"PostSalesAdjustmentAmount": "0.00",
"NonMemberPrice": "0.00",
"LineAttributes": {"LineAttribute": [
{
"LineAttributeKey": "identifier",
"LineAttributeValue": "Groc"
},
{
"LineAttributeKey": "subcategory1",
"LineAttributeValue": "Grocery"
},
{
"LineAttributeKey": "itemDescription",
"LineAttributeValue": "RICES"
},
{
"LineAttributeKey": "sku",
"LineAttributeValue": "000"
}
]}
}]},
"StoreNumber": "00001",
"MissedOffers": {}
}]}}
Overview
The purpose of ProcessEarn API is to process the transactions performed by a member and reward points accordingly.
The different requests that ProcessEarn API processes are as follows
- Purchase Transaction: Award points for the products purchased in the transaction after evaluating the offers available in the system.
- Return/exchange Transaction: When . For returns original purchase transaction details need to be provided at line level.
- Trial Balance: Before every return/exchange transaction, trial balance request is made to check if the member has to purchase points to complete the transaction.
- Trial Balance for Guest: While the items are in cart, a Trial Balance call can be invoked to see the earn potential. If the customer is not signed in procTran will get a null member number and earnflag=G (to denote guest). ProcessEarn will proceed with default member attributes(configurable).
Input
HTTP Method: POST
HTTP request headers
HTTP Header | Required | Description |
---|---|---|
Accept | Y | application/json |
Content-Type | Y | application/json |
access_token | Y | pass the access token |
client_id | Y | pass the clientid shared with you during setup |
Telluride EndPoint for External Clients
Environment | EndPoint |
---|---|
UAT | https://rewards.uat.telluride.shopyourway.com/tellurideAS/transaction/ProcessEarn |
PROD | https://rewards.telluride.shopyourway.com/tellurideAS/transaction/ProcessEarn |
Request Parameters
Data Element Name | Required | Data Type | Data Length | Description |
---|---|---|---|---|
MessageVersion | Y | string | 3 | The version number of the API to invoke |
MemberNumber | Y | string | 18 | Customers loyalty member number |
MemberIdentifier | Y | string | 64 | Encrypted member number(MemberIdentifier) corresponding to member profile. Either MemberNumber or MemberIdentifier is mandatory. |
RequestorID | Y | string | 4 | RequestorId assigned during onboarding. Unique for each partner |
StoreNumber | Y | string | 5 | Identifies the store from which the order was placed. |
OrderStoreNumber | N | string | 5 | Identifies the store from which the order was placed. |
TenderStoreNumber | N | string | 5 | Identifies the store from which the order has been paid. |
PickUpStoreNumber | N | string | 5 | Identifies the store from which the order has been picked up |
RegisterNumber | Y | string | 3 | Identifies the register. |
TransactionNumber | Y | string | 4 | Identifies the particular transaction |
TransactionTotal | Y | string | 10 | Transaction Total is the total amount of all the line items in a particular transaction |
TransactionTotalTax | Y | string | 10 | The total tax paid by the member in the transaction |
TransactionDate | Y | string | 10 | The date in which the transaction happens. Date should be in the given format YYYY-MM-DD |
TransactionTime | Y | string | 8 | The time when the transaction happens. Values with format : HH:MM:SS |
TimeZone | N | string | 8 | Identifies a particular time zone. |
LayawayContractNumber | N | string | 12 | Purchase can be made in installments which is known as Layaway. LayawayContractNumber is a unique number given to every layaways |
LayawayOpeningDate | N | string | 10 | Refers to the start date of Layaway. Values should be of format YYYY-MM-DD |
LayawayScheduledClosingDate | N | string | 10 | Closing date given for a layaway. Values should be of format YYYY-MM-DD |
LayawayFinalPaymentDate | N | string | 10 | Date of final payment for a layaway. Values should be of format YYYY-MM-DD |
AssociateID | N | string | 12 | Name of Associate who is at the register |
EarnFlag | N | string | 1 | Earn flag values, |
E – Standard earn/return (burn) transaction which will process & store transaction | ||||
T – Trial calculation | ||||
G – Trial Balance for Guest members message version>09 | ||||
PointDebit | N | string | 9 | If there is no enough points to be debited on return (burn), the total points which are in shortage is known as PointDebit. |
CurrencyDebit | N | string | 9 | Currency value correspoinding to PointDebit. PointDebit /1000 |
LayawayFlag | N | string | Flag is set to Y, if the member opts for installment payment. | |
PickupStoreFormat | N | string | 60 | Identifies the pickup format for the items |
Source | N | string | 20 | This is used to differentiate between Batch, Reprocessing and Failed Transaction. If there are no values then by default it is RealTime |
OfferId | N | string | 32 | Offer Id refers to a particular offer. Relevant only for reprocessing |
MemberExperience | N | string | 2 | Relevant only when source is reprocessing. Refers to how the member experiences while reprocessing the offer. |
RB- Reduce Balance | ||||
GN – Go Negative | ||||
NR – Do not Reduce | ||||
PerTender | List | (optional element now to support Trial balance lookup when POS does not have tender information available) | ||
TenderType | Y | String | 2 | This refers to mode of payment. Cash, credit, reward redemption, etc. |
TenderAmount | Y | Integer | 20 | Tender Amount would be always negative for returns/burn, Positive for sales, can be negative or positive for exchange |
AuthorizationCode | N | String | 8 | Authorization Code generated during the redemption of points |
OrderDetails | (mandatory for split transactions) | |||
OrderId | N | String | 40 | Order Id refers to a particular order. Mandatory for online split transactions. |
OrderSource | N | String | 5 | It is the source form where order id is generated |
TotalTransactions | N | Integer | 3 | This is the Total number of split transactions in a single online order |
TransactionSequence | N | Integer | 3 | This indicates the sequence number of the transaction taking place as part of the split transaction. |
PerLineItem | ||||
LineNumber | Y | String | 4 | Identifies the line number for a line item. Line 1, Line 2, etc. if available. Starting at 1. <= 4 characters |
ItemType | Y | String | 1 | Identifies if the item is a purchase/earn or return/burn item etc. |
* 1 = Sale | ||||
* 2 / 8= Return/Burn | ||||
* 3 = Sales Adjustment | ||||
* 4 = Allowance | ||||
* 5= Coupon (sears) | ||||
* 7 = Manufactures Coupon (Kmart only) | ||||
* 9 =Sales Adjustment Void | ||||
Division | Y | String | 3 | Identifies the Division in which the line item would fall. |
ItemNumber | Y | String | 9 | Identifies an item |
SKU | N | String | 3 | Refers to the stock keeping unit |
UPC | N | String | 13 | Universal Product code of the item |
LineItemAmountTypeCode | N | String | 2 | Will show the Price type |
1 - Regular | ||||
2 - Promotional | ||||
3 - Clearance | ||||
4 - Last Sale Price | ||||
CouponNumber | N | String | 18 | Identifies the particular Coupon |
DollarValuePreDisc | Y | String | 10 | Dollar value before discount |
DollarValuePostDisc | Y | String | 10 | Dollar value after discount |
PriceMatchAmount | N | String | 10 | Identifies the Price match amount |
PriceMatchBonusAmount | N | String | 10 | Identifies the Price match bonus amount |
Quantity | Y | String | 4 | Identifies the quantity of line items. |
OriginalLineNumber | N | String | 4 | Identifies the original line number for a return (burn)/exchange item. Only required for returns, voids, or cancels |
OriginalStoreNumber | N | String | 5 | Identifies the original store number for a return (burn)/exchange item. Only required for returns, voids, or cancels |
OriginalRegisterNumber | N | String | 3 | Identifies the original register number for a return (burn)/exchange item. Only required for returns, voids, or cancels |
OriginalTransactionNumber | N | String | 4 | Identifies the original transaction number for a return (burn)/exchange item. Only required for returns, voids, or cancels |
OriginalTransactionDate | N | String | 10 | Identifies the original transaction date for a return (burn)/exchange item. Only required for returns, voids, or cancels. Values should be of format YYYY-MM-DD |
OriginalTransactionTime | N | String | 8 | Identifies the original transaction time for a return (burn)/exchange item. Only required for returns, voids, or cancels. Values should be of format HH:MM:SS |
TaxAmount | N | String | 10 | Identifies the tax amount to be paid by the member |
PostSalesAdjustmentAmount | N | String | 7 | Always negative. Amount on an adjustment made after the sale has happened |
PointsRedeemed | N | String | 10 | Identifies the Points Redeemed |
DollarValueOfPointsRedeemed | N | String | 10 | Dollar Values corresponding to the points redeemed |
RedemptionExclusionFlag | N | String | 1 | Exclusion Flag for Redemption |
NonMemberPrice | N | String | 10 | Price of the line item for non member |
MapCompliance | N | String | 1 | If this tag is present and its value is 'Y' and message version>=10 Telluride will send MAP compliant (Points only offer name). If this tag is not present or its value is something other than Y Telluride will send the Non Map offer name (Points and Dollar offer name) |
PerCoupon | ||||
CouponNumber | Y | String | 18 | Identifies the Coupon |
AlternateCouponDecision | N | String | 1 | The customer decision to either earn points or avail discount. Value P indicates the coupon to earn points from Alternate pricing offer. Value D indicates the coupon will not earn point from the Alternate pricing offer. |
DiscountAmount | Y | String | 10 | The discount amount corresponding to a coupon |
CouponType | Y | String | 10 | It identifies the different coupon types which comes in the request from an external coupon system |
Response Parameters
Data Element Name | Empty? | Data Type | Data Length | Description | Sample/Example |
---|---|---|---|---|---|
MessageVersion | N | String | 3 | The version number of the API | Valid version numbers |
Status | N | String | 10 | API status code | Will be a valid string value. The different status codes are defined in the Status codes section. |
StatusText | N | String | 100 | Describes the status details | For successful transaction it will be “SUCCESS” otherwise error text. |
MemberNumber | N | String | 18 | The member number to validate. Start s with 7081 | 16-digit number - 7081319999159300 |
TotalPointsEarned | N | String | 9 | Total points earned by the member till the timestamp when the latest transaction happened. | Valid values are numerals without any decimals: 10000 |
BasePointsEarned | N | String | 9 | The base points that will accrue to the member's account or be deducted because of this transaction. | Valid values are numerals without any decimals: 10000 |
BonusPointsEarned | N | String | 9 | The bonus points that will accrue to the member's account or be deducted because of this transaction. | Valid values are numerals without any decimals: 2000 |
PointsRedeemedOnBaseOffer | N | String | 9 | Points Redeemed On Base XR Offer | Any numbers without decimals are valid. e.g. 2000 |
PointsRedeemedOnBonusOffer | N | String | 9 | Points Redeemed On Bonus XR Offer | Any numbers without decimals are valid. e.g. 5000 |
DollarValueOfPointsRedeemedOnBaseOffer | N | String | 9 | Dollar Redeemed On Base XR Offer | Any dollar value with 2 decimal places. e.g. 50.00 |
DollarValueOfPointsRedeemedOnBonusOffer | N | String | 9 | Dollar Redeemed On Bonus XR Offer | Any dollar value with 2 decimal places. e.g. 50.00 |
PointDebit | N | String | 9 | If there is no enough points to be debited on return/burn, the total points which are in shortage are known as PointDebit. | Any numbers without decimals are valid. e.g. 2000 |
CurrencyDebit | N | String | 9 | Currency value correspoinding to PointDebit. | Any dollar value with 2 decimal places. e.g. 50.00 |
MemberSavingsDollarValue | N | String | 9 | Total Savings for a member in a transaction. This is the sum of delta of dollarvalueprediscount and nonmemberprice of all line items with lineitemamounttypecode 20. | Any dollar value with 2 decimal places. e.g. 10.00 |
TimeZone | Y | String | 12 | Identifies a particular time zone. | Any time zone value. e.g. CST |
TxnEarnOfferCode | Y | String | 20 | This refers to the offer code for which points are earned. | Any text |
TxnEarnOfferName | Y | String | 200 | For message version<=09, this refers to the offer receipt description for which points are earned For message version>=10, this refers to the offer Name for which points are earned | Any text |
TxnEarnOfferReceiptDesc | Y | String | 50 | This refers to the offer receipt description for which points are earned for message version>=10 | Any text. |
TxnEarnOfferType | Y | String | 10 | This refers to the offer Type for which points is earned. | Offer types : Possible values are BONUS , COUPON |
TxnPointsEarned | Y | Integer | 10 | Identifies the points earned | Any numbers without decimals are valid. e.g. 2000 |
TxnItemLevelOffer | Y | String | 1 | Identifies the offer is whether item level or not | Possible values - Y, N |
TxnPointsEarnedTxt | Y | String | 50 | This represents the points earned in a pre-defined text format. | Will be like Receipt Description: points |
BonusPointsummary(per Txn) | |||||
CouponBonusPointsEarned | Y | Integer | 10 | Identifies the coupon points earned | Any numbers without decimals are valid. e.g. 2000 |
CouponBonusPointsEarnedTxt | Y | String | 50 | This represents the coupon points earned in a pre-defined text format. | Will be like Receipt Description: points |
OtherBonusPointsEarned | Y | Integer | 10 | Identifies the other bonus points earned | Any numbers without decimals are valid. e.g. 2000 |
OtherBonusPointsEarnedTxt | Y | String | 50 | This represents the other bonus points earned in a pre-defined text format. | Will be like Receipt Description: points |
TotalBonusPointsEarned | Y | Integer | 10 | Identifies the total bonus points earned | Any numbers without decimals are valid. e.g. 2000 |
PerTender (Optional for Trail Balance) | |||||
TenderType | N | String | 2 | This refers to mode of payment. Cash, credit, reward redemption, etc. Cash, credit, reward redemption, etc. | Valid tender code |
TenderAmount | N | Integer | 20 | Identifies the tender amount. Tender Amount would be always negative for returns/burn, Positive for sales, can be negative or positive for exchange | Any dollar value with 2 decimal places. e.g. 50.00 |
Authorization Code | Y | String | 10 | Authorization Code is a code which is generated for a redeeming transaction | Will be a 8 characters long string value |
PerLineItem | |||||
LineNumber | N | String | 4 | Identifies the line number for a line item. Line 1, Line 2, etc. if available. | Starting at 1. <= 4 characters |
ItemType | N | String | 1 | Same as mentioned in request | |
Division | N | String | 3 | Identifies the division in which the item falls. | Valid values will be as given KMARTSHC:-level3code SEARSLEGACY, HOMESERVICES, LANDSEND, MISCACCT:–level4code |
ItemNumber | N | String | 9 | Identifies a particular item. | Item Number / KSN ID / Miscellaneous Acct NO… <= 9 characters KMARTSHC:level9code SEARSLEGACY, HOMESERVICES, LANDSEND, MISCACCT:––level8code |
SKU | Y | String | 3 | Stock Keeping Unit | 3 characters long string value |
UPC | N | String | 13 | Universal Price Code | |
LineItemAmountTypeCode | N | String | 2 | Same as mentioned in the request | same sent in Request |
CouponNumber | Y | String | 18 | Identifies the particular Coupon | Will be a string value |
DollarValuePreDisc | N | String | 10 | Dollar value before discount | Any dollar value with 2 decimal places. e.g. 50.86 |
DollarValuePostDisc | N | String | 10 | Dollar value after discount | Any dollar value with 2 decimal places. e.g. 250.00 |
PriceMatchAmount | N | String | 10 | Identifies the Price match amount | Any dollar value with 2 decimal places. e.g. 50.99 |
PriceMatchBonusAmount | N | String | 10 | Identifies the Price match bonus amount | Any dollar value with 2 decimal places. e.g. 120.00 |
Quantity | N | String | 4 | Identifies the quantity of line items | Quantity less than or equal to 4 characters |
BasePoints | Y | Integer | 10 | Base Points earned for that line Item | Any numbers without decimals are valid. e.g. 2000 |
OtherPoints | Y | Integer | 10 | Bonus offer (excludes coupon offers) points earned for that line Item | Any numbers without decimals are valid. e.g. 2000 |
CouponPoints | Y | Integer | 10 | Coupon offer points earned for that line Item | Any numbers without decimals are valid. e.g. 2000 |
OriginalLineNumber | Y | String | 4 | Identifies the original line number for a return (burn)/exchange item. Only required for returns, voids, or cancels. Line 1, Line 2, etc. if available. | Starting at 1. less than or equal to 4 characters |
OriginalStoreNumber | Y | String | 5 | Identifies the original store number for a return (burn)/exchange item. Only required for returns, voids, or cancels | 5 -digit number |
OriginalRegisterNumber | Y | String | 3 | Identifies the original register number for a return (burn)/exchange item. Only required for returns, voids, or cancels | 3 digit number |
OriginalTransactionNumber | Y | String | 4 | Identifies the original transaction number for a return (burn)/exchange item. Only required for returns, voids, or cancels | 4 digit number |
OriginalTransactionDate | Y | String | 10 | Identifies the original transaction date for a return (burn)/exchange item. Only required for returns, voids, or cancels. Values should be of format YYYY-MM-DD | Any valid date |
OriginalTransactionTime | Y | String | 8 | Identifies the original transaction time for a return (burn)/exchange item. Only required for returns, voids, or cancels. Values should be of format HH:MM:SS | Any valid time |
TaxAmount | N | String | 10 | Identifies the tax amount to be paid | Any dollar value with 2 decimal places. e.g. 50.00 |
PostSalesAdjustmentAmount | N | String | 7 | Always negative. Amount on an adjustment made after the sale has happened | Any dollar value with 2 decimal places. e.g. 50.00 |
PointsRedeemed | N | String | 10 | Identifies the Points Redeemed | Any numbers without decimals are valid. e.g. 2000 |
DollarValueForPointsRedeemed | N | String | 10 | Dollar Values corresponding to the points redeemed | Any dollar value with 2 decimal places. e.g. 50.00 |
RedemptionExclusionFlag | Y | String | 1 | Identifies the Exclusion Flag for Redemption | Y, N |
NonMemberPrice | Y | String | 10 | Price of the line item for non-member | Any dollar value with 2 decimal places. e.g. 50.00 |
EarnOffers(per item) | |||||
EarnOfferCode | Y | String | 20 | This refers to the offer code for which points are earned. | Any text |
EarnOfferName | Y | String | 200 | For message version<=09, this refers to the offer receipt description for which points are earned For message version>=10, this refers to the offer Name for which points are earned | Any text |
EarnOfferReceiptDesc | Y | String | 50 | This refers to the offer receipt description for which points are earned, for message version>=10 | Any text |
EarnOfferType | Y | String | 10 | This refers to the offer Type for which points is earned. | Offer types like BONUS |
PointsEarned | Y | Integer | 10 | Identifies the points earned | Any numbers without decimals are valid. e.g. 2000 |
ItemLevelOffer | Y | String | 1 | Identifies the offer is whether item level or not | Y, N |
PointsEarnedTxt | Y | String | 50 | This represents the points earned in a pre-defined text format. | Will be in the following format Receipt Description: points |
CouponOffers (per coupon) | |||||
CouponOfferCode | Y | String | 20 | This refers to the coupon offer code for which points are earned. | Any text |
CouponOfferName | Y | String | 200 | For message version<=09, this refers to the coupon offer receipt description for which points are earned For message version>=10, this refers to the coupon offer Name for which points are earned | Any text |
CouponEarnOfferReceiptDesc | Y | String | 50 | This refers to the coupon offer receipt description for which points are earned, for message version>=10 | Any text |
CouponPointsEarned | Y | Integer | 10 | Identifies the points earned | Any numbers without decimals are valid. e.g. 2000 |
CouponItemLevelOffer | Y | String | 1 | Identifies the coupon offer is whether item level or not | Y,N |
CouponPointsEarnedTxt | Y | String | 50 | This represents the points earned in a pre-defined text format. | Will be in the following format Receipt Description: points |
PerCoupon (per item) | |||||
CouponNumber | N | String | 18 | Identifies the coupon number | Will be a string value |
AlternateCouponDecision | Y | String | 1 | The customer decision to either earn points or avail discount. Value P indicates the coupon to earn points from Alternate pricing offer. Value D indicates the coupon will not earn point from the Alternate pricing offer. | P,D |
DiscountAmount | N | String | 10 | The discount amount corresponding to a coupon | Any dollar value with 2 decimal places. e.g. 50.00 |
CouponType | N | String | 10 | It identifies the different coupon types from an external coupon system. | 1 : Manufacturer Coupon 2 : Store Coupon |
RedemptionOffersList (per Item) | |||||
RedemptionOffer (per offer) | |||||
OfferCode | Y | String | 20 | Unique offer code | Any text |
RedemptionMultiplier | Y | String | 3 | 1X = 1000 points for 1$ 2X = 500 points for 1$, etc | 1X, 2X, 3X, FIXED, etc |
OfferPointsRedeemed | Y | String | 9 | Points redeemed against this offer | Numeric value |
RedeemedPointsOriginalDollarValue | Y | String | 9 | dollar value equivalent of base points i.e 1000 points 1$ | Decimal value |
RedeemedPointsXRDollarValue | Y | String | 9 | actual dollar value redeemed for XR offer | Decimal value |
RedeemedPointsXRDollarValue | Y | String | 9 | actual dollar value redeemed for XR offer | Numeric value |
RedemptionCapDollarValue | Y | String | 9 | Redemption cap mentioned in the XR offer | Decimal value |
OfferType | Y | String | 1 | Base offer (or) XR offer | B - Base, X - XR |
RedemptionOfferMultiplierAndCapTxt | Y | String | 17 | Fixed/Multiplier with $ cap For e.g FIXED with $6.0Cap | FIXED with $6.0Cap, Multiplier with $1.0Cap |
MemberOwnPointsRedeemed | Y | String | 10 | Specifies the Member Own points redeemed per redemption offer. | Any numbers without decimals are valid. e.g. 2000 |
DollarValueOfMemberOwnPointsRedeemed | Y | String | 10 | Dollar Values corresponding to the member own points redeemed | Any dollar value with 2 decimal places. e.g. 50.00 |
SurprisePointsRedeemed | Y | String | 10 | Specifies the surprise points redeemed for a redemption offer. | Any numbers without decimals are valid. e.g. 2000 |
DollarValueOfSurprisePointsRedeemed | Y | String | 10 | Dollar Values corresponding to the surprise points redeemed | Any dollar value with 2 decimal places. e.g. 50.00 |
ResponseText(1-5) | N | String | 50 | Identifies the response text | Will be a string value |
PostExternalBonus
HTTP JSON Request
{
"OfferId": "KenmoreEarnNP",
"PointsToAdd": "5000",
"RequestorID": "4 char requestor id assigned during onboarding",
"StoreNumber": "00001",
"MemberNumber": "7081317715047317",
"TransactionTs": "2024-03-20T00:40:47",
"MessageVersion": "07",
"RegisterNumber": "001",
"FileIdentifier": "Test",
"TransactionNumber": "1111",
"PointsStartDate":"2024-03-20T00:40:47",
"PointsEndDate":"2024-03-27T00:40:47"
}
HTTP JSON Response
{
"MemberNumber": "7081317715047317",
"CurrentBalance": 6525,
"MTServerName": "16-145_rewards_ds10_",
"StatusText": "Success",
"Status": "0",
"SysPulse": "116ms"
}
Overview
This service is used to add or remove points from the member's account. An offercode needs to be provided against which points will be added or removed.
Input
HTTP Method: POST
HTTP request headers
HTTP Header | Required | Description |
---|---|---|
Content-Type | Y | application/json |
client_id | Y | pass the provided clientid |
access_token | Y | pass the valid token |
Accept | Y | application/json |
EndPoint Details
Environment | EndPoint |
---|---|
UAT | https://rewards.uat.telluride.shopyourway.com/tellurideAS/transaction/PostExternalBonus |
PROD | https://rewards.telluride.shopyourway.com/tellurideAS/transaction/PostExternalBonus |
Request Parameters
Data Element Name | Required | Data Type | Length | Description |
---|---|---|---|---|
MessageVersion | Y | String | 3 | MessageVersion provided |
RequestorID | Y | String | 4 | RequestorId assigned during onboarding. Unique for each partner |
StoreNumber | N | String | 5 | 5-digit valid store number |
RegisterNumber | N | String | 3 | RegisterNumber from which the request has been initiated |
MemberNumber | Y | String | 18 | Customers loyalty member number |
TransactionTs | Y | String | 19 | The date in which the transaction happens. Date should be in the given format YYYY-MM-DDTHH:MM:SS |
OfferId | Y | String | 20 | The offercode against which points has to be posted |
PointsToAdd | Y | String | 11 | Points that need to be added or removed to member's account.To remove points , negative points needs to be passed. |
FileIdentifier | Y | String | 50 | For all requestorids other than PROB, pass value as RequestorId assigned during onboarding |
TransactionNumber | N | String | 16 | Identifies the particular transaction |
PointsStartDate | N | String | 19 | The date on which points become available for the member to use.If not provide will be calulated based on the offer setup.. Date should be in the given format YYYY-MM-DDTHH:MM:SS |
PointsEndDate | N | String | 19 | The date till which points are available for the member to use.If not provide will be calulated based on the offer setup.. Date should be in the given format YYYY-MM-DDTHH:MM:SS |
Response Parameters
Data Element Name | Empty? | Data Type | Data Length | Description |
---|---|---|---|---|
StatusText | N | String | 100 | A text representation of the Status code. Provides additional info about the error, if any. |
CurrentBalance | Y | String | 11 | Total points available in member's account |
MemberNumber | Y | String | 18 | Customers loyalty member number |
SysPulse | N | String | 40 | The time in milliseconds it took to reply to the request. |
Status | N | string | 3 | API status code |
Error/Status Code
Status Code | Description |
---|---|
0 | Success |
99 | Structural validation errors |
Provide either OfferId or Channel in the request, not both | |
RequestorId is a required field | |
FileIdentifier is a required field | |
Flats points are not defined in the Offer_earn_screen for the offer | |
Points not awarded - Points to be awarded is required in the request as the validation flag is Off in the offer | |
Points should be numeric | |
Points to Add is a required field | |
"PointsToAdd is invalid- Bank will not allow 0 points | |
44 | Club ID Not Found |
Member is not Active | |
45 | Member not eligible to Earn Points |
2 | OfferId is not activated |
Bonus Offer Code Not Defined | |
Points not awarded - Request date does not meet the offer earn period | |
Points not awarded - Points awarded cap for the member has exceeded | |
Points not awarded - Times awarded cap for the member has exceeded | |
Points not awarded - Points awarded cap for the offer has exceeded | |
Points not awarded - Times awarded cap for the offer has exceeded | |
* MESSAGE VERSION IS NOT VALID | |
* AFFINITY STATUS IS REQUIRED | |
* AFFINITY STATUS DATA LENGTH NOT MATCHING | |
* AFFILIATION CODE IS REQUIRED | |
5 | Offer Qualification failed |
GetApplicableOffers
HTTP JSON Request
{
"MessageVersion":"08",
"MemberNumber":"7081317702751061",
"RequestorID":"NPOS",
"OrderStoreNumber":"01001",
"TenderStoreNumber":"0",
"PickUpStoreNumber":"0",
"CurrentDTTM":"2024-01-17 10:08:14",
"RequestOfferType":"",
"BenefitOnly":"N",
"MaxBenefits":"10",
"ProductList":{
"Product":[
{
"HierarchyLevels":[
{
"HierarchyLevel":[
{
"LevelCode":"4",
"LevelCodeDescription":"Division",
"LevelValue":"14"
},
{
"LevelCode":"8",
"LevelCodeDescription":"ItemNumber",
"LevelValue":"10002"
}
]
}
],
"SKU":"0",
"UPC":"0",
"LineItemAmountTypeCode":"1",
"ItemPrice":"10.00",
"Quantity":"1",
"MapCompliance":"N"
}
]
}
}
HTTP JSON Response
{
"MemberNumber": "7081327693978029",
"RewardsSummary": {
"RewardPotentialDetails": [
{
"Conditional": "N",
"BasePoints": 100,
"BonusPoints": 2,
"EarliestExpiringOfferDate": "2025-05-14T23:59:59",
"RewardType": "EARN",
"RewardPotential": [
{
"RewardPotentialUnit": "Points",
"RewardPotentialValue": "102"
},
{
"RewardPotentialUnit": "Dollars",
"RewardPotentialValue": "0.10"
}
]
}
]
},
"OffersSet": {
"ApplicableOffer": [
{
"Conditional": "Y",
"Stackable": "Y",
"OfferRewardType": "XR",
"RewardBasis": "DollarSpend",
"RewardCalculationType": "Fixed",
"OfferCode": "99769-1",
"OfferName": "3xSurpriseOffer_Cars",
"Description": "Decs:3xSurpriseOffer_Cars test",
"StartDTTM": "2022-12-09T00:00:00",
"EndDTTM": "2024-07-30T23:59:59",
"XRFlatOffer": "Y",
"OfferDescription": "",
"OfferTitle": "",
"OfferEndDate": "",
"LegalCopy": ""
},
{
"Conditional": "N",
"Stackable": "Y",
"OfferRewardType": "EARN",
"RewardBasis": "ItemCount",
"RewardCalculationType": "Fixed",
"OfferCode": "99768",
"OfferName": "EarnSpendthresh_CARs_NAME",
"Description": "EarnSpendthresh_CARs_99768",
"StartDTTM": "2023-01-31T00:00:00",
"EndDTTM": "2025-05-14T23:59:59",
"OfferRewardPotential": "2",
"OfferDescription": "",
"OfferTitle": "",
"OfferEndDate": "",
"LegalCopy": ""
},
{
"Conditional": "Y",
"Stackable": "Y",
"OfferRewardType": "XR",
"RewardBasis": "DollarSpend",
"RewardCalculationType": "Fixed",
"OfferCode": "7.7GRB-subclub_noMG",
"OfferName": "7.7GRB-subclub",
"Description": "desc7.7GRB-subclub ",
"StartDTTM": "2018-08-31T00:00:00",
"EndDTTM": "2035-07-31T23:59:59",
"XRFlatOffer": "Y",
"OfferDescription": "",
"OfferTitle": "",
"OfferEndDate": "",
"LegalCopy": ""
}
]
},
"MTServerName": "17-62_rewards_ds11",
"StatusText": "SUCCESS",
"Status": "0",
"SysPulse": "80ms"
}
Overview
This service will return all the applicable offers for a member based on the products present in the request.
Input
HTTP Method: POST
HTTP request headers:
HTTP Header | Required | Description |
---|---|---|
Content-Type | Y | application/json |
client_id | Y | pass provided clientid |
access_token | Y | pass valid token |
Accept | Y | application/json |
Telluride EndPoint for External Clients
Environment | EndPoint |
---|---|
UAT | https://rewards.uat.telluride.shopyourway.com/tellurideAS/transaction/GetApplicableOffers |
PROD | https://rewards.telluride.shopyourway.com/tellurideAS/transaction/GetApplicableOffers |
Request Parameters
Data Element Name | Required? | Data Type | Length | Description |
---|---|---|---|---|
MessageVersion | Y | String | 3 | The version number of the api needs to be passed |
MemberNumber | Y | String | 18 | Customers loyalty member number |
RequestorID | Y | String | 4 | Every system who has access to this API will be assigned a requestorId |
OrderStoreNumber | Y | String | 5 | StoreNumber where the member is doing the transaction. |
CurrentDTTM | Y | String | 10 | The date in which the transaction happens. Date should be in the given format YYYY-MM-DD HH:MM:SS |
TimeZone | N | String | 9 | Identifies a particular time zone.If timezone is not present in inbound default it to CST/CDT. Ex: GMT+5:00, GMT-5:30, GMT+10:00 etc |
BenefitOnly | Y | String | 1 | Indicates whether Benefit offers or all offers have to be fetched. If ‘Y’ Benefit offers will be fetched. If ‘N’, all offers will be fetched |
MaxBenefits | N | String | 3 | Indicates the maximum number of benefits that can be returned. |
UnconditionalPointsOnly | N | String | 1 | Indicates whether unconditional points sum alone has to be fetched or not. If ‘Y’ only the unconditional point sum will be fetched. If ‘N’, details like base point, bonus point and earliest expiring offer date will be fetched |
RequestOfferType | N | String | 30 | Authorized person Last Name |
ProductList | N | Array | Array of products member has added to cart | |
HierarchyLevels | N | String | 6 | Member name suffix |
LevelCode | N | String | 12 | Assosiate ID in case of store associates |
LevelValue | N | String | 10 | Member Date of birth |
LevelCodeDescription | N | String | 1 | To set the members as test members |
Response Parameters
Data Element Name | Empty? | Data Type | Length | Description |
---|---|---|---|---|
MemberNumber | Y | string | 18 | The member number to validate |
RewardsSummary | N | |||
RewardPotentialDetails | N | Array | ||
RewardType | Y | String | 12 | Specifies whether the points details are regarding points that can be earned or redeemed. Values are Earn and XR |
Conditional | Y | String | 1 | |
BasePoints | Y | Big Integer | 10 | Base points |
BonusPoints | Y | Big Integer | 10 | Bonus point |
EarliestExpiringOfferDate | Yes | DateTime | 20 | Earliest Expiring Offer Date out of the unconditional offers applicable for the member |
RewardPotential | No | 2 | ||
RewardPotentialUnit | Yes | String | 10 | Specified whether the value given is in Points or Dollars |
RewardPotentialValue | Yes | String | 10 | Total reward potential |
OffersSet | N | |||
ApplicableOffer | ||||
Conditional | Y | String | 1 | If the award is based on any condition other than member of product the value will be Y |
Stackable | Y | String | 1 | Whether this offer is stackable or not with other offers |
OfferRewardType | Y | String | 12 | Earn or Redeem |
RewardBasis | Y | String | 12 | Specifies whether the award is based on Spend or Quantity |
RewardCalculationType | Yes | String | 10 | Reward is Multiplier based or Flat points |
OfferCode | Yes | String | 20 | Offer code corresponding to this reward |
Offername | Y | String | 100 | Offer name / offer name map based on the filter MapCompliance in the request |
Description | Y | String | 500 | Describes the offer |
StartDTTM | Y | String | 19 | Offers effective start date YYYY-MM-DDTHH:MM:SS |
EndDTTM | Y | String | 19 | Offers effective end date YYYY-MM-DDTHH:MM:SS |
OfferDescription | N | String | ||
OfferTitile | N | String | ||
OfferEndDate | N | String | ||
LegalCopy | N | String | ||
OfferRewardPotential | N | String | 10 | |
XRFlatOffer | N | String | 50 | |
XRMultiplier | N | String | 5 | |
Additional | ||||
Status | Y | String | 10 | API status code |
StatusText | Y | String | 100 | A text representation of the Status code. Provides additional information about the error, if any |
MessageVersion | Y | string | 3 | The version number of the API to invoke |
Msg1 | N | String | 50 | Optional additional information provided by Telluride for display to the member. |
Msg2 | N | String | 50 | Optional additional information provided by Telluride for display to the member. |
TrackingID | Y | String | 40 | Unique identifier assigned to each inbound request for tracking within the system |
Error/Status Code
Number | Description |
---|---|
0 | Success |
2 | Validation Error |
30 | No member found |
99 | HierarchyLevels are invalid |
99 | Invalid currentDTTM |
81 | Failed During get |
GetMemberActivitySummary
HTTP JSON Request
{
"endDate": "2024-01-16T23:58:00",
"startDate": "2024-01-14T00:00:01",
"memberNumber": "7081197637561466",
"messageVersion": "01",
"requestorID": "SYWC",
"memberIdentifier": ""
}
HTTP JSON Response
{
"status": "0",
"memberNumber": "7081197637561466",
"msg1": "View balance and account information",
"msg2": "at shopyourwayrewards.com",
"startDate": "2024-01-14T00:00:01",
"endDate": "2024-01-16T23:58:00",
"statusText": "Success",
"messageVersion": "01",
"trackingId": "T1",
"sysPulse": "18ms",
"mtServerName": "24-197_rewards_ds10",
"totalEarned": "510",
"totalRedeemed": "55000",
"startingBalance": "45167046",
"endingBalance": "45112556",
"totalExpired": "0"
}
Overview
This service is used to get the summary of member’s points earned and redeemed for the period given in the request.
Input
HTTP Method: POST
HTTP request headers
HTTP Header | Required | Description |
---|---|---|
Content-Type | Y | application/json |
client_id | Y | pass the provided clientid |
access_token | Y | pass the valid token |
Accept | Y | application/json |
EndPoint Details
Environment | EndPoint |
---|---|
UAT | https://rewards.uat.telluride.shopyourway.com/tellurideAS/transaction/GetMemberActivitySummary |
PROD | https://rewards.telluride.shopyourway.com/tellurideAS/transaction/GetMemberActivitySummary |
Request Parameters
Data Element Name | Required | Data Type | Length | Description |
---|---|---|---|---|
messageVersion | Y | String | 3 | Two digit Message version |
requestorID | Y | String | 4 | RequestorId assigned during onboarding. Unique for each partner |
memberNumber | N | String | 18 | Customers loyalty member number |
memberIdentifier | Y | String | 64 | The memberIdentifier corresponding to SYW profile |
startDate | Y | String | 15 | Date from which summary has to be displayed(YYYY-MM-DDTHH:MM:SS) |
endDate | Y | String | 15 | Date to which summary has to be displayed(YYYY-MM-DDTHH:MM:SS) |
Response Parameters
Data Element Name | Empty? | Data Type | Data Length | Description |
---|---|---|---|---|
memberNumber | Y | String | 3 | SYW MemberNumber associated with customer which comes in request |
memberIdentifier | Y | String | 40 | SYW MemberId shared to partner which comes in request |
startDate | N | String | 20 | Date from which summary has to be displayed(YYYY-MM-DDTHH:MM:SS) which comes in request |
endDate | N | String | 20 | Date from which summary has to be displayed(YYYY-MM-DDTHH:MM:SS) which comes in request |
totalEarned | N | String | 10 | Total points earned within the request’s date range |
totalRedeemed | N | String | 10 | Total points redeemed within the request’s date range |
startingBalance | N | String | 10 | Starting points balance within the request’s date range |
endingBalance | N | String | 10 | Ending points balance within the request’s date range |
totalExpired | N | String | 10 | Total points expired within the request’s date range |
status | N | string | 3 | API status code |
statusText | N | String | 100 | A text representation of the Status code. Provides additional information about the error, if any |
sysPulse | N | String | 40 | The time in milliseconds it took to reply to the request. |
Error/Status Code
Status Code | Description |
---|---|
0 | Successful Call |
04 | Retry DB Error |
44 | Club ID Not Found |
99 | MessageVersion is invalid |
99 | Invalid Member number |
99 | Invalid EndDate |
99 | Invalid StartDate |
GetMemberActivityDetails
HTTP JSON Request
{
"MemberNumber":"7081317704087522",
"StartDTTM":"2024-01-14T00:00:00",
"EndDTTM":"2024-01-14T23:59:59",
"StoreFormat":"TLCO",
"MessageVersion":"13",
"BenefitOnly":"N",
"RequestorID":"Provide the RequestorID shared with you during setup"
}
HTTP JSON Response
{
"TransactionDetails": {
"TransactionDetail": [
{
"TransactionDTTM": "2024-01-14T23:29:13",
"TransactionID": "116624590EDCEA311EFE3EEC123F5890",
"TransactionDescription": "09305 - SYW.com",
"TransactionType": "P",
"TotalPoints": 60,
"TotalBasePoints": 60,
"TotalBonusPoints": 0,
"SpecialUsePoints": 0,
"TotalPointsRedeemed": 0,
"SpecialUsePointsRedeemed": 0,
"DollarValueOfPointsRedeemed": 0.00,
"SpecialUsePointsRedeemedDollarValue": 0,
"TotalExpired": 0,
"StoreLocation": "09305",
"StoreFormat": "TLCO",
"EarnType": "BONUS",
"GrossSpend": "10.00",
"ReasonCode": "",
"PostTS": "2024-01-14T23:29:13",
"PickUpStoreNumber": "09305",
"TotalTax": "0.00",
"AssociateID": "",
"ProcessStatus": "A",
"TransactionNumber": "0001",
"RegisterNumber": "100",
"TotalDollarSaving": 0.00,
"OrderId": "110017374",
"OrderSource": "TELL",
"PointBalance": 45163106,
"EarnOffers": {
"EarnOffer": [
{
"EarnOfferCode": "SYW_Base_Earn",
"EarnOfferName": "10 base points for every dollar",
"EarnOfferType": "BONUS",
"PointsEarned": 60,
"QualifiedAmount": 6.0
}
]
},
"TransactionAttributes": {
"TransactionAttribute": [
{
"TransactionAttributeKey": "giftCardName",
"TransactionAttributeValue": "Sears Gift Card"
},
{
"TransactionAttributeKey": "giftCardValue",
"TransactionAttributeValue": "10.00"
},
{
"TransactionAttributeKey": "settlementKey",
"TransactionAttributeValue": "150902010203174144"
},
{
"TransactionAttributeKey": "salesCheckNumber",
"TransactionAttributeValue": "093051000001"
}
]
}
}
]
},
"MTServerName": "17-174_rewards_ds10",
"StatusText": "Success",
"Status": "0",
"SysPulse": "95ms"
}
Overview
This API returns all the member transactions within a specified date range.
Input
HTTP Method: POST
HTTP request headers:
HTTP Header | Required | Description |
---|---|---|
Content-Type | Y | application/json |
client_id | Y | pass provided clientid |
access_token | Y | pass valid token |
Accept | Y | application/json |
Telluride EndPoint for External Clients
Environment | EndPoint |
---|---|
UAT | https://rewards.uat.telluride.shopyourway.com/tellurideAS/transaction/GetMemberActivityDetail |
PROD | https://rewards.telluride.shopyourway.com/tellurideAS/transaction/GetMemberActivityDetail |
Request Parameters
Data Element Name | Required | Data Type | Data Length | Description |
---|---|---|---|---|
MemberNumber | Y | string | 16 | Customer/Member Number or SYW Profile |
MessageVersion | Y | string | 2 | The version number of the API to invoke |
RequestorID | Y | String | 4 | RequestorId assigned during onboarding. Unique for each partner |
StoreLocation | N | string | 10 | Member store location format value |
StoreFormat | N | string | 4 | Member Store format value |
StartDTTM | Y | dateTime | 19 | Start DateTime Validation and the format is YYYY-MM-DDTHH:MM:SS |
EndDTTM | Y | dateTime | 19 | Start DateTime Validation and the format is YYYY-MM-DDTHH:MM:SS |
Response Parameters
Data Element Name | Empty? | Data Type | Data Length | Description |
---|---|---|---|---|
Per Transaction* | ||||
TransactionDTTM | Y | dateTime | 19 | Transaction time in yyyy-MM-ddTHH:mm:ss format |
TransactionID | Y | string | 16 | Transaction ID of the member for that transaction |
TransactionDescription | Y | string | 100 | Description of transaction |
TransactionType | Y | string | 1 | Type of Transaction |
TotalPoints | Y | integer | 11 | Total points earned for that transaction |
TotalBasePoints | Y | integer | 11 | Total base points for that transaction |
TotalBonusPoints | Y | integer | 11 | Total Bonus Points for that transaction |
TotalPointsRedeemed | Y | integer | 11 | Total Points Redeemed for that transaction |
DollarValueOfPointsRedeemed | Y | Decimal | 10,2 | Dollar value of Points Redeemed for that transaction |
TotalExpired | Y | Integer | 9 | Total Expired Points |
StoreLocation | Y | String | 10 | Location of store |
StoreFormat | Y | String | 4 | |
EarnType | Y | String | 1 | Member Earn type at transaction time |
GrossSpend | Y | String | 10 | Total spend |
ReasonCode | Y | String | 10 | Reason code |
PostTS | Y | dateTime | 16 | Transaction posted Timestamp and the format YYYY-MM-DDTHH:MM:SS |
PickUpStoreNumber | Y | String | 5 | Store Number |
TotalTax | Y | String | 10 | Total tax |
AssociateID | Y | String | 12 | Associate id |
ProcessStatus | Y | String | Process Status | |
TransactionNumber | Y | String | 16 | Transaction Number |
RegisterNumber | Y | String | 3 | Register Number |
TotalDollarSaving | Y | Decimal | 10,2 | Specifies the total dollar amount saved on all the lineItems at transaction leve |
OrderID | Y | String | 16 | Order ID |
OrderSource | Y | String | 5 | Order Source |
Additional | ||||
Status | Y | String | 10 | API status code |
StatusText | Y | String | 100 | Describes the status |
MessageVersion | Y | String | 3 | Service Version Number |
Msg1 | N | String | 50 | Optional additional information provided by Telluride for display to the member |
Msg2 | N | String | 50 | Optional additional information provided by Telluride for display to the member |
Error/Status Code
Status Code | Description |
---|---|
0 | Successful Call |
30 | Invalid Member Number |
81 | Failed During Get Call |
99 | Member Number is a required field |
99 | MessageVersion is invalid,it should be Numeric value |