Btcpay server

Learn how to use Btcpay server with Composio

Overview

SLUG: BTCPAY_SERVER

Description

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

Authentication Details

generic_api_key
string

Connecting to Btcpay server

Create an auth config

Use the dashboard to create an auth config for the Btcpay server toolkit. This allows you to connect multiple Btcpay server accounts to Composio for agents to use.

1

Select App

Navigate to the [Btcpay server toolkit page](https://app.composio.dev/apps/Btcpay server) and click “Setup Integration”.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Integration”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using API Key

1from composio import Composio
2from composio.types import auth_scheme
3
4# Replace these with your actual values
5btcpay_server_auth_config_id = "ac_YOUR_BTCPAY_SERVER_CONFIG_ID" # Auth config ID created above
6user_id = "0000-0000-0000" # UUID from database/app
7
8composio = Composio()
9
10def authenticate_toolkit(user_id: str, auth_config_id: str):
11 # Replace this with a method to retrieve an API key from the user.
12 # Or supply your own.
13 user_api_key = input("[!] Enter API key")
14
15 connection_request = composio.connected_accounts.initiate(
16 user_id=user_id,
17 auth_config_id=auth_config_id,
18 config={"auth_scheme": "API_KEY", "val": user_api_key}
19 )
20
21 # API Key authentication is immediate - no redirect needed
22 print(f"Successfully connected Btcpay server for user {user_id}")
23 print(f"Connection status: {connection_request.status}")
24
25 return connection_request.id
26
27
28connection_id = authenticate_toolkit(user_id, btcpay_server_auth_config_id)
29
30# You can verify the connection using:
31connected_account = composio.connected_accounts.get(connection_id)
32print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the [Btcpay server toolkit’s playground](https://app.composio.dev/app/Btcpay server)

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["BTCPAY_SERVER"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Create Payment Request

Description

Tool to create a new payment request for a store. use after confirming store id.

Action Parameters

amount
numberRequired
currency
stringRequired
customAmount
boolean
description
string
email
string
expiryDate
string
metadata
object
notificationUrl
string
redirectUrl
string
storeId
stringRequired
title
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Store

Description

Tool to create a new store in btcpay server. use when you need to provision a new store before processing transactions.

Action Parameters

defaultCurrency
string
name
stringRequired
website
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create BTCPay Server User

Description

Tool to create a new btcpay server user. use when you need to register a new user programmatically as an administrator.

Action Parameters

email
stringRequired
isAdministrator
boolean
password
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Register a Webhook

Description

Tool to register a new webhook. use when you need to receive store event notifications.

Action Parameters

authorizedEvents
objectRequired
automaticRedelivery
booleanDefaults to True
enabled
booleanDefaults to True
secret
string
storeId
stringRequired
url
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete API Key

Description

Tool to revoke a specific api key. use when you need to remove an api key to immediately prevent its use. call after identifying the key to revoke.

Action Parameters

apikey
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete Payment Request

Description

Tool to delete a specific payment request. use when you need to archive/remove an existing payment request for a store.

Action Parameters

paymentRequestId
stringRequired
storeId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete Store Payout

Description

Tool to delete a specific payout from a store. use when you need to cancel a payout no longer needed.

Action Parameters

payoutId
stringRequired
storeId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get API Key

Description

Tool to retrieve the current api key. use after authentication to get api key details.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List API Keys

Description

Tool to list api keys. use when you need to retrieve all api keys associated with the authenticated user.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Payment Requests

Description

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

Action Parameters

store_id
stringRequired

Action Response

data
arrayRequired
error
string
successful
booleanRequired

Tool Name: Get BTCPay Server Info

Description

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

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Store

Description

Tool to retrieve information about a specific store. use when you need full store configuration.

Action Parameters

store_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get BTCPay Server User

Description

Tool to retrieve information about a specific user. use when you need to fetch profile data for a given user id or email.

Action Parameters

id_or_email
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Store Webhook

Description

Tool to retrieve details of a specific webhook. use when you need to verify the configuration or status of a webhook for a given store after its creation.

Action Parameters

storeId
stringRequired
webhookId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Store Webhooks

Description

Tool to list all webhooks registered for a store. use when you need to retrieve the configured webhooks for management or auditing.

Action Parameters

storeId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Apps

Description

Tool to list all apps associated with a specific store. use when retrieving basic metadata of every app in that store.

Action Parameters

storeId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update BTCPay Server User

Description

Tool to update current user information. use when you need to modify your authenticated user profile on btcpay server.

Action Parameters

currentPassword
string
email
string
imageUrl
string
name
string
newPassword
string

Action Response

data
objectRequired
error
string
successful
booleanRequired