Developer's Guide
Table Of Contents
- Adaptive Payments Developer Guide
- Contents
- What’s New?
- Introducing Adaptive Payments
- Adaptive Payments Actors and Objects
- Simple, Parallel, and Chained Payments
- Payment Approval
- Adaptive Payments Service Permissions
- Explicit Approval Payment Flow
- Preapproved Payments Flow
- Implicit Approval Payments Flow
- Embedded Payments
- Embedded Payment Flow Presentations
- Kinds of Embedded Payments
- Embedded Payments Implementation Basics
- Embedded Payment Experience
- Preapprove Future Payments Checkbox
- Shipping Address Information
- Embedded Payment Experience
- Setting Up Web Pages to Invoke the Embedded Payment Flow Using a Lightbox
- Setting Up Web Pages to Invoke the Embedded Payment Flow Using a Minibrowser
- Displaying and Collecting Shipping Addresses
- Guest Payments
- Fee Payment Configuration
- Getting Started
- Pay API Operation
- PaymentDetails API Operation
- ExecutePayment API Operation
- GetPaymentOptions API Operation
- SetPaymentOptions API Operation
- Preapproval API Operation
- PreapprovalDetails API Operation
- CancelPreapproval API Operation
- ConvertCurrency API Operation
- Refund API Operation
- GetFundingPlans API Operation
- GetShippingAddresses API Operation
- Adaptive Payment Commands and Redirects
- Instant Payment Notifications
- Older Versions of the Adaptive Payments API
- 1.8.0 Features
- 1.7.0 Features
- 1.6.0 Features
- New API Operations for Version 1.6.0
- Changes to PayRequest Fields for Version 1.6.0
- Changes to PayResponse Fields for Version 1.6.0
- Changes to ExecutePaymentRequest Fields for Version 1.6.0
- Changes to GetPaymentOptionsResponse Fields for Version 1.6.0
- Changes to SetPaymentOptionsRequest Fields for Version 1.6.0
- Changes to PreapprovalRequest Fields for Version 1.6.0
- Changes to Address Structure for Version 1.6.0
- Changes to DisplayOptions Structure for Version 1.6.0
- New CurrencyConversion Structure for Version 1.6.0
- New InvoiceData Structure for Version 1.6.0
- New InvoiceItem Structure for Version 1.6.0
- New SenderOptions Structure for Version 1.6.0
- New SenderIdentifier Structure for Version 1.6.0
- New AccountIdentifier Structure for Version 1.6.0
- New ReceiverOptions Structure for Version 1.6.0
- New ReceiverIdentifier Structure for Version 1.6.0
- Additional Error Messages for Version 1.6.0
- 1.5.0 Features
- 1.4.0 Features
- 1.3.0 Features
- 1.2.0 Features
- 1.1.0 Features
- Revision History
- Index
Adaptive Payments Developer Guide August 7, 2012 257
16
Instant Payment Notifications
PayPal sends an IPN message in response to a payment, a refund, creation of a preapproval,
and cancellation of a preapproval. Your IPN message handler must be set up in the way
described in the Instant Payment Notification Guide.
Specifically, it must guard against spoofing and it must be able to handle duplicate messages,
which can occur, for example, if your application is both the caller of the Pay API and a
receiver of the payment.
The IPN messages listed here do not use the IPN message handler that you can specify in the
Profile. IPN messages are only sent to the notification URL specified in the Adaptive Payment
API operation’s request.
IMPORTANT: IPN variable names, such as transaction[0].status are strings and you
must manipulate them as strings. Some languages, such as PHP and others,
may attempt to interpret the non-alphanumeric characters found in the
variable name. To avoid misinterpretation of these strings, you should always
to use the raw HTTP request string and process it yourself rather than rely on
the support provided by the language to obtain request parameters.
Pay Message Variables
PayPal generates an IPN message that contains information about the pay request or payment
in response to the Adaptive Payments Pay and ExecutePayment API operations.
Variable Description
transaction_type The type of transaction. Possible values are:
Adaptive Payment PAY
This notification occurs when is a payment is made due to a PayRequest.
The variables for the Adaptive Payment Pay notification are similar to
the PaymentDetailsResponse fields.
Adjustment
This can be for a chargeback, reversal, or refund; check the reason_code
to see which it is.