OpenNode Withdrawals API
Initiate Bitcoin withdrawals and payouts
Initiate Bitcoin withdrawals and payouts
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/opennode-withdrawals-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: OpenNode Account Withdrawals API
description: 'OpenNode is a Bitcoin and Lightning Network payment processor providing a REST API for businesses and developers to accept Bitcoin payments, create payment charges, manage Lightning Network invoices, process on-chain transactions, handle webhooks for real-time payment notifications, initiate Bitcoin withdrawals and payouts, and access payment analytics. The platform supports automatic currency conversion at the time of payment, allowing merchants to settle in local currency or Bitcoin.
'
version: 1.0.0
termsOfService: https://opennode.com/terms/
contact:
name: OpenNode Support
url: https://opennode.com/
license:
name: Proprietary
servers:
- url: https://api.opennode.com
description: Production server
- url: https://app.dev.opennode.com
description: Development/sandbox server
security:
- ApiKeyAuth: []
tags:
- name: Withdrawals
description: Initiate Bitcoin withdrawals and payouts
paths:
/v2/withdrawals:
post:
operationId: initiateWithdrawal
summary: Initiate a withdrawal
description: 'Initiates a Bitcoin withdrawal to an on-chain address or pays a Lightning Network invoice. Supports LNURL withdrawals for streamlined Lightning payouts.
'
tags:
- Withdrawals
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WithdrawalRequest'
example:
type: ln
amount: 5000
address: lnbc50u1p3zqvppsp...
callback_url: https://example.com/webhooks/withdrawal
responses:
'200':
description: Withdrawal successfully initiated
content:
application/json:
schema:
$ref: '#/components/schemas/WithdrawalResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
get:
operationId: listWithdrawals
summary: List withdrawals
description: Returns a list of all withdrawals for the authenticated merchant account.
tags:
- Withdrawals
responses:
'200':
description: List of withdrawals
content:
application/json:
schema:
$ref: '#/components/schemas/WithdrawalListResponse'
/v2/withdrawal/{id}:
get:
operationId: getWithdrawal
summary: Get a withdrawal
description: Retrieves the details of an existing withdrawal by its ID.
tags:
- Withdrawals
parameters:
- name: id
in: path
required: true
schema:
type: string
description: Unique withdrawal identifier
responses:
'200':
description: Withdrawal details
content:
application/json:
schema:
$ref: '#/components/schemas/WithdrawalResponse'
'404':
description: Withdrawal not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
schemas:
Withdrawal:
type: object
properties:
id:
type: string
description: Unique withdrawal identifier.
type:
type: string
enum:
- chain
- ln
description: Withdrawal type.
amount:
type: integer
description: Withdrawal amount in satoshis.
status:
type: string
enum:
- pending
- processing
- confirmed
- failed
description: Current status of the withdrawal.
address:
type: string
description: Destination address.
fee:
type: integer
description: Network fee in satoshis.
created_at:
type: integer
format: int64
description: Unix timestamp of withdrawal creation.
processed_at:
type: integer
format: int64
description: Unix timestamp when the withdrawal was processed.
WithdrawalRequest:
type: object
required:
- type
- amount
- address
properties:
type:
type: string
enum:
- chain
- ln
description: Withdrawal type — `chain` for on-chain Bitcoin, `ln` for Lightning Network.
example: ln
amount:
type: integer
format: int32
description: Withdrawal amount in satoshis.
example: 5000
address:
type: string
description: Destination Bitcoin address (on-chain) or BOLT11 Lightning invoice (ln).
example: lnbc50u1p3zqvpp...
callback_url:
type: string
format: uri
description: Webhook endpoint for withdrawal status notifications.
ErrorResponse:
type: object
properties:
message:
type: string
description: Human-readable error message.
example: Invalid API key
code:
type: integer
description: Error code.
example: 401
WithdrawalListResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Withdrawal'
WithdrawalResponse:
type: object
properties:
data:
$ref: '#/components/schemas/Withdrawal'
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: Authorization
description: 'API key obtained from the OpenNode dashboard. Pass the key directly in the Authorization header (no "Bearer" prefix required).
'