# Accept crypto on Shopify without payments-partner approval

> Shopify only lets approved payment providers add themselves to checkout. Payaries's connector doesn't need that: the customer pays on Payaries's hosted page, and the connector marks the Shopify order paid once the payment is confirmed on-chain. This is how it works, what you set up, and where it stops.

Updated 2026-10-10 · Payaries · https://www.payaries.com/guides/accept-crypto-on-shopify

## Where this stands

> **Early access.** The connector is built and tested against simulated Shopify and Payaries responses, but it has not yet been run against a live Shopify store. Treat the first weeks as a pilot: use a Shopify development store, a small payment, and read every order tag. To get access, write to sales@payaries.com.

## Two ways for customers to pay

Use either, or both. They differ in what the customer sees and in whether an unpaid order exists in Shopify.

|  | Manual payment method | Theme button |
|---|---|---|
| Customer sees | Shopify's normal checkout (address, shipping, discounts, tax) with a payment method you name, such as "Pay with crypto". After ordering they get a link to the pay page | A "Pay with crypto" button on your cart page that goes straight to the pay page |
| Order in Shopify | Created immediately, as payment pending | Only after the payment is confirmed. Until then it is an unused draft order |
| Unpaid orders | Yes, until paid or expired | No |
| Shipping, discount codes, address-based tax | All of Shopify's | None. Digital goods, services and all-inclusive prices only |

Pick the manual payment method for physical goods or anything with shipping and discount codes. Pick the button for a simple, all-inclusive digital product.

## Two ways to connect your store

- **The Payaries Shopify app.** You install it from a custom-distribution link. Custom distribution needs no Shopify review, and the Partner account it requires belongs to whoever runs the connector, not to you.
- **A custom-app token, no Partner account at all.** In your own store admin go to *Settings, Apps and sales channels, Develop apps* and create an app. Grant `read_orders` and `write_orders` (and `read_draft_orders` and `write_draft_orders` if you use the button), install it, then paste its Admin API token and API secret key into the connector's connect page together with your Payaries API key, API secret and webhook secret.

On the token route the connector checks that the token really belongs to the store you named, and that Payaries accepts your key, before it saves anything. A token-connected store has no order-confirmation page extension, so customers get their pay link by email, in your payment method's instructions, and on a "find my payment" page that asks for the order number and the email on the order.

## What you set up in Payaries

1. Submit your [business profile](https://www.payaries.com/guides/crypto-payment-api-quickstart), create an API key and create a webhook secret.
2. Set your **webhook URL** to the address the connector gives you for your store.
3. Add the connector's host to your **redirect domains** (Settings, Invoices) so customers are sent back to your store after paying. Without it they simply stay on the pay page; the order is still marked paid.
4. Choose **one coin and chain** for the store in the connector's settings, then save and run its connection test.
5. Keep your **invoice lifetime** long enough to pay. When an invoice expires unpaid, the connector cancels the Shopify order (or deletes the draft) and restocks.
6. For the manual method, add a payment method whose name contains the text you configure (default `crypto`). For the button, add the connector's snippet to your cart template and enable it in settings.

## How an order is paid

1. The customer chooses crypto. With the manual method Shopify creates the order as payment pending; with the button the connector creates a draft order so Shopify prices the cart.
2. The connector creates **one** Payaries invoice for Shopify's total, in your store currency, and sends the customer to the [hosted pay page](https://www.payaries.com/guides/hosted-crypto-checkout).
3. The customer pays on-chain. Payaries sends a signed webhook to the connector.
4. At `confirmed`, when the money is on-chain with the required confirmations and credited to you, the connector marks the order paid and tags it `payaries-paid`. For the button it completes the draft into a paid order.
5. The customer is returned to your store. The connector does not trust that return: it asks Payaries what the invoice is now, and acts on that.

The order is marked paid at `confirmed`, not at the later `settled` sweep, which can lag. Prices never come from the browser: Shopify builds the total and the invoice is for Shopify's number.

## The order tags to watch

| Tag | Meaning | Do |
|---|---|---|
| `payaries-pending` | Invoice created, awaiting payment | Nothing |
| `payaries-paid` | Payment confirmed and the order is paid | **Fulfil it** |
| `payaries-underpaid` | The customer paid less than due | Wait for a top-up, or contact them |
| `payaries-expired` | The invoice expired unpaid; the order was cancelled or the draft deleted | Nothing |
| `payaries-error` | Payaries refused to create the invoice: unsupported currency, account not onboarded, chain or asset disabled | Fix the cause |
| `payaries-review` | A person must look: money arrived but the order was cancelled, a partial payment then expiry, or a failure after payment | Investigate in the Payaries dashboard |

Orders tagged `payaries-review` are also listed under "Needs your attention" in the connector's settings, with the reason. The connector never cancels or deletes an order that has received any money, and a payment that arrives after an order was cancelled goes to review rather than being lost. See [underpaid and late payments](https://www.payaries.com/guides/handle-underpaid-and-late-crypto-payments).

## What the connector will not do

- **Mark an order paid on a claim.** Only a signature-verified Payaries webhook, or the connector reading the invoice from Payaries itself, can do that. A forged return URL changes nothing. This is the same rule as in [verifying webhooks](https://www.payaries.com/guides/verify-crypto-webhook-signatures).
- **Create two invoices for one order.** Payaries dedupes on the order reference, so a webhook, a retry and a customer refresh can race safely.
- **Keep customer personal data.** The email is used once, to send the pay link, and isn't stored. It keeps the order number, amount, payment state and the order-status link.

## Limits

- **One coin and chain per store.** The customer can't choose.
- **Priced in your store currency**, not the customer's presentment currency.
- **The theme button has no shipping, discount codes or address-based tax.** Use the manual payment method if you need them.
- **Refunds are manual.** A Shopify refund doesn't move crypto. [Withdraw](https://www.payaries.com/guides/crypto-withdrawals-api) from Payaries, then refund in Shopify by hand.
- **It is early access.** Run a test order that you pay, and another that you let expire, before real customers.

## Questions

**Do I need Shopify Payments-partner approval to accept crypto this way?**
No. Customers pay on Payaries's hosted page rather than inside Shopify's payment step, and the connector marks the Shopify order paid when the payment confirms. Connecting with a custom-app token from your own store admin needs no Partner account either.

**When is my Shopify order marked as paid?**
When Payaries reports the invoice as confirmed, meaning the payment is on-chain with the required confirmations and credited to you, learned from a signed webhook or by the connector reading the invoice. The customer returning to your store is never what marks it paid.

**Can customers use shipping rates and discount codes?**
With the manual payment method, yes: it is Shopify's normal checkout. The cart-page button builds the order from items only, so it supports no shipping, discount codes or address-based tax.

**How do I refund a crypto order on Shopify?**
By hand. A Shopify refund doesn't move crypto, so withdraw the amount from Payaries to the customer and then record the refund in Shopify.

**Is the Shopify connector production-ready?**
It is in early access. It has been tested against simulated Shopify and Payaries responses but not yet against a live store, so pilot it on a development store with a small payment first.

## Try it

Pilot the Shopify connector: [Payaries — www.payaries.com](https://www.payaries.com/signup). Payaries is a multi-chain crypto payment gateway — https://www.payaries.com

## Keep reading

- https://www.payaries.com/guides/hosted-crypto-checkout — Hosted crypto checkout: send the customer, get them back
- https://www.payaries.com/guides/verify-crypto-webhook-signatures — How to verify crypto payment webhook signatures
- https://www.payaries.com/guides/handle-underpaid-and-late-crypto-payments — Handling underpaid, late and unmatched crypto payments
- https://www.payaries.com/guides/crypto-payment-api-quickstart — Crypto payment API quickstart: from signup to your first payout
