Skip to main content
Best answer

Populating Xero invoice address

  • April 16, 2026
  • 3 replies
  • 19 views

I’ve got a zap that creates a Xero invoice from a fluent form webhook. It works perfectly except for the address which doesn’t populate on the invoice.

 

I either need a way to add it to the invoice myself or set the address as default for billing when the contact is created.

Best answer by Troy Tessalone

Hi ​@SmoothMedia 

Xero API info about Addresses on Invoices: https://developer.xero.com/documentation/api/accounting/invoices#post-invoices

Addresses on Invoices

By default, the address applied to an invoice will use the postal (POBOX) address of the Contact.

However, this can be changed in Xero by applying a custom invoice template.

It is not possible to manually override the address on a per-invoice basis.

3 replies

Troy Tessalone
Zapier Orchestrator & Solution Partner
Forum|alt.badge.img+14
  • Zapier Orchestrator & Solution Partner
  • Answer
  • April 16, 2026

Hi ​@SmoothMedia 

Xero API info about Addresses on Invoices: https://developer.xero.com/documentation/api/accounting/invoices#post-invoices

Addresses on Invoices

By default, the address applied to an invoice will use the postal (POBOX) address of the Contact.

However, this can be changed in Xero by applying a custom invoice template.

It is not possible to manually override the address on a per-invoice basis.


  • Author
  • Beginner
  • April 20, 2026

Using the Postal Address option worked (specifically selecting it not just leaving the default), thank you.


  • New
  • May 1, 2026

Actually, I am Posting an Invoice to zero with some address and It is successfully showing on the the preview Invoice in XERO but when i tries to Update the address and update the Line Items, amount ,price etc, these things are updating fine but address is remaining the Same , even though i have debugged JSON weare sending and It has updated Address but in XERO invoice preview it is not updatin for that Invoice  


//code
 

 #region Xero Post Invoice Start
                        // post to Xero
                        try
                        {
                            var invoice = new XeroApi.Model.Invoice();
                            invoice.Type = "ACCREC";
                            invoice.Date = Convert.ToDateTime(objPostingMasterProp.SaleDate);
                            invoice.DueDate = Convert.ToDateTime(objPostingMasterProp.DueDate);
                            invoice.LineAmountTypes =
                                objPostingMasterProp.LineAmountTypes == "Exclusive" ? XeroApi.Model.LineAmountType.Exclusive
                                : objPostingMasterProp.LineAmountTypes == "Inclusive" ? XeroApi.Model.LineAmountType.Inclusive
                                : XeroApi.Model.LineAmountType.NoTax;
                            invoice.Status = objPostingMasterProp.InvoiceType;
                            invoice.Reference = objPostingMasterProp.Reference;

                            // contact
                            var contact = new XeroApi.Model.Contact();
                            contact.Name = objPostingMasterProp.ContactName;

                            var addresses = new XeroApi.Model.Addresses();
                            var address = new XeroApi.Model.Address();
                            address.AddressType = "POBOX";
                            address.AddressLine1 = objPostingMasterProp.BillAddress;
                            address.City = objPostingMasterProp.BillCity;
                            address.Region = objPostingMasterProp.BillState;
                            address.PostalCode = objPostingMasterProp.BillPostalCode;
                            address.Country = objPostingMasterProp.BillCountry;
                            addresses.Add(address);
                            contact.Addresses = addresses;


// other part 

 

   RestSharp.RestClient client = null;
                            if (updatePostedInvoice) //needToUpdateInvoice 
                            {
                                var invoiceHeaderData = new InvoiceHeaderBal().GetInvoiceHeaderById(Convert.ToInt64(headerId), isSplitedInvoice);
                                //var guid = "ac603e53-23fe-4cad-9d81-e3e86dd1b17f";
                                if (!string.IsNullOrEmpty(invoiceHeaderData.APIInvoiceGUID))
                                {
                                    client = new RestSharp.RestClient($"https://api.xero.com/api.xro/2.0/Invoices/{invoiceHeaderData.APIInvoiceGUID}");
                                }
                            }
                            else
                            {
                                client = new RestSharp.RestClient("https://api.xero.com/api.xro/2.0/Invoices");
                            }
                            client.Timeout = -1;
                            var _AccessToken = GetTokenDeatilsOAuth(companyId, companyUserId, apiCompanyId, oAuthSession); // 
                            var _TenantId = GetDetailbyTenantId(companyId, companyUserId, apiCompanyId);// (_AccessToken);
                            //added by deepak for Oauth 2.0 api call
                            var request = new RestSharp.RestRequest(RestSharp.Method.POST);
                            request.AddHeader("Authorization", "Bearer " + _AccessToken);
                            request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
                            request.AddHeader("Accept", "application/json");
                            request.AddHeader("xero-tenant-id", "" + _TenantId + "");
                            request.AddParameter("application/json", json, RestSharp.ParameterType.RequestBody);
                            //request.AddParameter("text/xml;charset=utf-8", l_PostingXML, ParameterType.RequestBody);
                            RestSharp.IRestResponse getRequest = client.Execute(request);
                            RootModel postedInvoice = new RootModel();
                            ErrorRootInvoice errormodel = new ErrorRootInvoice();
                            if (getRequest.StatusCode.ToString() == "OK")
                            {
                                postedInvoice = JsonConvert.DeserializeObject<RootModel>(getRequest.Content);

                            }