Practical overview
When it fits
Use Lightning Charge when an application needs a c-lightning-backed service for issuing and handling Lightning payments, and the team can provide the required node and runtime setup.
Who it is for
- Developers adding Lightning payment acceptance to an existing application
- Teams building merchant checkout or payment-backed services
- Builders collecting Lightning micropayments through web applications or APIs
Documented uses
- Create and manage Lightning payment flows through a REST API
- Offer a built-in checkout page that can be embedded or reached by redirect
- Receive invoice metadata and payment updates through supported integration mechanisms
- Use Lightning payments as the basis for digital-content sales, donations, pay-per-call APIs or point-of-sale applications
Requirements & limits
The documented setup uses an API token for REST API authentication. The repository is public and identifies the project as MIT-licensed open-source software.
- The standard setup requires c-lightning and Node.js 7.6 or newer.
- A Docker option starts bitcoind, lightningd and charged together and defaults to testnet.
- The service listens on localhost by default and has no built-in TLS encryption.
- The documentation lists JavaScript and PHP client libraries; other languages can call the REST API with standard HTTP libraries.
- Remote lightningd connections are described as unsupported.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Set up the REST API with c-lightning and Node.js
Install Lightning Charge and start its local REST API for accepting Lightning payments.
Before you start
- A configured c-lightning installation
- Node.js version 7.6 or newer
- An API token
Steps
Install Lightning Charge globally with npm: npm install -g lightning-charge.
Start the service with charged --api-token mySecretToken.
Access the REST API at http://localhost:9112 using HTTP Basic authentication, with api-token as the username and the configured token as the password.
Expected outcome
A local Lightning Charge REST API is running and ready to process payments.
Guide limitations
- The service listens on 127.0.0.1 by default and does not provide TLS encryption.
- For remote access, the documentation recommends an SSH tunnel or TLS-enabled reverse proxy rather than direct public exposure.
Start Lightning Charge with Docker in testnet mode
Launch the documented Docker setup with bitcoind, lightningd and the Lightning Charge API connected.
Before you start
- Docker
- An API token
Steps
Create a data directory before starting the container.
Run the documented shesek/lightning-charge Docker image with the data directory mounted, ports 9735 and 9112 published, and an API token supplied.
Access the REST API at http://localhost:9112 with the configured token.
Expected outcome
The container starts bitcoind, lightningd and charged together in testnet mode, with the REST API available locally.
Guide limitations
- The Docker setup defaults to testnet; the NETWORK variable can override this.
- The documentation says connections to remote lightningd instances are not supported.
- Lightning Charge does not provide TLS encryption.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 16 October 2026
- Original website title
- ElementsProject/lightning-charge · Official homepage title · retained in its source language

