0

List all balances

by
Published Apr 8, 2025

List all balances. Specify date time to list balances for that time that appear in the response.Notes: It takes a maximum of three hours for balances to appear in the list balances call.This call lists balances upto the previous three years.

Script paypal Verified

The script

Submitted by hugo697 Bun
Verified 428 days ago
1
//native
2
type Paypal = {
3
  clientId: string;
4
  clientSecret: string;
5
};
6

7
async function getToken(auth: Paypal): Promise<string> {
8
  const url = new URL(`https://api-m.paypal.com/v1/oauth2/token`);
9
  const response = await fetch(url, {
10
    method: "POST",
11
    headers: {
12
      Authorization: `Basic ${btoa(`${auth.clientId}:${auth.clientSecret}`)}`,
13
    },
14
    body: new URLSearchParams({
15
      grant_type: "client_credentials",
16
    }),
17
  });
18
  if (!response.ok) {
19
    const text = await response.text();
20
    throw new Error(`Could not get token: ${response.status} ${text}`);
21
  }
22
  const json = await response.json();
23
  return json.access_token;
24
}
25
/**
26
 * List all balances
27
 * List all balances. Specify date time to list balances for that time that appear in the response.Notes: It takes a maximum of three hours for balances to appear in the list balances call.This call lists balances upto the previous three years.
28
 */
29
export async function main(
30
  auth: Paypal,
31
  as_of_time: string | undefined,
32
  currency_code: string | undefined,
33
) {
34
  const token = await getToken(auth);
35
  const url = new URL(
36
    `https://api-m.paypal.com/v1/reporting/v1/reporting/balances`,
37
  );
38
  for (const [k, v] of [
39
    ["as_of_time", as_of_time],
40
    ["currency_code", currency_code],
41
  ]) {
42
    if (v !== undefined && v !== "" && k !== undefined) {
43
      url.searchParams.append(k, v);
44
    }
45
  }
46
  const response = await fetch(url, {
47
    method: "GET",
48
    headers: {
49
      Authorization: "Bearer " + token,
50
    },
51
    body: undefined,
52
  });
53
  if (!response.ok) {
54
    const text = await response.text();
55
    throw new Error(`${response.status} ${text}`);
56
  }
57
  return await response.json();
58
}
59