diff --git a/docs/accounting/index.html b/docs/accounting/index.html
index 8e764b4e..d5196aef 100644
--- a/docs/accounting/index.html
+++ b/docs/accounting/index.html
@@ -2564,6 +2564,13 @@
"items" : {
"$ref" : "#/components/schemas/ValidationError"
}
+ },
+ "InvoiceAddresses" : {
+ "type" : "array",
+ "description" : "An array of addresses used to auto calculate sales tax",
+ "items" : {
+ "$ref" : "#/components/schemas/InvoiceAddress"
+ }
}
},
"description" : "",
@@ -3259,12 +3266,63 @@
"items" : {
"$ref" : "#/components/schemas/ValidationError"
}
+ },
+ "InvoiceAddresses" : {
+ "type" : "array",
+ "description" : "An array of addresses used to auto calculate sales tax",
+ "items" : {
+ "$ref" : "#/components/schemas/InvoiceAddress"
+ }
}
},
"description" : "",
"externalDocs" : {
"url" : "http://developer.xero.com/documentation/api/invoices/"
}
+};
+ defs["InvoiceAddress"] = {
+ "title" : "",
+ "type" : "object",
+ "properties" : {
+ "InvoiceAddressType" : {
+ "type" : "string",
+ "description" : "Indicates whether the address is defined as origin (FROM) or destination (TO)",
+ "enum" : [ "FROM", "TO" ]
+ },
+ "AddressLine1" : {
+ "type" : "string",
+ "description" : "First line of a physical address"
+ },
+ "AddressLine2" : {
+ "type" : "string",
+ "description" : "Second line of a physical address"
+ },
+ "AddressLine3" : {
+ "type" : "string",
+ "description" : "Third line of a physical address"
+ },
+ "AddressLine4" : {
+ "type" : "string",
+ "description" : "Fourth line of a physical address"
+ },
+ "City" : {
+ "type" : "string",
+ "description" : "City of a physical address"
+ },
+ "Region" : {
+ "type" : "string",
+ "description" : "Region or state of a physical address"
+ },
+ "PostalCode" : {
+ "type" : "string",
+ "description" : "Postal code of a physical address"
+ },
+ "Country" : {
+ "type" : "string",
+ "description" : "Country of a physical address"
+ }
+ },
+ "description" : ""
};
defs["InvoiceReminder"] = {
"title" : "",
@@ -3660,6 +3718,22 @@
"description" : "The Xero identifier for a Repeating Invoice",
"format" : "uuid",
"example" : "00000000-0000-0000-0000-000000000000"
+ },
+ "Taxability" : {
+ "type" : "string",
+ "description" : "The type of taxability",
+ "enum" : [ "TAXABLE", "NON_TAXABLE", "EXEMPT", "PART_TAXABLE", "NOT_APPLICABLE" ]
+ },
+ "SalesTaxCodeId" : {
+ "type" : "number",
+ "description" : "The ID of the sales tax code"
+ },
+ "TaxBreakdown" : {
+ "type" : "array",
+ "description" : "An array of tax components defined for this line item",
+ "items" : {
+ "$ref" : "#/components/schemas/TaxBreakdownComponent"
+ }
}
},
"description" : "",
@@ -5699,6 +5773,55 @@
"externalDocs" : {
"url" : "https://developer.xero.com/documentation/api-guides/conversions"
}
+};
+ defs["TaxBreakdownComponent"] = {
+ "title" : "",
+ "type" : "object",
+ "properties" : {
+ "TaxComponentId" : {
+ "type" : "string",
+ "description" : "The unique ID number of this component",
+ "format" : "uuid"
+ },
+ "Type" : {
+ "type" : "string",
+ "description" : "The type of the jurisdiction",
+ "enum" : [ "SYSGST/USCOUNTRY", "SYSGST/USSTATE", "SYSGST/USCOUNTY", "SYSGST/USCITY", "SYSGST/USSPECIAL" ]
+ },
+ "Name" : {
+ "type" : "string",
+ "description" : "The name of the jurisdiction"
+ },
+ "TaxPercentage" : {
+ "type" : "number",
+ "description" : "The percentage of the tax"
+ },
+ "TaxAmount" : {
+ "type" : "number",
+ "description" : "The amount of the tax"
+ },
+ "TaxableAmount" : {
+ "type" : "number",
+ "description" : "The amount that is taxable"
+ },
+ "NonTaxableAmount" : {
+ "type" : "number",
+ "description" : "The amount that is not taxable"
+ },
+ "ExemptAmount" : {
+ "type" : "number",
+ "description" : "The amount that is exempt"
+ },
+ "StateAssignedNo" : {
+ "type" : "string",
+ "description" : "The state assigned number of the jurisdiction"
+ },
+ "JurisdictionRegion" : {
+ "type" : "string",
+ "description" : "Name identifying the region within the country"
+ }
+ },
+ "description" : ""
};
defs["TaxComponent"] = {
"title" : "",
diff --git a/src/gen/model/accounting/creditNote.ts b/src/gen/model/accounting/creditNote.ts
index f7d8b6be..2de28850 100644
--- a/src/gen/model/accounting/creditNote.ts
+++ b/src/gen/model/accounting/creditNote.ts
@@ -1,6 +1,7 @@
import { Allocation } from '././allocation';
import { Contact } from '././contact';
import { CurrencyCode } from '././currencyCode';
+import { InvoiceAddress } from '././invoiceAddress';
import { LineAmountTypes } from '././lineAmountTypes';
import { LineItem } from '././lineItem';
import { Payment } from '././payment';
@@ -118,6 +119,10 @@ export class CreditNote {
* Displays array of warning messages from the API
*/
'warnings'?: Array;
+ /**
+ * An array of addresses used to auto calculate sales tax
+ */
+ 'invoiceAddresses'?: Array;
static discriminator: string | undefined = undefined;
@@ -271,6 +276,11 @@ export class CreditNote {
"name": "warnings",
"baseName": "Warnings",
"type": "Array"
+ },
+ {
+ "name": "invoiceAddresses",
+ "baseName": "InvoiceAddresses",
+ "type": "Array"
} ];
static getAttributeTypeMap() {
diff --git a/src/gen/model/accounting/invoice.ts b/src/gen/model/accounting/invoice.ts
index 3f9ce706..741a1756 100644
--- a/src/gen/model/accounting/invoice.ts
+++ b/src/gen/model/accounting/invoice.ts
@@ -2,6 +2,7 @@ import { Attachment } from '././attachment';
import { Contact } from '././contact';
import { CreditNote } from '././creditNote';
import { CurrencyCode } from '././currencyCode';
+import { InvoiceAddress } from '././invoiceAddress';
import { LineAmountTypes } from '././lineAmountTypes';
import { LineItem } from '././lineItem';
import { Overpayment } from '././overpayment';
@@ -161,6 +162,10 @@ export class Invoice {
* Displays array of warning messages from the API
*/
'warnings'?: Array;
+ /**
+ * An array of addresses used to auto calculate sales tax
+ */
+ 'invoiceAddresses'?: Array;
static discriminator: string | undefined = undefined;
@@ -364,6 +369,11 @@ export class Invoice {
"name": "warnings",
"baseName": "Warnings",
"type": "Array"
+ },
+ {
+ "name": "invoiceAddresses",
+ "baseName": "InvoiceAddresses",
+ "type": "Array"
} ];
static getAttributeTypeMap() {
diff --git a/src/gen/model/accounting/invoiceAddress.ts b/src/gen/model/accounting/invoiceAddress.ts
new file mode 100644
index 00000000..124a1b4b
--- /dev/null
+++ b/src/gen/model/accounting/invoiceAddress.ts
@@ -0,0 +1,99 @@
+
+export class InvoiceAddress {
+ /**
+ * Indicates whether the address is defined as origin (FROM) or destination (TO)
+ */
+ 'invoiceAddressType'?: InvoiceAddress.InvoiceAddressTypeEnum;
+ /**
+ * First line of a physical address
+ */
+ 'addressLine1'?: string;
+ /**
+ * Second line of a physical address
+ */
+ 'addressLine2'?: string;
+ /**
+ * Third line of a physical address
+ */
+ 'addressLine3'?: string;
+ /**
+ * Fourth line of a physical address
+ */
+ 'addressLine4'?: string;
+ /**
+ * City of a physical address
+ */
+ 'city'?: string;
+ /**
+ * Region or state of a physical address
+ */
+ 'region'?: string;
+ /**
+ * Postal code of a physical address
+ */
+ 'postalCode'?: string;
+ /**
+ * Country of a physical address
+ */
+ 'country'?: string;
+
+ static discriminator: string | undefined = undefined;
+
+ static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
+ {
+ "name": "invoiceAddressType",
+ "baseName": "InvoiceAddressType",
+ "type": "InvoiceAddress.InvoiceAddressTypeEnum"
+ },
+ {
+ "name": "addressLine1",
+ "baseName": "AddressLine1",
+ "type": "string"
+ },
+ {
+ "name": "addressLine2",
+ "baseName": "AddressLine2",
+ "type": "string"
+ },
+ {
+ "name": "addressLine3",
+ "baseName": "AddressLine3",
+ "type": "string"
+ },
+ {
+ "name": "addressLine4",
+ "baseName": "AddressLine4",
+ "type": "string"
+ },
+ {
+ "name": "city",
+ "baseName": "City",
+ "type": "string"
+ },
+ {
+ "name": "region",
+ "baseName": "Region",
+ "type": "string"
+ },
+ {
+ "name": "postalCode",
+ "baseName": "PostalCode",
+ "type": "string"
+ },
+ {
+ "name": "country",
+ "baseName": "Country",
+ "type": "string"
+ } ];
+
+ static getAttributeTypeMap() {
+ return InvoiceAddress.attributeTypeMap;
+ }
+}
+
+export namespace InvoiceAddress {
+ export enum InvoiceAddressTypeEnum {
+ FROM = 'FROM',
+ TO = 'TO'
+ }
+}
diff --git a/src/gen/model/accounting/lineItem.ts b/src/gen/model/accounting/lineItem.ts
index cfe3dd1e..9b2d7ad9 100644
--- a/src/gen/model/accounting/lineItem.ts
+++ b/src/gen/model/accounting/lineItem.ts
@@ -1,5 +1,6 @@
import { LineItemItem } from '././lineItemItem';
import { LineItemTracking } from '././lineItemTracking';
+import { TaxBreakdownComponent } from '././taxBreakdownComponent';
export class LineItem {
/**
@@ -59,6 +60,18 @@ export class LineItem {
* The Xero identifier for a Repeating Invoice
*/
'repeatingInvoiceID'?: string;
+ /**
+ * The type of taxability
+ */
+ 'taxability'?: LineItem.TaxabilityEnum;
+ /**
+ * The ID of the sales tax code
+ */
+ 'salesTaxCodeId'?: number;
+ /**
+ * An array of tax components defined for this line item
+ */
+ 'taxBreakdown'?: Array;
static discriminator: string | undefined = undefined;
@@ -137,6 +150,21 @@ export class LineItem {
"name": "repeatingInvoiceID",
"baseName": "RepeatingInvoiceID",
"type": "string"
+ },
+ {
+ "name": "taxability",
+ "baseName": "Taxability",
+ "type": "LineItem.TaxabilityEnum"
+ },
+ {
+ "name": "salesTaxCodeId",
+ "baseName": "SalesTaxCodeId",
+ "type": "number"
+ },
+ {
+ "name": "taxBreakdown",
+ "baseName": "TaxBreakdown",
+ "type": "Array"
} ];
static getAttributeTypeMap() {
@@ -144,3 +172,12 @@ export class LineItem {
}
}
+export namespace LineItem {
+ export enum TaxabilityEnum {
+ TAXABLE = 'TAXABLE',
+ NONTAXABLE = 'NON_TAXABLE',
+ EXEMPT = 'EXEMPT',
+ PARTTAXABLE = 'PART_TAXABLE',
+ NOTAPPLICABLE = 'NOT_APPLICABLE'
+ }
+}
diff --git a/src/gen/model/accounting/models.ts b/src/gen/model/accounting/models.ts
index 6a99d9bd..028fc90c 100644
--- a/src/gen/model/accounting/models.ts
+++ b/src/gen/model/accounting/models.ts
@@ -59,6 +59,7 @@ export * from '././importSummaryAccounts';
export * from '././importSummaryObject';
export * from '././importSummaryOrganisation';
export * from '././invoice';
+export * from '././invoiceAddress';
export * from '././invoiceReminder';
export * from '././invoiceReminders';
export * from '././invoices';
@@ -119,6 +120,7 @@ export * from '././rowType';
export * from '././salesTrackingCategory';
export * from '././schedule';
export * from '././setup';
+export * from '././taxBreakdownComponent';
export * from '././taxComponent';
export * from '././taxRate';
export * from '././taxRates';
@@ -194,6 +196,7 @@ import { ImportSummaryAccounts } from '././importSummaryAccounts';
import { ImportSummaryObject } from '././importSummaryObject';
import { ImportSummaryOrganisation } from '././importSummaryOrganisation';
import { Invoice } from '././invoice';
+import { InvoiceAddress } from '././invoiceAddress';
import { InvoiceReminder } from '././invoiceReminder';
import { InvoiceReminders } from '././invoiceReminders';
import { Invoices } from '././invoices';
@@ -254,6 +257,7 @@ import { RowType } from '././rowType';
import { SalesTrackingCategory } from '././salesTrackingCategory';
import { Schedule } from '././schedule';
import { Setup } from '././setup';
+import { TaxBreakdownComponent } from '././taxBreakdownComponent';
import { TaxComponent } from '././taxComponent';
import { TaxRate } from '././taxRate';
import { TaxRates } from '././taxRates';
@@ -308,8 +312,10 @@ let enumsMap: {[index: string]: any} = {
"ExternalLink.LinkTypeEnum": ExternalLink.LinkTypeEnum,
"Invoice.TypeEnum": Invoice.TypeEnum,
"Invoice.StatusEnum": Invoice.StatusEnum,
+ "InvoiceAddress.InvoiceAddressTypeEnum": InvoiceAddress.InvoiceAddressTypeEnum,
"Journal.SourceTypeEnum": Journal.SourceTypeEnum,
"LineAmountTypes": LineAmountTypes,
+ "LineItem.TaxabilityEnum": LineItem.TaxabilityEnum,
"LinkedTransaction.StatusEnum": LinkedTransaction.StatusEnum,
"LinkedTransaction.TypeEnum": LinkedTransaction.TypeEnum,
"LinkedTransaction.SourceTransactionTypeCodeEnum": LinkedTransaction.SourceTransactionTypeCodeEnum,
@@ -339,6 +345,7 @@ let enumsMap: {[index: string]: any} = {
"RowType": RowType,
"Schedule.UnitEnum": Schedule.UnitEnum,
"Schedule.DueDateTypeEnum": Schedule.DueDateTypeEnum,
+ "TaxBreakdownComponent.TypeEnum": TaxBreakdownComponent.TypeEnum,
"TaxRate.StatusEnum": TaxRate.StatusEnum,
"TaxRate.ReportTaxTypeEnum": TaxRate.ReportTaxTypeEnum,
"TaxType": TaxType,
@@ -408,6 +415,7 @@ let typeMap: {[index: string]: any} = {
"ImportSummaryObject": ImportSummaryObject,
"ImportSummaryOrganisation": ImportSummaryOrganisation,
"Invoice": Invoice,
+ "InvoiceAddress": InvoiceAddress,
"InvoiceReminder": InvoiceReminder,
"InvoiceReminders": InvoiceReminders,
"Invoices": Invoices,
@@ -463,6 +471,7 @@ let typeMap: {[index: string]: any} = {
"SalesTrackingCategory": SalesTrackingCategory,
"Schedule": Schedule,
"Setup": Setup,
+ "TaxBreakdownComponent": TaxBreakdownComponent,
"TaxComponent": TaxComponent,
"TaxRate": TaxRate,
"TaxRates": TaxRates,
diff --git a/src/gen/model/accounting/taxBreakdownComponent.ts b/src/gen/model/accounting/taxBreakdownComponent.ts
new file mode 100644
index 00000000..70cb93e6
--- /dev/null
+++ b/src/gen/model/accounting/taxBreakdownComponent.ts
@@ -0,0 +1,111 @@
+
+export class TaxBreakdownComponent {
+ /**
+ * The unique ID number of this component
+ */
+ 'taxComponentId'?: string;
+ /**
+ * The type of the jurisdiction
+ */
+ 'type'?: TaxBreakdownComponent.TypeEnum;
+ /**
+ * The name of the jurisdiction
+ */
+ 'name'?: string;
+ /**
+ * The percentage of the tax
+ */
+ 'taxPercentage'?: number;
+ /**
+ * The amount of the tax
+ */
+ 'taxAmount'?: number;
+ /**
+ * The amount that is taxable
+ */
+ 'taxableAmount'?: number;
+ /**
+ * The amount that is not taxable
+ */
+ 'nonTaxableAmount'?: number;
+ /**
+ * The amount that is exempt
+ */
+ 'exemptAmount'?: number;
+ /**
+ * The state assigned number of the jurisdiction
+ */
+ 'stateAssignedNo'?: string;
+ /**
+ * Name identifying the region within the country
+ */
+ 'jurisdictionRegion'?: string;
+
+ static discriminator: string | undefined = undefined;
+
+ static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
+ {
+ "name": "taxComponentId",
+ "baseName": "TaxComponentId",
+ "type": "string"
+ },
+ {
+ "name": "type",
+ "baseName": "Type",
+ "type": "TaxBreakdownComponent.TypeEnum"
+ },
+ {
+ "name": "name",
+ "baseName": "Name",
+ "type": "string"
+ },
+ {
+ "name": "taxPercentage",
+ "baseName": "TaxPercentage",
+ "type": "number"
+ },
+ {
+ "name": "taxAmount",
+ "baseName": "TaxAmount",
+ "type": "number"
+ },
+ {
+ "name": "taxableAmount",
+ "baseName": "TaxableAmount",
+ "type": "number"
+ },
+ {
+ "name": "nonTaxableAmount",
+ "baseName": "NonTaxableAmount",
+ "type": "number"
+ },
+ {
+ "name": "exemptAmount",
+ "baseName": "ExemptAmount",
+ "type": "number"
+ },
+ {
+ "name": "stateAssignedNo",
+ "baseName": "StateAssignedNo",
+ "type": "string"
+ },
+ {
+ "name": "jurisdictionRegion",
+ "baseName": "JurisdictionRegion",
+ "type": "string"
+ } ];
+
+ static getAttributeTypeMap() {
+ return TaxBreakdownComponent.attributeTypeMap;
+ }
+}
+
+export namespace TaxBreakdownComponent {
+ export enum TypeEnum {
+ USCOUNTRY = 'SYSGST/USCOUNTRY',
+ USSTATE = 'SYSGST/USSTATE',
+ USCOUNTY = 'SYSGST/USCOUNTY',
+ USCITY = 'SYSGST/USCITY',
+ USSPECIAL = 'SYSGST/USSPECIAL'
+ }
+}