Merchant Boarding & migrationAuthentication TokenGenerate Auth Token

Generate Auth Token

Create a new JWT-based access token using your API Key, Secret Key, and Scope. The token must be included in the request header when calling any protected endpoint across iPOS Transact, Batch Report, Recurring Payments, Merchant Onboarding, Transaction Status Check, and Hosted Payment Page.

https://auth.ipospays.tech/v1/authenticate-token
POST

How to Generate API and Secret Keys

The apiKey and secretKey can be generated through the iPOSpays portal using an ISO, Agent Office, or Merchant Admin account.

  1. Log in via your ISO Admin account.
  2. Navigate to Settings → Generate API & Secret Key.
  3. Under Generate Keys, click Generate Keys, then use the copy icon — the Secret Key is masked by default.
  4. Click Reset Secret Key to regenerate it if needed.
  5. Use the generated credentials to authenticate your API requests.

Header Parameters

apiKey*string

The apiKey can be generated from the iPOSpays portal using an ISO, Agent Office, and Merchant Admin account. These keys are required for authentication.

secretKey*string

The secret key can be generated from the iPOSpays portal using an ISO, Agent Office, and Merchant Admin account. These keys are required for authentication.

TokenExpiryMinutes?integer

Custom token expiry time in minutes. Minimum value is 30 minutes, maximum value is 24 hours (1440 minutes).

Range30 <= value <= 1440

Response Body

200 application/json — Token generated successfully.

responseCode?string

Numeric response status indicator ("00" typically signifies success).

responseMessage?string

Status message return text.

createdDt?string

Epoch timestamp string indicating token generation completion.

token?string

Encrypted JWT Bearer Authentication Token.

400 application/json — Bad Request / Validation Errors.

errorCode?string

Unique authentication process error identifier.

errorMessage?string

Human-readable clarification outlining the failure cause.

401 application/json — Unauthorized.

errorCode?string

Unique authentication process error identifier.

errorMessage?string

Human-readable clarification outlining the failure cause.

Always keep your API Key and Secret Key confidential, and use only the scopes that match your integration level.

curl -X POST "https://auth.ipospays.tech/v1/authenticate-token" \
  -H "apiKey: your_api_key_here" \
  -H "secretKey: your_secret_key_here" \
  -H "TokenExpiryMinutes: 1000"
const response = await fetch("https://auth.ipospays.tech/v1/authenticate-token", {
  method: "POST",
  headers: {
    apiKey: "your_api_key_here",
    secretKey: "your_secret_key_here",
    TokenExpiryMinutes: "1000",
  },
});

const data = await response.json();
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://auth.ipospays.tech/v1/authenticate-token", nil)
	req.Header.Set("apiKey", "your_api_key_here")
	req.Header.Set("secretKey", "your_secret_key_here")
	req.Header.Set("TokenExpiryMinutes", "1000")

	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()

	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
import requests

response = requests.post(
    "https://auth.ipospays.tech/v1/authenticate-token",
    headers={
        "apiKey": "your_api_key_here",
        "secretKey": "your_secret_key_here",
        "TokenExpiryMinutes": "1000",
    },
)

print(response.json())
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://auth.ipospays.tech/v1/authenticate-token"))
    .header("apiKey", "your_api_key_here")
    .header("secretKey", "your_secret_key_here")
    .header("TokenExpiryMinutes", "1000")
    .POST(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://auth.ipospays.tech/v1/authenticate-token");
request.Headers.Add("apiKey", "your_api_key_here");
request.Headers.Add("secretKey", "your_secret_key_here");
request.Headers.Add("TokenExpiryMinutes", "1000");

var response = await client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
{
  "responseCode": "00",
  "responseMessage": "Success",
  "createdDt": "1749532846158",
  "token": "Your Auth Token"
}

Last updated on September 8, 2026