thai-bank-transfer-qr
v0.3.0
Published
Thai bank transfer QR payload builder (PromptPay – Tag 29 + CRC16)
Maintainers
Readme
thai-bank-transfer-qr
Minimal, dependency-free Thai bank transfer QR payload builder (PromptPay / Tag 29 + CRC16-CCITT).
Install
npm install thai-bank-transfer-qrUsage
import buildThaiQRBankTransfer from "thai-bank-transfer-qr"
const payload = buildThaiQRBankTransfer({
bankCode: "004", // example only
accountNumber: "1234567890", // example only
amount: 10,
})
console.log(payload)PromptPay phone number QR (Tag 29 subtag 01, amount optional):
import { buildThaiQRPromptPayPhone } from "thai-bank-transfer-qr"
const phonePayload = buildThaiQRPromptPayPhone({
phoneNumber: "+66 81 234 5678", // accepts +66 / 66 / 0-leading
amount: 25.5, // optional; omit for open amount
})
console.log(phonePayload)API
- buildThaiQRBankTransfer(options)
- bankCode: string (3 digits)
- accountNumber: string (digits only)
- amount: number|string (formatted to 2 decimals)
- buildThaiQRPromptPayPhone(options)
- phoneNumber: string|number (Thai mobile in +66 / 66 / 0 format)
- amount?: number|string (optional fixed amount; omit to allow payer entry)
- Validators (throw on invalid input):
- validateBankCode(bankCode)
- validateAccountNumber(accountNumber)
- validateAmount(amount)
- validateOptionalAmount(amount) // returns null if empty/undefined
- validatePhoneNumber(phoneNumber) // returns normalized 0066 + 9 digits
Also exports: tlv, crc16CCITT.
License
MIT
