Xero: Create Invoice with multiple orderliness

(might be similar to this ask: Multiline invoice from Google Sheets to Xero)

I have an array with order lines that I intend to send in via the Xero node as a draft Invoice. Issue is that I might have 1 or 30 order lines depending on the order.

Any easy way to programatically fix this?



Hi @ericsonmartin

Easiest way would be to have a split off where one workflow path handles the orderlines. You can use the item list node to split the lines, then you can process them and combine them again. After that simply merge them back into the main flow of the invoices.

Hope that makes sense.


The node has a specific set of lines. You basically need to add more if you have more lines.

Cannot figure out how to send in an array

Hi @ericsonmartin

Ah, now I see, sorry I didn’t realise how the node works.

No Idea how you would pull this one off with the node, without doing some bizarre stuff.
I think using a manual request with the HTTP node is the easiest way to get going.

1 Like

Maybe someone that knows about this node, knows?

Manual HTTP complicates stuff with the oauth 2.0 being renewed each 30 minutes (as far as I can read)

You can use the credentials.


It looks like you have tried this and I haven’t. Which I think is the opposite.

Again, I am asking if anyone knows.

The predefined scopes on oauth 2.0 for Xero are the following:


I need to create a payment for an invoice. Anyone knows how/if to extend this.


  1. Create customer (prebuilt Xero node)
  2. Create invoice (kinda prebuilt Xero node except for the line item issues)
  3. Create Payment (no support)

I see that Zapier supports this. Perhaps we can get inspired? @jan

Hey @ericsonmartin,

At the moment the node doesn’t have support for paying invoices so we would need to create a feature request for that one, With the multi line items I can’t see a way to do it but I can see why it would be useful to have it although I am not sure why this has not come up before unless I have missed it.

I did think maybe a loop would do the job and you could create an invoice, store the ID then on the next loop just update the invoice to add new line items but it looks like the node replaces the line items which is not ideal.

At the moment the best I can suggest would be to use the HTTP Request node and create a new generic oauth option that contains the scopes required until we update the node or someone else pops in a pull request / creates a community version.

Just to be complete and share a workflow that doesn’t work as intended but shows what I was thinking