PayPal Payflow Pro - 2010 Developer's Guide

Payflow Pro Reporting Developer’s Guide
Last updated: June 2010
Payflow Pro Reporting Developer’s Guide
Document Number: 200009.en_US-200912
© 2010 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
Reporting Developer’s 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 Reporting Developer’s 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
Appendix C Report Parameters . . . . . . . . . . . . . . . . . . . . .57
Daily Activity Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Transaction Summary Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Settlement Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
PayPal Settlement Summary Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Shipping and Billing Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Batch ID Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Custom Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Fraud Protection Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Filter Scorecard Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Auto Delayed Capture Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Auto Credit Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Auto Void Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Auto Resettle Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Recurring Billing Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Recurring Profile Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Recurring Profile Failed Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Appendix D Search Parameters . . . . . . . . . . . . . . . . . . . . .83
Transaction ID Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Batch ID Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
AccountNumberSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Reporting Developer’s Guide 5
Contents
CommentSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
AccountNumberRefSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
PurchaseOrderSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
RecurringBillingProfileIDSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
RecurringBillingProfileNameSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
RecurringBillingAccountNumberSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
RecurringBillingCommentSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
RecurringBillingAmountSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
FraudTransactionSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
OrderIDSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
PayPalTransactionIDSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
PayPalEmailSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101
PayPalNameSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102
Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6 Reporting Developer’s Guide
Payflow Pro Reporting Developer’s Guide describes the Reporting XML API. 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:
z Have a good understanding of XML application development
z Have a background in payments services
You should familiarize yourself with the introductory and Payflow documentation on PayPal Manager’s Documentation page.

Preface

Organization

This guide is organized as follows:
z Chapter 1, “Reporting Overview,” provides an overview of Reporting and the types of
functionality it offers.
z Chapter 2, “Using the Reporting API,” describes how to use the Reporting API.
z 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.
z Appendix A, “Reporting XML Schema,” provides the XML schema upon which the
Reporting XML API is based.
z Appendix B, “Reporting Samples,” presents samples demonstrating how to use the
reporting API.
z Appendix C, “Report Parameters,” describes the input and output parameters for each
standard report.
z Appendix D, “Search Parameters,” describes the input and output parameters for
performing searches by search name.
Reporting Developer’s 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 at payflow-
support@paypal.com

Revision History

Revision history for Reporting Developer’s Guide.
TABLE P.1 Revision History
Date Description
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 Reporting Developer’s 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 Payflow 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:
z Managing report templates
z Running reports on demand by report or report template name
z Obtaining information about reports
z Managing report template schedules
z 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:
z Create report templates
z Query report templates in the database
z Retrieve report templates from the database
z Update report templates
z Delete report templates
Reporting Developer’s 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:
z Report status
z 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 Reporting Developer’s Guide

Using the Reporting API

2
This chapter describes how you can use the Reporting API to perform the following tasks.
z “Running Reports” on page 12
z “Managing Report Templates” on page 14
z “Using Report Templates” on page 15
z “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.
Reporting Developer’s Guide 11
Using the Reporting API
2

Where to Go For More Information on the APIs

Response Data

Responses include the following information:
z All responses return a base response consisting of a response code (responseCode) and
a response message (responseMsg).
z Most responses return applicable response parameter data.
z 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 Reporting Developer’s 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.
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 returned for this report returned by runReportRequest.
pageNum Report page number containing data to be returned.
Reporting Developer’s 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.
reportName Standard report from which you are creating the report template.
14 Reporting Developer’s Guide
Using the Reporting API

Using Report Templates

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.
N OTE: Updating a report template is not incremental. It only sets values for the parameters
that are passed to updateTemplateRequest.
2
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.
Reporting Developer’s 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:
daily
weekly (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 Reporting Developer’s 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:
ndaily
n weekly (select dayOfWeek value: Sunday, Monday, Tuesday,
Wednesday, Thursday, Friday, or Saturday)
n 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.
Reporting Developer’s 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.
z TransactionIDSearch
z BatchIDSearch
z AccountNumberSearch
z CommentSearch
z AccountNumberRefSearch
z PurchaseOrderSearch
z RecurringBillingProfileIDSearch
z RecurringBillingProfileNameSearch
z RecurringBillingAccountNumberSearch
z RecurringBillingCommentSearch
z 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.
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 Reporting Developer’s Guide
Response Codes and Status
3
Codes
This chapter provides the following details on reports. It identifies:
z Response codes and response messages
z 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
Reporting Developer’s 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 Reporting Developer’s 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>
Reporting Developer’s 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 Reporting Developer’s 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
Reporting Developer’s 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 Reporting Developer’s 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
Reporting Developer’s 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 Reporting Developer’s 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
Reporting Developer’s Guide 27
Reporting XML Schema
A
28 Reporting Developer’s 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>
Reporting Developer’s 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 Reporting Developer’s Guide
Loading...
+ 74 hidden pages