Edits history of script submission #18930 for ' Create an employee (sage_intacct)'

  • bun
    One script reply has been approved by the moderators
    Ap­pro­ved
    //native
    type SageIntacct = {
    	token: string
    }
    /**
     * Create an employee
     * Creates a new employee. If the employee is also a user in Sage Intacct (which is required if they will be entering time or expenses), set the `primaryContact` to the same contact that is associated with the user.
    
    
    Permissions and other requirements
    
    SubscriptionCompany
    User typeBusiness user with admin privileges
    PermissionsAdd Employees
    
    
    
    
     */
    export async function main(
    	auth: SageIntacct,
    	body: {
    		key?: string
    		id?: string
    		name?: string
    		startDate?: string
    		jobTitle?: string
    		status?: 'active' | 'inactive'
    		birthDate?: string
    		endDate?: string
    		postActualCostWithVariance?: false | true
    		mergePaymentRequests?: false | true
    		sendAutomaticPaymentNotification?: false | true
    		manager?: { key?: string; id?: string; name?: string; href?: string }
    		gender?: 'female' | 'male'
    		location?: { key?: string; id?: string; name?: string; href?: string }
    		department?: { key?: string; id?: string; name?: string; href?: string }
    		class?: { key?: string; id?: string; name?: string; href?: string }
    		defaultCurrency?: string
    		primaryContact?: {
    			key?: string
    			id?: string
    			lastName?: string
    			firstName?: string
    			middleName?: string
    			prefix?: string
    			email1?: string
    			email2?: string
    			phone1?: string
    			phone2?: string
    			mobile?: string
    			pager?: string
    			fax?: string
    			URL1?: string
    			URL2?: string
    			companyName?: string
    			printAs?: string
    			mailingAddress?: {
    				addressLine1?: string
    				addressLine2?: string
    				city?: string
    				state?: string
    				postCode?: string
    				country?: string
    				isoCountryCode?: string
    			}
    			href?: string
    		}
    		employeeType?: { key?: string; id?: string; href?: string }
    		earningType?: { key?: string; id?: string; href?: string }
    		SSN?: string
    		employeePosition?: {
    			key?: string
    			id?: string
    			name?: string
    			href?: string
    		}
    		terminationType?: 'voluntary' | 'involuntary' | 'deceased' | 'disability' | 'retired'
    		form1099?: { name?: string; type?: string; box?: string }
    		ach?: {
    			enabled?: false | true
    			bankRoutingNumber?: string
    			accountNumber?: string
    			accountType?: 'checkingAccount' | 'savingsAccount'
    			remittanceType?: 'personalPPD' | 'businessCCD' | 'businessCTX'
    		}
    		isPlaceholderResource?: false | true
    		filePaymentService?: 'ach' | 'bankFile' | 'none'
    		bankFile?: {
    			paymentCountryCode?:
    				| 'us'
    				| 'af'
    				| 'ax'
    				| 'al'
    				| 'dz'
    				| 'as'
    				| 'ad'
    				| 'ao'
    				| 'ai'
    				| 'aq'
    				| 'ag'
    				| 'ar'
    				| 'am'
    				| 'aw'
    				| 'au'
    				| 'at'
    				| 'az'
    				| 'bs'
    				| 'bh'
    				| 'bd'
    				| 'bb'
    				| 'by'
    				| 'be'
    				| 'bz'
    				| 'bj'
    				| 'bm'
    				| 'bt'
    				| 'bo'
    				| 'bq'
    				| 'ba'
    				| 'bw'
    				| 'bv'
    				| 'br'
    				| 'io'
    				| 'bn'
    				| 'bg'
    				| 'bf'
    				| 'bi'
    				| 'kh'
    				| 'cm'
    				| 'ca'
    				| 'cv'
    				| 'ky'
    				| 'cf'
    				| 'td'
    				| 'cl'
    				| 'cn'
    				| 'cx'
    				| 'cc'
    				| 'co'
    				| 'km'
    				| 'cg'
    				| 'cd'
    				| 'ck'
    				| 'cr'
    				| 'ci'
    				| 'hr'
    				| 'cu'
    				| 'cw'
    				| 'cy'
    				| 'cz'
    				| 'dk'
    				| 'dj'
    				| 'dm'
    				| 'do'
    				| 'ec'
    				| 'eg'
    				| 'sv'
    				| 'gq'
    				| 'er'
    				| 'ee'
    				| 'sz'
    				| 'et'
    				| 'fk'
    				| 'fo'
    				| 'fj'
    				| 'fi'
    				| 'fr'
    				| 'gf'
    				| 'pf'
    				| 'tf'
    				| 'ga'
    				| 'gm'
    				| 'ge'
    				| 'de'
    				| 'gh'
    				| 'gi'
    				| 'gr'
    				| 'gl'
    				| 'gd'
    				| 'gp'
    				| 'gu'
    				| 'gt'
    				| 'gg'
    				| 'gn'
    				| 'gw'
    				| 'gy'
    				| 'ht'
    				| 'hm'
    				| 'hn'
    				| 'hk'
    				| 'hu'
    				| 'is'
    				| 'in'
    				| 'id'
    				| 'ir'
    				| 'iq'
    				| 'ie'
    				| 'im'
    				| 'il'
    				| 'it'
    				| 'jm'
    				| 'jp'
    				| 'je'
    				| 'jo'
    				| 'kz'
    				| 'ke'
    				| 'ki'
    				| 'kr'
    				| 'kp'
    				| 'xk'
    				| 'kw'
    				| 'kg'
    				| 'la'
    				| 'lv'
    				| 'lb'
    				| 'ls'
    				| 'lr'
    				| 'ly'
    				| 'li'
    				| 'lt'
    				| 'lu'
    				| 'mo'
    				| 'mk'
    				| 'mg'
    				| 'mw'
    				| 'my'
    				| 'mv'
    				| 'ml'
    				| 'mt'
    				| 'mh'
    				| 'mq'
    				| 'mr'
    				| 'mu'
    				| 'yt'
    				| 'mx'
    				| 'fm'
    				| 'md'
    				| 'mc'
    				| 'mn'
    				| 'me'
    				| 'ms'
    				| 'ma'
    				| 'mz'
    				| 'mm'
    				| 'na'
    				| 'nr'
    				| 'np'
    				| 'nl'
    				| 'an'
    				| 'nc'
    				| 'nz'
    				| 'ni'
    				| 'ne'
    				| 'ng'
    				| 'nu'
    				| 'nf'
    				| 'mp'
    				| 'no'
    				| 'om'
    				| 'pk'
    				| 'pw'
    				| 'ps'
    				| 'pa'
    				| 'pg'
    				| 'py'
    				| 'pe'
    				| 'ph'
    				| 'pn'
    				| 'pl'
    				| 'pt'
    				| 'pr'
    				| 'qa'
    				| 're'
    				| 'ro'
    				| 'ru'
    				| 'rw'
    				| 'bl'
    				| 'sh'
    				| 'kn'
    				| 'lc'
    				| 'mf'
    				| 'pm'
    				| 'vc'
    				| 'ws'
    				| 'sm'
    				| 'st'
    				| 'sa'
    				| 'sn'
    				| 'rs'
    				| 'sc'
    				| 'sl'
    				| 'sg'
    				| 'sx'
    				| 'sk'
    				| 'si'
    				| 'sb'
    				| 'so'
    				| 'za'
    				| 'gs'
    				| 'es'
    				| 'lk'
    				| 'sd'
    				| 'ss'
    				| 'sr'
    				| 'sj'
    				| 'se'
    				| 'ch'
    				| 'sy'
    				| 'tw'
    				| 'tj'
    				| 'tz'
    				| 'th'
    				| 'tl'
    				| 'tg'
    				| 'tk'
    				| 'to'
    				| 'tt'
    				| 'tn'
    				| 'tr'
    				| 'tm'
    				| 'tc'
    				| 'tv'
    				| 'ug'
    				| 'ua'
    				| 'ae'
    				| 'gb'
    				| 'um'
    				| 'uy'
    				| 'uz'
    				| 'vu'
    				| 'va'
    				| 've'
    				| 'vn'
    				| 'vg'
    				| 'vi'
    				| 'wf'
    				| 'eh'
    				| 'ye'
    				| 'zm'
    				| 'zw'
    			paymentCurrency?: string
    		}
    		bankFileSetup?: {
    			key?: string
    			id?: string
    			bankAccountNumber?: string
    			bankAccountName?: string
    			bsbNumber?: string
    			sortCode?: string
    			paymentReference?: string
    			branchCode?: string
    			bankAccountType?: string
    			bankAccountCode?: string
    			printPaymentProof?: false | true
    			businessIdCode?: string
    			creditorCode?: string
    			secondaryIdentifier?: string
    			employee?: { key?: string; id?: string; href?: string }
    			href?: string
    		}[]
    		preferredPaymentMethod?: 'ach' | 'printedCheck' | 'eft' | 'cash'
    		attachmentFolder?: { key?: string; id?: string; href?: string }
    		employeeRates?: {
    			key?: string
    			id?: string
    			href?: string
    			hourlyRate?: string
    			annualSalary?: string
    			startDate?: string
    			endDate?: string
    			employee?: { id?: string; key?: string; name?: string; href?: string }
    			audit?: {
    				createdDateTime?: string
    				modifiedDateTime?: string
    				createdBy?: string
    				modifiedBy?: string
    			}
    		}[]
    		positionSkills?: { key?: string; id?: string; href?: string }[]
    		audit?: {
    			createdDateTime?: string
    			modifiedDateTime?: string
    			createdBy?: string
    			modifiedBy?: string
    		}
    		entity?: { key?: string; id?: string; name?: string; href?: string }
    		href?: string
    	} & {}
    ) {
    	const url = new URL(`https://api.intacct.com/ia/api/v1/objects/company-config/employee`)
    
    	const response = await fetch(url, {
    		method: 'POST',
    		headers: {
    			'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 235 days ago