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 and includes document UUID for verification
  • 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 a direct link to the document verification page with its unique identifier (UUID).
  • 3Scanning the QR code opens the verification page specific to your document

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. Each document is assigned a unique identifier (UUID) that's embedded in the QR code URL. 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}

QR Code Positioning Guide

Learn how to properly position QR codes on your documents and how to align them using a blank PDF template.

Aligning QR Codes with a Blank PDF

You can create a template for consistent QR code placement across your documents by using a blank PDF as a guide:

  1. Create a blank PDF document with the dimensions matching your standard documents.
  2. Process the blank PDF through Makhtoom three times, selecting a different position each time (left, center, right).
  3. Save each version with a descriptive name (e.g., 'template-left.pdf', 'template-center.pdf', 'template-right.pdf').
  4. Use these templates as a visual guide when deciding which position best suits your document layout.

Left Position

Center Position

Right Position

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. Each QR code contains a direct link to the document's verification page using its unique identifier (UUID). The verification process is completely secure and can be done by scanning the QR code with any device.

Can I verify documents offline?

The QR code contains a link to the online verification page for the specific document. When scanned, it will take you directly to the verification page for that document, showing its authenticity status.

Detailed Instructions

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