Get treasury outbound transfers outbound transfer

Retrieves the details of an existing OutboundTransfer by passing the unique OutboundTransfer ID from either the OutboundTransfer creation request or OutboundTransfer list.

Script stripe Verified

by hugo697 ยท 10/30/2023

The script

Submitted by hugo697 Typescript (fetch-only)
Verified 368 days ago
1
type Stripe = {
2
  token: string;
3
};
4
/**
5
 * Get treasury outbound transfers outbound transfer
6
 * Retrieves the details of an existing OutboundTransfer by passing the unique OutboundTransfer ID from either the OutboundTransfer creation request or OutboundTransfer list.
7
 */
8
export async function main(
9
  auth: Stripe,
10
  outbound_transfer: string,
11
  expand: any
12
) {
13
  const url = new URL(
14
    `https://api.stripe.com/v1/treasury/outbound_transfers/${outbound_transfer}`
15
  );
16
  encodeParams({ expand }).forEach((v, k) => {
17
    if (v !== undefined && v !== "") {
18
      url.searchParams.append(k, v);
19
    }
20
  });
21
  const response = await fetch(url, {
22
    method: "GET",
23
    headers: {
24
      "Content-Type": "application/x-www-form-urlencoded",
25
      Authorization: "Bearer " + auth.token,
26
    },
27
    body: undefined,
28
  });
29
  if (!response.ok) {
30
    const text = await response.text();
31
    throw new Error(`${response.status} ${text}`);
32
  }
33
  return await response.json();
34
}
35

36
function encodeParams(o: any) {
37
  function iter(o: any, path: string) {
38
    if (Array.isArray(o)) {
39
      o.forEach(function (a) {
40
        iter(a, path + "[]");
41
      });
42
      return;
43
    }
44
    if (o !== null && typeof o === "object") {
45
      Object.keys(o).forEach(function (k) {
46
        iter(o[k], path + "[" + k + "]");
47
      });
48
      return;
49
    }
50
    data.push(path + "=" + o);
51
  }
52
  const data: string[] = [];
53
  Object.keys(o).forEach(function (k) {
54
    if (o[k] !== undefined) {
55
      iter(o[k], k);
56
    }
57
  });
58
  return new URLSearchParams(data.join("&"));
59
}
60