ðŸ“Ą SMS Webhook API

āļ„āļđāđˆāļĄāļ·āļ­āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™ API āļŠāļģāļŦāļĢāļąāļšāļĢāļąāļš Webhook āđāļˆāđ‰āļ‡āđ€āļ•āļ·āļ­āļ™āļāļēāļĢāļŠāļģāļĢāļ°āđ€āļ‡āļīāļ™āļœāđˆāļēāļ™ SMS

API āļ™āļĩāđ‰āđƒāļŦāđ‰āļšāļĢāļīāļāļēāļĢāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ QR Code āļžāļĢāđ‰āļ­āļĄāđ€āļžāļĒāđŒ, āļĒāļāđ€āļĨāļīāļāļ˜āļļāļĢāļāļĢāļĢāļĄ, āđāļĨāļ°āļ•āļĢāļ§āļˆāļŠāļ­āļšāļŠāļ–āļēāļ™āļ°āļ˜āļļāļĢāļāļĢāļĢāļĄ

  • Base URL: https://paynoi.com/ppay_api
  • Content-Type: application/json
  • Authentication: āđƒāļŠāđ‰ api_key āļˆāļēāļāļ•āļēāļĢāļēāļ‡ users

āļŠāļģāļ„āļąāļ! āļāđˆāļ­āļ™āđƒāļŠāđ‰āļ‡āļēāļ™

  • āđ€āļ›āļīāļ”āļāļēāļĢāđāļˆāđ‰āļ‡āđ€āļ•āļ·āļ­āļ™ SMS Banking āđ€āļ‡āļīāļ™āđ€āļ‚āđ‰āļē āļĄāļēāļ—āļĩāđˆāđ€āļšāļ­āļĢāđŒ 0956511824
1

Create Transaction

āļŠāļĢāđ‰āļēāļ‡āļ˜āļļāļĢāļāļĢāļĢāļĄāļžāļĢāđ‰āļ­āļĄāđ€āļžāļĒāđŒāđāļĨāļ° QR Code āđ‚āļ”āļĒāļĢāļąāļš amount āđ€āļ›āđ‡āļ™āļˆāļģāļ™āļ§āļ™āđ€āļ•āđ‡āļĄ (āļŦāļ™āđˆāļ§āļĒāļšāļēāļ—) āđāļĨāļ° API āļˆāļ°āļŠāļļāđˆāļĄāļ—āļĻāļ™āļīāļĒāļĄ 2 āļ•āļģāđāļŦāļ™āđˆāļ‡ (āđ€āļŠāđˆāļ™ 100 āļšāļēāļ—āļ­āļēāļˆāļāļĨāļēāļĒāđ€āļ›āđ‡āļ™ 100.24 āļšāļēāļ—) ** āļŠāļļāđˆāļĄāđ€āļĢāļīāđˆāļĄāļ•āļąāđ‰āļ‡āđāļ•āđˆ .00-.99

Request POST

Endpoint: /ppay_api

JSON Request
{
    "method": "create",
    "api_key": "your_test_api_key",
    "amount": 100,
    "ref1": "testpay",
    "key_id": "100568",
    "account": "1234567890",
    "type": "1"
}
  • method āļ„āļ‡āļ—āļĩāđˆāđ€āļ›āđ‡āļ™ "create"
  • api_key API key āļˆāļēāļāļ•āļēāļĢāļēāļ‡ users
  • amount āļˆāļģāļ™āļ§āļ™āđ€āļ•āđ‡āļĄ (āļŦāļ™āđˆāļ§āļĒāļšāļēāļ— āđ€āļŠāđˆāļ™ 100)
  • ref1 āļ­āđ‰āļēāļ‡āļ­āļīāļ‡āļ˜āļļāļĢāļāļĢāļĢāļĄ (āđ€āļŠāđˆāļ™ āļĢāļŦāļąāļŠāļ„āļģāļŠāļąāđˆāļ‡āļ‹āļ·āđ‰āļ­)
  • key_id āļĢāļŦāļąāļŠ 6 āļŦāļĨāļąāļāļˆāļēāļ user_settings (āđ€āļŠāđˆāļ™ 100568 āļŠāļģāļŦāļĢāļąāļšāļāļŠāļīāļāļĢ, 100569 āļŠāļģāļŦāļĢāļąāļšāļāļĢāļļāļ‡āļĻāļĢāļĩ, 100570 āļŠāļģāļŦāļĢāļąāļšāđ„āļ—āļĒāļžāļēāļ“āļīāļŠāļĒāđŒ)
  • account āđ€āļĨāļ‚āļ—āļĩāđˆāļžāļĢāđ‰āļ­āļĄāđ€āļžāļĒāđŒ (āđ€āļšāļ­āļĢāđŒāļĄāļ·āļ­āļ–āļ·āļ­ āļŦāļĢāļ·āļ­ āđ€āļĨāļ‚āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™)
  • type āļ›āļĢāļ°āđ€āļ āļ—āļšāļąāļāļŠāļĩ (1: āđ€āļšāļ­āļĢāđŒāļĄāļ·āļ­āļ–āļ·āļ­ āļŦāļĢāļ·āļ­ 2: āđ€āļĨāļ‚āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™)

Response

Success (āļŠāļĄāļĄāļ•āļīāļŠāļļāđˆāļĄāļ—āļĻāļ™āļīāļĒāļĄāđ„āļ”āđ‰ 0.24):

JSON Response
{
    "status": 1,
    "trans_id": "PPAY_123456789",
    "qr_image_base64": "base64_string",
    "amount_check": 10024,
    "amount": "100.24",
    "account": "1234567890", 
    "type": "1",
    "expire_at": "2025-04-28T12:15:00+07:00"
}
  • status 1 (āļŠāļģāđ€āļĢāđ‡āļˆ)
  • trans_id āļĢāļŦāļąāļŠāļ˜āļļāļĢāļāļĢāļĢāļĄāļ—āļĩāđˆāļŠāļĢāđ‰āļēāļ‡
  • qr_image_base64 āļĢāļđāļ› QR Code āđƒāļ™āļĢāļđāļ›āđāļšāļš Base64
  • amount_check āļĒāļ­āļ”āļĢāļ§āļĄ (āļŠāļ•āļēāļ‡āļ„āđŒ āđ€āļŠāđˆāļ™ 10024)
  • amount āļĒāļ­āļ”āļĢāļ§āļĄāļ—āļĩāđˆāļĄāļĩāļ—āļĻāļ™āļīāļĒāļĄ (āļšāļēāļ— āđ€āļŠāđˆāļ™ 100.24)
  • expire_at āđ€āļ§āļĨāļēāļŦāļĄāļ”āļ­āļēāļĒāļļ (ISO 8601)

Error:

JSON Error Response
{
    "status": 0,
    "msg": "āļˆāļģāļ™āļ§āļ™āđ€āļ‡āļīāļ™, ref1, āļŦāļĢāļ·āļ­ key_id āđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡"
}
2

Cancel Transaction

āļĒāļāđ€āļĨāļīāļāļ˜āļļāļĢāļāļĢāļĢāļĄāļ—āļĩāđˆāļ­āļĒāļđāđˆāđƒāļ™āļŠāļ–āļēāļ™āļ° pending āļŦāļĢāļ·āļ­āļŦāļĄāļ”āļ­āļēāļĒāļļ (āđ€āļāļīāļ™ 15 āļ™āļēāļ—āļĩāļˆāļēāļ created_at)

Request POST

Endpoint: /ppay_api

JSON Request
{
    "method": "cancel",
    "api_key": "your_test_api_key",
    "trans_id": "PPAY_123456789"
}
  • method āļ„āļ‡āļ—āļĩāđˆāđ€āļ›āđ‡āļ™ "cancel"
  • api_key API key āļˆāļēāļāļ•āļēāļĢāļēāļ‡ users
  • trans_id āļĢāļŦāļąāļŠāļ˜āļļāļĢāļāļĢāļĢāļĄāļˆāļēāļāļ„āļģāļ‚āļ­ create

Response

Success:

JSON Response
{
    "status": 1
}

Error:

JSON Error Response
{
    "status": 0,
    "msg": "āļ˜āļļāļĢāļāļĢāļĢāļĄāļĒāļąāļ‡āđ„āļĄāđˆāļŦāļĄāļ”āļ­āļēāļĒāļļāđāļĨāļ°āļ­āļĒāļđāđˆāđƒāļ™āļŠāļ–āļēāļ™āļ°āļ—āļĩāđˆāđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āļĒāļāđ€āļĨāļīāļāđ„āļ”āđ‰"
}
3

Check Transaction Status

āļ•āļĢāļ§āļˆāļŠāļ­āļšāļŠāļ–āļēāļ™āļ°āđāļĨāļ°āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ‚āļ­āļ‡āļ˜āļļāļĢāļāļĢāļĢāļĄ

Request POST

Endpoint: /ppay_api

JSON Request
{
    "method": "check",
    "api_key": "your_test_api_key",
    "trans_id": "PPAY_123456789"
}
  • method āļ„āļ‡āļ—āļĩāđˆāđ€āļ›āđ‡āļ™ "check"
  • api_key API key āļˆāļēāļāļ•āļēāļĢāļēāļ‡ users
  • trans_id āļĢāļŦāļąāļŠāļ˜āļļāļĢāļāļĢāļĢāļĄāļˆāļēāļāļ„āļģāļ‚āļ­ create

Response

Success:

JSON Response
{
    "status": 1,
    "trans_id": "PPAY_123456789",
    "amount_check": 10024,
    "amount": "100.24",
    "ref1": "testpay",
    "payment_status": "pending",
    "created_at": "2025-04-28 12:00:00",
    "expire_at": "2025-04-28T12:15:00+07:00",
    "type": "1",
    "key_id": "100568"
}
  • status 1 (āļŠāļģāđ€āļĢāđ‡āļˆ)
  • trans_id āļĢāļŦāļąāļŠāļ˜āļļāļĢāļāļĢāļĢāļĄ
  • amount_check āļĒāļ­āļ”āļĢāļ§āļĄ (āļŠāļ•āļēāļ‡āļ„āđŒ āđ€āļŠāđˆāļ™ 10024)
  • amount āļĒāļ­āļ”āļĢāļ§āļĄāļ—āļĩāđˆāļĄāļĩāļ—āļĻāļ™āļīāļĒāļĄ (āļšāļēāļ— āđ€āļŠāđˆāļ™ 100.24)
  • ref1 āļ­āđ‰āļēāļ‡āļ­āļīāļ‡āļ˜āļļāļĢāļāļĢāļĢāļĄ
  • payment_status āļŠāļ–āļēāļ™āļ°āļāļēāļĢāļŠāļģāļĢāļ°āđ€āļ‡āļīāļ™ (āđ€āļŠāđˆāļ™ pending, completed, failed)
  • created_at āđ€āļ§āļĨāļēāļŠāļĢāđ‰āļēāļ‡
  • expire_at āđ€āļ§āļĨāļēāļŦāļĄāļ”āļ­āļēāļĒāļļ (ISO 8601)
  • type āļŠāļ™āļīāļ”āļžāļĢāđ‰āļ­āļĄāđ€āļžāļĒāđŒ (1 = āđ€āļšāļ­āļĢāđŒāđ‚āļ—āļĢ, 2 = āđ€āļĨāļ‚āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™)
  • key_id āļĢāļŦāļąāļŠ 6 āļŦāļĨāļąāļ (āđ€āļŠāđˆāļ™ 100568)

Error:

JSON Error Response
{
    "status": 0,
    "msg": "āđ„āļĄāđˆāļžāļšāļ˜āļļāļĢāļāļĢāļĢāļĄ"
}

Webhook Notification

āđ€āļĄāļ·āđˆāļ­āļĄāļĩāļāļēāļĢāļŠāļģāļĢāļ°āđ€āļ‡āļīāļ™āļŠāļģāđ€āļĢāđ‡āļˆ API āļˆāļ°āļŠāđˆāļ‡ webhook āđ„āļ›āļĒāļąāļ‡ webhook_url āļ—āļĩāđˆāļāļģāļŦāļ™āļ”āđƒāļ™ user_settings

Webhook Payload

JSON Webhook Payload
{
    "data": {
        "trans_id": "PPAY_123456789",
        "ref1": "testpay",
        "amount_check": 10024,
        "amount": "100.24",
        "transaction_date: "2025-04-28",
		"transaction_time: "12:00:00",
        "status": "1",
        "payment_status": "completed"
    },
    "signature": "hmac_signature"
}
  • data āļ‚āđ‰āļ­āļĄāļđāļĨāļāļēāļĢāļŠāļģāļĢāļ°āđ€āļ‡āļīāļ™
  • signature āļĨāļēāļĒāđ€āļ‹āđ‡āļ™ HMAC-SHA256 (āđƒāļŠāđ‰ api_key āļˆāļēāļ users)

Expected Response

Webhook endpoint āļ•āđ‰āļ­āļ‡āļ•āļ­āļšāļāļĨāļąāļš:

JSON Response
{
    "status": 1
}

PHP Example Code

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ‚āļ„āđ‰āļ” PHP āļŠāļģāļŦāļĢāļąāļšāđ€āļĢāļĩāļĒāļ API āđ‚āļ”āļĒāđƒāļŠāđ‰ cURL

PHP Code
<?php

function callPromptPayApi($method, $data) {
    $url = 'https://paynoi.com/ppay_api';
    $payload = json_encode($data);

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
    curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    return [
        'http_code' => $httpCode,
        'response' => json_decode($response, true)
    ];
}

// āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡: Create Transaction
$createData = [
    'method' => 'create',
    'api_key' => 'your_test_api_key',
    'amount' => 100,
    'ref1' => 'testpay',
    'key_id' => '100568',
    'account' => '1234567890',
    'type' => '1'
];
$result = callPromptPayApi('create', $createData);
echo "Create Response: " . print_r($result, true) . "\n";

// āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡: Cancel Transaction
$cancelData = [
    'method' => 'cancel',
    'api_key' => 'your_test_api_key',
    'trans_id' => 'PPAY_123456789'
];
$result = callPromptPayApi('cancel', $cancelData);
echo "Cancel Response: " . print_r($result, true) . "\n";

// āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡: Check Transaction
$checkData = [
    'method' => 'check',
    'api_key' => 'your_test_api_key',
    'trans_id' => 'PPAY_123456789'
];
$result = callPromptPayApi('check', $checkData);
echo "Check Response: " . print_r($result, true) . "\n";

?>

āļŦāļĄāļēāļĒāđ€āļŦāļ•āļļ

āļ‚āđ‰āļ­āļ„āļ§āļĢāļ—āļĢāļēāļš

  • Amount: āļŠāđˆāļ‡āđ€āļ›āđ‡āļ™āļˆāļģāļ™āļ§āļ™āđ€āļ•āđ‡āļĄ (āļšāļēāļ— āđ€āļŠāđˆāļ™ 100) API āļˆāļ°āļŠāļļāđˆāļĄāļ—āļĻāļ™āļīāļĒāļĄ 2 āļ•āļģāđāļŦāļ™āđˆāļ‡ (āđ€āļŠāđˆāļ™ 0.24) āļ—āļģāđƒāļŦāđ‰āđ„āļ”āđ‰āļĒāļ­āļ”āļĢāļ§āļĄāđ€āļŠāđˆāļ™ 100.24 āļšāļēāļ—
  • Key ID: āđƒāļŠāđ‰ 100568 (āļāļŠāļīāļāļĢ) āļŦāļĢāļ·āļ­ 100569 (āļāļĢāļļāļ‡āļĻāļĢāļĩ) āļŦāļĢāļ·āļ­ 100570 (āđ„āļ—āļĒāļžāļēāļ“āļīāļŠāļĒāđŒ) āļˆāļēāļ user_settings
  • Security: āđƒāļŠāđ‰ HTTPS āđāļĨāļ°āđ€āļāđ‡āļš api_key āļ­āļĒāđˆāļēāļ‡āļ›āļĨāļ­āļ”āļ āļąāļĒ
  • Logs: āļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāļšāļąāļ™āļ—āļķāļāđƒāļ™ logs/app.log

āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļē user_settings āļŦāļĢāļ·āļ­āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļ˜āļ™āļēāļ„āļēāļĢ āļāļĢāļļāļ“āļēāļ•āļīāļ”āļ•āđˆāļ­āļ—āļĩāļĄāļžāļąāļ’āļ™āļē