{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"39c75360-b796-4bfc-85fd-0068ebc8b7f8","name":"Perx Core User API's (Public)","description":"Perx offers a wide range of RESTful APIs that enable developers to integrate any mobile application user interface and/or backend system(s) with the data from Perx’s core modules.\n\nFor a native application (or website) to connect to Perx, [Application-level](https://developers.perxtech.com/#46774129-03fa-48b7-88c0-db7507e709dd) and [User-level](https://[https://developers.perxtech.com/#dc29b486-9caf-4870-9cc6-d253a55b9a38) authentication (using OAuth 2.0) is required.\n\n# Perx API Journey\n\n<img src=\"https://lh7-us.googleusercontent.com/RXla0LqHFzfPxvKaZTflaqp8IeQ0VRKDPv7XyFtGOWHZxEDrFGaUuHJ5HhsCI831Vu9-Q7rRHpM_DcyJ9VhD8T5nWcyUy1biGEiPBR0G7tAovhvDReR5O-mMO1ocblfEC34fPbjymyT1ddWEaSEDaWSCgA=s2048\">\n\n1. App calls Perx to get a client token for authentication. This will return a client-based token that you can use to create or update user accounts as well as request for a user-based token.\n    \n2. App calls Perx to get a user-based token for authentication. This can either return one of the following:\n    \n    1. A valid user token\n        \n    2. A response that indicates that the user request is unauthorized. If this is the case, then the application is responsible for creating the user account (Refer below Section 3 - Create a test user account) in case that is the desired outcome.\n        \n3. All further calls to Perx are authenticated for that session using the user-based token\n    \n4. Perx will manage the following User attributes:\n    \n    1. Loyalty information\n        \n    2. Campaign eligibility\n        \n    3. Reward issuance and redemption\n        \n    4. Campaign activity log (views, plays, outcomes, etc.)\n        \n    5. Any other personal attributes that may be required for segmentation such as gender, age group, birthday, etc.\n        \n\n# Personally Identifiable Information (PII) Data\n\nPerx does not take in any PII information. User Identifiers should be anonymized or tokenized by the requesting application before being sent over to create a User within the system.\n\n<img src=\"https://perx-cdn.s3-ap-southeast-1.amazonaws.com/postman/auth_2.png\">\n\nNonetheless, any User created within Perx may be further annotated with `personal_properties` (refer to Create User for more details), which will enable marketers to use the properties provided to segment and target specific groups or sets of Users.\n\n# Widely used APIs\n\nThe table below describes some of the core and more widely used APIs from the Perx platform:\n\n| **API Category** | **Usage / Description** |\n| --- | --- |\n| Authentication | Application, Admin, and User authentication transferred over OAuth and https. |\n| Rewards | Retrieve a list of rewards scoped to a User, along with calls to issue, reserve, gift, etc. the respective rewards. |\n| Vouchers | Retrieve a list of vouchers (which are rewards that have been issued), along with calls to redeem, gift, or release the respective rewards. |\n| Campaigns | Retrieve a list of active campaigns, including specific calls to start a gamified campaign, or various actions related to stamp campaigns. |\n| Loyalty | API endpoints for loyalty information and transactions. |\n| Automation | Endpoint for app triggers used by the Rule Builder feature on the Perx dashboard. |\n| POS Access | Administrative endpoints for user account management, voucher redemptions, and transactions related to the earning of loyalty points |\n\n# Terminology\n\n| **Term / Acronym** | **Description** |\n| --- | --- |\n| Admin | Dashboard user who will access and administer the system (campaign management, reward management, etc.) |\n| App | The mobile App with which the Perx dashboard will be integrated. |\n| Campaign | Campaigns created within Perx dashboard under the Campaigns module. |\n| CRUD | Refers to the Create, Read, Update, and Delete operations |\n| Dashboard | Refers to the user interface using which Admins create and manage various functionalities and modules within Perx. |\n| Rewards | Refers to a reward item that is created and managed within the Rewards module. |\n| System Administrator User | The administrator of the entire Perx setup which has full rights and permissions across all functions and features. |\n| Tenant | A single instance of a Perx platform setup. Clients generally have 2 tenants: staging and production. |\n| User | End-user of the App that is interacting and engaging with the rewards and campaigns that have been set up on Perx (earning, burning points, participating in game campaigns, receiving and redeeming vouchers, etc.). |\n| Voucher | A reward that has been issued to a User. |","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"10975951","team":324806,"collectionId":"39c75360-b796-4bfc-85fd-0068ebc8b7f8","publishedId":"UVR4MV2w","public":true,"publicUrl":"https://developers.perxtech.com","privateUrl":"https://go.postman.co/documentation/10975951-39c75360-b796-4bfc-85fd-0068ebc8b7f8","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.10.0","publishDate":"2021-12-10T00:30:48.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/0c7a4b52d9bcde877eee4aa9a0413dd644e9c6db5468dee373c5550984d56cea","favicon":"https://res.cloudinary.com/postman/image/upload/v1619429780/team/pm0tk4rh1o9oos7maipr.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://developers.perxtech.com/view/metadata/UVR4MV2w"}