kra-etims-sdk
Version:
Kenya Revenue Authority (KRA) Electronic Tax Invoice Management System (eTims) API Integration SDK
44 lines (38 loc) • 1.24 kB
JavaScript
/**
* Initialization Service for KRA eTims SDK
* Handles initialization operations with the KRA eTims API
*/
const apiService = require('./api.service');
const config = require('../config');
const logger = require('../utils/logger');
const { validate, schemas } = require('../utils/validation');
class InitializationService {
/**
* Initialize OSDC Info
* @param {Object} data - Initialization data
* @param {string} data.tin - Taxpayer Identification Number
* @param {string} data.bhfId - Branch ID
* @param {string} data.dvcSrlNo - Device Serial Number
* @returns {Promise<Object>} - Initialization response
*/
async selectInitOsdcInfo(data) {
try {
logger.info('Initializing OSDC Info');
// Validate data
const validatedData = validate(data, schemas.initialization);
// Make API request
const response = await apiService.post(
config.endpoints.initialization.selectInitOsdcInfo,
validatedData
);
return {
success: true,
data: response
};
} catch (error) {
logger.error(`Initialization error: ${error.message}`);
throw error;
}
}
}
module.exports = new InitializationService();