Integration Guide

Order Management Integration Guide August 2005 29
Instant Payment Notification (IPN)
Using IPN with Multiple Currencies
These values are absent for non-USD payments so that IPN scripts will not process these
amounts as USD. However, legacy IPN scripts will continue to work as before as long as the
merchant only receives USD payments.
Examples of Multi-currency IPN Variables
IPNs that use the payment_gross variable will have the following multi-currency variables
added. The variables mc_gross and mc_fee will not be added to IPNs with txn_type:
subscr_signup, subscr_cancel, subscr_modify, subscr_failed, or subscr_eot.
z mc_gross: Full amount of payment received, before transaction fee.
NOTE: If payment is in USD, the payment_gross value equals mc_gross.
z mc_fee: Transaction fee associated with the payment. Variable function like
payment_fee variable (variable does not appear when payment pending, and so on).
NOTE: If payment is in USD, the payment_fee value equals mc_fee.
z mc_currency: Currency of mc_gross, mc_fee, payment_gross, and payment_fee
amounts. Possible values are detailed in Table 1.1, “PayPal-Supported Currencies,
Currency Codes, and Maximum Transaction Amounts” on page 13.
z For subscription IPNs, such as signup, cancel, modify, failed, and eot, mc_currency is the
currency of the subscription, rather than the currency of the payment.
Example 1
If a user with a USD balance receives a $100 USD payment, the following variables will be
used for the payment:
z mc_gross = payment_gross
z mc_fee = payment_fee
EXAMPLE 3.1 Multi-currency IPN: USD Payment
payment_status = Completed
payment_gross = 100
payment_fee = 3.00
mc_gross = 100
mc_fee = 3.00
mc_currency = USD
Example 2
f a user with a CAD balance receives a $100 CAD payment, the following variables will be
used for the payment:
z mc_gross and mc_fee have values.
z payment_gross and payment_fee are blank.
EXAMPLE 3.2 Multi-currency IPN: CAD Payment
payment_status = Completed