From 593ef6ec341d6abbda5d8f2ec456cdb0c30c170b Mon Sep 17 00:00:00 2001 From: sangeet-joy_xero Date: Mon, 16 Sep 2024 12:15:56 +0530 Subject: [PATCH] [UST-4371] Add USST fields to Invoices and Credit Notes endpoints --- docs/accounting/index.html | 123 ++++++++++++++++++ src/gen/model/accounting/creditNote.ts | 10 ++ src/gen/model/accounting/invoice.ts | 10 ++ src/gen/model/accounting/invoiceAddress.ts | 99 ++++++++++++++ src/gen/model/accounting/lineItem.ts | 37 ++++++ src/gen/model/accounting/models.ts | 9 ++ .../model/accounting/taxBreakdownComponent.ts | 111 ++++++++++++++++ 7 files changed, 399 insertions(+) create mode 100644 src/gen/model/accounting/invoiceAddress.ts create mode 100644 src/gen/model/accounting/taxBreakdownComponent.ts diff --git a/docs/accounting/index.html b/docs/accounting/index.html index 8e764b4e0..d5196aef0 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 f7d8b6be0..2de28850b 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 3f9ce7060..741a17560 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 000000000..124a1b4b5 --- /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 cfe3dd1ef..9b2d7ad95 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 6a99d9bd9..028fc90cb 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 000000000..70cb93e6b --- /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' + } +}