import crypto from 'crypto';
import { v4 as uuidv4 } from 'uuid';
function generateSignature(accessId, accessSecret) {
// Generate request ID and timestamp
const requestId = uuidv4();
const timeStamp = new Date().toISOString();
// Create the payload to sign
const payload = {
timeStamp: timeStamp,
requestId: requestId,
accessId: accessId
};
// Generate HMAC-SHA256 signature
const hmac = crypto.createHmac('sha256', accessSecret);
hmac.update(JSON.stringify(payload));
const signature = hmac.digest('base64');
return {
'x-access-id': accessId,
'x-request-id': requestId,
'x-timestamp': timeStamp,
'authorization': signature,
'Content-Type': 'application/json'
};
}
// Usage
const accessId = 'YOUR_ACCESS_ID';
const accessSecret = 'YOUR_ACCESS_SECRET';
const headers = generateSignature(accessId, accessSecret);
console.log('Headers:', headers);
// Make API request
const response = await fetch('https://secureapi.tender.cash/v1/api/agent/create', {
method: 'POST',
headers: headers,
body: JSON.stringify({
firstName: 'John',
lastName: 'Doe',
email: 'john@example.com',
phoneNumber: '1234567890',
location: 'Lagos',
address: '123 Main Street',
country: 'Nigeria'
})
});
const data = await response.json();
console.log('Response:', data);