This document describes the interface for retrieving transaction data from the PPRO system. It has been designed in a way that the retrieval and processing of the data can be fully automated and there is no need for manual intervention.
URL
In order to retrieve the requested data from the PPRO system an XML message has to be sent via HTTP- POST within a parameter called "load“ to the following URL:
As a result of this request you will get an XML stream including all of the transactions that fulfil your filter criteria.
Request Description
The Request version must be specified and is “1.0” always.
Query describes the mode for which you want to receive transaction data and for which entity. You can query for any defined entity that exists in your account. Please be aware that if you define for example the level to be CHANNEL the ID of the entity must be a channel ID.
The element Type describes which transaction types you can query from the gateway. It is possible to query all available payment types. However, for some payment types a time limitation may apply, ie they can only be queried over a period of one day.
At the moment three types are available for searches over a maximum period of one month:
Chargeback (CB)
Chargeback Reversal (CR)
Receipt (RC)
In those cases the difference between “from” and “to” in the Period tag must be lower than or equal to one month.
All other types can only be queried over a period of one day, meaning “from” and “to” in the Period tag must be the same.
IMPORTANT: The maximum number of transactions per query is limited depending on the types and period you are querying for:
The maximum number of results per query in general is 10.000.
In case you query for a longer period than one week or you do not specify a period at all the maximum number is 2.000.
In case you query for a type other than CB, CR or RC, the maximum number is 2.000.
In case you search for “TransactionID”, the maximum number is 200.
Queries for ShortID and UniqueID do not require any time period or other additional query parameters
If the time period is lower than ten minutes, the query can be executed without any limiting query parameters
For system stability and security reasons PPRO reserves the right to block the query interface for single merchants in case the query API should be receiving e.g. a massive number of automated queries beyond tolerable limits. See chapter 4 for typical use cases and recommended queries.
<Response>
<Error>
<Timestamp>2006-03-04 15:50:35</Timestamp>
<Return code="100.200.101">invalid period, if searching for non-backchannel-types
(CB, RC) from and to must be on the same day</Return>
</Error>
</Response>
Request Message
Request Encoding:
For all payment requests containing shopping and possibly payment data, the request header must contain the Content-Type / charset parameter with the charset encoding set to “UTF-8”. The actual content type may differ; the decisive information is the charset value.
Accordingly, all request data must be encoded using the UTF-8-character set.
For XML data, please use the following Content-Type: application/x-www-form-urlencoded;charset=UTF-8 Examples:
The query tag has three attributes which determine the processing of the query.
User Group
The User tag group contains security related information. Check the document “Technical Quickstart” for information on how to retrieve this login data for your test account. Contact your account manager for the live account data.
Search for UniqueID or ShortID:
This group allows the user to query for specific transactions if the ShortId or the UniqueId is known. Both IDs are part of each XML Transaction Response. Only one of the two IDs is required. If either UniqueID or ShortID is present, Period and Types are optional.
Search for more than one UniqueID at the same time:
This group allows the user to query for specific transactions the UniqueIds are known and return them all at once. Period and Types are optional.
Search for TransactionID:
This group also allows the user to query for specific transactions by the TransactionID. This is the ID the merchant has assigned to a specific payment transaction.
This ID does not necessarily have to be unique when it gets submitted the payment system with a payment transaction. Nevertheless, it is highly recommended to use unique (or at least selective) ones. For safety and stability reasons of the query interface, this query allows you to retrieve a maximum of 200 transactions per TransactionID.
TransactionType Group
The TransactionType group contains an alternative and/or extension to the Methods group. It allows you to define what types of transactions your query result should contain.
<TransactionType>PAYMENT</TransactionType>
Period Group
This tag group specifies the date period of the query. The “from” date is always extended with the time 00:00:00 and the “to” date with 23:59:59. All times are UTC only.For the following payment types the “from” and “to” date can be any day:
Chargeback (CB)
Chargeback Reversal (CR)
Receipt (RC)
For all other payment types the “from” and “to” date have to be on the same day. This means only one day can be queried within one XML query request.
The ProcessingResult tag group contains information if you want to query for successful of failed transactions only. It is the same tag you would receive in an XML payment response as part of the Processing Tag Group (See document “XML Transactions”).
<ProcessingResult>ACK</ProcessingResult>
Account Group
The account group allows you to search for user account. This tag group is only needed if you search for registered user accounts.
The result to a query request message is – like the response to an XML transaction request – surrounded by a tag. The response tag contains either a Result Group or, in case of an invalid request, an Error Group.
Typical Use Case:
Automatically retrieve chargebacks from the payment system. Depending on the acquirer or bank new Chargebacks usually appear once a day in the system. For details, please, contact your account manager. Therefore, it does not make sense to query the system for new Chargebacks every five minutes or so.
Please note: For system safety and stability reasons the merchant query access may be blocked in case of receiving too many automated requests from this account within a short timeframe.
This request will retrieve the chargebacks for the channel identified by the ID 8a8294174e918ca6014e9c6f5ae12a9c for the week of the 27th of March to the 2nd of April. Let’s assume 3 chargebacks have been issued during that period. The result might look something like the Response sample tab.
Typical Use Case: Automatically retrieve if somebody has transferred money onto your bank account. In order to check if a prepayment (PP) has been fulfilled you have to retrieve receipts. Again, a request has to be sent to the query engine at:
This request will retrieve the receipts for the channel identified by the ID 8a8294174e918ca6014e9c6e44672a96 for the week of the 27th of March to the 3rd of April.
Let’s assume that one receipt has been issued during that period. The result will look like the Response sample tab.
Typical Use Case: Automatically retrieve transactions from the payment system where you only have an ID.
In order to retrieve a transaction where the UniqueId or ShortId is known, only one transaction can be queried. For example, this can be particularly useful to retrieve a Registration of an user to be able to show the user the (masked) payment data or customer data he entered the last time he paid in the shop. This is very helpful in case you either do not have the UniqueID or ShortID anymore or you never received it (e.g. Timeout). In this case you are able to query the state of the transaction.
If a query is rejected due to errors the Response will contain an Error-Tag. The following example shows a request that is declined because the type is unknown (please be aware that codes and messages are subject to changes):