Skip to main content

RMA API

G
Written by Guido Kaspers
Updated over a week ago

The SWAP Returns API enables you to retrieve return data from the Swap dashboard programmatically. This is useful for integrations with third-party systems like WMSs, marketing automation tools, analytics platforms, and more.


Authentication

To access the Returns API, an API token is required.

Generate API Token

⚠️ If you have previously generated an API key, for QC for example, you can use the same key.

To access the Returns API, you’ll need an API token.

  1. Go to Returns → Integrations in the dashboard.

  2. Click Generate API Key.

  3. Copy the token from the popup — you won’t be able to see it again.

  4. Include the token in the x-api-key header for all requests.

x-api-key: <API_TOKEN>

Note: Token generation is currently irreversible. There is no UI to revoke or regenerate keys. Contact support if needed.


Get RMA end point

<https://api-mfdugldntq-nw.a.run.app/v1/external/returns>

Query Parameters

You can include the following query parameters to filter and paginate results. Only store and from_date are required.

Parameter

Type

Required

Description

Example

store

string

Yes

Your store ID

"store_123abc"

from_date

string

Yes

Start date for filtering returns (ISO 8601 format)

"2024-01-01T00:00:00.000Z"

to_date

string

No

End date for filtering returns (ISO 8601 format)

"2024-01-31T23:59:59.999Z"

items_per_page

number

No

Number of items per page (1–50, defaults to 50)

25

page

number

No

Page number to fetch (defaults to 1)

1

last_updated_date

string

No

Filter returns updated after this timestamp (ISO 8601)

"2024-01-01T00:00:00.000Z"

version

number

No

API version number (defaults to 1)

1

Parameter

Type

Description

from_date

string

ISO 8601 format start datetime

to_date

string

ISO 8601 format end datetime

store

string

Store ID

page

int

Page number for pagination

items_per_page

int

Number of results per page

Sample Request

GET /v1/external/returns?store=store_123abc&from_date=2024-01-01T00:00:00Z&to_date=2024-01-31T23:59:59Z&page=1&items_per_page=25&version=1 Host: api-gateway.swap-os.com Authorization: Bearer <API_TOKEN>

For UAT testing, use sandbox-apigw.swap-os.com as the host instead.

Sample Response

{ "order_name": "SW-25066", "order_id": "11535622111613", "rma": "2313596", "date_created": "2025-01-06T15:15:58.250Z", "date_updated": "2025-01-06T15:17:00.863Z", "type_string": "Exchange", "type": ["Exchange"], "shipping_status": "Own Label", "status": "Closed", ... }

See full schema below.


Response Schema

The API returns a JSON object with the following top-level fields:

Field

Type

Description

orders

array

Array of return records (see full structure below)

version

number

API version number

query_params

object

Parameters used in the request

pagination

object

Pagination info (see Pagination)

orders[]

Each return in the orders array includes the following fields:

Order Details

Field

Type

Description

order_name

string

Order reference number

order_id

string

Shopify order identifier

rma

string

Return Merchandise Authorization number

date_created

string

Return creation timestamp

date_updated

string

Last update timestamp

type_string

string

Comma-separated return types

type

array

Array of return types (e.g. ["Refund"])

shipping_status

string

Current shipping status

status

string

Current return status

Financial Information

Field

Type

Description

total

number

Total credit amount

handling_fee

number

Handling fee amount

return_id

string

Unique return identifier

shop_now_revenue

number

Revenue from shop now returns

shop_later_revenue

number

Revenue from shop later returns

exchange_revenue

number

Revenue from exchanges

refund_revenue

number

Revenue from refunds

store_id

string

Store identifier

total_additional_payment

number

Additional payment amount

total_credit_exchange_value

number

Total credit for exchanges

total_refund_value_customer_currency

number

Refund value in customer’s currency

Customer & Store Information

Field

Type

Description

store_name

string

Store name

customer_currency

string

Currency code

customer_name

string

Customer’s full name

customer_locale

string

Customer’s locale

shipping_carrier

string

Shipping carrier

shopify_order_date

string

Original order timestamp

Shipping Information

Field

Type

Description

shipment_from_address_country

string

Country of return origin

shipment_from_address_city

string

City of return origin

shipment_from_address_parcel_weight

number

Package weight in grams

shipment_from_address_state

string

State/province of return

tags

string

Tags applied to the return

tracking_number

string

Return tracking number

Processing Information

Field

Type

Description

processed

string

Whether the return is processed

processed_by

string

Name of person who processed it

order_alt_type

string

Alternative order type

quality_control_status

string

QC status (e.g. passed, failed)

delivered_date

string

Date the return was delivered

date_closed

string

Date the return was closed

Time Metrics

Field

Type

Description

elapsed_days_purchase_to_return

number

Days between original purchase and return

elapsed_days_return_to_delivery

number

Days between return initiation and delivery

elapsed_days_delivery_closed

number

Days between delivery and return closure

Billing Address (optional)

Field

Type

Description

billing_address.name

string

Full name

billing_address.address1

string

Address line 1

billing_address.address2

string

Address line 2

billing_address.city

string

City

billing_address.postcode

string

ZIP/postal code

billing_address.state_province_code

string

State/province code

billing_address.country_code

string

Country code

products[]

Each product object in the products array includes:

Field

Type

Description

product_id

string

Internal product ID

shopify_product_id

string

Shopify product ID

shopify_variant_id

string

Shopify variant ID

order_number

string

Order number

original_order_name

string

Original order name

date

string

Return date

product_name

string

Product name

variant_name

string

Variant name

full_sku_description

string

Full SKU description

sku

string

SKU code

item_count

number

Quantity returned

cost

number

Product cost

return_type

string

Return type (e.g. REFUND)

currency

string

Currency code

Return Reasons (optional)

Field

Type

Description

main_reason_id

string

ID for main reason

main_reason_text

string

Description of main reason

sub_reason_id

string

ID for sub-reason

sub_reason_text

string

Description of sub-reason

comments

string

Additional comments

Product Metadata (optional)

Field

Type

Description

vendor

string

Product vendor

collection

array

Product collections

product_alt_type

string

Alternative product category

grams

number

Weight in grams

intake_reason

string

Reason for product intake

tags

string

Product tags

is_faulty

boolean

Whether the item was faulty

Tax & Duty Information

Field

Type

Description

refunded_taxes

number

Total refunded taxes

refunded_duties

number

Total refunded duties

refunded_inclusive_taxes

number

Refunded inclusive tax amount

refunded_inclusive_duties

number

Refunded inclusive duties amount

refunded_non_inclusive_taxes

number

Refunded non-inclusive tax amount

refunded_non_inclusive_duties

number

Refunded non-inclusive duties

Error Responses

If a request fails, the API will return one of the following HTTP status codes:

Status Code

Meaning

When it occurs

400

Bad Request

Invalid or missing query parameters

401

Unauthorized

API key is missing or incorrect

404

Not Found

Store or return data not found

500

Internal Server Error

An unexpected error occurred on Swap’s servers


Pagination

The Returns API supports pagination so you can retrieve results in smaller, manageable batches.

How it works

Use the page and items_per_page query parameters to control which results you get:

Parameter

Description

page

Page number to retrieve (starts at 1)

items_per_page

Number of returns per page (max: 50)

Example:

/v1/external/returns?store=store_123abc&from_date=2024-01-01T00:00:00.000Z&page=2&items_per_page=25

This will return the second page of results, with 25 returns on each page.

Pagination fields in the response

The response includes a pagination object with the following fields:

Field

Description

page

Current page number

items_per_page

Number of items per page

total_pages

Total number of pages

total_items

Total number of items

has_next_page

Whether more pages are available

has_previous_page

Whether a previous page exists

current_page_size

Number of items in the current page

items_in_remaining_pages

Items remaining in later pages

Best practices

  • Always include a from_date parameter to reduce the dataset size.

  • Start with page=1 and increment by 1 to loop through results.

  • Use has_next_page to keep paginating until all results are retrieved.

  • Use a lower items_per_page value (like 10 or 25) when testing.

Did this answer your question?