1 | |
2 | type Xero = { |
3 | token: string |
4 | } |
5 | |
6 | * Creates a new chart of accounts |
7 | * |
8 | */ |
9 | export async function main( |
10 | auth: Xero, |
11 | xero_tenant_id: string, |
12 | Idempotency_Key: string, |
13 | body: { |
14 | Code?: string |
15 | Name?: string |
16 | AccountID?: string |
17 | Type?: |
18 | | 'BANK' |
19 | | 'CURRENT' |
20 | | 'CURRLIAB' |
21 | | 'DEPRECIATN' |
22 | | 'DIRECTCOSTS' |
23 | | 'EQUITY' |
24 | | 'EXPENSE' |
25 | | 'FIXED' |
26 | | 'INVENTORY' |
27 | | 'LIABILITY' |
28 | | 'NONCURRENT' |
29 | | 'OTHERINCOME' |
30 | | 'OVERHEADS' |
31 | | 'PREPAYMENT' |
32 | | 'REVENUE' |
33 | | 'SALES' |
34 | | 'TERMLIAB' |
35 | | 'PAYG' |
36 | BankAccountNumber?: string |
37 | Status?: 'ACTIVE' | 'ARCHIVED' | 'DELETED' |
38 | Description?: string |
39 | BankAccountType?: '' | 'BANK' | 'CREDITCARD' | 'PAYPAL' | 'NONE' |
40 | CurrencyCode?: |
41 | | 'AED' |
42 | | 'AFN' |
43 | | 'ALL' |
44 | | 'AMD' |
45 | | 'ANG' |
46 | | 'AOA' |
47 | | 'ARS' |
48 | | 'AUD' |
49 | | 'AWG' |
50 | | 'AZN' |
51 | | 'BAM' |
52 | | 'BBD' |
53 | | 'BDT' |
54 | | 'BGN' |
55 | | 'BHD' |
56 | | 'BIF' |
57 | | 'BMD' |
58 | | 'BND' |
59 | | 'BOB' |
60 | | 'BRL' |
61 | | 'BSD' |
62 | | 'BTN' |
63 | | 'BWP' |
64 | | 'BYN' |
65 | | 'BYR' |
66 | | 'BZD' |
67 | | 'CAD' |
68 | | 'CDF' |
69 | | 'CHF' |
70 | | 'CLF' |
71 | | 'CLP' |
72 | | 'CNY' |
73 | | 'COP' |
74 | | 'CRC' |
75 | | 'CUC' |
76 | | 'CUP' |
77 | | 'CVE' |
78 | | 'CZK' |
79 | | 'DJF' |
80 | | 'DKK' |
81 | | 'DOP' |
82 | | 'DZD' |
83 | | 'EEK' |
84 | | 'EGP' |
85 | | 'ERN' |
86 | | 'ETB' |
87 | | 'EUR' |
88 | | 'FJD' |
89 | | 'FKP' |
90 | | 'GBP' |
91 | | 'GEL' |
92 | | 'GHS' |
93 | | 'GIP' |
94 | | 'GMD' |
95 | | 'GNF' |
96 | | 'GTQ' |
97 | | 'GYD' |
98 | | 'HKD' |
99 | | 'HNL' |
100 | | 'HRK' |
101 | | 'HTG' |
102 | | 'HUF' |
103 | | 'IDR' |
104 | | 'ILS' |
105 | | 'INR' |
106 | | 'IQD' |
107 | | 'IRR' |
108 | | 'ISK' |
109 | | 'JMD' |
110 | | 'JOD' |
111 | | 'JPY' |
112 | | 'KES' |
113 | | 'KGS' |
114 | | 'KHR' |
115 | | 'KMF' |
116 | | 'KPW' |
117 | | 'KRW' |
118 | | 'KWD' |
119 | | 'KYD' |
120 | | 'KZT' |
121 | | 'LAK' |
122 | | 'LBP' |
123 | | 'LKR' |
124 | | 'LRD' |
125 | | 'LSL' |
126 | | 'LTL' |
127 | | 'LVL' |
128 | | 'LYD' |
129 | | 'MAD' |
130 | | 'MDL' |
131 | | 'MGA' |
132 | | 'MKD' |
133 | | 'MMK' |
134 | | 'MNT' |
135 | | 'MOP' |
136 | | 'MRO' |
137 | | 'MRU' |
138 | | 'MUR' |
139 | | 'MVR' |
140 | | 'MWK' |
141 | | 'MXN' |
142 | | 'MXV' |
143 | | 'MYR' |
144 | | 'MZN' |
145 | | 'NAD' |
146 | | 'NGN' |
147 | | 'NIO' |
148 | | 'NOK' |
149 | | 'NPR' |
150 | | 'NZD' |
151 | | 'OMR' |
152 | | 'PAB' |
153 | | 'PEN' |
154 | | 'PGK' |
155 | | 'PHP' |
156 | | 'PKR' |
157 | | 'PLN' |
158 | | 'PYG' |
159 | | 'QAR' |
160 | | 'RON' |
161 | | 'RSD' |
162 | | 'RUB' |
163 | | 'RWF' |
164 | | 'SAR' |
165 | | 'SBD' |
166 | | 'SCR' |
167 | | 'SDG' |
168 | | 'SEK' |
169 | | 'SGD' |
170 | | 'SHP' |
171 | | 'SKK' |
172 | | 'SLE' |
173 | | 'SLL' |
174 | | 'SOS' |
175 | | 'SRD' |
176 | | 'STD' |
177 | | 'STN' |
178 | | 'SVC' |
179 | | 'SYP' |
180 | | 'SZL' |
181 | | 'THB' |
182 | | 'TJS' |
183 | | 'TMT' |
184 | | 'TND' |
185 | | 'TOP' |
186 | | 'TRY' |
187 | | 'TTD' |
188 | | 'TWD' |
189 | | 'TZS' |
190 | | 'UAH' |
191 | | 'UGX' |
192 | | 'USD' |
193 | | 'UYU' |
194 | | 'UZS' |
195 | | 'VEF' |
196 | | 'VES' |
197 | | 'VND' |
198 | | 'VUV' |
199 | | 'WST' |
200 | | 'XAF' |
201 | | 'XCD' |
202 | | 'XOF' |
203 | | 'XPF' |
204 | | 'YER' |
205 | | 'ZAR' |
206 | | 'ZMW' |
207 | | 'ZMK' |
208 | | 'ZWD' |
209 | TaxType?: string |
210 | EnablePaymentsToAccount?: false | true |
211 | ShowInExpenseClaims?: false | true |
212 | Class?: 'EQUITY' | 'EXPENSE' | 'LIABILITY' | 'REVENUE' | 'ASSET' |
213 | SystemAccount?: |
214 | | '' |
215 | | 'DEBTORS' |
216 | | 'CREDITORS' |
217 | | 'BANKCURRENCYGAIN' |
218 | | 'GST' |
219 | | 'GSTONIMPORTS' |
220 | | 'HISTORICAL' |
221 | | 'REALISEDCURRENCYGAIN' |
222 | | 'RETAINEDEARNINGS' |
223 | | 'ROUNDING' |
224 | | 'TRACKINGTRANSFERS' |
225 | | 'UNPAIDEXPCLM' |
226 | | 'UNREALISEDCURRENCYGAIN' |
227 | | 'WAGEPAYABLES' |
228 | | 'CISASSETS' |
229 | | 'CISASSET' |
230 | | 'CISLABOUR' |
231 | | 'CISLABOUREXPENSE' |
232 | | 'CISLABOURINCOME' |
233 | | 'CISLIABILITY' |
234 | | 'CISMATERIALS' |
235 | ReportingCode?: string |
236 | ReportingCodeName?: string |
237 | HasAttachments?: never |
238 | UpdatedDateUTC?: string |
239 | AddToWatchlist?: false | true |
240 | ValidationErrors?: { Message?: string }[] |
241 | } |
242 | ) { |
243 | const url = new URL(`https://api.xero.com/api.xro/2.0/Accounts`) |
244 |
|
245 | const response = await fetch(url, { |
246 | method: 'PUT', |
247 | headers: { |
248 | Accept: 'application/json', |
249 | 'xero-tenant-id': xero_tenant_id, |
250 | 'Idempotency-Key': Idempotency_Key, |
251 | 'Content-Type': 'application/json', |
252 | Authorization: 'Bearer ' + auth.token |
253 | }, |
254 | body: JSON.stringify(body) |
255 | }) |
256 | if (!response.ok) { |
257 | const text = await response.text() |
258 | throw new Error(`${response.status} ${text}`) |
259 | } |
260 | return await response.json() |
261 | } |
262 |
|