Skip to main content

Transaction Code Generator

Panduan lengkap Transaction Code Generator untuk membuat kode transaksi yang human-readable, unique, dan verifiable.

🎯 Overview

Transaction Code adalah identifier yang:
  • Human-Readable - Mudah dibaca dan diketik
  • Unique - Unik per merchant-branch-date
  • Verifiable - Memiliki checksum untuk validasi
  • Sortable - Tersortir by date & sequence
  • Compact - Relatif pendek (~30 karakter)
Package: pkg/utils/txcode/txcode.go

📊 Code Structure

Format

Components:
  1. Merchant Code (2-4 chars): Kode merchant
  2. Branch Code (2-4 chars): Kode cabang
  3. Date (6 chars): YYMMDD format
  4. Sequence (3-5 chars): Base36 sequence number
  5. Random (4 chars): Crockford Base32 random
  6. Checksum (1 char): Mod10 checksum

Example Codes

Real Examples:

🚀 Quick Start

1. Generate Transaction Code


2. With Auto Sequence


📝 Usage Examples

Transaction Service


Order Service


Invoice Service


🎨 Code Components

1. Merchant Code

Format: 2-4 uppercase alphanumeric characters Examples:
Usage:

2. Branch Code

Format: 2-10 uppercase alphanumeric characters (with hyphens) Examples:
Usage:

3. Date (YYMMDD)

Format: 6-digit date Examples:
Usage:

4. Sequence (Base36)

Format: 3-5 character Base36 (0-9, A-Z) Capacity:
  • 3 chars: 46,656 codes (36³)
  • 4 chars: 1,679,616 codes (36⁴)
  • 5 chars: 60,466,176 codes (36⁵)
Examples:
Usage:

5. Random (Crockford Base32)

Format: 4-character Crockford Base32 Alphabet: 0123456789ABCDEFGHJKMNPQRSTVWXYZ (no I, L, O, U) Purpose: Prevent guessing & add uniqueness Examples:
Capacity: 32⁴ = 1,048,576 combinations

6. Checksum (Mod10)

Format: Single digit (0-9) Purpose: Detect typos & validate code Algorithm: Mod10 over all alphanumeric characters Examples:

🔧 Validation

Validate Checksum


Parse Components


📊 Database Schema

Store Transaction Code


Sequence Management


Get Next Sequence


🎯 Best Practices

1. Use Consistent Codes


2. Validate Before Save


3. Handle Sequence Atomically


4. Index Transaction Codes


🔍 Troubleshooting

Duplicate Codes

Problem: Same code generated twice Cause: Sequence not atomic or clock skew Solution:

Invalid Checksum

Problem: Code fails validation Cause: Manual typo or data corruption Detection:

Sequence Reset

Problem: Sequence resets unexpectedly Cause: Date change or database issue Prevention:

Snowflake ID Generator

Distributed unique ID generation

Transaction Flow

Complete transaction flow

Database Schema

Database schema & indexes

Transaction Codes: Digunakan untuk display & customer-facing references. Internal ID menggunakan Snowflake IDs untuk uniqueness.