Notice of non-liability:
PayPal, Inc. is providing the information i n this document t o you “AS-IS” with all faults. PayPal, Inc. makes no warranties of any kind (whether express,
implied or statutory) with respect to the information co ntained 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 t his document or result ing from the ap plication or use
of the product or service described herein. PayPal, Inc. reserves the right to make changes to any information herein without further notice.
This document defines an XML syntax for payment transaction requests, responses, and
receipts in a payment processing network.
Intended Audience
The typical user of XMLPay is an Internet merchant or merchant aggregator who wants to
dispatch credit card, corporate purchase card, Automated Clearing House (ACH), or other
payment requests to a financial processing network.
Organization of This Document
This document is organized as follows:
z Chapter 1, “XMLPay Overview,” describes XML and XMLPay, presenting processing
models, networking, messaging and related specifications.
z Chapter 2, “XMLPay Syntax,” presents the syntax for transaction requests, responses, and
receipts using a simplified notation.
z Chapter 3, “XMLPay Elements,”provides tables defining the existing Payflow SDK
parameters (name/value pairs) and their XMLPay equivalents.
z Chapter 4, “XMLPay Transaction Profiles,” lists the transactions supported for each tender
type—ACH, Card, Check—along with the data elements used for each of those
transactions.
z Chapter 5, “XMLPay Examples,” gives several XMLPay document samples.
z Appendix A, “XMLPay Schemas,” provides standard W3C schemas for XMLPay and
XMLPay Types.
z Appendix B, “XMLPay DTD,” presents the Document Type Definition XMLPay schema.
z Appendix C, “Transaction Results,” lists transaction result codes and response messages as
well as Address Verification Service (AVS) result codes.
Where to Go For More Information
This guide is not the complete source of all the information you need to develop Payflow
applications. Use the Payflow Pro Developer’s Guide along with this guide. It provides
XMLPay Developer’s Guide7
Preface
How to Contact Customer Service
detailed descriptions of all the Payflow name-value pair parameters. In addition, it contains
testing data, the test and live URLs, and error codes.
How to Contact Customer Service
For problems with transaction processing or connections, contact Customer Service by
opening a ticket on the Contact Support tab at http://www.paypal.com/mts.
Revision History
Revision history for Website Payments Pro Payflow Edition—XMLPay Developer’s Guide.
DateDescription
December 2009Added an example of using ExtData to pass values for unsupported NVP tags.
October 2008Added a card credit request example. Renamed the existing credit request example Card
Refereence Credit Request.
Updated the RESULT values and RESPMSG table.
February 2008Minor updates for technical accuracy.
December 2007Updated host addresses in RESULT values and RESPMSG table.
August 2007Updated RESPMSD text.
Updated PayPal logo.
May 2007Represents a merge of content from two separate XMLPay developer guides.
Corrections for technical accuracy.
February 2007Updated transaction RESULT values and RESPMSG text.
August 2006Updated URLs to PayPal test and live servers.
May 2006Reformatted in PayPal templates.
Integrated Direct Payment feature.
March 2006Integrated Express Checkout feature.
8XMLPay Developer’s Guide
1
About XML
XML (eXtensible Markup Language) is derived from Standardized General Markup
Language (SGML) and HyperText Markup Language (HTML). In a sense, XML is SGML
“lite”, but XML manages to maintain SGML’s strength as well as HTML’s simplicity. What’s
more, XML can be converted to HTML.
The main advantage of XML is that text can be meaningfully annotated. In XML, markers
identify and tag the text. But the markers themselves have no defined meaning; it is the
applications that define the markers.
XML allows complex transactions to be structured. Client integration is simplified through the
exchange of XML documents. Since XML provides support for digital signatures, documents
from unknown sources can be trusted. In addition, XML can easily produce large documents
such as transaction logs and reports.
XMLPay Overview
Benefits of XML
The main benefits of XML are that it:
z Allows text annotation
z Presents text, data, and content to applications as a structured document
z Facilitates integration of diverse applications
z In addition to these benefits, XML is easy to:
z Read (all text)
z Parse and validate
z Search for content
z Produce
Well-formed XML Document
A well-formed XML document conforms to XML syntax and must have:
z An XML processing instruction at the beginning (prolog)
z A single root element
z Matching (case sensitive) start and end tags for all elements
z All XML elements properly nested
z Attribute values in quotes
XMLPay defines an XML syntax for payment transaction requests and responses in a payment
processing network.
The typical user of XMLPay is an Internet merchant or merchant aggregator who wants to
dispatch credit card, corporate purchase card, Automated Clearing House (ACH), or other
payment requests to a financial processing network.
Using the data type definitions specified by XMLPay, a user creates a client payment request
and dispatches it—using a mechanism left unspecified by XMLPay—to an associated
XMLPay-compliant server component. Responses (also formatted in XML) convey the results
of the payment requests to the client.
NOTE: For specific examples of how to submit XML documents using the Website Payments
Pro Payflow Edition client service, see the PayPal Manager Download package.
XMLPay Instruments
XMLPay supports payment processing using the following payment instruments:
z Retail credit and debit cards
10XMLPay Developer’s Guide
z Corporate purchase cards: Levels 1, 2, and 3
HTTPS (typical)
XMLPay
Payment
Gateway
Seller
Buyer
Payment
Processor
Financial
networks
Merchant
Web Store
Card 3455-342
$37.95
BUY
z Automated Clearing House (ACH)
XMLPay Operations
Typical XMLPay operations include:
z Funds authorization and capture
z Sales and repeat sales
z Voiding of transactions
XMLPay Processing Models
XMLPay is intended for use in both Business-to-Consumer (B2C) and Business-to-Business
(B2B) payment processing applications.
XMLPay Overview
XMLPay Processing Models
1
Business-to-Consumer
In a B2C Sale transaction, the Buyer presents a payment instrument (for example, a credit card
number) to a Seller to transfer money from the Buyer to the Seller.
The Seller uses XMLPay to forward the Buyer’s payment information to a Payment Processor.
The Seller formats an XMLPayRequest and submits it either directly to an XMLPaycompliant payment processor or, as pictured, indirectly via an XMLPay-compliant Payment
Gateway. Responses have the type XMLPayResponse.
The Buyer-to-Seller and Payment Gateway-to-Processor channels are typically left unaffected
by use of XMLPay. For example, XMLPay is typically not used in direct communications
between the buyer and the seller. Instead, conventional HTML form submission or other
Internet communication methods are typically used. Similarly, because Payment Processors
often differ considerably in the formats they specify for payment requests, XMLPay server
logic is usually localized at the Payment Gateway, leaving the legacy connections between
gateways and processors unchanged.
XMLPay Developer’s Guide11
XMLPay Overview
XMLPay
Payment
Gateway
Sellers
Buyers
Payment
Processor
Financial
networks
Trading
Exchange
1
XMLPay Messaging
Business-to-Business
When used in support of B2B transactions, the Seller does not typically initiate XMLPay
requests. Instead, an aggregator or trading exchange uses XMLPay to communicate businessfocused purchasing information (such as level 3 corporate purchase card data) to a payment
gateway.
In this way, the Trading Exchange links payment execution to other XML-based
communications between Buyers and Sellers such as Advance Shipping Notice delivery,
Purchase Order communication, or other B2B communication functions.
XMLPay Messaging
The highest-level XMLPay structures represent payment transaction requests and responses.
12XMLPay Developer’s Guide
XMLPayRequest
<RequestData>
<MerchantId>
<Transactions>
<RequestAuth>
<XMLPayRequest>
Payment transactions are submitted, one or more at a time, as XMLPayRequest documents.
The high-level structure of a request looks like this:
XMLPay Overview
XMLPay Messaging
1
Merchant ID identifies the merchant of record for the transaction within the target payment
processing network. The merchant of record may be different from the submitting party in a
delegated processing model.
Transactions is the list of payment transactions to be processed. XMLPay supports up to 32
transactions per XMLPay document submission.
RequestAuth is an optional structure used to authenticate the submitting party, in the absence
of transport level authentication.
See Chapter 2, “XMLPay Syntax,” for a detailed description of request documents.
XMLPayResponse
Each XMLPayRequest submission produces a corresponding XMLPayResponse document
containing results for each submitted transaction request. The high-level structure of a
response looks like this:
XMLPay Developer’s Guide13
XMLPay Overview
<ResponseData>
<MerchantId>
<TransactionResults>
<Signature>
<XMLPayResponse>
<TransactionReceipts>
1
XMLPay Messaging
NOTE: Signature and TransactionReceipts are not supported on the Payment server.
See Chapter 2, “XMLPay Syntax,” for a detailed description of response documents.
14XMLPay Developer’s Guide
XMLPay Syntax
2
This chapter presents the syntax for transaction requests and responses using a simplified
notation.
z Appendix A, “XMLPay Schemas,” provides the complete syntax, expressed in W3C
XML-schema notation.
z Appendix B, “XMLPay DTD,” provides a document type definition (DTD) representation
of the schema.
Syntax Notation
The following example presents the notation used to describe XMLPay document:
elementIndicates the occurrence of a (possibly complex) XML element (for
example, <element>...</element>) defined elsewhere.
?Indicates an optional element.
|Separates alternative elements, any one of which is allowed.
+Indicates that one or more occurrences of an element are allowed.
*Indicates that zero or more occurrences of an element are allowed.
NOTE: The Payflow SDK SDK download package provides specific examples of XML
documents using the Pro client service.
The XMLPayRequest Document (Transactions)
<XMLPayRequest Timeout="30" ve rsion = "2.0">
<RequestData>
(Vendor)
(Partner)
<Transactions>
XMLPay Developer’s Guide15
XMLPay Syntax
2
The XMLPayRequest Document (Transactions)
(Transaction)+
</Transactions>
</RequestData>
(RequestAuth)?
</XMLPayRequest>
AttributeDescription
VendorIden tifies the merchant of record for the transaction within the target
PartnerIdentifies the submitting party.
TransactionDefined on page 16. XMLPay supports up to 32 transactions per
RequestAuthDefined on page 21.
TimeoutThe value of this attribute is ignored.
payment processing network. In a delegated processing model, the
merchant of record may be different from the submitting party.
XMLPay document submission.
Transaction
XMLPay supports up to 32 transactions per XMLPay document submission.
Optional attribute that tracks the transaction through the payment-
processing network. The submitting merchant generates this transaction
identifier, which must be unique among all transactions submitted by that
merchant.
Id need not be globally unique across merchants, since the paymentprocessing network interprets it within the context of the merchant
associated with the transaction. If an Id attribute is provided in a
transaction, it will be included in the matching TransactionResult in the
resultant XMLPayResult.
Similarly, CustRef is a merchant-generated ID identifying a specific
customer of this merchant and associating it with this transaction.
Authorization Transaction
An authorization transaction verifies the availability of funds and reserves them for later
capture.
16XMLPay Developer’s Guide
XMLPay Syntax
The XMLPayRequest Document (Transactions)
<Authorization>
<PayData>
(Invoice)
(Tender)
</PayData>
(ExtData)*
</Authorization>
AttributeDescription
PayDataSpecifies the details of the purchase, within Invoice, as well as the
payment Tender to use.
ExtDataOptional element that may carry extended data (outside the syntax of the
XMLPay schema).
Capture Transaction
A capture transaction transfers the funds secured by a previous authorization transaction,
identified by PNRef, into the merchant’s account.
2
<Capture>
(PNRef)
(Invoice)?
(ExtData)*
</Capture>
AttributeDescription
InvoiceAn updated Invoice may optionally be provided, specifying any changes
in the purchase details from the original invoice in the reference
authorization.
ExtDataOptional element that may carry extended data (outside the syntax of the
XMLPay schema).
Sale Transaction
A sale transaction verifies the availability of funds and captures funds in one step.
<Sale>
<PayData>
(Invoice)
(Tender)
</PayData>
(ExtData)*
</Sale>
AttributeDescription
PayDataSpecifies the details of the purchase, within Invoice, as well as the
payment Tender to use.
XMLPay Developer’s Guide17
XMLPay Syntax
2
The XMLPayRequest Document (Transactions)
AttributeDescription
ExtDataOptional element that may carry extended data (outside the syntax of the
Credit Transaction
A credit transaction reverses a previous sale or capture transaction.
<Credit>
(PNRef|Tender)
(Invoice)?
(ExtData)*
</Credit>
AttributeDescription
PNRef|TenderThe transaction to be credited is identified by PNRef. Acredit may be run
InvoiceIn the case of a partial credit, you must provide Invoice and provide
XMLPay schema).
without a PNRef by providing the Tender for the account to be credited
and Invoice for the amount.
details on the items being returned.
ExtDataOptional element that may carry extended data (outside the syntax of the
XMLPay schema).
Void Transaction
A void transaction cancels a pending sale, capture, or credit.
<Void>
(PNRef)
(ExtData)*
</Void>
AttributeDescription
PNRefThe transaction to be cancelled is identified by PNRef. If the referenced
transaction has already been processed, the void fails.
SetExpressCheckout Transaction
SetExpressCheckout indicates to the server that you are using Express Checkout to obtain
payment from your customer.
<SetExpressCheckout>
(Authorization|Sale)
(ExtData)*
18XMLPay Developer’s Guide
XMLPay Syntax
The XMLPayRequest Document (Transactions)
</SetExpressCheckout>
AttributeDescription
AuthorizationThe Express Checkout transaction: an authorization for payment or a
sale.
ExtDataOptional element that may carry extended data (outside the syntax of the
XMLPay schema).
GetExpressCheckout Transaction
GetExpressCheckout returns information about the customer using Express Checkout,
including the name and address on file at PayPal.
<SetExpressCheckout>
(Authorization|Sale)
(ExtData)*
</SetExpressCheckout>
AttributeDescription
2
AuthorizationThe Express Checkout transaction: an authorization for payment or a
sale.
ExtDataOptional element that may carry extended data (outside the syntax of the
XMLPay schema).
DoExpressCheckout Transaction
DoExpressCheckout obtains payment through Express Checkout for a Sale transaction or
requests an Authorization for a later capture of payment.
<DoExpressCheckout>
(Authorization|Sale)
(ExtData)*
</DoExpressCheckout>
AttributeDescription
AuthorizationThe Express Checkout transaction to be carried out: an authorization for
payment or a sale.
ExtDataOptional element that may carry extended data (outside the syntax of the
XMLPay schema).
ForceCapture Transaction
A ForceCapture transaction captures funds reserved through an out-of-band authorization (for
example, a voice authorization received over the phone).
<ForceCapture>
<PayData>
(Invoice)
XMLPay Developer’s Guide19
XMLPay Syntax
2
The XMLPayRequest Document (Transactions)
(Tender)
</PayData>
(AuthCode)
(ExtData)*
</ForceCapture>
AttributeDescription
AuthCodeAuthorization code received out-of-band.
PayDataSpecifies the details of the purchase, within Invoice, as well as the
ExtDataOptional element that may carry extended data (outside the syntax of the
GetStatus Transaction
A GetStatus transaction queries the status of a previous transaction.
<GetStatus>
(PNRef)
(ExtData)*
</GetStatus>
payment Tender to use.
XMLPay schema).
AttributeDescription
PNRefThe transaction to query is identified by PNRef.
ExtDataOptional element that may carry extended data (outside the syntax of the
XMLPay schema).
VerifyEnrollment Transaction
For the Buyer Authentication Service, this transaction is used to determine whether the card
holder is enrolled in the 3D-Secure program.
Refer to Payflow Pro Fraud Protection Services User’s Guide on the sequence of steps
involved in performing a Buyer Authentication transaction. This transaction is submitted only
to the Buyer Authentication server and not to the core OLTP server.
PayDataSpecifies the details of the credit card used in the purchase.
20XMLPay Developer’s Guide
XMLPay Syntax
The XMLPayRequest Document (Transactions)
AttributeDescription
ExtDataOptional element that may carry extended data (outside the syntax of the
XMLPay schema).
ValidateAuthentication Transaction
For the Buyer Authentication Service, this transaction validates the signature on the PARes
data returned by the issuing bank and parses the authentication information. Refer to Payflow Pro Fraud Pr otection Services User’s Guide on the sequence of steps involved in performing a
Buyer Authentication transaction.
<ValidateAuthentication>
<PARes>
(ExtData)*
</ValidateAuthentication>
AttributeDescription
PAResThe authentication data returned by Issuer's ACS.
2
ExtDataOptional element that may carry extended data (outside the syntax of the
RequestAuth
The RequestAuth element provides authentication of the requestor through either a username
and password, using UserPass, or a digital signature, using Signature.
<RequestAuth>
</RequestAuth>
In the case of a digital signature, the W3C XML Signature syntax is used and the signature is
executed over the RequestData.
UserPass
<UserPass>
</UserPass>
AttributeDescription
XMLPay schema).
(UserPass|Signature)
(User)
(UserDomain)?
(Password)
UserString identifier assigned to a user.
UserDomainNames a partner or a vendor under whose auspice a transaction is being
submitted.
PasswordUser's password (string).
XMLPay Developer’s Guide21
XMLPay Syntax
2
The XMLPayRequest Document (Recurring Profiles)
The XMLPayRequest Document (Recurring Profiles)
A RecurringProfile transaction defines a scheduled payment that enables you to automatically
bill your customers at regular intervals.
VendorIden tifies the merchant of record for the transaction within the target
payment processing network. In a delegated processing model, the
merchant of record may be different from the submitting party.
PartnerIdentifies the submitting party.
RecurringProfileDefined on page 22.
RequestAuthDefined on page 21.
TimeoutThe value of this attribute is ignored.
RecurringProfile
<Profile Id=? CustRef=?>
(Add|Modify|Cancel|Reactivate| Payment|Inquiry
</Profile>
AttributeDescription
Id
Optional attribute that tracks the transaction through the payment-
processing network. The submitting merchant generates this transaction
identifier, which should be unique among all transactions submitted by
that merchant.
Id need not be globally unique across merchants, since the paymentprocessing network interprets it within the context of the merchant
associated with the transaction. If an Id attribute is provided in a
transaction, it will be included in the matching TransactionResult in the
resultant XMLPayResult.
Similarly, CustRef is a merchant-generated ID identifying a specific
customer of this merchant and associating it with this transaction.
22XMLPay Developer’s Guide
XMLPay Syntax
The XMLPayRequest Document (Recurring Profiles)
Add Recurring Profile
Add a new recurring profile either by sending all data required to defin e the profile or by
converting an existing transaction into a profile.
<Add>
(RPData)
(Tender)
</Add>
AttributeDescription
RPDataDescribes recurring profile details. Defined on page 36.
TenderSpecifies type of payment
Modify Recurring Profile
Modify any profile value by sending any subset of the profile parameters, including an
Optional Transaction.
2
<Modify>
(RPData)
(Tender)
(ProfileID)
</Modify>
AttributeDescription
RPDataDescribes recurring profile details. Defined on page 36.
TenderSpecifies type of payment
ProfileIDProfile ID of the profile that you want to modify.
Cancel Recurring Profile
Cancel (deactivate) a recurring profile.
<Cancel>
(ProfileID)
</Cancel>
AttributeDescription
ProfileIDProfile ID of the profile that you want to cancel.
Reactivate Recurring Profile
Reactivate a profile with an inactive status. Profiles can be deactivated for the following
reasons: the term has completed, the profile reached maximum allowable payment failures, or
the profile was canceled.
XMLPay Developer’s Guide23
XMLPay Syntax
2
The XMLPayRequest Document (Recurring Profiles)
<Reactivate>
(RPData)
(Tender)
(ProfileID)
</Reactivate>
AttributeDescription
RPDataDescribes recurring profile details. Defined on page 36.
TenderSpecifies type of payment
ProfileIDProfile ID of the profile that you want to reactivate.
Payment Recurring Profile
The Payment action performs a real-time retry on a previously failed transaction.
<Payment>
(RPData)
(Tender)
(ProfileID)
</Payment>
AttributeDescription
RPDataDescribes recurring profile details. Defined on page 36.
TenderSpecifies type of payment
ProfileIDProfile ID of the profile you want to retrying payment for.
Inquiry Recurring Profile
Inquire about the status of a profile.
<Inquiry>
(ProfileID)
</Inquiry>
AttributeDescription
ProfileIDProfile ID of the profile you want to review.
24XMLPay Developer’s Guide
Core Structures
PayData
<PayData>
(Invoice)
(Tender)
</PayData>
AttributeDescription
InvoiceDescribes the details of a purchase. Defined on page 25.
TenderDescribes the payment instrument. Defined on page 32.
PayDataAuth
XMLPay Syntax
Core Structures
2
Invoice
The PayDataAuth element provides authentication of the payer for an associated PayData,
using either a PKCS-7 format or a W3C XML Signature format digital signature.
CustIPCustomer IP address (filter transactions).
MerchantDescriptonMerchant descriptor. For example, ABCCMPY*FALLCATALOG
MechantServiceNumMerchant telephone number. For example, 603-555-1212
RecurringIdentifies the transaction as recurring. This value does not activate the
Recurring Billing Service. If the RECURRING parameter was set to Y
for the original transaction, then the setting is ignored when forming
Credit, Void, and Force transactions. If you subscribe to the Fraud
Protection Services: T o avoid charging you to filter recurring transactions
that you know are reliable, the fraud filters do not screen recurring
transactions. To screen a prospective recurring customer, submit the
transaction data using PayPal Manager's Transaction Terminal page. The
filters screen the transaction in the normal manner. If the transaction
triggers a filter, then you can follow the normal process to review the
filter results. Format: Y or N
BillTo CustomerId,
Name, Address, EMail,
Phone, Phone2,
PhoneType, and Fax
BillTo PONum Buyer's purchase order number.
BillTo TaxExemptIndicates that the buyer is a tax exempt entity.
ShipCarrierShipping carrier.
ShipMethodShipping method.
ShipFrom and ShipToInformation about the shipping addresses, if different from BillFrom and
Information about the biller.
Information about the buyer.
BillTo respectively.
DescriptionSummary description of the purchase. This field, in the case of an Amex
purchase card, can contain up to four separate descriptions of 40
characters each.
ItemsFull line-item breakdown of the purchase. Defined on page 28.
XMLPay Developer’s Guide27
XMLPay Syntax
2
Core Structures
AttributeDescription
DiscountAmtDiscount to be applied to the item subtotal.
ShippingAmtT o tal of shipping and handling charges. For separate shipping and
handling amounts, use FreightAmt and HandlingAmt, respectively.
DutyAmtDuty fees (if applicable)
TaxAmtTotal of all taxes.
NationalTaxInclBoolean which when true, indicates that the national tax in included in
the TaxAmt.
TotalAmtGrand total (item subtotal - DiscountAmt + ShippingAmt (or
HandlingAmt + FreightAmt) + DutyAmt + TaxAmt).
FreightAmtShipping charges without handling included.
HandlingAmtHandling charges without shipping included.
ItemAmtSum of cost of all items in this order.
Items
CommentFree-form comment about the purchase.
Level3InvoiceSee Table 3.3, “Level 3 (commercial) credit card transaction parameters”
on page 52.
MemoCustom memo about the credit.
CustomFree-form field for your own use, such as a tracking number or other
value you want PayPal to return in the GetExpressCheckout response.
OrderDescDescription of items the customer is purchasing.
ExtDataOptional element that may carry extended data (outside the syntax of the
XMLPay schema).
MerchantInfoMerchant name and location defined on page 30.
AdditionalAmountsDetail of a charge for additional breakdown of the amount, defined in
“AdditionalAmounts” on page 31.
SKUMerchant product SKU.
CustomerHostNameName of the server that the account holder is connected to.
CustomerBrowserAccount holder’s HTTP browser type
Items is a list of line item detail records. Item is defined below.
NumberLine number for the item in the invoice.
SKUMerchant's product code for the item (stock keeping unit).
UPCItem's universal product code.
DescriptionItem's description.
QuantityNumber of units of this item. UnitOfMeasurement provides the
units for Quantity (ISO 31).
UnitPriceCost of each unit.
DiscountAmtDiscount to be applied to this line item.
TaxAmtTotal of all taxes for this line item.
XMLPay Developer’s Guide29
XMLPay Syntax
2
Core Structures
AttributeDescription
ShippingAmtTotal of shipping and handling charges. For separate shipping
and handling amounts, use FreightAmt and HandlingAmt,
respectively.
FreightAmtShipping charges without handling included.
HandlingAmtHandling charges without shipping included.
TotalAmtTotal amount including tax and discount for this line item:
(Quantity * UnitPrice) + TaxAmt - DiscountAmt.
PickUp Address, Time, Date,
and RecordNumber
Delivery Date and TimeExpected delivery date and time.
CostCenterNumberPurchaser's department number to which the item will be billed.
TrackingNumberShipper’s tracking code
CatalogNumberMerchant’s product code (SKU may also be used for the same
UNSPSCCodeUniversal Standard Products and Services Classification. Global
ExtDataOptional element that may carry extended data (outside the
MerchantInfo
<MerchantInfo>
</MerchantInfo>
Shipment pickup information
purpose).
marketplace classification system developed and managed by the
Electronic Commerce Code Management Association
(ECCMA).
MerchantNameMerchant’s name.
MerchantStreetMerchant’s street address, including number .
MerchantCityMerchant’s city name.
MerchantStateMerchant’s state or province. For US addresses, two character s tate codes
should be used.
30XMLPay Developer’s Guide
AttributeDescription
MerchantCountryCodeMerchant’s country code (ISO 3166). Default is US.
MerchantZipMerchant’s postal code.
AcctTypeType of the bank account: checking or savings.
AcctNumAccount number.
ABABank routing number.
AuthTypeMethod of authorization.
PrenoteBoolean. If true, then the purpose of this transaction is not to move
money, but to establish authorization for future transactions to be
submitted on a recurring basis.
ExtDataOptional element that may carry extended data (outside the syntax of the
XMLPay schema).
Card
Retail Credit/Debit and Corporate Purchase Card tender detail.
<Card>
(CardType)
(CardNum)
(ExpDate)
32XMLPay Developer’s Guide
XMLPay Syntax
Core Structures
(CVNum)?
(MagData)?
(NameOnCard)?
(ExtData)*
</Card>
AttributeDescription
CardTypeOptional. Identifies the type of card for the merchant’s records. Card
types are:
Visa
MasterCard
Amex
JCB
Discover
DinersClub
The server does not use this value, but rather uses the card number to
determine the card type.
2
CardNumAccount num ber.
ExpDateCard expiration date: YYYYMM or ISO 8601.
CVNumCard verification number (typically printed on the back of the card, but
not embossed on the front).
MagDataData located on the magnetic strip of a credit card.
NameOnCardCard holder's name as printed on the card.
ExtDataOptional element that may carry extended data (outside the syntax of the
CheckTypeIndicates the type of the check: corporate, personal, or government.
CheckNumAccount holder's next unused check number.
XMLPay Developer’s Guide33
XMLPay Syntax
2
Core Structures
AttributeDescription
MICRMagnetic Ink Check Reader (MICR) is the entire line of numbers at the
bottom of the check. It includes the transit number, account number, and
check number.
DLAccount holder's driver's license number. XxNnnnnnnn format, where
Xx is the state code; Nnnnnnnn is the number
SSAccount holder's social security number.
DOBAccount holder's date of birth YYYYMMDD, ISO 8601
ExtDataOptional element that may carry extended data (outside the syntax of the
EMailEmail address of customer as entered during checkout. PayPal uses this
value to pre-fill the PayPal membership signup portion of the PayPal
login page.
PayerIdUnique encrypted PayPal customer account identification number
TokenA string value returned by Set Express Checkout response.
34XMLPay Developer’s Guide
XMLPay Syntax
Core Structures
AttributeDescription
ReturnURLURL to which the customer’s browser is returned after approving use of
PayPal.
Set RETURNURL to your order review page or the page on which the
customer clicked the “Edit Shipping” button or hyperlink.
NotifyURLYour URL for receiving Instant Payment Notification (IPN) about this
transaction.
ReqConfirmShippingIs 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.
NoShippingIs 1 or 0. The value 1 indicates that on the PayPal pages, no shipping
address fields should be displayed whatsoever.
AddressOverrideIs 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.
Displaying the PayPal street address on file does not allow the customer
to edit that address.
2
LocaleCodeLocale of pages displayed by PayPal during Express Checkout.
PageStyleSets 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.
HeaderImageA 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.
HeaderBorderColorSets the border color around the header of the payment page. The border
is a 2-pixel perimeter around the header space, which is 750 pixels wide
by 90 pixels high.
HeaderBackColorSets the background color for the header of the payment page.
PayflowColorSets the background color for the payment page.
ButtonSourceIdentificati on code for use by thi rd-party applications to identify
transactions.
ExtDataOptional element that may carry extended data (outside the syntax of the
NameAccount holder's name.
TotalAmtDollar amount (US dollars) to be billed.
StartBeginning (or restarting) date for the recurring billing cycle used to
calculate when payments should be made.
TermNumber of payments to be made over the life of the agreement.
PayPeriodSpecifies how often the payment occurs.
MaxFailPaymentsThe number of payment periods (specified by PayPeriod) for which the
transaction is allowed to fail before PayPal cancels a profile.
RetryNumDaysThe number of consecutive days that PayPal should attempt to process a
failed transaction until Approved status is received.
36XMLPay Developer’s Guide
XMLPay Syntax
The XMLPayResponse Document (Transactions)
AttributeDescription
EMailCustomer e-mail address.
CompanyNameCompany name for this profile.
CommentFree-form comment about the purchase.
OptionalTransDefines an optional Authorization for validating the account information
or for charging an initial fee.
OptionalTransAmtAmount of the Optional Transaction.
2
ExtData
BillTo Name, Address,
Phone, and Fax
ShipTo Name, Address,
Phone, and Fax
OrigProfileIDProfile ID of the profile that gets the action.
PaymentNumPayment number identifying the failed payment to be retried.
ExtDataOptional element that may carry extended data (outside the syntax of the
<ExtData Name= Value= />
AttributeDescription
NameName of the extended data element.
ValueValue of the extended data element.
Information about the buyer.
Information about the shipping addresses, if different from BillTo.
VendorIden tifies the merchant of record for the transaction within the payment
PartnerIdentifies the partner who submitted the transaction on behalf of the
TransactionResultDefined on page 38.
SignatureOptional signature over ResponseData, executed by the payment
TransactionReceiptsOptional list of receipts from the payment processing network.
processing network.
vendor.
processing gateway using the W3C XML Signature syntax. This
signature may be used to provide integrity protection of the response data
and/or authentication of the responder, if needed (transport-level security
may also be used to provide these protections).
ResultNumber that indicates outcome of the transaction (see Appendix C,
“Transaction Results”).
BuyerAuthResultResults of the VerifyEnrollment or ValidateAuthentication
transaction.
ProcessorResultProcessor-specific information. Only received if Verbosity is set to
High.
FraudPreprocessorResultResults from the Fraud Protection Service pre-process stage.
FraudPostprocessorResultResults from the Fraud Protection Service post-process stage.
CardSecureCAVV inform ation returned from the processor.
IAVSResultInternational AVS result value, if appropriate.
AVSResultResults of the AVS check, if appropriate.
CVResultResults of the CV check, if appropriate. Possible values: match, no
match, service not available, or service not requested.
2
MessageDescriptive message describing Result.
PNRefIdentifier assigned to the transaction by the payment processing
network.
AuthCodeAuthorization code for the transaction provided by the bank, if any.
HostCodeResult code returned by the payment processor, if any. Whereas
Result provides a normalized view the transaction status, HostCode
passes through the back-end processor status unmodified.
HostURLURL returned by the payment processor, if any, to use in referring to
the transaction.
OrigResultOriginal result for a transacti on queried with GetStatus.
StatusCurrent status for a transaction queried with GetStatus.
ACHStatusStatus of the ACH transaction (returned by Inqui ry transaction).
OrigPNRefThe PNRef value associated with the original transaction (returned
by Inquiry transaction).
OrigMessageThe Message value associated with the original transaction
(returned by Inquiry transaction).
PayPalResult
ReceiptURLURL returned by the payment processor, if any, to use i n referring to
a receipt for the transaction.
XMLPay Developer’s Guide39
XMLPay Syntax
2
The XMLPayResponse Document (Transactions)
ElementDescription
ExtDataOptional element that may carry extended data (outside the syntax
AttributeDescription
ResultNumber that indicates outcome of the transaction (see Appendix C,
CustRefReference string that identifies the customer.
DuplicateId entify if the transaction has been run before.
AVSResult
<AVSResult>
(StreetMatch)
(ZipMatch)
</AVSResult>
of the XMLPay schema).
“Transaction Results”).
AttributeDescription
StreetMatchIndicates whether or not the billing street address matched the bank 's
records. Possible values: match, no match, service not available, or
service not requested.
ZipMatchIndicates whether or not the billing zip matched the bank's records.
Possible values: match, no match, service not available, or service not
requested.
EmailCustomer’s email address.
PayerIDUnique encrypted PayPal customer account iden tification number
TokenValue PayPal originally returns in Set Express Checkout response after
your first call to the Set Express Checkout request.
PPRefUnique 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.
FeeAmountPayPal fee amount char ged for the transaction.
PayerStatusStatus of payer.
PaymentTypeIndicates whether the payment is instant or delayed.
PendingReasonThe reason the payment is pending. Values are: none, echeck, intl, multi-
currency, verify, other, and completed.
2
CustomFree-form field for your own use.
InvNumMerchant invoice number. The merchant invoice number is used for
authorizations and settlements and, depending on your merchant bank,
will appear on your customer's credit card statement and your bank
reconciliation report. If you do not provide an invoice number, the
transaction ID (PNREF) will be submitted.
VendorIdentifies the merchant of record for the transaction within the
PartnerIdentifies the partner who submitted the transaction on behalf of the
RecurringProfileResultDefined on page 43.
SignatureOptional signature over ResponseData, executed by the payment
TransactionReceiptsOptional list of receipts from the payment processing network.
payment processing network.
vendor.
processing gateway using the W3C XML Signature syntax. This
signature may be used to provide integrity protection of the response
data and/or authentication of the responder, if needed (transport-level
security may also be used to provide these protections).
BuyerAuthResult
Response for Buyer Authentication transactions, VerifyEnrollment and
ValidateAuthentication.
StatusStatus of the transaction.
AuthenticationIdMessage id for the response.
PAReqPayer authentication request returned if cardholder is enrolled.
ACSUrlThe issuer ACS URL at which the cardholder would authenticate by
providing the password.
ECIThe Electronic Commerce Indicator value that implies the authentication
outcome. Defaulted to 7 since cardholder has not authenticated yet.
ResultNumber that indicates outcome of the transaction (see Appendix C,
MessageDescriptive message describing Result.
The XMLPayResponse Document (Recurring Profiles)
“Transaction Results”).
XMLPay Syntax
2
ProfileIDProfile ID of the profile that gets the action.
RPRefIdentifier assigned to the transaction by the payment processing network.
TransactionResult
ExtDataOptional element that may carry extended data (outside the syntax of the
XMLPay schema).
IdIdentifier assigned to the transaction by the merchant (if one was
ResultNumber that indicates outcome of the transaction (see Appendix C,
MessageDescriptive message describing Result.
ProfileIDProfile ID of the profile that gets the action.
RPRefIdentifier assigned to the transaction by the payment processing
“Transaction Results”).
network.
StatusCurrent stat us of the profile.
NameAccount holder's name.
StartBeginning (or restarting) date for the recurring billing cycle used to
calculate when payments should be made.
TermNumber of payments to be made over the life of the agreement.
EndDate that the last payment is due. Present only if this is not an
unlimited-term subscription.
PayPeriodSpecifies how often the payment occurs.
MaxFailPaymentsThe number of payment periods (specified by PayPeriod) for
which the transaction is allowed to fail before PayPal cancels a
profile.
RetryNumDaysThe number of consecutive days that PayPal should attempt to
process a failed transaction until Approved status is received.
EMailCustomer e-mail address.
CompanyNameCompany name for this profile.
AmtDollar amount (US dollars) to be billed.
PaymentsLeftNumber of payments left to be billed.
NextPaymentDate that the next payment is due
AggregateAmtAmount collected so far for scheduled payments.
44XMLPay Developer’s Guide
XMLPay Syntax
The XMLPayResponse Document (Recurring Profiles)
AttributeDescription
AggregateOptionalTransAmtAmount collected through sending optional transactions
NumFailedPaymentsNumber of payments that failed.
TenderSpecifies payment type.
BillToInformation about the buyer.
ShipToInformation about the shipping addresses, if different from BillTo.
ExtDataOptional element that may carry extend ed data (outside the syntax
of the XMLPay schema).
2
XMLPay Developer’s Guide45
XMLPay Syntax
2
The XMLPayResponse Document (Recurring Profiles)
46XMLPay Developer’s Guide
XMLPay Elements
3
The following tables define the existing Payflow SDK parameters (name/value pairs) and their
XMLPay equivalent. Some parameters cannot be processed by specific processors. For details
on what your processor can process, see Payflow Pro Developer’s Guide.
If you are developing applications that use the Recurring Billing Service, see Recurring Billing Service User’s Guide.That document provides detailed information about Payflow
SDK parameters specific to Recurring Billing.
NOTE: ExtData is an optional XMLPay element for including parameter data not supported by
the schema you are using. Place the data at the appropriate element level in the
XMLPay hierarchy. If you can’t find or are unsure of the appropriate location, place the
data in the Invoice element. See the examples in “Express Checkout Authorization
Transaction” on page 84.
General Transaction Parameters
The following are general parameters accepted in Payflow SDK transactions.
TABLE 3.1Retail c redit card transac tion paramete rs
Payflow SDK
ParameterDescriptionXMLPay Element
COMMCARDType of commercial card account number sent.Card
COUNTRYCODEDestination country code. (See the appendix
entitled “ISO Country Codes” in the Payflow
Pro Developer’s Guide .)
COMPANYNAMEBilling country codeBillTo
CUSTIPIP address of customerInvoice
ECIValues returned from Buyer Auth transactionCard
MERCHDESCRDescription of product.Invoice
MERCHSVCMerchant telephone number, including area
code (XXX-XXX-XXXX)
ORDERDATEDate of invoi ceInvoice
RECURRINGRecurring transaction?Invoice
UPDATEACTIONUpdate action to takeTransactionUpdate
→CommercialCard
ShipTo
→Address→Country
→Address→Company
→CustIP
→BuyerAuthResult→ECI
→MerchantDescription
Invoice
→MerchantServiceNum
→Date
→Recurring
→Action
VERBOSITYVerbosity level of response desiredTransaction
XMLPay Developer’s Guide47
→Verbosity
XMLPay Elements
3
Credit Card Transaction Parameters
Credit Card Transaction Parameters
The following parameters are accepted in Payflow SDK credit card transactions.
TABLE 3.2Retail credit ca rd tran saction parameters
Payflow SDK ParameterDescriptionXMLPay Element
ABABank routing number.ABA
ACCTThe credit card or purchase card numberAcctNum or CardNum
ACCTTYPEType of the bank account.AcctType or CheckType
AMTAmount in US dollars.Invoice
AUTHCODEThe approval code obtained over the phone
from the processing network. Used only
when processing Voice Authorization
transactions.
AUTHTYPEMethod of authorization.AuthType
CHKNUMCheck number.CheckNum
CHKTYPEType of the bank account.AcctType
CITYCardholder’s city.City
COMMCARDType of commercial card account number
sent.
COMMENT1Merchant-defined value for reporting and
auditing purposes.
COMMENT2Merchant-defined value for reporting and
auditing purposes.
COUNTRYDesti nati on country code. (See the appendix
entitled “ISO Country Codes” in the Payflow
Pro Developer’s Guide.)
CUSTCODECustomer co de or customer reference ID.CustCode
→TotalAmt
AuthCode
Card
→CommercialCard
Comment
ExtData
Country
CUSTREFMerchant-defined identifier for reporting and
auditing purposes.
CVV2The 3 or 4-digit Card Security Code (CSC)
found on the back of a credit card.
DESCGeneral description of the transact ion.Item
CustRef
CVNum
→Description
48XMLPay Developer’s Guide
XMLPay Elements
Credit Card Transaction Parameters
T
ABLE 3.2Retail credit ca rd tran saction parameters
Payflow SDK ParameterDescriptionXMLPay Element
3
DESC1-4Up to 4 additional lines describing the
transaction.
DISCOUNTDiscount amount on total sale.DiscountAmt
DLCardholder’s driver’s license number .DL
DOBCardholder’s date of birth.DOB
DSGUIDTransaction IDId
DUTYAMTDuty or import tax.DutyAmt
EMAILEmail address.Email
ENDTIMESpecifies the end of the time period during
which the transaction specified by the
CUSTREF occurred. Optional for Inquiry
transactions when using CUSTREF to specify
the transaction.
EXECUTORNames a partner or a vendor under whose
auspice a transaction is being submitted.
EXPDATEExpiration date of the credit card.ExpDate
FIRSTNAMEThe cardh old e r’s name.Name or NameOnCard
FREIGHTAMTFreight amount.FreightAmt or ShippingAmt
Item→Description
ExtData
UserDomain
HANDLINGAMTHandling amount.Item
INVNUMMerchant invoice number.Invoice
INVOICEDATEInvoice date.Date
L_AMTTotal line item amount including tax and
discount.
L_CARRIERSHIPMENTNUMShipment number.ShipmentNumber
L_CATALOGNUMMerchant’s product code.CatalogNumber
L_COSTCENTERNUMPurchaser's department number to which the
item will be billed.
L_COSTCost per item, excluding tax.UnitPrice
L_DELIVERYDATEDelivery date.Date
L_DELIVERYTIMEDelivery time.Time
L_DESCItem description.Item
L_DISCOUNTDiscount per line item.DiscountAmt
L_FREIGHTAMTLine item freight amount.FreightAmt
→HandlingAmt
→InvNum
Invoice
→TotalAmt
CostCenterNumber
→Description
XMLPay Developer’s Guide49
XMLPay Elements
3
Credit Card Transaction Parameters
ABLE 3.2Retail credit ca rd tran saction parameters
T
Payflow SDK ParameterDescriptionXMLPay Element
L_HANDLINGAMTLine item hand ling amount.Item→HandlingAmt
L_PICKUPCITYPickup city.City
L_PICKUPCOUNTRYPickup record number.Country
L_PICKUPDATEPickup date.Date
L_PICKUPRECORDNUMPickup record number.RecordNumber
L_PICKUPSTATEPickup state.State
L_PICKUPSTREETPickup address.Street
L_PICKUP TIMEPickup time.Time
L_PICKUPZIPPickup postal code.Zip
L_PRODCODESupplier-specific product code.SKU
L_QTYLine item quantity.Item
L_SKULine item SKU identifier.SKU
L_TAXAMTLine item tax amount.Item
L_TRACKINGNUMTracking number.TrackingNumber
L_UNSPSCCODEUniversal Standard Products and Services
Classification.
L_UOMItem unit of measure.UnitOfMeasurement
L_UPCItem commodity code.UPC
MICRData located on the magnetic strip of a credit
card.
NATINCLNational tax included (true or false).NationalTaxIncl
ORDERDATEOrder date.ExtData
ORIGIDThe Reference ID (PNREF) returned for all
transactions.
PARTNERThe ID provided to you by the authorized
Reseller who registered you for the Website
Payments Pro Payflow Edition service. If you
purchased your account directly from PayPal,
use PayPal.
This value is case-sensitive.
→Quantity
→TaxAmt
UNSPSCCode
MagData or MICR
PNRef
Partner
PHONENUMTelephone number.Phone
PHONETYPETelephone call type identifierBillTo
→PhoneType
50XMLPay Developer’s Guide
XMLPay Elements
Credit Card Transaction Parameters
T
ABLE 3.2Retail credit ca rd tran saction parameters
Payflow SDK ParameterDescriptionXMLPay Element
3
PONUMSpecified by the cardholder to identify the
order. Usually used as a Purchase Order
number.
PRENOTEIdentifies the transaction as an authorization
for future transactions.
PWDThe 6- to 32-character password that you
defined while registering for the account.
This value is case-sensitive.
RECURRINGIdentifies the transaction as recurring. ExtData
SHIPFROMZIPShip-from postal code.Zip
SHIPTOCITYShip-to city.ShipTo
SHIPTOFIRSTNAMEShip-to name.Name
SHIPTOSTATEShip-to state.ShipTo
SHIPTOSTREETShip-to street.ShipTo
SHIPTOZIPShip-to postal code.ShipTo
SSCardholder’s Social Security Number.SS
STARTTIMESpecifies the beginning of the time period
during which the transaction specified by the
CUSTREF occurred. Optional for Inquiry
transactions when using CUSTREF to specify
the transaction.
BillTo→PONum
Prenote
Password
ExtData
→Address→City
→Address→State
→Address→Street
→Address→Zip
STATECardholder’s state.State
STREETThe cardholder’s street address (number and
street name).
SWIPEUsed to pass the Track 1 or Track 2 data (the
ABLE 3.2Retail credit ca rd tran saction parameters
Payflow SDK ParameterDescriptionXMLPay Element
TRXTYPEThe type of transaction. For XMLPay:
z Authorization
z Capture
z Sale
z Credit
z Voi d
z ForceCapture
z RepeatSale
z GetStatus
USERIf you set up one or more additiona l users on
XMLPay transaction type
UserName
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.
RECURRINGRecurring billing indicator
REQNAMEName of requestorLevel3Invoice
Requestor
REQFIRSTADDRFirst line of street address for
requestor
REQSECONDADDRSecond line of street address for
shipper
REQCITYCity of requestorLevel3Invoice
REQSTATEState of requestorLevel3Invoice
REQZIPZip code of requestorLevel3Invoice
REQCOUNTRYCountry of requestorLevel3Invoice
SHIPPEDFROMNAMEName of shipperInvoice
Level3Invoice
Requestor
Level3Invoice
Requestor
Requestor
Requestor
Requestor
Requestor
→
→
→
→
→
→
→
→ShipFrom
54XMLPay Developer’s Guide
XMLPay Elements
Credit Card Transaction Parameters
T
ABLE 3.3Level 3 (c ommercial) credit card trans action p arameters
Payflow SDK ParameterDescriptionXMLPay Element
3
SHIPPEDFROMFIRSTADDRFirst line of street address for
shipper
SHIPPEDFROMSECONDADDRSecond line of street address for
shipper
SHIPPEDFROMCITYCity of shipperInvoice
SHIPPEDFROMSTATEState of shipperInvoice
SHIPPEDFROMZIPZip code of shipperInvoice
SHIPPEDFROMCOUNTRYCountry of shipperInvoice
STATEANDLOCALTAXAMTState and Local tax amountLevel3Invoice
STATEANDLOCALTAXEXEMPTCODEState and Local tax exempt codeLevel3Invoice
STATEANDLOCALTAXPERCENTState and Local tax rateLevel3Invoice
number
Line item Transactions - Identifies one item in a transaction with multiple items. The number of the item is
appended to the parameter.
L_ALLTAXAMTAll tax amount line itemLevel3Item
L_ALLTAXEXEMPTCODEAll tax exemption code line itemLevel3Item
L_ALLTAXPERCENTAll tax rate line itemLevel3Item
L_CITYTAXAMTCity tax amount line itemLevel3Item
L_CITYTAXEXEMP TCODECity tax exemption code line itemLevel3Item
L_CITYTAXPERCENTCity tax rate line itemLevel3Item
L_COUNTYSALESTAXAMTCounty sales tax amount line itemLevel3Item
Table 3.7 lists the PayPal Express Checkout request transaction parameters.
ABLE 3.7Express Chec kout re quest p arame ters
T
Express Checkout
ParameterDescriptionXMLPay Element
ADDROVERRIDEPayPal pages display the shipping address set
in the shipping address parameters in the Set
Express Checkout request, not the shipping
address on file with PayPal for this customer.
AMTAmount (US Dollars) U.S. based currency.
If shipping cost and tax charges are known,
include them in AMT. If not, AMT should be
the current subtotal of the order.
BUTTONSOURCEIdentification code for use by third-party
applications to identify transactions.
PayPal
→AddressOverride
Invoice
→TotalAmt
→ButtonSource
PayPal
CANCELURLURL to which the customer is returned if the
customer does not approve the use of PayPal to
pay you.
CUSTOMFree-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.
EMAILCustomer’s email address.PayPal
HANDLINGAMTTotal handling amount.Item
HDRBACKCOLORSets the background color for the header of the
ABLE 3.7Express Chec kout re quest p arame ters (Continued)
T
Express Checkout
ParameterDescriptionXMLPay Element
3
HDRBORDERCOLORSets the border color around the header of the
payment page. The border is a 2-pixel
perimeter around the header space, which is
750 pixels wide by 90 pixels high.
HDRIMGURL 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.
INVNUMMerchant invoice number. The merchant
invoice number is used for authorizations and
settlements and, depending on your merchant
bank, will appear on your customer's credit
card statement and your bank reconciliation
report. If you do not provide an invoice
number, the transaction ID (PNREF) will be
submitted.
ITEMAMTSum of cost of all it ems in this order.Invoice
L_AMTnCost of line item.Invoice
L_DESCnItem descriptionItem
L_QTYnQuantity (whole units only)Item
PayPal
PayPal
Invoice
→Description
→Quantity
→HeaderBorderColor
→HeaderImage
→InvNum
→ItemAmt
→TotalAmt
L_TAXAMTnLine item tax amountItem
LOCALECODELocale of pages displayed by PayPal during
Express Checkout.
MAXAMTThe expected maximum total amount of the
complete order, including shipping and tax
charges.
MEMOCustom memo about the credit.PayPal
NOSHIPPINGIs 1 or 0. 1 indicates that on the PayPal pages,
no shipping address fields should be displayed
whatsoever.
NOTEAn in formal note about this settlement that is
displayed to the customer in email and in the
customer’s transaction history.
NOTIFYURLYour URL for receiving Instant Payment
Notification (IPN) about this transaction.
ORDERDESCDescription of items the customer is
Table 3.7 lists the PayPal Express Checkout response transaction parameters.
TABLE 3.8Mapping Exp ress Checko ut parameters to XMLPay parameters
Express Checkout
ParameterDescriptionXMLPay Element
3
CUSTOMFree-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.
EMAILCustomer’s email address.PayPalResult
FEEAMTPayPal fee amount charged for the transaction.PayPalResult
INVNUMYour own unique invoice or tracking number.PayPalResult
PAYERIDUnique encrypted PayPal customer account
identification number.
PAYERSTATUSStatus of customer.PayPalResult
PHONENUMAccount holder’s telephone number. PayPalResult
PPREFUnique transaction ID of the paymentPayPalResult
SHIPTOBUSINESSCustomer
SHIPTOCITYName of ship-to city.ShipTo
SHIPTOCOUNTRYShip-to country code. (See the appendix entitled
“ISO Country Codes” in the Payflow Pro
Developer’s Guide.)
SHIPTOCOUNTRYCODECustomer
standard 3166 two-character country codes.
’s business name.PayPalResult→ExtData
’s country of residence in the form of ISO
PayPalResult
PayPalResult
→Address→City
ShipTo
→Address→Country
PayPalResult→ExtData
→Custom
→Custom
→ExtData
→InvNum
→PayerId
→PayerStatus
→Phone
→PPRef
SHIPTOSTATEName of ship-to state or province.ShipTo
SHIPTOZIPU.S. ship-to ZIP code or other country-specific
postal code.
TOKENValue returned in Set Express Checkout response to
identify this request as part of the same checkout
The following tables document the transactions supported for each tender, along with the data
elements used for each of those transactions.
ACH Transactions
ACH supports the following transactions: Sale, Credit, and Void.
The following data are used to process ACH transactions:
z Invoice.TotalAmt
z ACH.AcctType
z ACH.AcctNum
z ACH.ABA
z ACH.AuthType
z ACH.Prenote
z BillTo.Name
Buyer Authentication Transactions
Buyer authentication supports the following transactions: VerifyEnrollment and
ValidateAuthentication.
For VerifyEnrollment, the following data are used to process the transactions (required
elements are in bold text):
z Invoice.TotalAmt with Currency attribute
z Invoice.Description
z Card.CardNum
z Card.ExpDate
For ValidateAuthentication, the following data are required to process the transactions:
z PARes
XMLPay Developer’s Guide65
XMLPay Transaction Profiles
4
Card Transactions
Card Transactions
Retail credit and debit cards and corporate purchase cards support the following transactions:
Sale, Authorization, Delay Capture, Credit, and Void.
The following data are used to process card transactions:
z Invoice.TotalAmt
z Card.CardNum
z Card.ExpDate
z Card.NameOnCard (Defaults to BillTo.Name)
z BillTo.Street, ZIP (Required for AVS)
z CardInfo.CVNum
Purchase Card Level I
Level I purchase cards use the following additional data:
z BillTo.PONum
z Invoice.TaxAmt
Purchase Card Level II
Level II purchase cards use the following additional data:
z BillTo.TaxExempt
z ShipTo.ZIP
Purchase Card Level III
Level III purchase cards use the following additional data:
z Invoice.Date
z BillTo.CustCode
z ShipTo.Country
z ShipFrom.ZIP
z Invoice.ShippingAmt
z Invoice.DiscountAmt
z Item.SKU, UPC, Description, Quantity, UnitOfMeasurement, UnitPrice, ExtAmt,
Checks support the following transaction: Sale. The following data are used to process check
transactions (required elements are in bold text):
z Invoice.TotalAmt
z Check.CheckType
z Check.CheckNum
z Check.MICR
z BillTo.Name
z BillTo.Address
XMLPay Transaction Profiles
Check Transactions
4
z BillTo.EMail
z BillTo.Phone
z BillTo.DL (DL is optional if SS is provided)
z BillTo.SS (SS is optional if DL is provided)
z BillTo.DOB
z Invoice.InvNum
XMLPay Developer’s Guide67
XMLPay Transaction Profiles
4
PayPal Transactions
PayPal Transactions
PayPal Express Checkout supports the following transactions: Sale, Authorization, Delayed
Capture, Void, and Credit.
The following data are used to process PayPal Express Checkout transactions:
z PayPal.CancelURL
z PayPal.ReturnURL
z PayPal.Token
z PayPal.PayerId
z Invoice.TotalAmt
z ShipTo.Address.Street
z ShipTo.Address.City
z ShipTo.Address.State
z ShipTo.Address.Zip
z ShipTo.Address.Country
68XMLPay Developer’s Guide
5
XMLPay Examples
This chapter provides several examples of XMLPay documents.
For specific examples of how to submit XML documents using the Payflow SDK client
service, see the Payflow SDK SDKdownload package.
NOTE: To receive namespaces in the XML response document, you must set the
XMLPayRequest version attribute to “2.0” or “1.1”. Leaving this attribute out or
setting it to any value less than 1.1 leaves the namespace out of the XML response
document, which may cause errors with some XML parsers.
Set the version attribute to “2.0” to enable all the functionality described in this
document.
In this Chapter
z “ACH Sale Request” on page 70
z “Card Authorization Request” on page 71
z “Card Capture Request” on page 73
z “Card Credit Request” on page 74
z “Card Credit Reference Credit Request” on page 75
z “Card Force Capture Request” on page 76
z “Card Sale Request” on page 77
z “Card Secure Request” on page 79
z “Card Status Request” on page 80
z “Card Void Request” on page 81
z “Check Sale Request” on page 82
z “Customer IP” on page 83
z “Express Checkout Authorization Transaction” on page 84
z “IAVS Result Request” on page 88
z “Level 3 Invoice” on page 89
z “Line Item Sale Request” on page 90
z “Merchant Description and Merchant Service Number” on page 92
z “Processor Result” on page 93
z “Recurring Billing Profile” on page 94
z “Shipping Carrier and Shipping Method” on page 96
z “Transaction Update” on page 97
XMLPay Developer’s Guide69
XMLPay Examples
5
ACH Sale Request
z “ValidateAuthentication Request” on page 98
z “ValidateAuthentication Response” on page 98
z “VerifyEnrollment Request” on page 99
z “VerifyEnrollment Response” on page 99
Payflow XML does not parse certain name-value pair (NVP) tags. For example, to pass a
value for the CURRENCY tag, which is not supported, you must pass it as extended data
(ExtData) as shown below.