Promptparse
All-in-one JS library for PromptPay & EMVCo QR Codes
Install / Use
/learn @maythiwat/PromptparseREADME
PromptParse 
"All-in-one JS library for PromptPay & EMVCo QR Codes"
No dependency & Cross-platform. You can use it anywhere (Node.js, Deno, Bun), even in the browser!
Features
- Parse — PromptPay & EMVCo QR Code data strings into object
- Generate — QR Code data from pre-made templates (for example: PromptPay AnyID, PromptPay Bill Payment, TrueMoney, etc.)
- Manipulate — any values from parsed QR Code data (for example: transfer amount, account number) and encodes back into QR Code data
- Validate — checksum and data structure for known QR Code formats (for example: Slip Verify API Mini QR)
Usage
Parsing data and get value from tag
import { parse } from 'promptparse'
// Example data
const ppqr = parse('000201010211...')
// Get Value of Tag ID '00'
ppqr.getTagValue('00') // Returns '01'
Build QR data and append CRC tag
import { encode, tag, withCrcTag } from 'promptparse'
// Example data
const data = [
tag('00', '01'),
tag('01', '11'),
// ...
]
// Set CRC Tag ID '63'
withCrcTag(encode(data), '63') // Returns '000201010211...'
Generate PromptPay Bill Payment QR
import { billPayment } from 'promptparse/generate'
const payload = billPayment({
billerId: '1xxxxxxxxxxxx',
amount: 300.0,
ref1: 'INV12345',
})
// TODO: Create QR Code from payload
Validate & extract data from Slip Verify QR
import { slipVerify } from 'promptparse/validate'
const data = slipVerify('00550006000001...')
if (!data) {
console.error('Invalid Payload')
}
const { sendingBank, transRef } = data
// TODO: Inquiry transaction from Bank Open API
Convert BOT Barcode to PromptPay QR Tag 30 (Bill Payment)
import { parseBarcode } from 'promptparse'
const botBarcode = parseBarcode('|310109999999901\r...')
if (!botBarcode) {
console.error('Invalid Payload')
}
const payload = botBarcode.toQrTag30()
// TODO: Create QR Code from payload
Use on browser via CDN
<script src="https://cdn.jsdelivr.net/npm/promptparse"></script>
<script>
;(function () {
// Generate QR code payload (use function from "promptparse" global)
const payload = promptparse.generate.trueMoney({
mobileNo: '08xxxxxxxx',
amount: 10.0,
message: 'Hello World!',
})
// Quick & dirty way to show QR Code image
document.write(
`<img src="https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=${payload}">`,
)
})()
</script>
References
See also
- phoomin2012/promptparse-php PromptParse port for PHP
License
This project is MIT licensed (see LICENSE.md)
Related Skills
node-connect
352.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
352.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
352.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
