This article briefly introduces Xoxoday's Marketplace Integration

Marketplace Integration

With Xoxoday's Marketplace Integration, you can simply allow your users to be re-directed into Xoxoday's marketplace (aka storefront). Here you can simply provide SSO (Single Sign On) or SAML based authentication for your users to seamlessly login into Xoxoday's hosted Storefront.

Below are the advantages the Marketplace integration has to offer that you may want to consider:

๐Ÿ‘

Use your plantorm's native points engine to distribute points, while simply re-directing users onto Xoxoday's hosted Storefront to 'burn' their accrued points.

๐Ÿ‘

A simple SSO or SAML based authentication to provide your users with a seamless access to storefornt.

Once users land in the storefront, our system will consume your end-points to GET points accrued in your system, and as well as POST back the points spent (by users) on their reward catalog.

Below are the API Endpoints that Xoxoday will consume.

FetchPointsAPI:

Xoxoday will consume this API endpoint to fetch employeesโ€™ accrued points available for redemption (along with the currency unit).

Method: GET

Response Params

Query ParamsSample DataRequired in ResponseDesc
userIdjsmth23โœ…UUID is a unique userID passed to Xoxoday during the SSO session, which Xoxoday will use to query with.
availableAmount8925.15โœ…Available Points accrued by the user are available to be spent for redemptions.
Currency unitsUSDโœ…The currency of the points value of the above.
WalletIDWellness Wallet {string}This parameter is useful in case you have multiple wallets in your module that the end user accrues points. For Example, something like a wellness wallet, and learning wallet,

Sample Response Body (Imp Params)

{
			"userId":"jsmth23",  // a uniqueID of the user/employee.
			"walletId":"Wellness Wallet", //Optional, walletID if multiple wallets are involved.
			"availableAmount":"8925.15", //Points currency available to spend
			"currency":"USD" //currency unit of the available points currency
}

UpdatePoints API:

Xoxoday will consume this API endpoint to post back the points spent by the user to place an order on the Xoxodayโ€™s Marketplace.

Method: POST

Sample Request Body


{
XoxodayTransactionId : "1703475", // this is the orderID of Xoxoday
"totalOrderAmount" : "5", 
"currency" : "USD", 
"comments" : "", 
"products" : {
"quantity" : "1", 
"orderAmount" : "5",
"price" : "5" 
"productId" : "28618", 
"name" : "Applebee's_eGift", 
"category" : null, 
"description" : "", 
}

^^ Highlights only important parameters we send in a request.

๐Ÿ‘

Xoxoday will send the points (totalOrderAmount)_ and additionally orderDetails, along with ProductDetails.

Sample Response Body

"TxnID" : "531661", //this is a Txn ID generated at your end that Xoxoday will persist to be used for RefundAPI 

๐Ÿ‘

About TXNID

TransactionID is something Xoxoday will persist on our end, and will be used to refund (if need be in the future) for reversal/refund of points.

You can opt to store the Xoxoday orderID if you do not wish to generate a new ID on your side.

GetProfile API:

Xoxoday will consume this API endpoint to validate user details(including points & userโ€™s identity) during checkout to add an additional layer of security.

Method: GET

Response Params

Query ParamsSample DataRequired in ResponseDesc
UUIDjsmth23โœ…UUID is a unique userID passed to Xoxoday during the SSO session, which Xoxoday will use to query with.
firstNameJohnโœ…First Name of the user
lastNameSmithโœ…Last Name of the User
email address[email protected]โœ…email address of the user
CountryUnited StatesCountry data field or equivalent from HRMS.
Phone Number+1 415342234Phone number of the employee

Sample Response Body

{
        "userId": "cgrant1",
        "firstName": "Carla",
        "lastName": "Grant",
        "country": "United States",
        "email": "[email protected]",   
				"phone": "+1 415342234",
 }

^^Highlights only important parameters we expect.

๐Ÿ“˜

Xoxoday can consume the FetchPoints API itself for profile information as well, if the information we need to validate identity are available in the response

RefundAPI:

Xoxoday will consume this API to refund back the userโ€™s points, in the rare case, when Xoxoday is unable to fulfill an order.

Method: POST

Request body

'{
ย  ย  "TxnID": "531661", //your system txn ID that we persist(ed)
ย  ย  "currency":"USD",
ย  ย  "userId":"sfadmin",
ย  ย  "refundAmount":"1",
ย  ย  "vendor":"XOXODAY"
}'

^^Highlights one important parameter we send in a request.

All Xoxoday's requests are sent from the following IP addresses:

๐Ÿšง

All Xoxoday requests are sent from the following IP addresses:

Staging:

  • 50.112.248.135
  • 54.184.56.156
  • 52.24.158.163
  • 34.217.113.26
  • 54.185.176.191

Production :

  • 52.76.120.90
  • 52.74.39.101
  • 52.221.42.47
  • 46.137.196.217

๐Ÿšง

All Xoxoday requests are sent from the following domain(s):

Staging:

Production: