btcpayserver/BTCPayServer/wwwroot/swagger/v1/swagger.template.stores-wallet.on-chain.json
2023-10-10 14:15:07 +09:00

931 lines
37 KiB
JSON

{
"paths": {
"/api/v1/stores/{storeId}/payment-methods/onchain/{cryptoCode}/wallet": {
"get": {
"tags": [
"Store Wallet (On Chain)"
],
"summary": "Get store on-chain wallet overview",
"parameters": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"name": "cryptoCode",
"in": "path",
"required": true,
"description": "The crypto code of the payment method to fetch",
"schema": {
"type": "string"
},
"example": "BTC"
}
],
"description": "View information about the specified wallet",
"operationId": "StoreOnChainWallets_ShowOnChainWalletOverview",
"responses": {
"200": {
"description": "specified wallet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OnChainWalletOverviewData"
}
}
}
},
"403": {
"description": "If you are authenticated but forbidden to view the specified store"
},
"404": {
"description": "The key is not found for this store/wallet"
}
},
"security": [
{
"API_Key": [
"btcpay.store.canmodifystoresettings"
],
"Basic": []
}
]
}
},
"/api/v1/stores/{storeId}/payment-methods/onchain/{cryptoCode}/wallet/feerate": {
"get": {
"tags": [
"Store Wallet (On Chain)"
],
"summary": "Get store on-chain wallet fee rate",
"parameters": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"name": "cryptoCode",
"in": "path",
"required": true,
"description": "The crypto code of the payment method to fetch",
"schema": {
"type": "string"
},
"example": "BTC"
},
{
"name": "blockTarget",
"in": "query",
"required": false,
"description": "The number of blocks away you are willing to target for confirmation. Defaults to the wallet's configured `RecommendedFeeBlockTarget`",
"schema": {
"type": "number",
"minimum": 1
}
}
],
"description": "Get wallet onchain fee rate",
"operationId": "StoreOnChainWallets_GetOnChainFeeRate",
"responses": {
"200": {
"description": "fee rate",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OnChainWalletFeeRateData"
}
}
}
},
"403": {
"description": "If you are authenticated but forbidden to view the specified store"
},
"404": {
"description": "The key is not found for this store/wallet"
}
},
"security": [
{
"API_Key": [
"btcpay.store.canviewstoresettings"
],
"Basic": []
}
]
}
},
"/api/v1/stores/{storeId}/payment-methods/onchain/{cryptoCode}/wallet/address": {
"get": {
"tags": [
"Store Wallet (On Chain)"
],
"summary": "Get store on-chain wallet address",
"parameters": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"name": "cryptoCode",
"in": "path",
"required": true,
"description": "The crypto code of the payment method to fetch",
"schema": {
"type": "string"
},
"example": "BTC"
},
{
"name": "forceGenerate",
"in": "query",
"required": false,
"description": "Whether to generate a new address for this request even if the previous one was not used",
"schema": {
"type": "boolean",
"default": false
}
}
],
"description": "Get or generate address for wallet",
"operationId": "StoreOnChainWallets_GetOnChainWalletReceiveAddress",
"responses": {
"200": {
"description": "reserved address",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OnChainWalletAddressData"
}
}
}
},
"403": {
"description": "If you are authenticated but forbidden to view the specified store"
},
"404": {
"description": "The key is not found for this store/wallet"
}
},
"security": [
{
"API_Key": [
"btcpay.store.canmodifystoresettings"
],
"Basic": []
}
]
},
"delete": {
"tags": [
"Store Wallet (On Chain)"
],
"summary": "UnReserve last store on-chain wallet address",
"parameters": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"name": "cryptoCode",
"in": "path",
"required": true,
"description": "The crypto code of the payment method to fetch",
"schema": {
"type": "string"
},
"example": "BTC"
}
],
"description": "UnReserve address",
"operationId": "StoreOnChainWallets_UnReserveOnChainWalletReceiveAddress",
"responses": {
"200": {
"description": "address unreserved"
},
"403": {
"description": "If you are authenticated but forbidden to view the specified store"
},
"404": {
"description": "The key is not found for this store/wallet or there was no address reserved"
}
},
"security": [
{
"API_Key": [
"btcpay.store.canmodifystoresettings"
],
"Basic": []
}
]
}
},
"/api/v1/stores/{storeId}/payment-methods/onchain/{cryptoCode}/wallet/transactions": {
"get": {
"tags": [
"Store Wallet (On Chain)"
],
"summary": "Get store on-chain wallet transactions",
"parameters": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"name": "cryptoCode",
"in": "path",
"required": true,
"description": "The crypto code of the wallet to fetch",
"schema": {
"type": "string"
},
"example": "BTC"
},
{
"name": "statusFilter",
"in": "query",
"required": false,
"description": "Statuses to filter the transactions with",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TransactionStatus"
}
}
},
{
"name": "labelFilter",
"in": "query",
"required": false,
"description": "Transaction label to filter by",
"schema": {
"type": "string"
},
"example": "invoice"
},
{
"name": "skip",
"in": "query",
"required": false,
"description": "Number of transactions to skip from the start",
"schema": {
"type": "integer"
}
},
{
"name": "limit",
"in": "query",
"required": false,
"description": "Maximum number of transactions to return",
"schema": {
"type": "integer"
}
}
],
"description": "Get store on-chain wallet transactions",
"operationId": "StoreOnChainWallets_ShowOnChainWalletTransactions",
"responses": {
"200": {
"description": "transactions list",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OnChainWalletTransactionData"
}
}
}
}
},
"403": {
"description": "If you are authenticated but forbidden to view the specified store"
},
"404": {
"description": "The key is not found for this store/wallet"
},
"503": {
"description": "You need to allow non-admins to use hotwallets for their stores (in /server/policies)"
}
},
"security": [
{
"API_Key": [
"btcpay.store.canmodifystoresettings"
],
"Basic": []
}
]
},
"post": {
"tags": [
"Store Wallet (On Chain)"
],
"summary": "Create store on-chain wallet transaction",
"parameters": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"name": "cryptoCode",
"in": "path",
"required": true,
"description": "The crypto code of the wallet",
"schema": {
"type": "string"
},
"example": "BTC"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateOnChainTransactionRequest"
}
}
}
},
"description": "Create store on-chain wallet transaction",
"operationId": "StoreOnChainWallets_CreateOnChainTransaction",
"responses": {
"200": {
"description": "the tx",
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"description": "The unbroadcasted transaction in hex format",
"type": "string"
},
{
"$ref": "#/components/schemas/OnChainWalletTransactionData"
}
]
}
}
}
},
"403": {
"description": "If you are authenticated but forbidden to view the specified store"
},
"404": {
"description": "The key is not found for this store/wallet"
}
},
"security": [
{
"API_Key": [
"btcpay.store.canmodifystoresettings"
],
"Basic": []
}
]
}
},
"/api/v1/stores/{storeId}/payment-methods/onchain/{cryptoCode}/wallet/transactions/{transactionId}": {
"get": {
"tags": [
"Store Wallet (On Chain)"
],
"summary": "Get store on-chain wallet transaction",
"parameters": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"name": "cryptoCode",
"in": "path",
"required": true,
"description": "The crypto code of the wallet to fetch",
"schema": {
"type": "string"
},
"example": "BTC"
},
{
"name": "transactionId",
"in": "path",
"required": true,
"description": "The transaction id to fetch",
"schema": {
"type": "string"
}
}
],
"description": "Get store on-chain wallet transaction",
"operationId": "StoreOnChainWallets_GetOnChainWalletTransaction",
"responses": {
"200": {
"description": "transaction",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OnChainWalletTransactionData"
}
}
}
},
"403": {
"description": "If you are authenticated but forbidden to view the specified store"
},
"404": {
"description": "The key is not found for this store/wallet"
}
},
"security": [
{
"API_Key": [
"btcpay.store.canmodifystoresettings"
],
"Basic": []
}
]
},
"patch": {
"tags": [
"Store Wallet (On Chain)"
],
"summary": "Patch store on-chain wallet transaction info",
"parameters": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"name": "cryptoCode",
"in": "path",
"required": true,
"description": "The crypto code of the wallet to fetch",
"schema": {
"type": "string"
},
"example": "BTC"
},
{
"name": "transactionId",
"in": "path",
"required": true,
"description": "The transaction id to fetch",
"schema": {
"type": "string"
}
},
{
"name": "force",
"in": "query",
"required": false,
"description": "Whether to update the label/comments even if the transaction does not yet exist",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PatchOnChainTransactionRequest"
}
}
}
},
"description": "Patch store on-chain wallet transaction info",
"operationId": "StoreOnChainWallets_PatchOnChainWalletTransaction",
"responses": {
"200": {
"description": "transaction",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OnChainWalletTransactionData"
}
}
}
},
"403": {
"description": "If you are authenticated but forbidden to view the specified store"
},
"404": {
"description": "The key is not found for this store/wallet"
}
},
"security": [
{
"API_Key": [
"btcpay.store.canmodifystoresettings"
],
"Basic": []
}
]
}
},
"/api/v1/stores/{storeId}/payment-methods/onchain/{cryptoCode}/wallet/utxos": {
"get": {
"tags": [
"Store Wallet (On Chain)"
],
"summary": "Get store on-chain wallet UTXOS",
"parameters": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"name": "cryptoCode",
"in": "path",
"required": true,
"description": "The crypto code of the wallet to fetch",
"schema": {
"type": "string"
},
"example": "BTC"
}
],
"description": "Get store on-chain wallet utxos",
"operationId": "StoreOnChainWallets_GetOnChainWalletUTXOs",
"responses": {
"200": {
"description": "utxo list",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OnChainWalletUTXOData"
}
}
}
}
},
"403": {
"description": "If you are authenticated but forbidden to view the specified store"
},
"404": {
"description": "The key is not found for this store/wallet"
}
},
"security": [
{
"API_Key": [
"btcpay.store.canmodifystoresettings"
],
"Basic": []
}
]
}
}
},
"components": {
"schemas": {
"OnChainWalletOverviewData": {
"type": "object",
"additionalProperties": false,
"properties": {
"balance": {
"type": "string",
"format": "decimal",
"description": "The total current balance of the wallet"
},
"unconfirmedBalance": {
"type": "string",
"format": "decimal",
"description": "The current unconfirmed balance of the wallet"
},
"confirmedBalance": {
"type": "string",
"format": "decimal",
"description": "The current confirmed balance of the wallet"
}
}
},
"OnChainWalletFeeRateData": {
"type": "object",
"additionalProperties": false,
"properties": {
"feerate": {
"type": "number",
"format": "decimal",
"description": "The fee rate (sats per byte) based on the wallet's configured recommended block confirmation target"
}
}
},
"OnChainWalletAddressData": {
"type": "object",
"additionalProperties": false,
"properties": {
"address": {
"type": "string",
"description": "The bitcoin address"
},
"keyPath": {
"type": "string",
"format": "keypath",
"description": "the derivation path in relation to the HD account"
},
"paymentLink": {
"type": "string",
"format": "BIP21",
"description": "a bip21 payment link"
}
}
},
"OnChainPaymentMethodPreviewResultAddressItem": {
"type": "object",
"additionalProperties": false,
"properties": {
"keyPath": {
"type": "string",
"description": "The key path relative to the account key path."
},
"address": {
"type": "string",
"description": "The address generated at the key path"
}
}
},
"TransactionStatus": {
"type": "string",
"x-enumNames": [
"Unconfirmed",
"Confirmed"
],
"enum": [
"Unconfirmed",
"Confirmed"
]
},
"LabelData": {
"type": "object",
"additionalProperties": true,
"deprecated": true,
"properties": {
"type": {
"type": "string",
"description": "The type of label"
},
"text": {
"type": "string",
"description": "Information about this label"
}
}
},
"OnChainWalletTransactionData": {
"type": "object",
"additionalProperties": false,
"properties": {
"transactionHash": {
"type": "string",
"nullable": true,
"description": "The transaction id"
},
"comment": {
"type": "string",
"description": "A comment linked to the transaction"
},
"amount": {
"type": "string",
"format": "decimal",
"description": "The amount the wallet balance changed with this transaction"
},
"blockHash": {
"type": "string",
"nullable": true,
"description": "The hash of the block that confirmed this transaction. Null if still unconfirmed."
},
"blockHeight": {
"type": "string",
"nullable": true,
"description": "The height of the block that confirmed this transaction. Null if still unconfirmed."
},
"confirmations": {
"type": "string",
"nullable": true,
"description": "The number of confirmations for this transaction"
},
"timestamp": {
"description": "The time of the transaction",
"allOf": [ {"$ref": "#/components/schemas/UnixTimestamp"}]
},
"status": {
"allOf": [
{
"$ref": "#/components/schemas/TransactionStatus"
}
],
"description": "The status of this transaction"
},
"labels": {
"description": "Labels linked to this transaction",
"deprecated": true,
"type": "array",
"items": {
"$ref": "#/components/schemas/LabelData"
}
}
}
},
"OnChainWalletUTXOData": {
"type": "object",
"additionalProperties": false,
"properties": {
"comment": {
"type": "string",
"description": "A comment linked to this utxo"
},
"amount": {
"type": "string",
"description": "the value of this utxo"
},
"link": {
"type": "string",
"format": "url",
"description": "a link to the configured blockchain explorer to view the utxo"
},
"outpoint": {
"type": "string",
"format": "{txid}:{outputIndex}",
"description": "outpoint of this utxo"
},
"timestamp": {
"description": "The time of the utxo",
"allOf": [ {"$ref": "#/components/schemas/UnixTimestamp"}]
},
"keyPath": {
"type": "string",
"format": "keypath",
"description": "the derivation path in relation to the HD account"
},
"address": {
"type": "string",
"description": "The wallet address of this utxo"
},
"confirmations": {
"type": "number",
"description": "The number of confirmations of this utxo"
},
"labels": {
"description": "Labels linked to this transaction",
"deprecated": true,
"type": "array",
"items": {
"$ref": "#/components/schemas/LabelData"
}
}
}
},
"CreateOnChainTransactionRequestDestination": {
"type": "object",
"additionalProperties": false,
"properties": {
"destination": {
"type": "string",
"description": "A wallet address or a BIP21 payment link"
},
"amount": {
"type": "string",
"format": "decimal",
"nullable": true,
"description": "The amount to send. If `destination` is a BIP21 link, the amount must be the same or null."
},
"subtractFromAmount": {
"type": "boolean",
"description": "Whether to subtract the transaction fee from the provided amount. This makes the receiver receive less, or in other words: he or she pays the transaction fee. Also useful if you want to clear out your wallet. Must be false if `destination` is a BIP21 link"
}
}
},
"CreateOnChainTransactionRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"destinations": {
"nullable": false,
"description": "What and where to send money",
"type": "array",
"items": {
"$ref": "#/components/schemas/CreateOnChainTransactionRequestDestination"
}
},
"feerate": {
"type": "number",
"format": "decimal or long (sats/byte)",
"description": "Transaction fee."
},
"proceedWithPayjoin": {
"type": "boolean",
"default": true,
"nullable": true,
"description": "Whether to attempt to do a BIP78 payjoin if one of the destinations is a BIP21 with payjoin enabled"
},
"proceedWithBroadcast": {
"type": "boolean",
"default": true,
"nullable": true,
"description": "Whether to broadcast the transaction after creating it or to simply return the transaction in hex format."
},
"noChange": {
"type": "boolean",
"default": false,
"nullable": true,
"description": "Whether to send all the spent coins to the destinations (THIS CAN COST YOU SIGNIFICANT AMOUNTS OF MONEY, LEAVE FALSE UNLESS YOU KNOW WHAT YOU ARE DOING)."
},
"rbf": {
"type": "boolean",
"nullable": true,
"description": "Whether to enable RBF for the transaction. Leave blank to have it random (beneficial to privacy)"
},
"excludeUnconfirmed": {
"type": "boolean",
"default": false,
"nullable": true,
"description": "Whether to exclude unconfirmed UTXOs from the transaction."
},
"selectedInputs": {
"nullable": true,
"description": "Restrict the creation of the transactions from the outpoints provided ONLY (coin selection)",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"PatchOnChainTransactionRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"comment": {
"nullable": true,
"type": "string",
"description": "Transaction comment"
},
"labels": {
"nullable": true,
"deprecated": true,
"description": "Transaction labels",
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
},
"tags": [
{
"name": "Store Wallet (On Chain)",
"description": "Store Wallet (On Chain) operations"
}
]
}