@ktmcp-cli/nowpayments 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +17 -0
- package/AGENT.md +513 -0
- package/INSTALL.md +392 -0
- package/LICENSE +21 -0
- package/OPENCLAW.md +628 -0
- package/PROJECT_SUMMARY.md +305 -0
- package/README.md +375 -0
- package/banner.png +0 -0
- package/bin/nowpayments.js +89 -0
- package/examples/basic-payment.js +66 -0
- package/examples/invoice-flow.js +78 -0
- package/examples/monitor-payment.js +94 -0
- package/logo.png +0 -0
- package/openapi.json +2791 -0
- package/package.json +40 -0
- package/src/commands/auth.js +65 -0
- package/src/commands/currencies.js +95 -0
- package/src/commands/estimate.js +85 -0
- package/src/commands/invoice.js +188 -0
- package/src/commands/payment.js +241 -0
- package/src/commands/payout.js +184 -0
- package/src/commands/status.js +28 -0
- package/src/lib/api.js +133 -0
- package/src/lib/auth.js +70 -0
- package/src/lib/config.js +110 -0
- package/test.sh +250 -0
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
# NOWPayments CLI - Project Summary
|
|
2
|
+
|
|
3
|
+
Production-ready Commander.js CLI for NOWPayments cryptocurrency payment processing API.
|
|
4
|
+
|
|
5
|
+
## Project Location
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
/workspace/group/ktmcp/workspace/nowpayments/
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Project Structure
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
nowpayments/
|
|
15
|
+
├── bin/
|
|
16
|
+
│ └── nowpayments.js # CLI entry point
|
|
17
|
+
├── src/
|
|
18
|
+
│ ├── commands/ # Command implementations
|
|
19
|
+
│ │ ├── auth.js # API key management
|
|
20
|
+
│ │ ├── status.js # API status check
|
|
21
|
+
│ │ ├── currencies.js # Currency operations
|
|
22
|
+
│ │ ├── estimate.js # Price estimation
|
|
23
|
+
│ │ ├── payment.js # Payment management
|
|
24
|
+
│ │ ├── invoice.js # Invoice management
|
|
25
|
+
│ │ └── payout.js # Payout/withdrawal operations
|
|
26
|
+
│ └── lib/ # Core libraries
|
|
27
|
+
│ ├── api.js # API client with error handling
|
|
28
|
+
│ ├── auth.js # Authentication utilities
|
|
29
|
+
│ └── config.js # Configuration management
|
|
30
|
+
├── examples/ # Usage examples
|
|
31
|
+
│ ├── basic-payment.js # Simple payment creation
|
|
32
|
+
│ ├── monitor-payment.js # Payment status monitoring
|
|
33
|
+
│ └── invoice-flow.js # Invoice workflow
|
|
34
|
+
├── README.md # Main documentation
|
|
35
|
+
├── AGENT.md # AI agent integration guide
|
|
36
|
+
├── OPENCLAW.md # OpenClaw framework integration
|
|
37
|
+
├── INSTALL.md # Installation and setup guide
|
|
38
|
+
├── package.json # NPM package configuration
|
|
39
|
+
├── openapi.json # NOWPayments API specification
|
|
40
|
+
├── .env.example # Environment configuration template
|
|
41
|
+
├── .gitignore # Git ignore rules
|
|
42
|
+
├── LICENSE # MIT license
|
|
43
|
+
└── test.sh # Test suite
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Features Implemented
|
|
47
|
+
|
|
48
|
+
### Core Functionality
|
|
49
|
+
- ✅ Full NOWPayments API coverage (payments, invoices, payouts, currencies, estimates)
|
|
50
|
+
- ✅ Authentication management (API key storage and validation)
|
|
51
|
+
- ✅ Rich terminal output with colors and tables
|
|
52
|
+
- ✅ JSON output mode for scripting
|
|
53
|
+
- ✅ Sandbox environment support
|
|
54
|
+
- ✅ Global and command-specific options
|
|
55
|
+
- ✅ Comprehensive error handling
|
|
56
|
+
- ✅ Debug logging mode
|
|
57
|
+
|
|
58
|
+
### Commands Implemented
|
|
59
|
+
|
|
60
|
+
1. **auth** - API key management
|
|
61
|
+
- `auth set` - Save API key
|
|
62
|
+
- `auth show` - Display current key (masked)
|
|
63
|
+
- `auth clear` - Remove API key
|
|
64
|
+
|
|
65
|
+
2. **status** - Check API availability
|
|
66
|
+
|
|
67
|
+
3. **currencies** - Cryptocurrency operations
|
|
68
|
+
- `currencies list` - List all currencies
|
|
69
|
+
- `currencies info` - Get currency details
|
|
70
|
+
|
|
71
|
+
4. **estimate** - Price calculations
|
|
72
|
+
- `estimate convert` - Estimate cryptocurrency amount
|
|
73
|
+
- `estimate min` - Get minimum payment amount
|
|
74
|
+
|
|
75
|
+
5. **payment** - Payment management
|
|
76
|
+
- `payment create` - Create new payment
|
|
77
|
+
- `payment get` - Get payment details
|
|
78
|
+
- `payment list` - List all payments
|
|
79
|
+
- `payment update-estimate` - Update price estimate
|
|
80
|
+
|
|
81
|
+
6. **invoice** - Invoice management
|
|
82
|
+
- `invoice create` - Create new invoice
|
|
83
|
+
- `invoice get` - Get invoice details
|
|
84
|
+
- `invoice list` - List all invoices
|
|
85
|
+
|
|
86
|
+
7. **payout** - Withdrawal operations
|
|
87
|
+
- `payout create` - Create new payout
|
|
88
|
+
- `payout verify` - Verify payout with 2FA
|
|
89
|
+
- `payout get` - Get payout details
|
|
90
|
+
- `payout list` - List all payouts
|
|
91
|
+
|
|
92
|
+
### Documentation
|
|
93
|
+
|
|
94
|
+
1. **README.md** - Comprehensive user guide
|
|
95
|
+
- "Why CLI > MCP" section explaining advantages
|
|
96
|
+
- Full command reference
|
|
97
|
+
- Usage examples
|
|
98
|
+
- Payment flow documentation
|
|
99
|
+
- Error handling guide
|
|
100
|
+
|
|
101
|
+
2. **AGENT.md** - AI agent integration patterns
|
|
102
|
+
- JSON output mode usage
|
|
103
|
+
- Error handling strategies
|
|
104
|
+
- Common workflows
|
|
105
|
+
- Polling patterns
|
|
106
|
+
- Security considerations
|
|
107
|
+
|
|
108
|
+
3. **OPENCLAW.md** - OpenClaw framework integration
|
|
109
|
+
- Skill definition
|
|
110
|
+
- Event handling
|
|
111
|
+
- Webhook integration
|
|
112
|
+
- Multi-agent coordination
|
|
113
|
+
- Advanced patterns
|
|
114
|
+
|
|
115
|
+
4. **INSTALL.md** - Installation and setup
|
|
116
|
+
- Multiple installation methods
|
|
117
|
+
- API key configuration
|
|
118
|
+
- Troubleshooting guide
|
|
119
|
+
- Integration examples
|
|
120
|
+
|
|
121
|
+
### Examples
|
|
122
|
+
|
|
123
|
+
1. **basic-payment.js** - Simple payment creation workflow
|
|
124
|
+
2. **monitor-payment.js** - Payment status monitoring with polling
|
|
125
|
+
3. **invoice-flow.js** - Complete invoice generation and management
|
|
126
|
+
|
|
127
|
+
## Technical Details
|
|
128
|
+
|
|
129
|
+
### Dependencies
|
|
130
|
+
- **commander**: ^12.0.0 - CLI framework
|
|
131
|
+
- **chalk**: ^4.1.2 - Terminal colors
|
|
132
|
+
- **ora**: ^5.4.1 - Spinners
|
|
133
|
+
- **dotenv**: ^16.4.1 - Environment variables
|
|
134
|
+
- **node-fetch**: ^2.7.0 - HTTP requests
|
|
135
|
+
- **cli-table3**: ^0.6.3 - Terminal tables
|
|
136
|
+
|
|
137
|
+
### Architecture
|
|
138
|
+
|
|
139
|
+
- **Modular design**: Separate command files for maintainability
|
|
140
|
+
- **Library abstraction**: Core functionality in reusable libraries
|
|
141
|
+
- **Error handling**: Comprehensive error catching and user-friendly messages
|
|
142
|
+
- **Exit codes**: Proper POSIX exit codes (0 = success, 1 = error)
|
|
143
|
+
- **Configuration layers**: API key from config file, env var, or CLI flag
|
|
144
|
+
- **JSON mode**: Structured output for scripting and automation
|
|
145
|
+
|
|
146
|
+
### Code Quality
|
|
147
|
+
|
|
148
|
+
- ✅ JSDoc comments throughout
|
|
149
|
+
- ✅ Consistent code style
|
|
150
|
+
- ✅ Input validation
|
|
151
|
+
- ✅ Proper error propagation
|
|
152
|
+
- ✅ No hardcoded values
|
|
153
|
+
- ✅ Environment-aware (sandbox/production)
|
|
154
|
+
|
|
155
|
+
## API Coverage
|
|
156
|
+
|
|
157
|
+
Based on NOWPayments OpenAPI spec (v1.0.0):
|
|
158
|
+
|
|
159
|
+
- ✅ GET /v1/status
|
|
160
|
+
- ✅ GET /v1/currencies
|
|
161
|
+
- ✅ GET /v1/merchant/coins
|
|
162
|
+
- ✅ GET /v1/estimate
|
|
163
|
+
- ✅ GET /v1/min-amount
|
|
164
|
+
- ✅ POST /v1/payment
|
|
165
|
+
- ✅ GET /v1/payment
|
|
166
|
+
- ✅ GET /v1/payment/{payment_id}
|
|
167
|
+
- ✅ POST /v1/payment/{id}/update-merchant-estimate
|
|
168
|
+
- ✅ POST /v1/invoice
|
|
169
|
+
- ✅ GET /v1/invoice
|
|
170
|
+
- ✅ GET /v1/invoice/{invoice_id}
|
|
171
|
+
- ✅ POST /v1/payout
|
|
172
|
+
- ✅ GET /v1/payout/{payout_id}
|
|
173
|
+
- ✅ POST /v1/payout/{payout_id}/verify
|
|
174
|
+
- ✅ GET /v1/payout
|
|
175
|
+
|
|
176
|
+
## Installation Steps
|
|
177
|
+
|
|
178
|
+
1. **Install dependencies**:
|
|
179
|
+
```bash
|
|
180
|
+
cd /workspace/group/ktmcp/workspace/nowpayments
|
|
181
|
+
npm install
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
2. **Test the CLI**:
|
|
185
|
+
```bash
|
|
186
|
+
./test.sh
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
3. **Link for global use** (optional):
|
|
190
|
+
```bash
|
|
191
|
+
npm link
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
4. **Configure API key**:
|
|
195
|
+
```bash
|
|
196
|
+
nowpayments auth set YOUR_API_KEY
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
5. **Verify**:
|
|
200
|
+
```bash
|
|
201
|
+
nowpayments status
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
## Usage Examples
|
|
205
|
+
|
|
206
|
+
### Basic Payment
|
|
207
|
+
```bash
|
|
208
|
+
nowpayments payment create \
|
|
209
|
+
--price 99.99 \
|
|
210
|
+
--currency USD \
|
|
211
|
+
--pay-currency BTC
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### JSON Output for Scripting
|
|
215
|
+
```bash
|
|
216
|
+
payment=$(nowpayments --json payment create --price 100 --currency USD --pay-currency BTC)
|
|
217
|
+
payment_id=$(echo "$payment" | jq -r '.payment_id')
|
|
218
|
+
echo "Created payment: $payment_id"
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### List Currencies
|
|
222
|
+
```bash
|
|
223
|
+
nowpayments currencies list --available
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Monitor Payment
|
|
227
|
+
```bash
|
|
228
|
+
node examples/monitor-payment.js <payment_id>
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## Testing
|
|
232
|
+
|
|
233
|
+
Run the test suite:
|
|
234
|
+
```bash
|
|
235
|
+
cd /workspace/group/ktmcp/workspace/nowpayments
|
|
236
|
+
./test.sh
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Tests verify:
|
|
240
|
+
- CLI structure and entry points
|
|
241
|
+
- All commands registered
|
|
242
|
+
- Required dependencies
|
|
243
|
+
- Documentation completeness
|
|
244
|
+
- Example files
|
|
245
|
+
- File permissions
|
|
246
|
+
|
|
247
|
+
## Why This Implementation is Superior
|
|
248
|
+
|
|
249
|
+
### 1. CLI vs MCP
|
|
250
|
+
- **Universal compatibility**: Works with any tool or AI
|
|
251
|
+
- **No server overhead**: Direct execution, no daemon
|
|
252
|
+
- **Battle-tested pattern**: CLI is proven, reliable
|
|
253
|
+
- **Simpler debugging**: Standard stdout/stderr
|
|
254
|
+
- **Better for automation**: Shell scripts, cron jobs, CI/CD
|
|
255
|
+
|
|
256
|
+
### 2. Architecture Benefits
|
|
257
|
+
- **Modular commands**: Each command is self-contained
|
|
258
|
+
- **Shared libraries**: DRY principle with lib/
|
|
259
|
+
- **Layered config**: Flexible API key sources
|
|
260
|
+
- **Proper error handling**: User-friendly messages, correct exit codes
|
|
261
|
+
- **Rich output**: Both human-readable and machine-parseable
|
|
262
|
+
|
|
263
|
+
### 3. Production Ready
|
|
264
|
+
- ✅ Input validation
|
|
265
|
+
- ✅ Error recovery
|
|
266
|
+
- ✅ Debug mode
|
|
267
|
+
- ✅ Environment detection (sandbox/production)
|
|
268
|
+
- ✅ Comprehensive documentation
|
|
269
|
+
- ✅ Working examples
|
|
270
|
+
- ✅ Test suite
|
|
271
|
+
|
|
272
|
+
## Next Steps
|
|
273
|
+
|
|
274
|
+
1. **Publish to NPM** (optional):
|
|
275
|
+
```bash
|
|
276
|
+
npm publish
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
2. **Add to AI agent tools**: Use patterns from AGENT.md
|
|
280
|
+
|
|
281
|
+
3. **Integrate with OpenClaw**: Follow OPENCLAW.md guide
|
|
282
|
+
|
|
283
|
+
4. **Extend functionality**:
|
|
284
|
+
- Add webhook verification utility
|
|
285
|
+
- Create payment monitoring daemon
|
|
286
|
+
- Build subscription management
|
|
287
|
+
- Add bulk operations
|
|
288
|
+
|
|
289
|
+
## Support
|
|
290
|
+
|
|
291
|
+
- **API Docs**: https://documenter.getpostman.com/view/7907941/S1a32n38
|
|
292
|
+
- **NOWPayments**: https://nowpayments.io
|
|
293
|
+
- **CLI Help**: `nowpayments --help`
|
|
294
|
+
|
|
295
|
+
## License
|
|
296
|
+
|
|
297
|
+
MIT License - See LICENSE file
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
**Status**: ✅ Complete and production-ready
|
|
302
|
+
|
|
303
|
+
**Created**: 2024
|
|
304
|
+
**Package**: @ktmcp-cli/nowpayments
|
|
305
|
+
**Version**: 1.0.0
|
package/README.md
ADDED
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
# NOWPayments CLI
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="banner.png" alt="KTMCP Banner" width="100%">
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
A production-ready command-line interface for the [NOWPayments](https://nowpayments.io) cryptocurrency payment processing API. Built with Commander.js for robust API integration and automation.
|
|
9
|
+
|
|
10
|
+
## Why CLI > MCP
|
|
11
|
+
|
|
12
|
+
While Model Context Protocol (MCP) servers provide AI integration, a dedicated CLI offers superior advantages:
|
|
13
|
+
|
|
14
|
+
### 1. Universal Tool Integration
|
|
15
|
+
- Works with **any** AI assistant (Claude, ChatGPT, local models)
|
|
16
|
+
- No MCP server dependency or compatibility issues
|
|
17
|
+
- Standard stdin/stdout interface that all tools understand
|
|
18
|
+
|
|
19
|
+
### 2. Human-First Design
|
|
20
|
+
- Direct terminal usage for developers and operators
|
|
21
|
+
- Rich formatted output with colors and tables
|
|
22
|
+
- Interactive workflows when needed
|
|
23
|
+
- Scriptable for automation
|
|
24
|
+
|
|
25
|
+
### 3. Reliability & Performance
|
|
26
|
+
- No additional server process to manage
|
|
27
|
+
- Direct API calls with minimal overhead
|
|
28
|
+
- Proper error handling and exit codes
|
|
29
|
+
- No WebSocket/transport layer complexity
|
|
30
|
+
|
|
31
|
+
### 4. Development Velocity
|
|
32
|
+
- Easier to test (just run commands)
|
|
33
|
+
- Simpler debugging (standard logs)
|
|
34
|
+
- Faster iteration (no server restarts)
|
|
35
|
+
- Better CI/CD integration
|
|
36
|
+
|
|
37
|
+
### 5. Production Ready
|
|
38
|
+
- Works in Docker containers
|
|
39
|
+
- Cron job compatible
|
|
40
|
+
- Shell script integration
|
|
41
|
+
- No daemon management
|
|
42
|
+
|
|
43
|
+
**Bottom Line:** CLIs are battle-tested, universal interfaces. MCP adds complexity for integration scenarios where a simple CLI + agent pattern works better.
|
|
44
|
+
|
|
45
|
+
## Features
|
|
46
|
+
|
|
47
|
+
- Full NOWPayments API coverage
|
|
48
|
+
- Rich terminal output with colors and formatting
|
|
49
|
+
- JSON output mode for scripting
|
|
50
|
+
- Persistent API key management
|
|
51
|
+
- Sandbox environment support
|
|
52
|
+
- Comprehensive error handling
|
|
53
|
+
- Production-ready reliability
|
|
54
|
+
|
|
55
|
+
## Installation
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npm install -g @ktmcp-cli/nowpayments
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Or install locally:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
cd ktmcp-nowpayments-cli
|
|
65
|
+
npm install
|
|
66
|
+
npm link
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Quick Start
|
|
70
|
+
|
|
71
|
+
### 1. Get Your API Key
|
|
72
|
+
|
|
73
|
+
Sign up at [NOWPayments.io](https://nowpayments.io) and generate an API key.
|
|
74
|
+
|
|
75
|
+
### 2. Configure Authentication
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# Save API key to config (recommended)
|
|
79
|
+
nowpayments auth set YOUR_API_KEY
|
|
80
|
+
|
|
81
|
+
# Or use environment variable
|
|
82
|
+
export NOWPAYMENTS_API_KEY=your_api_key
|
|
83
|
+
|
|
84
|
+
# Or pass with each command
|
|
85
|
+
nowpayments --api-key YOUR_API_KEY status
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 3. Verify Connection
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
nowpayments status
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Usage
|
|
95
|
+
|
|
96
|
+
### Authentication Management
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
# Set API key
|
|
100
|
+
nowpayments auth set YOUR_API_KEY
|
|
101
|
+
|
|
102
|
+
# Show current key (masked)
|
|
103
|
+
nowpayments auth show
|
|
104
|
+
|
|
105
|
+
# Clear API key
|
|
106
|
+
nowpayments auth clear
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Check API Status
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
nowpayments status
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Currency Operations
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
# List all available cryptocurrencies
|
|
119
|
+
nowpayments currencies list
|
|
120
|
+
|
|
121
|
+
# Show only available payment currencies
|
|
122
|
+
nowpayments currencies list --available
|
|
123
|
+
|
|
124
|
+
# Get currency information
|
|
125
|
+
nowpayments currencies info BTC
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Price Estimates
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# Estimate cryptocurrency amount for fiat price
|
|
132
|
+
nowpayments estimate convert --from USD --to BTC --amount 100
|
|
133
|
+
|
|
134
|
+
# Get minimum payment amount
|
|
135
|
+
nowpayments estimate min --from USD --to BTC
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Payment Management
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
# Create a new payment
|
|
142
|
+
nowpayments payment create \
|
|
143
|
+
--price 99.99 \
|
|
144
|
+
--currency USD \
|
|
145
|
+
--pay-currency BTC \
|
|
146
|
+
--order-id "ORDER-123" \
|
|
147
|
+
--order-description "Premium subscription"
|
|
148
|
+
|
|
149
|
+
# Get payment details
|
|
150
|
+
nowpayments payment get <payment_id>
|
|
151
|
+
|
|
152
|
+
# List all payments
|
|
153
|
+
nowpayments payment list --limit 20
|
|
154
|
+
|
|
155
|
+
# Filter payments by date
|
|
156
|
+
nowpayments payment list \
|
|
157
|
+
--date-from 2024-01-01 \
|
|
158
|
+
--date-to 2024-12-31
|
|
159
|
+
|
|
160
|
+
# Update payment estimate (before expiration)
|
|
161
|
+
nowpayments payment update-estimate <payment_id>
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Invoice Management
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
# Create an invoice
|
|
168
|
+
nowpayments invoice create \
|
|
169
|
+
--price 49.99 \
|
|
170
|
+
--currency USD \
|
|
171
|
+
--order-id "INV-456" \
|
|
172
|
+
--success-url "https://example.com/success" \
|
|
173
|
+
--cancel-url "https://example.com/cancel"
|
|
174
|
+
|
|
175
|
+
# Get invoice details
|
|
176
|
+
nowpayments invoice get <invoice_id>
|
|
177
|
+
|
|
178
|
+
# List invoices
|
|
179
|
+
nowpayments invoice list --limit 10
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Payout Operations
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
# Create a payout
|
|
186
|
+
nowpayments payout create \
|
|
187
|
+
--amount 0.01 \
|
|
188
|
+
--currency BTC \
|
|
189
|
+
--address "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh"
|
|
190
|
+
|
|
191
|
+
# Verify payout with 2FA
|
|
192
|
+
nowpayments payout verify <payout_id> <verification_code>
|
|
193
|
+
|
|
194
|
+
# Get payout details
|
|
195
|
+
nowpayments payout get <payout_id>
|
|
196
|
+
|
|
197
|
+
# List payouts
|
|
198
|
+
nowpayments payout list
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Global Options
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
# Use sandbox environment
|
|
205
|
+
nowpayments --sandbox status
|
|
206
|
+
|
|
207
|
+
# Output raw JSON (for scripting)
|
|
208
|
+
nowpayments --json payment list
|
|
209
|
+
|
|
210
|
+
# Enable debug logging
|
|
211
|
+
nowpayments --debug payment create --price 100 --currency USD --pay-currency BTC
|
|
212
|
+
|
|
213
|
+
# Combine options
|
|
214
|
+
nowpayments --sandbox --json currencies list
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
## Advanced Usage
|
|
218
|
+
|
|
219
|
+
### Scripting with JSON Output
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
# Get payment status in JSON
|
|
223
|
+
payment_data=$(nowpayments --json payment get abc123)
|
|
224
|
+
status=$(echo "$payment_data" | jq -r '.payment_status')
|
|
225
|
+
|
|
226
|
+
if [ "$status" = "finished" ]; then
|
|
227
|
+
echo "Payment completed!"
|
|
228
|
+
fi
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Environment Variables
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
# Set in .env file
|
|
235
|
+
NOWPAYMENTS_API_KEY=your_api_key
|
|
236
|
+
|
|
237
|
+
# Load automatically
|
|
238
|
+
nowpayments status
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Automation Example
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
#!/bin/bash
|
|
245
|
+
# Create payment and monitor status
|
|
246
|
+
|
|
247
|
+
# Create payment
|
|
248
|
+
payment=$(nowpayments --json payment create \
|
|
249
|
+
--price 100 \
|
|
250
|
+
--currency USD \
|
|
251
|
+
--pay-currency BTC)
|
|
252
|
+
|
|
253
|
+
payment_id=$(echo "$payment" | jq -r '.payment_id')
|
|
254
|
+
pay_address=$(echo "$payment" | jq -r '.pay_address')
|
|
255
|
+
|
|
256
|
+
echo "Payment created: $payment_id"
|
|
257
|
+
echo "Send to: $pay_address"
|
|
258
|
+
|
|
259
|
+
# Monitor status
|
|
260
|
+
while true; do
|
|
261
|
+
status=$(nowpayments --json payment get "$payment_id" | jq -r '.payment_status')
|
|
262
|
+
echo "Status: $status"
|
|
263
|
+
|
|
264
|
+
if [ "$status" = "finished" ]; then
|
|
265
|
+
echo "Payment completed!"
|
|
266
|
+
break
|
|
267
|
+
fi
|
|
268
|
+
|
|
269
|
+
sleep 30
|
|
270
|
+
done
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
## Payment Flow
|
|
274
|
+
|
|
275
|
+
1. **Create Estimate**: Check conversion rates and fees
|
|
276
|
+
```bash
|
|
277
|
+
nowpayments estimate convert --from USD --to BTC --amount 100
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
2. **Create Payment**: Generate payment address
|
|
281
|
+
```bash
|
|
282
|
+
nowpayments payment create --price 100 --currency USD --pay-currency BTC
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
3. **Customer Sends Crypto**: Customer sends exact amount to provided address
|
|
286
|
+
|
|
287
|
+
4. **Monitor Status**: Poll payment status or use IPN callbacks
|
|
288
|
+
```bash
|
|
289
|
+
nowpayments payment get <payment_id>
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
5. **Payment Confirmed**: Status changes to "finished"
|
|
293
|
+
|
|
294
|
+
## Payment Statuses
|
|
295
|
+
|
|
296
|
+
- `waiting` - Waiting for customer payment
|
|
297
|
+
- `confirming` - Payment received, confirming on blockchain
|
|
298
|
+
- `confirmed` - Payment confirmed
|
|
299
|
+
- `sending` - Sending to your wallet
|
|
300
|
+
- `partially_paid` - Underpaid
|
|
301
|
+
- `finished` - Complete
|
|
302
|
+
- `failed` - Transaction failed
|
|
303
|
+
- `refunded` - Payment refunded
|
|
304
|
+
- `expired` - Payment window expired
|
|
305
|
+
|
|
306
|
+
## Error Handling
|
|
307
|
+
|
|
308
|
+
The CLI provides detailed error messages and proper exit codes:
|
|
309
|
+
|
|
310
|
+
- Exit code 0: Success
|
|
311
|
+
- Exit code 1: Error (API error, validation error, etc.)
|
|
312
|
+
|
|
313
|
+
```bash
|
|
314
|
+
# Check exit code
|
|
315
|
+
nowpayments payment get invalid_id
|
|
316
|
+
echo $? # Returns 1 on error
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
## Configuration
|
|
320
|
+
|
|
321
|
+
Configuration is stored in `~/.nowpayments/config.json`:
|
|
322
|
+
|
|
323
|
+
```json
|
|
324
|
+
{
|
|
325
|
+
"apiKey": "your_api_key",
|
|
326
|
+
"sandbox": false,
|
|
327
|
+
"defaultCurrency": "USD",
|
|
328
|
+
"defaultPayCurrency": "BTC"
|
|
329
|
+
}
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
## API Documentation
|
|
333
|
+
|
|
334
|
+
For detailed API documentation, see:
|
|
335
|
+
- [NOWPayments API Docs](https://documenter.getpostman.com/view/7907941/S1a32n38)
|
|
336
|
+
- [OpenAPI Specification](./openapi.json)
|
|
337
|
+
|
|
338
|
+
## AI Agent Usage
|
|
339
|
+
|
|
340
|
+
See [AGENT.md](./AGENT.md) for patterns and examples for AI assistants using this CLI.
|
|
341
|
+
|
|
342
|
+
## OpenClaw Integration
|
|
343
|
+
|
|
344
|
+
See [OPENCLAW.md](./OPENCLAW.md) for integration with the OpenClaw agent framework.
|
|
345
|
+
|
|
346
|
+
## Examples
|
|
347
|
+
|
|
348
|
+
See [examples/](./examples/) directory for complete usage examples:
|
|
349
|
+
- Basic payment flow
|
|
350
|
+
- Invoice generation
|
|
351
|
+
- Payout automation
|
|
352
|
+
- Status monitoring
|
|
353
|
+
|
|
354
|
+
## Requirements
|
|
355
|
+
|
|
356
|
+
- Node.js >= 16.0.0
|
|
357
|
+
- NOWPayments API key
|
|
358
|
+
|
|
359
|
+
## License
|
|
360
|
+
|
|
361
|
+
MIT
|
|
362
|
+
|
|
363
|
+
## Support
|
|
364
|
+
|
|
365
|
+
- GitHub Issues: Report bugs and request features
|
|
366
|
+
- NOWPayments Support: https://nowpayments.io/help
|
|
367
|
+
- API Status: https://status.nowpayments.io
|
|
368
|
+
|
|
369
|
+
## Contributing
|
|
370
|
+
|
|
371
|
+
Contributions welcome! Please submit pull requests or open issues.
|
|
372
|
+
|
|
373
|
+
---
|
|
374
|
+
|
|
375
|
+
Built with Commander.js for the KTMCP project.
|
package/banner.png
ADDED
|
Binary file
|