PFP ExpressCheckout PP
PFP ExpressCheckout PP
Payflow Pro
© 2009 PayPal, Inc. All rights reserved. PayPal is a registered trademark of PayPal, Inc. The PayPal logo is a trademark of PayPal, Inc. Other
trademarks and brands are the property of their respective owners.
The information in this document belongs to PayPal, Inc. It may not be used, reproduced or disclosed without the written approval of PayPal, Inc.
Copyright © PayPal. All rights reserved. PayPal (Europe) S.à r.l. et Cie., S.C.A., Société en Commandite par Actions. Registered office: 22-24 Boulevard
Royal, L-2449, Luxembourg, R.C.S. Luxembourg B 118 349.
Consumer advisory: The PayPal™ payment service is regarded as a stored value facility under Singapore law. As such, it does not require the approval
of the Monetary Authority of Singapore. You are advised to read the terms and conditions carefully.
Notice of non-liability:
PayPal, Inc. is providing the information in this document to you “AS-IS” with all faults. PayPal, Inc. makes no warranties of any kind (whether express,
implied or statutory) with respect to the information contained herein. PayPal, Inc. assumes no liability for damages (whether direct or indirect), caused
by errors or omissions, or resulting from the use of this document or the information contained in this document or resulting from the application or use
of the product or service described herein. PayPal, Inc. reserves the right to make changes to any information herein without further notice.
                            Contents
       Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
                    Intended Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
                    Related Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
                    How to Contact Customer Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
                    Document History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
       Intended Audience
                    This guide assumes that its readers:
                    z   Are experienced web or application developers
                    z   Have a background in payments services
                    z   Are developing payment services applications that are integrating Express Checkout to
                        process transactions to be sent over the Payflow gateway
       Related Documentation
                    For additional information on Payflow documentation and the Payflow SDK, go to
                    http://www.paypal.com/developer, select Documentation from the Library tab, and click the
                    Payflow Pro link.
Document History
Date Description
                     April 2009                 Added creating billing agreements for setting up Recurring Payments
                                                through Express Checkout.
                                                Added order line-item details parameters.
                                                Updated with PHONENUM parameter in Set Express Checkout
                                                request.
                   The figure shows a typical set of web pages representing your merchant website. The PayPal
                   logo is used by the customer to choose PayPal as their method of payment. Express Checkout
                   gives you the flexibility to place the PayPal logo at the start of checkout and later on your
                   billing page with other payment options.
                   The web page layout may differ somewhat from your own web design, but the integration
                   points at which the Express Checkout calls are made and customer redirection to PayPal and
                   back to your website are important to understand. The events that take place at each number in
                   the figure are described below:
                    1. On your website, your customer clicks the PayPal button to check out. This customer
                       action triggers the call to the Set Express Checkout request.
                    2. The server responds to the request by returning a token or string value to your website. In
                       the previous figure, the token is represented by an orange “donut.” The token keeps track of
                       your customer throughout the checkout process.
                    3. You direct your customer to the PayPal site, where they log in, select a funding source, and
                       confirm contact and shipping information. Express Checkout includes parameters that you
                       can use to customize the PayPal pages so they match characteristics of your own website.
                       For example, you can provide your own logo and colors.
                    4. When your customer clicks the “Continue” button, PayPal sends them back to your site at
                       the return URL you specified in the Set Express Checkout request. The token is appended
                       to the URL to identify the customer.
                    5. Optionally you can send the Get Express Checkout Details request to obtain details about
                       your customer such as the customer’s telephone number and shipping address. You send
                       the token to identify the customer. The server returns the requested information.
                    6. When your customer clicks the “Pay” button, you send the Do Express Checkout Payment
                       request to perform the actual payment transaction.
                    7. The server returns the transaction result.
                    z   RETURNURL
                    z   CANCELURL
                    This is an example Set Express Checkout request parameter string for a Sale transaction:
                    "TRXTYPE=S
                    &ACTION=S
                    AMT=35.00
                    &CANCELURL=http://www.order_page.com
                    &CUSTOM=TRVV14459
                    &EMAIL=buyer_name@abc.com
                    &PARTNER=partner
                    &PWD=password
                    &RETURNURL=http://www.confirmation_page.com
                    &TENDER=P
                    &USER=user
                    &VENDOR=vendor"
                    N O T E : It
                               is strongly recommended that RETURNURL be the URL of the final review page on
                             your website where the customer confirms the order and payment. Likewise,
                             CANCELURL should be the URL of the original page on your website where the
                             customer initially chose to use PayPal.
                    This is a response to the request.
                    RESULT=0&RESPMSG=Approved&TOKEN=EC-17C76533PL706494P
                    RESULT and RESPONSE values are returned with all transactions. In a successful response, the
                    value of RESULT is 0. For details on the set of response parameters generally passed back in
                    transactions, see Chapter 5, “Transaction Responses.” The TOKEN value returned associates
                    this customer with this particular Express Checkout flow.
         <body>
           <!-- Most buyers will see the text below for less than a second. -->
           <!-- Some browser types (example, cell phone)do not support META refresh tags. -->
           <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_express-
         checkout&token=<TOKEN>"Click here if you are not redirected to PayPal within 5
         seconds.</a>
         </body>
         </html>
                    RESULT=0
                    &RESPMSG=Approved
                    &AVSADDR=Y
                    &TOKEN=EC-17C76533PL706494P
                    &PAYERID=FHY4JXY7CV9PG
                    &EMAIL=buyer_name@aol.com
                    &PAYERSTATUS=verified
                    &CUSTOM=TRVV14459
                    &FIRSTNAME=Chris
                    &LASTNAME=Alexander
                    &BUSINESS=Monroe Creek Regional Interiors
                    &SHIPTOSTREET=5262 Green Street #8
                    &SHIPTOCITY=San Jose
                    &SHIPTOSTATE=CA
                    &SHIPTOZIP=95148
                    &SHIPTOCOUNTRY=US
                   "TRXTYPE=S
                   &VENDOR=vendor
                   &USER=user
                   &PWD=pwd
                   &TENDER=P
                   PARTNER=partner
                   &ACTION=D
                   &TOKEN=EC-17C76533PL706494P
                   &PAYERID=FHY4JXY7CV9PG
                   &AMT=35.00"
                   The following is an example response:
                   RESULT=0
                   &PNREF=EFHP0CDBF5C7
                   &RESPMSG=Approved
                   &AVSADDR=Y
                   &TOKEN=EC-17C76533PL706494P
                   &PAYERID=FHY4JXY7CV9PG
                   &PPREF=2P599077L3553652G
                   &PAYMENTTYPE=instantonly
                   The response returns a 12-character PNREF (Payflow Transaction ID) that is used to identify
                   this transaction in PayPal Manager reports.
                    If you choose to require the buyer provide a telephone number, a telephone number displays in
                    the Contact Information on the PayPal Review page during checkout. Help text tells the buyer
                    how to change the number displayed to their own number.
       Pending Responses
                    If the Do Express Checkout Payment PENDINGREASON response is a value other than none or
                    completed, the payment is pending. Typically, this means the customer has paid with an
                    eCheck. In such a case, funds are not guaranteed, and you should not ship or deliver items or
                    services until the payment has successfully completed.
                    N O T E : PayPal
                                   recommends that you block eChecks as a payment method if you are unable to
                            handle pending state payments.
                    To find out the status of a pending payment, you can:
                    z   Submit an Inquiry transaction.
                    z   Check the status using PayPal Manager. See PayPal Manager online help for details.
                    This chapter describes how to bill the buyer’s PayPal account on a recurring basis. As a
                    prerequisite, you need to set up a billing agreement description.
                    z   Creating Multiple Billing Agreement Descriptions
                    z   Creating a Single Billing Agreement Description
                    z   Example of Creating a Billing Agreement Description
Parameter Notes
                    Thereafter, you can bill the buyer’s PayPal account on a regular basis as well as mix recurring
                    payments with one-time purchases the buyer makes in the Express Checkout flow. The
                    advantage of passing L_BILLINGAGREEMENTDESCRIPTIONn strings is that you can use the
                    same TOKEN with each of the other L_BILLINGAGREEMENTDESCRIPTIONn strings passed to
                    Set Express Checkout to create up to ten different recurring payments profiles.
Parameter Notes
                    Pass the Set Express Checkout response TOKEN along with the BA_DESC string and TENDER
                    type P in the request to create a single recurring payments profile.
                    When you offer PayPal Express Checkout to your customers, PayPal recommends that you
                    display it in two forms for your customers’ best buying experience:
                    z   PayPal as a checkout choice on your shopping cart page
                    z   PayPal as a payment method
                    Table 3.1 summarizes these guidelines.
                     PayPal Button
                     Graphic                Placement                      Requirements
Figure 3.2 places the PayPal mark as a payment method with other payment methods.
                   z   If you do not set useraction or you set useraction continue, PayPal displays the
                       button text “Continue Checkout.”
                   z   If you set useraction to commit, PayPal displays the button text “Pay.”
                   To display the “Pay” button text, for example, append &useraction=commit to the redirect
                   URL string as shown below where tokenvalue is the token value returned in the Set Express
                   Checkout response.
                   "https://www.paypal.com/cgi-bin/webscr?cmd=_express-
                   checkout&token=tokenvalue&useraction=commit"
                   IMPO RTANT: Do       not preselect any payment method. Allow the customer to make a choice
                                     without any default.
                   The figures below illustrate each of these layouts.
                    The Payflow gateway supports transaction types (TRXTYPE) for obtaining payment during the
                    Express Checkout flow as well as for managing the capture of payments after the Express
                    Checkout flow.
                    z   Honor Period and Authorization Period
                    z   Payment Transaction Types
                    z   Sale
                    z   Authorization
                    z   Order
                    z   Do Reauthorization
                    z   Do Authorization
                    z   Delayed Capture
                    z   Void
                    z   Credit
                  After the Express Checkout flow, you can manage the capture of payment using the following
                  transaction types:
                  z   Do Reauthorization (TRXTYPE=A)
                  z   Do Authorization (TRXTYPE=A)
                  z   Delayed Capture (TRXTYPE=D)
                  z   Void (TRXTYPE=V)
                  z   Credit (TRXTYPE=C)
         Sale
                  A Sale transaction charges the specified amount against the account, and marks the transaction
                  for immediate fund transfer.
                  Use a Sale transaction when you can fulfill an order immediately and you know the final
                  amount of the payment at the time you send the Do Express Checkout Payment Details
                  request. A Sale is appropriate, for example, if you have the items in stock for immediate
                  shipment.
                  To set up a Sale, set these parameters in the Set Express Checkout, Get Express Checkout
                  Details, and Do Express Checkout Payment requests:
                  z   Set Express Checkout request: TRXTYPE=S, ACTION=S
                  z   Get Express Checkout Details request (optional): TRXTYPE=S, ACTION=G
                  z   Do Express Checkout Payment request: TRXTYPE=S, ACTION=D
                  After you send the Do Express Checkout Payment request for a Sale transaction, which returns
                  a RESULT value of 0 (success), the payment is complete and no further action is necessary.
                  You cannot capture a further payment or void any part of the payment.
                  For a detailed example of a Sale transaction, see Express Checkout Sale Transaction Example.
         Authorization
                  An Authorization transaction represents an agreement to pay. It places the buyer’s funds on
                  hold for a three-day honor period is valid for 29 days. It does not transfer funds.
                  If your business does not provide immediate fulfillment of products or services, an
                  Authorization enables you to capture funds with a Delayed Capture transaction when back-
                  ordered merchandise, for example, does become available. You can capture up to the
                  authorized amount specified in the original Authorization transaction.
                  If you are still not able to complete the Authorization and Delayed Capture within the 29-day
                  period, you can perform a one-time extension of the Authorization using a Do
                  Reauthorization. Merchants get around these limitations by choosing to perform an Order
                    transaction instead of an Authorization. Orders provide greater flexibility with fewer time
                    constraints when handling products or services that not immediately available.
                    An Authorization uses the same parameters as a Sale transaction except that TRXTYPE is A.
                    See Express Checkout Sale Transaction Example for details.
                    To set up an Authorization, set these parameters in the Set Express Checkout, Get Express
                    Checkout Details, and Do Express Checkout Payment requests:
                    z   Set Express Checkout request: TRXTYPE=A, ACTION=S
                    z   Get Express Checkout Details request (optional): TRXTYPE=A, ACTION=G
                    z   Do Express Checkout Payment request: TRXTYPE=A, ACTION=D
                    Note the value of PNREF in the Do Express Checkout Payment response, for example:
                    RESULT=0
                    &PNREF=EFHP0CDBF5C7
                    &RESPMSG=Approved
                    &TOKEN=EC-17C76533PL706494P
                    &PAYERID=FHY4JXY7CV9PG
                    &PPREF=2P599077L3553652G
                    To capture authorized funds, you use the PNREF to reference the original Authorization
                    transaction. See Delayed Capture for details.
       Order
                    An Order transaction represents an agreement to pay one or more authorized amounts up to
                    the specified total over a maximum of 29 days.
                    Orders provide you with greater flexibility in delivering merchandise than Authorizations. You
                    should use an Order when a Sale or an Authorization with a single Do Reauthorization do not
                    meet your needs. Situations in which Orders are appropriate include the handling of the
                    following:
                    z   Back orders, in which you send available merchandise immediately and the remaining
                        merchandise, as it is available
                    z   Split orders, in which you send merchandise in more than one shipment—perhaps to
                        different addresses—and you want to collect a payment for each shipment
                    z   Drop shipments, or shipments from other vendors, for which you accept the payment
                    To create multiple authorizations of the Order over the 29-day period, use the Do
                    Authorization transaction. Each Do Authorization places the buyer’s funds on hold for up
                    to three days. If the three-day honor period or the valid authorization period expires, simply
                    create another Do Authorization.
                    To set up an Order,
                    1. Set TRXTYPE=O in the Set Express Checkout, Get Express Checkout Details, and Do
                       Express Checkout Payment requests in your Express Checkout flow.
         Do Reauthorization
                    To reauthorize an Authorization for an additional three-day honor period, you can use a Do
                    Reauthorization transaction. A Do Reauthorization can be used at most once during the 29-day
                    authorization period.
                    To set up a Do Reauthorization, you must pass the following parameters in the request string:
                    z   Set ORIGID=PNREF (PNREF returned in the original Authorization response)
                    z   Set TRXTYPE=A
                    z   Set DoReauthorization=1
                    This is an example Do Reauthorization request string with required parameters:
                    "TRXTYPE=A
                    &TENDER=P
                    &PARTNER=partner
                    &USER=user
                    &VENDOR=vendor
                    &PWD=pwd
                    &ORIGID=EFHP0CDBF5C7
                    &DOREAUTHORIZATION=1"
       Do Authorization
                    A Do Authorization transaction represents an agreement to pay and places the buyer’s funds
                    from the original Order transaction on hold for up to three days. It does not transfer funds.
                    N O T E : You
                                can only use Do Authorization if the original transaction in the Express Checkout
                            flow is an Order. You cannot use Do Reauthorization against a Do Authorization.
                    To set up a Do Authorization, you must pass the following parameters in the request string:
                    z   Set ORIGID=PNREF (PNREF value returned in the original Order transaction response
                        only)
                        N O T E : Do
                                   not pass the PPREF returned from the original Order transaction in place of the
                                PNREF.
                    z   Set TRXTYPE=A
                    In this example, the PNREF returned in the original Order response is EFHP0CDBF7D9. This is
                    the Do Authorization request string:
                    "TRXTYPE=A
                    &TENDER=P
                    &PARTNER=partner
                    &USER=user
                    &VENDOR=vendor
                    &PWD=pwd
                    &ORIGID=EFHP0CDBF7D9"
       Delayed Capture
                    A Delayed Capture transaction captures authorized funds and transfers them to PayPal. Once a
                    capture is approved, you will see the funds in your PayPal account.
                    You can capture up to the amount specified in the original Authorization.
         Complete Capture
                   To set up a capture of the total amount in the original Authorization, you must pass the
                   following parameters in the Delayed Capture request string:
                   z   Set ORIGID=PNREF (PNREF value returned in the original Authorization, Do
                       Authorization, or Do Reauthorization transaction response)
                   z   Set TRXTYPE=D
                   This is an example Delayed Capture request string with required parameters.
                   "TRXTYPE=D
                   &TENDER=P
                   &PARTNER=partner
                   &USER=user
                   &VENDOR=vendor
                   &PWD=pwd
                   &ORIGID=EFHP0CDBF5C7"
         Partial Capture
                   To set up a partial capture of authorized funds, pass the following parameters in the Delayed
                   Capture request string:
                   z   Set ORIGID=PNREF (PNREF value returned in the original Authorization, Do
                       Authorization, or Do Reauthorization transaction response)
                   z   Set TRXTYPE=D
                   z   Set the value for AMT
                   z   Set CAPTURECOMPLETE=N to perform a partial capture; set CAPTURECOMPLETE=Y to void
                       any remaining amount of the original authorized transaction
                   This example is based on an initial Authorization for $100. You charge $66 for the first partial
                   shipment using a Delayed Capture transaction. You charge the $34 for the final part of the
                   shipment using a second Delayed Capture transaction.
                   1. Capture the authorized funds for a partial shipment of $66.
                       "TRXTYPE=D
                       &TENDER=C
                       &PWD=SuperUserPassword
                       &PARTNER=PayPal
                       VENDOR=SuperMerchant
                       USER=SuperMerchant
                       &CAPTURECOMPLETE=N
                       &ORIGID=EFHP0D426A51
                       &AMT=66.00"
                   2. Once you have shipped the remainder of the merchandise, capture the $34 balance.
                       TRXTYPE=D&TENDER=C&PWD=SuperUserPassword&PARTNER=PayPal&VENDOR=SuperMerc
                       hant&USER=SuperMerchant&CAPTURECOMPLETE=Y&ORIGID=EFHP0D426A51&AMT=34.00
       Void
                    A Void transaction voids any of the following transaction types:
                    z   Order
                    z   Authorizations (Authorization, Do Authorization, or Do Reauthorization)
                    N O T E : You can use a Void transaction only on transactions that have not yet settled. To refund
                            a customer’s money for a settled transaction, you must use a Credit transaction.
                    If you void an unsettled transaction, the full authorized amount of the original transaction
                    becomes void and can no longer be captured.
                    N O T E : As part of its internal process, PayPal makes reasonable effort to process authorization
                            reversals for void transactions for debit and credit cards. However, there is no
                            guarantee authorization reversal requests will be honored.
                    To set up a Void transaction, you must pass the following parameters in the request string:
                    z   Set ORIGID=PNREF (PNREF value returned in the response to the original Authorization or
                        Order)
                    z   Set TRXTYPE=V
                    This is an example Void transaction request string with the required parameters set.
                    "TRXTYPE=V
                    &TENDER=P
                    &PARTNER=partner
                    &USER=user
                    &VENDOR=vendor
                    &PWD=pwd
                    &ORIGID=EFHP0CDBF5C7"
       Credit
                    A Credit transaction refunds the buyer for a settled transaction. Credit transactions are
                    permitted only against existing Sale and Delayed Capture transactions.
                    To set up a Credit transaction request, you must pass the following parameters in the request
                    string:
                    z   Set ORIGID=PNREF (PNREF value returned in the response to the original Sale or Delayed
                        Capture)
                    z   Set TRXTYPE=C
                    z   Set the value for AMT if the amount of the credit differs from the original Sale or Delayed
                        Capture transaction
                    This is an example Credit request string with the required parameters set:
                  "TRXTYPE=C
                  &TENDER=P
                  PARTNER=partner
                  VENDOR=vendor
                  &USER=user
                  &PWD=password
                  &ORIGID=EFHP0D426A62
                  &AMT=45.00"
                  Say, for example, a buyer purchases merchandise from a particular merchant using the buyer’s
                  PayPal account. The merchant can send a Memo Post Sale (above transaction) to Paymentech
                  so Paymentech can include that Sale information in the merchant’s Paymentech account. The
                  advantage to the merchant is that the merchant can view PayPal Sale activities in their
                  Paymentech reports.
                  The merchant uses a Memo Post Credit to send the buyer’s Credit transaction information to
                  Paymentech so the merchant can see the buyer’s Credit information in their Paymentech
                  reports.
                     Transaction response parameters indicate the status of the transaction and return requested
                     information.
                     z   Response Parameters
                     z   Address Verification Service Responses From PayPal
                     z   Card Security Code Results
                     z   PNREF Value
                     z   RESULT Values and RESPMSG Text
       Response Parameters
                     When a transaction finishes, the server returns a response string made up of name-value pairs.
                     For example, this is a response to a Sale transaction request:
                     RESULT=0
                     &PNREF=EFHP0D426A53
                     &RESPMSG=APPROVED
                     &AUTHCODE=25TEST
                     &AVSADDR=Y
                     &AVSZIP=N
                     &CVV2MATCH=Y
                     &PPREF=68W3371331353001F
                     &CORRELATIONID=2dc60e253495e
                     Express Checkout transaction responses include the response parameters described below as
                     well as parameters returned by the specific transaction type (TRXTYPE) and ACTION.
         Parameter                       Description
         RESULT                          The outcome of the attempted transaction. A result of 0 (zero) indicates the
                                         transaction was approved. Any other number indicates a decline or error.
                                         N O T E : The PayPal processor may also return a warning message in the
                                                RESPMSG string when RESULT=0. For more information on corrective
                                                actions, see the PayPal developer documentation on Developer Central.
                                         Limitations: Numeric.
         PNREF                           Payflow Transaction ID, a unique 12-character alphanumeric string that
                                         identifies the transaction.
         Parameter                      Description
         PPREF                          Unique PayPal transaction ID of the payment.
                                        If the request ACTION was A (Authorization), you should store the value of
                                        PPREF if you need to research a specific transaction with PayPal.
                                        Limitations: 17-character string.
         RESPMSG                        The response message returned with the transaction result. Exact wording varies.
                                        Sometimes a colon appears after the initial RESPMSG followed by more detailed
                                        information.
                                        N O T E : The PayPal processor may also return a warning message in the
                                                RESPMSG string when RESULT=0. For more information on corrective
                                                actions, see the PayPal developer documentation on Developer Central.
                                        Limitations: Alphanumeric.
         CORRELATIONID                  Value used for tracking.
                                        Limitations: 13-character alphanumeric string.
         PayPal
         Processor
         Address
         Verification
         Service Code      Meaning                                                 AVSADDR            AVSZIP
         A                 Address                                                 Y                  N
         B                 International “A”                                       Y                  N
         C                 International “N”                                       N                  N
         D                 International “X”                                       Y                  Y
         E                 Not allowed for MOTO (Internet/Phone) transactions      X                  X
         F                 UK-specific “X”                                         Y                  Y
         G                 Global Unavailable                                      X                  X
         I                 International Unavailable                               X                  X
         PayPal
         Processor
         Address
         Verification
         Service Code      Meaning                                                  AVSADDR             AVSZIP
         N                 No                                                       N                   N
         P                 Postal (International “Z”)                               N                   Y
         R                 Retry                                                    X                   X
         S                 Service not Supported                                    X                   X
         U                 Unavailable                                              X                   X
         W                 Whole Zip                                                N                   Y
         X                 Exact Match                                              Y                   Y
         Y                 Yes                                                      Y                   Y
         Z                 Zip                                                      N                   Y
         All other                                                                  X                   X
       Normalized Results
                     If you submit the transaction request parameter for card security code (that is, the CVV2
                     parameter), the cardholder’s bank returns a normalized Yes/No response in the CVV2MATCH
                     response parameter, as described in the table below.
         PNREF Value
                     The PNREF is a unique transaction identification number issued by PayPal that identifies the
                     transaction for billing, reporting, and transaction data purposes. The PNREF value appears in
                     the Transaction ID column in PayPal Manager reports.
                     z   The PNREF value is used as the ORIGID value (original transaction ID) in Delayed Capture
                         transactions (TRXTYPE=D), Credits (TRXTYPE=C), Inquiries (TRXTYPE=I), and Voids
                         (TRXTYPE=V).
                     z   The PNREF value is used as the ORIGID value (original transaction ID) value in reference
                         transactions for Authorization (TRXTYPE=A) and Sale (TRXTYPE=S).
                     N O T E : The   PNREF is also referred to as the Transaction ID in PayPal Manager.
         PNREF Format
                     The PNREF is a 12-character string of printable characters, for example:
                     z   VADE0B248932
                     z   ACRAF23DB3C4
                     N O T E : Printable
                                      characters also include symbols other than letters and numbers such as the
                             question mark (?). A PNREF typically contains letters and numbers only.
                     The PNREF in a transaction response tells you that your transaction is connecting to PayPal.
0 Approved
                   2             Invalid tender type. Your merchant bank account does not support the following
                                 credit card type that was submitted.
                   3             Invalid transaction type. Transaction type is not appropriate for this transaction.
                                 For example, you cannot credit an authorization-only transaction
                   4             Invalid amount format. Use the format: “#####.##” Do not include currency
                                 symbols or commas.
                   12            Declined. Check the credit card number, expiration date, and transaction
                                 information to make sure they were entered correctly. If this does not resolve the
                                 problem, have the customer call their card issuing bank to resolve.
                   19            Original transaction ID not found. The transaction ID you entered for this
                                 transaction is not valid. See RESPMSG
30 Duplicate transaction
104 Timeout waiting for processor response. Try your transaction again.
                     105           Credit error. Make sure you have not already credited this transaction, or that this
                                   transaction ID is for a creditable transaction. (For example, you cannot credit an
                                   authorization.)
                   108           Void error. See RESPMSG. Make sure the transaction ID entered has not already
                                 been voided. If not, then look at the Transaction Detail screen for this transaction to
                                 see if it has settled. (The Batch field is set to a number greater than zero if the
                                 transaction has been settled). If the transaction has already settled, your only
                                 recourse is a reversal (credit a payment or submit a payment for a credit)
                   112           Failed AVS check. Address and ZIP code do not match. An authorization may still
                                 exist on the cardholder’s account.
                   113           Merchant sale total will exceed the sales cap with current transaction. ACH
                                 transactions only.
                   114           Card Security Code (CSC) Mismatch. An authorization may still exist on the
                                 cardholder’s account.
                   117           Failed merchant rule check. One or more of the following three failures occurred:
                                 An attempt was made to submit a transaction that failed to meet the security
                                 settings specified on the PayPal Manager Security Settings page. If the transaction
                                 exceeded the Maximum Amount security setting, then no values are returned for
                                 AVS or CSC.
                                 AVS validation failed. The AVS return value should appear in the RESPMSG.
                                 CSC validation failed. The CSC return value should appear in the RESPMSG
                   122           Merchant sale total will exceed the credit cap with current transaction. ACH
                                 transactions only.
                     128           Fraud Protection Services Filter — Declined by merchant after being flagged
                                   for review by filters
                     1000          Generic host error. This is a generic message returned by your credit card
                                   processor. The RESPMSG will contain more information describing the error.
                   1016          Buyer Authentication Service — 3-D Secure error response received. Instead of
                                 receiving a PARes response to a Validate Authentication transaction, an error
                                 response was received.
                   1017          Buyer Authentication Service — 3-D Secure error response is invalid. An error
                                 response is received and the response is not well formed for a Validate
                                 Authentication transaction.
                    You can set up the testing of your integration using two methods.
                    z   Testing Your Integration Using the Sandbox
                    z   Testing Your Integration Using the PayPal Simulator
                    You should also create a Buyer account in the Sandbox to make test Express Checkout
                    purchases against your Seller account. Be sure to add a positive balance to the Buyer account
                    at the time of creation.
                   This reference describes all parameters that can be used with the Express Checkout payment
                   solution.
                   z   “Connection Parameter Descriptions” on page 49
                   z   “User Parameter Descriptions” on page 50
                   z   “Express Checkout Parameter Descriptions” on page 51
                   z   “Do Reauthorization Parameter Descriptions” on page 68
                   z   “Do Authorization Parameter Descriptions” on page 67
                   z   “Void Parameter Descriptions” on page 69
                   z   “Credit Parameter Descriptions” on page 70
                   z   “Delayed Capture Parameter Descriptions” on page 71
Parameter Description
                    PARMLIST                (Required) List of parameters that specify the payment information for the
                                            transaction. The quotation marks “ ” at the beginning and end are required.
                                            The following is an example:
                                            "TRXTYPE=S&TENDER=C&PARTNER=Partner&VENDOR=vendor&USER=user&
                                            PWD=password&ACCT=5555555555554444&EXPDATE=0308&AMT=123.00"
                                            The content of the PARMLIST varies by the type of transaction being
                                            processed. For example, a Void transaction requires a different set of
                                            parameters than a Sale.
                    PROXYADDRESS            (Optional) Proxy server address. Use the PROXY parameters for servers
                                            behind a firewall. Your network administrator can provide the values.
Parameter Description
Parameter Description
                 USER                    (Required) If you set up one or more additional users on the account, this
                                         value is the ID of the user authorized to process transactions. If, however,
                                         you have not set up additional users on the account, USER has the same
                                         value as VENDOR.
                                         Limitations: 64 alphanumeric, case-sensitive characters.Limitations: 64
                                         alphanumeric, case-sensitive characters.
                 VENDOR                  (Required) Your merchant login ID that you created when you registered
                                         for the account.
                                         Limitations: 64 alphanumeric, case-sensitive characters.Limitations: 64
                                         alphanumeric, case-sensitive characters.
                 PARTNER                 (Required) The ID provided to you by the authorized PayPal Reseller who
                                         registered you for the Payflow Pro service.
                                         Limitations: 12 alphanumeric, case-sensitive characters.
                 PWD                     (Required) The password that you defined while registering for the
                                         account.
                                         Limitations: Six- to thirty-two alphanumeric, case-sensitive characters.
Parameter Description
                    CURRENCY              (Required) One of the supported currency codes. See “Currency Codes”
                                          on page 73.”
                    CANCELURL             (Required) URL to which the customer is returned if the customer cancels
                                          the order.
                                          Limitations: Character string with no maximum length.
Parameter Description
                L_BILLINGTYPEn         (Optional) Describes the billing type for a PayPal account. The possible
                                       values are:
                                        z RecurringPayments
                                          Use this value to use the TOKEN returned by the Set Express Checkout
                                          response as a parameter in a request to create a Recurring Payments
                                          profile. See Website Payments Pro Payflow Edition - Recurring
                                          Payments Developer’s Guide for details.
                                       Each L_BILLINGTYPEn must have a corresponding description string
                                       (L_BILLINGAGREEMENTDESCRIPTIONn), where n is a value from 0 to 9.
                                       N O T E : If you pass L_BILLINGTYPEn and BILLINGTYPE, the
                                               BILLINGTYPE parameter will be ignored.
                                       Character length and limitations: A string. n is a value in the range 0-9.
                L_BILLINGAGREEMEN      (Optional) Describes the billing type for a PayPal account. See
                TDESCRIPTIONn          L_BILLINGTYPEn.
                                       Character length and limitations: A string. n is a value in the range 0-9.
                BA_CUSTOM              (Optional) Custom annotation field for your exclusive use with billing
                                       agreements.
                                       Limitations: 255-character string
Parameter Description
                    L_DESCn               (Optional) Line-item description for each different item purchased such as
                                          hiking boots or cooking utensils.
                                          N O T E : You can view line item information in the Transaction Details
                                                 report in your PayPal merchant account.
                                          Limitations: 35-character string.
                    L_COSTn               (Required if L_QTYn is supplied) Cost of the line item. The line-item unit
                                          price can be a positive or a negative value but not 0.
                                          N O T E : You must set CURRENCY to one of the three-character currency
                                                 codes for any of the supported PayPal currencies. See CURRENCY
                                                 in this table for details.
                                          Limitations: Nine numeric characers plus decimal (.) character. No
                                          currency symbol. Specify the exact amount to the cent using a decimal
                                          point—use 34.00, not 34. Do not include comma separators—use 1199.95
                                          not 1,199.95.
                                          Nine numeric characters plus decimal.
                    ITEMAMT               (Required if L_COSTn is specified) Sum of cost of all items in this order.
                                          Limitations: Nine numeric characers plus decimal (.) character. No
                                          currency symbol. Specify the exact amount to the cent using a decimal
                                          point—use 34.00, not 34. Do not include comma separators—use 1199.95
                                          not 1,199.95.
                    TAXAMT                (Required if L_TAXAMTn is specified) Sum of tax for all items in this
                                          order.
                                          Limitations: Nine numeric characers plus decimal (.) character. No
                                          currency symbol. Specify the exact amount to the cent using a decimal
                                          point—use 34.00, not 34. Do not include comma separators—use 1199.95
                                          not 1,199.95.
Parameter Description
                DISCOUNT               (Optional) Shipping discount for this order. Specify the discount as a
                                       positive amount.
                                       Limitations: Nine numeric characers plus decimal (.) character. No
                                       currency symbol. Specify the exact amount to the cent using a decimal
                                       point—use 34.00, not 34. Do not include comma separators—use 1199.95
                                       not 1,199.95.
                MAXAMT                 (Optional) The expected maximum total amount of the complete order,
                                       including shipping and tax charges.
                                       Limitations: Nine numeric characers plus decimal (.) character. No
                                       currency symbol. Specify the exact amount to the cent using a decimal
                                       point—use 34.00, not 34. Do not include comma separators—use 1199.95
                                       not 1,199.95.
                CUSTOM                 (Optional) Free-form field for your own use such as a tracking number or
                                       other value you want PayPal to return in the Get Express Checkout Details
                                       response.
                                       Limitations: 256-character alphanumeric string.
Parameter Description
                    REQBILLINGADDRESS     (Optional) Is 1 or 0. The value 1 indicates that you require that the
                                          customer’s shipping address on file with PayPal be a confirmed address.
                                          Setting this element overrides the setting you have specified in your
                                          Merchant Account Profile.
                                          Limitations: One character.
                    REQCONFIRMSHIPPIN     (Optional) Is 1 or 0. The value 1 indicates that you require that the
                    G                     customer’s shipping address on file with PayPal be a confirmed address.
                                          Setting this element overrides the setting you have specified in your
                                          Merchant Account Profile
                                          Limitations: One character.
                    ADDROVERRIDE          (Optional) Is 1 or 0. The value 1 indicates that the PayPal pages should
                                          display the shipping address set by you in the shipping address (SHIPTO*
                                          parameters) passed to this Set Express Checkout request, not the shipping
                                          address on file with PayPal for this customer.
                                          Limitations: Four-character string.
Parameter Description
                PAGESTYLE              (Optional) Sets the Custom Payment Page Style for payment pages
                                       associated with this button/link. PageStyle corresponds to the HTML
                                       variable page_style for customizing payment pages
                                       The value is the same as the Page Style Name you chose when adding or
                                       editing the page style from the Profile subtab of the My Account tab of
                                       your PayPal account.
                                       Limitations: 30-character alpha string.
                HDRIMG                 (Optional) A URL for the image you want to appear at the top left of the
                                       payment page. The image has a maximum size of 750 pixels wide by 90
                                       pixels high. PayPal recommends that you provide an image that is stored
                                       on a secure (https) server.
                                       Limitations: 127-character string.
                HDRBORDERCOLOR         (Optional) Sets the border color around the header of the payment page.
                                       The border is a two-pixel perimeter around the header space, which is 750
                                       pixels wide by 90 pixels high.
                                       Limitations: Six-character HTML hexadecimal color code in ASCII.
                HDRBACKCOLOR           (Optional) Sets the background color for the header of the payment page.
                                       Limitations: Six-character HTML hexadecimal color code in ASCII.
                PAYFLOWCOLOR           (Optional) Sets the background color for the payment page.
                                       Limitations: Six-character HTML hexadecimal color code in ASCII.
                SHIPTOSTREET2          (Optional) Extended Ship-to street address. Example: Bldg. 6, Mail Stop
                                       3.
                                       Limitations: 30-character string.
Parameter Description
Parameter Description
                    TOKEN                  A time-stamped value by which you identify to PayPal that you are
                                           processing this payment with Express Checkout.
                                           The token expires after three hours.
                                           If you set TOKEN in the Set Express Checkout request, the value of TOKEN
                                           in the response is identical to the value in the request.
                                           Limitations: 20-character string.
Parameter Description
Parameter Description
Parameter Description
                    DISCOUNT              Shipping discount for this order. Specify the discount as a positive
                                          amount.
                                          Limitations: Nine numeric characers plus decimal (.) character. No
                                          currency symbol. Specify the exact amount to the cent using a decimal
                                          point—use 34.00, not 34. Do not include comma separators—use 1199.95
                                          not 1,199.95.
                    ADJUSTMENTAMT         A discount or gift certificate offered by PayPal to the buyer. This amount
                                          will be represented by a negative amount. If the buyer has a negative
                                          PayPal account balance, PayPal adds the negative balance to the
                                          transaction amount, which is represented as a positive value. The negative
                                          amount is returned for Payflow merchants.
                                          N O T E : To test this value as a negative amount agaist the simulator, send
                                                 the amount as 1250 in the Set Express Checkout request and use
                                                 the returned TOKEN in the Get Express Checkout Details request to
                                                 see the ADJUSTMENTAMT response as a negative value.
                                          Limitations: Nine numeric characers plus decimal (.) character. No
                                          currency symbol. Specify the exact amount to the cent using a decimal
                                          point—use 34.00, not 34. Do not include comma separators—use 1199.95
                                          not 1,199.95.
Parameter Description
                CUSTOM                 Free-form field for your own use as set by you in the Set Express
                                       Checkout request.
                                       Limitations: 256-character alphanumeric string.
                INVNUM                 Merchant invoice number. If you do not provide an invoice number, the
                                       transaction ID (PNREF) will be submitted.
                                       Limitations: Nine-character alphanumeric string.
Parameter Description
Parameter Description
                ADDRESSSTATUS          Status of the bill-to address on file with PayPal. The values are:
                                        z Y = confirmed
                                        z N = unconfirmed
Parameter Description
Parameter Description
                    ORDERURL              (Optional) Your URL for displaying information about this transaction,
                                          such as receipt, shipment tracking, or order details.
                                          Limitations: 127-character alphanumeric string.
                    NOTIFYURL             (Optional) Your URL for receiving Instant Payment Notification (IPN)
                                          about this transaction.
                                          N O T E : If you do not specify NotifyURL in the request, the notification
                                                 URL from your Merchant Profile is used, if one exists.
                                          Limitations: 2048 alphanumeric characters.
Parameter Description
                L_COSTn                (Required if L_QTYn is supplied) Cost of the line item. The line-item unit
                                       price can be a positive or a negative value but not 0.
                                       N O T E : You must set CURRENCY to one of the three-character currency
                                               codes for any of the supported PayPal currencies. See CURRENCY
                                               in this table for details.
                                       Limitations: Nine numeric characers plus decimal (.) character. No
                                       currency symbol. Specify the exact amount to the cent using a decimal
                                       point—use 34.00, not 34. Do not include comma separators—use 1199.95
                                       not 1,199.95.
                                       Nine numeric characters plus decimal.
                ITEMAMT                (Required if L_COSTn is specified) Sum of cost of all items in this order.
                                       Limitations: Nine numeric characers plus decimal (.) character. No
                                       currency symbol. Specify the exact amount to the cent using a decimal
                                       point—use 34.00, not 34. Do not include comma separators—use 1199.95
                                       not 1,199.95.
                TAXAMT                 (Required if L_TAXAMTn is specified) Sum of tax for all items in this
                                       order.
                                       Limitations: Nine numeric characers plus decimal (.) character. No
                                       currency symbol. Specify the exact amount to the cent using a decimal
                                       point—use 34.00, not 34. Do not include comma separators—use 1199.95
                                       not 1,199.95.
Parameter Description
                    DISCOUNT              (Optional) Shipping discount for this order. Specify the discount as a
                                          positive amount.
                                          Limitations: Nine numeric characers plus decimal (.) character. No
                                          currency symbol. Specify the exact amount to the cent using a decimal
                                          point—use 34.00, not 34. Do not include comma separators—use 1199.95
                                          not 1,199.95.
                    SHIPTOSTREET2         (Optional) Extended Ship-to street address. Example: Bldg. 6, Mail Stop
                                          3.
                                          Limitations: 30-character string.
Parameter Description
Parameter Description
                TOKEN                  A time-stamped value by which you identify to PayPal that you are
                                       processing this payment with Express Checkout.
                                       Limitations: 20-character string.
Parameter Description
Parameter Description
Parameter Description
                 AMT                    (Optional) Amount. If you do not pass a value for AMT, the amount of the
                                        original transaction is sent in the Do Authorization request.
                                        Limitations: Nine numeric characers plus decimal (.) character. No
                                        currency symbol. Specify the exact amount to the cent using a decimal
                                        point—use 34.00, not 34. Do not include comma separators—use 1199.95
                                        not 1,199.95.
Parameter Description
Parameter Description
                 TRXTYPE                (Required) How you want to obtain payment. Is A, which indicates that
                                        this payment is an Authorization or a Do Authorization subject to
                                        settlement with the Delayed Capture request.
                                        Limitations: One alpha character.
Parameter Description
                    ORIGID                (Required) Payflow transaction ID, which is the value returned in the
                                          PNREF in the response to the original transaction when:
                                          TRXTYPE=A or TRXTYPE=O.
                                          Limitations: 12 case-sensitive alphanumeric characters.
Parameter Description
Parameter Description
                    ORIGID                (Required) Payflow transaction ID. Set this parameter to the value of the
                                          PNREF returned in the original transaction response when Do Express
                                          Checkout Payment request was submitted with TRXTYPE=O.
                                          Limitations: 12 case-sensitive alphanumeric characters.
                    NOTE                  (Optional) An informal note about this settlement that is displayed to the
                                          customer in email and in the customer’s transaction history
                                          Limitations: 255-character string.
Parameter Description
Parameter Description
                 ORIGID              (Required) Payflow transaction ID. Set this parameter to the value of the
                                     PNREF returned in the original Authorization or Order Do Express
                                     Checkout Payment transaction response.
                                     Limitations: 12 case-sensitive alphanumeric characters.
                 AMT                 (Optional) Required if the amount to credit differs from the original Sale
                                     or Delayed Capture amount.
                                     Limitations:Nine numeric characers plus decimal (.) character. No
                                     currency symbol. Specify the exact amount to the cent using a decimal
                                     point—use 34.00, not 34. Do not include comma separators—use 1199.95
                                     not 1,199.95.
Parameter Description
Parameter Description
                    ORIGID                (Required) Payflow transaction ID. Set this parameter to the value of the
                                          PNREF returned in the original Authorization or Order Do Express
                                          Checkout Payment transaction response.
                                          Limitations: 12 case-sensitive alphanumeric characters.
                    AMT                   (Optional) Required if the capture amount differs from the original
                                          Authorization amount.
                                          Limitations:Nine numeric characers plus decimal (.) character. No
                                          currency symbol. Specify the exact amount to the cent using a decimal
                                          point—use 34.00, not 34. Do not include comma separators—use 1199.95
                                          not 1,199.95.
                    NOTE                  (Optional) An informal note about this settlement that is displayed to the
                                          customer in email and in the customer’s transaction history
                                          Limitations: 255-character string.
                    CAPTURECOMPLETE       (Optional) Indicates if this Delayed Capture transaction is the last capture
                                          you intend to make. The values are:
                                           z Y (default)
                                           z N
Parameter Description
Parameter Description
Code Currency
36 Australian Dollar
978 Euro
     N O T E : This
                  table lists country codes   Country             Code
             defined by ISO 3166-1.
                                              BELARUS             BY
     Table 1: Country Codes
                                              BELGIUM             BE
Country                        Code           BELIZE              BZ
AFGHANISTAN                    AF             BENIN               BJ
ÅLAND ISLANDS                  AX             BERMUDA             BM
ALBANIA                        AL             BHUTAN              BT
ALGERIA                        DZ             BOLIVIA             BO
AMERICAN SAMOA                 AS             BOSNIA AND HERZE-   BA
                                              GOVINA
ANDORRA                        AD
                                              BOTSWANA            BW
ANGOLA                         AO
                                              BOUVET ISLAND       BV
ANGUILLA                       AI
                                              BRAZIL              BR
ANTARCTICA                     AQ
                                              BRITISH INDIAN      IO
ANTIGUA AND BAR-               AG
                                              OCEAN TERRITORY
BUDA
                                              BRUNEI DARUSSALAM   BN
ARGENTINA                      AR
                                              BULGARIA            BG
ARMENIA                        AM
                                              BURKINA FASO        BF
ARUBA                          AW
                                              BURUNDI             BI
AUSTRALIA                      AU
                                              CAMBODIA            KH
AUSTRIA                        AT
                                              CAMEROON            CM
AZERBAIJAN                     AZ
                                              CANADA              CA
BAHAMAS                        BS
                                              CAPE VERDE          CV
BAHRAIN                        BH
                                              CAYMAN ISLANDS      KY
BANGLADESH                     BD
BARBADOS                       BB
                                                                         75
     Country Codes
76
Country                Code   Country              Code
                                                          77
     Country Codes
78
Country               Code   Country               Code
                                                          79
     Country Codes
Country Code
80
Index
A DISCOUNT parameter 59
                                      F
B
                                      FEEAMT parameter 66
BA_CUSTOM parameter 52
                                      Forint 73
BA_DESC parameter 52
BAID parameter 57
BILLINGTYPE parameter 52              H
BILLTONAME parameter 60
                                      HDRBACKCOLOR parameter 56
BUTTONSOURCE parameter 63
                                      HDRBORDERCOLOR parameter 56
                                      HDRIMG parameter 56
C                                     Hong Kong Dollar 73
                                      Hungarian Forint 73
Canadian Dollar 73
CANCELURL parameter 13, 51
CAPTURECOMPLETE parameter 32, 71      I
CITY parameter 61
                                      INVNUM parameter 54, 60, 63
COLOR parameter 56
                                      Israeli New Sheqel 73
CORRELATIONID parameter 36
COUNTRYCODE parameter 61
COUNTRYNAME parameter 61              J
currency code format 53, 54, 64, 65
currency codes 73                     Japanese Yen 73
CURRENCY parameter 51
CUSTOM parameter 54, 60, 63           K
Customer Support 7
CVV2MATCH parameter 37                Koruna 73
Czech Koruna 73                       Krona 73
                                      Krone 73
D
Danish Krone 73
     Index
     L                                 ADDROVERRIDE 55
                                       AMT 12, 15, 51, 63, 68, 70, 71
     L_BILLINGAGREEMENTDESCRIPTIONn    AVSADDR 62
         parameter 52
                                       BA_CUSTOM 52
     L_BILLINGTYPEn parameter 52
                                       BA_DESC 52
     L_COSTn parameter 53
                                       BAID 57
     L_DESCn parameter 53
                                       BILLINGTYPE 52
     L_NAMEn parameter 52
                                       BILLTONAME 60
     L_QTYn parameter 53
                                       BUTTONSOURCE 63
     L_TAXAMTn parameter 53, 64
                                       CALCELURL 13
     LOCALECODE parameter 55
                                       CANCELURL 51
                                       CAPTURECOMPLETE 32, 71
     M                                 CITY 61
                                       COLOR 56
     MAXAMT parameter 54
                                       CORRELATIONID 36
     MEMO parameter 70
                                       COUNTRYCODE 61
     Mexican Peso 73
                                       COUNTRYNAME 61
                                       CUSTOM 54, 60, 63
     N                                 CVV2MATCH 37
                                       DISCOUNT 59
     New Zealand Dollar 73             EMAIL 56, 58
     Norwegian Krone 73                FEEAMT 66, 67
     NOSHIPPING parameter 55
                                       HDRBACKCOLOR 56
     NOTE parameter 59, 67, 69, 71     HDRBORDERCOLOR 56
     NOTIFYURL parameter 63            HDRIMG 56
                                       HOSTADDRESS 49
     O                                 HOSTPORT 49, 50
                                       INVNUM 54, 60, 63
     operation                         L_BILLINGAGREEMENTDESCRIPTIONn 52
       testing 47                      L_BILLINGTYPEn 52
     ORDERDESC parameter 54, 63        L_COSTn 53
     ORIGID parameter 68, 69, 70, 71   L_DESCn 53
                                       L_NAMEn 52
     P                                 L_QTYn 53
                                       L_TAXAMTn 53, 64
     PAGESTYLE parameter 56            LOCALECODE 55
     PARTNER parameter 50              MAXAMT 54
     PAYERID                           NOSHIPPING 55
       in RETURNURL 15                 NOTE 69, 71
     PAYERID parameter 58, 63          NOTIFYURL 63
     PAYERSTATUS parameter 59          ORDERDESC 54, 63
     Payflow parameter                 ORIGID 38, 68, 69, 70, 71
       CURRENCY 51                     PAGESTYLE 56
       MEMO 70                         PARMLIST 49
     Payflow parameters                PARTNER 50
       ACTION 12, 14, 15, 51, 58, 62   PAYERID 15, 58, 63
       ADDRESSOWNER 62                 PAYERSTATUS 59
     Y
     Yen 73
     Z
     ZIP parameter 61
     Zloty 73