Create a new currency for a Xero organisation

Script xero Verified

by hugo697 ยท 12/20/2024

The script

Submitted by hugo697 Bun
Verified 515 days ago
1
//native
2
type Xero = {
3
  token: string;
4
};
5
/**
6
 * Create a new currency for a Xero organisation
7
 *
8
 */
9
export async function main(
10
  auth: Xero,
11
  xero_tenant_id: string,
12
  Idempotency_Key: string,
13
  body: {
14
    Code?:
15
      | "AED"
16
      | "AFN"
17
      | "ALL"
18
      | "AMD"
19
      | "ANG"
20
      | "AOA"
21
      | "ARS"
22
      | "AUD"
23
      | "AWG"
24
      | "AZN"
25
      | "BAM"
26
      | "BBD"
27
      | "BDT"
28
      | "BGN"
29
      | "BHD"
30
      | "BIF"
31
      | "BMD"
32
      | "BND"
33
      | "BOB"
34
      | "BRL"
35
      | "BSD"
36
      | "BTN"
37
      | "BWP"
38
      | "BYN"
39
      | "BYR"
40
      | "BZD"
41
      | "CAD"
42
      | "CDF"
43
      | "CHF"
44
      | "CLF"
45
      | "CLP"
46
      | "CNY"
47
      | "COP"
48
      | "CRC"
49
      | "CUC"
50
      | "CUP"
51
      | "CVE"
52
      | "CZK"
53
      | "DJF"
54
      | "DKK"
55
      | "DOP"
56
      | "DZD"
57
      | "EEK"
58
      | "EGP"
59
      | "ERN"
60
      | "ETB"
61
      | "EUR"
62
      | "FJD"
63
      | "FKP"
64
      | "GBP"
65
      | "GEL"
66
      | "GHS"
67
      | "GIP"
68
      | "GMD"
69
      | "GNF"
70
      | "GTQ"
71
      | "GYD"
72
      | "HKD"
73
      | "HNL"
74
      | "HRK"
75
      | "HTG"
76
      | "HUF"
77
      | "IDR"
78
      | "ILS"
79
      | "INR"
80
      | "IQD"
81
      | "IRR"
82
      | "ISK"
83
      | "JMD"
84
      | "JOD"
85
      | "JPY"
86
      | "KES"
87
      | "KGS"
88
      | "KHR"
89
      | "KMF"
90
      | "KPW"
91
      | "KRW"
92
      | "KWD"
93
      | "KYD"
94
      | "KZT"
95
      | "LAK"
96
      | "LBP"
97
      | "LKR"
98
      | "LRD"
99
      | "LSL"
100
      | "LTL"
101
      | "LVL"
102
      | "LYD"
103
      | "MAD"
104
      | "MDL"
105
      | "MGA"
106
      | "MKD"
107
      | "MMK"
108
      | "MNT"
109
      | "MOP"
110
      | "MRO"
111
      | "MRU"
112
      | "MUR"
113
      | "MVR"
114
      | "MWK"
115
      | "MXN"
116
      | "MXV"
117
      | "MYR"
118
      | "MZN"
119
      | "NAD"
120
      | "NGN"
121
      | "NIO"
122
      | "NOK"
123
      | "NPR"
124
      | "NZD"
125
      | "OMR"
126
      | "PAB"
127
      | "PEN"
128
      | "PGK"
129
      | "PHP"
130
      | "PKR"
131
      | "PLN"
132
      | "PYG"
133
      | "QAR"
134
      | "RON"
135
      | "RSD"
136
      | "RUB"
137
      | "RWF"
138
      | "SAR"
139
      | "SBD"
140
      | "SCR"
141
      | "SDG"
142
      | "SEK"
143
      | "SGD"
144
      | "SHP"
145
      | "SKK"
146
      | "SLE"
147
      | "SLL"
148
      | "SOS"
149
      | "SRD"
150
      | "STD"
151
      | "STN"
152
      | "SVC"
153
      | "SYP"
154
      | "SZL"
155
      | "THB"
156
      | "TJS"
157
      | "TMT"
158
      | "TND"
159
      | "TOP"
160
      | "TRY"
161
      | "TTD"
162
      | "TWD"
163
      | "TZS"
164
      | "UAH"
165
      | "UGX"
166
      | "USD"
167
      | "UYU"
168
      | "UZS"
169
      | "VEF"
170
      | "VES"
171
      | "VND"
172
      | "VUV"
173
      | "WST"
174
      | "XAF"
175
      | "XCD"
176
      | "XOF"
177
      | "XPF"
178
      | "YER"
179
      | "ZAR"
180
      | "ZMW"
181
      | "ZMK"
182
      | "ZWD";
183
    Description?: string;
184
  },
185
) {
186
  const url = new URL(`https://api.xero.com/api.xro/2.0/Currencies`);
187

188
  const response = await fetch(url, {
189
    method: "PUT",
190
    headers: {
191
      Accept: 'application/json',
192
      "xero-tenant-id": xero_tenant_id,
193
      "Idempotency-Key": Idempotency_Key,
194
      "Content-Type": "application/json",
195
      Authorization: "Bearer " + auth.token,
196
    },
197
    body: JSON.stringify(body),
198
  });
199
  if (!response.ok) {
200
    const text = await response.text();
201
    throw new Error(`${response.status} ${text}`);
202
  }
203
  return await response.json();
204
}
205