Edits history of script submission #10115 for ' Creates a bank transfer (xero)'

  • bun
    One script reply has been approved by the moderators
    Ap­pro­ved
    //native
    type Xero = {
    	token: string
    }
    /**
     * Creates a bank transfer
     *
     */
    export async function main(
    	auth: Xero,
    	xero_tenant_id: string,
    	Idempotency_Key: string,
    	body: {
    		BankTransfers?: {
    			FromBankAccount: {
    				Code?: string
    				Name?: string
    				AccountID?: string
    				Type?:
    					| 'BANK'
    					| 'CURRENT'
    					| 'CURRLIAB'
    					| 'DEPRECIATN'
    					| 'DIRECTCOSTS'
    					| 'EQUITY'
    					| 'EXPENSE'
    					| 'FIXED'
    					| 'INVENTORY'
    					| 'LIABILITY'
    					| 'NONCURRENT'
    					| 'OTHERINCOME'
    					| 'OVERHEADS'
    					| 'PREPAYMENT'
    					| 'REVENUE'
    					| 'SALES'
    					| 'TERMLIAB'
    					| 'PAYG'
    				BankAccountNumber?: string
    				Status?: 'ACTIVE' | 'ARCHIVED' | 'DELETED'
    				Description?: string
    				BankAccountType?: '' | 'BANK' | 'CREDITCARD' | 'PAYPAL' | 'NONE'
    				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'
    				TaxType?: string
    				EnablePaymentsToAccount?: false | true
    				ShowInExpenseClaims?: false | true
    				Class?: 'EQUITY' | 'EXPENSE' | 'LIABILITY' | 'REVENUE' | 'ASSET'
    				SystemAccount?:
    					| ''
    					| 'DEBTORS'
    					| 'CREDITORS'
    					| 'BANKCURRENCYGAIN'
    					| 'GST'
    					| 'GSTONIMPORTS'
    					| 'HISTORICAL'
    					| 'REALISEDCURRENCYGAIN'
    					| 'RETAINEDEARNINGS'
    					| 'ROUNDING'
    					| 'TRACKINGTRANSFERS'
    					| 'UNPAIDEXPCLM'
    					| 'UNREALISEDCURRENCYGAIN'
    					| 'WAGEPAYABLES'
    					| 'CISASSETS'
    					| 'CISASSET'
    					| 'CISLABOUR'
    					| 'CISLABOUREXPENSE'
    					| 'CISLABOURINCOME'
    					| 'CISLIABILITY'
    					| 'CISMATERIALS'
    				ReportingCode?: string
    				ReportingCodeName?: string
    				HasAttachments?: never
    				UpdatedDateUTC?: string
    				AddToWatchlist?: false | true
    				ValidationErrors?: { Message?: string }[]
    			}
    			ToBankAccount: {
    				Code?: string
    				Name?: string
    				AccountID?: string
    				Type?:
    					| 'BANK'
    					| 'CURRENT'
    					| 'CURRLIAB'
    					| 'DEPRECIATN'
    					| 'DIRECTCOSTS'
    					| 'EQUITY'
    					| 'EXPENSE'
    					| 'FIXED'
    					| 'INVENTORY'
    					| 'LIABILITY'
    					| 'NONCURRENT'
    					| 'OTHERINCOME'
    					| 'OVERHEADS'
    					| 'PREPAYMENT'
    					| 'REVENUE'
    					| 'SALES'
    					| 'TERMLIAB'
    					| 'PAYG'
    				BankAccountNumber?: string
    				Status?: 'ACTIVE' | 'ARCHIVED' | 'DELETED'
    				Description?: string
    				BankAccountType?: '' | 'BANK' | 'CREDITCARD' | 'PAYPAL' | 'NONE'
    				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'
    				TaxType?: string
    				EnablePaymentsToAccount?: false | true
    				ShowInExpenseClaims?: false | true
    				Class?: 'EQUITY' | 'EXPENSE' | 'LIABILITY' | 'REVENUE' | 'ASSET'
    				SystemAccount?:
    					| ''
    					| 'DEBTORS'
    					| 'CREDITORS'
    					| 'BANKCURRENCYGAIN'
    					| 'GST'
    					| 'GSTONIMPORTS'
    					| 'HISTORICAL'
    					| 'REALISEDCURRENCYGAIN'
    					| 'RETAINEDEARNINGS'
    					| 'ROUNDING'
    					| 'TRACKINGTRANSFERS'
    					| 'UNPAIDEXPCLM'
    					| 'UNREALISEDCURRENCYGAIN'
    					| 'WAGEPAYABLES'
    					| 'CISASSETS'
    					| 'CISASSET'
    					| 'CISLABOUR'
    					| 'CISLABOUREXPENSE'
    					| 'CISLABOURINCOME'
    					| 'CISLIABILITY'
    					| 'CISMATERIALS'
    				ReportingCode?: string
    				ReportingCodeName?: string
    				HasAttachments?: never
    				UpdatedDateUTC?: string
    				AddToWatchlist?: false | true
    				ValidationErrors?: { Message?: string }[]
    			}
    			Amount: number
    			Date?: string
    			BankTransferID?: string
    			CurrencyRate?: number
    			FromBankTransactionID?: string
    			ToBankTransactionID?: string
    			FromIsReconciled?: never
    			ToIsReconciled?: never
    			Reference?: string
    			HasAttachments?: never
    			CreatedDateUTC?: string
    			ValidationErrors?: { Message?: string }[]
    		}[]
    	}
    ) {
    	const url = new URL(`https://api.xero.com/api.xro/2.0/BankTransfers`)
    
    	const response = await fetch(url, {
    		method: 'PUT',
    		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