Integration Guide
Table Of Contents
- PayPal Express Checkout Integration Guide
- Contents
- Preface
- Getting Started With Express Checkout
- Express Checkout User Interface Requirements
- Related API Operations
- Integrating Express Checkout With PayPal SDKs
- Going Live With Your Express Checkout Integration
- Obtaining API Credentials
- PayPal Name-Value Pair API Basics
- PayPal SOAP API Basics
- PayPal WSDL/XSD Schema Definitions
- PayPal SOAP API Definitions
- Security
- SOAP RequesterCredentials: Username, Password, Signature, and Subject
- SOAP Service Endpoints
- SOAP Request Envelope
- Request Structure
- SOAP Message Style: doc-literal
- Response Structure
- Error Responses
- CorrelationID for Reporting Problems to PayPal
- UTF-8 Character Encoding
- Date/Time Formats
- Core Currency Amount Data Type
PayPal Name-Value Pair API Basics
Responding to an NVP Response
64 August 7, 2012 Express Checkout 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_ERRORPARAMID0=ProcessorResponse&L_ERRORPARAMVALUE0=
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.
Related information:
"URL Encoding" on page 60
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.