> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sourcemedium.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ReturnGO - Integration Instructions

> Connect ReturnGO to SourceMedium with your ReturnGO API key and shop name.

## Follow this integration guide to connect your ReturnGO data to SourceMedium.

ReturnGO is a returns, exchanges, and RMA platform for ecommerce brands. SourceMedium syncs your ReturnGO return events so return rates, reasons, and refund economics can be analyzed alongside order and customer history.

### What you need

* A ReturnGO account with access to **Settings → Integrations → API**
* Your ReturnGO **API key**
* Your **shop name**, the store identifier ReturnGO uses to scope API calls

<Note>
  ReturnGO authenticates with both values, not just the key. A ReturnGO API key is scoped to the **account**, and ReturnGO's own docs note that the same key works for every store on that account, so the key alone cannot say which store to read. The shop name is part of the credential rather than optional configuration.
</Note>

### How to connect

SourceMedium connects to ReturnGO with a ReturnGO API key. You create the key in ReturnGO, then enter it in SourceMedium along with your shop name.

<Info>
  You connect data sources yourself in SourceMedium. Sign in to your [SourceMedium account](https://urchin.sourcemedium.com), open your store, then in the **Connected data sources** section click **Connect a data source** and choose the platform. You need an **Editor** or **Admin** role on the store. If you have view-only access, ask an admin or editor on your team to connect it.

  Once it is connected, [what happens next](/docs/data-inputs/platform-integration-instructions/after-you-connect) covers first-sync timing and what each connection status means.
</Info>

<Steps>
  <Step title="Create an API key in ReturnGO">
    In ReturnGO, go to **Settings → Integrations → API** and add an API key. Copy it before leaving the page. See ReturnGO's guide: [ReturnGO API Overview](https://support.returngo.ai/returngo-api-overview).
  </Step>

  <Step title="Find your shop name">
    This is the store identifier ReturnGO uses to scope API calls, normally your permanent `.myshopify.com` domain (for example, `your-store.myshopify.com`). Do not include `https://`.

    <Tip>
      In the ReturnGO dashboard, click the copy icon next to your store name at the top of the page to copy the exact value. ReturnGO has no endpoint that lists the stores an account can reach, so this value cannot be looked up for you.
    </Tip>

    If your account uses multiple return portals, ReturnGO accepts a `shopname@portalname` form (for example, `your-store.myshopify.com@Warranty_Portal`). Use it when you need a specific portal. Given only the shop name, ReturnGO reads the first portal on the account.
  </Step>

  <Step title="Add your ReturnGO details in SourceMedium">
    Find **ReturnGO** in the connector picker and click **Connect**, then enter:

    * **API key**: the key you just created
    * **Shop name**: the value from the previous step

    Click **Connect**.
  </Step>

  <Step title="Confirm it is connected">
    SourceMedium checks the details and the connection shows **Connected**. If they are rejected, see the troubleshooting notes below before rotating the key.
  </Step>
</Steps>

<Note>
  SourceMedium only ever reads from your connected platforms. It does not create, change, or delete anything, so create the key with **read-only** access wherever the platform offers it. Treat it like a password: keep it confidential and avoid sharing it over email or in spreadsheets. If the credential is rotated or revoked, follow this guide's connection method to update SourceMedium.
</Note>

### What data syncs

SourceMedium syncs returns at the return-event grain, along with their line items and shipments, plus ReturnGO transactions. Data can include return status and resolution, return reasons, refund, store credit, and exchange economics, and return timing.

Returns surface in [`fct_returns`](/docs/data-activation/data-tables/sm_transformed_v2/fct_returns), the vendor-agnostic returns table shared with Loop Returns and native Shopify returns.

<Note>
  SourceMedium keeps one returns source per store to avoid double-counting. When ReturnGO has landed returns for a store, native Shopify returns are excluded. Use `source_system` in `fct_returns` to see which source a row came from.
</Note>

### What to expect on the first sync

<Warning>
  **ReturnGO's API allows 2,000 calls per day, shared across every store on your ReturnGO account.** Reading a return's detail costs one call, so a store with a large return history cannot be loaded in a single run.
</Warning>

SourceMedium fills history in over successive scheduled runs rather than one bulk load, keeping well inside that daily budget. A store with roughly 1,800 historical returns typically takes two to three days to catch up. Each run resumes exactly where the last one stopped.

Because of this, **do not compare row counts to your ReturnGO totals during the first few days**. The useful signal is that the numbers keep climbing between runs. Once caught up, only changed returns are read, and the daily cost drops sharply.

If the daily budget is exhausted, SourceMedium pauses until ReturnGO's limit resets and resumes automatically. That is expected behavior, not a failed sync.

### Troubleshooting

* **Credentials rejected when connecting?** Check the shop name before the key. The most common cause is a key that is valid but not entitled to the store named in the shop name field. Rotating or recreating the API key does not fix that, because the key is not the problem. Confirm the shop name matches a store on the same ReturnGO account, with no `https://` prefix or trailing slash.
* **Returns missing for one portal?** A shop name without a portal reads the first portal on the account. Use the `shopname@portalname` form to target a specific one.
* **Sync looks stalled partway through history?** See the note above. Early catch-up is paced against ReturnGO's daily limit by design.
* **Counts look low against the ReturnGO dashboard?** ReturnGO restates returns as they progress, so recently opened returns can still be changing state. Compare on a settled date range.
* **Another store on the same ReturnGO account syncing slowly?** All stores on one ReturnGO account share the same 2,000 calls per day. Connecting several at once makes each take longer to catch up.
