How to identify reward points and virtual currency orders in payment webhooks
Last updated: July 6, 2026
How to identify reward points and virtual currency orders in payment webhooks
Some completed orders are not real-money payments. This most commonly happens when an order is paid entirely with reward points or virtual currency.
How to identify these orders
The most reliable signal is payment_method:
payment_method = zero_paymentsmeans the order was completed without a real-money charge.
You can also use currency as an additional hint:
RP= reward pointsVC= virtual currency
Do not rely on receipt_number to distinguish them. A receipt number can be generated for any completed order, including zero-payment orders.
What to expect in amount and revenue fields
For reward-points orders, there is no real payment, so real-money amount fields are not populated.
payment_amount_usdmay benullrevenue_usdmay benull
This is expected behavior for orders that do not involve a real-money charge.
Recommendation for analytics
To keep revenue reporting correct, do one of the following:
- write these orders to analytics with
0 USD, or - mark them as a separate order type and exclude them from revenue metrics.
Can item source help?
Yes. Product sources such as InternalCurrency_RP_30 can be used as a practical identifier for this kind of order, even if the source value itself does not describe what the item grants.