curl --request GET \
--url https://api.sandbox.pawapay.io/v2/wallet-breakdowns \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sandbox.pawapay.io/v2/wallet-breakdowns"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sandbox.pawapay.io/v2/wallet-breakdowns', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sandbox.pawapay.io/v2/wallet-breakdowns",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.pawapay.io/v2/wallet-breakdowns"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sandbox.pawapay.io/v2/wallet-breakdowns")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.pawapay.io/v2/wallet-breakdowns")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyWallet breakdowns
Opening balance, turnover by category and closing balance for every wallet on your account, over whole UTC calendar days from startDate to endDate (both inclusive). The figures are the ones shown on the Dashboard under Wallets → Breakdown.
Each entry carries the wallet identity and a nested breakdown object. Categories with no movement are omitted (absent means zero).
curl --request GET \
--url https://api.sandbox.pawapay.io/v2/wallet-breakdowns \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sandbox.pawapay.io/v2/wallet-breakdowns"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sandbox.pawapay.io/v2/wallet-breakdowns', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sandbox.pawapay.io/v2/wallet-breakdowns",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.pawapay.io/v2/wallet-breakdowns"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sandbox.pawapay.io/v2/wallet-breakdowns")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.pawapay.io/v2/wallet-breakdowns")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body- The period is whole UTC calendar days from
startDatetoendDate, both inclusive, and at most 31 days. - One request returns all your wallets. Use the optional
countryfilter to limit it to one country. Identify each wallet bycountry,currencyandprovider, as in Wallet Balances. - Wallets with no movement are included, with only their opening and closing balance.
- Categories with no movement are omitted: treat a missing category as zero.
- Amounts are signed: credits are positive, debits negative. They are the values shown on the Dashboard, rounded to 2 decimals the same way the Dashboard rounds them, so a value exactly halfway between two cents can round down (for example
2.675shows as2.67). openingBalanceplus all present categories equalsclosingBalance. Because each amount is rounded on its own, a sum of the published figures can differ by a cent.- Breakdown data starts in 2021. Earlier periods return zero balances and no categories.
What is in withdrawals?
withdrawals holds your settlement withdrawals, outgoing wallet-to-wallet transfers and float reallocations. It is therefore not the same as the sum of your settlements for the period.
When a settlement is cancelled, the withdrawn amount returns to your wallet and is netted in withdrawals. For example, 27.00 withdrawn with a 7.00 settlement cancelled shows withdrawals as -20. If the cancellation falls in a later period than the withdrawal, the returned amount is added to withdrawals of that later period, which can make it positive.
Which operations make up each category?
Every operation on your wallet belongs to exactly one category. The mapping below is version 1. A change that moves an operation to another category is announced at least 30 days in advance.| Operation type | Category |
|---|---|
ADJUSTMENT_BANK_CHARGES | adjustments |
ADJUSTMENT_EXCISE_TAX | adjustments |
ADJUSTMENT_MMO_PAYOUT_REVERSAL | adjustments |
ADJUSTMENT_MNO_INTEREST | adjustments |
ADJUSTMENT_NON_DEDUCTED_SUCCESSFUL_PAYOUTS | adjustments |
ADJUSTMENT_OTHER | adjustments |
ADJUSTMENT_OTHER_POSITIVE | adjustments |
ADJUSTMENT_PASSTHROUGHFEE_REBATE | adjustments |
ADJUSTMENT_PASSTHROUGHFEE_REIMBURSEMENT | adjustments |
ADJUSTMENT_PAYOUTS_DEBIT_IN_ERROR | adjustments |
ADJUSTMENT_WITHHOLDING_TAX | adjustments |
ADJUSTMENT_WRONGFUL_CREDIT_OF_DEPOSITS | adjustments |
CANCELLED_WITHDRAWAL_REVERSAL | withdrawals |
COMBINED_DEPOSIT_FEE | fees |
COMBINED_PAYOUT_FEE | fees |
COMBINED_REFUND_FEE | fees |
COMBINED_REMITTANCE_FEE | fees |
COMBINED_SPLIT_DEPOSIT_FEE | fees |
COMBINED_SPLIT_PAYOUT_FEE | fees |
COMPENSATION_FEES_REIMBURSEMENT | compensations |
COMPENSATION_NON_CREDITED_SUCCESSFUL_DEPOSITS | adjustments |
COMPENSATION_OTHER | compensations |
COMPENSATION_WALLET_PASS_THROUGH_FEES | fees (legacy type, not in use) |
COMPENSATION_WALLET_PAWAPAY_FEES | fees (legacy type, not in use) |
COMPENSATION_WRONGFUL_DEBIT_FROM_PAYOUTS | compensations |
CONS_DEPOSIT_FEE | fees |
CONS_PAYOUT_FEE | fees |
CONS_REFUND_FEE | fees |
CONS_REMITTANCE_FEE | fees |
CONS_SPLIT_DEPOSIT_FEE | fees |
CONS_SPLIT_PAYOUT_FEE | fees |
DEPOSIT | deposits |
DEPOSIT_PASS_THROUGH_FEE | fees |
FAILED_PAYOUT_REFUND | payouts |
FAILED_REFUND_REVERSAL | refunds |
FAILED_REMITTANCE_REFUND | remittances |
FAILED_SPLIT_PAYOUT_REFUND | splitPayouts |
LOC_MANUAL_PAWAPAY_FEES | fees |
LOC_PAWAPAY_DEPOSIT_FEE | fees |
LOC_PAWAPAY_PAYOUT_FEE | fees |
LOC_PAWAPAY_REFUND_FEE | fees |
LOC_PAWAPAY_REMITTANCE_FEE | fees |
LOC_PAWAPAY_SPLIT_DEPOSIT_FEE | fees |
LOC_PAWAPAY_SPLIT_PAYOUT_FEE | fees |
MANUAL_PASS_THROUGH_FEES | fees |
MANUAL_PAWAPAY_FEES | fees |
PASS_THROUGH_FEE | fees (legacy type, not in use) |
PAWAPAY_DEPOSIT_FEE | fees |
PAWAPAY_FEE | fees (legacy type, not in use) |
PAWAPAY_FLOAT_WALLET_TOP_UP_WALLET_TO_WALLET_TRANSFER | topUps |
PAWAPAY_FLOAT_WALLET_WITHDRAWAL_WALLET_TO_WALLET_TRANSFER | withdrawals |
PAWAPAY_PAYOUT_FEE | fees |
PAWAPAY_REFUND_FEE | fees |
PAWAPAY_REMITTANCE_FEE | fees |
PAWAPAY_SPLIT_DEPOSIT_FEE | fees |
PAWAPAY_SPLIT_PAYOUT_FEE | fees |
PAYOUT | payouts |
PAYOUT_PASS_THROUGH_FEE | fees |
PAYOUT_REVERSAL | uncategorized (legacy type, not in use) |
REFUND | refunds |
REFUND_PASS_THROUGH_FEE | fees |
REMITTANCE | remittances |
REMITTANCE_PASS_THROUGH_FEE | fees |
SPLIT_DEPOSIT | splitDeposits |
SPLIT_DEPOSIT_PASS_THROUGH_FEE | fees |
SPLIT_PAYOUT | splitPayouts |
SPLIT_PAYOUT_PASS_THROUGH_FEE | fees |
SUMMED_DEPOSIT_FEE | fees |
SUMMED_PAYOUT_FEE | fees |
SUMMED_REFUND_FEE | fees |
SUMMED_REMITTANCE_FEE | fees |
SUMMED_SPLIT_DEPOSIT_FEE | fees |
SUMMED_SPLIT_PAYOUT_FEE | fees |
TOP_UP | topUps |
TOP_UP_ALLOCATION_FROM_PPAY_FLOAT | topUps |
TOP_UP_WALLET_TO_WALLET_TRANSFER | topUps |
UNMAPPED_OPERATION_TYPE | uncategorized |
WITHDRAWAL | withdrawals |
WITHDRAWAL_REALLOCATION_TO_PPAY_FLOAT | withdrawals |
WITHDRAWAL_WALLET_TO_WALLET_TRANSFER | withdrawals |
Authorizations
See Authentication.
Query Parameters
First UTC calendar day of the period, inclusive.
Format is YYYY-MM-DD. Date-times are rejected.
"2026-06-01"
Last UTC calendar day of the period, inclusive. Must be on or after startDate and not in the future. The period from startDate to endDate, both days included, is at most 31 days: for example, 2026-06-01 to 2026-07-01.
Format is YYYY-MM-DD. Date-times are rejected.
"2026-06-30"
Response
Request has been succesfully processed.
The startDate of the request.
"2026-06-01"
The endDate of the request.
"2026-06-30"
One entry per wallet on your account (or in country, when filtered), including wallets with no movement. Ordered by country, then currency, then provider.
Identify an entry by country + currency + provider: one country can hold several wallets.
Show child attributes
Show child attributes
The country filter of the request, in upper case. Only present when the filter was sent.
"UGA"
Was this page helpful?