# BTCPay Server

BTCPay Server is a free, open-source, self-hosted Bitcoin payment processor that enables merchants to accept Bitcoin payments without intermediaries.

- **Category:** payment processing
- **Auth:** API_KEY
- **Tools:** 17
- **Triggers:** 0
- **Slug:** `BTCPAY_SERVER`
- **Version:** 20260211_00

## Tools

### Create Payment Request

**Slug:** `BTCPAY_SERVER_CREATE_PAYMENT_REQUEST`

Creates a new payment request in a BTCPay Server store. Payment requests are shareable pages where customers can create invoices to pay the requested amount. Unlike direct invoices, payment requests can be reused and allow customers to initiate payments themselves. Use this after obtaining a valid store ID from the create_store or get_store actions.

### Create Store

**Slug:** `BTCPAY_SERVER_CREATE_STORE`

Tool to create a new store in BTCPay Server. Use when you need to provision a new store before processing transactions.

### Create BTCPay Server User

**Slug:** `BTCPAY_SERVER_CREATE_USER`

Tool to create a new BTCPay Server user. Use when you need to register a new user programmatically as an administrator.

### Register a Webhook

**Slug:** `BTCPAY_SERVER_CREATE_WEBHOOK`

Registers a new webhook for a BTCPay store to receive real-time notifications when store events occur (e.g., invoice created, payment received, invoice settled). The webhook endpoint receives POST requests with event payloads signed using an HMAC secret for verification.

### Delete API Key

**Slug:** `BTCPAY_SERVER_DELETE_API_KEY`

Revoke a specific API key to immediately prevent its use for authentication. Use this tool when you need to disable an API key, such as when rotating credentials or when a key may have been compromised. The revocation takes effect immediately. Note: This action requires authentication with an API key that has user management permissions.

### Delete Payment Request

**Slug:** `BTCPAY_SERVER_DELETE_PAYMENT_REQUEST`

Deletes (archives) a specific payment request from a BTCPay Server store. Use this tool when you need to remove or archive an existing payment request. The payment request will be marked as archived and will no longer be active. This operation requires the 'btcpay.store.canmodifypaymentrequests' API permission. Note: This is a destructive operation - once deleted, the payment request cannot be restored.

### Cancel Store Payout

**Slug:** `BTCPAY_SERVER_DELETE_PAYOUT`

Cancels (deletes) a specific payout from a BTCPay Server store. Use this tool when you need to cancel a pending payout that is no longer needed. Only payouts in 'AwaitingApproval' or 'AwaitingPayment' state can be canceled. Payouts that have already been processed or completed cannot be canceled. Requires the 'btcpay.store.canmanagepayouts' permission on the API key.

### Get Current API Key

**Slug:** `BTCPAY_SERVER_GET_API_KEY`

Retrieve details about the currently authenticated API key. Returns the API key string, its label, and the list of permissions/scopes granted to the key. This is useful for verifying authentication and checking what operations the current API key is authorized to perform. Note: This endpoint requires valid API key authentication via the Authorization header (e.g., 'Authorization: token <api_key>') or X-APIKEY header.

### Get Current API Key

**Slug:** `BTCPAY_SERVER_GET_API_KEYS`

Retrieve information about the current API key. Returns details including the API key string, its label, and the permissions it has been granted. Use this to verify authentication is working and to check what permissions the current API key has. Note: BTCPay Server only provides access to the current API key, not all API keys associated with the user account.

### Get Payment Requests

**Slug:** `BTCPAY_SERVER_GET_PAYMENT_REQUESTS`

Tool to list all payment requests for a specific store. Use after confirming you have the store ID.

### Get BTCPay Server Info

**Slug:** `BTCPAY_SERVER_GET_SERVER_INFO`

Tool to retrieve information about the BTCPay Server instance. Use when needing server version, tor address, supported payment methods, and synchronization states.

### Get Store

**Slug:** `BTCPAY_SERVER_GET_STORE`

Retrieves complete configuration and settings for a specific BTCPay Server store by its ID. Use this tool when you need to: - Get current store settings and configuration - Check store properties like payment methods, currency, invoice expiration, etc. - Verify store exists and is accessible - Retrieve branding/display settings (logo, colors, checkout page settings) Returns comprehensive store data including payment settings, checkout configuration, and branding.

### Get BTCPay Server User

**Slug:** `BTCPAY_SERVER_GET_USER`

Retrieve information about a BTCPay Server user by ID or email. Use 'me' as the id_or_email parameter to get the currently authenticated user's profile. Alternatively, provide a specific user ID (UUID) or email address to retrieve another user's information. Requires API key with 'btcpay.user.canviewprofile' permission scope. Note: Viewing other users' profiles requires server administrator privileges.

### Get Store Webhook

**Slug:** `BTCPAY_SERVER_GET_WEBHOOK`

Retrieves detailed configuration of a specific webhook registered for a BTCPay store, including its callback URL, subscribed events, enabled status, and automatic redelivery settings.

### List Store Webhooks

**Slug:** `BTCPAY_SERVER_GET_WEBHOOKS`

Lists all webhooks registered for a BTCPay Server store. Use this to retrieve webhook configurations for management, auditing, or to find webhook IDs for update/delete operations.

### List Apps

**Slug:** `BTCPAY_SERVER_LIST_APPS`

Retrieve all apps (Point of Sale, Crowdfund, etc.) associated with a specific BTCPay Server store. Returns basic metadata for each app including its ID, name, type, creation timestamp, and archived status. Use this tool when you need to enumerate or discover apps configured within a store.

### Update BTCPay Server User

**Slug:** `BTCPAY_SERVER_UPDATE_USER`

Update the profile of the currently authenticated BTCPay Server user. Use this tool to modify user profile settings like display name, email, profile picture, or password. All fields are optional - only provide fields you want to change. Requires API key with 'btcpay.user.canmodifyprofile' permission scope. Note: Password changes require both currentPassword and newPassword to be provided. Email changes may require re-verification depending on server configuration.
