The Scenario
You're a freelancer who invoices in Bitcoin. You've got 20 client rows in an Excel workbook — column A is the client name, column B is the amount owed, column C is the currency. You built this workbook last quarter to track outstanding balances, and it's been your source of truth ever since.
Now it's billing day, and BTCPay Server is where payment links actually get generated.
The bad version:
- You open the BTCPay dashboard, click "Create Payment Request," and manually type the client name, amount, and currency for client 1.
- You switch back to the workbook to double-check client 2's amount, then switch back to BTCPay and do it again.
- After 20 requests, you paste each payment URL back into the workbook — except you lose track of which URL goes with which client halfway through and have to cross-reference everything from scratch.
Twenty payment requests is twenty separate round-trips between two browser windows, and every context switch is a chance to enter the wrong number against the wrong client. You're charging people for work you already did — this part shouldn't require an hour of your Tuesday.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Excel workbook. It reads the data in your workbook and talks to BTCPay Server for you — no dashboard-switching, no manual field entry. Open the SheetXAI sidebar and tell it what to do.
Read all outstanding invoices from my Excel sheet and create a BTCPay payment request for each client with the amount in column B and a memo from column D, then write the payment request URL back into column E
What You Get
- A BTCPay payment request created for each client row in your workbook.
- The resulting shareable payment URL written into column E of the same row.
- Any rows with missing or blank amounts flagged in the sidebar so you can fix them before sending.
- All 20 requests created in one action — not 20 separate dashboard trips.
What If the Data Is Not Quite Ready
Currency values are mixed-format (USD, usd, $, dollars)
BTCPay expects a consistent currency code. If column C has a mix of "USD," "usd," and "$," the API will reject some rows.
Create BTCPay payment requests for every row in my workbook — normalize the currency in column C to uppercase 3-letter codes (USD, EUR, GBP, BTC) before submitting, and flag any values you couldn't resolve in column F
Some rows are missing amounts
If column B is blank for a few clients, you don't want those rows silently skipped or submitted as $0 requests.
Create BTCPay payment requests from my workbook using columns A, B, and C — skip any row where column B is empty, and log skipped rows with a reason in column G
Client names and amounts are split across two worksheets
Your workbook has the client list on the "Clients" worksheet and the balances on the "Invoices" worksheet, joined by client ID.
Create BTCPay payment requests by joining the "Clients" worksheet (column A = client ID, column B = client name) with the "Invoices" worksheet (column A = client ID, column C = amount, column D = currency) — use the client name as the payment request title and write the result URL into column E of the Invoices worksheet
Full pipeline: normalize, filter, create, and log in one shot
In my workbook, normalize column C currencies to uppercase ISO codes, skip any row where column B is blank or zero, create a BTCPay payment request for each remaining row using column A as the title and column D as the memo, write the payment URL into column E, and put a timestamp in column F for each successfully created request
The pattern: cleaning the data and creating the requests is one instruction, not two separate passes.
Try It
Get the 7-day free trial of SheetXAI and open an Excel workbook with your outstanding client invoice rows, then ask SheetXAI to turn them into BTCPay payment requests and write the links back. You can also see how to export payment request statuses for reconciliation or read the BTCPay Server hub overview for all four connection methods.
