Mutual TLS
Use a Payvala-issued client certificate to identify your system when connecting to Payvala services.
Assistant
Payvala Assistant
Suggestions
Press Enter to send ยท Shift+Enter for new line
Payvala API requests use multiple layers of authentication and security controls to protect access to Payvala services.
Depending on the API operation, authentication can include a Payvala-issued client certificate, an OAuth 2.0 access token, and HMAC request signing for transaction requests.
Authentication credentials must be securely managed and used only from trusted server-side systems.
Use a Payvala-issued client certificate to identify your system when connecting to Payvala services.
Use OAuth 2.0 Client Credentials to obtain a short-lived Bearer access token.
Transaction requests use HMAC-SHA256 signing to protect request integrity and verify the expected sender.
Your Payvala integration uses the following credentials and security materials. Keep all private credentials protected and never expose them through client-side applications.
A Payvala-issued certificate and private key used to identify your system. Access tokens are bound to the client certificate.
MasterKeyId and MasterKeySecret are used when requesting OAuth access tokens using the client_credentials grant.
AccessKeyId and AccessKey are used for HMAC request signing. AccessKeyId is the public identifier while AccessKey is secret.
AuthCode is generated through the Payvala portal or API and is used to classify and segment transactions.
A typical authenticated Payvala API request follows the steps below.
Present your Payvala-issued client certificate when establishing the secure TLS connection.
Send the required credentials to the OAuth token endpoint using the client_credentials grant.
Include the access token in the Authorization header. Transaction requests also include the required signing headers.
Reuse the access token according to its returned expiry value and request a new token when it expires.
Payvala uses OAuth 2.0 Client Credentials Grant to issue access tokens for authenticated API requests.
The access token is returned as a Bearer token and must be included in the Authorization header when calling secured APIs.
Authorization: Bearer <access_token>/oauth/token| Field | Type | Required | Description |
|---|---|---|---|
AccessKeyId | String | Yes | Access key identifier issued by Payvala. |
AccessKey | String | Yes | Secret access key issued by Payvala. |
GrantType | String | Yes | Must be client_credentials. |
| Field | Type | Description |
|---|---|---|
AccessToken | String | JWT access token used as a Bearer token. |
TokenType | String | Token type. Expected value is Bearer. |
ExpiresIn | Integer | Token lifetime returned by the API in seconds. |
Transaction requests require the access token and the request-signing headers described below.
Bearer access token used to authenticate the API request. Never place the token in request payloads or logs.
The AccessKeyId associated with the secret key used to generate the request signature.
The request timestamp represented using ISO 8601 format.
A unique UUID generated for each request.
The HMAC-SHA256 signature generated from the required request values.
Transaction requests use HMAC-SHA256 signing to help verify the origin and integrity of the request.
Concatenate the required values in the exact order defined by the signing rule.
Encode the signing input using UTF-8.
Generate the HMAC-SHA256 digest using the AccessKey as the secret.
Send the resulting lowercase hexadecimal signature in the x-signature header.
HMAC_SHA256(accessKey, accessKeyId + requestId + txnId + timestamp + nonce + payload)Follow these practices when implementing and operating your Payvala integration.
Store private keys and sensitive cryptographic material in an HSM or hardware-backed secrets manager.
Read credentials from environment variables or a dedicated secrets manager at application startup.
Never hardcode secrets or commit credentials to source control.
Redact secrets, access tokens, private keys, and personal data from application and monitoring logs.
Rotate credentials before expiry and maintain an overlap period to avoid integration downtime.
Maintain accurate system time on systems that generate signed requests because timestamp validation can affect request acceptance.
Authentication credentials must remain on trusted server-side systems and must never be exposed through client-side applications or public resources.
Never expose the secret AccessKey outside trusted server-side systems.
Never expose the MasterKeySecret in source code, URLs, logs, or client-side applications.
Never expose private cryptographic keys, including the mTLS private key.
Never expose OAuth access tokens in browser code, URLs, error messages, or logs.
Do not place Payvala authentication credentials inside browser or mobile application code.
Never commit authentication credentials or private keys to public or shared source repositories.