Back to BTCPay Server in Google Sheets
SheetXAI logo
BTCPay Server logo
BTCPay Server · Google Sheets Guide

Provision Multiple BTCPay Server Stores From a Google Sheet

2026-05-13
5 min read

The Scenario

You're a developer setting up BTCPay Server infrastructure for a client with five sub-brands. Each sub-brand gets its own BTCPay store — different name, different default currency. Your Google Sheet already has everything: column A is the store name, column B is the default currency. You built the sheet during the planning call, the client signed off on it, and now you need to turn it into five actual BTCPay stores.

You also need the resulting store IDs back in the sheet, because you're handing this over to the client's ops team and they'll need those IDs to configure wallet connections.

The bad version:

  • You open the BTCPay Server admin panel, click "Create Store," and fill in the store name and currency for brand 1.
  • You switch back to the sheet to check brand 2's currency code, then go back to BTCPay and create store 2.
  • After five stores, you copy each store ID from the dashboard URL or settings page and paste it into column C — except two of the IDs are wrong because you created stores in a different order than the sheet.

Five stores is manageable by hand. But you're also the one responsible for the wallet setup, the API key provisioning, and the webhooks — and you'd rather not spend any brain on the part that your sheet already solved.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent that lives inside your Google Sheet. It reads the store configurations you've already defined and talks to BTCPay Server to create them, writing results back into the sheet in the same action. Open the sidebar.

Create a BTCPay Server store for every row in my Google Sheet using the store name in column A and default currency in column B, then write the new store ID back into column C

What You Get

  • A BTCPay store created for each row in your sheet, with the exact name and currency you specified.
  • The resulting store ID written into column C of the same row — aligned with the correct input row, not the creation order.
  • Any rows where store creation failed noted in the sidebar with the error reason, so you know exactly which ones need a fix.
  • All five stores provisioned in one action rather than five separate dashboard sessions.

What If the Data Is Not Quite Ready

Currency codes are inconsistent across rows

Your sheet has "USD," "usd," and "US Dollar" in column B from different contributors on the planning call.

Create BTCPay stores from my sheet using column A for the store name and column B for the default currency — normalize all currency values to uppercase ISO 4217 codes before submitting, flag any in column D that you couldn't resolve, and write store IDs into column C for the ones that succeed

You also need the server URL written back alongside the store ID

The client's ops team needs both the store ID and the BTCPay server URL in the handoff sheet.

Create a BTCPay Server store for each row in my sheet using columns A and B, then write the new store ID into column C and the server base URL into column D for each successfully created store

Store names need prefixes that aren't in the sheet

The client wants all store names to start with "ACME-" but the sheet just has the sub-brand names without the prefix.

Create BTCPay stores from my sheet — prepend "ACME-" to each store name in column A before submitting, use column B for default currency, and write the resulting store IDs into column C

Full provisioning pipeline in one shot

In my sheet, normalize column B currencies to uppercase ISO codes, skip any row where column A is blank, create a BTCPay store for each valid row with the prefixed name "CLIENT-" + column A and the currency from column B, write the store ID into column C and the creation timestamp into column D, and flag any failures with the error message in column E

One prompt covers the normalization, the filtering, the provisioning, and the writeback — so the sheet is the complete record by the time you hand it off.

Try It

Get the 7-day free trial of SheetXAI and open a Google Sheet with your BTCPay store configuration rows, then ask SheetXAI to provision them and write the IDs back. You can also see how to bulk-create payment requests from invoice data or start with the BTCPay Server hub overview.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more