Observed since 20 Oct, 17:10 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Python SDK for ABA PayWay payment gateway (QR, Check, Close Transaction)
A clean, dependency-free Python SDK for the ABA PayWay payment gateway.
Python 3.10+ · No third-party dependencies · Stdlib only

pip install aba-payway
OR Update Last Version
pip install --upgrade aba-payway
from aba_sdk import PayWayClient, PayWayConfig, Environment
config = PayWayConfig(
merchant_id="your_merchant_id",
api_key="your_api_key",
env=Environment.sandbox, # OR Environment.production
)
client = PayWayClient(config)
from aba_sdk.models import QRRequest, Currency, PaymentOption
from aba_sdk.utils import encode_items, encode_url
from aba_sdk.utils.timestamp import get_req_time
request = QRRequest(
tran_id=tran_id = f"ORDER-{get_req_time()}",
amount=8.00,
currency=Currency.USD, # Supported KHR, USD
payment_option=PaymentOption.ABAPAY_KHQR,
first_name="Khon",
last_name="Chanphearaa",
email="phearaa@example.com",
phone="012345678",
# Optional
items=encode_items([
{"name": "Coffee", "quantity": 2, "price": 2.50},
{"name": "Sandwich", "quantity": 1, "price": 3.00},
]),
callback_url=encode_url("https://yoursite.com/payway/callback"),
lifetime=6,
)
response = client.qr.generate_qr(request)
print(response.qr_string) # Raw KHQR string
print(response.abapay_deeplink) # Deep link for ABA Mobile
response.save_qr_image("qr.png") # Save Base64 PNG to disk
from aba_sdk import PayWayAPIError, PayWayRequestError
try:
response = client.qr.generate_qr(request)
except PayWayAPIError as e:
# API returned an error (wrong domain, invalid hash, etc.)
print(f"[{e.code}] {e.message} trace={e.trace_id}")
except PayWayRequestError as e:
# Network timeout or connection error
print(f"Network error: {e}")
| Value | Constant |
|---|---|
USD | Currency.USD |
KHR | Currency.KHR |
| Value | Constant | Notes |
|---|---|---|
abapay | PaymentOption.ABAPAY | |
khqr | PaymentOption.KHQR | |
abapay_khqr | PaymentOption.ABAPAY_KHQR | Most common |
wechat | PaymentOption.WECHAT | USD only |
alipay | PaymentOption.ALIPAY | USD only |
abapay_khqr_wechat_alipay | PaymentOption.ALL | USD only |
TEMPLATE1, TEMPLATE1_COLOR, TEMPLATE2, TEMPLATE2_COLOR, TEMPLATE3, TEMPLATE3_COLOR
Each API group gets its own file in aba_sdk/api/ and its own models in aba_sdk/models/.
Then register the new client in PayWayClient:
# aba_sdk/client.py
from .api.checkout import CheckoutClient # new module
class PayWayClient:
def __init__(self, config):
self.qr = QRClient(config)
self.checkout = CheckoutClient(config) # add here
Folder /examples
Run Python File
| Environment | Base URL |
|---|---|
| Sandbox | https://checkout-sandbox.payway.com.kh |
| Production | https://checkout.payway.com.kh |
Note: Your IP/domain must be whitelisted by PayWay before production calls work. Contact
paywaysales@ababank.comfor production credentials.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.4 | 21 Apr 2026 | 5 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 17:10 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:c3e5fea38f202aa63de338d1bb8f79c758a083d37a0f9e440fb6c678c496eeef