mirror of
				https://github.com/juspay/hyperswitch.git
				synced 2025-11-04 14:07:18 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			110 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
---
 | 
						||
title: Authentication Types
 | 
						||
description: Overview of authentication types and authorization keys available in Hyperswitch.
 | 
						||
---
 | 
						||
 | 
						||
import Note from '@site/src/components/Note'
 | 
						||
import Table from '@site/src/components/Table'
 | 
						||
import Check from '@site/src/components/Check'
 | 
						||
 | 
						||
Hyperswitch supports multiple API key types, each designed for different authentication and authorization use cases.
 | 
						||
 | 
						||
<Note>
 | 
						||
For security, **never expose secret or admin keys in client-side or mobile code**. Use publishable keys for public contexts.
 | 
						||
</Note>
 | 
						||
 | 
						||
## 1. API Key (Secret Key)
 | 
						||
 | 
						||
- **Primary merchant authentication key for server-side API requests.**
 | 
						||
- Environment-specific prefix (`snd_`, `prod_`, etc.).
 | 
						||
- Used for server to server requests.
 | 
						||
- This key can be **generated and managed from the [Hyperswitch dashboard (sandbox)](https://app.hyperswitch.io/developers?tabIndex=1)**.
 | 
						||
 | 
						||
- **Never expose this key in public code.**
 | 
						||
 | 
						||
## 2. Admin API Key
 | 
						||
 | 
						||
- **Administrative key** with elevated privileges.
 | 
						||
- Used for system-level operations such as creating merchant and connector accounts.
 | 
						||
- Should only be used in secure, internal workflows.
 | 
						||
- Some API calls require an admin API key. **Do not confuse this with a regular API Key.**
 | 
						||
- The **admin API key is a configuration value that can be set at the time of deploying the Hyperswitch server**.
 | 
						||
- **Admin API keys for the hosted Hyperswitch environments (sandbox/production) are managed by Juspay and are not provided publicly.**
 | 
						||
 | 
						||
<Check>
 | 
						||
You do **not** generate this key from the dashboard.  
 | 
						||
Instead, **set your Admin API Key in your deployment configuration**:
 | 
						||
 | 
						||
**For Docker Compose:**  
 | 
						||
Update the value in your `docker_compose.toml` file:
 | 
						||
</Check>
 | 
						||
 | 
						||
```toml
 | 
						||
# docker_compose.toml
 | 
						||
admin_api_key = "your_admin_key_here"
 | 
						||
```
 | 
						||
<Check> **For Helm Chart deployments:** Set the admin API key in your `values.yaml` file. </Check>
 | 
						||
 | 
						||
```yaml
 | 
						||
# values.yaml
 | 
						||
adminApiKey: your_admin_key_here
 | 
						||
```
 | 
						||
<Note> Do **not** expose your admin API key publicly. Only trusted entities and trusted applications should have access to this value. </Note>
 | 
						||
 | 
						||
Check the Docker Compose example for extra clarity:
 | 
						||
[See example in the Hyperswitch repository](https://github.com/juspay/hyperswitch/blob/main/config/docker_compose.toml)
 | 
						||
 | 
						||
 | 
						||
## 3. Publishable Key
 | 
						||
 | 
						||
- **Client-side key** with limited permissions.
 | 
						||
- Safe for use in public client-side (web or mobile) code.
 | 
						||
- Prefix: `pk_{environment}_{uuid}`.
 | 
						||
- Generated during merchant account creation.
 | 
						||
 | 
						||
## 4. Ephemeral Key
 | 
						||
 | 
						||
- **Temporary key** for limited operations.
 | 
						||
- Used for single or short-lived access (e.g., accessing a specific customer object).
 | 
						||
- Validity is configurable (see `[eph_key] validity` in `development.toml`).
 | 
						||
 | 
						||
## 5. JWT Key
 | 
						||
 | 
						||
- **JWT Bearer Token** used for API authentication and session management.  
 | 
						||
- Required for certain JWT-protected endpoints and user authentication flows.  
 | 
						||
- Format: `Authorization: Bearer <jwt_token>`
 | 
						||
 | 
						||
### When to Use
 | 
						||
 | 
						||
JWT tokens are primarily used by the Hyperswitch Control Center front end to authenticate API requests. You generally do **not** need to manage or use JWTs unless:
 | 
						||
 | 
						||
- You’re building a **custom front end** that replaces the Control Center, or  
 | 
						||
- You’re a developer **testing APIs directly** (e.g., using Postman or running the server without the UI).
 | 
						||
 | 
						||
For most users interacting through the Control Center UI, JWTs are handled automatically and do not need to be generated or included manually.
 | 
						||
 | 
						||
> **Note:**  
 | 
						||
> JWTs are **not provisioned via the Hyperswitch dashboard**.  
 | 
						||
> They are typically **issued during an authentication flow**, such as during login or session creation.
 | 
						||
 | 
						||
```http
 | 
						||
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
 | 
						||
```
 | 
						||
<Note> Keep your JWT tokens secure. Do not expose them in client-side code unless specifically required for session management, and always use HTTPS when transmitting JWTs. </Note>
 | 
						||
 | 
						||
## Reference Table
 | 
						||
 | 
						||
<Table>
 | 
						||
| Key Type         | Example Prefix        | Usage                        | Security                |
 | 
						||
|------------------|----------------------|------------------------------|-------------------------|
 | 
						||
| Secret (API Key) | snd_c69***, prod_*** | Backend server API requests  | Keep secret             |
 | 
						||
| Admin API Key    | (admin-specific)     | Admin operations             | Highly confidential     |
 | 
						||
| Publishable Key  | pk_snd_3b3***        | Client-side, public usage    | Safe to expose          |
 | 
						||
| Ephemeral Key    | (short-lived)        | Temporary, limited access    | Short validity, limited |
 | 
						||
| JWT Key          | (JWT Bearer)         | Session/user authentication  | Control center calls         |
 | 
						||
</Table>
 | 
						||
 | 
						||
<Check>
 | 
						||
Get your [API Key](https://app.hyperswitch.io/developers?tabIndex=1) and [Publishable Key](https://app.hyperswitch.io/home) from the Hyperswitch dashboard.
 | 
						||
</Check>
 | 
						||
--- |