Trendsic Platform Service

<back to all web services

PortalQuoteRequest

The following routes are available for this service:
GET,OPTIONS/portal/{Token}/quote

export class QuoteItem
{
    public QuoteItemID: number;
    public QuoteID: number;
    public ItemType: string;
    public SourceRefId?: number;
    public JobID?: number;
    public Name: string;
    public Description: string;
    public Quantity?: number;
    public UnitPrice?: number;
    public IsTaxable?: boolean;
    public DisplayOrder?: number;
    public IsDeleted?: boolean;

    public constructor(init?: Partial<QuoteItem>) { (Object as any).assign(this, init); }
}

export class PortalQuoteResponse
{
    public ResponseStatus: ResponseStatus;
    public Name: string;
    public Status: string;
    public Currency: string;
    public Total: number;
    public Notes: string;
    public FromName: string;
    public FromAddress: string;
    public ToName: string;
    public ToAddress: string;
    public ExpiresAt?: string;
    public IsLocked: boolean;
    public FinalPriceAfterCompletion: boolean;
    public ApprovedByName: string;
    public ApprovedAt?: string;
    public DeclinedByName: string;
    public DeclinedAt?: string;
    public DeclineReason: string;
    public LineItems: QuoteItem[] = [];

    public constructor(init?: Partial<PortalQuoteResponse>) { (Object as any).assign(this, init); }
}

export class PortalQuoteRequest
{
    public Token: string;

    public constructor(init?: Partial<PortalQuoteRequest>) { (Object as any).assign(this, init); }
}

TypeScript PortalQuoteRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /portal/{Token}/quote HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	},
	Name: String,
	Status: String,
	Currency: String,
	Total: 0,
	Notes: String,
	FromName: String,
	FromAddress: String,
	ToName: String,
	ToAddress: String,
	ExpiresAt: 0001-01-01,
	IsLocked: False,
	FinalPriceAfterCompletion: False,
	ApprovedByName: String,
	ApprovedAt: 0001-01-01,
	DeclinedByName: String,
	DeclinedAt: 0001-01-01,
	DeclineReason: String,
	LineItems: 
	[
		{
			QuoteItemID: 0,
			QuoteID: 0,
			ItemType: String,
			SourceRefId: 0,
			JobID: 0,
			Name: String,
			Description: String,
			Quantity: 0,
			UnitPrice: 0,
			IsTaxable: False,
			DisplayOrder: 0,
			IsDeleted: False
		}
	]
}