--- displayed_sidebar: jsClientSidebar slug: /references/js-client/AdminSwapsResource --- import ParameterTypes from "@site/src/components/ParameterTypes" # AdminSwapsResource This class is used to send requests to [Admin Swap API Routes](https://docs.medusajs.com/api/admin#swaps). All its method are available in the JS Client under the `medusa.admin.swaps` property. All methods in this class require [user authentication](AdminAuthResource.mdx#createsession). A swap is created by a customer or an admin to exchange an item with a new one. Creating a swap implicitely includes creating a return for the item being exchanged. Related Guide: [How to manage swaps](https://docs.medusajs.com/modules/orders/admin/manage-swaps) ## Methods ### list Retrieve a list of swaps. The swaps can be paginated. #### Example To list swaps: ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.swaps.list().then(({ swaps }) => { console.log(swaps.length) }) ``` By default, only the first `50` records are retrieved. You can control pagination by specifying the `limit` and `offset` properties: ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.swaps .list({ limit, offset, }) .then(({ swaps }) => { console.log(swaps.length) }) ``` #### Parameters ", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ", "optional": false, "defaultValue": "", "description": "Resolves to the list of swaps with pagination fields.", "expandable": false, "children": [ { "name": "AdminSwapsListRes", "type": "[`PaginatedResponse`](../internal/interfaces/internal.PaginatedResponse.mdx) & { `swaps`: [`Swap`](../internal/classes/internal.Swap.mdx)[] }", "description": "The list of swaps with pagination fields.", "optional": false, "defaultValue": "", "expandable": false, "children": [ { "name": "count", "type": "`number`", "description": "The total number of items available.", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "limit", "type": "`number`", "description": "The maximum number of items that can be returned in the list.", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "offset", "type": "`number`", "description": "The number of items skipped before the returned items in the list.", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "swaps", "type": "[`Swap`](../internal/classes/internal.Swap.mdx)[]", "description": "An array of swaps details.", "optional": false, "defaultValue": "", "expandable": false, "children": [ { "name": "additional_items", "type": "[`LineItem`](../internal/classes/internal.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": "allow_backorder", "type": "`boolean`", "description": "If true, swaps can be completed with items out of stock", "optional": false, "defaultValue": "false", "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": "cart", "type": "[`Cart`](../internal/classes/internal.Cart.mdx)", "description": "The details of the cart that the customer uses to complete the swap.", "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": "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": "created_at", "type": "`Date`", "description": "The date with timezone at which the resource was created.", "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": "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": "fulfillment_status", "type": "[`SwapFulfillmentStatus`](../internal/enums/internal.SwapFulfillmentStatus.mdx)", "description": "The status of the Fulfillment of the Swap.", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "fulfillments", "type": "[`Fulfillment`](../internal/classes/internal.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": "id", "type": "`string`", "description": "The swap's ID", "optional": false, "defaultValue": "", "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": [] }, { "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": "order", "type": "[`Order`](../internal/classes/internal.Order.mdx)", "description": "The details of the order that the swap belongs to.", "optional": false, "defaultValue": "", "expandable": true, "children": [] }, { "name": "order_id", "type": "`string`", "description": "The ID of the order that the swap belongs to.", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "payment", "type": "[`Payment`](../internal/classes/internal.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": "payment_status", "type": "[`SwapPaymentStatus`](../internal/enums/internal.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": "return_order", "type": "[`Return`](../internal/classes/internal.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": "shipping_address", "type": "[`Address`](../internal/classes/internal.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_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_methods", "type": "[`ShippingMethod`](../internal/classes/internal.ShippingMethod-4.mdx)[]", "description": "The details of the shipping methods used to fulfill the additional items purchased.", "optional": false, "defaultValue": "", "expandable": true, "children": [] }, { "name": "updated_at", "type": "`Date`", "description": "The date with timezone at which the resource was updated.", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ] } ] } ] } ]} /> ___ ### retrieve Retrieve a swap's details. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.swaps.retrieve(swapId).then(({ swap }) => { console.log(swap.id) }) ``` #### Parameters ", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ", "optional": false, "defaultValue": "", "description": "Resolves to the swap's details.", "expandable": false, "children": [ { "name": "AdminSwapsRes", "type": "`object`", "description": "The swap's details.", "optional": false, "defaultValue": "", "expandable": false, "children": [ { "name": "swap", "type": "[`Swap`](../internal/classes/internal.Swap.mdx)", "description": "Swap details.", "optional": false, "defaultValue": "", "expandable": false, "children": [ { "name": "additional_items", "type": "[`LineItem`](../internal/classes/internal.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": "allow_backorder", "type": "`boolean`", "description": "If true, swaps can be completed with items out of stock", "optional": false, "defaultValue": "false", "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": "cart", "type": "[`Cart`](../internal/classes/internal.Cart.mdx)", "description": "The details of the cart that the customer uses to complete the swap.", "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": "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": "created_at", "type": "`Date`", "description": "The date with timezone at which the resource was created.", "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": "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": "fulfillment_status", "type": "[`SwapFulfillmentStatus`](../internal/enums/internal.SwapFulfillmentStatus.mdx)", "description": "The status of the Fulfillment of the Swap.", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "fulfillments", "type": "[`Fulfillment`](../internal/classes/internal.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": "id", "type": "`string`", "description": "The swap's ID", "optional": false, "defaultValue": "", "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": [] }, { "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": "order", "type": "[`Order`](../internal/classes/internal.Order.mdx)", "description": "The details of the order that the swap belongs to.", "optional": false, "defaultValue": "", "expandable": true, "children": [] }, { "name": "order_id", "type": "`string`", "description": "The ID of the order that the swap belongs to.", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "payment", "type": "[`Payment`](../internal/classes/internal.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": "payment_status", "type": "[`SwapPaymentStatus`](../internal/enums/internal.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": "return_order", "type": "[`Return`](../internal/classes/internal.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": "shipping_address", "type": "[`Address`](../internal/classes/internal.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_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_methods", "type": "[`ShippingMethod`](../internal/classes/internal.ShippingMethod-4.mdx)[]", "description": "The details of the shipping methods used to fulfill the additional items purchased.", "optional": false, "defaultValue": "", "expandable": true, "children": [] }, { "name": "updated_at", "type": "`Date`", "description": "The date with timezone at which the resource was updated.", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ] } ] } ] } ]} />