0
# Product and Commerce Types
1
2
Schema.org types for products, offers, orders, payments, and e-commerce functionality.
3
4
## Capabilities
5
6
### Product Base Type
7
8
The root type for all products and commercial items.
9
10
```typescript { .api }
11
/**
12
* Any offered product or service. For example: a pair of shoes; a concert ticket;
13
* the rental of a car; a haircut; or an episode of a TV show streamed online
14
*/
15
type Product = ProductLeaf | DietarySupplement | Drug | IndividualProduct |
16
ProductCollection | ProductGroup | ProductModel | SomeProducts | Vehicle;
17
18
interface ProductBase extends ThingBase {
19
/** A property-value pair representing an additional characteristic of the entity */
20
additionalProperty?: SchemaValue<PropertyValue, "additionalProperty">;
21
/** The overall rating, based on a collection of reviews or ratings, of the item */
22
aggregateRating?: SchemaValue<AggregateRating, "aggregateRating">;
23
/** An intended audience, i.e. a group for whom something was created */
24
audience?: SchemaValue<Audience, "audience">;
25
/** An award won by or for this item */
26
award?: SchemaValue<Text, "award">;
27
/** The brand(s) associated with the product */
28
brand?: SchemaValue<Brand | Organization, "brand">;
29
/** A category for the item */
30
category?: SchemaValue<CategoryCode | PhysicalActivityCategory | Text | Thing | URL, "category">;
31
/** The color of the product */
32
color?: SchemaValue<Text, "color">;
33
/** The depth of the item */
34
depth?: SchemaValue<Distance | QuantitativeValue, "depth">;
35
/** A Global Trade Item Number (GTIN) */
36
gtin?: SchemaValue<Text, "gtin">;
37
/** The GTIN-12 code of the product, or the product to which the offer refers */
38
gtin12?: SchemaValue<Text, "gtin12">;
39
/** The GTIN-13 code of the product, or the product to which the offer refers */
40
gtin13?: SchemaValue<Text, "gtin13">;
41
/** The GTIN-14 code of the product, or the product to which the offer refers */
42
gtin14?: SchemaValue<Text, "gtin14">;
43
/** The GTIN-8 code of the product, or the product to which the offer refers */
44
gtin8?: SchemaValue<Text, "gtin8">;
45
/** Indicates whether this content is family friendly */
46
isFamilyFriendly?: SchemaValue<Boolean, "isFamilyFriendly">;
47
/** A predefined value from the OfferItemCondition enumeration */
48
itemCondition?: SchemaValue<OfferItemCondition, "itemCondition">;
49
/** Keywords or tags used to describe this content */
50
keywords?: SchemaValue<DefinedTerm | Text | URL, "keywords">;
51
/** A logo associated with an organization or product */
52
logo?: SchemaValue<ImageObject | URL, "logo">;
53
/** The manufacturer of the product */
54
manufacturer?: SchemaValue<Organization, "manufacturer">;
55
/** A material that something is made from */
56
material?: SchemaValue<Product | Text | URL, "material">;
57
/** The model of the product */
58
model?: SchemaValue<ProductModel | Text, "model">;
59
/** The Manufacturer Part Number (MPN) of the product */
60
mpn?: SchemaValue<Text, "mpn">;
61
/** An offer to provide this item */
62
offers?: SchemaValue<Demand | Offer, "offers">;
63
/** The product identifier, such as ISBN */
64
productID?: SchemaValue<Text, "productID">;
65
/** The date of production of the item */
66
productionDate?: SchemaValue<Date, "productionDate">;
67
/** The date the item was purchased */
68
purchaseDate?: SchemaValue<Date, "purchaseDate">;
69
/** The release date of a product or product model */
70
releaseDate?: SchemaValue<Date, "releaseDate">;
71
/** A review of the item */
72
review?: SchemaValue<Review, "review">;
73
/** The Stock Keeping Unit (SKU) */
74
sku?: SchemaValue<Text, "sku">;
75
/** A slogan or motto associated with the item */
76
slogan?: SchemaValue<Text, "slogan">;
77
/** The weight of the product or person */
78
weight?: SchemaValue<QuantitativeValue, "weight">;
79
/** The width of the item */
80
width?: SchemaValue<Distance | QuantitativeValue, "width">;
81
/** The height of the item */
82
height?: SchemaValue<Distance | QuantitativeValue, "height">;
83
}
84
```
85
86
### Product Variants and Collections
87
88
Types for product variations, groupings, and collections.
89
90
```typescript { .api }
91
/**
92
* A specific product, either a unique instance of a more generic product or
93
* a product offered for sale by specific sellers
94
*/
95
type IndividualProduct = IndividualProductLeaf;
96
97
interface IndividualProductBase extends ProductBase {
98
/** The serial number or any alphanumeric identifier of a particular product */
99
serialNumber?: SchemaValue<Text, "serialNumber">;
100
}
101
102
/**
103
* A ProductCollection is a set of products in e-commerce
104
*/
105
type ProductCollection = ProductCollectionLeaf;
106
107
/**
108
* A ProductGroup represents a group of Products that vary only in certain attributes
109
*/
110
type ProductGroup = ProductGroupLeaf;
111
112
interface ProductGroupBase extends ProductBase {
113
/** Indicates a textual identifier for a ProductGroup */
114
productGroupID?: SchemaValue<Text, "productGroupID">;
115
/** Indicates the property or properties by which the products in the group vary */
116
variesBy?: SchemaValue<DefinedTerm | Text, "variesBy">;
117
}
118
119
/**
120
* A datasheet or vendor specification of a product
121
*/
122
type ProductModel = ProductModelLeaf;
123
124
interface ProductModelBase extends ProductBase {
125
/** A pointer to a base product from which this product is a variant */
126
isVariantOf?: SchemaValue<ProductGroup | ProductModel, "isVariantOf">;
127
/** A pointer from a previous, often discontinued variant of the product to its newer variant */
128
predecessorOf?: SchemaValue<ProductModel, "predecessorOf">;
129
/** A pointer from a newer variant of a product to its previous, often discontinued predecessor */
130
successorOf?: SchemaValue<ProductModel, "successorOf">;
131
}
132
```
133
134
**Usage Examples:**
135
136
```typescript
137
import type { Product, IndividualProduct, ProductGroup, ProductModel } from "schema-dts";
138
139
// Basic product
140
const smartphone: Product = {
141
"@type": "Product",
142
name: "Galaxy S24",
143
description: "Latest flagship smartphone",
144
brand: {
145
"@type": "Brand",
146
name: "Samsung"
147
},
148
manufacturer: {
149
"@type": "Organization",
150
name: "Samsung Electronics"
151
},
152
model: "SM-S921U",
153
category: "Electronics",
154
color: ["Black", "White", "Purple"],
155
gtin13: "1234567890123",
156
mpn: "SM-S921U-256GB",
157
offers: {
158
"@type": "Offer",
159
price: "999.99",
160
priceCurrency: "USD",
161
availability: "InStock",
162
seller: {
163
"@type": "Organization",
164
name: "Electronics Store"
165
}
166
}
167
};
168
169
// Individual product instance
170
const specificPhone: IndividualProduct = {
171
"@type": "IndividualProduct",
172
name: "Galaxy S24 - Serial ABC123",
173
model: "SM-S921U",
174
serialNumber: "ABC123456789",
175
color: "Black",
176
productionDate: "2024-02-15",
177
itemCondition: "NewCondition"
178
};
179
180
// Product group with variants
181
const phoneGroup: ProductGroup = {
182
"@type": "ProductGroup",
183
name: "Galaxy S24 Series",
184
productGroupID: "GALAXY-S24-GROUP",
185
variesBy: ["color", "storage capacity"],
186
hasVariant: [
187
{
188
"@type": "Product",
189
name: "Galaxy S24 128GB Black",
190
color: "Black"
191
},
192
{
193
"@type": "Product",
194
name: "Galaxy S24 256GB White",
195
color: "White"
196
}
197
]
198
};
199
```
200
201
### Offer Types
202
203
Types for pricing, availability, and commercial offers.
204
205
```typescript { .api }
206
/**
207
* An offer to transfer some rights to an item or to provide a service
208
*/
209
type Offer = OfferLeaf | AggregateOffer;
210
211
interface OfferBase extends IntangibleBase {
212
/** The payment method(s) accepted by seller or merchant */
213
acceptedPaymentMethod?: SchemaValue<LoanOrCredit | PaymentMethod, "acceptedPaymentMethod">;
214
/** An additional offer that can only be obtained in combination with the first base offer */
215
addOn?: SchemaValue<Offer, "addOn">;
216
/** The amount of time that is required between accepting the offer and the actual usage of the resource or service */
217
advanceBookingRequirement?: SchemaValue<QuantitativeValue, "advanceBookingRequirement">;
218
/** The overall rating, based on a collection of reviews or ratings, of the item */
219
aggregateRating?: SchemaValue<AggregateRating, "aggregateRating">;
220
/** The geographic area where a service or offered item is provided */
221
areaServed?: SchemaValue<AdministrativeArea | GeoShape | Place | Text, "areaServed">;
222
/** The availability of this item */
223
availability?: SchemaValue<ItemAvailability, "availability">;
224
/** The end of the availability of the product or service included in the offer */
225
availabilityEnds?: SchemaValue<Date | DateTime | Time, "availabilityEnds">;
226
/** The beginning of the availability of the product or service included in the offer */
227
availabilityStarts?: SchemaValue<Date | DateTime | Time, "availabilityStarts">;
228
/** The place(s) from which the offer can be obtained */
229
availableAtOrFrom?: SchemaValue<Place, "availableAtOrFrom">;
230
/** The delivery method(s) available for this offer */
231
availableDeliveryMethod?: SchemaValue<DeliveryMethod, "availableDeliveryMethod">;
232
/** The business function (e.g. sell, lease, repair, dispose) of the offer or component of a bundle */
233
businessFunction?: SchemaValue<BusinessFunction, "businessFunction">;
234
/** A category for the item */
235
category?: SchemaValue<CategoryCode | PhysicalActivityCategory | Text | Thing | URL, "category">;
236
/** The typical delay between the receipt of the order and the goods either leaving the warehouse or being prepared for pickup */
237
deliveryLeadTime?: SchemaValue<QuantitativeValue, "deliveryLeadTime">;
238
/** The type(s) of customers for which the given offer is valid */
239
eligibleCustomerType?: SchemaValue<BusinessEntityType, "eligibleCustomerType">;
240
/** The duration for which the given offer is valid */
241
eligibleDuration?: SchemaValue<QuantitativeValue, "eligibleDuration">;
242
/** The interval and unit of measurement of ordering quantities for which the offer or price specification is valid */
243
eligibleQuantity?: SchemaValue<QuantitativeValue, "eligibleQuantity">;
244
/** The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is valid */
245
eligibleRegion?: SchemaValue<GeoShape | Place | Text, "eligibleRegion">;
246
/** The transaction volume, in a monetary unit, for which the offer or price specification is valid */
247
eligibleTransactionVolume?: SchemaValue<PriceSpecification, "eligibleTransactionVolume">;
248
/** A Global Trade Item Number (GTIN) */
249
gtin?: SchemaValue<Text, "gtin">;
250
/** The GTIN-12 code of the product, or the product to which the offer refers */
251
gtin12?: SchemaValue<Text, "gtin12">;
252
/** The GTIN-13 code of the product, or the product to which the offer refers */
253
gtin13?: SchemaValue<Text, "gtin13">;
254
/** The GTIN-14 code of the product, or the product to which the offer refers */
255
gtin14?: SchemaValue<Text, "gtin14">;
256
/** The GTIN-8 code of the product, or the product to which the offer refers */
257
gtin8?: SchemaValue<Text, "gtin8">;
258
/** This links to a node or nodes indicating the exact quantity of the products included in an Offer or ProductCollection */
259
includesObject?: SchemaValue<TypeAndQuantityNode, "includesObject">;
260
/** The current approximate inventory level for the item or items */
261
inventoryLevel?: SchemaValue<QuantitativeValue, "inventoryLevel">;
262
/** A predefined value from the OfferItemCondition enumeration */
263
itemCondition?: SchemaValue<OfferItemCondition, "itemCondition">;
264
/** An item being offered (or demanded) */
265
itemOffered?: SchemaValue<AggregateOffer | CreativeWork | Event | MenuItem | Product | Service | Trip, "itemOffered">;
266
/** Length of the lease for some Accommodation, either particular to some Offer or in some cases intrinsic to the property */
267
leaseLength?: SchemaValue<Duration | QuantitativeValue, "leaseLength">;
268
/** The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers */
269
mpn?: SchemaValue<Text, "mpn">;
270
/** The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes */
271
price?: SchemaValue<Number | Text, "price">;
272
/** The currency of the price, or a price component when attached to PriceSpecification and its subtypes */
273
priceCurrency?: SchemaValue<Text, "priceCurrency">;
274
/** One or more detailed price specifications, indicating the unit price and delivery or payment charges */
275
priceSpecification?: SchemaValue<PriceSpecification, "priceSpecification">;
276
/** The date after which the price is no longer available */
277
priceValidUntil?: SchemaValue<Date, "priceValidUntil">;
278
/** A review of the item */
279
review?: SchemaValue<Review, "review">;
280
/** An entity which offers (sells / leases / lends / loans) the services or goods */
281
seller?: SchemaValue<Organization | Person, "seller">;
282
/** The serial number or any alphanumeric identifier of a particular product */
283
serialNumber?: SchemaValue<Text, "serialNumber">;
284
/** Indicates information about the shipping policies and options associated with an Offer */
285
shippingDetails?: SchemaValue<OfferShippingDetails, "shippingDetails">;
286
/** The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers */
287
sku?: SchemaValue<Text, "sku">;
288
/** The date when the item becomes valid */
289
validFrom?: SchemaValue<Date | DateTime, "validFrom">;
290
/** The date after when the item is not valid */
291
validThrough?: SchemaValue<Date | DateTime, "validThrough">;
292
/** The warranty promise(s) included in the offer */
293
warranty?: SchemaValue<WarrantyPromise, "warranty">;
294
}
295
296
/**
297
* When a single product is associated with multiple offers (for example, the same pair of shoes offered by different merchants), then AggregateOffer can be used
298
*/
299
type AggregateOffer = AggregateOfferLeaf;
300
301
interface AggregateOfferBase extends OfferBase {
302
/** The highest price of all offers available */
303
highPrice?: SchemaValue<Number | Text, "highPrice">;
304
/** The lowest price of all offers available */
305
lowPrice?: SchemaValue<Number | Text, "lowPrice">;
306
/** The number of offers for the product */
307
offerCount?: SchemaValue<Integer, "offerCount">;
308
/** An offer to provide this item */
309
offers?: SchemaValue<Offer, "offers">;
310
}
311
```
312
313
**Usage Examples:**
314
315
```typescript
316
import type { Offer, AggregateOffer } from "schema-dts";
317
318
// Single offer
319
const laptopOffer: Offer = {
320
"@type": "Offer",
321
itemOffered: {
322
"@type": "Product",
323
name: "MacBook Pro 14-inch",
324
brand: "Apple"
325
},
326
price: "1999.00",
327
priceCurrency: "USD",
328
availability: "InStock",
329
seller: {
330
"@type": "Organization",
331
name: "Apple Store"
332
},
333
validFrom: "2024-01-01",
334
validThrough: "2024-12-31",
335
acceptedPaymentMethod: ["CreditCard", "Cash", "PayPal"],
336
availableDeliveryMethod: "OnSitePickup",
337
warranty: {
338
"@type": "WarrantyPromise",
339
durationOfWarranty: {
340
"@type": "QuantitativeValue",
341
value: 1,
342
unitCode: "ANN"
343
}
344
}
345
};
346
347
// Multiple offers aggregated
348
const phoneOffers: AggregateOffer = {
349
"@type": "AggregateOffer",
350
itemOffered: {
351
"@type": "Product",
352
name: "iPhone 15",
353
brand: "Apple"
354
},
355
lowPrice: "799.00",
356
highPrice: "899.00",
357
priceCurrency: "USD",
358
offerCount: 5,
359
offers: [
360
{
361
"@type": "Offer",
362
price: "799.00",
363
seller: {
364
"@type": "Organization",
365
name: "Store A"
366
}
367
},
368
{
369
"@type": "Offer",
370
price: "829.00",
371
seller: {
372
"@type": "Organization",
373
name: "Store B"
374
}
375
}
376
]
377
};
378
```
379
380
### Order and Purchase Types
381
382
Types for orders, purchases, and transaction management.
383
384
```typescript { .api }
385
/**
386
* An order is a confirmation of a transaction (a receipt), which can contain multiple line items, each represented by an Offer that has been accepted by the customer
387
*/
388
type Order = OrderLeaf;
389
390
interface OrderBase extends IntangibleBase {
391
/** The offer(s) -- e.g., product, quantity and price combinations -- included in the order */
392
acceptedOffer?: SchemaValue<Offer, "acceptedOffer">;
393
/** The billing address for the order */
394
billingAddress?: SchemaValue<PostalAddress, "billingAddress">;
395
/** An entity that arranges for an exchange between a buyer and a seller */
396
broker?: SchemaValue<Organization | Person, "broker">;
397
/** A number that confirms the given order or payment has been received */
398
confirmationNumber?: SchemaValue<Text, "confirmationNumber">;
399
/** Party placing the order or paying the invoice */
400
customer?: SchemaValue<Organization | Person, "customer">;
401
/** Any discount applied (to an Order) */
402
discount?: SchemaValue<Number | Text, "discount">;
403
/** Code used to redeem a discount */
404
discountCode?: SchemaValue<Text, "discountCode">;
405
/** The currency of the discount */
406
discountCurrency?: SchemaValue<Text, "discountCurrency">;
407
/** Was the offer accepted as a gift for someone other than the buyer */
408
isGift?: SchemaValue<Boolean, "isGift">;
409
/** Date order was placed */
410
orderDate?: SchemaValue<Date | DateTime, "orderDate">;
411
/** The delivery of the parcel related to this order or order item */
412
orderDelivery?: SchemaValue<ParcelDelivery, "orderDelivery">;
413
/** The identifier of the transaction */
414
orderNumber?: SchemaValue<Text, "orderNumber">;
415
/** The current status of the order */
416
orderStatus?: SchemaValue<OrderStatus, "orderStatus">;
417
/** The item ordered */
418
orderedItem?: SchemaValue<OrderItem | Product | Service, "orderedItem">;
419
/** The organization or person from which the product was purchased */
420
seller?: SchemaValue<Organization | Person, "seller">;
421
/** The date payment is due */
422
paymentDue?: SchemaValue<DateTime, "paymentDue">;
423
/** The date that payment is due */
424
paymentDueDate?: SchemaValue<Date | DateTime, "paymentDueDate">;
425
/** The name of the credit card or other method of payment for the order */
426
paymentMethod?: SchemaValue<PaymentMethod, "paymentMethod">;
427
/** An identifier for the method of payment used */
428
paymentMethodId?: SchemaValue<Text, "paymentMethodId">;
429
/** The URL for sending a payment */
430
paymentUrl?: SchemaValue<URL, "paymentUrl">;
431
}
432
433
/**
434
* An order item is a line of an order. It includes the quantity and shipping details of a bought offer
435
*/
436
type OrderItem = OrderItemLeaf;
437
438
interface OrderItemBase extends IntangibleBase {
439
/** The delivery of the parcel related to this order or order item */
440
orderDelivery?: SchemaValue<ParcelDelivery, "orderDelivery">;
441
/** The identifier of the order item */
442
orderItemNumber?: SchemaValue<Text, "orderItemNumber">;
443
/** The current status of the order item */
444
orderItemStatus?: SchemaValue<OrderStatus, "orderItemStatus">;
445
/** The number of the item ordered */
446
orderQuantity?: SchemaValue<Number, "orderQuantity">;
447
/** The item ordered */
448
orderedItem?: SchemaValue<OrderItem | Product | Service, "orderedItem">;
449
}
450
```
451
452
**Usage Examples:**
453
454
```typescript
455
import type { Order, OrderItem } from "schema-dts";
456
457
// Complete order
458
const purchaseOrder: Order = {
459
"@type": "Order",
460
orderNumber: "ORD-2024-001234",
461
orderDate: "2024-03-15T10:30:00",
462
orderStatus: "OrderProcessing",
463
customer: {
464
"@type": "Person",
465
name: "John Customer",
466
email: "john@example.com"
467
},
468
seller: {
469
"@type": "Organization",
470
name: "Online Electronics Store"
471
},
472
acceptedOffer: [
473
{
474
"@type": "Offer",
475
itemOffered: {
476
"@type": "Product",
477
name: "Wireless Headphones",
478
sku: "WH-1000XM5"
479
},
480
price: "299.99",
481
priceCurrency: "USD",
482
quantity: 1
483
}
484
],
485
billingAddress: {
486
"@type": "PostalAddress",
487
streetAddress: "123 Main St",
488
addressLocality: "Anytown",
489
addressRegion: "CA",
490
postalCode: "90210",
491
addressCountry: "US"
492
},
493
paymentMethod: "CreditCard",
494
paymentDue: "2024-03-15T10:30:00",
495
discount: "50.00",
496
discountCode: "SAVE50",
497
discountCurrency: "USD"
498
};
499
500
// Individual order item
501
const orderItem: OrderItem = {
502
"@type": "OrderItem",
503
orderItemNumber: "ITEM-001",
504
orderQuantity: 2,
505
orderedItem: {
506
"@type": "Product",
507
name: "USB Cable",
508
sku: "USB-C-001"
509
},
510
orderItemStatus: "OrderInTransit",
511
orderDelivery: {
512
"@type": "ParcelDelivery",
513
expectedArrivalFrom: "2024-03-20",
514
expectedArrivalUntil: "2024-03-22",
515
hasDeliveryMethod: "ParcelService"
516
}
517
};
518
```
519
520
### Payment and Financial Types
521
522
Types for payment methods, invoices, and financial transactions.
523
524
```typescript { .api }
525
/**
526
* A payment method is a standardized procedure for transferring the monetary amount for a purchase
527
*/
528
type PaymentMethod = PaymentMethodLeaf | CreditCard | DigitalWallet | PaymentCard;
529
530
/**
531
* A credit or debit card type as a standardized procedure for transferring the monetary amount for a purchase
532
*/
533
type CreditCard = CreditCardLeaf;
534
type PaymentCard = PaymentCardLeaf;
535
536
/**
537
* A statement of the money due for goods or services; a bill
538
*/
539
type Invoice = InvoiceLeaf;
540
541
interface InvoiceBase extends IntangibleBase {
542
/** The identifier for the account the payment will be applied to */
543
accountId?: SchemaValue<Text, "accountId">;
544
/** The time interval used to compute the invoice */
545
billingPeriod?: SchemaValue<Duration, "billingPeriod">;
546
/** An entity that arranges for an exchange between a buyer and a seller */
547
broker?: SchemaValue<Organization | Person, "broker">;
548
/** A category for the item */
549
category?: SchemaValue<CategoryCode | PhysicalActivityCategory | Text | Thing | URL, "category">;
550
/** A number that confirms the given order or payment has been received */
551
confirmationNumber?: SchemaValue<Text, "confirmationNumber">;
552
/** Party placing the order or paying the invoice */
553
customer?: SchemaValue<Organization | Person, "customer">;
554
/** The minimum payment required at this time */
555
minimumPaymentDue?: SchemaValue<MonetaryAmount | PriceSpecification, "minimumPaymentDue">;
556
/** The date that payment is due */
557
paymentDue?: SchemaValue<DateTime, "paymentDue">;
558
/** The date that payment is due */
559
paymentDueDate?: SchemaValue<Date | DateTime, "paymentDueDate">;
560
/** The name of the credit card or other method of payment for the order */
561
paymentMethod?: SchemaValue<PaymentMethod, "paymentMethod">;
562
/** An identifier for the method of payment used */
563
paymentMethodId?: SchemaValue<Text, "paymentMethodId">;
564
/** The status of payment; whether the invoice has been paid or not */
565
paymentStatus?: SchemaValue<PaymentStatusType | Text, "paymentStatus">;
566
/** The service provider, service operator, or service performer; the goods producer */
567
provider?: SchemaValue<Organization | Person, "provider">;
568
/** The Order(s) related to this Invoice */
569
referencesOrder?: SchemaValue<Order, "referencesOrder">;
570
/** The date the invoice is scheduled to be paid */
571
scheduledPaymentDate?: SchemaValue<Date, "scheduledPaymentDate">;
572
/** The total amount due */
573
totalPaymentDue?: SchemaValue<MonetaryAmount | PriceSpecification, "totalPaymentDue">;
574
}
575
```
576
577
**Usage Examples:**
578
579
```typescript
580
import type { PaymentMethod, CreditCard, Invoice } from "schema-dts";
581
582
// Credit card payment method
583
const creditCard: CreditCard = {
584
"@type": "CreditCard",
585
name: "Visa ending in 1234",
586
paymentMethodId: "card_1234567890"
587
};
588
589
// Invoice
590
const serviceInvoice: Invoice = {
591
"@type": "Invoice",
592
confirmationNumber: "INV-2024-5678",
593
customer: {
594
"@type": "Organization",
595
name: "ABC Company"
596
},
597
provider: {
598
"@type": "Organization",
599
name: "Consulting Services LLC"
600
},
601
paymentDueDate: "2024-04-15",
602
paymentStatus: "PaymentDue",
603
totalPaymentDue: {
604
"@type": "MonetaryAmount",
605
currency: "USD",
606
value: "2500.00"
607
},
608
minimumPaymentDue: {
609
"@type": "MonetaryAmount",
610
currency: "USD",
611
value: "500.00"
612
},
613
billingPeriod: {
614
"@type": "Duration",
615
startDate: "2024-03-01",
616
endDate: "2024-03-31"
617
}
618
};
619
```