Integration Guide
Table Of Contents
- PayPal Payments Pro Integration Guide
- Contents
- Preface
- Introducing PayPal Payments Pro
- Introducing Direct Payment
- Introducing Express Checkout
- Getting Started With Direct Payment
- Getting Started With Express Checkout
- Integrating Recurring Payments
- How Recurring Payments Work
- Recurring Payments Terms
- Recurring Payments With Direct Payment
- Recurring Payments With the Express Checkout API
- Options for Creating a Recurring Payments Profile
- Recurring Payments Profile Status
- Getting Recurring Payments Profile Information
- Modifying a Recurring Payments Profile
- Billing the Outstanding Amount of a Profile
- Recurring Payments Notifications
- Getting Started With the PayPal Name-Value Pair API
- Implementing 3-D Secure Transactions (UK Only)
Getting Started With the PayPal Name-Value Pair API
Responding to an NVP Response
A
86 April 2012 PayPal Payments Pro Integration Guide
Format of an Error Response
Additional pass-through information may appear in the L_ERRORPARAMIDn and
L_ERRORPARAMVALUE
n fields. Consider the following error response:
TIMESTAMP=2011%2d11%2d15T20%3a27%3a02Z&CORRELATIONID=5be53331d9700&ACK=Fail
ure&VERSION=78%2e0&BUILD=000000&L_ERRORCODE0=15005&L_SHORTMESSAGE0=Processo
r%20Decline&L_LONGMESSAGE0=This%20transaction%20cannot%20be%20processed%2e&
L_SEVERITYCODE0=Error&L_E RRORPARAMID0=Proce ssorResponse&L_ERRORP ARAMVALUE0=
0051&AMT=10%2e40&CURRENCYCODE=USD&AVSCODE=X&CVV2MATCH=M
In this case, the parameter ID is ProcessorResponse, which indicates an error response by
a credit or debit card processor. The value contains the processor-specific error. These values
are not set by PayPal; rather, they are passed through from the source.
NOTE: PayPal only passes selected values in the L_ERRORPARAMIDn and
L_ERRORPARAMVALUE
n fields.
URL Decoding
All responses to HTTP POST operations used by the PayPal NVP API must be decoded.
The PayPal NVP API uses the HTTP protocol to send requests and receive responses from a
PayPal API server. You must decode all data returned using the HTTP protocol so that it can
be displayed properly. Most programming languages provide a way to decode strings.
Response Fields on
Error
ACK=notSuccess&TIMESTAMP=date/timeOfResponse&
CORRELATIONID=
debuggingToken&VERSION=VersionNo&
BUILD=
buildNumber&L_ERRORCODE0=errorCode&
L_SHORTMESSAGE0=
shortMessage&
L_LONGMESSAGE0=
longMessage&
L_SEVERITYCODE0=
severityCode
Multiple errors can be
returned. Each set of
errors has a different
numeric suffix, starting
with 0 and incremented
by one for each error.