UNPKG

zatca-phase2

Version:

ZATCA Phase 2 e-invoicing integration for Node.js

66 lines (53 loc) 1.93 kB
/** * Example: Verify certificate with CSID * * Usage: node verify-certificate.js <requestId> <csid> <certificateId> */ const zatca = require('../lib'); const fs = require('fs').promises; const path = require('path'); async function verifyCertificate(requestId, csid, certificateId) { try { console.log(`Verifying certificate for request ${requestId} with CSID ${csid}...`); // Verify certificate const response = await zatca.api.verifyCertificate(requestId, csid); if (!response.certificate) { console.error('No certificate in response from ZATCA'); process.exit(1); } console.log('\nCertificate received from ZATCA'); // Store certificate await zatca.certificate.storeCertificate( certificateId, response.certificate, 'compliance' ); console.log('\nCertificate verified and stored successfully!'); console.log('You can now use this certificate for invoice submission'); // Save compliance certificate to output directory const outputDir = path.join(__dirname, 'output'); await fs.mkdir(outputDir, { recursive: true }); await fs.writeFile( path.join(outputDir, 'compliance-certificate.pem'), response.certificate ); console.log('\nCertificate saved to examples/output/compliance-certificate.pem'); console.log('\nNext step: Submit an invoice using:'); console.log(`node submit-invoice.js ${certificateId}`); return response; } catch (error) { console.error('Failed to verify certificate:', error); process.exit(1); } } // Run if called directly if (require.main === module) { // Get command line arguments const args = process.argv.slice(2); if (args.length < 3) { console.error('Usage: node verify-certificate.js <requestId> <csid> <certificateId>'); process.exit(1); } verifyCertificate(args[0], args[1], args[2]); } module.exports = verifyCertificate;