PayPal Gateway - 2012 Developer's Guide

Gateway Reporting Developer Guide
Last updated: May 2012
Gateway Reporting Developer Guide
Document Number: 200046.en_US-201205
© 2012 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
Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Where to Go for More Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
How to Contact Customer Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Chapter 1 Reporting Overview . . . . . . . . . . . . . . . . . . . . . 9
Operations You Can Perform Using the Reporting API . . . . . . . . . . . . . . . . . . . . 9
Managing Report Templates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Running Reports by Report Template Name or Report Name. . . . . . . . . . . . . . 10
Obtaining Information about Reports . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Managing Report Template Schedules . . . . . . . . . . . . . . . . . . . . . . . . . 10
Performing Searches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
URL for Running Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Live Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Test Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Chapter 2 Using the Reporting API. . . . . . . . . . . . . . . . . . . 11
API Notation in this Chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Request Authorization Parameter Data . . . . . . . . . . . . . . . . . . . . . . . . . 11
Response Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Where to Go For More Information on the APIs . . . . . . . . . . . . . . . . . . . . . . . 12
Running Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Running a Report and Obtaining Report Data . . . . . . . . . . . . . . . . . . . . . . 13
Running Reports Offline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Managing Report Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Using Report Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Running a report template and obtaining the report template data . . . . . . . . . . . 15
Scheduling a Report Template. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Managing Report Template Schedules . . . . . . . . . . . . . . . . . . . . . . . . . 17
Performing Searches. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Gateway Reporting Developer Guide 3
Contents
Chapter 3 Response Codes and Status Codes . . . . . . . . . . . . .19
Response Codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Status Codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Appendix A Reporting XML Schema . . . . . . . . . . . . . . . . . . .21
Appendix B Reporting Samples . . . . . . . . . . . . . . . . . . . . .29
Running a Daily Activity Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Running a Daily Activity Report Request . . . . . . . . . . . . . . . . . . . . . . . . 29
Running a Daily Activity Report Response . . . . . . . . . . . . . . . . . . . . . . . 30
Running a Transaction Summary Report . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Running a Transaction Summary Report Request . . . . . . . . . . . . . . . . . . . 31
Running a Transaction Summary Report Response . . . . . . . . . . . . . . . . . . 32
Getting Results by Report ID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Getting Results by Report ID Request. . . . . . . . . . . . . . . . . . . . . . . . . . 32
Getting Results by Report ID Response . . . . . . . . . . . . . . . . . . . . . . . . . 33
Getting Metadata. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Getting Metadata Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Getting Metadata Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Format Returned. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Getting Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Getting Data Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Getting Data Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Data Returned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Creating a Report Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Creating a Report Template Request . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Creating a Report Template Response . . . . . . . . . . . . . . . . . . . . . . . . . 47
Updating a Report Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Updating a Report Template Request . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Updating a Report Template Response . . . . . . . . . . . . . . . . . . . . . . . . . 48
Getting a Report Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Getting a Report Template Request . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Getting a Report Template Response . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Deleting a Report Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Deleting a Report Template Request . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Deleting a Report Template Response . . . . . . . . . . . . . . . . . . . . . . . . . 50
Creating a Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Creating a Schedule Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4 Gateway Reporting Developer Guide
Contents
Creating a Schedule Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Getting a Schedule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Getting a Schedule Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Getting a Schedule Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Updating a Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Updating a Schedule Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Updating a Schedule Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Deleting a Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Deleting a Schedule Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Deleting a Schedule Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Running a Transaction ID Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Running a Transaction ID Search Request . . . . . . . . . . . . . . . . . . . . . . . 55
Running a Transaction ID Search Response . . . . . . . . . . . . . . . . . . . . . . 55
Running a Profile - Next Payment Date Report . . . . . . . . . . . . . . . . . . . . . . . 56
Running a Profile - Next Payment Request . . . . . . . . . . . . . . . . . . . . . . . 56
Running a Profile - Next Payment Response . . . . . . . . . . . . . . . . . . . . . . 56
Running a Profile - Profile Modified Date Report . . . . . . . . . . . . . . . . . . . . . . 57
Running a Profile - Profile Modified Date Request . . . . . . . . . . . . . . . . . . . 57
Running a Profile - Profile Modified Date Response. . . . . . . . . . . . . . . . . . . 57
Appendix C Report Parameters . . . . . . . . . . . . . . . . . . . . .59
Reports in This Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
ACH Activity Summary Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
ACH Batch ID Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
ACH Detail Return Activity Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
ACH Notification of Change Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
ACH Return Activity Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
ACH Settlement Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
ACH Transaction Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Auto Credit Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Auto Delayed Capture Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Auto Resettle Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Auto Void Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Batch ID Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Custom Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Daily Activity Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Filter Scorecard Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Gateway Reporting Developer Guide 5
Contents
Fraud Protection Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Payflow Link Orders Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
PayPal Settlement Summary Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Profile Next Payment Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Profile Modified Date Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Recurring Billing Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Recurring Profile Failed Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Recurring Profile Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Settlement Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Shipping and Billing Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Transaction Summary Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Appendix D Search Parameters . . . . . . . . . . . . . . . . . . . . 101
Transaction ID Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101
Batch ID Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103
AccountNumberSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104
CommentSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105
AccountNumberRefSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107
PurchaseOrderSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .108
RecurringBillingProfileIDSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109
RecurringBillingProfileNameSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
RecurringBillingAccountNumberSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
RecurringBillingCommentSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112
RecurringBillingAmountSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113
FraudTransactionSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
OrderIDSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
PayPalTransactionIDSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118
PayPalEmailSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119
PayPalNameSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
6 Gateway Reporting Developer Guide
Gateway Reporting Developer Guide describes the Reporting XML API for the following Gateway payment solutions:PayPal Payments Advanced, PayPal Payments Pro, Payflow Pro, and Payflow Link. The XML API enables you to develop Web and desktop applications that create, schedule, and run standard (pre-defined) and custom Payflow services reports.

Audience

This guide assumes that its readers:
Have a good understanding of XML application development
Have a background in payments services

Organization

Preface

This guide is organized as follows:
Chapter 1, “Reporting Overview,” provides an overview of Reporting and the types of
functionality it offers.
Chapter 2, “Using the Reporting API,” describes how to use the Reporting API.
Chapter 3, “Response Codes and Status Codes,” identifies all supported standard reports,
along with the valid and required parameters of each. It also presents status codes and response codes, along with their associated message strings.
Appendix A, “Reporting XML Schema,” provides the XML schema upon which the
Reporting XML API is based.
Appendix B, “Reporting Samples,” presents samples demonstrating how to use the
reporting API.
Appendix C, “Report Parameters,” describes the input and output parameters for each
standard report.
Appendix D, “Search Parameters,” describes the input and output parameters for
performing searches by search name.
Gateway Reporting Developer Guide 7
Preface

Where to Go for More Information

Where to Go for More Information
PayPal Manager online help describes the use of PayPal Manager—the web-based administration tool that you use to process transactions manually, issue credits, and generate reports.

How to Contact Customer Service

For answers to specific questions about PayPal products, contact Customer Service.

Revision History

Revision history for Gateway Reporting Developer Guide.
TABLE P.1 Revision History
Date Description
May 2012 Updated reportId description - reportId is valid for up to 120 days.
February 2012 Added 4 Settlement report response parameters.
January 2012 Added 7 ACH reports; edits for technical accuracy.
December 2011 Updated for technical accuracy.
August 2011 Added a comment that the last 4 digits of the account number are returned in the Account
Number output field.
June 2011 Added two new reports: Profile - Profile Modified Date and ProfileNext Payment Date.
June 2010 Updated for technical accuracy.
December 2009 Added Fraud Transaction Search table.
November 2008 Updated links to test and live reporting URLs.
June 2008 Minor clarifications and corrections.
August 2007 Updated Title page and logo.
July 2006 Updated document title, product names.
Reformatted in PayPal templates.
Updated to support new currencies.
March 2006 Integrated Express Checkout feature.
8 Gateway Reporting Developer Guide

Reporting Overview

1
The Reporting API is an API that you can use to automate your report queries. It allows you to programmatically query in XML the Reporting database.
PayPal Manager is also a client of the Reporting API. Everything that Manager can do with reports is available to you through API calls. You can, for example, request a particular report be run within a specified date range. The response returns all the data that the report generates. The reporting engine encapsulates the information in all the Gateway services reports. You can store this information in your local database and use it as needed.

Operations You Can Perform Using the Reporting API

The Reporting API enables you to perform the following operations:
Managing report templates
Running reports on demand by report or report template name
Obtaining information about reports
Managing report template schedules
Performing searches
The standard (predefined) reports supported are described in Appendix C, “Report
Parameters.”

Managing Report Templates

You may want to create report templates based on the reports that are supported. A report template lets you create an instance of a report. With this instance, you provide a list of parameters.
Report templates are handy when you find that you frequently need to look up reports based on the same criteria. You provide the parameters and values once, and Reporting saves this information with the report template. When you run the report template, you do not need to provide the parameters a second time.
Report template management enables you to perform all the following tasks:
Create report templates
Query report templates in the database
Retrieve report templates from the database
Update report templates
Delete report templates
Gateway Reporting Developer Guide 9
Reporting Overview
1

URL for Running Applications

Running Reports by Report Template Name or Report Name

You can run reports and report templates. To run a report or report template, you submit a runReportRequest, passing in the respective report name or report template name. You can also pass in additional parameters in with a request.
To submit a request to the Reporting API, you post your XML request via HTTPS to the host URLs in the body of the request. No SDK is needed since you just perform a standard HTTPS post using the language of your choice. The Content-Type for the request should be text/plain.

Obtaining Information about Reports

You can obtain the following information about reports:
Report status
Report results

Managing Report Template Schedules

You can create, update, and delete report template schedules.

Performing Searches

You can search for payment transaction data based on search names such as TransactionIDSearch, BatchIDSearch, and AccountNumberSearch.
URL for Running Applications
Use the following URLs for running Reporting applications.

Live Transactions

https://payments-reports.paypal.com/reportingengine

Test Transactions

https://payments-reports.paypal.com/test-reportingengine
10 Gateway Reporting Developer Guide

Using the Reporting API

2
This chapter describes how you can use the Reporting API to perform the following tasks.
“Running Reports” on page 12
“Managing Report Templates” on page 14
“Using Report Templates” on page 15
“Performing Searches” on page 18

API Notation in this Chapter

The chapter uses the following short-hand notation for referring to Reporting API requests and parameter information.
requestName (paramName, paramName, [...])
requestName is the name of the request. The request input parameters, if any, are listed in a parameter list enclosed in parentheses.

Request Authorization Parameter Data

The Reporting API notation in this chapter does not include the authorization information that is passed with every request. All Reporting API requests require that you specify these parameters and values as your user information.
TABLE 2.1 User information
Parameter Description
user 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.
vendor Your merchant login ID that you created when you registered for the
Payflow Pro account.
partner The ID provided to you by the authorized PayPal Reseller who
registered you for the Payflow Pro service. If you purchased your account directly from PayPal, use PayPal.
password The 6- to 32-character password that you defined while registering for
the account.
Gateway Reporting Developer Guide 11
Using the Reporting API
2

Where to Go For More Information on the APIs

Response Data

Responses include the following information:
All responses return a base response consisting of a response code (responseCode) and
a response message (responseMsg).
Most responses return applicable response parameter data.
Some responses return a status code (statusCode) and a status message
(statusMsg).
Where to Go For More Information on the APIs
To understand how the XML API is coded, look at the request notation along with the XML schema, samples, and report parameters in this guide. See the following sources for details:
Source Contents
Chapter 3, “Response Codes and Status Codes”
Appendix A Contains the XML schema.
Appendix B Provides API request and response samples for each request and
Appendix C Describes the input and output parameters for all standard (predefined)
Appendix D Describes the input and output parameters for all report searches

Running Reports

You can run reports and obtain the report data right away. If, however, running a report takes more than the time allotted, the report is run offline, and you must periodically check for the report data.
Lists all response codes, status codes, and their message strings.
response referred to in this chapter.
reports supported.
supported.
12 Gateway Reporting Developer Guide

Running a Report and Obtaining Report Data

This procedure describes how to run a report and how to obtain the data in that report.
Step 1. Run the report
To run a report, call runReportRequest, providing the following parameter information.
runReportRequest(reportName, reportParams, pageSize)
Parameter Description
reportName Name of the report, for example, DailyActivityReport.
reportParam(s) (Optional) paramName and paramValue for each request input param to
be assigned a value.
pageSize Number of rows of data per page. Default is 50.
The runReportResponse returns the reportId. The reportId is used to refer to the particular report in future requests. The reportId returned is valid for up to 120 days.
Using the Reporting API
Running Reports
2
Step 2. Get the metadata
To get information on how the report is formatted, call getMetaDataRequest, providing the ReportId returned when the report was run.
getMetaDataRequest(ReportId)
getMetaDataResponse returns the following data.
Parameter Description
numberOfRows Total number of rows.
numberOfPages Total number of pages in the report.
pageSize Page size.
numberOfColumns Total number of columns.
dataName Name of each column.
dataType Type of column data, for example, string.
Step 3. Get the report data
To get the actual data in the report, call getDataRequest with the following parameters.
getDataRequest(reportId, pageNum)
reportId ID for this report returned by runReportRequest; reportId is valid
for up to 120 days.
pageNum Report page number containing data to be returned.
Gateway Reporting Developer Guide 13
Using the Reporting API
2

Managing Report Templates

Data is returned for the report page specified by pageNum. To obtain the data in a multi-page report, you must call getDataRequest for each report page.

Running Reports Offline

When a report takes longer to run than the time allotted, it is taken offline and status code 2, “Report is currently executing,” is returned. You must check for the results at a later time.
Step 1. Run the report
Request to run a report by calling runReportRequest. See “Step 1. Run the report” on
page 13.
The report times out. The ReportId and status code 2 are returned.
Step 2. Get the report results later
It is your responsibility to obtain the report results at a later time. Call
getResultsRequest, providing the reportId as a parameter.
getResultsRequest(reportId)
getResultsResponse returns a statusCode and statusMsg. Call getResultsResponse in a loop until statusCode 3, “Report has completed
successfully,” is returned.
Step 3. Get the metadata
Request to get the report’s metadata by calling getMetaDataRequest. See “Step 2. Get
the metadata” on page 13.
Step 3. Get the report data
Request to get the report data by calling getDataRequest. See “Step 3. Get the report
data” on page 13.
Managing Report Templates
Using the Reporting API, you can create, update, and delete report templates.
Step 1. Create a report template
To create a report template, call createTemplateRequest with the following parameters.
createTemplateRequest (templateName, reportName, reportParams)
Parameter Description
templateName Name that you are giving to the report template.
14 Gateway Reporting Developer Guide
Using the Reporting API

Using Report Templates

reportName Standard report from which you are creating the report template.
reportParam(s) paramName and paramValue of each reportParam to be assigned a
value.
The response to creating a report template returns a respCode and respMsg.
Step 2. Update a report template
To update a report template, call the updateTemplateRequest with the following parameters.
updateTemplateRequest(templateName, reportParams)
templateName Name given to the report template when it was created.
reportParam(s) paramName and paramValue of each reportParam to be assigned a
value.
The response to updating a report template returns a respCode and respMsg.
2
N OTE: Updating a report template is not incremental. It only sets values for the parameters
that are passed to updateTemplateRequest.
Step 3. Delete a report template
To delete a report template, call deleteTemplateRequest, providing the templateName as the input parameter.
deleteTemplateRequest(templateName)
The response to deleting a report template returns a respCode and respMsg.
Using Report Templates
Report templates are run like any standard report. They can also be scheduled to run on a daily, weekly, or monthly basis. Finally, report template schedules can be updated or deleted.

Running a report template and obtaining the report template data

Step 1. Run a report template
To run a report template, call runReportRequest with the following parameters.
runReportRequest(templateName, reportParams, pageSize).
templateName Name given to the report template when it was created.
Gateway Reporting Developer Guide 15
Using the Reporting API
2
Using Report Templates
reportParam(s) (Optional) paramName and paramValue for each reportParam that you
pageSize Number of rows of data per page. Default is 50.
Step 2. Get the metadata
Request to get the report’s metadata by calling getMetaDataRequest. See “Step 2. Get
the metadata” on page 13.
Step 3. Get the report data
Request to get the report data by calling getDataRequest. See “Step 3. Get the report
data” on page 13.

Scheduling a Report Template

want to assign a value to. These parameters can be ones previously saved in the report template or additional ones. The parameter values take precedence over the values previously saved for the parameters in the report template.
You can schedule a report template to run on a daily, weekly, or monthly basis. The Reporting API includes functionality to create schedules and to get the results of a scheduled report template.
Step 1. Create a schedule
To create a schedule for a report template, call createScheduleRequest with the following parameters.
createScheduleRequest(scheduleName, templateName, schedule)
scheduleName Name that you give to the schedule.
templateName Name of the report template to be scheduled.
schedule One of three values:
dailyweekly (select dayOfWeek value: Sunday, Monday, Tuesday,
Wednesday, Thursday, Friday, or Saturday)
monthly (Specify dayOfMonth value as an integer from 1 to 31. If
you specify 30 when the month is 28 days long, the value is corrected to 28.)
The time of the day starts at midnight the previous night. The value daily, for example, means midnight the previous night to midnight tonight.
Step 2. Get the results
To get the results of a scheduled report template that is run, call getScheduleRequest with scheduleName as a parameter.
getScheduleRequest(schedulename)
16 Gateway Reporting Developer Guide
getScheduleResponse returns all the reportIds and execution dates of the reports that were run on the schedule.
Step 3. Get the metadata
For each report, call getMetaDataRequest, passing in the reportId as a parameter, to get the information on how that report is formatted. See “Step 2. Get the metadata” on page 13.
Step 4. Get the report data
Request to get the report data for each report that was run by calling getDataRequest. See
“Step 3. Get the report data” on page 13.

Managing Report Template Schedules

Using the Reporting API, you can update and delete report template schedules.
Update a schedule
To update a schedule, call the updateScheduleRequest with the following parameters.
Using the Reporting API
Using Report Templates
2
updateScheduleRequest(scheduleName, templateName, schedule)
scheduleName Name given to the schedule when it was created.
templateName Name of the report template to update. Use this parameter to specify the
name of a different report template to associate with this schedule update.
schedule Use this parameter to change the schedule.
schedule is one of three values:
dailyweekly (select dayOfWeek value: Sunday, Monday, Tuesday,
Wednesday, Thursday, Friday, or Saturday)
monthly (specify dayOfMonth value as an integer from 1 to 31.
(Specify dayOfMonth value as an integer from 1 to 31. If you specify 30 when the month is 28 days, the value is corrected to 28.)
The time of the day starts at midnight the previous night. The value daily, for example, means midnight the previous night to midnight tonight.
The response to updating a schedule returns a respCode and respMsg.
Delete a schedule
To delete a schedule, call deleteScheduleRequest, providing the scheduleName as the input parameter.
deleteTemplateRequest(scheduleName)
The response to deleting a schedule returns a respCode and respMsg.
Gateway Reporting Developer Guide 17
Using the Reporting API
2

Performing Searches

Performing Searches
Using the Reporting API, you can search for transaction data by any of the following search names.
TransactionIDSearch
BatchIDSearch
AccountNumberSearch
CommentSearch
AccountNumberRefSearch
PurchaseOrderSearch
RecurringBillingProfileIDSearch
RecurringBillingProfileNameSearch
RecurringBillingAccountNumberSearch
RecurringBillingCommentSearch
RecurringBillingAmountSearch
Step 1. Run the search request
To run a search request, call runSearchRequest with the following parameters.
runSearchRequest(searchName, reportParam(s), pageSize)
searchName One of the search names listed above, for example,
TransactionIDSearch.
reportParam(s) paramName and paramValue of one or more input parameters for this
search. See
Appendix C, “Report Parameters,” for the required and
optional parameters.
pageSize Number of rows of data per page. Default is 50.
runSearchResponse returns the reportId for this search as well as the statusCode and statusMsg. The reportId returned is valid for up to 120 days.
Step 2. Get the metadata
Request to get the search metadata by calling getMetaDataRequest. See “Step 2. Get the
metadata” on page 13.
Step 3. Get the report data
Request to get the search data by calling getDataRequest. See “Step 3. Get the report
data” on page 13.
18 Gateway Reporting Developer Guide
Response Codes and Status
3
Codes
This chapter provides the following details on reports. It identifies:
Response codes and response messages
Status codes and the status messages

Response Codes

Response codes indicate the success or failure of a Reporting request. Table 5-2 describes the supported response codes and messages returned with each.
TABLE 3.1 Response codes and response messages
Response Code Response Message
100 Request has completed successfully
101 Request has failed
102 An internal scheduler error has occurred
103 Unknown report requested
104 Invalid Report ID
105 A system error has occurred
106 A database error has occurred
107 Invalid XML request
108 User authentication failed
109 Invalid report parameters provided
110 Invalid merchant account
111 Invalid page number
112 Template already exists
113 Unknown template requested
Gateway Reporting Developer Guide 19
Response Codes and Status Codes
3

Status Codes

Status Codes
Status codes indicate the status of a report, not necessarily the status of the Reporting request to be executed. A report may fail even if a Reporting request succeeds.
TABLE 3.2 Status codes and status messages
Status Code Status Message
1 Report has been created
2 Report is currently executing
3 Report has completed successfully
4 Report has failed
5 Report has expired
6 Report has expired
20 Gateway Reporting Developer Guide

Reporting XML Schema

A
This appendix contains the XML Reporting 1.0 schema.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="reportingEngineRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="authRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="user" type="xs:string"/> <xs:element name="vendor" type="xs:string"/> <xs:element name="partner" type="xs:string"/> <xs:element name="password" type="xs:string"/> <xs:element name="executor" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType> </xs:element> <xs:choice>
<xs:element name="createTemplateRequest">
<xs:complexType>
<xs:sequence>
<xs:element ref="templateDefinition"/>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element name="getTemplateRequest">
<xs:complexType>
<xs:choice>
<xs:element ref="reportName"/> <xs:element ref="templateName"/>
</xs:choice>
</xs:complexType> </xs:element> <xs:element name="updateTemplateRequest">
<xs:complexType>
<xs:sequence>
<xs:element ref="templateDefinition"/>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element name="deleteTemplateRequest">
<xs:complexType>
<xs:sequence>
Gateway Reporting Developer Guide 21
Reporting XML Schema
A
maxOccurs="unbounded"/>
<xs:element ref="templateName"/>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element name="createScheduleRequest">
<xs:complexType>
<xs:sequence>
<xs:element ref="scheduleDefinition"/>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element name="getScheduleRequest">
<xs:complexType>
<xs:choice>
<xs:element ref="scheduleName"/> <xs:element ref="templateName"/>
</xs:choice>
</xs:complexType> </xs:element> <xs:element name="updateScheduleRequest">
<xs:complexType>
<xs:sequence>
<xs:element ref="scheduleDefinition"/>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element name="deleteScheduleRequest">
<xs:complexType>
<xs:sequence>
<xs:element ref="scheduleName"/>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element name="runReportRequest">
<xs:complexType>
<xs:sequence>
<xs:choice>
<xs:element ref="reportName"/>
<xs:element ref="templateName"/> </xs:choice> <xs:element ref="reportParam" minOccurs="0"
<xs:element ref="notificationRequired" minOccurs="0"/> <xs:element ref="pageSize" minOccurs="0"/>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element name="runSearchRequest">
<xs:complexType>
<xs:sequence>
<xs:element ref="searchName"/>
22 Gateway Reporting Developer Guide
<xs:element ref="reportParam" minOccurs="0"
maxOccurs="unbounded"/>
<xs:element ref="pageSize" minOccurs="0"/>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element name="getResultsRequest">
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0">
<xs:element ref="scheduleName"/> <xs:element ref="templateName"/> <xs:element ref="reportName"/> <xs:element ref="searchName"/>
<xs:element ref="reportId"/> </xs:choice> <xs:choice minOccurs="0">
<xs:complexType>
<xs:sequence>
</xs:sequence>
</xs:complexType> </xs:choice>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element name="getMetaDataRequest">
<xs:complexType>
<xs:sequence>
<xs:element ref="reportId"/>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element name="getDataRequest">
<xs:complexType>
<xs:sequence>
<xs:element ref="reportId"/> <xs:element ref="pageNum" minOccurs="0"/>
</xs:sequence>
</xs:complexType> </xs:element>
</xs:choice>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element name="reportingEngineResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="baseResponse">
<xs:complexType>
Reporting XML Schema
<xs:element name="startDate"type="xs:date"/> <xs:element name="endDate" type="xs:date"/>
A
Gateway Reporting Developer Guide 23
Reporting XML Schema
A
maxOccurs="unbounded">
<xs:sequence>
<xs:element name="responseCode" type="xs:int"/> <xs:element name="responseMsg" type="xs:string"/>
</xs:sequence>
</xs:complexType> </xs:element> <xs:choice minOccurs="0">
<xs:element name="getTemplateResponse">
<xs:complexType>
<xs:choice>
<xs:element ref="templateName" maxOccurs="unbounded"/> <xs:element ref="templateDefinition"/>
</xs:choice>
</xs:complexType> </xs:element> <xs:element name="getScheduleResponse">
<xs:complexType>
<xs:choice>
<xs:element ref="scheduleName" maxOccurs="unbounded"/> <xs:element ref="scheduleDefinition"/>
</xs:choice>
</xs:complexType> </xs:element> <xs:element name="runReportResponse">
<xs:complexType>
<xs:sequence>
<xs:element ref="reportId"/> <xs:element ref="statusCode"/> <xs:element ref="statusMsg"/>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element name="runSearchResponse">
<xs:complexType>
<xs:sequence>
<xs:element ref="reportId"/> <xs:element ref="statusCode"/> <xs:element ref="statusMsg"/>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element name="getResultsResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="Results" minOccurs="0"
<xs:complexType>
<xs:sequence>
<xs:element ref="reportId"/> <xs:element ref="statusCode"/> <xs:element ref="statusMsg"/>
24 Gateway Reporting Developer Guide
type="xs:dateTime" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element name="getMetaDataResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="numberOfRows" type="xs:int"/> <xs:element name="numberOfPages" type="xs:int"/> <xs:element ref="pageSize"/> <xs:element name="numberOfColumns" type="xs:int"/> <xs:element name="columnMetaData" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element name="getDataResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="reportDataRow" maxOccurs="unbounded">
<xs:complexType>
maxOccurs="unbounded">
Reporting XML Schema
<xs:element name="executionTime"
<xs:element ref="scheduleName" minOccurs="0"/> <xs:element ref="reportName" minOccurs="0"/> <xs:element ref="templateName" minOccurs="0"/> <xs:element ref="searchName" minOccurs="0"/>
</xs:sequence>
<xs:sequence>
<xs:element name="dataName" type="xs:string"/> <xs:element name="dataType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="string"/> <xs:enumeration value="number"/> <xs:enumeration value="date"/> <xs:enumeration value="currency"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
<xs:sequence>
<xs:element name="columnData"
<xs:complexType>
<xs:sequence>
A
Gateway Reporting Developer Guide 25
Reporting XML Schema
A
type="xs:string" minOccurs="0"/>
</xs:complexType> </xs:element>
</xs:choice>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element name="reportDefinition">
<xs:complexType>
<xs:sequence/>
</xs:complexType> </xs:element> <xs:element name="reportId" type="xs:string"/> <xs:element name="paramName" type="xs:string"/> <xs:element name="paramValue" type="xs:string"/> <xs:element name="templateName" type="xs:string"/> <xs:element name="reportName" type="xs:string"/> <xs:element name="reportParam">
<xs:complexType>
<xs:sequence>
<xs:element ref="paramName"/> <xs:element ref="paramValue"/>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element name="templateDefinition">
<xs:complexType>
<xs:sequence>
<xs:element ref="templateName"/> <xs:element ref="reportName"/> <xs:element ref="reportParam" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element name="notificationRequired" type="xs:boolean"/> <xs:element name="scheduleDefinition">
<xs:complexType>
<xs:sequence>
<xs:element ref="scheduleName"/> <xs:element ref="templateName"/> <xs:element ref="notificationRequired"/> <xs:choice>
<xs:element name="data"
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element ref="pageNum"/>
</xs:sequence>
26 Gateway Reporting Developer Guide
<xs:element name="daily">
<xs:complexType/> </xs:element> <xs:element name="weekly">
<xs:complexType>
<xs:sequence>
<xs:element name="dayOfWeek">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Sunday"/> <xs:enumeration value="Monday"/> <xs:enumeration value="Tuesday"/> <xs:enumeration value="Wednesday"/> <xs:enumeration value="Thursday"/> <xs:enumeration value="Friday"/> <xs:enumeration value="Saturday"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element name="monthly">
<xs:complexType>
<xs:sequence>
<xs:element name="dayOfMonth" type="xs:int"/>
</xs:sequence>
</xs:complexType> </xs:element>
</xs:choice> <xs:element ref="pageSize" minOccurs="0"/>
</xs:sequence>
</xs:complexType> </xs:element> <xs:element name="scheduleName" type="xs:string"/> <xs:element name="pageNum" type="xs:int"/> <xs:element name="searchName" type="xs:string"/> <xs:element name="pageSize" type="xs:int"/> <xs:element name="statusCode" type="xs:int"/> <xs:element name="statusMsg" type="xs:string"/>
</xs:schema>
Reporting XML Schema
A
Gateway Reporting Developer Guide 27
Reporting XML Schema
A
28 Gateway Reporting Developer Guide

Reporting Samples

B
This appendix demonstrates how to use the Reporting API to create, run, and manage reports. For details on the predefined reports named in this appendix, see the Manager User’s Guide.
N OTE: In this appendix, replace these values shown in boldface with appropriate values:
User, Vendor, Partner, and Password.

Running a Daily Activity Report

This section demonstrates how to run a Daily Activity Report.

Running a Daily Activity Report Request

The request demonstrates how to run a Daily Activity Report with a page size of 50 lines to obtain results for September 7, 2007.
<?xml version="1.0" encoding="UTF-8"?> <reportingEngineRequest> <authRequest> <user>User</user> <vendor>Vendor</vendor> <partner>Partner</partner> <password>Password</password> </authRequest>
<runReportRequest>
<reportName>DailyActivityReport</reportName> <reportParam> <paramName>report_date</paramName>
<paramValue>2007-09-07</paramValue> </reportParam> <pageSize>50</pageSize>
</runReportRequest>
</reportingEngineRequest>
Gateway Reporting Developer Guide 29
Reporting Samples
B
Running a Daily Activity Report

Running a Daily Activity Report Response

In the response to running the Daily Activity Report, the responseCode of 100 indicates that the report completed successfully. The reportId 132 returned is used to uniquely identify this report in future calls to the Reporting API.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <reportingEngineResponse>
<baseResponse>
<responseCode>100</responseCode> <responseMsg>Request has completed successfully</responseMsg>
</baseResponse> <runReportResponse>
<reportId>132</reportId> <statusCode>3</statusCode> <statusMsg>Report has completed successfully</statusMsg>
</runReportResponse>
</reportingEngineResponse>
30 Gateway Reporting Developer Guide
Loading...
+ 92 hidden pages