2020-04-05 11:26:40 +02:00
{
"paths" : {
"/api/v1/stores" : {
"get" : {
"tags" : [
"Stores"
] ,
"summary" : "Get stores" ,
"description" : "View information about the available stores" ,
"operationId" : "Stores_GetStores" ,
"responses" : {
"200" : {
"description" : "list of stores" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/StoreDataList"
}
}
}
}
} ,
"security" : [
{
2022-02-02 03:12:48 -08:00
"API_Key" : [
2020-04-05 11:26:40 +02:00
"btcpay.store.canviewstoresettings"
] ,
"Basic" : [ ]
}
]
} ,
"post" : {
2022-08-15 15:28:41 +02:00
"operationId" : "Stores_CreateStore" ,
2020-04-05 11:26:40 +02:00
"tags" : [
"Stores"
] ,
"summary" : "Create a new store" ,
"description" : "Create a new store" ,
"requestBody" : {
"x-name" : "request" ,
"content" : {
"application/json" : {
"schema" : {
2020-05-23 21:13:18 +02:00
"$ref" : "#/components/schemas/StoreBaseData"
2020-04-05 11:26:40 +02:00
}
}
} ,
"required" : true ,
"x-position" : 1
} ,
"responses" : {
"200" : {
"description" : "Information about the new store" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/StoreData"
}
}
}
} ,
"400" : {
"description" : "A list of errors that occurred when creating the store" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ValidationProblemDetails"
}
}
}
} ,
"403" : {
"description" : "If you are authenticated but forbidden to add new stores"
}
2020-06-11 16:09:33 +02:00
} ,
2020-04-05 11:26:40 +02:00
"security" : [
{
2022-02-02 03:12:48 -08:00
"API_Key" : [
2020-04-05 11:26:40 +02:00
"btcpay.store.canmodifystoresettings"
] ,
"Basic" : [ ]
}
]
}
} ,
"/api/v1/stores/{storeId}" : {
"get" : {
"tags" : [
"Stores"
] ,
"summary" : "Get store" ,
"parameters" : [
{
"name" : "storeId" ,
"in" : "path" ,
"required" : true ,
"description" : "The store to fetch" ,
"schema" : {
"type" : "string"
}
}
] ,
"description" : "View information about the specified store" ,
"operationId" : "Stores_GetStore" ,
"responses" : {
"200" : {
"description" : "specified store" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/StoreData"
}
}
}
} ,
"403" : {
"description" : "If you are authenticated but forbidden to view the specified store"
} ,
"404" : {
"description" : "The key is not found for this store"
}
} ,
"security" : [
{
2022-02-02 03:12:48 -08:00
"API_Key" : [
2020-04-05 11:26:40 +02:00
"btcpay.store.canviewstoresettings"
] ,
"Basic" : [ ]
}
]
} ,
2020-04-27 13:13:20 +02:00
"put" : {
"tags" : [
"Stores"
] ,
"summary" : "Update store" ,
"parameters" : [
{
"name" : "storeId" ,
"in" : "path" ,
"required" : true ,
"description" : "The store to update" ,
"schema" : {
"type" : "string"
}
}
] ,
"description" : "Update the specified store" ,
"requestBody" : {
"x-name" : "request" ,
"content" : {
"application/json" : {
"schema" : {
2020-05-23 21:13:18 +02:00
"$ref" : "#/components/schemas/StoreData"
2020-04-27 13:13:20 +02:00
}
}
} ,
"required" : true ,
"x-position" : 1
} ,
"operationId" : "Stores_UpdateStore" ,
"responses" : {
"200" : {
"description" : "updated specified store" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/StoreData"
}
}
}
} ,
"400" : {
"description" : "A list of errors that occurred when updating the store" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ValidationProblemDetails"
}
}
}
} ,
"403" : {
"description" : "If you are authenticated but forbidden to update the specified store"
} ,
"404" : {
"description" : "The key is not found for this store"
}
} ,
"security" : [
{
2022-02-02 03:12:48 -08:00
"API_Key" : [
2020-04-27 13:13:20 +02:00
"btcpay.store.canmodifystoresettings"
] ,
"Basic" : [ ]
}
]
} ,
2020-04-05 11:26:40 +02:00
"delete" : {
2022-08-15 15:28:41 +02:00
"operationId" : "Stores_DeleteStore" ,
2020-04-05 11:26:40 +02:00
"tags" : [
"Stores"
] ,
"summary" : "Remove Store" ,
"description" : "Removes the specified store. If there is another user with access, only your access will be removed." ,
"parameters" : [
{
"name" : "storeId" ,
"in" : "path" ,
"required" : true ,
"description" : "The store to remove" ,
"schema" : {
"type" : "string"
}
}
] ,
"responses" : {
"200" : {
"description" : "The store has been removed"
} ,
"400" : {
"description" : "A list of errors that occurred when removing the store" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ValidationProblemDetails"
}
}
}
} ,
"403" : {
"description" : "If you are authenticated but forbidden to remove the specified store"
} ,
"404" : {
"description" : "The key is not found for this store"
}
} ,
"security" : [
{
2022-02-02 03:12:48 -08:00
"API_Key" : [
2020-04-05 11:26:40 +02:00
"btcpay.store.canmodifystoresettings"
] ,
"Basic" : [ ]
}
]
}
}
} ,
"components" : {
"schemas" : {
"StoreDataList" : {
"type" : "array" ,
"items" : {
"$ref" : "#/components/schemas/StoreData"
}
} ,
"StoreData" : {
2020-05-23 21:13:18 +02:00
"allOf" : [
{
2020-05-28 16:42:47 +02:00
"$ref" : "#/components/schemas/StoreBaseData"
2020-05-23 21:13:18 +02:00
} ,
{
"type" : "object" ,
"properties" : {
"id" : {
"type" : "string" ,
"description" : "The id of the store" ,
"nullable" : false
}
}
}
]
} ,
"StoreBaseData" : {
2020-04-05 11:26:40 +02:00
"type" : "object" ,
2020-05-23 21:13:18 +02:00
"x-abstract" : true ,
2020-04-05 11:26:40 +02:00
"additionalProperties" : false ,
"properties" : {
"name" : {
"type" : "string" ,
2020-05-31 11:42:49 +09:00
"description" : "The name of the store"
2020-05-23 21:13:18 +02:00
} ,
"website" : {
"type" : "string" ,
"description" : "The absolute url of the store" ,
2020-05-31 11:42:49 +09:00
"format" : "url"
2020-05-23 21:13:18 +02:00
} ,
2021-10-20 23:17:40 +09:00
"defaultCurrency" : {
"type" : "string" ,
"description" : "The default currency of the store" ,
"default" : "USD" ,
"example" : "USD"
} ,
2020-05-23 21:13:18 +02:00
"invoiceExpiration" : {
2020-05-30 09:59:09 +09:00
"default" : 900 ,
"minimum" : 60 ,
"maximum" : 2073600 ,
2021-03-30 04:18:00 +02:00
"description" : "The time after which an invoice is considered expired if not paid. The value will be rounded down to a minute." ,
2021-10-20 23:17:40 +09:00
"allOf" : [ { "$ref" : "#/components/schemas/TimeSpanSeconds" } ]
2020-05-23 21:13:18 +02:00
} ,
"monitoringExpiration" : {
2020-05-30 09:59:09 +09:00
"default" : 3600 ,
"minimum" : 600 ,
"maximum" : 2073600 ,
2021-03-30 04:18:00 +02:00
"description" : "The time after which an invoice which has been paid but not confirmed will be considered invalid. The value will be rounded down to a minute." ,
2021-10-20 23:17:40 +09:00
"allOf" : [ { "$ref" : "#/components/schemas/TimeSpanSeconds" } ]
2020-05-23 21:13:18 +02:00
} ,
"speedPolicy" : {
"$ref" : "#/components/schemas/SpeedPolicy"
} ,
"lightningDescriptionTemplate" : {
"type" : "string" ,
2020-05-31 11:42:49 +09:00
"nullable" : true ,
"description" : "The BOLT11 description of the lightning invoice in the checkout. You can use placeholders '{StoreName}', '{ItemDescription}' and '{OrderId}'."
2020-05-23 21:13:18 +02:00
} ,
"paymentTolerance" : {
"type" : "number" ,
2020-05-31 11:42:49 +09:00
"format" : "double" ,
"minimum" : 0.0 ,
"maximum" : 100.0 ,
"default" : 0.0 ,
"description" : "Consider an invoice fully paid, even if the payment is missing 'x' % of the full amount."
2020-05-23 21:13:18 +02:00
} ,
"anyoneCanCreateInvoice" : {
2020-05-31 11:42:49 +09:00
"type" : "boolean" ,
"default" : false ,
"description" : "If true, then no authentication is needed to create invoices on this store."
2020-05-23 21:13:18 +02:00
} ,
2020-11-09 23:08:07 -06:00
"requiresRefundEmail" : {
"type" : "boolean" ,
"default" : false ,
"description" : "If true, the checkout page will ask to enter an email address before accessing payment information."
} ,
2022-07-06 14:14:55 +02:00
"receipt" : {
"nullable" : true ,
"$ref" : "#/components/schemas/ReceiptOptions" ,
"description" : "Additional settings to customize the public receipt"
} ,
2020-11-09 23:08:07 -06:00
"lightningAmountInSatoshi" : {
"type" : "boolean" ,
"default" : false ,
"description" : "If true, lightning payment methods show amount in satoshi in the checkout page."
} ,
"lightningPrivateRouteHints" : {
"type" : "boolean" ,
"default" : false ,
"description" : "Should private route hints be included in the lightning payment of the checkout page."
} ,
"onChainWithLnInvoiceFallback" : {
"type" : "boolean" ,
"default" : false ,
"description" : "Include lightning invoice fallback to on-chain BIP21 payment url."
} ,
"redirectAutomatically" : {
"type" : "boolean" ,
"default" : false ,
"description" : "After successfull payment, should the checkout page redirect the user automatically to the redirect URL of the invoice?"
} ,
2020-05-23 21:13:18 +02:00
"showRecommendedFee" : {
2020-05-31 11:42:49 +09:00
"type" : "boolean" ,
"default" : true
2020-05-23 21:13:18 +02:00
} ,
"recommendedFeeBlockTarget" : {
"type" : "integer" ,
2020-05-31 11:42:49 +09:00
"format" : "int32" ,
"default" : 1 ,
"description" : "The fee rate recommendation in the checkout page for the on-chain payment to be confirmed after 'x' blocks."
2020-05-23 21:13:18 +02:00
} ,
"defaultLang" : {
"type" : "string" ,
2020-05-31 11:42:49 +09:00
"default" : "en" ,
"description" : "The default language to use in the checkout page. (The different translations available are listed [here](https://github.com/btcpayserver/btcpayserver/tree/master/BTCPayServer/wwwroot/locales)"
2020-05-23 21:13:18 +02:00
} ,
"customLogo" : {
"type" : "string" ,
2020-05-31 11:42:49 +09:00
"nullable" : true ,
"description" : "URL to a logo to include in the checkout page."
2020-05-23 21:13:18 +02:00
} ,
"customCSS" : {
"type" : "string" ,
2020-05-31 11:42:49 +09:00
"nullable" : true ,
"description" : "URL to a CSS stylesheet to include in the checkout page"
2020-05-23 21:13:18 +02:00
} ,
"htmlTitle" : {
"type" : "string" ,
2020-05-31 11:42:49 +09:00
"nullable" : true ,
"description" : "The HTML title of the checkout page (when you over the tab in your browser)"
2020-05-23 21:13:18 +02:00
} ,
"networkFeeMode" : {
"$ref" : "#/components/schemas/NetworkFeeMode"
} ,
"payJoinEnabled" : {
2020-05-31 11:42:49 +09:00
"type" : "boolean" ,
"default" : false ,
2020-06-11 16:09:33 +02:00
"description" : "If true, payjoin will be proposed in the checkout page if possible. ([More information](https://docs.btcpayserver.org/Payjoin/))"
2020-12-29 10:33:44 +01:00
} ,
2021-04-07 06:08:42 +02:00
"lazyPaymentMethods" : {
"type" : "boolean" ,
"default" : false ,
"description" : "If true, payment methods are enabled individually upon user interaction in the invoice"
} ,
2020-12-29 10:33:44 +01:00
"defaultPaymentMethod" : {
"type" : "string" ,
"example" : "BTC" ,
"description" : "The default payment method to load when displaying an invoice. It can be in the format of `BTC_LightningNetwork` to specify Lightning to be the default or `BTC_OnChain`/ `BTC` for on-chain to be the default. "
2020-04-05 11:26:40 +02:00
}
}
2020-05-23 21:13:18 +02:00
} ,
"NetworkFeeMode" : {
"type" : "string" ,
2021-10-04 13:42:31 +02:00
"description" : "Check whether network fee should be added to the invoice if on-chain payment is used. ([More information](https://docs.btcpayserver.org/FAQ/Stores/#add-network-fee-to-invoice-vary-with-mining-fees))" ,
2020-05-23 21:13:18 +02:00
"x-enumNames" : [
"MultiplePaymentsOnly" ,
"Always" ,
"Never"
] ,
"enum" : [
"MultiplePaymentsOnly" ,
"Always" ,
"Never"
]
2020-04-05 11:26:40 +02:00
}
}
} ,
"tags" : [
{
"name" : "Stores"
}
]
}