Skip to content

Every digit means something.

Check and decode NIK, NPWP, phone numbers, plates and region codes. For Go, TypeScript, the terminal and AI agents. Runs offline.

32Province
Jawa Barat
73Regency or city
Kota Bandung
27District
Gedebage
570590Birth date and sex
17 May 1990, female (day + 40)
1349Serial number

Well-formed

package main
import (
"fmt"
"github.com/haikalmumtaz233/nusaindex/nik"
"github.com/haikalmumtaz233/nusaindex/phone"
"github.com/haikalmumtaz233/nusaindex/rupiah"
)
func main() {
person, err := nik.Parse("3273275705901349")
if err == nil {
fmt.Println(person.BirthDate, person.Sex)
}
mobile, err := phone.Parse("0859-5257-171")
if err == nil {
fmt.Println(mobile.E164, mobile.Brand)
}
words, err := rupiah.Terbilang(1_500_000*rupiah.Rupiah + 50*rupiah.Sen)
if err == nil {
fmt.Println(words)
}
}
Output
1990-05-17 female
+628595257171 XL
satu juta lima ratus ribu rupiah lima puluh sen
  • Offline. No network calls, logging, or telemetry. Input never leaves your app.
  • Traceable. Every dataset names its regulation and source document in data/manifest.json.
  • Unofficial. Not affiliated with Dukcapil, DJP, Komdigi, Polri, Bank Indonesia, or any government agency. Valid means well-formed, not real or owned by anyone.