Kotchasan Framework Documentation

Kotchasan Framework Documentation

Promptpay

EN 05 Feb 2026 07:54

Promptpay

\Kotchasan\Promptpay creates PromptPay QR Code payload for payments in Thailand.

Creation

use Kotchasan\Promptpay;

// With phone number
$promptpay = Promptpay::create('0812345678');

// With amount
$promptpay = Promptpay::create('0812345678', 100.50);

// With National ID
$promptpay = Promptpay::create('1234567890123');

Methods

create()

Create Promptpay object.

$promptpay = Promptpay::create($merchant_id, $amount = null);
Parameter Type Description
$merchant_id string Phone number (10 digits) or National ID (13 digits)
$amount float\|null Amount (optional)

payload()

Generate payload for QR Code.

$promptpay = Promptpay::create('0812345678', 100);
$payload = $promptpay->payload();
// returns: "00020101021129370016A000000677010111..."

Usage Examples

QR Code with Amount

use Kotchasan\Promptpay;
use Kotchasan\Barcode;

$promptpay = Promptpay::create('0812345678', 500.00);
$payload = $promptpay->payload();

// Create QR Code image
$qrcode = Barcode::create($payload, Barcode::QR_CODE);
$qrcode->save('payment_qr.png');

QR Code without Amount

$promptpay = Promptpay::create('0812345678');
$payload = $promptpay->payload();

// Payer enters amount via banking app

Use with E-Wallet ID

// Supports E-Wallet ID
$promptpay = Promptpay::create('ewallet_id_here', 1000);
$payload = $promptpay->payload();

Display in HTML

use Kotchasan\Promptpay;

$promptpay = Promptpay::create('0812345678', 299.00);
$payload = $promptpay->payload();

// Use with JavaScript QR library
echo '<div id="qrcode" data-payload="' . htmlspecialchars($payload) . '"></div>';

EMV QR Code Specification

Payload conforms to EMV® QR Code Standard for PromptPay:

00020101021129370016A000000677010111011300661234567895802TH530376463047CC1
Field Description
00 Payload Format Indicator
01 Point of Initiation Method
29 Merchant Account Information (PromptPay)
58 Country Code (TH)
53 Currency Code (764 = THB)
54 Transaction Amount
63 CRC Checksum
  • Barcode - Create QR Code from payload