# Shopify orders paid by invoice

> Take card payments on Shopify today: a manual payment method, your store's own app, and Anytime Capital invoices that mark orders paid in Shopify.

Source: https://anytime-capital.com/docs/shopify-order-invoices · Markdown: https://anytime-capital.com/docs/shopify-order-invoices.md · All docs: https://anytime-capital.com/docs/llms-full.txt

> **Until our Shopify app is approved:** Our [Shopify payments app](https://anytime-capital.com/docs/shopify.md) puts Anytime Capital right in Shopify's checkout once Shopify approves it. Until then, this gets your Shopify orders paid through Anytime Capital today, with no app to install from us.

You add a manual payment method in Shopify (for example "Pay by card — Anytime Capital") and connect your store to Anytime Capital with your own Shopify app. Then:

1. Your customer checks out on Shopify and chooses your Anytime Capital payment method. Shopify creates the order, waiting for payment.
2. Within a minute we email them an invoice from Anytime Capital, with your logo, for exactly what Shopify charged: items, discounts, shipping and tax.
3. They pay by card, Apple Pay or Google Pay on our secure checkout. We record a payment on the Shopify order, so it shows as Paid and you can fulfil it as usual.
4. Refund from Anytime Capital → Orders: the refund is recorded on the Shopify order too.
5. Cancel an unpaid order in Shopify and we void its invoice, so it can't be paid.

## Before you start

- Card payments switched on for your Anytime Capital business, and owner or admin access to it.
- Owner access to the Shopify store (or a staff account that can manage apps and payment settings).
- A store that sells in US dollars. Orders in other currencies aren't billed; keep another payment method for them.
- Orders from $1.00 to $100,000.00.
- Sales tax off in Anytime Capital (**Settings → Payments**): Shopify already adds tax to the order total.

## 1. Add the payment method in Shopify

1. In your Shopify admin, go to Settings → Payments → Manual payment methods and choose Create custom payment method.
2. Name it what customers should see at checkout, for example "Pay by card — Anytime Capital". You'll type the same name in Anytime Capital.
3. Under Payment instructions, write something like: "We'll email you a secure payment link from Anytime Capital within a few minutes. Your order ships once it's paid."
4. Activate it. Keep your other payment methods for anything we can't bill (orders in other currencies, say).

## 2. Give us access with your store's own app

We need an app on your store with the Admin API scopes `read_orders` and `write_orders`: reading your new and cancelled orders, and recording payments and refunds on them. Shopify stopped creating new custom apps in the Shopify admin on January 1, 2026, so new apps are made in Shopify's Dev Dashboard; a custom app you already made in the admin works too.

### A Dev Dashboard app

1. In your Shopify admin, go to Settings → Apps → Develop apps and open the Dev Dashboard (dev.shopify.com). Create an app, for example "Anytime Capital orders".
2. Create a version of the app with the Admin API scopes read_orders and write_orders, and release it.
3. Install the app on your store from the Dev Dashboard.
4. If Shopify asks which protected customer data the app uses, allow the customer's name and email: without them, orders arrive with no email to send the invoice to.
5. Open the app's Settings and copy the Client ID and Client secret.

We use the client ID and secret to ask Shopify for a short-lived token (24 hours) whenever we need one. Shopify only grants it to an app made by the organization that owns the store.

### A custom app made in the Shopify admin

1. In your Shopify admin, go to Settings → Apps → Develop apps and open the custom app you made there.
2. Under Configuration, give it the Admin API scopes read_orders and write_orders, save, and install (or reinstall) it.
3. Under API credentials, copy the Admin API access token (Shopify shows it once) and the API secret key.

## 3. Connect the store

1. In Anytime Capital, go to Checkout tools → Shopify store (owners and admins).
2. Enter your store's myshopify.com address, the payment method's exact name and your app's credentials, then choose Connect store.
3. We check the credentials with Shopify (the two scopes, and a store that sells in US dollars), keep them encrypted, and subscribe to your store's new and cancelled orders.

## 4. Test it

1. Switch your dashboard to test mode and connect the store there first.
2. Place an order on your store with the new payment method. The invoice goes to your team, marked [TEST], instead of the customer.
3. Pay it with the test card 4242 4242 4242 4242, any future expiry and any three-digit code. The order turns Paid in Shopify within a minute or two.
4. Cancel that test order in Shopify, disconnect the store in test mode, then switch back and connect it to your live business.

## What the invoice says

The invoice is the order exactly as Shopify priced it, never recalculated. It's due in three days, with your usual invoice reminders, and its note names the order ("Order #1001 from your store").

| On the Shopify order | On the invoice |
| --- | --- |
| Each item, its variant, quantity and unit price | One line per item (free items are named in the note) |
| Discounts on items and the order | The invoice's discount |
| Each shipping line, after shipping discounts | A shipping line |
| Tax lines (when prices don't already include tax) | One line per tax, with its rate |
| Tax included in prices | A note saying how much tax the prices include |
| Tip, duties and import taxes | Their own lines |
| The customer's name, email and billing address | Who the invoice is for |

The lines must add up to exactly what the order still owes. If they don't (a gift card paid part of it, say), the order isn't billed and you're told why.

## Orders we don't bill

Only orders placed with your connected payment method and still waiting for payment are ours. Anything we can't bill shows as **Not billed** on **Checkout tools → Shopify store** with the reason, and owners and admins get a **Store order not billed** alert. Collect those another way.

| Reason | What to do |
| --- | --- |
| The order isn't in US dollars | Collect it with another payment method. |
| The amount is outside $1.00 to $100,000.00 | Collect it another way, or split the order. |
| Shopify sent no customer email | Give your Dev Dashboard app access to the customer's email (protected customer data), or send an invoice yourself. |
| The total can't be itemized (a gift card, say) | Send an invoice or payment link for what's owed. |
| Card payments are off, or sales tax is on in Anytime Capital | Fix the setting, then choose **Try again** on the order. |

## When the customer pays

We read the order from Shopify again, and if it still owes exactly what the customer paid and wasn't cancelled, we record the payment on it, so Shopify shows it as Paid. If the order changed or was cancelled in the meantime, nothing is written to Shopify and owners and admins get a **Store payment needs attention** alert to sort it out. Invoices you mark paid yourself (cash or a bank transfer) are picked up within a few minutes too.

## Refunds and cancellations

- Refund from **Orders** in Anytime Capital, as for any payment. The refund is recorded on the Shopify order against the payment we recorded; Shopify moves no money for a manual payment method, so the customer is refunded once, by us.
- Don't refund these orders in Shopify: Shopify would only record it, and no money would go back to the customer.
- Cancel an unpaid order in Shopify and we void its invoice, so it can't be paid.
- Cancel an order that was already paid and we don't refund it for you: owners and admins are told, and you refund from **Orders** if you meant to.

## Security and your data

- Your app's credentials are encrypted at rest, never shown again, and deleted when you disconnect.
- We subscribe to two order notifications at an address only your connection knows, and ignore any notification whose signature doesn't match your app's secret.
- We keep an order's number, total and customer email, and the invoice itself; nothing else from your store.
- Disconnect any time from **Checkout tools → Shopify store**: we remove our notifications from Shopify and delete the credentials. Invoices already sent can still be paid. Delete the app in Shopify too if you no longer need it.

## Shopify API details

For developers and AI assistants. Admin API version `2026-10`, GraphQL at `https://{store}.myshopify.com/admin/api/2026-10/graphql.json`.

| When | Call |
| --- | --- |
| Getting a token (Dev Dashboard app) | `POST /admin/oauth/access_token` with `grant_type=client_credentials` |
| Connecting | `shop { name currencyCode }`, `currentAppInstallation { accessScopes }`, then `webhookSubscriptionCreate` for `ORDERS_CREATE` and `ORDERS_CANCELLED` |
| An order arrives | The `orders/create` webhook, checked with `X-Shopify-Hmac-Sha256` (base64 HMAC-SHA256 of the body, keyed with your app's secret) |
| The invoice is paid | `order { displayFinancialStatus cancelledAt totalOutstandingSet }`, then `orderMarkAsPaid` |
| A refund | `refundCreate` with a `REFUND` transaction against the order's sale, sent with `@idempotent` |
| Disconnecting | `webhookSubscriptionDelete` |

- [Shopify payments app](https://anytime-capital.com/docs/shopify.md): Anytime Capital in Shopify's own checkout, once Shopify approves it.
- [Invoices](https://anytime-capital.com/docs/invoices.md): How invoices, reminders and payments work.
- [Refunds](https://anytime-capital.com/docs/refunds.md): Refunding a payment.
- [Test mode](https://anytime-capital.com/docs/test-mode.md): Test cards and test data.

---

Anytime Capital is a fintech company, not a bank. Payment processing, banking and payout services are provided by Anytime Capital's licensed partners. Rates shown are for US card payments; international cards, currency conversion and disputes may carry additional fees shown in your dashboard before you accept a payment.
