NAV Navbar
PHP HTTP Shell JavaScript

REST API v3.0

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

REST API version 3.0 is currently in Beta and is NOT stable. Please use version 2.0^ for production ready applications.

Base URLs:

Email: Support License: Apache 2.0

Authentication

Scope Scope Description
user.read Read your profile information
user.write Update user's profile info
user.instrument.read View user's saved instruments
user.instrument.write Manage user's saved instruments
user.payment.read View user's stored payment card information
user.order.read View user’s completed order information
user.savings_account View user's savings account statistics, cashback balance
user.retailers Manage user's retailer preferences
programme.read View programme information
programme.modules View programme's enabled modules
programme.statistics View programme's dashboard data, milestones, timeline of events
checkout.basket.read View active basket information
checkout.basket.write Update basket by adding or removing items
checkout.payment Make payment on behalf of user
retailers.read View a list of retailers, products and offers supported through SmartSpending™
device.manage Manage registering/unregistering devices for notifications to be sent out
scim.readOnly Read member information on your programme. This will NOT allow the client to write any data.
scim.readWrite Read member information on your programme as well as be able to make changes to Eligibility Listen
user.app.review App review service
notification.read Read members notifications
notification.write Manage notifcations
notification.preferences.read Read members notification preferences
notification.preferences.write Manager members notification preferences
srw.feed.read List the Social Recognition Wall feed
srw.feed.write Add feed items the Social Recognition Wall feed
srw.feed.filter.read Filters on Social Recognition Wall
srw.feed.reaction.read List the Social Recognition Wall feed item reactions
srw.feed.reaction.write React on the Social Recognition Wall feed item
srw.feed.comment.read List the Social Recognition Wall feed item comments
srw.feed.comment.write Comment on the Social Recognition Wall feed item
srw.feed.comment.reply.read List the Social Recognition Wall feed item comment replies
srw.feed.comment.reply.write Reply on the Social Recognition Wall feed item comment
srw.feed.reaction.toolbar.read List the Social Recognition Wall toolbar reactions
srw.ecard.read List the Social Recognition Wall ecard categories within ecards
srw.user.activity.read List user SRW activity
srw.user.stats.read List user SRW statistics
user.hierarchy.read List user hierarchy
user.details.read List user details
user.search Search members
surveys.write Survey Endpoints
programme.create Create a programme
programme.write Write to a programme
programme.admin Manage all programmes
trs.read Read TRS Statements for the user
recognition.external.read Get external recognition form structure.
recognition.external.write Store external recognition details.

Authentication

Authentication Service

Obtain an access token

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'multipart/form-data',
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.rewardgateway.net/auth/access_token', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST https://api.rewardgateway.net/auth/access_token HTTP/1.1
Host: api.rewardgateway.net
Content-Type: multipart/form-data
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X POST https://api.rewardgateway.net/auth/access_token \
  -H 'Content-Type: multipart/form-data' \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'

const inputBody = '{
  "client_id": "string",
  "client_secret": "string",
  "grant_type": "string",
  "username": "string",
  "password": "string",
  "scope": "string",
  "os": "string",
  "os_version": "string",
  "device_manufacturer": "string",
  "device_model": "string",
  "app_name": "string",
  "app_version": "string",
  "device_unique_id": "string"
}';
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/auth/access_token',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /auth/access_token

Issues an access token based on supplied credentials

Body parameter

client_id: string
client_secret: string
grant_type: string
username: string
password: string
scope: string
os: string
os_version: string
device_manufacturer: string
device_model: string
app_name: string
app_version: string
device_unique_id: string

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
body body object true none
» client_id body string true Client Id
» client_secret body string true Client Secret
» grant_type body string true Grant type
» username body string true Email address of the member
» password body string true Password of the member
» scope body string true OAuth scope
» os body string false Client OS
» os_version body string false Client OS version
» device_manufacturer body string false Client device manufacturer
» device_model body string false Client device model
» app_name body string false Client app name
» app_version body string false Client app version
» device_unique_id body string false Device Unique ID

Example responses

200 Response

{
  "token_type": "Bearer",
  "expires_in": 600,
  "access_token": "a0b1c2d3e4f5a6b7c8d9...",
  "refresh_token": "a0b1c2d3e4f5a6b7c8d9..."
}

Responses

Status Meaning Description Schema
200 OK Successful operation authResponse
401 Unauthorized Invalid credentials standardModel

Issues an authorization code

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'multipart/form-data',
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.rewardgateway.net/auth/authorize_code', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST https://api.rewardgateway.net/auth/authorize_code?client_id=string&scope=string&response_type=string&redirect_uri=string&state=string HTTP/1.1
Host: api.rewardgateway.net
Content-Type: multipart/form-data
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X POST https://api.rewardgateway.net/auth/authorize_code?client_id=string&scope=string&response_type=string&redirect_uri=string&state=string \
  -H 'Content-Type: multipart/form-data' \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'

const inputBody = '{
  "username": "string",
  "password": "string",
  "grant_type": "string"
}';
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/auth/authorize_code?client_id=string&scope=string&response_type=string&redirect_uri=string&state=string',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /auth/authorize_code

Issues an authorization code

Body parameter

username: string
password: string
grant_type: string

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
client_id query string true Client Id
scope query string true Scope
response_type query string true Response Type should always be code
redirect_uri query string true Redirect uri
state query string true State
body body object true none
» username body string true Username
» password body string true Password
» grant_type body string true Grant Type

Example responses

200 Response

{
  "token_type": "Bearer",
  "expires_in": 600,
  "access_token": "a0b1c2d3e4f5a6b7c8d9...",
  "refresh_token": "a0b1c2d3e4f5a6b7c8d9..."
}

Responses

Status Meaning Description Schema
200 OK Successful operation authResponse
400 Bad Request Invalid request standardModel
403 Forbidden Access to the resource has been denied standardModel
404 Not Found Invalid Credentials. Please try again. standardModel

Logs the member out

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.rewardgateway.net/auth/logout', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST https://api.rewardgateway.net/auth/logout HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X POST https://api.rewardgateway.net/auth/logout \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/auth/logout',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /auth/logout

Logs the member out

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning

Example responses

403 Response

{
  "code": 1234,
  "message": "Example message",
  "details": [
    "Example details"
  ]
}

Responses

Status Meaning Description Schema
204 No Content Successful operation None
403 Forbidden Access has been denied standardModel

Simple test on token validity

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/auth/is_logged_in', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/auth/is_logged_in HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/auth/is_logged_in \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/auth/is_logged_in',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /auth/is_logged_in

Returns 200 OK if still logged in

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning

Example responses

200 Response

{
  "code": 1234,
  "message": "Example message",
  "details": [
    "Example details"
  ]
}

Responses

Status Meaning Description Schema
200 OK Logged in standardModel
403 Forbidden Not logged in standardModel

Reward Gateway for Small Business

All internal endpoints related to Reward Gateway for Small Businesses

Handle subscription & billing webhook lifecycle events

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Basic cmJfYXV0aDpyYl8ha0pHVGRWZGE3UUVFRVM1QmdsRWJic01oMW9rZ2JlZXM=' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.rewardgateway.net/billing/webhook', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST https://api.rewardgateway.net/billing/webhook?v=string&webhookKey=string HTTP/1.1
Host: api.rewardgateway.net

Basic cmJfYXV0aDpyYl8ha0pHVGRWZGE3UUVFRVM1QmdsRWJic01oMW9rZ2JlZXM=: string

# You can also use wget
curl -X POST https://api.rewardgateway.net/billing/webhook?v=string&webhookKey=string \
  -H 'Basic cmJfYXV0aDpyYl8ha0pHVGRWZGE3UUVFRVM1QmdsRWJic01oMW9rZ2JlZXM=: string'


const headers = {
  'Basic cmJfYXV0aDpyYl8ha0pHVGRWZGE3UUVFRVM1QmdsRWJic01oMW9rZ2JlZXM=':'string'
};

fetch('https://api.rewardgateway.net/billing/webhook?v=string&webhookKey=string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /billing/webhook

Application will handle 3rd lifecycle billing/subscription events

Parameters

Name In Type Required Description
Basic cmJfYXV0aDpyYl8ha0pHVGRWZGE3UUVFRVM1QmdsRWJic01oMW9rZ2JlZXM= header string true Basic cmJfYXV0aDpyYl8ha0pHVGRWZGE3UUVFRVM1QmdsRWJic01oMW9rZ2JlZXM= - above is an example. of basic field not exact for security reasons.
v query string true version of api requested
webhookKey query string true webhook key passed for extra security

Responses

Status Meaning Description Schema
200 OK Successful operation None
400 Bad Request BadRequest - request parameters invalid. None
401 Unauthorized Unauthorized - incorrect parameters passed for authoirisation. None
404 Not Found Invalid Authorisation and/or access request parameters None
500 Internal Server Error Internal server error. None

Returns list of documents for the programme

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/scheme/{schemeId}/comms', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/scheme/{schemeId}/comms HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string

# You can also use wget
curl -X GET https://api.rewardgateway.net/scheme/{schemeId}/comms \
  -H 'Accept: application/json' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/scheme/{schemeId}/comms',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /scheme/{schemeId}/comms

This endpoint will return you a list of documents related to your programme. i.e. Posters, Flyers etc

Parameters

Name In Type Required Description
Authorization header string true Valid Bearer access token
schemeId path string true scheme id or UUID

Example responses

200 Response

{
  "title": "Discounts Poster",
  "downloadPath": "https://site1.rewardgateway.dev/admin/comms/document/DiscountsPoster",
  "thumbnailPath": "https://static.rewardgateway.dev/BrandAssets/responsive/img/SelfService/admin/comms/discounts-poster.jpg",
  "type": "PDF",
  "buttonText": "Download",
  "category": "Launch"
}

Responses

Status Meaning Description Schema
200 OK Successful operation commsDocument
403 Forbidden Access to the resource has been denied standardModel
404 Not Found Scheme is not found standardModel

New Client onboarding record

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://api.rewardgateway.net/onboarding/{uuid}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

PUT https://api.rewardgateway.net/onboarding/{uuid} HTTP/1.1
Host: api.rewardgateway.net
Content-Type: application/json
Accept: application/json
Authorization: string

# You can also use wget
curl -X PUT https://api.rewardgateway.net/onboarding/{uuid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: string'

const inputBody = '{
  "firstName": "John",
  "lastName": "Doe",
  "phoneNumber": "0437819232",
  "email": "john.doe@rewardgateway.com",
  "token": "foo-bar",
  "companyName": "My Company",
  "companyLegalName": "My Company Ltd.",
  "numberOfEmployees": 50,
  "companyRegistrationNumber": "string",
  "streetAddress": "265 Tottenham Court Rd",
  "streetAddressLineTwo": "265 Tottenham Court Rd",
  "city": "London",
  "county": "Greater London",
  "postalCode": "W1T 7RQ",
  "schemeAlias": "companyname.rewardgateway.com",
  "termsAndConditions": "2020-07-14 12:45:00",
  "localeId": "1"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/onboarding/{uuid}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /onboarding/{uuid}

This endpoint update information for a new RGSB account

Body parameter

{
  "firstName": "John",
  "lastName": "Doe",
  "phoneNumber": "0437819232",
  "email": "john.doe@rewardgateway.com",
  "token": "foo-bar",
  "companyName": "My Company",
  "companyLegalName": "My Company Ltd.",
  "numberOfEmployees": 50,
  "companyRegistrationNumber": "string",
  "streetAddress": "265 Tottenham Court Rd",
  "streetAddressLineTwo": "265 Tottenham Court Rd",
  "city": "London",
  "county": "Greater London",
  "postalCode": "W1T 7RQ",
  "schemeAlias": "companyname.rewardgateway.com",
  "termsAndConditions": "2020-07-14 12:45:00",
  "localeId": "1"
}
firstName: John
lastName: Doe
phoneNumber: "0437819232"
email: john.doe@rewardgateway.com
token: foo-bar
companyName: My Company
companyLegalName: My Company Ltd.
numberOfEmployees: 50
companyRegistrationNumber: string
streetAddress: 265 Tottenham Court Rd
streetAddressLineTwo: 265 Tottenham Court Rd
city: London
county: Greater London
postalCode: W1T 7RQ
schemeAlias: companyname.rewardgateway.com
termsAndConditions: 2020-07-14 12:45:00
localeId: "1"

Parameters

Name In Type Required Description
Authorization header string true Valid Bearer access token
uuid path string true Onboarding member identifier
body body self_service_onboarding false none

Example responses

200 Response

{
  "uuid": "string",
  "firstName": "John",
  "lastName": "Doe",
  "phoneNumber": "0437819232",
  "email": "john.doe@rewardgateway.com",
  "token": "foo-bar",
  "companyName": "My Company",
  "companyLegalName": "My Company Ltd.",
  "numberOfEmployees": 50,
  "companyRegistrationNumber": "string",
  "streetAddress": "265 Tottenham Court Rd",
  "streetAddressLineTwo": "265 Tottenham Court Rd",
  "city": "London",
  "county": "Greater London",
  "postalCode": "W1T 7RQ",
  "schemeAlias": "companyname.rewardgateway.com",
  "termsAndConditions": "2020-07-14 12:45:00",
  "status": "New Prospect",
  "localeId": "1",
  "verificationSentTimes": 1
}

Responses

Status Meaning Description Schema
200 OK Successful operation self_service_onboarding
400 Bad Request Data validation errors standardModel

Get client onboarding record

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/onboarding/{uuid}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/onboarding/{uuid} HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string

# You can also use wget
curl -X GET https://api.rewardgateway.net/onboarding/{uuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/onboarding/{uuid}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /onboarding/{uuid}

This endpoint get information for RGSB account

Parameters

Name In Type Required Description
Authorization header string true Valid Bearer access token
uuid path string true Onboarding member identifier

Example responses

200 Response

{
  "uuid": "string",
  "firstName": "John",
  "lastName": "Doe",
  "phoneNumber": "0437819232",
  "email": "john.doe@rewardgateway.com",
  "token": "foo-bar",
  "companyName": "My Company",
  "companyLegalName": "My Company Ltd.",
  "numberOfEmployees": 50,
  "companyRegistrationNumber": "string",
  "streetAddress": "265 Tottenham Court Rd",
  "streetAddressLineTwo": "265 Tottenham Court Rd",
  "city": "London",
  "county": "Greater London",
  "postalCode": "W1T 7RQ",
  "schemeAlias": "companyname.rewardgateway.com",
  "termsAndConditions": "2020-07-14 12:45:00",
  "status": "New Prospect",
  "localeId": "1",
  "verificationSentTimes": 1
}

Responses

Status Meaning Description Schema
200 OK Successful operation self_service_onboarding
400 Bad Request Data validation errors standardModel

Creates a programme

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.rewardgateway.net/scheme', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST https://api.rewardgateway.net/scheme HTTP/1.1
Host: api.rewardgateway.net
Content-Type: application/json
Accept: application/json
Authorization: string

# You can also use wget
curl -X POST https://api.rewardgateway.net/scheme \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: string'

const inputBody = '{
  "name": "Reward Hub",
  "companyName": "My Company",
  "companyLegalName": "My Company Ltd.",
  "accountId": "0061j000007EKwDAAW",
  "subAccountId": "0061j000007EKwDAAW",
  "parentAccountId": "0061j000007EKwDAAW",
  "opportunityId": "0061j000007EKwDAAW",
  "emailDomain": "string",
  "schemeType": "rarebreed",
  "localeId": "1",
  "postalCode": "W1T 7RQ",
  "addressLine1": "265 Tottenham Court Rd",
  "addressLine2": "string",
  "addressLine3": "London",
  "addressLine4": "string",
  "companyRegistrationNumber": "string",
  "accountManagerEmail": "account.manager@rewardgateway.com",
  "implementationManagerEmail": "implementation.manager@rewardgateway.com",
  "status": 0,
  "user": {
    "id": "43a0cbfb-f17b-4b8e-9d22-a93b077e8c4d",
    "firstName": "John",
    "lastName": "Doe",
    "phoneNumber": "0437819232",
    "email": "john.doe@rewardgateway.com",
    "verificationCode": 123456
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/scheme',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /scheme

This endpoint will allow you to create a brand new programme for use.

Body parameter

{
  "name": "Reward Hub",
  "companyName": "My Company",
  "companyLegalName": "My Company Ltd.",
  "accountId": "0061j000007EKwDAAW",
  "subAccountId": "0061j000007EKwDAAW",
  "parentAccountId": "0061j000007EKwDAAW",
  "opportunityId": "0061j000007EKwDAAW",
  "emailDomain": "string",
  "schemeType": "rarebreed",
  "localeId": "1",
  "postalCode": "W1T 7RQ",
  "addressLine1": "265 Tottenham Court Rd",
  "addressLine2": "string",
  "addressLine3": "London",
  "addressLine4": "string",
  "companyRegistrationNumber": "string",
  "accountManagerEmail": "account.manager@rewardgateway.com",
  "implementationManagerEmail": "implementation.manager@rewardgateway.com",
  "status": 0,
  "user": {
    "id": "43a0cbfb-f17b-4b8e-9d22-a93b077e8c4d",
    "firstName": "John",
    "lastName": "Doe",
    "phoneNumber": "0437819232",
    "email": "john.doe@rewardgateway.com",
    "verificationCode": 123456
  }
}
name: Reward Hub
companyName: My Company
companyLegalName: My Company Ltd.
accountId: 0061j000007EKwDAAW
subAccountId: 0061j000007EKwDAAW
parentAccountId: 0061j000007EKwDAAW
opportunityId: 0061j000007EKwDAAW
emailDomain: string
schemeType: rarebreed
localeId: "1"
postalCode: W1T 7RQ
addressLine1: 265 Tottenham Court Rd
addressLine2: string
addressLine3: London
addressLine4: string
companyRegistrationNumber: string
accountManagerEmail: account.manager@rewardgateway.com
implementationManagerEmail: implementation.manager@rewardgateway.com
status: 0
user:
  id: 43a0cbfb-f17b-4b8e-9d22-a93b077e8c4d
  firstName: John
  lastName: Doe
  phoneNumber: "0437819232"
  email: john.doe@rewardgateway.com
  verificationCode: 123456

Parameters

Name In Type Required Description
Authorization header string true Valid Bearer access token
body body self_service_scheme false none

Example responses

200 Response

{
  "id": "string",
  "uuid": "string",
  "name": "Reward Hub",
  "companyName": "My Company",
  "companyLegalName": "My Company Ltd.",
  "accountId": "0061j000007EKwDAAW",
  "subAccountId": "0061j000007EKwDAAW",
  "parentAccountId": "0061j000007EKwDAAW",
  "opportunityId": "0061j000007EKwDAAW",
  "emailDomain": "string",
  "schemeType": "rarebreed",
  "localeId": "1",
  "postalCode": "W1T 7RQ",
  "addressLine1": "265 Tottenham Court Rd",
  "addressLine2": "string",
  "addressLine3": "London",
  "addressLine4": "string",
  "companyRegistrationNumber": "string",
  "accountManagerEmail": "account.manager@rewardgateway.com",
  "implementationManagerEmail": "implementation.manager@rewardgateway.com",
  "status": 0,
  "user": {
    "id": "43a0cbfb-f17b-4b8e-9d22-a93b077e8c4d",
    "firstName": "John",
    "lastName": "Doe",
    "phoneNumber": "0437819232",
    "email": "john.doe@rewardgateway.com",
    "verificationCode": 123456
  }
}

Responses

Status Meaning Description Schema
200 OK Successful operation self_service_scheme
403 Forbidden Access to the resource has been denied standardModel

Updates programme details

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://api.rewardgateway.net/scheme/{schemeId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

PUT https://api.rewardgateway.net/scheme/{schemeId} HTTP/1.1
Host: api.rewardgateway.net
Content-Type: application/json
Accept: application/json
Authorization: string

# You can also use wget
curl -X PUT https://api.rewardgateway.net/scheme/{schemeId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: string'

const inputBody = '{
  "name": "Reward Hub",
  "companyName": "My Company",
  "companyLegalName": "My Company Ltd.",
  "accountId": "0061j000007EKwDAAW",
  "subAccountId": "0061j000007EKwDAAW",
  "parentAccountId": "0061j000007EKwDAAW",
  "opportunityId": "0061j000007EKwDAAW",
  "emailDomain": "string",
  "schemeType": "rarebreed",
  "localeId": "1",
  "postalCode": "W1T 7RQ",
  "addressLine1": "265 Tottenham Court Rd",
  "addressLine2": "string",
  "addressLine3": "London",
  "addressLine4": "string",
  "companyRegistrationNumber": "string",
  "accountManagerEmail": "account.manager@rewardgateway.com",
  "implementationManagerEmail": "implementation.manager@rewardgateway.com",
  "status": 0,
  "user": {
    "id": "43a0cbfb-f17b-4b8e-9d22-a93b077e8c4d",
    "firstName": "John",
    "lastName": "Doe",
    "phoneNumber": "0437819232",
    "email": "john.doe@rewardgateway.com",
    "verificationCode": 123456
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/scheme/{schemeId}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /scheme/{schemeId}

This endpoint allows you to update all details related to a programme.

Body parameter

{
  "name": "Reward Hub",
  "companyName": "My Company",
  "companyLegalName": "My Company Ltd.",
  "accountId": "0061j000007EKwDAAW",
  "subAccountId": "0061j000007EKwDAAW",
  "parentAccountId": "0061j000007EKwDAAW",
  "opportunityId": "0061j000007EKwDAAW",
  "emailDomain": "string",
  "schemeType": "rarebreed",
  "localeId": "1",
  "postalCode": "W1T 7RQ",
  "addressLine1": "265 Tottenham Court Rd",
  "addressLine2": "string",
  "addressLine3": "London",
  "addressLine4": "string",
  "companyRegistrationNumber": "string",
  "accountManagerEmail": "account.manager@rewardgateway.com",
  "implementationManagerEmail": "implementation.manager@rewardgateway.com",
  "status": 0,
  "user": {
    "id": "43a0cbfb-f17b-4b8e-9d22-a93b077e8c4d",
    "firstName": "John",
    "lastName": "Doe",
    "phoneNumber": "0437819232",
    "email": "john.doe@rewardgateway.com",
    "verificationCode": 123456
  }
}
name: Reward Hub
companyName: My Company
companyLegalName: My Company Ltd.
accountId: 0061j000007EKwDAAW
subAccountId: 0061j000007EKwDAAW
parentAccountId: 0061j000007EKwDAAW
opportunityId: 0061j000007EKwDAAW
emailDomain: string
schemeType: rarebreed
localeId: "1"
postalCode: W1T 7RQ
addressLine1: 265 Tottenham Court Rd
addressLine2: string
addressLine3: London
addressLine4: string
companyRegistrationNumber: string
accountManagerEmail: account.manager@rewardgateway.com
implementationManagerEmail: implementation.manager@rewardgateway.com
status: 0
user:
  id: 43a0cbfb-f17b-4b8e-9d22-a93b077e8c4d
  firstName: John
  lastName: Doe
  phoneNumber: "0437819232"
  email: john.doe@rewardgateway.com
  verificationCode: 123456

Parameters

Name In Type Required Description
Authorization header string true Valid Bearer access token
schemeId path string true scheme id or UUID
body body self_service_scheme false none

Example responses

200 Response

{
  "id": "string",
  "uuid": "string",
  "name": "Reward Hub",
  "companyName": "My Company",
  "companyLegalName": "My Company Ltd.",
  "accountId": "0061j000007EKwDAAW",
  "subAccountId": "0061j000007EKwDAAW",
  "parentAccountId": "0061j000007EKwDAAW",
  "opportunityId": "0061j000007EKwDAAW",
  "emailDomain": "string",
  "schemeType": "rarebreed",
  "localeId": "1",
  "postalCode": "W1T 7RQ",
  "addressLine1": "265 Tottenham Court Rd",
  "addressLine2": "string",
  "addressLine3": "London",
  "addressLine4": "string",
  "companyRegistrationNumber": "string",
  "accountManagerEmail": "account.manager@rewardgateway.com",
  "implementationManagerEmail": "implementation.manager@rewardgateway.com",
  "status": 0,
  "user": {
    "id": "43a0cbfb-f17b-4b8e-9d22-a93b077e8c4d",
    "firstName": "John",
    "lastName": "Doe",
    "phoneNumber": "0437819232",
    "email": "john.doe@rewardgateway.com",
    "verificationCode": 123456
  }
}

Responses

Status Meaning Description Schema
200 OK Successful operation self_service_scheme
403 Forbidden Access to the resource has been denied standardModel
404 Not Found Scheme is not found standardModel

Replaces programme logo image

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'multipart/form-data',
    'Accept' => 'application/json',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.rewardgateway.net/scheme/{schemeId}/logo', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST https://api.rewardgateway.net/scheme/{schemeId}/logo HTTP/1.1
Host: api.rewardgateway.net
Content-Type: multipart/form-data
Accept: application/json
Authorization: string

# You can also use wget
curl -X POST https://api.rewardgateway.net/scheme/{schemeId}/logo \
  -H 'Content-Type: multipart/form-data' \
  -H 'Accept: application/json' \
  -H 'Authorization: string'

const inputBody = '{
  "image": "string"
}';
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/scheme/{schemeId}/logo',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /scheme/{schemeId}/logo

Replaces scheme logo image using binary file in request body. Content-Type header must be correct mime-type or multipart/form-data

Body parameter

image: string

Parameters

Name In Type Required Description
Authorization header string true Valid Bearer access token
schemeId path string true scheme id or UUID
body body object true none
» image body string(binary) true new logo image to replace existing logo

Example responses

200 Response

{
  "imageUrl": "string"
}

Responses

Status Meaning Description Schema
200 OK Successful operation Inline
400 Bad Request Validation Errors standardModel
403 Forbidden Access to the resource has been denied standardModel
404 Not Found Scheme is not found standardModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
» imageUrl string false none none

Updates scheme colour settings

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://api.rewardgateway.net/scheme/{schemeId}/colour', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

PUT https://api.rewardgateway.net/scheme/{schemeId}/colour HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string

# You can also use wget
curl -X PUT https://api.rewardgateway.net/scheme/{schemeId}/colour \
  -H 'Accept: application/json' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/scheme/{schemeId}/colour',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /scheme/{schemeId}/colour

This endpoint allows you to update programme colors associated with your programme. These are the themese colors used with the site.

Parameters

Name In Type Required Description
Authorization header string true Valid Bearer access token
schemeId path string true scheme id or UUID

Example responses

200 Response

{
  "navigationBackground": "003865",
  "buttonBackground": "003865"
}

Responses

Status Meaning Description Schema
200 OK Successful operation schemeColour
400 Bad Request Validation Errors standardModel
403 Forbidden Access to the resource has been denied standardModel
404 Not Found Scheme is not found standardModel

Re-send members invitations

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://api.rewardgateway.net/scheme/{schemeId}/invitations', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

PUT https://api.rewardgateway.net/scheme/{schemeId}/invitations HTTP/1.1
Host: api.rewardgateway.net
Content-Type: application/json
Accept: application/json
Authorization: string

# You can also use wget
curl -X PUT https://api.rewardgateway.net/scheme/{schemeId}/invitations \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: string'

const inputBody = '[
  {
    "memberId": "string",
    "resend": true
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/scheme/{schemeId}/invitations',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /scheme/{schemeId}/invitations

This endpoint allows you to re-sends invitation emails to all currently invited members of the RG for Small Business scheme.

Body parameter

[
  {
    "memberId": "string",
    "resend": true
  }
]
- memberId: string
  resend: true

Parameters

Name In Type Required Description
Authorization header string true Valid Bearer access token
schemeId path string true scheme id or UUID
body body self_service_invitations true List of member uuid and resend flag

Example responses

400 Response

{
  "code": 1234,
  "message": "Example message",
  "details": [
    "Example details"
  ]
}

Responses

Status Meaning Description Schema
200 OK Successful operation None
400 Bad Request Validation Errors standardModel
403 Forbidden Access to the resource has been denied standardModel
404 Not Found Scheme is not found standardModel

Returns the programme domain

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/scheme/{schemeId}/alias', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/scheme/{schemeId}/alias HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string

# You can also use wget
curl -X GET https://api.rewardgateway.net/scheme/{schemeId}/alias \
  -H 'Accept: application/json' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/scheme/{schemeId}/alias',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /scheme/{schemeId}/alias

This endpoint will return the domains attached to the programme identifier that is passed.

Parameters

Name In Type Required Description
Authorization header string true Valid Bearer access token
schemeId path integer true none

Example responses

200 Response

{
  "id": "string",
  "hostname": "string"
}

Responses

Status Meaning Description Schema
200 OK Successful operation self_service_alias
403 Forbidden Access to the resource has been denied standardModel
404 Not Found Scheme or alias is not found standardModel

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://api.rewardgateway.net/scheme/{schemeId}/alias', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

PUT https://api.rewardgateway.net/scheme/{schemeId}/alias HTTP/1.1
Host: api.rewardgateway.net
Content-Type: application/json
Accept: application/json
Authorization: string

# You can also use wget
curl -X PUT https://api.rewardgateway.net/scheme/{schemeId}/alias \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: string'

const inputBody = '{
  "hostname": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/scheme/{schemeId}/alias',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /scheme/{schemeId}/alias

This endpoint will allow you to replace the current domain attached to a programme.

Body parameter

{
  "hostname": "string"
}
hostname: string

Name In Type Required Description
Authorization header string true Valid Bearer access token
schemeId path integer true scheme id
body body self_service_alias false none

Example responses

200 Response

{
  "id": "string",
  "hostname": "string"
}
Status Meaning Description Schema
200 OK Successful operation self_service_alias
403 Forbidden Access to the resource has been denied standardModel
404 Not Found Scheme is not found standardModel

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/scheme/alias', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/scheme/alias?hostname=string HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string

# You can also use wget
curl -X GET https://api.rewardgateway.net/scheme/alias?hostname=string \
  -H 'Accept: application/json' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/scheme/alias?hostname=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /scheme/alias

This endpoint will return the preferred domain related if found.

Parameters

Name In Type Required Description
Authorization header string true Valid Bearer access token
hostname query string true Scheme hostname

Example responses

200 Response

{
  "id": "string",
  "hostname": "string"
}

Responses

Status Meaning Description Schema
200 OK Successful operation self_service_alias
403 Forbidden Access to the resource has been denied standardModel
404 Not Found Scheme alias not found standardModel

Change user password

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://api.rewardgateway.net/user/{userId}/password', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

PUT https://api.rewardgateway.net/user/{userId}/password HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string

# You can also use wget
curl -X PUT https://api.rewardgateway.net/user/{userId}/password \
  -H 'Accept: application/json' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/user/{userId}/password',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /user/{userId}/password

This endpoint will allow you to change a user's password. Currently only available for RGSB clients.

Parameters

Name In Type Required Description
Authorization header string true Valid Bearer access token
userId path integer true none

Example responses

200 Response

{
  "id": "00000000-0000-0000-0000-000000000000",
  "firstName": "John",
  "lastName": "Smith",
  "email": "john.smith@acme.com",
  "emailVisible": true,
  "summary": "Ipsum dolor sit amet",
  "timezone": "UK, Western Europe (GMT +1:00)",
  "gender": "X",
  "addressLine1": "123 Some Road",
  "addressLine2": "Floor 4",
  "addressLine3": "London",
  "addressLine4": "London",
  "postalCode": "AA00 0AA",
  "country": "United Kingdom",
  "mobileNumber": "07700900077",
  "mobileNumberVisible": true,
  "telephoneNumber": "02700900077",
  "avatar": "https://www.acme.com/path/to/image.jpg",
  "dateOfBirth": "2019-08-24T14:15:22Z",
  "dateOfBirthVisible": true,
  "registrationDate": "2019-08-24T14:15:22Z",
  "registrationInfo": "Lorem ipsum dolor sit amet",
  "pushNotifications": true,
  "_links": {
    "self": {
      "href": "/user/me"
    },
    "locale": {
      "href": "/locale/{localeId}"
    },
    "scheme": {
      "href": "/scheme/{schemeId}"
    }
  },
  "_embedded": {
    "locale": {
      "id": 1,
      "name": "GB",
      "lang": "en_GB",
      "currency": "GBP",
      "symbol": "£",
      "states": [
        {
          "code": "ST",
          "name": "State"
        }
      ],
      "contactFields": {
        "firstName": "First Name",
        "lastName": "Surname",
        "emailAddress": "Email Address",
        "mobilePhoneNumber": "Mobile Phone Number",
        "addressLine1": "Address Line 1",
        "addressLine2": "Address Line 2",
        "addressLine3": "Address Line 3",
        "addressLine4": "Address Line 4",
        "postCode": "Postcode"
      },
      "_links": {
        "self": {
          "href": "/locale/{localeId}"
        }
      }
    },
    "scheme": {
      "id": 1234,
      "name": "Acme Rewards",
      "companyName": "Acme Ltd",
      "url": "https://acme.rewardgateway.com",
      "hasUsernameEndpoint": true,
      "team": [
        {
          "fullName": "John Smith",
          "firstName": "John",
          "lastName": "Smith",
          "email": "john.smith@acme.com",
          "cc": [
            "j.smith@acme.com"
          ],
          "image": "https://www.acme.com/path/to/image.jpg",
          "location": "United Kingdom",
          "description": "Lorem ipsum dolor sit amet",
          "role": "Director"
        }
      ],
      "branding": {
        "logo": "https://www.acme.com/path/to/image.jpg",
        "favIcon": "https://www.acme.com/path/to/image.jpg",
        "colours": {
          "navigationBackground": "a1b4c8",
          "navigationText": "a1b4c8",
          "buttonBackground": "a1b4c8",
          "buttonText": "a1b4c8",
          "pageBackground": "a1b4c8",
          "chevronBackground": "a1b4c8",
          "chevronText": "a1b4c8",
          "unselectedTabBackground": "a1b4c8",
          "unselectedTabText": "a1b4c8",
          "selectedTabBackground": "a1b4c8",
          "selectedTabText": "a1b4c8",
          "offersCarouselBackground": "a1b4c8",
          "offersCarouselText": "a1b4c8",
          "registerButtonBackground": "a1b4c8",
          "registerButtonText": "a1b4c8"
        }
      },
      "programmeTypes": [
        {
          "programmeTypeId": 1,
          "programmeTypeName": "Cashback",
          "stateId": 1,
          "stateName": "Enabled"
        }
      ],
      "enabledConfigurations": {
        "FVDining": true
      },
      "_links": {
        "self": {
          "href": "/scheme/{schemeId}"
        },
        "locale": {
          "href": "/locale/{localeId}"
        }
      },
      "_embedded": {
        "locale": {
          "id": 1,
          "name": "GB",
          "lang": "en_GB",
          "currency": "GBP",
          "symbol": "£",
          "states": [
            {
              "code": "ST",
              "name": "State"
            }
          ],
          "contactFields": {
            "firstName": "First Name",
            "lastName": "Surname",
            "emailAddress": "Email Address",
            "mobilePhoneNumber": "Mobile Phone Number",
            "addressLine1": "Address Line 1",
            "addressLine2": "Address Line 2",
            "addressLine3": "Address Line 3",
            "addressLine4": "Address Line 4",
            "postCode": "Postcode"
          },
          "_links": {
            "self": {
              "href": "/locale/{localeId}"
            }
          }
        }
      }
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Successful operation member
401 Unauthorized Access token expired standardModel
403 Forbidden Access to the resource has been denied standardModel

Categories

Categories Service

Retailer category details

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/category/{categoryId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/category/{categoryId} HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0
Authorization: string

# You can also use wget
curl -X GET https://api.rewardgateway.net/category/{categoryId} \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/category/{categoryId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /category/{categoryId}

Returns retailer category details from an identifier

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
Authorization header string true Authorization Header with Bearer Token
categoryId path integer true none

Example responses

200 Response

{
  "id": 123,
  "name": "Reloadable cards",
  "_links": {
    "self": {
      "href": "/category/{categoryId}"
    },
    "hierarchy": {
      "href": "/category/{categoryId}/hierarchy"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Successful operation category
401 Unauthorized Access token expired standardModel
403 Forbidden Access to the resource has been denied standardModel
404 Not Found Retailer category not found standardModel

Retailer category hierarchy

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/category/{categoryId}/hierarchy', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/category/{categoryId}/hierarchy HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0
Authorization: string

# You can also use wget
curl -X GET https://api.rewardgateway.net/category/{categoryId}/hierarchy \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/category/{categoryId}/hierarchy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /category/{categoryId}/hierarchy

Returns retailer category hierarchy from an identifier

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
Authorization header string true Authorization Header with Bearer Token
categoryId path integer true none

Example responses

200 Response

{
  "category": {
    "id": 123,
    "name": "Reloadable cards",
    "_links": {
      "self": {
        "href": "/category/{categoryId}"
      },
      "hierarchy": {
        "href": "/category/{categoryId}/hierarchy"
      }
    }
  },
  "parent": {
    "id": 123,
    "name": "Reloadable cards",
    "_links": {
      "self": {
        "href": "/category/{categoryId}"
      },
      "hierarchy": {
        "href": "/category/{categoryId}/hierarchy"
      }
    }
  },
  "children": [
    {
      "id": 123,
      "name": "Reloadable cards",
      "_links": {
        "self": {
          "href": "/category/{categoryId}"
        },
        "hierarchy": {
          "href": "/category/{categoryId}/hierarchy"
        }
      }
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Successful operation categoryHierarchy
401 Unauthorized Access token expired standardModel
403 Forbidden Access to the resource has been denied standardModel
404 Not Found Retailer category not found standardModel

Comms Blog

Comms Blog Product.

Fetch post details.

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/comms/blog/post/{postId}/details', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/comms/blog/post/{postId}/details HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/comms/blog/post/{postId}/details \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/comms/blog/post/{postId}/details',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /comms/blog/post/{postId}/details

Fetch post details.

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
postId path integer true Post origin Id

Example responses

200 Response

{
  "success": true,
  "data": {}
}

Responses

Status Meaning Description Schema
200 OK If post is found. commsPostDetails
400 Bad Request If some of parameters are not valid. errorModel
401 Unauthorized If current token doesnt have access to that resource. errorModel
404 Not Found Resource was not found. errorModel

Fetch post history.

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/comms/blog/post/{postId}/history', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/comms/blog/post/{postId}/history HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/comms/blog/post/{postId}/history \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/comms/blog/post/{postId}/history',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /comms/blog/post/{postId}/history

Fetch post status history.

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
postId path integer true Post origin Id

Example responses

200 Response

{
  "data": [
    {
      "doerUuid": "8a98e6b3-d51e-4829-a1e2-ed20bbfe248d",
      "doerType": "member",
      "profileUrl": "url",
      "hasProfileUrl": true,
      "isRejectionLink": true,
      "text": "Scheduled by someone.",
      "statusIndex": "scheduled",
      "statusText": "Scheduled",
      "dateElapsed": "2 days ago",
      "rawDate": "2020-07-03T12:36:38+00:00"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK If post history found. commsPostHistory
400 Bad Request If some of parameters are not valid. errorModel
401 Unauthorized If current token doesnt have access to that resource. errorModel
404 Not Found Resource was not found. errorModel

Fetch all rejection reasons and meta information.

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/comms/blog/post/{postId}/reject/options', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/comms/blog/post/{postId}/reject/options HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/comms/blog/post/{postId}/reject/options \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/comms/blog/post/{postId}/reject/options',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /comms/blog/post/{postId}/reject/options

Fetch all rejection reasons and meta information.

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
postId path integer true Post origin Id

Example responses

200 Response

{
  "success": true,
  "data": {
    "textLimit": "1500",
    "reasons": [
      {
        "value": "1",
        "label": "Too short"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK If everything is valid. rejectOptionsResponse
400 Bad Request If some of parameters are not valid. errorModel
401 Unauthorized If current token doesnt have access to that resource. errorModel
404 Not Found Resource was not found. errorModel

Reject waiting for review post for some reason.

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/comms/blog/post/{postId}/reject/fetch/{reasonId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/comms/blog/post/{postId}/reject/fetch/{reasonId} HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/comms/blog/post/{postId}/reject/fetch/{reasonId} \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/comms/blog/post/{postId}/reject/fetch/{reasonId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /comms/blog/post/{postId}/reject/fetch/{reasonId}

Reject waiting for review post for some reason.

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
postId path integer true Post origin Id
reasonId path integer true Reason Id

Example responses

200 Response

{
  "success": true,
  "data": [
    {
      "doerUuid": "8a98e6b3-d51e-4829-a1e2-ed20bbfe248d",
      "doerType": "member",
      "profileUrl": "url",
      "avatarUrl": "url",
      "hasProfileUrl": true,
      "isReject": true,
      "text": "Scheduled by someone.",
      "iconType": "cancel",
      "statusIndex": "rejected",
      "statusText": "Rejected",
      "dateElapsed": "2 days ago",
      "rawDate": "2020-07-03T12:36:38+00:00",
      "rejectInfoPath": "/comms/blog/post/200/reject/fetch/11",
      "reasonText": "Add more visual things.",
      "reasonsOptions": [
        "Too short"
      ]
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK If everything is valid. rejectReasonResponse
400 Bad Request If some of parameters are not valid. errorModel
401 Unauthorized If current token doesnt have access to that resource. errorModel
404 Not Found Resource was not found. errorModel

Curated

Curated Retailer Lists

Our picks

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/curated/our-picks', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/curated/our-picks HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0
Authorization: string

# You can also use wget
curl -X GET https://api.rewardgateway.net/curated/our-picks \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/curated/our-picks',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /curated/our-picks

Returns 'Our picks' curated list of retailers

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
Authorization header string true Authorization Header with Bearer Token
page query integer false Page number for paginated collections
limit query integer false Number of items per page for paginated collections

Example responses

200 Response

{
  "page": 1,
  "limit": 20,
  "pages": 10,
  "total": 200,
  "_links": {
    "self": {
      "href": "/curated/our-picks?page=5&limit=20"
    },
    "first": {
      "href": "/curated/our-picks?page=1&limit=20"
    },
    "last": {
      "href": "/curated/our-picks?page=10&limit=20"
    },
    "next": {
      "href": "/curated/our-picks?page=6&limit=20"
    },
    "previous": {
      "href": "/curated/our-picks?page=4&limit=20"
    }
  },
  "_embedded": {
    "retailers": [
      {
        "retailer": {
          "id": 1234,
          "name": "Acme",
          "logo": "https://www.acme.com/path/to/image.jpg",
          "description": "Retailer description for Acme",
          "isFavourite": true,
          "isFeatured": true,
          "category": {
            "id": 123,
            "name": "Reloadable cards",
            "_links": {
              "self": {
                "href": "/category/{categoryId}"
              },
              "hierarchy": {
                "href": "/category/{categoryId}/hierarchy"
              }
            }
          },
          "_links": {
            "self": {
              "href": "/retailer/{retailerId}"
            },
            "offers": {
              "href": "/retailer/{retailerId}/offers"
            }
          }
        },
        "bestOffer": {
          "id": 9999,
          "type": "Cashback",
          "description": "Description for this offer",
          "keyInformation": "Key information for this offer",
          "howItWorks": "Details on how this offer works",
          "termsAndConditions": "Terms & conditions of this offer",
          "expiryDate": "2019-08-24T14:15:22Z",
          "specialOffer": true,
          "redeemableOnDesktop": true,
          "redeemableOnMobile": true,
          "discount": {
            "saving": "Earn 3%",
            "description": "on all offers",
            "useableInStore": true,
            "useableOnline": true,
            "startsOn": "2019-08-24T14:15:22Z",
            "endsOn": "2019-08-24T14:15:22Z"
          },
          "normally": {
            "saving": "Earn 3%",
            "description": "on all offers",
            "useableInStore": true,
            "useableOnline": true,
            "startsOn": "2019-08-24T14:15:22Z",
            "endsOn": "2019-08-24T14:15:22Z"
          },
          "_links": {
            "self": {
              "href": "/offer/{offerId}"
            }
          }
        }
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Successful operation Inline
401 Unauthorized Access token expired standardModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
» page integer(int32) true none none
» limit integer(int32) true none none
» pages integer(int32) true none none
» total integer(int32) true none none
» _links object false none none
»» self object false none none
»»» href string false none Endpoint to access the current page of results
»» first object false none none
»»» href string false none Endpoint to access the first page of results
»» last object false none none
»»» href string false none Endpoint to access the last page of results
»» next object false none none
»»» href string false none Endpoint to access the next page of results
»» previous object false none none
»»» href string false none Endpoint to access the previous page of results
» _embedded object true none none
»» retailers [retailerDetails] false none none
»»» retailer object true none none
»»»» id integer(int32) true none Retailer identifier
»»»» name string true none Retailer's name
»»»» logo string true none Retailer's logo (URL)
»»»» description string true none Retailer's description
»»»» isFavourite boolean true none Is retailer favourited
»»»» isFeatured boolean true none Is retailer featured
»»»» category object false none none
»»»»» id integer(int32) true none Category identifier
»»»»» name string true none Category name
»»»»» _links object false none none
»»»»»» self object false none none
»»»»»»» href string false none Endpoint to access this resource
»»»»»» hierarchy object false none none
»»»»»»» href string false none Endpoint to retrieve category hierarchy
»»»» _links object false none none
»»»»» self object false none none
»»»»»» href string false none Endpoint to access this resource
»»»»» offers object false none none
»»»»»» href string false none Endpoint to retrieve all retailer's offers
»»» bestOffer object true none none
»»»» id integer(int32) true none Offer identifier
»»»» type string true none Type of the offer
»»»» description string true none Offer's description
»»»» keyInformation string true none Offer's key information
»»»» howItWorks string true none How the offer works
»»»» termsAndConditions string true none Offer's terms and conditions
»»»» expiryDate string(date-time) true none Offer's expiry date
»»»» specialOffer boolean true none Is this a special offer?
»»»» redeemableOnDesktop boolean true none Offer can be redeemed on the desktop
»»»» redeemableOnMobile boolean true none Offer can be redeemed on mobile
»»»» discount object true none none
»»»»» saving string true none Discount savings
»»»»» description string true none Discount description
»»»»» useableInStore boolean true none Discount can be used in-store
»»»»» useableOnline boolean true none Discount can be used online
»»»»» startsOn string(date-time) true none Discount is valid from
»»»»» endsOn string(date-time) true none Discount is valid until
»»»» normally object false none none
»»»» _links object false none none
»»»»» self object false none none
»»»»»» href string false none Endpoint to access this resource

This week is all about

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/curated/this-week', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/curated/this-week HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0
Authorization: string

# You can also use wget
curl -X GET https://api.rewardgateway.net/curated/this-week \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/curated/this-week',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /curated/this-week

Returns 'This week is all about' curated list of retailers

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
Authorization header string true Authorization Header with Bearer Token
page query integer false Page number for paginated collections
limit query integer false Number of items per page for paginated collections

Example responses

200 Response

{
  "page": 1,
  "limit": 20,
  "pages": 10,
  "total": 200,
  "_links": {
    "self": {
      "href": "/curated/this-week?page=5&limit=20"
    },
    "first": {
      "href": "/curated/this-week?page=1&limit=20"
    },
    "last": {
      "href": "/curated/this-week?page=10&limit=20"
    },
    "next": {
      "href": "/curated/this-week?page=6&limit=20"
    },
    "previous": {
      "href": "/curated/this-week?page=4&limit=20"
    }
  },
  "_embedded": {
    "retailers": [
      {
        "retailer": {
          "id": 1234,
          "name": "Acme",
          "logo": "https://www.acme.com/path/to/image.jpg",
          "description": "Retailer description for Acme",
          "isFavourite": true,
          "isFeatured": true,
          "category": {
            "id": 123,
            "name": "Reloadable cards",
            "_links": {
              "self": {
                "href": "/category/{categoryId}"
              },
              "hierarchy": {
                "href": "/category/{categoryId}/hierarchy"
              }
            }
          },
          "_links": {
            "self": {
              "href": "/retailer/{retailerId}"
            },
            "offers": {
              "href": "/retailer/{retailerId}/offers"
            }
          }
        },
        "bestOffer": {
          "id": 9999,
          "type": "Cashback",
          "description": "Description for this offer",
          "keyInformation": "Key information for this offer",
          "howItWorks": "Details on how this offer works",
          "termsAndConditions": "Terms & conditions of this offer",
          "expiryDate": "2019-08-24T14:15:22Z",
          "specialOffer": true,
          "redeemableOnDesktop": true,
          "redeemableOnMobile": true,
          "discount": {
            "saving": "Earn 3%",
            "description": "on all offers",
            "useableInStore": true,
            "useableOnline": true,
            "startsOn": "2019-08-24T14:15:22Z",
            "endsOn": "2019-08-24T14:15:22Z"
          },
          "normally": {
            "saving": "Earn 3%",
            "description": "on all offers",
            "useableInStore": true,
            "useableOnline": true,
            "startsOn": "2019-08-24T14:15:22Z",
            "endsOn": "2019-08-24T14:15:22Z"
          },
          "_links": {
            "self": {
              "href": "/offer/{offerId}"
            }
          }
        }
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Successful operation Inline
401 Unauthorized Access token expired standardModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
» page integer(int32) true none none
» limit integer(int32) true none none
» pages integer(int32) true none none
» total integer(int32) true none none
» _links object false none none
»» self object false none none
»»» href string false none Endpoint to access the current page of results
»» first object false none none
»»» href string false none Endpoint to access the first page of results
»» last object false none none
»»» href string false none Endpoint to access the last page of results
»» next object false none none
»»» href string false none Endpoint to access the next page of results
»» previous object false none none
»»» href string false none Endpoint to access the previous page of results
» _embedded object true none none
»» retailers [retailerDetails] false none none
»»» retailer object true none none
»»»» id integer(int32) true none Retailer identifier
»»»» name string true none Retailer's name
»»»» logo string true none Retailer's logo (URL)
»»»» description string true none Retailer's description
»»»» isFavourite boolean true none Is retailer favourited
»»»» isFeatured boolean true none Is retailer featured
»»»» category object false none none
»»»»» id integer(int32) true none Category identifier
»»»»» name string true none Category name
»»»»» _links object false none none
»»»»»» self object false none none
»»»»»»» href string false none Endpoint to access this resource
»»»»»» hierarchy object false none none
»»»»»»» href string false none Endpoint to retrieve category hierarchy
»»»» _links object false none none
»»»»» self object false none none
»»»»»» href string false none Endpoint to access this resource
»»»»» offers object false none none
»»»»»» href string false none Endpoint to retrieve all retailer's offers
»»» bestOffer object true none none
»»»» id integer(int32) true none Offer identifier
»»»» type string true none Type of the offer
»»»» description string true none Offer's description
»»»» keyInformation string true none Offer's key information
»»»» howItWorks string true none How the offer works
»»»» termsAndConditions string true none Offer's terms and conditions
»»»» expiryDate string(date-time) true none Offer's expiry date
»»»» specialOffer boolean true none Is this a special offer?
»»»» redeemableOnDesktop boolean true none Offer can be redeemed on the desktop
»»»» redeemableOnMobile boolean true none Offer can be redeemed on mobile
»»»» discount object true none none
»»»»» saving string true none Discount savings
»»»»» description string true none Discount description
»»»»» useableInStore boolean true none Discount can be used in-store
»»»»» useableOnline boolean true none Discount can be used online
»»»»» startsOn string(date-time) true none Discount is valid from
»»»»» endsOn string(date-time) true none Discount is valid until
»»»» normally object false none none
»»»» _links object false none none
»»»»» self object false none none
»»»»»» href string false none Endpoint to access this resource

Helpers

Helper Services

Sends one-time passcode to member

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'multipart/form-data',
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.rewardgateway.net/helpers/mail-otp', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST https://api.rewardgateway.net/helpers/mail-otp HTTP/1.1
Host: api.rewardgateway.net
Content-Type: multipart/form-data
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X POST https://api.rewardgateway.net/helpers/mail-otp \
  -H 'Content-Type: multipart/form-data' \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'

const inputBody = '{
  "username": "string",
  "clientId": "string"
}';
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/helpers/mail-otp',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /helpers/mail-otp

This endpoint will send an One-time passcode to a member. This maybe used for verification purposes.

Body parameter

username: string
clientId: string

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
body body object true none
» username body string true Member identifier
» clientId body string true Identifier of client connecting to the API

Example responses

200 Response

{
  "code": 1234,
  "message": "Example message",
  "details": [
    "Example details"
  ]
}

Responses

Status Meaning Description Schema
200 OK Successful operation standardModel
400 Bad Request Required parameters in request are missing/invalid standardModel
401 Unauthorized Access token expired standardModel
403 Forbidden Access denied standardModel
404 Not Found Member/programme not found standardModel
429 Too Many Requests Too many requests standardModel

Expire access token

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.rewardgateway.net/helpers/expire-accesstoken', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST https://api.rewardgateway.net/helpers/expire-accesstoken HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0
Authorization: string

# You can also use wget
curl -X POST https://api.rewardgateway.net/helpers/expire-accesstoken \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/helpers/expire-accesstoken',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /helpers/expire-accesstoken

Mark access token as expired

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
Authorization header string true Authorization Header with Bearer Token

Example responses

401 Response

{
  "code": 1234,
  "message": "Example message",
  "details": [
    "Example details"
  ]
}

Responses

Status Meaning Description Schema
204 No Content Successful operation None
401 Unauthorized Access token expired standardModel

Returns the current api and app version for os

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/helpers/versions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/helpers/versions?os=string&clientId=string&locale=0 HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/helpers/versions?os=string&clientId=string&locale=0 \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/helpers/versions?os=string&clientId=string&locale=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /helpers/versions

This endpoint returns the current minimum supported api versions for your client id.

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
os query string true Operating system one of os or android
clientId query string true Identifier of client connecting to the API
locale query integer true Locale identifier

Example responses

200 Response

{
  "appVersion": "1.2.3",
  "apiVersion": "1.2.3"
}

Responses

Status Meaning Description Schema
200 OK Successful operation Inline
400 Bad Request Required parameters in request are missing/invalid standardModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
» appVersion string false none none
» apiVersion string false none none

Is app version supported

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/helpers/version-supported', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/helpers/version-supported?clientId=string&appVersion=string&os=string&locale=0 HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/helpers/version-supported?clientId=string&appVersion=string&os=string&locale=0 \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/helpers/version-supported?clientId=string&appVersion=string&os=string&locale=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /helpers/version-supported

Check if the provided app version is supported

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
clientId query string true Identifier of client connecting to the API
appVersion query string true App version
os query string true Operating system one of os or android
locale query integer true Locale identifier

Example responses

200 Response

{
  "supported": true
}

Responses

Status Meaning Description Schema
200 OK Successful operation Inline
400 Bad Request Required parameters in request are missing/invalid standardModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
» supported boolean false none none

Find programmes by email address

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/helpers/lookup-scheme', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/helpers/lookup-scheme?username=string HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/helpers/lookup-scheme?username=string \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/helpers/lookup-scheme?username=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /helpers/lookup-scheme

Find a list of programmes that an email is registered on

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
username query string true Email address of the member
clientId query string false Identifier of client connecting to the API

Example responses

200 Response

[
  {
    "member": {
      "id": "00000000-0000-0000-0000-000000000000",
      "email": "user@acme.com",
      "_links": {
        "self": {
          "href": "/helper/lookup/scheme?username={memberEmail}"
        }
      }
    },
    "scheme": {
      "id": 1234,
      "name": "Acme Rewards",
      "companyName": "Acme Ltd",
      "url": "http://acme.rewardgateway.com",
      "hasUsernameEndpoint": true,
      "branding": {
        "logo": "https://www.acme.com/path/to/image.jpg",
        "favIcon": "https://www.acme.com/path/to/image.jpg",
        "colours": {
          "navigationBackground": "a1b4c8",
          "navigationText": "a1b4c8",
          "buttonBackground": "a1b4c8",
          "buttonText": "a1b4c8",
          "pageBackground": "a1b4c8",
          "chevronBackground": "a1b4c8",
          "chevronText": "a1b4c8",
          "unselectedTabBackground": "a1b4c8",
          "unselectedTabText": "a1b4c8",
          "selectedTabBackground": "a1b4c8",
          "selectedTabText": "a1b4c8",
          "offersCarouselBackground": "a1b4c8",
          "offersCarouselText": "a1b4c8",
          "registerButtonBackground": "a1b4c8",
          "registerButtonText": "a1b4c8"
        }
      },
      "_links": {
        "self": {
          "href": "/scheme/{schemeId}"
        }
      }
    },
    "locale": {
      "id": 1,
      "_links": {
        "self": {
          "href": "/locale/{localeId}"
        }
      }
    }
  }
]

Responses

Status Meaning Description Schema
200 OK Successful operation Inline
400 Bad Request Required parameters in request are missing/invalid standardModel
401 Unauthorized Access token expired standardModel
404 Not Found Member/programme not found standardModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [simplifiedResponse] false none none
» member object true none none
»» id string true none Member identifier
»» email string true none Member email
»» _links object false none none
»»» self object false none none
»»»» href string false none Endpoint to access this resource
» scheme object true none none
»» id integer(int32) true none Programme identifier
»» name string true none Programme name
»» companyName string true none Programme company
»» url string true none Programme URL
»» hasUsernameEndpoint boolean true none Programme has username endpoint
»» branding object false none none
»»» logo string true none Programme's logo
»»» favIcon string true none Programme's favourite icon
»»» colours object false none none
»»»» navigationBackground string true none Navigation background colour
»»»» navigationText string true none Navigation text colour
»»»» buttonBackground string false none Button background colour
»»»» buttonText string false none Button text colour
»»»» pageBackground string false none Page background colour
»»»» chevronBackground string false none Chevron background colour
»»»» chevronText string false none Chevron text colour
»»»» unselectedTabBackground string false none Unselected tab background colour
»»»» unselectedTabText string false none Unselected tab text colour
»»»» selectedTabBackground string false none Selected tab background colour
»»»» selectedTabText string false none Selected tab text colour
»»»» offersCarouselBackground string false none Offers caroussel background colour
»»»» offersCarouselText string false none Offers caroussel text colour
»»»» registerButtonBackground string false none Register button background colour
»»»» registerButtonText string false none Register button text colour
»» _links object false none none
»»» self object false none none
»»»» href string false none Endpoint to access this resource
» locale object true none none
»» id integer(int32) true none Locale identifier
»» _links object false none none
»»» self object false none none
»»»» href string false none Endpoint to access this resource

Get programme information from given domain

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/helpers/lookup-scheme-alias', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/helpers/lookup-scheme-alias?alias=string HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/helpers/lookup-scheme-alias?alias=string \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/helpers/lookup-scheme-alias?alias=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /helpers/lookup-scheme-alias

This endpoint searches for the domain provided and returns the related programme information if there is a match.

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
alias query string true Scheme Alias

Example responses

200 Response

{
  "id": 1234,
  "name": "Acme Rewards",
  "companyName": "Acme Ltd",
  "url": "https://acme.rewardgateway.com",
  "hasUsernameEndpoint": true,
  "team": [
    {
      "fullName": "John Smith",
      "firstName": "John",
      "lastName": "Smith",
      "email": "john.smith@acme.com",
      "cc": [
        "j.smith@acme.com"
      ],
      "image": "https://www.acme.com/path/to/image.jpg",
      "location": "United Kingdom",
      "description": "Lorem ipsum dolor sit amet",
      "role": "Director"
    }
  ],
  "branding": {
    "logo": "https://www.acme.com/path/to/image.jpg",
    "favIcon": "https://www.acme.com/path/to/image.jpg",
    "colours": {
      "navigationBackground": "a1b4c8",
      "navigationText": "a1b4c8",
      "buttonBackground": "a1b4c8",
      "buttonText": "a1b4c8",
      "pageBackground": "a1b4c8",
      "chevronBackground": "a1b4c8",
      "chevronText": "a1b4c8",
      "unselectedTabBackground": "a1b4c8",
      "unselectedTabText": "a1b4c8",
      "selectedTabBackground": "a1b4c8",
      "selectedTabText": "a1b4c8",
      "offersCarouselBackground": "a1b4c8",
      "offersCarouselText": "a1b4c8",
      "registerButtonBackground": "a1b4c8",
      "registerButtonText": "a1b4c8"
    }
  },
  "programmeTypes": [
    {
      "programmeTypeId": 1,
      "programmeTypeName": "Cashback",
      "stateId": 1,
      "stateName": "Enabled"
    }
  ],
  "enabledConfigurations": {
    "FVDining": true
  },
  "_links": {
    "self": {
      "href": "/scheme/{schemeId}"
    },
    "locale": {
      "href": "/locale/{localeId}"
    }
  },
  "_embedded": {
    "locale": {
      "id": 1,
      "name": "GB",
      "lang": "en_GB",
      "currency": "GBP",
      "symbol": "£",
      "states": [
        {
          "code": "ST",
          "name": "State"
        }
      ],
      "contactFields": {
        "firstName": "First Name",
        "lastName": "Surname",
        "emailAddress": "Email Address",
        "mobilePhoneNumber": "Mobile Phone Number",
        "addressLine1": "Address Line 1",
        "addressLine2": "Address Line 2",
        "addressLine3": "Address Line 3",
        "addressLine4": "Address Line 4",
        "postCode": "Postcode"
      },
      "_links": {
        "self": {
          "href": "/locale/{localeId}"
        }
      }
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Successful operation scheme
400 Bad Request Required parameters in request are missing/invalid standardModel
401 Unauthorized Access token expired standardModel
404 Not Found No scheme alias match standardModel

Get description of all oAuth 2.0 scopes

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/helpers/lookup-scopes', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/helpers/lookup-scopes?scopes=string HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/helpers/lookup-scopes?scopes=string \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/helpers/lookup-scopes?scopes=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /helpers/lookup-scopes

This endpoint will return a list of all scopes used within the application and descriptions of what each does.

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
scopes query string true Scopes, separated by spaces

Example responses

200 Response

{
  "scope1": "Scope 1 description",
  "scopeN": "Scope N description"
}

Responses

Status Meaning Description Schema
200 OK Successful operation Inline
400 Bad Request Required parameters in request are missing/invalid standardModel
401 Unauthorized Access token expired standardModel
404 Not Found Could not match any valid scopes to describe standardModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
» scope1 string false none The description for the first scope
» scopeN string false none The description for the n-th scope

Get description for the client

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/helpers/lookup-client', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/helpers/lookup-client?clientId=string&schemeId=0 HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/helpers/lookup-client?clientId=string&schemeId=0 \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/helpers/lookup-client?clientId=string&schemeId=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /helpers/lookup-client

Get more information and description for the client id

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
clientId query string true Client identifier
schemeId query integer true Programme identifier

Example responses

200 Response

{
  "client": {
    "id": "client_identifier",
    "name": "Acme Integration",
    "logo": "https://www.acme.com/path/to/image.jpg",
    "description": "Lorem ipsum dolor sit amet",
    "privacyUrl": "https://www.acme.com/privacy",
    "termsUrl": "https://www.acme.com/terms-and-conditions"
  },
  "scheme": {
    "id": 1234,
    "name": "Acme Rewards",
    "companyName": "Acme Ltd",
    "url": "https://acme.rewardgateway.com",
    "hasUsernameEndpoint": true,
    "team": [
      {
        "fullName": "John Smith",
        "firstName": "John",
        "lastName": "Smith",
        "email": "john.smith@acme.com",
        "cc": [
          "j.smith@acme.com"
        ],
        "image": "https://www.acme.com/path/to/image.jpg",
        "location": "United Kingdom",
        "description": "Lorem ipsum dolor sit amet",
        "role": "Director"
      }
    ],
    "branding": {
      "logo": "https://www.acme.com/path/to/image.jpg",
      "favIcon": "https://www.acme.com/path/to/image.jpg",
      "colours": {
        "navigationBackground": "a1b4c8",
        "navigationText": "a1b4c8",
        "buttonBackground": "a1b4c8",
        "buttonText": "a1b4c8",
        "pageBackground": "a1b4c8",
        "chevronBackground": "a1b4c8",
        "chevronText": "a1b4c8",
        "unselectedTabBackground": "a1b4c8",
        "unselectedTabText": "a1b4c8",
        "selectedTabBackground": "a1b4c8",
        "selectedTabText": "a1b4c8",
        "offersCarouselBackground": "a1b4c8",
        "offersCarouselText": "a1b4c8",
        "registerButtonBackground": "a1b4c8",
        "registerButtonText": "a1b4c8"
      }
    },
    "programmeTypes": [
      {
        "programmeTypeId": 1,
        "programmeTypeName": "Cashback",
        "stateId": 1,
        "stateName": "Enabled"
      }
    ],
    "enabledConfigurations": {
      "FVDining": true
    },
    "_links": {
      "self": {
        "href": "/scheme/{schemeId}"
      },
      "locale": {
        "href": "/locale/{localeId}"
      }
    },
    "_embedded": {
      "locale": {
        "id": 1,
        "name": "GB",
        "lang": "en_GB",
        "currency": "GBP",
        "symbol": "£",
        "states": [
          {
            "code": "ST",
            "name": "State"
          }
        ],
        "contactFields": {
          "firstName": "First Name",
          "lastName": "Surname",
          "emailAddress": "Email Address",
          "mobilePhoneNumber": "Mobile Phone Number",
          "addressLine1": "Address Line 1",
          "addressLine2": "Address Line 2",
          "addressLine3": "Address Line 3",
          "addressLine4": "Address Line 4",
          "postCode": "Postcode"
        },
        "_links": {
          "self": {
            "href": "/locale/{localeId}"
          }
        }
      }
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Successful operation Inline
400 Bad Request Required parameters in request are missing/invalid standardModel
401 Unauthorized Access token expired standardModel
403 Forbidden This api integration is currently disabled standardModel
404 Not Found Could not match any valid clients to describe standardModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
» client object false none none
»» id string true none Client identifier
»» name string true none Client name
»» logo string true none Client logo
»» description string true none Client description
»» privacyUrl string true none Client's privacy URL
»» termsUrl string true none Client's terms and conditions URL
» scheme object false none none
»» id integer(int32) true none Programme identifier
»» name string true none Programme name
»» companyName string true none Programme company name
»» url string true none Programme URL
»» hasUsernameEndpoint boolean true none Programme's username endpoint
»» team [teamMembers] true none Programme's team
»»» fullName string true none none
»»» firstName string true none none
»»» lastName string true none none
»»» email string true none none
»»» cc [string] true none none
»»» image string true none none
»»» location string true none none
»»» description string true none none
»»» role string true none none
»» branding object true none none
»»» logo string true none Programme's logo
»»» favIcon string true none Programme's favourite icon
»»» colours object false none none
»»»» navigationBackground string true none Navigation background colour
»»»» navigationText string true none Navigation text colour
»»»» buttonBackground string false none Button background colour
»»»» buttonText string false none Button text colour
»»»» pageBackground string false none Page background colour
»»»» chevronBackground string false none Chevron background colour
»»»» chevronText string false none Chevron text colour
»»»» unselectedTabBackground string false none Unselected tab background colour
»»»» unselectedTabText string false none Unselected tab text colour
»»»» selectedTabBackground string false none Selected tab background colour
»»»» selectedTabText string false none Selected tab text colour
»»»» offersCarouselBackground string false none Offers caroussel background colour
»»»» offersCarouselText string false none Offers caroussel text colour
»»»» registerButtonBackground string false none Register button background colour
»»»» registerButtonText string false none Register button text colour
»» programmeTypes [any] true none Programme types for the scheme
»»» programmeTypeId integer(int32) false none Programme types for the scheme
»»» programmeTypeName string false none Programme types for the scheme
»»» stateId integer(int32) false none Programme types for the scheme
»»» stateName string false none Programme types for the scheme
»» enabledConfigurations object false none Programme configurations enabled
»»» FVDining boolean false none Programme configurations enabled
»» _links object false none none
»»» self object false none none
»»»» href string false none Endpoint to access this resource
»»» locale object false none none
»»»» href string false none Endpoint to access this programme's locale
»» _embedded object false none none
»»» locale object false none none
»»»» id integer(int32) true none Locale identifier
»»»» name string true none Locale name
»»»» lang string true none Locale language
»»»» currency string true none Locale currency
»»»» symbol string true none Locale currency symbol
»»»» states [state] true none Locale state list
»»»»» code string true none State code
»»»»» name string true none State name
»»»» contactFields object true none List of translated contact fields
»»»»» firstName any false none List of translated contact fields
»»»»» lastName any false none List of translated contact fields
»»»»» emailAddress any false none List of translated contact fields
»»»»» mobilePhoneNumber any false none List of translated contact fields
»»»»» addressLine1 any false none List of translated contact fields
»»»»» addressLine2 any false none List of translated contact fields
»»»»» addressLine3 any false none List of translated contact fields
»»»»» addressLine4 any false none List of translated contact fields
»»»»» postCode any false none List of translated contact fields
»»»» _links object false none none
»»»»» self object false none none
»»»»»» href string false none Endpoint to access this resource

Offers

Offers Service

Offer details

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/offer/{offerId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/offer/{offerId} HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0
Authorization: string

# You can also use wget
curl -X GET https://api.rewardgateway.net/offer/{offerId} \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/offer/{offerId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /offer/{offerId}

Returns offer details from an identifier

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
Authorization header string true Authorization Header with Bearer Token
offerId path integer true none

Example responses

200 Response

{
  "id": 9999,
  "type": "Cashback",
  "description": "Description for this offer",
  "keyInformation": "Key information for this offer",
  "howItWorks": "Details on how this offer works",
  "termsAndConditions": "Terms & conditions of this offer",
  "expiryDate": "2019-08-24T14:15:22Z",
  "specialOffer": true,
  "redeemableOnDesktop": true,
  "redeemableOnMobile": true,
  "discount": {
    "saving": "Earn 3%",
    "description": "on all offers",
    "useableInStore": true,
    "useableOnline": true,
    "startsOn": "2019-08-24T14:15:22Z",
    "endsOn": "2019-08-24T14:15:22Z"
  },
  "normally": {
    "saving": "Earn 3%",
    "description": "on all offers",
    "useableInStore": true,
    "useableOnline": true,
    "startsOn": "2019-08-24T14:15:22Z",
    "endsOn": "2019-08-24T14:15:22Z"
  },
  "_links": {
    "self": {
      "href": "/offer/{offerId}"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Successful operation offer
401 Unauthorized Access token expired standardModel
403 Forbidden Offer not available standardModel
404 Not Found Offer not found standardModel

List all offers from Retailer

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/retailer/{retailerId}/offers', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/retailer/{retailerId}/offers HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0
Authorization: string

# You can also use wget
curl -X GET https://api.rewardgateway.net/retailer/{retailerId}/offers \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/retailer/{retailerId}/offers',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /retailer/{retailerId}/offers

Returns retailer offers from an identifier

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
Authorization header string true Authorization Header with Bearer Token
retailerId path integer true none

Example responses

200 Response

{
  "retailer": {
    "id": 1234,
    "name": "Acme",
    "logo": "https://www.acme.com/path/to/image.jpg",
    "description": "Retailer description for Acme",
    "isFavourite": true,
    "isFeatured": true,
    "category": {
      "id": 123,
      "name": "Reloadable cards",
      "_links": {
        "self": {
          "href": "/category/{categoryId}"
        },
        "hierarchy": {
          "href": "/category/{categoryId}/hierarchy"
        }
      }
    },
    "_links": {
      "self": {
        "href": "/retailer/{retailerId}"
      },
      "offers": {
        "href": "/retailer/{retailerId}/offers"
      }
    }
  },
  "offers": [
    {
      "id": 9999,
      "type": "Cashback",
      "description": "Description for this offer",
      "keyInformation": "Key information for this offer",
      "howItWorks": "Details on how this offer works",
      "termsAndConditions": "Terms & conditions of this offer",
      "expiryDate": "2019-08-24T14:15:22Z",
      "specialOffer": true,
      "redeemableOnDesktop": true,
      "redeemableOnMobile": true,
      "discount": {
        "saving": "Earn 3%",
        "description": "on all offers",
        "useableInStore": true,
        "useableOnline": true,
        "startsOn": "2019-08-24T14:15:22Z",
        "endsOn": "2019-08-24T14:15:22Z"
      },
      "normally": {
        "saving": "Earn 3%",
        "description": "on all offers",
        "useableInStore": true,
        "useableOnline": true,
        "startsOn": "2019-08-24T14:15:22Z",
        "endsOn": "2019-08-24T14:15:22Z"
      },
      "_links": {
        "self": {
          "href": "/offer/{offerId}"
        }
      }
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Successful operation retailerOffers
401 Unauthorized Access token expired standardModel
403 Forbidden Retailer not available standardModel
404 Not Found Retailer not found standardModel

Promotions

Retailer Promotions Service

Deal of the Week promotion

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/promotions/deal-of-the-week', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/promotions/deal-of-the-week HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0
Authorization: string

# You can also use wget
curl -X GET https://api.rewardgateway.net/promotions/deal-of-the-week \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/promotions/deal-of-the-week',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /promotions/deal-of-the-week

Returns deal of the week promotion

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
Authorization header string true Authorization Header with Bearer Token

Example responses

200 Response

{
  "banner": {
    "image": "https://www.acme.com/path/to/image.jpg",
    "title": "Title of this banner",
    "subtitle": "Subtitle of this banner",
    "endsOn": "2019-08-24T14:15:22Z"
  },
  "retailer": {
    "id": 1234,
    "name": "Acme",
    "logo": "https://www.acme.com/path/to/image.jpg",
    "description": "Retailer description for Acme",
    "isFavourite": true,
    "isFeatured": true,
    "category": {
      "id": 123,
      "name": "Reloadable cards",
      "_links": {
        "self": {
          "href": "/category/{categoryId}"
        },
        "hierarchy": {
          "href": "/category/{categoryId}/hierarchy"
        }
      }
    },
    "_links": {
      "self": {
        "href": "/retailer/{retailerId}"
      },
      "offers": {
        "href": "/retailer/{retailerId}/offers"
      }
    }
  },
  "offer": {
    "id": 9999,
    "type": "Cashback",
    "description": "Description for this offer",
    "keyInformation": "Key information for this offer",
    "howItWorks": "Details on how this offer works",
    "termsAndConditions": "Terms & conditions of this offer",
    "expiryDate": "2019-08-24T14:15:22Z",
    "specialOffer": true,
    "redeemableOnDesktop": true,
    "redeemableOnMobile": true,
    "discount": {
      "saving": "Earn 3%",
      "description": "on all offers",
      "useableInStore": true,
      "useableOnline": true,
      "startsOn": "2019-08-24T14:15:22Z",
      "endsOn": "2019-08-24T14:15:22Z"
    },
    "normally": {
      "saving": "Earn 3%",
      "description": "on all offers",
      "useableInStore": true,
      "useableOnline": true,
      "startsOn": "2019-08-24T14:15:22Z",
      "endsOn": "2019-08-24T14:15:22Z"
    },
    "_links": {
      "self": {
        "href": "/offer/{offerId}"
      }
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Successful operation promotion
401 Unauthorized Access token expired standardModel
403 Forbidden Access to the resource has been denied standardModel

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/promotions/featured-retailers', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/promotions/featured-retailers HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0
Authorization: string

# You can also use wget
curl -X GET https://api.rewardgateway.net/promotions/featured-retailers \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/promotions/featured-retailers',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /promotions/featured-retailers

Returns featured retailer promotions

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
Authorization header string true Authorization Header with Bearer Token

Example responses

200 Response

[
  {
    "banner": {
      "image": "https://www.acme.com/path/to/image.jpg",
      "title": "Title of this banner",
      "subtitle": "Subtitle of this banner",
      "endsOn": "2019-08-24T14:15:22Z"
    },
    "retailer": {
      "id": 1234,
      "name": "Acme",
      "logo": "https://www.acme.com/path/to/image.jpg",
      "description": "Retailer description for Acme",
      "isFavourite": true,
      "isFeatured": true,
      "category": {
        "id": 123,
        "name": "Reloadable cards",
        "_links": {
          "self": {
            "href": "/category/{categoryId}"
          },
          "hierarchy": {
            "href": "/category/{categoryId}/hierarchy"
          }
        }
      },
      "_links": {
        "self": {
          "href": "/retailer/{retailerId}"
        },
        "offers": {
          "href": "/retailer/{retailerId}/offers"
        }
      }
    },
    "offer": {
      "id": 9999,
      "type": "Cashback",
      "description": "Description for this offer",
      "keyInformation": "Key information for this offer",
      "howItWorks": "Details on how this offer works",
      "termsAndConditions": "Terms & conditions of this offer",
      "expiryDate": "2019-08-24T14:15:22Z",
      "specialOffer": true,
      "redeemableOnDesktop": true,
      "redeemableOnMobile": true,
      "discount": {
        "saving": "Earn 3%",
        "description": "on all offers",
        "useableInStore": true,
        "useableOnline": true,
        "startsOn": "2019-08-24T14:15:22Z",
        "endsOn": "2019-08-24T14:15:22Z"
      },
      "normally": {
        "saving": "Earn 3%",
        "description": "on all offers",
        "useableInStore": true,
        "useableOnline": true,
        "startsOn": "2019-08-24T14:15:22Z",
        "endsOn": "2019-08-24T14:15:22Z"
      },
      "_links": {
        "self": {
          "href": "/offer/{offerId}"
        }
      }
    }
  }
]
Status Meaning Description Schema
200 OK Successful operation Inline
401 Unauthorized Access token expired standardModel
403 Forbidden Access to the resource has been denied standardModel

Status Code 200

Name Type Required Restrictions Description
anonymous [promotion] false none none
» banner object true none none
»» image string true none Banner image location (URL)
»» title string true none Banner title
»» subtitle string true none Banner subtitle
»» endsOn string(date-time) true none Banner ends on date
» retailer object true none none
»» id integer(int32) true none Retailer identifier
»» name string true none Retailer's name
»» logo string true none Retailer's logo (URL)
»» description string true none Retailer's description
»» isFavourite boolean true none Is retailer favourited
»» isFeatured boolean true none Is retailer featured
»» category object false none none
»»» id integer(int32) true none Category identifier
»»» name string true none Category name
»»» _links object false none none
»»»» self object false none none
»»»»» href string false none Endpoint to access this resource
»»»» hierarchy object false none none
»»»»» href string false none Endpoint to retrieve category hierarchy
»» _links object false none none
»»» self object false none none
»»»» href string false none Endpoint to access this resource
»»» offers object false none none
»»»» href string false none Endpoint to retrieve all retailer's offers
» offer object true none none
»» id integer(int32) true none Offer identifier
»» type string true none Type of the offer
»» description string true none Offer's description
»» keyInformation string true none Offer's key information
»» howItWorks string true none How the offer works
»» termsAndConditions string true none Offer's terms and conditions
»» expiryDate string(date-time) true none Offer's expiry date
»» specialOffer boolean true none Is this a special offer?
»» redeemableOnDesktop boolean true none Offer can be redeemed on the desktop
»» redeemableOnMobile boolean true none Offer can be redeemed on mobile
»» discount object true none none
»»» saving string true none Discount savings
»»» description string true none Discount description
»»» useableInStore boolean true none Discount can be used in-store
»»» useableOnline boolean true none Discount can be used online
»»» startsOn string(date-time) true none Discount is valid from
»»» endsOn string(date-time) true none Discount is valid until
»» normally object false none none
»» _links object false none none
»»» self object false none none
»»»» href string false none Endpoint to access this resource

Top Offers promotions

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/promotions/top-offers', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/promotions/top-offers HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0
Authorization: string

# You can also use wget
curl -X GET https://api.rewardgateway.net/promotions/top-offers \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/promotions/top-offers',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /promotions/top-offers

Returns top offers promotions

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
Authorization header string true Authorization Header with Bearer Token
limit query integer false Number of items per page for paginated collections

Example responses

200 Response

[
  {
    "banner": {
      "image": "https://www.acme.com/path/to/image.jpg",
      "title": "Title of this banner",
      "subtitle": "Subtitle of this banner",
      "endsOn": "2019-08-24T14:15:22Z"
    },
    "retailer": {
      "id": 1234,
      "name": "Acme",
      "logo": "https://www.acme.com/path/to/image.jpg",
      "description": "Retailer description for Acme",
      "isFavourite": true,
      "isFeatured": true,
      "category": {
        "id": 123,
        "name": "Reloadable cards",
        "_links": {
          "self": {
            "href": "/category/{categoryId}"
          },
          "hierarchy": {
            "href": "/category/{categoryId}/hierarchy"
          }
        }
      },
      "_links": {
        "self": {
          "href": "/retailer/{retailerId}"
        },
        "offers": {
          "href": "/retailer/{retailerId}/offers"
        }
      }
    },
    "offer": {
      "id": 9999,
      "type": "Cashback",
      "description": "Description for this offer",
      "keyInformation": "Key information for this offer",
      "howItWorks": "Details on how this offer works",
      "termsAndConditions": "Terms & conditions of this offer",
      "expiryDate": "2019-08-24T14:15:22Z",
      "specialOffer": true,
      "redeemableOnDesktop": true,
      "redeemableOnMobile": true,
      "discount": {
        "saving": "Earn 3%",
        "description": "on all offers",
        "useableInStore": true,
        "useableOnline": true,
        "startsOn": "2019-08-24T14:15:22Z",
        "endsOn": "2019-08-24T14:15:22Z"
      },
      "normally": {
        "saving": "Earn 3%",
        "description": "on all offers",
        "useableInStore": true,
        "useableOnline": true,
        "startsOn": "2019-08-24T14:15:22Z",
        "endsOn": "2019-08-24T14:15:22Z"
      },
      "_links": {
        "self": {
          "href": "/offer/{offerId}"
        }
      }
    }
  }
]

Responses

Status Meaning Description Schema
200 OK Successful operation Inline
401 Unauthorized Access token expired standardModel
403 Forbidden Access to the resource has been denied standardModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [promotion] false none none
» banner object true none none
»» image string true none Banner image location (URL)
»» title string true none Banner title
»» subtitle string true none Banner subtitle
»» endsOn string(date-time) true none Banner ends on date
» retailer object true none none
»» id integer(int32) true none Retailer identifier
»» name string true none Retailer's name
»» logo string true none Retailer's logo (URL)
»» description string true none Retailer's description
»» isFavourite boolean true none Is retailer favourited
»» isFeatured boolean true none Is retailer featured
»» category object false none none
»»» id integer(int32) true none Category identifier
»»» name string true none Category name
»»» _links object false none none
»»»» self object false none none
»»»»» href string false none Endpoint to access this resource
»»»» hierarchy object false none none
»»»»» href string false none Endpoint to retrieve category hierarchy
»» _links object false none none
»»» self object false none none
»»»» href string false none Endpoint to access this resource
»»» offers object false none none
»»»» href string false none Endpoint to retrieve all retailer's offers
» offer object true none none
»» id integer(int32) true none Offer identifier
»» type string true none Type of the offer
»» description string true none Offer's description
»» keyInformation string true none Offer's key information
»» howItWorks string true none How the offer works
»» termsAndConditions string true none Offer's terms and conditions
»» expiryDate string(date-time) true none Offer's expiry date
»» specialOffer boolean true none Is this a special offer?
»» redeemableOnDesktop boolean true none Offer can be redeemed on the desktop
»» redeemableOnMobile boolean true none Offer can be redeemed on mobile
»» discount object true none none
»»» saving string true none Discount savings
»»» description string true none Discount description
»»» useableInStore boolean true none Discount can be used in-store
»»» useableOnline boolean true none Discount can be used online
»»» startsOn string(date-time) true none Discount is valid from
»»» endsOn string(date-time) true none Discount is valid until
»» normally object false none none
»» _links object false none none
»»» self object false none none
»»»» href string false none Endpoint to access this resource

Recognition & Reward

All endpoints related to our Recognition & Reward product. This will allow you to send out recognition to other users as well as see what recognition moments each users has received etc.

Get a member's alternate approvers configuration

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/recognition/member/{memberUuid}/alternateApprovers/config', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/recognition/member/{memberUuid}/alternateApprovers/config HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/recognition/member/{memberUuid}/alternateApprovers/config \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/recognition/member/{memberUuid}/alternateApprovers/config',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /recognition/member/{memberUuid}/alternateApprovers/config

This endpoint will return information about a member's alternate approvers configuration

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
memberUuid path string true Member identifier

Example responses

403 Response

{
  "code": 1234,
  "message": "Example message",
  "details": [
    "Example details"
  ]
}

Responses

Status Meaning Description Schema
200 OK Successful operation None
403 Forbidden Access to the resource has been denied standardModel

Get a member's alternate approvers list

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/recognition/member/{memberUuid}/alternateApprovers', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/recognition/member/{memberUuid}/alternateApprovers HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/recognition/member/{memberUuid}/alternateApprovers \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/recognition/member/{memberUuid}/alternateApprovers',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /recognition/member/{memberUuid}/alternateApprovers

This endpoint will return information about a member's alternate approvers

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
memberUuid path string true Member identifier

Example responses

403 Response

{
  "code": 1234,
  "message": "Example message",
  "details": [
    "Example details"
  ]
}

Responses

Status Meaning Description Schema
200 OK Successful operation None
403 Forbidden Access to the resource has been denied standardModel

Create alternate approver for a member

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.rewardgateway.net/recognition/member/{memberUuid}/alternateApprovers', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST https://api.rewardgateway.net/recognition/member/{memberUuid}/alternateApprovers HTTP/1.1
Host: api.rewardgateway.net
Content-Type: application/json
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X POST https://api.rewardgateway.net/recognition/member/{memberUuid}/alternateApprovers \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'

const inputBody = '{
  "approverContactIds": [
    null
  ],
  "startDate": "string",
  "endDate": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/recognition/member/{memberUuid}/alternateApprovers',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /recognition/member/{memberUuid}/alternateApprovers

This endpoint will create an alternate approver item for a member

Body parameter

{
  "approverContactIds": [
    null
  ],
  "startDate": "string",
  "endDate": "string"
}
approverContactIds:
  - null
startDate: string
endDate: string

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
memberUuid path string true Member identifier
body body object true none

Example responses

403 Response

{
  "code": 1234,
  "message": "Example message",
  "details": [
    "Example details"
  ]
}

Responses

Status Meaning Description Schema
200 OK Successful operation None
403 Forbidden Access to the resource has been denied standardModel

Update alternate approver for a member

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://api.rewardgateway.net/recognition/member/{memberUuid}/alternateApprovers/{alternateApproverItemId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

PUT https://api.rewardgateway.net/recognition/member/{memberUuid}/alternateApprovers/{alternateApproverItemId} HTTP/1.1
Host: api.rewardgateway.net
Content-Type: application/json
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X PUT https://api.rewardgateway.net/recognition/member/{memberUuid}/alternateApprovers/{alternateApproverItemId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'

const inputBody = '{
  "approverContactIds": [
    null
  ],
  "startDate": "string",
  "endDate": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/recognition/member/{memberUuid}/alternateApprovers/{alternateApproverItemId}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /recognition/member/{memberUuid}/alternateApprovers/{alternateApproverItemId}

This endpoint will update an alternate approver item for a member

Body parameter

{
  "approverContactIds": [
    null
  ],
  "startDate": "string",
  "endDate": "string"
}
approverContactIds:
  - null
startDate: string
endDate: string

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
memberUuid path string true Member identifier
alternateApproverItemId path integer true Alternate approver item identifer
body body object true none

Example responses

403 Response

{
  "code": 1234,
  "message": "Example message",
  "details": [
    "Example details"
  ]
}

Responses

Status Meaning Description Schema
200 OK Successful operation None
403 Forbidden Access to the resource has been denied standardModel

Delete a member's alternate approvers

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','https://api.rewardgateway.net/recognition/member/{memberUuid}/alternateApprovers/{alternateApproverItemId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

DELETE https://api.rewardgateway.net/recognition/member/{memberUuid}/alternateApprovers/{alternateApproverItemId} HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X DELETE https://api.rewardgateway.net/recognition/member/{memberUuid}/alternateApprovers/{alternateApproverItemId} \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/recognition/member/{memberUuid}/alternateApprovers/{alternateApproverItemId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /recognition/member/{memberUuid}/alternateApprovers/{alternateApproverItemId}

This endpoint will delete a member's alternate approvers

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
memberUuid path string true Member identifier
alternateApproverItemId path integer true Alternate approver item identifer

Example responses

403 Response

{
  "code": 1234,
  "message": "Example message",
  "details": [
    "Example details"
  ]
}

Responses

Status Meaning Description Schema
200 OK Successful operation None
403 Forbidden Access to the resource has been denied standardModel

Get a member's recognition award

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/recognition/member/{memberUuid}/award/{nomineeUuid}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/recognition/member/{memberUuid}/award/{nomineeUuid} HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/recognition/member/{memberUuid}/award/{nomineeUuid} \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/recognition/member/{memberUuid}/award/{nomineeUuid}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /recognition/member/{memberUuid}/award/{nomineeUuid}

This endpoint will return information about a member's award

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
memberUuid path string true Member identifier
nomineeUuid path string true Nominee identifier

Example responses

403 Response

{
  "code": 1234,
  "message": "Example message",
  "details": [
    "Example details"
  ]
}

Responses

Status Meaning Description Schema
200 OK Successful operation None
403 Forbidden Access to the resource has been denied standardModel

Claim a member's recognition award

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/recognition/member/{memberUuid}/award/{nomineeUuid}/claim', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/recognition/member/{memberUuid}/award/{nomineeUuid}/claim HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/recognition/member/{memberUuid}/award/{nomineeUuid}/claim \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/recognition/member/{memberUuid}/award/{nomineeUuid}/claim',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /recognition/member/{memberUuid}/award/{nomineeUuid}/claim

This endpoint will claim a member's award

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
memberUuid path string true Member identifier
nomineeUuid path string true Nominee identifier

Example responses

403 Response

{
  "code": 1234,
  "message": "Example message",
  "details": [
    "Example details"
  ]
}

Responses

Status Meaning Description Schema
200 OK Successful operation None
403 Forbidden Access to the resource has been denied standardModel

Get the current member's recognition

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/recognition/member/awards', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/recognition/member/awards?identifier=string HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/recognition/member/awards?identifier=string \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/recognition/member/awards?identifier=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /recognition/member/awards

This endpoint will return a list of all monetary recognition the current member has received. These maybe claimed by the member or unclaimed in some cases.

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
identifier query string true Member identifier
offset query string false Pagination offset
limit query string false Pagination limit

Example responses

403 Response

{
  "code": 1234,
  "message": "Example message",
  "details": [
    "Example details"
  ]
}

Responses

Status Meaning Description Schema
200 OK Successful operation None
403 Forbidden Access to the resource has been denied standardModel

Customer Recognition

Ability to send nomination to someone from outside.

Create a new customer recognition

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'multipart/form-data',
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.rewardgateway.net/recognition/customer', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST https://api.rewardgateway.net/recognition/customer HTTP/1.1
Host: api.rewardgateway.net
Content-Type: multipart/form-data
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X POST https://api.rewardgateway.net/recognition/customer \
  -H 'Content-Type: multipart/form-data' \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'

const inputBody = '{
  "rrProgramId": 0,
  "sender": "string",
  "nominee": "string",
  "awardId": 0,
  "nominationReason": "string"
}';
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/recognition/customer',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /recognition/customer

Creates a new customer recognition.

Body parameter

rrProgramId: 0
sender: string
nominee: string
awardId: 0
nominationReason: string

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
body body object true none

Example responses

201 Response

null

Responses

Status Meaning Description Schema
201 Created Created customerRecognition

Get details for making request for external recognition form.

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/recognition/details/view/{hash}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/recognition/details/view/{hash} HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/recognition/details/view/{hash} \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/recognition/details/view/{hash}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /recognition/details/view/{hash}

Fetching details needed for customer recognition external form scheme.

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
hash path string true Hash from external page url.

Example responses

200 Response

{
  "request_headers": {
    "Accept": "application/vnd.rewardgateway+json; version=3.0",
    "Authorization": "[access token]"
  },
  "request_urls": {
    "fetch_form_scheme_url": "string",
    "store_form_url": "string"
  },
  "scheme_id": "string",
  "rr_scheme_id": "string",
  "page_data": {
    "submit_page": {
      "title": "Thank you title.",
      "description": "Thank you description."
    },
    "submit_page_button": {
      "hasButton": true,
      "text": "Button text",
      "link": "Link to"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK All details needed for making request to Customer Recognition endpoints. customerRequestDetails
404 Not Found Resource was not found. errorModel

Get customer recognition form structure.

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/recognition/scheme/{schemeId}/{rrSchemeId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/recognition/scheme/{schemeId}/{rrSchemeId} HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0
Authorization: string

# You can also use wget
curl -X GET https://api.rewardgateway.net/recognition/scheme/{schemeId}/{rrSchemeId} \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/recognition/scheme/{schemeId}/{rrSchemeId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /recognition/scheme/{schemeId}/{rrSchemeId}

Customer Recognition form structure returned as json.

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
Authorization header string true Authorization Header with Bearer Token
schemeId path string true Clients scheme id
rrSchemeId path string true Reward and Recognition programme id

Example responses

200 Response

{
  "fields": [
    {
      "id": "RRNomineeAsText",
      "type": "checkbox",
      "label": "Who would you like to recognize?",
      "description": "Example description",
      "isHidden": true,
      "isRequired": true,
      "options": [
        {
          "value": "18",
          "label": "-- Select --"
        }
      ]
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK External recognition form structure needed to build fronend form. customerFormStructure
400 Bad Request Bad Request. errorModel

Create external recognition.

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.rewardgateway.net/recognition/store/{schemeId}/{rrSchemeId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST https://api.rewardgateway.net/recognition/store/{schemeId}/{rrSchemeId} HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0
Authorization: string

# You can also use wget
curl -X POST https://api.rewardgateway.net/recognition/store/{schemeId}/{rrSchemeId} \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/recognition/store/{schemeId}/{rrSchemeId}',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /recognition/store/{schemeId}/{rrSchemeId}

Submit new external recognition nomination.

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
Authorization header string true Authorization Header with Bearer Token
schemeId path string true Clients scheme id
rrSchemeId path string true Reward and Recognition programme id

Example responses

200 Response

{
  "success": true,
  "message": "string",
  "nominationId": 0
}

Responses

Status Meaning Description Schema
200 OK New customer nomination customerNominationEntity
400 Bad Request Bad Request. errorModel
422 Unprocessable Entity Validation errors if form is not valid. customerStoreValidationError

Retailers

Retailers Service

List retailers

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/retailers', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/retailers HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0
Authorization: string

# You can also use wget
curl -X GET https://api.rewardgateway.net/retailers \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/retailers',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /retailers

Returns list of retailers

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
Authorization header string true Authorization Header with Bearer Token
page query integer false Page number for paginated collections
limit query integer false Number of items per page for paginated collections

Example responses

200 Response

{
  "page": 1,
  "limit": 20,
  "pages": 10,
  "total": 200,
  "_links": {
    "self": {
      "href": "/retailers?page=5&limit=20"
    },
    "first": {
      "href": "/retailers?page=1&limit=20"
    },
    "last": {
      "href": "/retailers?page=10&limit=20"
    },
    "next": {
      "href": "/retailers?page=6&limit=20"
    },
    "previous": {
      "href": "/retailers?page=4&limit=20"
    }
  },
  "_embedded": {
    "retailers": [
      {
        "retailer": {
          "id": 1234,
          "name": "Acme",
          "logo": "https://www.acme.com/path/to/image.jpg",
          "description": "Retailer description for Acme",
          "isFavourite": true,
          "isFeatured": true,
          "category": {
            "id": 123,
            "name": "Reloadable cards",
            "_links": {
              "self": {
                "href": "/category/{categoryId}"
              },
              "hierarchy": {
                "href": "/category/{categoryId}/hierarchy"
              }
            }
          },
          "_links": {
            "self": {
              "href": "/retailer/{retailerId}"
            },
            "offers": {
              "href": "/retailer/{retailerId}/offers"
            }
          }
        },
        "bestOffer": {
          "id": 9999,
          "type": "Cashback",
          "description": "Description for this offer",
          "keyInformation": "Key information for this offer",
          "howItWorks": "Details on how this offer works",
          "termsAndConditions": "Terms & conditions of this offer",
          "expiryDate": "2019-08-24T14:15:22Z",
          "specialOffer": true,
          "redeemableOnDesktop": true,
          "redeemableOnMobile": true,
          "discount": {
            "saving": "Earn 3%",
            "description": "on all offers",
            "useableInStore": true,
            "useableOnline": true,
            "startsOn": "2019-08-24T14:15:22Z",
            "endsOn": "2019-08-24T14:15:22Z"
          },
          "normally": {
            "saving": "Earn 3%",
            "description": "on all offers",
            "useableInStore": true,
            "useableOnline": true,
            "startsOn": "2019-08-24T14:15:22Z",
            "endsOn": "2019-08-24T14:15:22Z"
          },
          "_links": {
            "self": {
              "href": "/offer/{offerId}"
            }
          }
        }
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Successful operation Inline
401 Unauthorized Access token expired standardModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
» page integer(int32) true none none
» limit integer(int32) true none none
» pages integer(int32) true none none
» total integer(int32) true none none
» _links object false none none
»» self object false none none
»»» href string false none Endpoint to access the current page of results
»» first object false none none
»»» href string false none Endpoint to access the first page of results
»» last object false none none
»»» href string false none Endpoint to access the last page of results
»» next object false none none
»»» href string false none Endpoint to access the next page of results
»» previous object false none none
»»» href string false none Endpoint to access the previous page of results
» _embedded object true none none
»» retailers [retailerDetails] false none none
»»» retailer object true none none
»»»» id integer(int32) true none Retailer identifier
»»»» name string true none Retailer's name
»»»» logo string true none Retailer's logo (URL)
»»»» description string true none Retailer's description
»»»» isFavourite boolean true none Is retailer favourited
»»»» isFeatured boolean true none Is retailer featured
»»»» category object false none none
»»»»» id integer(int32) true none Category identifier
»»»»» name string true none Category name
»»»»» _links object false none none
»»»»»» self object false none none
»»»»»»» href string false none Endpoint to access this resource
»»»»»» hierarchy object false none none
»»»»»»» href string false none Endpoint to retrieve category hierarchy
»»»» _links object false none none
»»»»» self object false none none
»»»»»» href string false none Endpoint to access this resource
»»»»» offers object false none none
»»»»»» href string false none Endpoint to retrieve all retailer's offers
»»» bestOffer object true none none
»»»» id integer(int32) true none Offer identifier
»»»» type string true none Type of the offer
»»»» description string true none Offer's description
»»»» keyInformation string true none Offer's key information
»»»» howItWorks string true none How the offer works
»»»» termsAndConditions string true none Offer's terms and conditions
»»»» expiryDate string(date-time) true none Offer's expiry date
»»»» specialOffer boolean true none Is this a special offer?
»»»» redeemableOnDesktop boolean true none Offer can be redeemed on the desktop
»»»» redeemableOnMobile boolean true none Offer can be redeemed on mobile
»»»» discount object true none none
»»»»» saving string true none Discount savings
»»»»» description string true none Discount description
»»»»» useableInStore boolean true none Discount can be used in-store
»»»»» useableOnline boolean true none Discount can be used online
»»»»» startsOn string(date-time) true none Discount is valid from
»»»»» endsOn string(date-time) true none Discount is valid until
»»»» normally object false none none
»»»» _links object false none none
»»»»» self object false none none
»»»»»» href string false none Endpoint to access this resource

New Retailers

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/retailers/new', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/retailers/new HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0
Authorization: string

# You can also use wget
curl -X GET https://api.rewardgateway.net/retailers/new \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/retailers/new',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /retailers/new

Returns list of new retailers

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
Authorization header string true Authorization Header with Bearer Token

Example responses

200 Response

[
  {
    "retailer": {
      "id": 1234,
      "name": "Acme",
      "logo": "https://www.acme.com/path/to/image.jpg",
      "description": "Retailer description for Acme",
      "isFavourite": true,
      "isFeatured": true,
      "category": {
        "id": 123,
        "name": "Reloadable cards",
        "_links": {
          "self": {
            "href": "/category/{categoryId}"
          },
          "hierarchy": {
            "href": "/category/{categoryId}/hierarchy"
          }
        }
      },
      "_links": {
        "self": {
          "href": "/retailer/{retailerId}"
        },
        "offers": {
          "href": "/retailer/{retailerId}/offers"
        }
      }
    },
    "bestOffer": {
      "id": 9999,
      "type": "Cashback",
      "description": "Description for this offer",
      "keyInformation": "Key information for this offer",
      "howItWorks": "Details on how this offer works",
      "termsAndConditions": "Terms & conditions of this offer",
      "expiryDate": "2019-08-24T14:15:22Z",
      "specialOffer": true,
      "redeemableOnDesktop": true,
      "redeemableOnMobile": true,
      "discount": {
        "saving": "Earn 3%",
        "description": "on all offers",
        "useableInStore": true,
        "useableOnline": true,
        "startsOn": "2019-08-24T14:15:22Z",
        "endsOn": "2019-08-24T14:15:22Z"
      },
      "normally": {
        "saving": "Earn 3%",
        "description": "on all offers",
        "useableInStore": true,
        "useableOnline": true,
        "startsOn": "2019-08-24T14:15:22Z",
        "endsOn": "2019-08-24T14:15:22Z"
      },
      "_links": {
        "self": {
          "href": "/offer/{offerId}"
        }
      }
    }
  }
]

Responses

Status Meaning Description Schema
200 OK Successful operation Inline
401 Unauthorized Access token expired standardModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [retailerDetails] false none none
» retailer object true none none
»» id integer(int32) true none Retailer identifier
»» name string true none Retailer's name
»» logo string true none Retailer's logo (URL)
»» description string true none Retailer's description
»» isFavourite boolean true none Is retailer favourited
»» isFeatured boolean true none Is retailer featured
»» category object false none none
»»» id integer(int32) true none Category identifier
»»» name string true none Category name
»»» _links object false none none
»»»» self object false none none
»»»»» href string false none Endpoint to access this resource
»»»» hierarchy object false none none
»»»»» href string false none Endpoint to retrieve category hierarchy
»» _links object false none none
»»» self object false none none
»»»» href string false none Endpoint to access this resource
»»» offers object false none none
»»»» href string false none Endpoint to retrieve all retailer's offers
» bestOffer object true none none
»» id integer(int32) true none Offer identifier
»» type string true none Type of the offer
»» description string true none Offer's description
»» keyInformation string true none Offer's key information
»» howItWorks string true none How the offer works
»» termsAndConditions string true none Offer's terms and conditions
»» expiryDate string(date-time) true none Offer's expiry date
»» specialOffer boolean true none Is this a special offer?
»» redeemableOnDesktop boolean true none Offer can be redeemed on the desktop
»» redeemableOnMobile boolean true none Offer can be redeemed on mobile
»» discount object true none none
»»» saving string true none Discount savings
»»» description string true none Discount description
»»» useableInStore boolean true none Discount can be used in-store
»»» useableOnline boolean true none Discount can be used online
»»» startsOn string(date-time) true none Discount is valid from
»»» endsOn string(date-time) true none Discount is valid until
»» normally object false none none
»» _links object false none none
»»» self object false none none
»»»» href string false none Endpoint to access this resource

Search retailers

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/retailers/search', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/retailers/search?query=string HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0
Authorization: string

# You can also use wget
curl -X GET https://api.rewardgateway.net/retailers/search?query=string \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/retailers/search?query=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /retailers/search

Returns list of retailers matching the query provided

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
Authorization header string true Authorization Header with Bearer Token
page query integer false Page number for paginated collections
limit query integer false Number of items per page for paginated collections
query query string true Search query to match

Example responses

200 Response

{
  "page": 1,
  "limit": 20,
  "pages": 10,
  "total": 200,
  "_links": {
    "self": {
      "href": "/retailers?page=5&limit=20"
    },
    "first": {
      "href": "/retailers?page=1&limit=20"
    },
    "last": {
      "href": "/retailers?page=10&limit=20"
    },
    "next": {
      "href": "/retailers?page=6&limit=20"
    },
    "previous": {
      "href": "/retailers?page=4&limit=20"
    }
  },
  "_embedded": {
    "results": [
      {
        "retailer": {
          "id": 1234,
          "name": "Acme",
          "logo": "https://www.acme.com/path/to/image.jpg",
          "description": "Retailer description for Acme",
          "isFavourite": true,
          "isFeatured": true,
          "category": {
            "id": 123,
            "name": "Reloadable cards",
            "_links": {
              "self": {
                "href": "/category/{categoryId}"
              },
              "hierarchy": {
                "href": "/category/{categoryId}/hierarchy"
              }
            }
          },
          "_links": {
            "self": {
              "href": "/retailer/{retailerId}"
            },
            "offers": {
              "href": "/retailer/{retailerId}/offers"
            }
          }
        },
        "bestRate": "Earn 5%",
        "mainCategory": "Reloadable cards",
        "_links": {
          "self": {
            "href": "/retailer/{retailerId}"
          },
          "offers": {
            "href": "/retailer/{retailerId}/offers"
          }
        }
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Successful operation Inline
400 Bad Request Invalid search term standardModel
401 Unauthorized Access token expired standardModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
» page integer(int32) true none none
» limit integer(int32) true none none
» pages integer(int32) true none none
» total integer(int32) true none none
» _links object false none none
»» self object false none none
»»» href string false none Endpoint to access the current page of results
»» first object false none none
»»» href string false none Endpoint to access the first page of results
»» last object false none none
»»» href string false none Endpoint to access the last page of results
»» next object false none none
»»» href string false none Endpoint to access the next page of results
»» previous object false none none
»»» href string false none Endpoint to access the previous page of results
» _embedded object true none none
»» results [searchResult] false none none
»»» retailer object true none none
»»»» id integer(int32) true none Retailer identifier
»»»» name string true none Retailer's name
»»»» logo string true none Retailer's logo (URL)
»»»» description string true none Retailer's description
»»»» isFavourite boolean true none Is retailer favourited
»»»» isFeatured boolean true none Is retailer featured
»»»» category object false none none
»»»»» id integer(int32) true none Category identifier
»»»»» name string true none Category name
»»»»» _links object false none none
»»»»»» self object false none none
»»»»»»» href string false none Endpoint to access this resource
»»»»»» hierarchy object false none none
»»»»»»» href string false none Endpoint to retrieve category hierarchy
»»»» _links object false none none
»»»»» self object false none none
»»»»»» href string false none Endpoint to access this resource
»»»»» offers object false none none
»»»»»» href string false none Endpoint to retrieve all retailer's offers
»»» bestRate string true none Retailer's best offer
»»» mainCategory string true none Retailer's main category
»»» _links object false none none
»»»» self object false none none
»»»»» href string false none Endpoint to access this resource
»»»» offers object false none none
»»»»» href string false none Endpoint to retrieve all retailer's offers

Favourite Retailers

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/retailers/favourites', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/retailers/favourites HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0
Authorization: string

# You can also use wget
curl -X GET https://api.rewardgateway.net/retailers/favourites \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/retailers/favourites',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /retailers/favourites

Returns list of favourite retailers

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
Authorization header string true Authorization Header with Bearer Token

Example responses

200 Response

[
  {
    "id": 1234,
    "name": "Acme",
    "logo": "https://www.acme.com/path/to/image.jpg",
    "description": "Retailer description for Acme",
    "isFavourite": true,
    "isFeatured": true,
    "category": {
      "id": 123,
      "name": "Reloadable cards",
      "_links": {
        "self": {
          "href": "/category/{categoryId}"
        },
        "hierarchy": {
          "href": "/category/{categoryId}/hierarchy"
        }
      }
    },
    "_links": {
      "self": {
        "href": "/retailer/{retailerId}"
      },
      "offers": {
        "href": "/retailer/{retailerId}/offers"
      }
    }
  }
]

Responses

Status Meaning Description Schema
200 OK Successful operation Inline
401 Unauthorized Access token expired standardModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [retailer] false none none
» id integer(int32) true none Retailer identifier
» name string true none Retailer's name
» logo string true none Retailer's logo (URL)
» description string true none Retailer's description
» isFavourite boolean true none Is retailer favourited
» isFeatured boolean true none Is retailer featured
» category object false none none
»» id integer(int32) true none Category identifier
»» name string true none Category name
»» _links object false none none
»»» self object false none none
»»»» href string false none Endpoint to access this resource
»»» hierarchy object false none none
»»»» href string false none Endpoint to retrieve category hierarchy
» _links object false none none
»» self object false none none
»»» href string false none Endpoint to access this resource
»» offers object false none none
»»» href string false none Endpoint to retrieve all retailer's offers

Retailer details

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/retailer/{retailerId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/retailer/{retailerId} HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0
Authorization: string

# You can also use wget
curl -X GET https://api.rewardgateway.net/retailer/{retailerId} \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/retailer/{retailerId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /retailer/{retailerId}

Returns retailer details from an identifier

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
Authorization header string true Authorization Header with Bearer Token
retailerId path integer true none

Example responses

200 Response

{
  "id": 1234,
  "name": "Acme",
  "logo": "https://www.acme.com/path/to/image.jpg",
  "description": "Retailer description for Acme",
  "isFavourite": true,
  "isFeatured": true,
  "category": {
    "id": 123,
    "name": "Reloadable cards",
    "_links": {
      "self": {
        "href": "/category/{categoryId}"
      },
      "hierarchy": {
        "href": "/category/{categoryId}/hierarchy"
      }
    }
  },
  "_links": {
    "self": {
      "href": "/retailer/{retailerId}"
    },
    "offers": {
      "href": "/retailer/{retailerId}/offers"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Successful operation retailer
401 Unauthorized Access token expired standardModel
403 Forbidden Retailer not available standardModel
404 Not Found Retailer not found standardModel

Set Retailer's favourite status

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://api.rewardgateway.net/retailer/{retailerId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

PUT https://api.rewardgateway.net/retailer/{retailerId} HTTP/1.1
Host: api.rewardgateway.net
Content-Type: application/json
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0
Authorization: string

# You can also use wget
curl -X PUT https://api.rewardgateway.net/retailer/{retailerId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0' \
  -H 'Authorization: string'

const inputBody = '{
  "isFavourite": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/retailer/{retailerId}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /retailer/{retailerId}

Sets or unsets retailer as favourite using an identifier

Body parameter

{
  "isFavourite": true
}
isFavourite: true

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
Authorization header string true Authorization Header with Bearer Token
retailerId path integer true none
body body object true none

Example responses

200 Response

{
  "id": 1234,
  "name": "Acme",
  "logo": "https://www.acme.com/path/to/image.jpg",
  "description": "Retailer description for Acme",
  "isFavourite": true,
  "isFeatured": true,
  "category": {
    "id": 123,
    "name": "Reloadable cards",
    "_links": {
      "self": {
        "href": "/category/{categoryId}"
      },
      "hierarchy": {
        "href": "/category/{categoryId}/hierarchy"
      }
    }
  },
  "_links": {
    "self": {
      "href": "/retailer/{retailerId}"
    },
    "offers": {
      "href": "/retailer/{retailerId}/offers"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Successful operation retailer
400 Bad Request Request body does not contain valid data standardModel
401 Unauthorized Access token expired standardModel
403 Forbidden Retailer not available standardModel
404 Not Found Retailer not found standardModel

Smart Pay

Endpoints to manage Smart Pay products related functionality.

Create an application for a customer

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.rewardgateway.net/smartpay/application', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST https://api.rewardgateway.net/smartpay/application HTTP/1.1
Host: api.rewardgateway.net
Content-Type: application/json
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X POST https://api.rewardgateway.net/smartpay/application \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'

const inputBody = '{
  "customerId": 1,
  "deductionPeriod": 12,
  "amount": 118.54,
  "scheme": "8a98e6b3d06d4c1885d7fc239c87a2c9",
  "product": "vehicle",
  "externalOrderId": "EXAMPLE\\order_ID123456",
  "description": "Philips Daily Collection HD2583/90; Dimensions: X by Y;",
  "externalStatus": "Awaiting employer approval"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/smartpay/application',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /smartpay/application

This endpoint will create an application for a specified customer and product, with a certain amount and repayment period.

Body parameter

{
  "customerId": 1,
  "deductionPeriod": 12,
  "amount": 118.54,
  "scheme": "8a98e6b3d06d4c1885d7fc239c87a2c9",
  "product": "vehicle",
  "externalOrderId": "EXAMPLE\\order_ID123456",
  "description": "Philips Daily Collection HD2583/90; Dimensions: X by Y;",
  "externalStatus": "Awaiting employer approval"
}
customerId: 1
deductionPeriod: 12
amount: 118.54
scheme: 8a98e6b3d06d4c1885d7fc239c87a2c9
product: vehicle
externalOrderId: EXAMPLE\order_ID123456
description: "Philips Daily Collection HD2583/90; Dimensions: X by Y;"
externalStatus: Awaiting employer approval

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
body body smartpay_application_create false none

Example responses

201 Response

{
  "applicationId": 96,
  "customerId": 1
}

Responses

Status Meaning Description Schema
201 Created Successful operation smart_pay_application_created
400 Bad Request BadRequest - request parameters invalid. standardModel
403 Forbidden Access to the resource has been denied standardModel
404 Not Found Customer or product not found. standardModel
409 Conflict Application was not created, due to system or product specific state. standardModel

Cancel an application

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.rewardgateway.net/smartpay/application/{applicationId}/cancel', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST https://api.rewardgateway.net/smartpay/application/{applicationId}/cancel HTTP/1.1
Host: api.rewardgateway.net
Content-Type: application/json
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X POST https://api.rewardgateway.net/smartpay/application/{applicationId}/cancel \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'

const inputBody = '{
  "customerId": 1,
  "reason": "User requested cancellation",
  "scheme": "8a98e6b3d06d4c1885d7fc239c87a2c9",
  "product": "vehicle"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/smartpay/application/{applicationId}/cancel',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /smartpay/application/{applicationId}/cancel

This endpoint will cancel an application for the selected customer, with the product and application id.

Body parameter

{
  "customerId": 1,
  "reason": "User requested cancellation",
  "scheme": "8a98e6b3d06d4c1885d7fc239c87a2c9",
  "product": "vehicle"
}
customerId: 1
reason: User requested cancellation
scheme: 8a98e6b3d06d4c1885d7fc239c87a2c9
product: vehicle

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
applicationId path integer true RG internal application identifier
body body smartpay_application_cancel false none

Example responses

200 Response

{
  "customerId": 1,
  "applicationId": 12
}

Responses

Status Meaning Description Schema
200 OK Successful operation smartpay_application_cancelled
400 Bad Request BadRequest - request parameters invalid. standardModel
403 Forbidden Access to the resource has been denied standardModel
404 Not Found Customner or product not found. standardModel

Approve an application

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.rewardgateway.net/smartpay/application/{applicationId}/approve', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST https://api.rewardgateway.net/smartpay/application/{applicationId}/approve HTTP/1.1
Host: api.rewardgateway.net
Content-Type: application/json
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X POST https://api.rewardgateway.net/smartpay/application/{applicationId}/approve \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'

const inputBody = '{
  "customerId": 1,
  "scheme": "8a98e6b3d06d4c1885d7fc239c87a2c9",
  "product": "vehicle"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/smartpay/application/{applicationId}/approve',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /smartpay/application/{applicationId}/approve

This endpoint will approve an application for the selected customer, with the product and application id.

Body parameter

{
  "customerId": 1,
  "scheme": "8a98e6b3d06d4c1885d7fc239c87a2c9",
  "product": "vehicle"
}
customerId: 1
scheme: 8a98e6b3d06d4c1885d7fc239c87a2c9
product: vehicle

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
applicationId path integer true RG internal application identifier
body body smartpay_application_approve false none

Example responses

200 Response

{
  "customerId": 1,
  "applicationId": 12
}

Responses

Status Meaning Description Schema
200 OK Successful operation smartpay_application_approved
400 Bad Request BadRequest - request parameters invalid. standardModel
403 Forbidden Access to the resource has been denied standardModel
404 Not Found Customer or product not found. standardModel

Reject an application

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.rewardgateway.net/smartpay/application/{applicationId}/reject', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST https://api.rewardgateway.net/smartpay/application/{applicationId}/reject HTTP/1.1
Host: api.rewardgateway.net
Content-Type: application/json
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X POST https://api.rewardgateway.net/smartpay/application/{applicationId}/reject \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'

const inputBody = '{
  "customerId": 1,
  "scheme": "8a98e6b3d06d4c1885d7fc239c87a2c9",
  "product": "vehicle",
  "reason": "Member does not qualify for this product"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/smartpay/application/{applicationId}/reject',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /smartpay/application/{applicationId}/reject

This endpoint will approve an application for the selected customer, with the product and application id.

Body parameter

{
  "customerId": 1,
  "scheme": "8a98e6b3d06d4c1885d7fc239c87a2c9",
  "product": "vehicle",
  "reason": "Member does not qualify for this product"
}
customerId: 1
scheme: 8a98e6b3d06d4c1885d7fc239c87a2c9
product: vehicle
reason: Member does not qualify for this product

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
applicationId path integer true RG internal application identifier
body body smartpay_application_reject false none

Example responses

200 Response

{
  "customerId": 1,
  "applicationId": 12
}

Responses

Status Meaning Description Schema
200 OK Successful operation smartpay_application_rejected
400 Bad Request BadRequest - request parameters invalid. standardModel
403 Forbidden Access to the resource has been denied standardModel
404 Not Found Customer or product not found. standardModel

Get the available funds for a customer

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/smartpay/application/affordability', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/smartpay/application/affordability?customerId=0&scheme=string&product=string HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/smartpay/application/affordability?customerId=0&scheme=string&product=string \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/smartpay/application/affordability?customerId=0&scheme=string&product=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /smartpay/application/affordability

This endpoint will return the available spending amount for the selected customer and product.

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
customerId query integer true User Identifier
scheme query string true RG internal Scheme ID
product query string true Product ID
ignoreAppId query integer false RG Application ID to be ignored

Example responses

200 Response

{
  "availableFunds": 0,
  "customerId": 1
}

Responses

Status Meaning Description Schema
200 OK Successful operation smartpay_available_funds
400 Bad Request BadRequest - request parameters invalid. standardModel
403 Forbidden Access to the resource has been denied standardModel
404 Not Found Customer or product not found. standardModel

Propose an amendment to an existing application

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.rewardgateway.net/smartpay/application/{applicationId}/amend', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST https://api.rewardgateway.net/smartpay/application/{applicationId}/amend HTTP/1.1
Host: api.rewardgateway.net
Content-Type: application/json
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X POST https://api.rewardgateway.net/smartpay/application/{applicationId}/amend \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'

const inputBody = '{
  "customerId": 1,
  "deductionPeriod": 12,
  "amount": 118.54,
  "scheme": "8a98e6b3d06d4c1885d7fc239c87a2c9",
  "product": "vehicle",
  "externalOrderId": "EXAMPLE\\order_ID123456",
  "description": "Philips Daily Collection HD2583/90; Dimensions: X by Y;",
  "externalStatus": "Awaiting employer approval"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/smartpay/application/{applicationId}/amend',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /smartpay/application/{applicationId}/amend

This endpoint will create an amendment proposal for an existing application.

Body parameter

{
  "customerId": 1,
  "deductionPeriod": 12,
  "amount": 118.54,
  "scheme": "8a98e6b3d06d4c1885d7fc239c87a2c9",
  "product": "vehicle",
  "externalOrderId": "EXAMPLE\\order_ID123456",
  "description": "Philips Daily Collection HD2583/90; Dimensions: X by Y;",
  "externalStatus": "Awaiting employer approval"
}
customerId: 1
deductionPeriod: 12
amount: 118.54
scheme: 8a98e6b3d06d4c1885d7fc239c87a2c9
product: vehicle
externalOrderId: EXAMPLE\order_ID123456
description: "Philips Daily Collection HD2583/90; Dimensions: X by Y;"
externalStatus: Awaiting employer approval

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
applicationId path integer true Id of the application
body body smartpay_application_amend false none

Example responses

201 Response

{
  "applicationId": 96,
  "amendmentId": 182,
  "customerId": 1
}

Responses

Status Meaning Description Schema
201 Created Successful operation smart_pay_application_amend_created
400 Bad Request BadRequest - request parameters invalid. standardModel
403 Forbidden Access to the resource has been denied standardModel
404 Not Found Customer or product not found. standardModel
409 Conflict Amendment was not accepted, due to system or product specific state. standardModel

Approve or reject an amendment to an existing application

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://api.rewardgateway.net/smartpay/application/{applicationId}/amend/{amendmentId}/{action}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

PUT https://api.rewardgateway.net/smartpay/application/{applicationId}/amend/{amendmentId}/{action} HTTP/1.1
Host: api.rewardgateway.net
Content-Type: application/json
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X PUT https://api.rewardgateway.net/smartpay/application/{applicationId}/amend/{amendmentId}/{action} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'

const inputBody = '{
  "customerId": 1,
  "scheme": "8a98e6b3d06d4c1885d7fc239c87a2c9",
  "product": "vehicle"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/smartpay/application/{applicationId}/amend/{amendmentId}/{action}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /smartpay/application/{applicationId}/amend/{amendmentId}/{action}

This endpoint will let you approve or reject an amendment for an existing application.

Body parameter

{
  "customerId": 1,
  "scheme": "8a98e6b3d06d4c1885d7fc239c87a2c9",
  "product": "vehicle"
}
customerId: 1
scheme: 8a98e6b3d06d4c1885d7fc239c87a2c9
product: vehicle

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
applicationId path integer true Id of the application
amendmentId path integer true Id of the amendment
action path string true Approve or Reject amendment
body body smartpay_application_amend_action false none

Enumerated Values

Parameter Value
action approve
action reject

Example responses

201 Response

{
  "applicationId": 96,
  "amendmentId": 182,
  "customerId": 1
}

Responses

Status Meaning Description Schema
201 Created Successful operation smart_pay_application_amend_processed
400 Bad Request BadRequest - request parameters invalid. standardModel
403 Forbidden Access to the resource has been denied standardModel
404 Not Found Customer or product not found. standardModel
409 Conflict Amendment was not accepted, due to system or product specific state. standardModel

Update metadata for an existing application

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://api.rewardgateway.net/smartpay/application/{applicationId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

PUT https://api.rewardgateway.net/smartpay/application/{applicationId} HTTP/1.1
Host: api.rewardgateway.net
Content-Type: application/json
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X PUT https://api.rewardgateway.net/smartpay/application/{applicationId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'

const inputBody = '{
  "customerId": 1,
  "scheme": "8a98e6b3d06d4c1885d7fc239c87a2c9",
  "product": "vehicle",
  "externalOrderId": "EXAMPLE\\order_ID123456",
  "description": "Philips Daily Collection HD2583/90; Dimensions: X by Y;",
  "externalStatus": "Awaiting employer approval"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/smartpay/application/{applicationId}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /smartpay/application/{applicationId}

This endpoint will let you update the metadata for an existing application.

Body parameter

{
  "customerId": 1,
  "scheme": "8a98e6b3d06d4c1885d7fc239c87a2c9",
  "product": "vehicle",
  "externalOrderId": "EXAMPLE\\order_ID123456",
  "description": "Philips Daily Collection HD2583/90; Dimensions: X by Y;",
  "externalStatus": "Awaiting employer approval"
}
customerId: 1
scheme: 8a98e6b3d06d4c1885d7fc239c87a2c9
product: vehicle
externalOrderId: EXAMPLE\order_ID123456
description: "Philips Daily Collection HD2583/90; Dimensions: X by Y;"
externalStatus: Awaiting employer approval

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning
applicationId path integer true Id of the application
body body smartpay_application_update false none

Example responses

201 Response

{
  "applicationId": 96,
  "customerId": 1
}

Responses

Status Meaning Description Schema
201 Created Successful operation smart_pay_application_updated
400 Bad Request BadRequest - request parameters invalid. standardModel
403 Forbidden Access to the resource has been denied standardModel
404 Not Found Customer or product not found. standardModel
409 Conflict Update was not processed, due to system or product specific state. standardModel

Get the smart pay products for current user

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/smartpay/member/products', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/smartpay/member/products HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/smartpay/member/products \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/smartpay/member/products',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /smartpay/member/products

This endpoint will return the smart pay products for the user associated with the access token.

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning

Example responses

200 Response

{
  "productId": 0,
  "productName": "Smart Tech",
  "productImage": "https://site1.rewardgateway.dev/images/st/image.png",
  "productUrl": "https://site1.rewardgateway.dev/SmartTech",
  "isNewBenefit": true,
  "window": [
    {
      "status": "string",
      "startDate": "string",
      "endDate": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Successful operation smart_pay_product
403 Forbidden Access to the resource has been denied standardModel

Get the smart pay balance for current user

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/smartpay/member/balance', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/smartpay/member/balance HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/smartpay/member/balance \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/smartpay/member/balance',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /smartpay/member/balance

This endpoint will return the smart pay balance for the user associated with the access token.

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning

Example responses

200 Response

{
  "availableBalancePercentage": "97.50%",
  "totalBalance": 0,
  "currentBalance": 0
}

Responses

Status Meaning Description Schema
200 OK Successful operation smart_pay_user_balance
403 Forbidden Access to the resource has been denied standardModel

Store

Store Review Service

Prompt for a store review

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/store/review', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/store/review HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0
Authorization: string

# You can also use wget
curl -X GET https://api.rewardgateway.net/store/review \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/store/review',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /store/review

Checks whether the member should be prompted to leave a review in the store

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
Authorization header string true Authorization Header with Bearer Token

Example responses

200 Response

{
  "askForReview": true
}

Responses

Status Meaning Description Schema
200 OK Successful operation Inline
401 Unauthorized Unauthorized standardModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
» askForReview boolean false none none

Save a store review

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
    'Authorization' => 'string',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.rewardgateway.net/store/review', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST https://api.rewardgateway.net/store/review HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Accept: application/vnd.rewardgateway+json;version=3.0
Authorization: string

# You can also use wget
curl -X POST https://api.rewardgateway.net/store/review \
  -H 'Accept: application/json' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0' \
  -H 'Authorization: string'


const headers = {
  'Accept':'application/json',
  'Accept':'application/vnd.rewardgateway+json;version=3.0',
  'Authorization':'string'
};

fetch('https://api.rewardgateway.net/store/review',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /store/review

Save a store review submitted by the member

Parameters

Name In Type Required Description
Accept header string true Accept Header with Vendor Versioning
Authorization header string true Authorization Header with Bearer Token

Example responses

401 Response

{
  "code": 1234,
  "message": "Example message",
  "details": [
    "Example details"
  ]
}

Responses

Status Meaning Description Schema
204 No Content Successful operation None
401 Unauthorized Unauthorized standardModel

Total Reward Statement

Endpoints to manage a members Total Reward Statements.

Get the total reward statement for current user

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/trs/getSections', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/trs/getSections HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/trs/getSections \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/trs/getSections',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /trs/getSections

This endpoint will return the total reward statement for the user associated with the access token.

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning

Example responses

403 Response

{
  "code": 1234,
  "message": "Example message",
  "details": [
    "Example details"
  ]
}

Responses

Status Meaning Description Schema
200 OK Successful operation None
403 Forbidden Access to the resource has been denied standardModel

User

Find current member information

Code samples

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'string',
    'Accept' => 'application/vnd.rewardgateway+json;version=3.0',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.rewardgateway.net/user/me', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET https://api.rewardgateway.net/user/me HTTP/1.1
Host: api.rewardgateway.net
Accept: application/json
Authorization: string
Accept: application/vnd.rewardgateway+json;version=3.0

# You can also use wget
curl -X GET https://api.rewardgateway.net/user/me \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'Accept: application/vnd.rewardgateway+json;version=3.0'


const headers = {
  'Accept':'application/json',
  'Authorization':'string',
  'Accept':'application/vnd.rewardgateway+json;version=3.0'
};

fetch('https://api.rewardgateway.net/user/me',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /user/me

Gets information about the currently logged in member

Parameters

Name In Type Required Description
Authorization header string true Authorization Header with Bearer Token
Accept header string true Accept Header with Vendor Versioning

Example responses

200 Response

{
  "id": "00000000-0000-0000-0000-000000000000",
  "firstName": "John",
  "lastName": "Smith",
  "email": "john.smith@acme.com",
  "emailVisible": true,
  "summary": "Ipsum dolor sit amet",
  "timezone": "UK, Western Europe (GMT +1:00)",
  "gender": "X",
  "addressLine1": "123 Some Road",
  "addressLine2": "Floor 4",
  "addressLine3": "London",
  "addressLine4": "London",
  "postalCode": "AA00 0AA",
  "country": "United Kingdom",
  "mobileNumber": "07700900077",
  "mobileNumberVisible": true,
  "telephoneNumber": "02700900077",
  "avatar": "https://www.acme.com/path/to/image.jpg",
  "dateOfBirth": "2019-08-24T14:15:22Z",
  "dateOfBirthVisible": true,
  "registrationDate": "2019-08-24T14:15:22Z",
  "registrationInfo": "Lorem ipsum dolor sit amet",
  "pushNotifications": true,
  "_links": {
    "self": {
      "href": "/user/me"
    },
    "locale": {
      "href": "/locale/{localeId}"
    },
    "scheme": {
      "href": "/scheme/{schemeId}"
    }
  },
  "_embedded": {
    "locale": {
      "id": 1,
      "name": "GB",
      "lang": "en_GB",
      "currency": "GBP",
      "symbol": "£",
      "states": [
        {
          "code": "ST",
          "name": "State"
        }
      ],
      "contactFields": {
        "firstName": "First Name",
        "lastName": "Surname",
        "emailAddress": "Email Address",
        "mobilePhoneNumber": "Mobile Phone Number",
        "addressLine1": "Address Line 1",
        "addressLine2": "Address Line 2",
        "addressLine3": "Address Line 3",
        "addressLine4": "Address Line 4",
        "postCode": "Postcode"
      },
      "_links": {
        "self": {
          "href": "/locale/{localeId}"
        }
      }
    },
    "scheme": {
      "id": 1234,
      "name": "Acme Rewards",
      "companyName": "Acme Ltd",
      "url": "https://acme.rewardgateway.com",
      "hasUsernameEndpoint": true,
      "team": [
        {
          "fullName": "John Smith",
          "firstName": "John",
          "lastName": "Smith",
          "email": "john.smith@acme.com",
          "cc": [
            "j.smith@acme.com"
          ],
          "image": "https://www.acme.com/path/to/image.jpg",
          "location": "United Kingdom",
          "description": "Lorem ipsum dolor sit amet",
          "role": "Director"
        }
      ],
      "branding": {
        "logo": "https://www.acme.com/path/to/image.jpg",
        "favIcon": "https://www.acme.com/path/to/image.jpg",
        "colours": {
          "navigationBackground": "a1b4c8",
          "navigationText": "a1b4c8",
          "buttonBackground": "a1b4c8",
          "buttonText": "a1b4c8",
          "pageBackground": "a1b4c8",
          "chevronBackground": "a1b4c8",
          "chevronText": "a1b4c8",
          "unselectedTabBackground": "a1b4c8",
          "unselectedTabText": "a1b4c8",
          "selectedTabBackground": "a1b4c8",
          "selectedTabText": "a1b4c8",
          "offersCarouselBackground": "a1b4c8",
          "offersCarouselText": "a1b4c8",
          "registerButtonBackground": "a1b4c8",
          "registerButtonText": "a1b4c8"
        }
      },
      "programmeTypes": [
        {
          "programmeTypeId": 1,
          "programmeTypeName": "Cashback",
          "stateId": 1,
          "stateName": "Enabled"
        }
      ],
      "enabledConfigurations": {
        "FVDining": true
      },
      "_links": {
        "self": {
          "href": "/scheme/{schemeId}"
        },
        "locale": {
          "href": "/locale/{localeId}"
        }
      },
      "_embedded": {
        "locale": {
          "id": 1,
          "name": "GB",
          "lang": "en_GB",
          "currency": "GBP",
          "symbol": "£",
          "states": [
            {
              "code": "ST",
              "name": "State"
            }
          ],
          "contactFields": {
            "firstName": "First Name",
            "lastName": "Surname",
            "emailAddress": "Email Address",
            "mobilePhoneNumber": "Mobile Phone Number",
            "addressLine1": "Address Line 1",
            "addressLine2": "Address Line 2",
            "addressLine3": "Address Line 3",
            "addressLine4": "Address Line 4",
            "postCode": "Postcode"
          },
          "_links": {
            "self": {
              "href": "/locale/{localeId}"
            }
          }
        }
      }
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Successful operation member
401 Unauthorized Access token expired standardModel
403 Forbidden Access to the resource has been denied standardModel

Schemas

standardModel

{
  "code": 1234,
  "message": "Example message",
  "details": [
    "Example details"
  ]
}

Properties

Name Type Required Restrictions Description
code integer(int32) true none none
message string true none none
details [string] true none none

authResponse

{
  "token_type": "Bearer",
  "expires_in": 600,
  "access_token": "a0b1c2d3e4f5a6b7c8d9...",
  "refresh_token": "a0b1c2d3e4f5a6b7c8d9..."
}

Properties

Name Type Required Restrictions Description
token_type string true none none
expires_in integer(int32) true none none
access_token string true none none
refresh_token string true none none

retailerMatch

{
  "id": 1234,
  "name": "Acme"
}

Properties

Name Type Required Restrictions Description
id integer(int32) true none none
name string true none none

formErrorResponse

{
  "code": 0,
  "message": "string",
  "formFieldErrors": [
    {
      "fieldName": "string",
      "message": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
code integer(int32) true none none
message string true none none
formFieldErrors [formFieldError] true none none

simplifiedResponse

{
  "member": {
    "id": "00000000-0000-0000-0000-000000000000",
    "email": "user@acme.com",
    "_links": {
      "self": {
        "href": "/helper/lookup/scheme?username={memberEmail}"
      }
    }
  },
  "scheme": {
    "id": 1234,
    "name": "Acme Rewards",
    "companyName": "Acme Ltd",
    "url": "http://acme.rewardgateway.com",
    "hasUsernameEndpoint": true,
    "branding": {
      "logo": "https://www.acme.com/path/to/image.jpg",
      "favIcon": "https://www.acme.com/path/to/image.jpg",
      "colours": {
        "navigationBackground": "a1b4c8",
        "navigationText": "a1b4c8",
        "buttonBackground": "a1b4c8",
        "buttonText": "a1b4c8",
        "pageBackground": "a1b4c8",
        "chevronBackground": "a1b4c8",
        "chevronText": "a1b4c8",
        "unselectedTabBackground": "a1b4c8",
        "unselectedTabText": "a1b4c8",
        "selectedTabBackground": "a1b4c8",
        "selectedTabText": "a1b4c8",
        "offersCarouselBackground": "a1b4c8",
        "offersCarouselText": "a1b4c8",
        "registerButtonBackground": "a1b4c8",
        "registerButtonText": "a1b4c8"
      }
    },
    "_links": {
      "self": {
        "href": "/scheme/{schemeId}"
      }
    }
  },
  "locale": {
    "id": 1,
    "_links": {
      "self": {
        "href": "/locale/{localeId}"
      }
    }
  }
}

Properties

Name Type Required Restrictions Description
member simplifiedMember true none none
scheme simplifiedScheme true none none
locale simplifiedLocale true none none

errorModel

{
  "code": 0,
  "message": "string"
}

Properties

Name Type Required Restrictions Description
code integer(int32) true none none
message string true none none

banner

{
  "image": "https://www.acme.com/path/to/image.jpg",
  "title": "Title of this banner",
  "subtitle": "Subtitle of this banner",
  "endsOn": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
image string true none Banner image location (URL)
title string true none Banner title
subtitle string true none Banner subtitle
endsOn string(date-time) true none Banner ends on date

category

{
  "id": 123,
  "name": "Reloadable cards",
  "_links": {
    "self": {
      "href": "/category/{categoryId}"
    },
    "hierarchy": {
      "href": "/category/{categoryId}/hierarchy"
    }
  }
}

Properties

Name Type Required Restrictions Description
id integer(int32) true none Category identifier
name string true none Category name
_links object false none none
» self object false none none
»» href string false none Endpoint to access this resource
» hierarchy object false none none
»» href string false none Endpoint to retrieve category hierarchy

categoryHierarchy

{
  "category": {
    "id": 123,
    "name": "Reloadable cards",
    "_links": {
      "self": {
        "href": "/category/{categoryId}"
      },
      "hierarchy": {
        "href": "/category/{categoryId}/hierarchy"
      }
    }
  },
  "parent": {
    "id": 123,
    "name": "Reloadable cards",
    "_links": {
      "self": {
        "href": "/category/{categoryId}"
      },
      "hierarchy": {
        "href": "/category/{categoryId}/hierarchy"
      }
    }
  },
  "children": [
    {
      "id": 123,
      "name": "Reloadable cards",
      "_links": {
        "self": {
          "href": "/category/{categoryId}"
        },
        "hierarchy": {
          "href": "/category/{categoryId}/hierarchy"
        }
      }
    }
  ]
}

Properties

Name Type Required Restrictions Description
category category true none none
parent category true none none
children [category] true none A list of child categories

client

{
  "id": "client_identifier",
  "name": "Acme Integration",
  "logo": "https://www.acme.com/path/to/image.jpg",
  "description": "Lorem ipsum dolor sit amet",
  "privacyUrl": "https://www.acme.com/privacy",
  "termsUrl": "https://www.acme.com/terms-and-conditions"
}

Properties

Name Type Required Restrictions Description
id string true none Client identifier
name string true none Client name
logo string true none Client logo
description string true none Client description
privacyUrl string true none Client's privacy URL
termsUrl string true none Client's terms and conditions URL

commsPostDetails

{
  "success": true,
  "data": {}
}

Properties

Name Type Required Restrictions Description
success boolean false none Class PostDetails
data object true none Class PostDetails
» role object true none Class PostDetails
»» value string true none Role ready for display
»» key string true none Role key

commsPostHistory

{
  "data": [
    {
      "doerUuid": "8a98e6b3-d51e-4829-a1e2-ed20bbfe248d",
      "doerType": "member",
      "profileUrl": "url",
      "hasProfileUrl": true,
      "isRejectionLink": true,
      "text": "Scheduled by someone.",
      "statusIndex": "scheduled",
      "statusText": "Scheduled",
      "dateElapsed": "2 days ago",
      "rawDate": "2020-07-03T12:36:38+00:00"
    }
  ]
}

Properties

Name Type Required Restrictions Description
data [object] true none Class PostHistoryResponse
» doerUuid string true none Uuid of doer
» doerType string true none Type of doer
» profileUrl string true none If doer is member will have url to the profile
» hasProfileUrl boolean true none Check if doer is member e.g has valid profile url.
» isRejectionLink boolean true none If history item should be linked to rejection reason. Will be true.
» text string true none Text for history item
» statusIndex string true none History item status as key.
» statusText string true none History item status as string.
» dateElapsed string true none Time elaspesed since action was performed.
» rawDate string true none Datetime formatted with timezone when action was performed.

rejectOptionsResponse

{
  "success": true,
  "data": {
    "textLimit": "1500",
    "reasons": [
      {
        "value": "1",
        "label": "Too short"
      }
    ]
  }
}

Properties

Name Type Required Restrictions Description
success boolean false none none
data object false none none
» textLimit string false none none
» reasons [object] false none none
»» value string false none Value
»» label string false none Label

rejectReasonResponse

{
  "success": true,
  "data": [
    {
      "doerUuid": "8a98e6b3-d51e-4829-a1e2-ed20bbfe248d",
      "doerType": "member",
      "profileUrl": "url",
      "avatarUrl": "url",
      "hasProfileUrl": true,
      "isReject": true,
      "text": "Scheduled by someone.",
      "iconType": "cancel",
      "statusIndex": "rejected",
      "statusText": "Rejected",
      "dateElapsed": "2 days ago",
      "rawDate": "2020-07-03T12:36:38+00:00",
      "rejectInfoPath": "/comms/blog/post/200/reject/fetch/11",
      "reasonText": "Add more visual things.",
      "reasonsOptions": [
        "Too short"
      ]
    }
  ]
}

Properties

Name Type Required Restrictions Description
success boolean false none none
data [object] false none none
» doerUuid string true none Uuid of doer
» doerType string true none Type of doer
» profileUrl string true none If doer is member will have url to the profile
» avatarUrl string false none URL to member avatar
» hasProfileUrl boolean true none Check if doer is member e.g has valid profile url.
» isReject boolean false none Always true
» text string true none Text for history item
» iconType string false none Icon style
» statusIndex string true none History item status as key.
» statusText string true none History item status as string.
» dateElapsed string true none Time elaspesed since action was performed.
» rawDate string true none Datetime formatted with timezone when action was performed.
» rejectInfoPath string false none URL to current resource if needed.
» reasonText string false none Reason to reject
» reasonsOptions [string] false none Array of reasons for reject

rejectResponse

{
  "success": true,
  "data": {
    "rejectionId": "91340a1bd6ec4ac4b93759beeeaf7668",
    "reasonId": 11
  }
}

Properties

Name Type Required Restrictions Description
success boolean false none none
data object false none none
» rejectionId string false none none
» reasonId integer false none none

commsDocument

{
  "title": "Discounts Poster",
  "downloadPath": "https://site1.rewardgateway.dev/admin/comms/document/DiscountsPoster",
  "thumbnailPath": "https://static.rewardgateway.dev/BrandAssets/responsive/img/SelfService/admin/comms/discounts-poster.jpg",
  "type": "PDF",
  "buttonText": "Download",
  "category": "Launch"
}

Properties

Name Type Required Restrictions Description
title string false none Document Title
downloadPath string false none URL to PDF download path
thumbnailPath string false none URL to thumbnail image
type string false none Document Type
buttonText string false none Text to appear as button label
category string false none Document category

customerRecognition

null

Properties

None

customerFormStructure

{
  "fields": [
    {
      "id": "RRNomineeAsText",
      "type": "checkbox",
      "label": "Who would you like to recognize?",
      "description": "Example description",
      "isHidden": true,
      "isRequired": true,
      "options": [
        {
          "value": "18",
          "label": "-- Select --"
        }
      ]
    }
  ]
}

Properties

Name Type Required Restrictions Description
fields [object] true none Class FormStructure
» id string true none ID of form field.
» type string true none Type of field
» label string true none Label of field
» description string true none Description of field
» isHidden boolean true none If is hidden field.
» isRequired boolean true none If is required field.
» options [object] false none If elements supports options.
»» value string false none Option value
»» label string false none Option label

Enumerated Values

Property Value
type text
type textarea
type select
type radio
type checkbox
type sectionbreak

customerNominationEntity

{
  "success": true,
  "message": "string",
  "nominationId": 0
}

Properties

Name Type Required Restrictions Description
success boolean false none none
message string false none none
nominationId integer false none none

customerRequestDetails

{
  "request_headers": {
    "Accept": "application/vnd.rewardgateway+json; version=3.0",
    "Authorization": "[access token]"
  },
  "request_urls": {
    "fetch_form_scheme_url": "string",
    "store_form_url": "string"
  },
  "scheme_id": "string",
  "rr_scheme_id": "string",
  "page_data": {
    "submit_page": {
      "title": "Thank you title.",
      "description": "Thank you description."
    },
    "submit_page_button": {
      "hasButton": true,
      "text": "Button text",
      "link": "Link to"
    }
  }
}

Properties

Name Type Required Restrictions Description
request_headers object false none none
» Accept string false none none
» Authorization string false none none
request_urls object false none none
» fetch_form_scheme_url string false none none
» store_form_url string false none none
scheme_id string false none none
rr_scheme_id string false none none
page_data object false none none
» submit_page object false none none
»» title string false none none
»» description string false none none
» submit_page_button object false none none
»» hasButton boolean false none none
»» text string false none none
»» link string false none none

customerStoreValidationError

{
  "success": true,
  "errors": [
    {
      "forKey": "RRNomineeAsText",
      "messages": [
        "We need you to fill this field out."
      ]
    }
  ]
}

Properties

Name Type Required Restrictions Description
success boolean false none none
errors [object] false none none
» forKey string false none Key for which is not valid.
» messages [string] false none List of errors for that key

discount

{
  "saving": "Earn 3%",
  "description": "on all offers",
  "useableInStore": true,
  "useableOnline": true,
  "startsOn": "2019-08-24T14:15:22Z",
  "endsOn": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
saving string true none Discount savings
description string true none Discount description
useableInStore boolean true none Discount can be used in-store
useableOnline boolean true none Discount can be used online
startsOn string(date-time) true none Discount is valid from
endsOn string(date-time) true none Discount is valid until

formFieldError

{
  "fieldName": "string",
  "message": "string"
}

Properties

Name Type Required Restrictions Description
fieldName string true none none
message string true none none

locale

{
  "id": 1,
  "name": "GB",
  "lang": "en_GB",
  "currency": "GBP",
  "symbol": "£",
  "states": [
    {
      "code": "ST",
      "name": "State"
    }
  ],
  "contactFields": {
    "firstName": "First Name",
    "lastName": "Surname",
    "emailAddress": "Email Address",
    "mobilePhoneNumber": "Mobile Phone Number",
    "addressLine1": "Address Line 1",
    "addressLine2": "Address Line 2",
    "addressLine3": "Address Line 3",
    "addressLine4": "Address Line 4",
    "postCode": "Postcode"
  },
  "_links": {
    "self": {
      "href": "/locale/{localeId}"
    }
  }
}

Properties

Name Type Required Restrictions Description
id integer(int32) true none Locale identifier
name string true none Locale name
lang string true none Locale language
currency string true none Locale currency
symbol string true none Locale currency symbol
states [state] true none Locale state list
contactFields object true none List of translated contact fields
» firstName any false none List of translated contact fields
» lastName any false none List of translated contact fields
» emailAddress any false none List of translated contact fields
» mobilePhoneNumber any false none List of translated contact fields
» addressLine1 any false none List of translated contact fields
» addressLine2 any false none List of translated contact fields
» addressLine3 any false none List of translated contact fields
» addressLine4 any false none List of translated contact fields
» postCode any false none List of translated contact fields
_links object false none none
» self object false none none
»» href string false none Endpoint to access this resource

member

{
  "id": "00000000-0000-0000-0000-000000000000",
  "firstName": "John",
  "lastName": "Smith",
  "email": "john.smith@acme.com",
  "emailVisible": true,
  "summary": "Ipsum dolor sit amet",
  "timezone": "UK, Western Europe (GMT +1:00)",
  "gender": "X",
  "addressLine1": "123 Some Road",
  "addressLine2": "Floor 4",
  "addressLine3": "London",
  "addressLine4": "London",
  "postalCode": "AA00 0AA",
  "country": "United Kingdom",
  "mobileNumber": "07700900077",
  "mobileNumberVisible": true,
  "telephoneNumber": "02700900077",
  "avatar": "https://www.acme.com/path/to/image.jpg",
  "dateOfBirth": "2019-08-24T14:15:22Z",
  "dateOfBirthVisible": true,
  "registrationDate": "2019-08-24T14:15:22Z",
  "registrationInfo": "Lorem ipsum dolor sit amet",
  "pushNotifications": true,
  "_links": {
    "self": {
      "href": "/user/me"
    },
    "locale": {
      "href": "/locale/{localeId}"
    },
    "scheme": {
      "href": "/scheme/{schemeId}"
    }
  },
  "_embedded": {
    "locale": {
      "id": 1,
      "name": "GB",
      "lang": "en_GB",
      "currency": "GBP",
      "symbol": "£",
      "states": [
        {
          "code": "ST",
          "name": "State"
        }
      ],
      "contactFields": {
        "firstName": "First Name",
        "lastName": "Surname",
        "emailAddress": "Email Address",
        "mobilePhoneNumber": "Mobile Phone Number",
        "addressLine1": "Address Line 1",
        "addressLine2": "Address Line 2",
        "addressLine3": "Address Line 3",
        "addressLine4": "Address Line 4",
        "postCode": "Postcode"
      },
      "_links": {
        "self": {
          "href": "/locale/{localeId}"
        }
      }
    },
    "scheme": {
      "id": 1234,
      "name": "Acme Rewards",
      "companyName": "Acme Ltd",
      "url": "https://acme.rewardgateway.com",
      "hasUsernameEndpoint": true,
      "team": [
        {
          "fullName": "John Smith",
          "firstName": "John",
          "lastName": "Smith",
          "email": "john.smith@acme.com",
          "cc": [
            "j.smith@acme.com"
          ],
          "image": "https://www.acme.com/path/to/image.jpg",
          "location": "United Kingdom",
          "description": "Lorem ipsum dolor sit amet",
          "role": "Director"
        }
      ],
      "branding": {
        "logo": "https://www.acme.com/path/to/image.jpg",
        "favIcon": "https://www.acme.com/path/to/image.jpg",
        "colours": {
          "navigationBackground": "a1b4c8",
          "navigationText": "a1b4c8",
          "buttonBackground": "a1b4c8",
          "buttonText": "a1b4c8",
          "pageBackground": "a1b4c8",
          "chevronBackground": "a1b4c8",
          "chevronText": "a1b4c8",
          "unselectedTabBackground": "a1b4c8",
          "unselectedTabText": "a1b4c8",
          "selectedTabBackground": "a1b4c8",
          "selectedTabText": "a1b4c8",
          "offersCarouselBackground": "a1b4c8",
          "offersCarouselText": "a1b4c8",
          "registerButtonBackground": "a1b4c8",
          "registerButtonText": "a1b4c8"
        }
      },
      "programmeTypes": [
        {
          "programmeTypeId": 1,
          "programmeTypeName": "Cashback",
          "stateId": 1,
          "stateName": "Enabled"
        }
      ],
      "enabledConfigurations": {
        "FVDining": true
      },
      "_links": {
        "self": {
          "href": "/scheme/{schemeId}"
        },
        "locale": {
          "href": "/locale/{localeId}"
        }
      },
      "_embedded": {
        "locale": {
          "id": 1,
          "name": "GB",
          "lang": "en_GB",
          "currency": "GBP",
          "symbol": "£",
          "states": [
            {
              "code": "ST",
              "name": "State"
            }
          ],
          "contactFields": {
            "firstName": "First Name",
            "lastName": "Surname",
            "emailAddress": "Email Address",
            "mobilePhoneNumber": "Mobile Phone Number",
            "addressLine1": "Address Line 1",
            "addressLine2": "Address Line 2",
            "addressLine3": "Address Line 3",
            "addressLine4": "Address Line 4",
            "postCode": "Postcode"
          },
          "_links": {
            "self": {
              "href": "/locale/{localeId}"
            }
          }
        }
      }
    }
  }
}

Properties

Name Type Required Restrictions Description
id string true none Member identifier
firstName string true none Member's first name
lastName string true none Member's last name
email string true none Member's email address
emailVisible boolean false none Member's email address visibility
summary string false none Member's summary
timezone string false none Member's timezone
gender string true none Member's gender
addressLine1 string true none Member's address line 1
addressLine2 string true none Member's address line 2
addressLine3 string true none Member's address line 3
addressLine4 string true none Member's address line 4
postalCode string true none Member's postal code
country string true none Member's country
mobileNumber string true none Member's mobile number
mobileNumberVisible boolean false none Member's mobile number visibility
telephoneNumber string true none Member's telephone number
avatar string true none Member's avatar
dateOfBirth string(date-time) false none Member's date of birth
dateOfBirthVisible boolean false none Member's date of birth visibility
registrationDate string(date-time) false none Member's registration date
registrationInfo string false none Member's registration info
pushNotifications boolean false none Are push notifications enabled?
_links object false none none
» self object false none none
»» href string false none Endpoint to access this resource
» locale object false none none
»» href string false none Endpoint to retrieve member's locale
» scheme object false none none
»» href string false none Endpoint to retrieve member's scheme
_embedded object false none none
» locale locale false none none
» scheme scheme false none none

offer

{
  "id": 9999,
  "type": "Cashback",
  "description": "Description for this offer",
  "keyInformation": "Key information for this offer",
  "howItWorks": "Details on how this offer works",
  "termsAndConditions": "Terms & conditions of this offer",
  "expiryDate": "2019-08-24T14:15:22Z",
  "specialOffer": true,
  "redeemableOnDesktop": true,
  "redeemableOnMobile": true,
  "discount": {
    "saving": "Earn 3%",
    "description": "on all offers",
    "useableInStore": true,
    "useableOnline": true,
    "startsOn": "2019-08-24T14:15:22Z",
    "endsOn": "2019-08-24T14:15:22Z"
  },
  "normally": {
    "saving": "Earn 3%",
    "description": "on all offers",
    "useableInStore": true,
    "useableOnline": true,
    "startsOn": "2019-08-24T14:15:22Z",
    "endsOn": "2019-08-24T14:15:22Z"
  },
  "_links": {
    "self": {
      "href": "/offer/{offerId}"
    }
  }
}

Properties

Name Type Required Restrictions Description
id integer(int32) true none Offer identifier
type string true none Type of the offer
description string true none Offer's description
keyInformation string true none Offer's key information
howItWorks string true none How the offer works
termsAndConditions string true none Offer's terms and conditions
expiryDate string(date-time) true none Offer's expiry date
specialOffer boolean true none Is this a special offer?
redeemableOnDesktop boolean true none Offer can be redeemed on the desktop
redeemableOnMobile boolean true none Offer can be redeemed on mobile
discount discount true none none
normally discount false none none
_links object false none none
» self object false none none
»» href string false none Endpoint to access this resource

promotion

{
  "banner": {
    "image": "https://www.acme.com/path/to/image.jpg",
    "title": "Title of this banner",
    "subtitle": "Subtitle of this banner",
    "endsOn": "2019-08-24T14:15:22Z"
  },
  "retailer": {
    "id": 1234,
    "name": "Acme",
    "logo": "https://www.acme.com/path/to/image.jpg",
    "description": "Retailer description for Acme",
    "isFavourite": true,
    "isFeatured": true,
    "category": {
      "id": 123,
      "name": "Reloadable cards",
      "_links": {
        "self": {
          "href": "/category/{categoryId}"
        },
        "hierarchy": {
          "href": "/category/{categoryId}/hierarchy"
        }
      }
    },
    "_links": {
      "self": {
        "href": "/retailer/{retailerId}"
      },
      "offers": {
        "href": "/retailer/{retailerId}/offers"
      }
    }
  },
  "offer": {
    "id": 9999,
    "type": "Cashback",
    "description": "Description for this offer",
    "keyInformation": "Key information for this offer",
    "howItWorks": "Details on how this offer works",
    "termsAndConditions": "Terms & conditions of this offer",
    "expiryDate": "2019-08-24T14:15:22Z",
    "specialOffer": true,
    "redeemableOnDesktop": true,
    "redeemableOnMobile": true,
    "discount": {
      "saving": "Earn 3%",
      "description": "on all offers",
      "useableInStore": true,
      "useableOnline": true,
      "startsOn": "2019-08-24T14:15:22Z",
      "endsOn": "2019-08-24T14:15:22Z"
    },
    "normally": {
      "saving": "Earn 3%",
      "description": "on all offers",
      "useableInStore": true,
      "useableOnline": true,
      "startsOn": "2019-08-24T14:15:22Z",
      "endsOn": "2019-08-24T14:15:22Z"
    },
    "_links": {
      "self": {
        "href": "/offer/{offerId}"
      }
    }
  }
}

Properties

Name Type Required Restrictions Description
banner banner true none none
retailer retailer true none none
offer offer true none none

retailer

{
  "id": 1234,
  "name": "Acme",
  "logo": "https://www.acme.com/path/to/image.jpg",
  "description": "Retailer description for Acme",
  "isFavourite": true,
  "isFeatured": true,
  "category": {
    "id": 123,
    "name": "Reloadable cards",
    "_links": {
      "self": {
        "href": "/category/{categoryId}"
      },
      "hierarchy": {
        "href": "/category/{categoryId}/hierarchy"
      }
    }
  },
  "_links": {
    "self": {
      "href": "/retailer/{retailerId}"
    },
    "offers": {
      "href": "/retailer/{retailerId}/offers"
    }
  }
}

Properties

Name Type Required Restrictions Description
id integer(int32) true none Retailer identifier
name string true none Retailer's name
logo string true none Retailer's logo (URL)
description string true none Retailer's description
isFavourite boolean true none Is retailer favourited
isFeatured boolean true none Is retailer featured
category category false none none
_links object false none none
» self object false none none
»» href string false none Endpoint to access this resource
» offers object false none none
»» href string false none Endpoint to retrieve all retailer's offers

retailerDetails

{
  "retailer": {
    "id": 1234,
    "name": "Acme",
    "logo": "https://www.acme.com/path/to/image.jpg",
    "description": "Retailer description for Acme",
    "isFavourite": true,
    "isFeatured": true,
    "category": {
      "id": 123,
      "name": "Reloadable cards",
      "_links": {
        "self": {
          "href": "/category/{categoryId}"
        },
        "hierarchy": {
          "href": "/category/{categoryId}/hierarchy"
        }
      }
    },
    "_links": {
      "self": {
        "href": "/retailer/{retailerId}"
      },
      "offers": {
        "href": "/retailer/{retailerId}/offers"
      }
    }
  },
  "bestOffer": {
    "id": 9999,
    "type": "Cashback",
    "description": "Description for this offer",
    "keyInformation": "Key information for this offer",
    "howItWorks": "Details on how this offer works",
    "termsAndConditions": "Terms & conditions of this offer",
    "expiryDate": "2019-08-24T14:15:22Z",
    "specialOffer": true,
    "redeemableOnDesktop": true,
    "redeemableOnMobile": true,
    "discount": {
      "saving": "Earn 3%",
      "description": "on all offers",
      "useableInStore": true,
      "useableOnline": true,
      "startsOn": "2019-08-24T14:15:22Z",
      "endsOn": "2019-08-24T14:15:22Z"
    },
    "normally": {
      "saving": "Earn 3%",
      "description": "on all offers",
      "useableInStore": true,
      "useableOnline": true,
      "startsOn": "2019-08-24T14:15:22Z",
      "endsOn": "2019-08-24T14:15:22Z"
    },
    "_links": {
      "self": {
        "href": "/offer/{offerId}"
      }
    }
  }
}

Properties

Name Type Required Restrictions Description
retailer retailer true none none
bestOffer offer true none none

retailerOffers

{
  "retailer": {
    "id": 1234,
    "name": "Acme",
    "logo": "https://www.acme.com/path/to/image.jpg",
    "description": "Retailer description for Acme",
    "isFavourite": true,
    "isFeatured": true,
    "category": {
      "id": 123,
      "name": "Reloadable cards",
      "_links": {
        "self": {
          "href": "/category/{categoryId}"
        },
        "hierarchy": {
          "href": "/category/{categoryId}/hierarchy"
        }
      }
    },
    "_links": {
      "self": {
        "href": "/retailer/{retailerId}"
      },
      "offers": {
        "href": "/retailer/{retailerId}/offers"
      }
    }
  },
  "offers": [
    {
      "id": 9999,
      "type": "Cashback",
      "description": "Description for this offer",
      "keyInformation": "Key information for this offer",
      "howItWorks": "Details on how this offer works",
      "termsAndConditions": "Terms & conditions of this offer",
      "expiryDate": "2019-08-24T14:15:22Z",
      "specialOffer": true,
      "redeemableOnDesktop": true,
      "redeemableOnMobile": true,
      "discount": {
        "saving": "Earn 3%",
        "description": "on all offers",
        "useableInStore": true,
        "useableOnline": true,
        "startsOn": "2019-08-24T14:15:22Z",
        "endsOn": "2019-08-24T14:15:22Z"
      },
      "normally": {
        "saving": "Earn 3%",
        "description": "on all offers",
        "useableInStore": true,
        "useableOnline": true,
        "startsOn": "2019-08-24T14:15:22Z",
        "endsOn": "2019-08-24T14:15:22Z"
      },
      "_links": {
        "self": {
          "href": "/offer/{offerId}"
        }
      }
    }
  ]
}

Properties

Name Type Required Restrictions Description
retailer retailer true none none