NAV

SHOP YOUR WAY

java javascript python

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

Pay Your Way Installation Guide.

ShopYourWay - OAuth Security

Introduction

All ShopYourWay Systems such as Rewards, Checkout etc.. APIs are using OAuth API Security.

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…)

  1. 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"
  2. 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
  3. 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:-

  1. Work with ShopYourWay Team to mutually agreed Client_ID for Non Production & Production environment.
  2. 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..
  3. Steps to Register:-
    1. Access OAuth Portal Login URL endpoint (Please refer respective environment URL Section)
    2. Click "Not-Yet-Registered" Link
    3. Fill in the details as below
    4. Client Name & Client ID - Example "EXT_PARTNER"
    5. Client Email - Example "partner@partner.com"
    6. Client Phone - Example "1111111111"
    7. Password - Example "random!#"
    8. Public Certificate - Copy Paste teh Public certificate content"
    9. Example:-

-----BEGIN CERTIFICATE----- MIIGDjCCA/agAwIBAgIQNoJef7WkgZN+9tFza7k8pjANBgkqhkiG9w0BAQwFADCB hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMjEy ..... .....

-----END CERTIFICATE-----

OAuth - Registration via API

  1. "noPasswordFlag" is an optional field to decide to register with/without passsword.
  2. "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.
  3. "secretCodeFlag" is an optional field to decide to issue secret code in successful registration response or not.
  4. "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..
  5. "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:

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}

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:

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.

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:

Please refer respective environment's OAuth Token Request API URL section for URL

OAuth - Non Production URLs

OAuth Portal Login URL

OAuth Registration API URL

OAuth Token Request API URL

OAuth - Production URLs

OAuth Portal Login URL

OAuth Registration API URL

OAuth Token Request API URL

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 is unique identifier for calling client.

Implementation Steps

Following steps needs to be performed to access telluride platform:

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

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