1

I have a nodejs app (SAAS) that manage company expenses, I want to ingrate with xero so that my customers can send the submitted requests on my website (aka. Expense claims ) to xero by one click, I found that I can send requests one by one, but I want send them all in one time, anybody know how to do that

1 Answers1

2

I believe you can use the createExpenseClaims method on the Xero Node SDK to create Expense Claims in bulk. You can use the pattern below:

const xeroTenantId = 'YOUR_XERO_TENANT_ID';
const currDate = '2020-12-10'

const user: User = { 
  userID: "00000000-0000-0000-0000-000000000000" }; 

const receipt: Receipt = { 
  receiptID: "00000000-0000-0000-0000-000000000000",
  date: currDate };   

const receipts = [];    
receipts.push(receipt)

const expenseClaim: ExpenseClaim = { 
  status: ExpenseClaim.StatusEnum.SUBMITTED,
  user: user,
  receipts: receipts }; 

const expenseClaims: ExpenseClaims = {  
  expenseClaims: [expenseClaim] }; 

try {
  const response = await xero.accountingApi.createExpenseClaims(xeroTenantId, expenseClaims);
  console.log(response.body || response.response.statusCode)
} catch (err) {
  const error = JSON.stringify(err.response.body, null, 2)
  console.log(`Status Code: ${err.response.statusCode} => ${error}`);
}

Source: Xero Node SDK Documentation

AlbertGromek
  • 460
  • 3
  • 6