Business Client need Software Development
Contact person: Business Client
Phone:Show
Email:Show
Location: Riyadh, Saudi Arabia
Budget: Recommended by industry experts
Time to start: As soon as possible
Project description:
"Hello,
I’m looking for a Node.js (TypeScript) developer to implement a backend module for Saudi E-Invoicing (ZATCA) requirements.
The goal is to build a clean, organized, and fully functional backend code that performs the two main phases of the ZATCA E-Invoicing system (Phase 2 – Integration):
Onboarding and CSID certificate generation.
Invoice creation, signing, and submission to ZATCA (Sandbox & Production).
Phase 1 – Onboarding and Certificate Registration
The code should:
Generate a Private Key and a CSR (Certificate Signing Request).
Call ZATCA Onboarding API to register the device/system.
Handle the OTP verification process:
Prompt the user to input the OTP sent by ZATCA.
Submit the OTP to obtain the CSID (Cryptographic Stamp Identifier) and digital certificate.
Securely store the CSID and private key for signing future invoices.
Phase 2 – Invoice Generation and Submission
Generate an XML invoice (UBL 2.1) fully compliant with ZATCA’s requirements, including digital signature.
Generate a PDF/A-3 version of the invoice containing:
The embedded XML.
A QR code following ZATCA’s QR structure.
Submit the signed invoice to ZATCA APIs for both:
Sandbox environment (for testing).
Production environment (for live issuance).
Receive and process the ZATCA response (Accepted / Rejected) and log it.
Technical Requirements
Built with Node.js (TypeScript).
Must be fully compatible with Node.js version 20 or higher.
Organized folder structure: Config / Services / Utils / Routes.
Use stable libraries:
axios, xml2js or fast-xml-parser, node-forge, pdf-lib, dotenv.
Well-documented and clearly commented.
Deliverables
Complete project code (Node.js + TypeScript).
Working examples:
A valid XML invoice accepted by ZATCA Sandbox.
A PDF/A-3 file containing the embedded XML.
Successful onboarding result with CSID issuance.
A detailed [login to view URL] with setup and execution instructions.
Local Testing Requirement
The project must include a ready-to-run test script that:
Generates a sample invoice.
Digitally signs it.
Submits it to ZATCA Sandbox.
Logs the result (Accepted / Rejected) to the console.
Notes
No frontend or UI required.
The goal is clean, modular, and reusable backend code.
Open-source references are allowed, but the code must be written from scratch and well-structured.
Developers with previous experience in ZATCA or E-Invoicing integration projects are highly preferred." (client-provided description)
Matched companies (7)

TechGigs LLP

SJ Solutions & Infotech

Appsdiary Technologies

WhizzAct Private Limited

JanakiBhuvi Tech Labs Private Limited

Codetreasure Co
