# RepSpark for Developers - API reference, examples, and more Documentation > API reference, examples, and guides to help you integrate with RepSpark, a leading B2B wholesale ecommerce platform. ## Guides - [Getting Started with RepSpark](https://developers.repspark.com/docs/getting-started.md): This page will help you get started with RepSpark. Learn more about our integration methods and explore our API. ## API Reference - [Transaction Tokens](https://developers.repspark.com/reference/transaction-tokens.md): `X-RepSpark-TransactionToken: ` - [Sync Customers](https://developers.repspark.com/reference/sync-customers.md): A Customer represents a business, store, or person that buys from your brand.

Customer records that are associated with each other, like a department store chain, share the same CustomerCode value. Within each group of CustomerCodes, one record must have the IsBillTo attribute set to true. The non-billing records must have StoreNumber set, which can be considered shipping location Customers. - [Sync Inventory](https://developers.repspark.com/reference/sync-inventory.md): Inventory represents the on-hand and future available quantities for associated Product records.

By default, the RepSpark web and mobile apps format and display the raw AvailableQuantity values to all users. With customization, RepSpark can display ReplenishmentQuantity instead, cap units for certain roles, like B2B buyers, with a plus sign (e.g. 200+), show red, yellow, and green stoplight icons, and more. - [Sync Options](https://developers.repspark.com/reference/sync-options.md): An Option represents a key-value lookup for most of the codes used throughout the RepSpark API. - [Export Orders](https://developers.repspark.com/reference/export-orders.md) - [Sync Order Confirmations](https://developers.repspark.com/reference/sync-order-confirmations.md) - [Sync Products](https://developers.repspark.com/reference/sync-products.md): A Product represents both a physical good as well as customizations to those physical goods.

The RepSpark API flattens product variants into distinct records. For example, a product that is available in five different colors must be mapped to five Product records. - [Sync Sizing](https://developers.repspark.com/reference/sync-sizing.md): Sizing defines the size scales associated with all Product records.

Instead of repeatedly listing the individual sizes per Product record, the RepSpark API organizes sizes into groups known as size scales, identified with an attribute named SizeScaleCode. Each Product record must have SizeScaleCode set to a value defined in the Sizing sync. - [Sync Invoice Reports](https://developers.repspark.com/reference/sync-invoice-reports.md): An InvoiceReport represents the top level, header information attached to one of potentially many invoices for a particular order.

Invoices may be sent to the RepSpark API for orders not originating from the RepSpark web and mobile apps. For example, many brands want to provide their sales representatives and customers access to historical invoices from the past couple of years. Refer to [Batch Types](/reference/batch-types) and [Sync Modes](/reference/sync-modes) to learn more about sending millions of invoices to the RepSpark API.

Delta syncs for InvoiceReports generally include InvoiceItems, but invoice headers and items can also be sent separately if desired - using the InvoiceReport sync for headers and InvoiceItemReport sync for the invoice line items. **If any InvoiceItems are included at all in an InvoiceReport sync, then all InvoiceItems will be diffed - this can be used to delete specific InvoiceItems from invoices.** If no InvoiceItems are included in the sync, then it is assumed that only Invoice report headers need to be updated. - [Sync Invoice Report Items](https://developers.repspark.com/reference/sync-invoice-report-items.md): An InvoiceItemReport represents the line-level items on an InvoiceReport record.

An InvoiceItemReport sync may be used if you would like to exclusively update the items on invoices, and not the full invoice such as the headers. Similar to most Delta syncs, Delta syncs for report items cannot delete line items. However, Delta syncs for top-level Invoice Reports will delete items if those items are no longer present in the arrays within the individual reports.

Similar to most Delta syncs, Delta syncs for invoice items cannot delete individual InvoiceItems. However, Delta syncs for top-level InvoiceReports will delete items if those items are no longer present in the arrays within the individual invoices (as long as any InvoiceReport in the sync contains InvoiceItems - if no InvoiceItems are present in the payload at all, then only InvoiceReport header information is updated and InvoiceItems are not affected). - [Sync Order Reports](https://developers.repspark.com/reference/sync-order-reports.md): An OrderReport represents the top level, header information on a historical order.

Historical orders may be sent to the RepSpark API that did not originate from the RepSpark web and mobile apps. For example, many brands want to provide their sales representatives and customers access to historical orders from the past couple of years. Refer to [Batch Types](/reference/batch-types) and [Sync Modes](/reference/sync-modes) to learn more about sending millions of orders to the RepSpark API.

Delta syncs for Reports generally include OrderItems, but report headers and items can also be sent separately if desired - using the OrderReport sync for headers and OrderItemReport sync for the order line items. **If any OrderItems are included at all in an OrderReport sync, then all OrderItems will be diffed - this can be used to delete specific OrderItems from reports.** If no OrderItems are included in the sync, then it is assumed that only Report headers need to be updated. - [Sync Order Report Items](https://developers.repspark.com/reference/sync-order-report-items.md): An OrderItemReport represents the line-level items on an OrderReport record.

An OrderItemReport sync may be used if you would like to exclusively update the OrderItems on reports, and not the full report such as the headers.

Similar to most Delta syncs, Delta syncs for report items cannot delete individual OrderItems. However, Delta syncs for top-level OrderReports will delete OrderItems if those items are no longer present in the arrays within the individual reports, and as long as any OrderReport in the sync contains OrderItems. If no OrderItems are present in the payload at all, then only OrderReport header information is updated and OrderItems are not affected. - [Sync Order Report Item Sizes](https://developers.repspark.com/reference/sync-order-report-item-sizes.md): An OrderItemSizeReport represents the number of units ordered for a particular size.

An OrderItemSizeReport sync may be used if you would like to exclusively update the item sizes and associated purchase quantities on orders, and not the full report such as the headers. - [Sync Brands](https://developers.repspark.com/reference/sync-brands.md): A Brand organizes and segments data for security and visibility purposes, allowing specific groups of users to place orders only for designated brands. It enables the implementation of access controls to ensure data integrity and privacy while enforcing brand-specific restrictions.

Generally, we recommend using divisions instead because they are more deeply integrated with the RepSpark platform. - [Sync Inventory Locations](https://developers.repspark.com/reference/sync-inventory-locations.md): An InventoryLocation represents a physical storage location of a Product unit, such as a third-party logistics (3PL) warehouse.

Inventory locations are not required. All associated resources, like Inventory, work with blank or `NULL` LocationCode values. If your brand has one inventory location, do not use the InventoryLocation sync.

In advanced contexts, the RepSpark web and mobile apps support locking Customer records to an InventoryLocation record. You may also enable a customization to allow sales representatives and customers to select from a list of InventoryLocations during the ordering process.

- [Sync Pricing Plans](https://developers.repspark.com/reference/sync-pricing-plans.md): A PricingPlan defines simple, data-driven order discounts based on order date, start date, quantity tiers, and wholesale dollar tiers. PricingPlans may be optionally limited to particular products and regions. - [Sync Product Groups](https://developers.repspark.com/reference/sync-product-groups.md): A ProductGroup is an arbitrary grouping of products meant to be sold together, consisting of a base Product and children products. An example use case might be if you were to sell a set package that cannot be further customized by the user, consisting of a shirt with a chosen insignia/logo in fixed placement and color scheme. The ProductGroup sync uses products that already exist in the Product resource sync. - [Sync Seasons](https://developers.repspark.com/reference/sync-seasons.md): A Season represents the more advanced of two methods for defining SeasonCodes.

Unless you require features like deriving and limiting the order start date from the season on the products in an order, like single season orders, we recommend syncing seasons as Option records with ElementType set to SEASON. - [Sync UPCs](https://developers.repspark.com/reference/sync-upcs.md): A UPC represents a universal product code that maps to a Product record through various attributes.

In addition to the defined uniqueness key components for UPCs, they should also be unique to a specific size. - [Extensions](https://developers.repspark.com/reference/extensions.md) ## Recipes - [How to Add Embroidery Products](https://developers.repspark.com/recipes/how-to-add-embroidery-products.md)