Skip to main content

Static and Dynamic Payments

Local Acquiring

Static and Dynamic Payments

PayCools acquiring payment methods can be divided into static and dynamic payments based on when the payment information is generated and whether the amount is fixed when the order is created. These forms are not limited to QR codes: static bills (virtual accounts / payment references) and fixed payment links are also static payments, while dynamic QR codes, dynamic bills, and payment information returned in real time when an order is created are dynamic payments. The right form depends on your business scenario, reconciliation requirements, and how users pay.

1

What Is a Static Payment?

A static payment is a set of payment information that a merchant creates in advance and can reuse for a long time (a collection QR code, virtual account, payment reference, or fixed link). This information is not tied to a specific order.

  • Generation: Generated once in advance and reusable for a long time.
  • Amount: Usually not fixed in the payment information; the user enters it when paying, or confirms it based on a bill.
  • Order association: Not bound one-to-one to an order; it must be matched using identifiers such as remarks, store, table, room number, or payment reference.
  • Reconciliation: Received funds must be matched to your order system using identifiers, which requires more reconciliation effort.

Common static payment forms include:

  • Static QR code: Store collection codes, table / room codes, donation codes, and similar codes that are displayed for a long time and can be scanned repeatedly.
  • Static bill / virtual account: A virtual account or payment reference assigned to the same user or a fixed purpose, which the user pays through bank transfer, convenience stores, or other offline channels (see Bill Payment).
  • Fixed payment link: A long-term payment link with a variable amount or an amount entered by the user.

Static payments are suitable for physical stores, long-term fixed collection, donations, and utility bill payments, especially when users need to pay repeatedly at different times and through different channels.

2

What Is a Dynamic Payment?

A dynamic payment is payment information that the system generates in real time for each order and binds one-to-one to that order.

  • Generation: Generated in real time for each order and usually time-limited; it expires if not paid on time.
  • Amount: Determined when the order is created and written into the payment information, so the user does not need to enter the amount.
  • Order association: Bound one-to-one to the order number (such as mchOrderId), so payment results can be mapped precisely to the order.
  • Reconciliation: Payment result notifications correspond one-to-one to orders, making reconciliation clear.

Common dynamic payment forms include:

  • Dynamic QR code: A unique QR code is generated for each order; the user scans it, confirms the amount, and pays.
  • Dynamic bill: A dedicated virtual account or payment reference is generated for each order.
  • Dynamic payment link: A direct channel payment link that opens a web page for login and payment; some links can open an app for payment.

Dynamic payments are suitable for e-commerce checkout, self-service ordering and kiosks, bill collection, and PC QR payments, especially when each order has a different amount and must be reconciled strictly by order.

3

Comparison

DimensionStatic PaymentDynamic Payment
Payment information generationGenerated once in advance and reused long-termGenerated in real time for each order
Bound to an orderNo; must be matched using identifiersYes; one-to-one with the order
How the amount is determinedEntered by the user or confirmed from a billDetermined when the order is created and written into the payment information
ReusabilityReusableOne-time; usually expires after a timeout
ReconciliationMatch by remarks / store / reference; more difficultMatch precisely by order number; clear
Payment result notificationMust be matched to an order using identifiersThe order number is returned directly in the notification
ValidityLong-termTime-limited; expires after a timeout
Typical formsStatic QR code, static bill / virtual account, fixed payment linkDynamic QR code, dynamic bill, dynamic payment link
Typical scenariosStores, donations, offline bill payments, long-term fixed collectionE-commerce checkout, kiosks, bill collection, PC QR payment
Common integrationStatic QR payment, bill paymentDirect API, checkout mode, dynamic QR payment
4

Static Payment Flow

1Generate payment info

Create a reusable static code, VA, payment reference, or link in advance.

2Display / provide

Post it in-store, or send the link or account details to the user.

3Scan / initiate

The user scans the code or follows the payment instructions.

4Confirm amount

The user enters or confirms the amount to pay.

5Select & pay

The user chooses a payment method and completes the payment.

6Async notify

PayCools sends the payment result to the merchant asynchronously.

7Reconcile

The merchant matches the payment by remark, reference, or store ID.

5

Dynamic Payment Flow

6

Order Number and Transaction ID (Reconciliation and Callbacks)

Payment creation and callbacks involve two identifiers: the merchant order number (mchOrderId) and the transaction ID (transactionId). They serve different purposes and must be used separately during reconciliation.

IdentifierMeaningDescription
mchOrderIdMerchant order numberPassed by the merchant when creating a payment (including static payments); the payment result callback returns it unchanged so the merchant can link it to its own order / bill.
transactionIdTransaction IDA unique serial number generated by PayCools for each transaction; each transaction under the same merchant order has a different ID.

Static Payments: One Order Number May Map to Multiple Transactions

Static payment information can be paid multiple times (for example, the same virtual account / payment reference receives multiple payments at different times). The mchOrderId passed by the merchant when creating the static payment is included in each payment callback, but each payment has its own transactionId, and they are all different.

  • Callback granularity: Callbacks are sent per transaction and include both the merchant's mchOrderId and the transaction's transactionId.
  • Reconciliation advice: Use transactionId to distinguish each received payment and avoid treating multiple payments under the same order number as one.
  • Business linkage: Then use mchOrderId to link the payment to your bill / user.

Dynamic Payments: One Order Usually Maps to One Transaction

Dynamic payments are generated in real time for each order, so usually one order maps to one transaction. mchOrderId and transactionId correspond one-to-one, making reconciliation clear.

note

Callback delivery and retries follow the unified rules. See General Payment Rules · Callback Notification Rules.

7

How to Choose

Business CharacteristicRecommended Form
Physical stores, long-term fixed collectionStatic payment
Users need to pay repeatedly at different times and through different channelsStatic payment
Bill / utility payments where the user determines the amountStatic payment
Each order has a different amount and must be reconciled strictly by orderDynamic payment
E-commerce checkout, self-service ordering, kiosksDynamic payment
Need to collect or push payments for a specific orderDynamic payment
Want a shorter payment path and less user inputDynamic payment