Edits history of script submission #10204 for ' Deletes a specific repeating invoice template (xero)'

  • bun
    One script reply has been approved by the moderators
    Ap­pro­ved
    //native
    type Xero = {
      token: string;
    };
    /**
     * Deletes a specific repeating invoice template
     *
     */
    export async function main(
      auth: Xero,
      RepeatingInvoiceID: string,
      xero_tenant_id: string,
      Idempotency_Key: string,
      body: {
        RepeatingInvoices?: {
          Type?: "ACCPAY" | "ACCREC";
          Contact?: {
            ContactID?: string;
            MergedToContactID?: string;
            ContactNumber?: string;
            AccountNumber?: string;
            ContactStatus?: "ACTIVE" | "ARCHIVED" | "GDPRREQUEST";
            Name?: string;
            FirstName?: string;
            LastName?: string;
            CompanyNumber?: string;
            EmailAddress?: string;
            ContactPersons?: {
              FirstName?: string;
              LastName?: string;
              EmailAddress?: string;
              IncludeInEmails?: false | true;
            }[];
            BankAccountDetails?: string;
            TaxNumber?: string;
            AccountsReceivableTaxType?: string;
            AccountsPayableTaxType?: string;
            Addresses?: {
              AddressType?: "POBOX" | "STREET";
              AddressLine1?: string;
              AddressLine2?: string;
              AddressLine3?: string;
              AddressLine4?: string;
              City?: string;
              Region?: string;
              PostalCode?: string;
              Country?: string;
              AttentionTo?: string;
            }[];
            Phones?: {
              PhoneType?: "DEFAULT" | "DDI" | "MOBILE" | "FAX" | "OFFICE";
              PhoneNumber?: string;
              PhoneAreaCode?: string;
              PhoneCountryCode?: string;
            }[];
            IsSupplier?: false | true;
            IsCustomer?: false | true;
            SalesDefaultLineAmountType?: "INCLUSIVE" | "EXCLUSIVE" | "NONE";
            PurchasesDefaultLineAmountType?: "INCLUSIVE" | "EXCLUSIVE" | "NONE";
            DefaultCurrency?:
              | "AED"
              | "AFN"
              | "ALL"
              | "AMD"
              | "ANG"
              | "AOA"
              | "ARS"
              | "AUD"
              | "AWG"
              | "AZN"
              | "BAM"
              | "BBD"
              | "BDT"
              | "BGN"
              | "BHD"
              | "BIF"
              | "BMD"
              | "BND"
              | "BOB"
              | "BRL"
              | "BSD"
              | "BTN"
              | "BWP"
              | "BYN"
              | "BYR"
              | "BZD"
              | "CAD"
              | "CDF"
              | "CHF"
              | "CLF"
              | "CLP"
              | "CNY"
              | "COP"
              | "CRC"
              | "CUC"
              | "CUP"
              | "CVE"
              | "CZK"
              | "DJF"
              | "DKK"
              | "DOP"
              | "DZD"
              | "EEK"
              | "EGP"
              | "ERN"
              | "ETB"
              | "EUR"
              | "FJD"
              | "FKP"
              | "GBP"
              | "GEL"
              | "GHS"
              | "GIP"
              | "GMD"
              | "GNF"
              | "GTQ"
              | "GYD"
              | "HKD"
              | "HNL"
              | "HRK"
              | "HTG"
              | "HUF"
              | "IDR"
              | "ILS"
              | "INR"
              | "IQD"
              | "IRR"
              | "ISK"
              | "JMD"
              | "JOD"
              | "JPY"
              | "KES"
              | "KGS"
              | "KHR"
              | "KMF"
              | "KPW"
              | "KRW"
              | "KWD"
              | "KYD"
              | "KZT"
              | "LAK"
              | "LBP"
              | "LKR"
              | "LRD"
              | "LSL"
              | "LTL"
              | "LVL"
              | "LYD"
              | "MAD"
              | "MDL"
              | "MGA"
              | "MKD"
              | "MMK"
              | "MNT"
              | "MOP"
              | "MRO"
              | "MRU"
              | "MUR"
              | "MVR"
              | "MWK"
              | "MXN"
              | "MXV"
              | "MYR"
              | "MZN"
              | "NAD"
              | "NGN"
              | "NIO"
              | "NOK"
              | "NPR"
              | "NZD"
              | "OMR"
              | "PAB"
              | "PEN"
              | "PGK"
              | "PHP"
              | "PKR"
              | "PLN"
              | "PYG"
              | "QAR"
              | "RON"
              | "RSD"
              | "RUB"
              | "RWF"
              | "SAR"
              | "SBD"
              | "SCR"
              | "SDG"
              | "SEK"
              | "SGD"
              | "SHP"
              | "SKK"
              | "SLE"
              | "SLL"
              | "SOS"
              | "SRD"
              | "STD"
              | "STN"
              | "SVC"
              | "SYP"
              | "SZL"
              | "THB"
              | "TJS"
              | "TMT"
              | "TND"
              | "TOP"
              | "TRY"
              | "TTD"
              | "TWD"
              | "TZS"
              | "UAH"
              | "UGX"
              | "USD"
              | "UYU"
              | "UZS"
              | "VEF"
              | "VES"
              | "VND"
              | "VUV"
              | "WST"
              | "XAF"
              | "XCD"
              | "XOF"
              | "XPF"
              | "YER"
              | "ZAR"
              | "ZMW"
              | "ZMK"
              | "ZWD";
            XeroNetworkKey?: string;
            SalesDefaultAccountCode?: string;
            PurchasesDefaultAccountCode?: string;
            SalesTrackingCategories?: {
              TrackingCategoryName?: string;
              TrackingOptionName?: string;
            }[];
            PurchasesTrackingCategories?: {
              TrackingCategoryName?: string;
              TrackingOptionName?: string;
            }[];
            TrackingCategoryName?: string;
            TrackingCategoryOption?: string;
            PaymentTerms?: {
              Bills?: {
                Day?: number;
                Type?:
                  | "DAYSAFTERBILLDATE"
                  | "DAYSAFTERBILLMONTH"
                  | "OFCURRENTMONTH"
                  | "OFFOLLOWINGMONTH";
              };
              Sales?: {
                Day?: number;
                Type?:
                  | "DAYSAFTERBILLDATE"
                  | "DAYSAFTERBILLMONTH"
                  | "OFCURRENTMONTH"
                  | "OFFOLLOWINGMONTH";
              };
            };
            UpdatedDateUTC?: string;
            ContactGroups?: {
              Name?: string;
              Status?: "ACTIVE" | "DELETED";
              ContactGroupID?: string;
              Contacts?: {}[];
            }[];
            Website?: string;
            BrandingTheme?: {
              BrandingThemeID?: string;
              Name?: string;
              LogoUrl?: string;
              Type?: "INVOICE";
              SortOrder?: number;
              CreatedDateUTC?: string;
            };
            BatchPayments?: {
              BankAccountNumber?: string;
              BankAccountName?: string;
              Details?: string;
              Code?: string;
              Reference?: string;
            };
            Discount?: number;
            Balances?: {
              AccountsReceivable?: { Outstanding?: number; Overdue?: number };
              AccountsPayable?: { Outstanding?: number; Overdue?: number };
            };
            Attachments?: {
              AttachmentID?: string;
              FileName?: string;
              Url?: string;
              MimeType?: string;
              ContentLength?: number;
              IncludeOnline?: false | true;
            }[];
            HasAttachments?: never;
            ValidationErrors?: { Message?: string }[];
            HasValidationErrors?: never;
            StatusAttributeString?: string;
          };
          Schedule?: {
            Period?: number;
            Unit?: "WEEKLY" | "MONTHLY";
            DueDate?: number;
            DueDateType?:
              | "DAYSAFTERBILLDATE"
              | "DAYSAFTERBILLMONTH"
              | "OFCURRENTMONTH"
              | "OFFOLLOWINGMONTH"
              | "DAYSAFTERINVOICEDATE"
              | "DAYSAFTERINVOICEMONTH";
            StartDate?: string;
            NextScheduledDate?: string;
            EndDate?: string;
          };
          LineItems?: {
            LineItemID?: string;
            Description?: string;
            Quantity?: number;
            UnitAmount?: number;
            ItemCode?: string;
            AccountCode?: string;
            AccountID?: string;
            TaxType?: string;
            TaxAmount?: number;
            Item?: { Code?: string; Name?: string; ItemID?: string };
            LineAmount?: number;
            Tracking?: {
              TrackingCategoryID?: string;
              TrackingOptionID?: string;
              Name?: string;
              Option?: string;
            }[];
            DiscountRate?: number;
            DiscountAmount?: number;
            RepeatingInvoiceID?: string;
            Taxability?:
              | "TAXABLE"
              | "NON_TAXABLE"
              | "EXEMPT"
              | "PART_TAXABLE"
              | "NOT_APPLICABLE";
            SalesTaxCodeId?: number;
            TaxBreakdown?: {
              TaxComponentId?: string;
              Type?:
                | "SYSGST/USCOUNTRY"
                | "SYSGST/USSTATE"
                | "SYSGST/USCOUNTY"
                | "SYSGST/USCITY"
                | "SYSGST/USSPECIAL";
              Name?: string;
              TaxPercentage?: number;
              TaxAmount?: number;
              TaxableAmount?: number;
              NonTaxableAmount?: number;
              ExemptAmount?: number;
              StateAssignedNo?: string;
              JurisdictionRegion?: string;
            }[];
          }[];
          LineAmountTypes?: "Exclusive" | "Inclusive" | "NoTax";
          Reference?: string;
          BrandingThemeID?: string;
          CurrencyCode?:
            | "AED"
            | "AFN"
            | "ALL"
            | "AMD"
            | "ANG"
            | "AOA"
            | "ARS"
            | "AUD"
            | "AWG"
            | "AZN"
            | "BAM"
            | "BBD"
            | "BDT"
            | "BGN"
            | "BHD"
            | "BIF"
            | "BMD"
            | "BND"
            | "BOB"
            | "BRL"
            | "BSD"
            | "BTN"
            | "BWP"
            | "BYN"
            | "BYR"
            | "BZD"
            | "CAD"
            | "CDF"
            | "CHF"
            | "CLF"
            | "CLP"
            | "CNY"
            | "COP"
            | "CRC"
            | "CUC"
            | "CUP"
            | "CVE"
            | "CZK"
            | "DJF"
            | "DKK"
            | "DOP"
            | "DZD"
            | "EEK"
            | "EGP"
            | "ERN"
            | "ETB"
            | "EUR"
            | "FJD"
            | "FKP"
            | "GBP"
            | "GEL"
            | "GHS"
            | "GIP"
            | "GMD"
            | "GNF"
            | "GTQ"
            | "GYD"
            | "HKD"
            | "HNL"
            | "HRK"
            | "HTG"
            | "HUF"
            | "IDR"
            | "ILS"
            | "INR"
            | "IQD"
            | "IRR"
            | "ISK"
            | "JMD"
            | "JOD"
            | "JPY"
            | "KES"
            | "KGS"
            | "KHR"
            | "KMF"
            | "KPW"
            | "KRW"
            | "KWD"
            | "KYD"
            | "KZT"
            | "LAK"
            | "LBP"
            | "LKR"
            | "LRD"
            | "LSL"
            | "LTL"
            | "LVL"
            | "LYD"
            | "MAD"
            | "MDL"
            | "MGA"
            | "MKD"
            | "MMK"
            | "MNT"
            | "MOP"
            | "MRO"
            | "MRU"
            | "MUR"
            | "MVR"
            | "MWK"
            | "MXN"
            | "MXV"
            | "MYR"
            | "MZN"
            | "NAD"
            | "NGN"
            | "NIO"
            | "NOK"
            | "NPR"
            | "NZD"
            | "OMR"
            | "PAB"
            | "PEN"
            | "PGK"
            | "PHP"
            | "PKR"
            | "PLN"
            | "PYG"
            | "QAR"
            | "RON"
            | "RSD"
            | "RUB"
            | "RWF"
            | "SAR"
            | "SBD"
            | "SCR"
            | "SDG"
            | "SEK"
            | "SGD"
            | "SHP"
            | "SKK"
            | "SLE"
            | "SLL"
            | "SOS"
            | "SRD"
            | "STD"
            | "STN"
            | "SVC"
            | "SYP"
            | "SZL"
            | "THB"
            | "TJS"
            | "TMT"
            | "TND"
            | "TOP"
            | "TRY"
            | "TTD"
            | "TWD"
            | "TZS"
            | "UAH"
            | "UGX"
            | "USD"
            | "UYU"
            | "UZS"
            | "VEF"
            | "VES"
            | "VND"
            | "VUV"
            | "WST"
            | "XAF"
            | "XCD"
            | "XOF"
            | "XPF"
            | "YER"
            | "ZAR"
            | "ZMW"
            | "ZMK"
            | "ZWD";
          Status?: "DELETED" | "DRAFT" | "AUTHORISED";
          SubTotal?: number;
          TotalTax?: number;
          Total?: number;
          RepeatingInvoiceID?: string;
          ID?: string;
          HasAttachments?: never;
          Attachments?: {
            AttachmentID?: string;
            FileName?: string;
            Url?: string;
            MimeType?: string;
            ContentLength?: number;
            IncludeOnline?: false | true;
          }[];
          ApprovedForSending?: never;
          SendCopy?: never;
          MarkAsSent?: never;
          IncludePDF?: never;
        }[];
      },
    ) {
      const url = new URL(
        `https://api.xero.com/api.xro/2.0/RepeatingInvoices/${RepeatingInvoiceID}`,
      );
    
      const response = await fetch(url, {
        method: "POST",
        headers: {
          Accept: 'application/json',
          "xero-tenant-id": xero_tenant_id,
          "Idempotency-Key": Idempotency_Key,
          "Content-Type": "application/json",
          Authorization: "Bearer " + auth.token,
        },
        body: JSON.stringify(body),
      });
      if (!response.ok) {
        const text = await response.text();
        throw new Error(`${response.status} ${text}`);
      }
      return await response.json();
    }
    

    Submitted by hugo697 515 days ago