Developer's Guide
Table Of Contents
- Content
- Preface
- Introducing the Gateway Checkout Solutions
- Secure Token
- Configuring Hosted Checkout Pages
- Payflow SDK
- Sending a Simple Transaction to the Server
- Submitting Credit Card Transactions
- Obtaining an Internet Merchant Account
- About Credit Card Processing
- Credit Card Features
- Planning Your Gateway Integration
- Core Credit Card Parameters
- Submitting Account Verifications
- Submitting Authorization/Delayed Capture Transactions
- Submitting Balance Inquiry Transactions
- Submitting Card Present (SWIPE) Transactions
- Submitting Credit (Refund) Transactions
- Submitting Inquiry Transactions
- When To Use an Inquiry Transaction
- Required Parameters When Using the PNREF
- Inquiry Transaction Parameter String Using the PNREF
- Required Parameters When Using the CUSTREF
- Inquiry Transaction Parameter String Using the CUSTREF
- Required Parameters When Using the Secure Token
- Inquiry Parameter String Using the Secure Token
- Submitting Partial Authorizations
- Submitting Purchasing Card Transactions
- Submitting Reference Transactions (Tokenization)
- Submitting Sale Transactions
- Submitting Soft Merchant Information
- Submitting Voice Authorization Transactions
- Submitting Void Transactions
- Using Address Verification Service
- Using Card Security Code
- Information for the PayPal Acquirer
- Testing Transactions
- Transaction Responses
- Processors Requiring Additional Transaction Parameters
- American Express Additional Credit Card Parameters
- Elavon Additional Credit Card Parameters
- First Data Merchant Services Nashville, Additional Credit Card Parameters
- First Data Merchant Services North, Additional Credit Card Parameters
- Heartland, Additional Credit Card Parameters
- Litle Additional Credit Card Parameters
- Cielo Payments, Additional Credit Card Parameters
- Paymentech Salem (New Hampshire) Additional Credit Card Parameters for American Express
- PayPal Credit Card Transaction Request Parameters
- SecureNet Additional Credit Card Parameters for American Express
- Vantiv Additional Credit Card Parameters
- WorldPay Additional Credit Card Parameters
- TeleCheck Electronic Check Processing
- Payflow Header Parameters
- Submitting Purchasing Card Level 2 and 3 Transactions
- About Purchasing Cards
- About Program Levels
- About American Express Purchasing Card Transactions
- American Express Purchasing Card Transaction Processing
- Elavon (Formerly Nova) Purchasing Card Transaction Processing
- First Data Merchant Services (FDMS) Nashville Purchasing Card Transaction Processing
- First Data Merchant Services (FDMS) North Purchasing Card Transaction Processing
- First Data Merchant Services South (FDMS) Purchasing Card Transaction Processing
- Global Payments - Central Purchasing Card Transaction Processing
- Global Payments - East Purchasing Card Transaction Processing
- Heartland Purchasing Card Transaction Processing
- Litle Purchasing Card Transaction Processing
- Cielo Payments Purchasing Card Transaction Processing
- Paymentech Salem (New Hampshire) Purchasing Card Transaction Processing
- Paymentech Tampa Level 2 Purchasing Card Transaction Processing
- SecureNet Purchasing Card Transaction Processing
- TSYS Acquiring Solutions Purchasing Card Transaction Processing
- Vantiv Purchasing Card Transaction Processing
- WorldPay Purchasing Cards Transaction Processing
- VERBOSITY: Processor-Specific Transaction Results
- Country Codes
- Codes Used by FDMS South Only
- Additional Processor Information
- Payflow Link Migration
- Payflow Gateway MagTek Parameters
- Payflow Gateway FAQs
Gateway Developer Guide and Reference 07 January 2014 157
Payflow Header Parameters
Posting Transactions Directly Without the Payflow SDK
C
Payflow Message Protocol Headers
In addition to the Payflow parameters that you pass in your request, you must set the request
headers described in the following table.
Required Payflow Headers
Header Name Description
X-VPS-REQUEST-ID (Required) A unique identifier for each request, whether the request is a single
name-value transaction or an XMLPay 2.0 document with multiple
transactions. This identifier is associated with all the transactions in that
particular request.
X-VPS-REQUEST-ID is made up of 1 to 32 printable characters. You must
provide the X-VPS-REQUEST-ID value in the transaction request. The server
uses the X-VPS-REQUEST-ID to check for duplicate transaction requests.
When a transaction request is received, the server checks the requests table to
see if the X-VPS-REQUEST-ID has been used before by this merchant.
If the X-VPS-REQUEST-ID has been used before, the server views it as a retry
transaction and the transaction is treated as a duplicate. The response to the
original transaction request is returned and “DUPLICATE=1” is appended to the
response indicating that this transaction is a duplicate. In Manager, you will see
these DUPLICATE transactions with a TENDER type of “N”.
IMPORTANT: If you send in a NEW transaction with a previously used X-
VPS-REQUEST-ID, the server ignores the new data and returns
the response to the original transaction associated with that X-
VPS-REQUEST-ID.
It is VERY IMPORTANT that you check for DUPLICATE=1 and if you receive
it and the transaction is not a re-attempt of the original request of a failed
transaction, you must change the Request ID.
If the X-VPS-REQUEST-ID has not been used before, the server stores the X-
VPS-REQUEST-ID to ensure that the X-VPS-REQUEST-ID is not reused and
then runs the associated transactions. Duplicate checking is designed for short-
term retries (a few minutes to a few hours after the original transaction). The X-
VPS-REQUEST-ID is stored for a minimum of 7 to 8 days; however, retries
should not be sent so long after the original transaction.
NOTE: Any transaction with an ID older than 8 days will be treated as a new
transaction.
The X-VPS-REQUEST-ID check is only available if the database is up and
available. If for some reason the database is down, transactions (authorizations
and sales) will continue to be processed as normal; however, DUPLICATE=-1
(negative one) will be returned to alert you that the database is down and there
is no duplicate check being performed.
NOTE: Buyer Authentication: E-Verify Enrollment, Z-Validate Authentication
transactions and PayPal Express Checkout: SetExpressCheckout and
GetExpressCheckout transactions do not use duplicate suppression and
will not return
DUPLICATE=1