myPOS Rest API uses oAuth2 for authorizing the HTTP requests. For more information please refer to the docs: https://www.oauth.com. The oAuth2 Token is sent in the header of every request. The Client ID and Client Secret are available in the myPOS Web Account.
oAuth Credentials
To generate your personal set of credentials, go to your myPOS Account. There you can manage your already generated credentials as well as generate new ones.
Token generation
After obtaining your Client ID and Client Secret, generating an oAuth Token is standard. myPOS REST API currently supports only "client credentials" grant type for oAuth Token generation.
To generate a token, send an HTTP POST request to:
For production environment - https://auth-api.mypos.com/oauth/token
For test environment - https://sandbox-auth-api.mypos.com/oauth/token
The request should be with:
Headers
Content-Type = application/x-www-form-urlencoded
Authorization = "Basic " + base64 encoded value of concatenated Client ID and Client Secret using a semicolon for concatenation.
Body
grant_type = "client_credentials" or authorization_code" or "refresh_token"
scope = "webhooks" when using oAuth for the WebhookAPI
Examples
curl -X POST \
https://auth-api.mypos.com/oauth/token \
-H 'Authorization: Basic base64encode(client_id:client_secret)' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=client_credentials'
import requests
import base64
requests.post(
url='https://auth-api.mypos.com/oauth/token',
headers={
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'Basic %s' % base64.b64encode('client_id:client_secret'.encode('utf-8').decode('utf-8'))
},
data=dict(
grant_type='client_credentials'
)
)
const request = require('request');
const options = {
method: 'POST',
url: 'https://auth-api.mypos.com/oauth/token',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': `Basic ${Buffer.from("client_id:client_secret").toString('base64')}`
},
form: {
grant_type: 'client_credentials'
}
};
request(options, (err, res, body) => {
// TODO: Handle response
});
<?php
$request = new HttpRequest();
$request->setUrl('https://auth-api.mypos.com/oauth/token');
$request->setMethod(HTTP_METH_POST);
$request->setHeaders(array(
'Content-Type' => 'application/x-www-form-urlencoded',
'Authorization' => 'Basic ' . base64_encode('client_id:client_secret')
));
$request->setContentType('application/x-www-form-urlencoded');
$request->setPostFields(array(
'grant_type' => 'client_credentials'
));
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
Token Revocation
To revoke an oAuth Token send an HTTP request to https://api.mypos.com/oauth/revoke with:
Headers
Content-Type = application/x-www-form-urlencoded
Authorization = "Basic " + base64 encoded value of concatenated Client ID and Client Secret using a colon (“:”) (Postman) or semicolon (“;”) for concatenation.
Body
token = <the_token_to_revoke>
Examples
curl -X POST \
https://auth-api.mypos.com/oauth/revoke \
-H 'Authorization: Basic base64encode(client_id:client_secret)' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'token=vjqje92BWVesdh8TE6nBfepst0mf11wHA6VnR5RhN6'
import requests
import base64
requests.post(
url='https://auth-api.mypos.com/oauth/revoke',
headers={
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'Basic %s' % base64.b64encode('client_id:client_secret'.encode('utf-8')).decode('utf-8')
},
data=dict(
token='vjqje92BWVesdh8TE6nBfepst0mf11wHA6VnR5RhN6'
)
)
const request = require('request');
const options = {
method: 'POST',
url: 'https://auth-api.mypos.com/oauth/revoke',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': `Basic ${Buffer.from("client_id:client_secret").toString('base64')}`
},
form: {
token: 'vjqje92BWVesdh8TE6nBfepst0mf11wHA6VnR5RhN6'
}
};
request(options, (err, res, body) => {
// TODO: Handle response
});
<?php
$request = new HttpRequest();
$request->setUrl('https://auth-api.mypos.com/oauth/revoke');
$request->setMethod(HTTP_METH_POST);
$request->setHeaders(array(
'Content-Type' => 'application/x-www-form-urlencoded',
'Authorization' => 'Basic ' . base64_encode('client_id:client_secret')
));
$request->setContentType('application/json');
$request->setPostFields(array(
'token' => 'vjqje92BWVesdh8TE6nBfepst0mf11wHA6VnR5RhN6'
));
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}