SaligPay uses OAuth 2.0 client credentials flow for API authentication. Merchants register to receive client credentials, then exchange them for JWT access tokens used in API requests.
Authentication Flow
Code
Your Server SaligPay OAuth SaligPay API │ │ │ ├── POST /oauth ────────►│ │ │ authenticate │ │ │◄── access_token ───────┤ │ │ │ │ ├── GET /api/checkout ────────────────────────────►│ │ Authorization: Bearer <token> │ │◄── 200 OK ──────────────────────────────────────┤
Quick Start
Step 1: Register a Merchant (Admin Only)
Code
import { SaligPay } from "saligpay-node";const saligpay = new SaligPay({ adminKey: process.env.SALIGPAY_ADMIN_KEY!, env: "sandbox",});const result = await saligpay.auth.loginAndRetrieveCredentials( "merchant@example.com", "secure-password",);console.log("Client ID:", result.credentials.clientId);console.log("Client Secret:", result.credentials.clientSecret);
// Check if still authenticatedif (saligpay.isAuthenticated()) { console.log("Token is valid");}// Auto-refresh if expiredawait saligpay.ensureAuthenticated();
Error Handling
Error
Cause
Solution
Invalid credentials
Wrong client ID or secret
Verify credentials
Token expired
Access token expired
Call ensureAuthenticated()
Invalid refresh token
Refresh token expired
Re-authenticate
Best Practices
Store credentials securely (environment variables, secret managers)
Never expose credentials in client-side code
Use ensureAuthenticated() before API calls for auto-refresh
Implement token refresh logic for long-running processes