Documentation

Explore our comprehensive guide to using Makhtoom effectively.

How to upload and secure your PDFs

Important: We do not store any of your files. All document processing is done in real-time and files are immediately discarded after verification.

  • 1Select your PDF document using the upload button or drag and drop interface
  • 2Wait for the secure verification process to complete
  • 3Download your verified document with the QR code

Understanding the verification process

Learn about our secure verification process and how it protects your documents.

  • 1Document is processed locally in your browser
  • 2Unique QR code is generated based on document content
  • 3Original document remains unmodified and secure

Interpreting verification results

Understanding your verification results and QR code information.

  • 1Green checkmark indicates successful verification
  • 2QR code contains encrypted document signature
  • 3Use our mobile app to scan and verify documents offline

Integration guidelines for developers

Integrate our document verification system into your application using our REST APIs. All processing is done locally and no files are stored on our servers. Follow these examples to get started:

JavaScript Example

1// 1. Upload and verify PDF
2const formData = new FormData();
3formData.append('pdfFile', file);
4
5const response = await fetch('/api/verify', {
6  method: 'POST',
7  body: formData
8});
9
10const result = await response.json();
11// Returns: { success: true, uid: 'doc_123' }
12
13// 2. Check document status
14const info = await fetch('/api/getFileInfo?uid=' + result.uid);
15const data = await info.json();
16// Returns: {
17//   verified: true,
18//   hash: '1a2b3c...',
19//   timestamp: '2024-01-20...',
20//   issuer: 'Company Name'
21// }

Java Spring Boot Example (For Banking Systems)

1@RestController
2@RequestMapping("/bank/statements")
3public class StatementVerificationController {
4
5    @Autowired
6    private DocumentVerificationService verificationService;
7
8    @PostMapping("/verify")
9    public ResponseEntity<VerificationResponse> verifyStatement(
10        @RequestParam("file") MultipartFile statement,
11        @RequestHeader("X-Bank-ID") String bankId
12    ) {
13        try {
14            // 1. Verify the statement
15            VerificationResult result = verificationService.verifyDocument(
16                statement.getBytes(),
17                bankId
18            );
19
20            // 2. Log verification attempt for audit
21            auditLogger.logVerification(
22                statement.getOriginalFilename(),
23                bankId,
24                result.getUid()
25            );
26
27            return ResponseEntity.ok(new VerificationResponse(
28                result.isVerified(),
29                result.getUid(),
30                result.getTimestamp()
31            ));
32
33        } catch (Exception e) {
34            log.error("Statement verification failed", e);
35            return ResponseEntity.status(500)
36                .body(new VerificationResponse(false));
37        }
38    }
39
40    @GetMapping("/status/{uid}")
41    public ResponseEntity<StatementInfo> getStatementInfo(
42        @PathVariable String uid,
43        @RequestHeader("X-Bank-ID") String bankId
44    ) {
45        StatementInfo info = verificationService.getInfo(uid, bankId);
46        return ResponseEntity.ok(info);
47    }
48}

Frequently Asked Questions (FAQs)

What file types are supported?

Currently, we support PDF documents. All files are processed locally and are never stored on our servers.

How secure is the QR code verification?

Our QR codes use advanced encryption to ensure document authenticity. The verification process is completely secure and can be done offline.

Can I verify documents offline?

Yes, you can verify documents offline using our mobile app. Simply scan the QR code to check document authenticity.

Detailed Instructions

  • How to upload and secure your PDFs
  • Understanding the verification process
  • Interpreting verification results
  • Integration guidelines for developers
  • Frequently Asked Questions (FAQs)