Zpn And Pdt Variables

The following is a detailed description for each variable that are passed from Zaxaa to your ZPN or PDT listener script. Please note that all variables are case-sensitive.

Transaction Types

These are the type of event notification that will be sent by Zaxaa:

Transaction typeDescription
SALE The purchase of one-time product(s); Will also be sent when OTO transaction occurs, but ONLY when all the purchased OTO products are one-time payments
FIRST_BILL The initial purchase of subscription product(s), including trial; Will also be sent when OTO transaction occurs, but ONLY when one of the OTO products is a subscription
REBILL** Recurring payment received
CANCELED** Subscription canceled
REFUND** The refunding of a one-time or recurring billing product.

 

** Transaction type is NOT available on Zaxaa PDT


General Variables

These variables will always be sent to your ZPN listener script regardless the type of the transaction:

Variable NameDescription
trans_type The type of transaction for which the ZPN message was sent (please see the "Transaction Type" section above)
hash_key Unique key to verify the validity of the ZPN
trans_gateway Method of payment by customer (possible values PAYPAL_ADAPTIVE, PAYPAL_STANDARD, 2CHECKOUT, STRIPE, or AUTHORIZE_NET)
trans_date Date of the transaction (time zone in UTC; e.g. 2013-05-09 20:00:11 UTC)
trans_testmode Test transaction status; Return 1 if it's a test purchase/transaction; Return 0 if it's a real purchase/transaction
seller_id Zaxaa seller ID
seller_email Seller's email address registered in Zaxaa (may be different with the seller's PayPal email address)
cust_email Customer's email address registered in Zaxaa (may be different with the customer's PayPal email address)
cust_firstname Customer's first name
cust_lastname Customer's last name
cust_address Customer's street address
cust_state Customer's state or province
cust_city Customer's city
cust_country Customer's country
shipping_info Shipping information set by the customer. This variable is ARRAY contains details below. If you do not enable shipping information on checkout page this variable will contain empty value.
shipping_info[first_name] Shipping first name
shipping_info[last_name] Shipping last name
shipping_info[address] Shipping address
shipping_info[country] Shipping country
shipping_info[city] Shipping city
shipping_info[state] Shipping state
shipping_info[zip_code] Shipping zip code
shipping_info[phone] Shipping phone number

Payment Variables

Most of these variables will be sent to your ZPN listener script. However, some of the variables may not exist in certain transactions:

Variable NameDescription
trans_amount Total amount of the transaction
trans_currency Used currency in the transaction (3 letters format; e.g. USD)
trans_receipt Zaxaa Receipt Number
item_count The number of product(s) in transaction (e.g. 3)
is_oto* Return 1 if it's an OTO transaction; Return 0 if it's front end transaction
products Purchased product(s) by the customer. Please not that this variable is a MULTIDIMENSIONAL ARRAY, and it may contain more than one product information.
products[x][prod_number] The product number registered in Zaxaa (SKU). Where x is the array key number (start from zero; e.g. products[0][prod_number])
products[x][prod_name] The product name registered in Zaxaa. Where x is the array key number (start from zero; e.g. products[0][prod_name])
products[x][prod_type] The type of the product (possible values: FRONTEND|OTO). Where x is the array key number (start from zero; e.g. products[0][prod_type])
products[x][amount] The amount paid by the customer for the product (e.g. 47.00). Where x is the array key number (start from zero; e.g. products[0][amount])
products[x][payment_type] The payment type of the product (possible values: onetime|subscription). Where x is the array key number (start from zero; e.g. products[0][payment_type])
products[x][recurring_id]** Recurring ID for this subscription product, and the value will stay the same in every recurring payment ZPN for this product. Where x is the array key number (start from zero; e.g. products[0][recurring_id])
products[x][next_rebill]** The future date of the next recurring payment. Where x is the array key number (start from zero; e.g. products[0][next_rebill])
products[x][recurring_status]** The status of the subscription (possible values: ACTIVE|CANCELED|COMPLETED). Where x is the array key number (start from zero; e.g. products[0][recurring_status])
products[x][payment_number]** The number of payments made. Where x is the array key number (start from zero; e.g. products[0][payment_number])
products[x][custom] Custom value as passed by you via the product order URL, the seller. These are pass-through variables that are never presented to your customer. Where x is the array key number (start from zero; e.g. products[0][custom]).
products[x][price_num]*** The pricing number of product (possible values: 1, 2, 3, 4, and 5). Zaxaa now supports multipricing price. You may have 5 different pricing if you enable multiple pricing feature. This feature is useful when you have multiple levels of your product e.g. Silver / Gold / Platinum or Single Site License / Multi Site License / Developer License on single product.
products[x][price_name]*** The pricing name of product. You can give a name to each of your pricing of your product if you enable multiple pricing feature. E.g. "Silver" for your 1st pricing, "Gold" for your 2nd pricing, etc.


* Variable exists only on first and initial payment

** Variable exists in subscription/recurring product ONLY

*** Variable exists ONLY if you enable multiple price feature


Additional Variables

Some of these variables may or may not be sent by ZPN:

Variable NameDescription
seller_paypal_email* PayPal email address of the seller
cust_paypal_email* PayPal email address of the customer
paypal_payer_id* PayPal payer ID of the customer
paypal_txn_id* PayPal transaction ID of the transaction


* Variable exists only when transaction is using PayPal as its payment processor


How To Pass a Custom Variable to ZPN & PDT

If you need to associate each product information sent by the ZPN or PDT with existing users in your database or internal transaction id generated by your script, you can do this by adding a query string called 'custom' in the order URL.

Example (front-end):
https://yourusername.zaxaa.com/order/9c1a05b04974da4b?custom=yourcustomvalue

Example (OTO):
https://yourusername.zaxaa.com/order/oto/_f607f3c615?custom=yourcustomvalue

If you embed payment form on your own site:
Add hidden input in the form i.e <input type="hidden" name="za_custom" value="yourcustomvalue" />

The value will be sent back to you via ZPN/PDT in the 'products' array variable, under the corresponding product (e.g. products[x][custom]). Please see the "Payment Variables" section above for more info about the 'products' array variable.

Related Information

Zaxaa Payment Notification (ZPN) Documentation
Zaxaa Payment Data Transfer (PDT) Documentation

login dashboard get started