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 211
12
Refund API Operation
Use the Refund API operation to refund all or part of a payment. You can specify the amount
of the refund and identify the accounts to receive the refund by the payment key or tracking
ID, and optionally, by transaction ID or the receivers of the original payment.
Refund API Overview
PayPal supports refunds made manually, via the PayPal account interface, or by means of the
RefundTransaction API. The terms sender and receiver refer to sender and receivers of the
original payment using the Pay API operation. When making a refund, the sender’s account
receives the refund and the receivers’ accounts are the source of the refund. Refunds are made
from one or more receivers to a sender.
To make a refund using the Refund API operation, you must:
have made a Pay request for which payment you want to refund the payment, or you must
have received the part of the payment you want to refund, and
have permission to make a refund on behalf of the receiver, unless you are also the
receiver; in other words, each receiver whose account is the source of the refund must have
granted you third-party access permission to call the Refund API operation.
NOTE: A receiver can grant you third-party access to make a refund by logging in to
PayPal, choosing API Access on the Profile page, then clicking the link to
Grant
API permission and selecting Refund after clicking Configure a custom API
authorization.
NOTE: The Adaptive Payments Refund API call does not support pay keys generated by
the Mobile Payment Library (MPL).
For each kind of refund, you must specify values for the following fields: