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 31
Introducing Adaptive Payments
Embedded Payments
IMPORTANT: Payments for digital goods must use the embedded payment flow. You cannot
associate a preapproval for future payments or enable shipping addresses in a
payment for digital goods.
Embedded Payments Implementation Basics
To implement the embedded payment flow, you must
include JavaScript code from PayPal on your checkout or payment web pages
use the functions provided in the JavaScript to coordinate the PayPal flow with the
appearance of your web pages
launch your preferred embedded payment flow, which is either the lightbox or
minibrowser, and redirect the sender’s browser to the PayPal URL that supports embedded
payments, which is
https://www.paypal.com/webapps/adaptivepayment/flow/pay?paykey=...
You must call the Pay API operation to obtain a payment key before launching the embedded
payment flow. If the payment is specifically for digital goods, modify your Pay API operation
to specify that each receiver is receiving payment for digital goods.
Embedded Payment Experience
To the sender of a payment, the embedded payment experience appears to be built into your
website. The PayPal-supplied JavaScript provides all the code needed to set up the flow as an
IFRAME within the sender’s browser and as a pop-up mini-browser that appears in front of
your website.
Typically, the sender initiates a payment by clicking a button:
PayPal responds to the JavaScript that initiates the flow. If it is the first payment, or if PayPal
determines that the payment requires the sender to log in, PayPal displays a Log In button in
the IFRAME created by the JavaScript: