This guide describes the OAuth 2.0 Client Credentials Flow, the industry-standard method for secure machine-to-machine (M2M) communication. It allows your application to authenticate directly with PMS to obtain a JWT Access Token for API access
To get started, contact ------TBD---- to receive your unique credentials:
- Client ID: A unique public identifier for your application.
- Client Secret: A private key used for authentication. Never share this secret or commit it to version control.
Send a POST request to PMS token endpoint
https://cps-poc-api-access.auth.eu-south-2.amazoncognito.com/oauth2/token
You can authenticate using one of two common methods:
Combine your Client ID and Client Secret with a colon (ID:Secret), encode the string in Base64, and include it in the Authorization header. Put grant_type=client_credentials as body.
POST /oauth2/token HTTP/1.1
Host: cps-poc-api-access.auth.eu-south-2.amazoncognito.com
Authorization: Basic <Base64_Encoded_Credentials>
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentialsInclude credentials directly in the request body.
POST /oauth2/token HTTP/1.1
Host: cps-poc-api-access.auth.eu-south-2.amazoncognito.com
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRETA successful request returns a JSON object containing your JWT Access Token:
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 3600
}Include the access token in the Authorization header of every API request using the Bearer scheme.
curl -X POST "https://l89hmcdo52.execute-api.eu-south-2.amazonaws.com/default/api/v1/reservation/checkin" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"hotelConfirmationNumber": "value1",
"hotelNumber": "value2"
.....
}'
- Security: Always use HTTPS for token and API requests to protect credentials in transit.
- Token Caching: Store tokens in memory and reuse them until they expire to minimize overhead.
- No Refresh Tokens: The Client Credentials flow does not provide refresh tokens; simply request a new access token using your credentials when needed.