UNPKG

kra-etims-sdk

Version:

Kenya Revenue Authority (KRA) Electronic Tax Invoice Management System (eTims) API Integration SDK

49 lines (43 loc) 1.43 kB
/** * Purchase Service for KRA eTims SDK * Handles purchase 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 PurchaseService { /** * Get purchase transaction information * @param {Object} data - Request data * @param {string} data.tin - Taxpayer Identification Number * @param {string} data.bhfId - Branch ID * @param {string} data.lastReqDt - Last Request Date * @returns {Promise<Object>} - Purchase transaction response */ async selectPurchaseTrns(data) { try { logger.info('Getting purchase transaction information'); // Validate data const validatedData = validate(data, schemas.taxpayerInfo); // Reusing schema as structure is similar // Make API request const response = await apiService.post( config.endpoints.purchaseManagement.selectPurchaseTrns, validatedData, { tin: validatedData.tin, bhfId: validatedData.bhfId, cmcKey: data.cmcKey // Optional } ); return { success: true, data: response }; } catch (error) { logger.error(`Get purchase transaction error: ${error.message}`); throw error; } } } module.exports = new PurchaseService();