Guide · Shopify · Early access

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 · 5 min read

01Where this stands

02Two 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 methodTheme button
Customer seesShopify'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 pageA "Pay with crypto" button on your cart page that goes straight to the pay page
Order in ShopifyCreated immediately, as payment pendingOnly after the payment is confirmed. Until then it is an unused draft order
Unpaid ordersYes, until paid or expiredNo
Shipping, discount codes, address-based taxAll of Shopify'sNone. 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.

03Two 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.

04What you set up in Payaries

  1. 01Submit your business profile, create an API key and create a webhook secret.
  2. 02Set your webhook URL to the address the connector gives you for your store.
  3. 03Add 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. 04Choose one coin and chain for the store in the connector's settings, then save and run its connection test.
  5. 05Keep 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. 06For 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.

05How an order is paid

  1. 01The 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. 02The connector creates one Payaries invoice for Shopify's total, in your store currency, and sends the customer to the hosted pay page.
  3. 03The customer pays on-chain. Payaries sends a signed webhook to the connector.
  4. 04At 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. 05The 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.

06The order tags to watch

TagMeaningDo
payaries-pendingInvoice created, awaiting paymentNothing
payaries-paidPayment confirmed and the order is paidFulfil it
payaries-underpaidThe customer paid less than dueWait for a top-up, or contact them
payaries-expiredThe invoice expired unpaid; the order was cancelled or the draft deletedNothing
payaries-errorPayaries refused to create the invoice: unsupported currency, account not onboarded, chain or asset disabledFix the cause
payaries-reviewA person must look: money arrived but the order was cancelled, a partial payment then expiry, or a failure after paymentInvestigate 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.

07What 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.
  • 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.

08Limits

  • 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 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.

Next

Pilot the Shopify connector

Test keys work immediately, with no approval step. Payaries runs on real mainnet networks, so use a small real payment to test.