---
title: "Connect a store with credentials"
method: PUT
path: "/payments/shopify"
tags: ["Payments"]
---

# Connect a store with credentials

`PUT /payments/shopify`

## Request

- Base URL: `https://osis.co/api/v1/comms`
- URL: `https://osis.co/api/v1/comms/payments/shopify`
- Auth: HTTP bearer

Needs an owner or admin, or a key with comms_payments_manage. Only for workspaces Comms set up before open signup. Everyone else gets 409 shopify_install_required and should open https://apps.shopify.com/comms-by-osis. Use a public Storefront token and the matching webhook signing secret. The Payments API is off until an owner or admin accepts the merchant terms. Until then, this returns 403 payments_api_disabled.

## Request body

- object
  - `shop_domain` string, required
  - `storefront_access_token` string, required
  - `webhook_secret` string, required

## Response `200`

Store connected. Your credentials are never sent back.

- object
  - `shop_domain` string, required
  - `name` string, required

## Other responses

- `400`: The domain is wrong or credentials are missing.
- `401`: API key is missing or wrong.
- `403`: payments_api_disabled: accept the merchant terms to turn on the Payments API. merchant_terms_update_required: accept the new terms version. payments_suspended: Comms suspended payments for your workspace. You also get 403 if your key is missing a scope, or with payment_admin_required.
- `409`: shopify_install_required: install the Comms app instead. shopify_shop_change_requires_migration: switching to a different store needs a migration. Contact Comms support.

---

[API](https://skmtc.dev/osis/apis/comms-api.md) · [All operations](https://skmtc.dev/osis/apis/comms-api/llms.txt) · [OpenAPI document](https://skmtc.dev/osis/apis/comms-api/revisions/59a4c0ba8936?raw)
