Aggregate file description

The -aggregate.csv file includes a summary-level report of fees on all payments, refunds, and chargebacks across all boarded merchants within a given settlement period. This will be delivered every day that settlement has been made along with the other 7 describing that settlement period.

The naming convention is:

<merchant number>-<frequency>-<year>-<ongoing number>-<suffix>.csv

Example: 1-999-W-2016-07-aggregate.csv

The file will contain the following data:

ColumnDescriptionType
MERCHANT_IDContract ID identifying each unique merchant as provided by PPRO upon onboarding

[a-zA-Z0-9.,-_]{1,40}
string
PAYMENT_METHODName of the payment method (e.g. “SEPA Direct Debit”)

[a-zA-Z0-9]{1,40}

(see Appendix B for a full list of values)
string
EVENT_TYPESee EVENT_TYPE list belowstring
EVENT_COUNTThe number of individual transactions summarized in this entrynumeric
AGGREGATE_AMOUNTThe aggregate amount of transactions summarized in this entrynumeric
CURRENCY3-digit ISO currency codestring

EVENT_TYPE Descriptions:

EVENT_TYPEDescription
TRANSACTIONA normal payment transaction
(cash-in)
REFUNDA normal refund or return of funds to the consumer
(cash-out)
CHARGEBACKA disputed transaction
CLEARED_TO_MERCHANTAmount of successful transactions cleared by merchants. This amount does not include one-off (e.g.: WIRE_FEE) or per-transaction fees
ACQUIRING_FEEThe fee per transaction (not a percentage of the transaction value) deducted from the ultimate settlement
DISCOUNT_FEEThe percentage of the aggregated transaction volume that is debited from the ultimate settlement
PROCESSING_FEEAdditional per-transaction (not a %) fee
SUCCEEDED_FEEThe fee charged when a transaction moves from any state to a SUCCEEDED state (not a % of transaction value)
WIRE_FEEThe fee charged to send funds to a client
MERCHANT_SETUP_FEEA one-time per-merchant fee charged when a new merchant is set up
MERCHANT_MONTHLY_FEEThe recurring monthly fee for every merchant
INQUIRY_FEEA fee that a scheme charges PPRO for any inquiry (non-fraud/risk) into a transaction
ONE_TIME_FEEOne-time fee assessed due to external factors (fraud research, supplement send fee from the bank, etc.)
FRAUD_INQUIRY_FEESame as INQUIRY_FEE. Highlights that the external fee was related to a fraud inquiry
MONTHLY_MINIMUM_FEEThe difference between the contractually agreed monthly minimums and the amount processed

(for example, this is 0 if the monthly minimum is hit)
MONTHLY_BASE_FEEThe monthly fixed price that PPRO charges for transaction processing
PROVIDER_PROFIT_SHAREFor referral partners only – fees that PPRO charges for profit sharing for referrals
RESERVED_HOLDBACKThe amount of settlement held back (refer to contract for a schedule of holdback timelines)
RELEASED_HOLDBACKThe amount of holdback released (refer to the contract for the schedule of holdback timelines)
FX_SALESource currency (currency to be converted) - granular FX rates are published in the footer of the aggregate file; see section below for Currency Conversion (forex) Footer Samples
FX_PURCHASEDestination currency (currency to be settled) - granular FX rates are published in the footer of the aggregate file; see section below for Currency Conversion (forex) Footer Samples
FX_FEEFX fee assessed by PPRO for offering currency conversion services; same currency as FX_PURCHASE - granular FX rates are published in the footer of the aggregate file; see section below for Currency Conversion (forex) Footer Samples
STARTING_BALANCEpositive:
• the amount in reserve that remains from the prior period
• the amount that is below the settlement threshold (refer to your contract to see which case applies)

negative:
• the amount to be billed that has not reached an invoicing threshold

In both scenarios: this field is generated for the currency when it is relevant per your PPRO contract with PPRO. It can also appear multiple times, one time per currency.

This field is not generated in the following scenarios:
• There is no reserve or arrears
• The STARTING_BALANCE is 0

STARTING_BALANCE is not associated with a MERCHANT_ID. It appears in the file similar to standalone fees (e.g: WIRE_FEE).

The same value appears in PPRO’s PDF Clearing Statement
FORWARDED_BALANCEpositive:
• the amount remaining in reserve that is forwarded to the next settlement cycle
• the amount under the settlement threshold that will be forwarded to the next cycle (refer to the contract to see which case applies)

negative:
•.the amount to be billed that has not reached an invoicing threshold

In both scenarios: this field is generated for the currency when it is relevant per your PPRO contract with PPRO. It can also appear multiple times, one time per currency.

This field is not generated in the following scenarios:
• There is no reserve or arrears
• The STARTING_BALANCE is 0

FORWARDED_BALANCE is not associated with a MERCHANT_ID. It appears in the file similar to standalone fees (e.g: WIRE_FEE)

The same value appears in PPRO’s PDF Clearing Statement
VATThe Value Added Tax (VAT) assessed due to the location of a customer's legal, contracted address. The value is deducted from the settlement as a negative value in the aggregate file of a billing period. VAT will only appear as an event in the aggregate settlement file if it is relevant to a customer - this will be known during the contracting period with PPRO
MANUAL_ADJUSTMENTManual adjustments (credit/debit) to align with the generated bills

👍

Note

See your PPRO contract for information about the applicability of each fee type. Reach out to your account manager for more details.

FX Footer Field

The currency quotation will be presented in the clearing statements / invoices and in the aggregate csv file as follows:

FX Footer FieldExplanationSample ValueSample Explanation
FX_CONVERSION_RATE_ABC_XYZConversion rate from currency to buy ABC and sell XYZ. Values in bold for readability.FX_CONVERSION_RATE_USD_MYR,4.185991The rate PPRO used to sell MYR and buy USD is 1 USD : 4.185991 MYR
FX_FEE_RATE_ABC_XYZ,0.01Foreign exchange fee charged for conversion between currencies ABC and XYZ. Values in bold for readability.FX_FEE_RATE_USD_MYR,0.01The FX fee PPRO charged for MYR to USD conversion is 1%

👍

Note

There will be multiple entries for FX_CONVERSION_RATE and FX_FEE_RATE in the aggregate file's footer in the event that there are multiple currency conversions in a single settlement. A sample of multiple forex entries is documented in the following sample file:

FX Aggregate Sample File

Example: calculating reserve

This sample helps calculate reserve with 50,000 EUR available based on a daily settlement cycle.

Day 1Day 2Day 3Day 4Day 5Day 6Day 7
STARTING_BALANCE5000050000400005000025000050000
FORWARDED_BALANCE5000040000500002500005000050000
NoteNormal day0 sales,
10k refunds
On a normal day with >10K in sales, 10K is removed from settlement to replenish the reserve0 sales,
25K refunds
0 sales,
25K refunds
Enough sales to replenish reserve and settle the remaining amountNormal day

Holdback Information

❗️

Important

Holdbacks will only appear for customers who have holdbacks configured as a part of their agreement with PPRO. Please reach out to your account manager for any uncertainty regarding holbacks and their applicability.

PPRO will provide enhanced detail into the holdbacks held and paid out to customers, by LPM, currency and value. A negative value implies an amount held back; a positive value implies a holdback amount that will be paid out on the SETTLEMENT_DATE noted in the aggregate file’s footer. The date in a RESERVED_HOLDBACK_SUMMARY record indicates the date at which the amount will be released, while that in a RELEASED_HOLDBACK_SUMMARY record recalls when the released amount was originally reserved.

👍

Note

The release date reported in the Reserved Holdback record is not the date that previously-held funds will be transferred to the partner, but instead indicates the day upon which the held funds will be reported as released in the aggregate settlement file, to be settled on the corresponding SETTLEMENT_DATE in that file

The holdback summary data will be present in the aggregate CSV file at the footer of the file.

👍

Note

There will be a line break preceding the holdback data’s printing in the file. The data below are represented in tabular form, rather than in raw comma-separate form, for readability purposes.

RESERVED_HOLDBACK_SUMMARYALIPAYUSD2021-12-09-75303.69
RESERVED_HOLDBACK_SUMMARYALIPAYEUR2021-12-10-4175.34
RESERVED_HOLDBACK_SUMMARYALIPAYSGD2021-12-1155827.9
RESERVED_HOLDBACK_SUMMARYWeChatPayEUR2021-12-12-1222.92
RESERVED_HOLDBACK_SUMMARYWeChatPayEUR2021-12-131593.24

In the sample above, an SGD holdback for Alipay was released to be paid out on the SETTLEMENT_DATE, as was a EUR holdback for WeChatPay. Alipay also had USD and EUR amounts held back; WeChatPay had an amount also held back.

👍

Note

The footer holdback values are aggregate for all LPM and Currency pairings across all merchants.

Individual transactions can be identified in the holdback as follows (within the aggregate file):

MERCHANT_IDPAYMENT_METHODEVENT_TYPEEVENT_COUNTAGGREGATE_AMOUNTCURRENCY
MERCHANT1AlipayRESERVED_HOLDBACK1-100USD
MERCHANT1AlipayTRANSACTION3100USD

Based on the Event Count for the Event Type as Transaction, one can look up the individual transactions in the volume-per-transaction file as shown in the table below:

MERCHANT_TX_IDTX_IDPAYMENT_REFERENCEEVENT_TYPEEVENT_TIMESTAMPMERCHANT_IDPAYMENT_METHODAMOUNTCURRENCYCOUNTRY
123456789099954321ABC1234SUCCEEDED2022-02-08T00:00:09ZMERCHANT1Alipay20.00USDCN
23456789099965432DEF2345SUCCEEDED2022-02-08T00:10:13ZMERCHANT1Alipay35.00USDCN
34567890199976543EFG3456SUCCEEDED2022-02-08T00:20:54ZMERCHANT1Alipay45.00USDCN

🚧

Important

When files are delivered in the SFTP, they will be zipped in a gzip format (*.gz). Please ensure that your system can extract gz files before processing.

Note on rounding of DISCOUNT_FEE amounts

Values in the AGGREGATE_AMOUNT column of DISCOUNT_FEE are calculated with a precision of 100th of the (minor) currency unit. E.g. for EUR, the precision is 100th of a cent - the 3rd and 4th digit after the comma. For the Japanese Yen the precision is 100th of a yen - the 1st and 2nd digit after the comma. Digits during calculation beyond the precision are discarded, effectively leading to rounding down.

Examples:

  • The DISCOUNT_FEE of an aggregate with a total volume of 9.99 EUR and a DISCOUNT_FEE-Percentage of 1.111% is 0.1109. The calculation steps done are:
    • round_down(9.99 * 1.111%, 4)
    • round_down(0.1109889, 4)
    • 0.1109
  • The DISCOUNT_FEE of an aggregate with a total volume of 999 YEN and a DISCOUNT_FEE-Percentage of 1.111% is 0.1109. The calculation steps done are
    • round_down(999 * 1.111%, 4)
    • round_down(11.09889, 4)
    • 11.09

Please note: Transactions are aggregated across various attributes including the payment method, event type, currency... Due to a lesser rounding issue when calculating the DISCOUNT_FEEbased on aggregated transaction volume, the totalDISCOUNT_FEEof all aggregates in the Aggregate file does not equal the total DISCOUNT_FEE of all transactions in the fee-per-*.csv files.