CAM2 Pay

API Documentation
πŸ€– AI Spec (.md) πŸ“¦ PHP Sample (.zip) πŸ”‘ Sign In / Dashboard
⚑ Production Ready & Official ABA KHQR Standard

CAM2 Pay API Reference

αžŸαŸ’αžœαžΆαž‚αž˜αž“αŸαž˜αž€αž€αžΆαž“αŸ‹αž―αž€αžŸαžΆαžšαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž•αŸ’αž›αžΌαžœαž€αžΆαžšαžšαž”αžŸαŸ‹ CAM2 Pay (cam2.cc)αŸ” αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž•αŸ’αž‚αžαŸ‹αž•αŸ’αž‚αž„αŸ‹ API αž”αž„αŸ’αž€αžΎαž Dynamic ABA KHQR αž₯αžαžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹ αž‚αžΆαŸ†αž‘αŸ’αžšαž‘αžΆαŸ†αž„ Web Redirect, Popup Modal, Mobile App, Telegram Bot αž“αž·αž„ Instant Webhook CallbackαŸ”

1

αž™αž€ Profile ID & Secret Key

αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‚αžŽαž“αžΈ Merchant αž›αžΎ CAM2 Pay αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“ Profile ID (API Key) αž“αž·αž„ Secret Key αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαž Security Hash SignatureαŸ”

2

αž•αŸ’αž‰αžΎ Request αž”αž„αŸ’αž€αžΎαž Checkout

αž•αŸ’αž‰αžΎ POST request αž‡αžΆαž˜αž½αž™ Amount αž“αž·αž„ Order ID αž˜αž€αž€αžΆαž“αŸ‹ Endpoint αžšαž”αžŸαŸ‹ CAM2 Pay αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“ Dynamic KHQR ឬ Checkout URL αž—αŸ’αž›αžΆαž˜αŸ—αŸ”

3

αž‘αž‘αž½αž›αžŸαŸ’αž‚αžΆαž›αŸ‹αž€αžΆαžšαž”αž„αŸ‹αž›αž»αž™ (Webhook)

αž“αŸ…αž–αŸαž›αž’αžαž·αžαž·αž‡αž“αžŸαŸ’αž€αŸαž“αž”αž„αŸ‹αž›αž»αž™αž‡αŸ„αž‚αž‡αŸαž™ αž”αŸ’αžšαž–αŸαž“αŸ’αž’ CAM2 Pay αž“αžΉαž„αž”αžΆαž‰αŸ‹ Webhook POST αž˜αž€ Server αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžŠαžΎαž˜αŸ’αž”αžΈ Confirm OrderαŸ”

⚑

API Endpoints & Integration Standards

Profile ID (API Key):
YOUR_PROFILE_ID
Secret Key:
YOUR_SECRET_KEY
Primary Checkout Endpoint:
POST https://cam2.cc/api/payment/checkout/:profile_id
Popup Modal Plugin:
/plugins/cam2-pay.js
πŸ“–

Code Examples & Client SDKs

πŸ“¦ Download PHP Sample (.zip)
PHP SDK (PayWayApiCheckout.php)
Loading code sample...

🟒 Example JSON Response (HTTP 200 OK)

{
  "success": true,
  "status": "success",
  "checkout_url": "https://cam2.cc/pay/SES-1791614907485",
  "session_id": "SES-1791614907485",
  "data": {
    "qr": "00020101021229500016...041005802KH5912CAM2PAY6010PHNOM PENH6304D1B9",
    "qr_url": "https://cam2.cc/api/qr-image/SES-1791614907485",
    "deeplink": "https://link.payway.com.kh/ABAPAYwd542327q?amount=1.00"
  }
}
πŸ“‹

Parameters Specification & Protocol Reference

1. Checkout Request Payload (POST /api/payment/checkout/:profile_id)

αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž•αŸ’αž‰αžΎαž€αŸ’αž“αž»αž„ JSON Body αž–αŸαž›αž αŸ… API αž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαž‘αžΌαž‘αžΆαžαŸ‹αž”αŸ’αžšαžΆαž€αŸ‹αŸ–

Field Name Type Status Description & Example
transaction_id String Required αž›αŸαžαžœαž·αž€αŸ’αž€αž™αž”αžαŸ’αžš ឬ Order ID αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ (ឧ. INV-10023)αŸ” αž˜αž·αž“αžαŸ’αžšαžΌαžœαžŸαŸ’αž‘αž½αž“αž‘αžΎαž™αŸ”
amount String / Float Required αž…αŸ†αž“αž½αž“αž‘αžΉαž€αž”αŸ’αžšαžΆαž€αŸ‹αž‚αž·αžαž‡αžΆ USD (ឧ. 1.00, 2.50)αŸ” αž€αž˜αŸ’αžšαž·αžαž’αž”αŸ’αž”αž”αžšαž˜αžΆ 0.01αŸ”
success_url String Required Link αž‚αŸαž αž‘αŸ†αž–αŸαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž±αŸ’αž™ Customer redirect αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αž€αŸ’αžšαŸ„αž™αž–αŸαž›αž”αž„αŸ‹αž›αž»αž™αžšαž½αž…αŸ”
cancel_url String Optional Link αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžŠαŸ‚αž› Customer αž…αž»αž…αž”αŸ„αŸ‡αž”αž„αŸ‹αž€αžΆαžšαž‘αžΌαž‘αžΆαžαŸ‹αŸ”
remark String Optional αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž€αžΆαžšαž‘αžΌαž‘αžΆαžαŸ‹ (ឧ. Order #10023 - MLBB 86 Diamonds)αŸ”
hash String Required Security SHA-1 Hash Signature αž‚αžŽαž“αžΆαžŠαŸ„αž™αŸ– sha1(secret_key + transaction_id + amount + success_url + remark)
custom_fields String (Base64) Optional αž‘αž·αž“αŸ’αž“αž“αŸαž™αž”αž“αŸ’αžαŸ‚αž˜ (ឧ. Player ID, Server ID) αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœ encode αž‡αžΆ Base64αŸ” Gateway αž“αžΉαž„αž”αž‰αŸ’αž‡αžΌαž“αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αž€αŸ’αž“αž»αž„ WebhookαŸ”

2. Webhook Callback Payload (Incoming POST to Merchant Server)

αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž› Gateway CAM2 Pay αž“αžΉαž„αž”αžΆαž‰αŸ‹ (POST JSON) αž‘αŸ…αž€αžΆαž“αŸ‹ Webhook URL αžšαž”αžŸαŸ‹ Merchant αž–αŸαž›αž’αžαž·αžαž·αž‡αž“αž”αž„αŸ‹αž›αž»αž™αž‡αŸ„αž‚αž‡αŸαž™αŸ–

Field Name Type Description
status String αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž€αžΆαžšαž‘αžΌαž‘αžΆαžαŸ‹αŸ– SUCCESS
transaction_id String αž›αŸαž Order ID αžŠαžΎαž˜αžŠαŸ‚αž› Merchant αž”αžΆαž“αž•αŸ’αž‰αžΎαž˜αž€
amount Float αž…αŸ†αž“αž½αž“αž‘αžΉαž€αž”αŸ’αžšαžΆαž€αŸ‹αžŠαŸ‚αž›αž‘αž‘αž½αž›αž”αžΆαž“αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠ (USD)
tran_id String αž›αŸαžαž€αžΌαžŠαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž’αž“αžΆαž‚αžΆαžšαž•αŸ’αž›αžΌαžœαž€αžΆαžš (Bank Reference / Bakong Hash)
req_time String Timestamp αž“αŸƒαž–αŸαž›αžœαŸαž›αžΆαžŠαŸ‚αž›αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž•αŸ’αž‰αžΎ Webhook
hash String HMAC SHA-256 Signature αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αžαžΆ Callback αž˜αž€αž–αžΈ CAM2 Pay αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠ
custom_fields String αž‘αž·αž“αŸ’αž“αž“αŸαž™ Player / Custom metadata αžŠαžΎαž˜αžŠαŸ‚αž› Merchant αž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€