0
Deletes a specific repeating invoice template
One script reply has been approved by the moderators Verified
Created by hugo697 209 days ago Viewed 13522 times
0
Submitted by hugo697 Bun
Verified 209 days ago
1
//native
2
type Xero = {
3
  token: string;
4
};
5
/**
6
 * Deletes a specific repeating invoice template
7
 *
8
 */
9
export async function main(
10
  auth: Xero,
11
  RepeatingInvoiceID: string,
12
  xero_tenant_id: string,
13
  Idempotency_Key: string,
14
  body: {
15
    RepeatingInvoices?: {
16
      Type?: "ACCPAY" | "ACCREC";
17
      Contact?: {
18
        ContactID?: string;
19
        MergedToContactID?: string;
20
        ContactNumber?: string;
21
        AccountNumber?: string;
22
        ContactStatus?: "ACTIVE" | "ARCHIVED" | "GDPRREQUEST";
23
        Name?: string;
24
        FirstName?: string;
25
        LastName?: string;
26
        CompanyNumber?: string;
27
        EmailAddress?: string;
28
        ContactPersons?: {
29
          FirstName?: string;
30
          LastName?: string;
31
          EmailAddress?: string;
32
          IncludeInEmails?: false | true;
33
        }[];
34
        BankAccountDetails?: string;
35
        TaxNumber?: string;
36
        AccountsReceivableTaxType?: string;
37
        AccountsPayableTaxType?: string;
38
        Addresses?: {
39
          AddressType?: "POBOX" | "STREET";
40
          AddressLine1?: string;
41
          AddressLine2?: string;
42
          AddressLine3?: string;
43
          AddressLine4?: string;
44
          City?: string;
45
          Region?: string;
46
          PostalCode?: string;
47
          Country?: string;
48
          AttentionTo?: string;
49
        }[];
50
        Phones?: {
51
          PhoneType?: "DEFAULT" | "DDI" | "MOBILE" | "FAX" | "OFFICE";
52
          PhoneNumber?: string;
53
          PhoneAreaCode?: string;
54
          PhoneCountryCode?: string;
55
        }[];
56
        IsSupplier?: false | true;
57
        IsCustomer?: false | true;
58
        SalesDefaultLineAmountType?: "INCLUSIVE" | "EXCLUSIVE" | "NONE";
59
        PurchasesDefaultLineAmountType?: "INCLUSIVE" | "EXCLUSIVE" | "NONE";
60
        DefaultCurrency?:
61
          | "AED"
62
          | "AFN"
63
          | "ALL"
64
          | "AMD"
65
          | "ANG"
66
          | "AOA"
67
          | "ARS"
68
          | "AUD"
69
          | "AWG"
70
          | "AZN"
71
          | "BAM"
72
          | "BBD"
73
          | "BDT"
74
          | "BGN"
75
          | "BHD"
76
          | "BIF"
77
          | "BMD"
78
          | "BND"
79
          | "BOB"
80
          | "BRL"
81
          | "BSD"
82
          | "BTN"
83
          | "BWP"
84
          | "BYN"
85
          | "BYR"
86
          | "BZD"
87
          | "CAD"
88
          | "CDF"
89
          | "CHF"
90
          | "CLF"
91
          | "CLP"
92
          | "CNY"
93
          | "COP"
94
          | "CRC"
95
          | "CUC"
96
          | "CUP"
97
          | "CVE"
98
          | "CZK"
99
          | "DJF"
100
          | "DKK"
101
          | "DOP"
102
          | "DZD"
103
          | "EEK"
104
          | "EGP"
105
          | "ERN"
106
          | "ETB"
107
          | "EUR"
108
          | "FJD"
109
          | "FKP"
110
          | "GBP"
111
          | "GEL"
112
          | "GHS"
113
          | "GIP"
114
          | "GMD"
115
          | "GNF"
116
          | "GTQ"
117
          | "GYD"
118
          | "HKD"
119
          | "HNL"
120
          | "HRK"
121
          | "HTG"
122
          | "HUF"
123
          | "IDR"
124
          | "ILS"
125
          | "INR"
126
          | "IQD"
127
          | "IRR"
128
          | "ISK"
129
          | "JMD"
130
          | "JOD"
131
          | "JPY"
132
          | "KES"
133
          | "KGS"
134
          | "KHR"
135
          | "KMF"
136
          | "KPW"
137
          | "KRW"
138
          | "KWD"
139
          | "KYD"
140
          | "KZT"
141
          | "LAK"
142
          | "LBP"
143
          | "LKR"
144
          | "LRD"
145
          | "LSL"
146
          | "LTL"
147
          | "LVL"
148
          | "LYD"
149
          | "MAD"
150
          | "MDL"
151
          | "MGA"
152
          | "MKD"
153
          | "MMK"
154
          | "MNT"
155
          | "MOP"
156
          | "MRO"
157
          | "MRU"
158
          | "MUR"
159
          | "MVR"
160
          | "MWK"
161
          | "MXN"
162
          | "MXV"
163
          | "MYR"
164
          | "MZN"
165
          | "NAD"
166
          | "NGN"
167
          | "NIO"
168
          | "NOK"
169
          | "NPR"
170
          | "NZD"
171
          | "OMR"
172
          | "PAB"
173
          | "PEN"
174
          | "PGK"
175
          | "PHP"
176
          | "PKR"
177
          | "PLN"
178
          | "PYG"
179
          | "QAR"
180
          | "RON"
181
          | "RSD"
182
          | "RUB"
183
          | "RWF"
184
          | "SAR"
185
          | "SBD"
186
          | "SCR"
187
          | "SDG"
188
          | "SEK"
189
          | "SGD"
190
          | "SHP"
191
          | "SKK"
192
          | "SLE"
193
          | "SLL"
194
          | "SOS"
195
          | "SRD"
196
          | "STD"
197
          | "STN"
198
          | "SVC"
199
          | "SYP"
200
          | "SZL"
201
          | "THB"
202
          | "TJS"
203
          | "TMT"
204
          | "TND"
205
          | "TOP"
206
          | "TRY"
207
          | "TTD"
208
          | "TWD"
209
          | "TZS"
210
          | "UAH"
211
          | "UGX"
212
          | "USD"
213
          | "UYU"
214
          | "UZS"
215
          | "VEF"
216
          | "VES"
217
          | "VND"
218
          | "VUV"
219
          | "WST"
220
          | "XAF"
221
          | "XCD"
222
          | "XOF"
223
          | "XPF"
224
          | "YER"
225
          | "ZAR"
226
          | "ZMW"
227
          | "ZMK"
228
          | "ZWD";
229
        XeroNetworkKey?: string;
230
        SalesDefaultAccountCode?: string;
231
        PurchasesDefaultAccountCode?: string;
232
        SalesTrackingCategories?: {
233
          TrackingCategoryName?: string;
234
          TrackingOptionName?: string;
235
        }[];
236
        PurchasesTrackingCategories?: {
237
          TrackingCategoryName?: string;
238
          TrackingOptionName?: string;
239
        }[];
240
        TrackingCategoryName?: string;
241
        TrackingCategoryOption?: string;
242
        PaymentTerms?: {
243
          Bills?: {
244
            Day?: number;
245
            Type?:
246
              | "DAYSAFTERBILLDATE"
247
              | "DAYSAFTERBILLMONTH"
248
              | "OFCURRENTMONTH"
249
              | "OFFOLLOWINGMONTH";
250
          };
251
          Sales?: {
252
            Day?: number;
253
            Type?:
254
              | "DAYSAFTERBILLDATE"
255
              | "DAYSAFTERBILLMONTH"
256
              | "OFCURRENTMONTH"
257
              | "OFFOLLOWINGMONTH";
258
          };
259
        };
260
        UpdatedDateUTC?: string;
261
        ContactGroups?: {
262
          Name?: string;
263
          Status?: "ACTIVE" | "DELETED";
264
          ContactGroupID?: string;
265
          Contacts?: {}[];
266
        }[];
267
        Website?: string;
268
        BrandingTheme?: {
269
          BrandingThemeID?: string;
270
          Name?: string;
271
          LogoUrl?: string;
272
          Type?: "INVOICE";
273
          SortOrder?: number;
274
          CreatedDateUTC?: string;
275
        };
276
        BatchPayments?: {
277
          BankAccountNumber?: string;
278
          BankAccountName?: string;
279
          Details?: string;
280
          Code?: string;
281
          Reference?: string;
282
        };
283
        Discount?: number;
284
        Balances?: {
285
          AccountsReceivable?: { Outstanding?: number; Overdue?: number };
286
          AccountsPayable?: { Outstanding?: number; Overdue?: number };
287
        };
288
        Attachments?: {
289
          AttachmentID?: string;
290
          FileName?: string;
291
          Url?: string;
292
          MimeType?: string;
293
          ContentLength?: number;
294
          IncludeOnline?: false | true;
295
        }[];
296
        HasAttachments?: never;
297
        ValidationErrors?: { Message?: string }[];
298
        HasValidationErrors?: never;
299
        StatusAttributeString?: string;
300
      };
301
      Schedule?: {
302
        Period?: number;
303
        Unit?: "WEEKLY" | "MONTHLY";
304
        DueDate?: number;
305
        DueDateType?:
306
          | "DAYSAFTERBILLDATE"
307
          | "DAYSAFTERBILLMONTH"
308
          | "OFCURRENTMONTH"
309
          | "OFFOLLOWINGMONTH"
310
          | "DAYSAFTERINVOICEDATE"
311
          | "DAYSAFTERINVOICEMONTH";
312
        StartDate?: string;
313
        NextScheduledDate?: string;
314
        EndDate?: string;
315
      };
316
      LineItems?: {
317
        LineItemID?: string;
318
        Description?: string;
319
        Quantity?: number;
320
        UnitAmount?: number;
321
        ItemCode?: string;
322
        AccountCode?: string;
323
        AccountID?: string;
324
        TaxType?: string;
325
        TaxAmount?: number;
326
        Item?: { Code?: string; Name?: string; ItemID?: string };
327
        LineAmount?: number;
328
        Tracking?: {
329
          TrackingCategoryID?: string;
330
          TrackingOptionID?: string;
331
          Name?: string;
332
          Option?: string;
333
        }[];
334
        DiscountRate?: number;
335
        DiscountAmount?: number;
336
        RepeatingInvoiceID?: string;
337
        Taxability?:
338
          | "TAXABLE"
339
          | "NON_TAXABLE"
340
          | "EXEMPT"
341
          | "PART_TAXABLE"
342
          | "NOT_APPLICABLE";
343
        SalesTaxCodeId?: number;
344
        TaxBreakdown?: {
345
          TaxComponentId?: string;
346
          Type?:
347
            | "SYSGST/USCOUNTRY"
348
            | "SYSGST/USSTATE"
349
            | "SYSGST/USCOUNTY"
350
            | "SYSGST/USCITY"
351
            | "SYSGST/USSPECIAL";
352
          Name?: string;
353
          TaxPercentage?: number;
354
          TaxAmount?: number;
355
          TaxableAmount?: number;
356
          NonTaxableAmount?: number;
357
          ExemptAmount?: number;
358
          StateAssignedNo?: string;
359
          JurisdictionRegion?: string;
360
        }[];
361
      }[];
362
      LineAmountTypes?: "Exclusive" | "Inclusive" | "NoTax";
363
      Reference?: string;
364
      BrandingThemeID?: string;
365
      CurrencyCode?:
366
        | "AED"
367
        | "AFN"
368
        | "ALL"
369
        | "AMD"
370
        | "ANG"
371
        | "AOA"
372
        | "ARS"
373
        | "AUD"
374
        | "AWG"
375
        | "AZN"
376
        | "BAM"
377
        | "BBD"
378
        | "BDT"
379
        | "BGN"
380
        | "BHD"
381
        | "BIF"
382
        | "BMD"
383
        | "BND"
384
        | "BOB"
385
        | "BRL"
386
        | "BSD"
387
        | "BTN"
388
        | "BWP"
389
        | "BYN"
390
        | "BYR"
391
        | "BZD"
392
        | "CAD"
393
        | "CDF"
394
        | "CHF"
395
        | "CLF"
396
        | "CLP"
397
        | "CNY"
398
        | "COP"
399
        | "CRC"
400
        | "CUC"
401
        | "CUP"
402
        | "CVE"
403
        | "CZK"
404
        | "DJF"
405
        | "DKK"
406
        | "DOP"
407
        | "DZD"
408
        | "EEK"
409
        | "EGP"
410
        | "ERN"
411
        | "ETB"
412
        | "EUR"
413
        | "FJD"
414
        | "FKP"
415
        | "GBP"
416
        | "GEL"
417
        | "GHS"
418
        | "GIP"
419
        | "GMD"
420
        | "GNF"
421
        | "GTQ"
422
        | "GYD"
423
        | "HKD"
424
        | "HNL"
425
        | "HRK"
426
        | "HTG"
427
        | "HUF"
428
        | "IDR"
429
        | "ILS"
430
        | "INR"
431
        | "IQD"
432
        | "IRR"
433
        | "ISK"
434
        | "JMD"
435
        | "JOD"
436
        | "JPY"
437
        | "KES"
438
        | "KGS"
439
        | "KHR"
440
        | "KMF"
441
        | "KPW"
442
        | "KRW"
443
        | "KWD"
444
        | "KYD"
445
        | "KZT"
446
        | "LAK"
447
        | "LBP"
448
        | "LKR"
449
        | "LRD"
450
        | "LSL"
451
        | "LTL"
452
        | "LVL"
453
        | "LYD"
454
        | "MAD"
455
        | "MDL"
456
        | "MGA"
457
        | "MKD"
458
        | "MMK"
459
        | "MNT"
460
        | "MOP"
461
        | "MRO"
462
        | "MRU"
463
        | "MUR"
464
        | "MVR"
465
        | "MWK"
466
        | "MXN"
467
        | "MXV"
468
        | "MYR"
469
        | "MZN"
470
        | "NAD"
471
        | "NGN"
472
        | "NIO"
473
        | "NOK"
474
        | "NPR"
475
        | "NZD"
476
        | "OMR"
477
        | "PAB"
478
        | "PEN"
479
        | "PGK"
480
        | "PHP"
481
        | "PKR"
482
        | "PLN"
483
        | "PYG"
484
        | "QAR"
485
        | "RON"
486
        | "RSD"
487
        | "RUB"
488
        | "RWF"
489
        | "SAR"
490
        | "SBD"
491
        | "SCR"
492
        | "SDG"
493
        | "SEK"
494
        | "SGD"
495
        | "SHP"
496
        | "SKK"
497
        | "SLE"
498
        | "SLL"
499
        | "SOS"
500
        | "SRD"
501
        | "STD"
502
        | "STN"
503
        | "SVC"
504
        | "SYP"
505
        | "SZL"
506
        | "THB"
507
        | "TJS"
508
        | "TMT"
509
        | "TND"
510
        | "TOP"
511
        | "TRY"
512
        | "TTD"
513
        | "TWD"
514
        | "TZS"
515
        | "UAH"
516
        | "UGX"
517
        | "USD"
518
        | "UYU"
519
        | "UZS"
520
        | "VEF"
521
        | "VES"
522
        | "VND"
523
        | "VUV"
524
        | "WST"
525
        | "XAF"
526
        | "XCD"
527
        | "XOF"
528
        | "XPF"
529
        | "YER"
530
        | "ZAR"
531
        | "ZMW"
532
        | "ZMK"
533
        | "ZWD";
534
      Status?: "DELETED" | "DRAFT" | "AUTHORISED";
535
      SubTotal?: number;
536
      TotalTax?: number;
537
      Total?: number;
538
      RepeatingInvoiceID?: string;
539
      ID?: string;
540
      HasAttachments?: never;
541
      Attachments?: {
542
        AttachmentID?: string;
543
        FileName?: string;
544
        Url?: string;
545
        MimeType?: string;
546
        ContentLength?: number;
547
        IncludeOnline?: false | true;
548
      }[];
549
      ApprovedForSending?: never;
550
      SendCopy?: never;
551
      MarkAsSent?: never;
552
      IncludePDF?: never;
553
    }[];
554
  },
555
) {
556
  const url = new URL(
557
    `https://api.xero.com/api.xro/2.0/RepeatingInvoices/${RepeatingInvoiceID}`,
558
  );
559

560
  const response = await fetch(url, {
561
    method: "POST",
562
    headers: {
563
      Accept: 'application/json',
564
      "xero-tenant-id": xero_tenant_id,
565
      "Idempotency-Key": Idempotency_Key,
566
      "Content-Type": "application/json",
567
      Authorization: "Bearer " + auth.token,
568
    },
569
    body: JSON.stringify(body),
570
  });
571
  if (!response.ok) {
572
    const text = await response.text();
573
    throw new Error(`${response.status} ${text}`);
574
  }
575
  return await response.json();
576
}
577