---
displayed_sidebar: entitiesSidebar
slug: /references/entities/classes/Swap
---

import ParameterTypes from "@site/src/components/ParameterTypes"

# Swap

A swap can be created when a Customer wishes to exchange Products that they have purchased with different Products. It consists of a Return of previously purchased Products and a Fulfillment of new Products. It also includes information on any additional payment or refund required based on the difference between the exchanged products.

## Properties

<ParameterTypes parameters={[{"name":"id","type":"`string`","description":"The swap's ID","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"created_at","type":"`Date`","description":"The date with timezone at which the resource was created.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"updated_at","type":"`Date`","description":"The date with timezone at which the resource was updated.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"deleted_at","type":"`null` \\| `Date`","description":"The date with timezone at which the resource was deleted.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"fulfillment_status","type":"[SwapFulfillmentStatus](../enums/entities.SwapFulfillmentStatus.mdx)","description":"The status of the Fulfillment of the Swap.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"payment_status","type":"[SwapPaymentStatus](../enums/entities.SwapPaymentStatus.mdx)","description":"The status of the Payment of the Swap. The payment may either refer to the refund of an amount or the authorization of a new amount.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"order_id","type":"`string`","description":"The ID of the order that the swap belongs to.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"order","type":"[Order](entities.Order.mdx)","description":"The details of the order that the swap belongs to.","optional":false,"defaultValue":"","expandable":true,"children":[]},{"name":"additional_items","type":"[LineItem](entities.LineItem.mdx)[]","description":"The details of the new products to send to the customer, represented as line items.","optional":false,"defaultValue":"","expandable":true,"children":[]},{"name":"return_order","type":"[Return](entities.Return.mdx)","description":"The details of the return that belongs to the swap, which holds the details on the items being returned.","optional":false,"defaultValue":"","expandable":true,"children":[]},{"name":"fulfillments","type":"[Fulfillment](entities.Fulfillment.mdx)[]","description":"The details of the fulfillments that are used to send the new items to the customer.","optional":false,"defaultValue":"","expandable":true,"children":[]},{"name":"payment","type":"[Payment](entities.Payment.mdx)","description":"The details of the additional payment authorized by the customer when `difference\\_due` is positive.","optional":false,"defaultValue":"","expandable":true,"children":[]},{"name":"difference_due","type":"`number`","description":"The difference amount between the order’s original total and the new total imposed by the swap. If its value is negative, a refund must be issues to the customer. If it's positive, additional payment must be authorized by the customer. Otherwise, no payment processing is required.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"shipping_address_id","type":"`string`","description":"The Address to send the new Line Items to - in most cases this will be the same as the shipping address on the Order.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"shipping_address","type":"[Address](entities.Address.mdx)","description":"The details of the shipping address that the new items should be sent to.","optional":false,"defaultValue":"","expandable":true,"children":[]},{"name":"shipping_methods","type":"[ShippingMethod](entities.ShippingMethod.mdx)[]","description":"The details of the shipping methods used to fulfill the additional items purchased.","optional":false,"defaultValue":"","expandable":true,"children":[]},{"name":"cart_id","type":"`string`","description":"The ID of the cart that the customer uses to complete the swap.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"cart","type":"[Cart](entities.Cart.mdx)","description":"The details of the cart that the customer uses to complete the swap.","optional":false,"defaultValue":"","expandable":true,"children":[]},{"name":"confirmed_at","type":"`Date`","description":"The date with timezone at which the Swap was confirmed by the Customer.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"canceled_at","type":"`Date`","description":"The date with timezone at which the Swap was canceled.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"no_notification","type":"`boolean`","description":"If set to true, no notification will be sent related to this swap","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"allow_backorder","type":"`boolean`","description":"If true, swaps can be completed with items out of stock","optional":false,"defaultValue":"false","expandable":false,"children":[]},{"name":"idempotency_key","type":"`string`","description":"Randomly generated key used to continue the completion of the swap in case of failure.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"metadata","type":"`Record<string, unknown>`","description":"An optional key-value map with additional details","optional":false,"defaultValue":"","expandable":false,"children":[]}]} expandUrl="https://docs.medusajs.com/development/entities/repositories#retrieving-a-list-of-records" sectionTitle="Swap"/>
