PFP ExpressCheckout PP
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