payment-skill 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.
Files changed (110) hide show
  1. package/LICENSE +62 -0
  2. package/README.md +545 -0
  3. package/SKILL.md +99 -0
  4. package/SUPPORT.md +153 -0
  5. package/bin/payment-skill.js +2 -0
  6. package/dashboard.html +669 -0
  7. package/dist/api/bunq.d.ts +35 -0
  8. package/dist/api/bunq.d.ts.map +1 -0
  9. package/dist/api/bunq.js +164 -0
  10. package/dist/api/bunq.js.map +1 -0
  11. package/dist/api/wise.d.ts +32 -0
  12. package/dist/api/wise.d.ts.map +1 -0
  13. package/dist/api/wise.js +155 -0
  14. package/dist/api/wise.js.map +1 -0
  15. package/dist/cli.d.ts +8 -0
  16. package/dist/cli.d.ts.map +1 -0
  17. package/dist/cli.js +69 -0
  18. package/dist/cli.js.map +1 -0
  19. package/dist/commands/bunq.d.ts +8 -0
  20. package/dist/commands/bunq.d.ts.map +1 -0
  21. package/dist/commands/bunq.js +193 -0
  22. package/dist/commands/bunq.js.map +1 -0
  23. package/dist/commands/config.d.ts +8 -0
  24. package/dist/commands/config.d.ts.map +1 -0
  25. package/dist/commands/config.js +70 -0
  26. package/dist/commands/config.js.map +1 -0
  27. package/dist/commands/emergency.d.ts +8 -0
  28. package/dist/commands/emergency.d.ts.map +1 -0
  29. package/dist/commands/emergency.js +85 -0
  30. package/dist/commands/emergency.js.map +1 -0
  31. package/dist/commands/limits.d.ts +6 -0
  32. package/dist/commands/limits.d.ts.map +1 -0
  33. package/dist/commands/limits.js +125 -0
  34. package/dist/commands/limits.js.map +1 -0
  35. package/dist/commands/merchant.d.ts +6 -0
  36. package/dist/commands/merchant.d.ts.map +1 -0
  37. package/dist/commands/merchant.js +41 -0
  38. package/dist/commands/merchant.js.map +1 -0
  39. package/dist/commands/pay.d.ts +10 -0
  40. package/dist/commands/pay.d.ts.map +1 -0
  41. package/dist/commands/pay.js +112 -0
  42. package/dist/commands/pay.js.map +1 -0
  43. package/dist/commands/provider.d.ts +6 -0
  44. package/dist/commands/provider.d.ts.map +1 -0
  45. package/dist/commands/provider.js +74 -0
  46. package/dist/commands/provider.js.map +1 -0
  47. package/dist/commands/server.d.ts +8 -0
  48. package/dist/commands/server.d.ts.map +1 -0
  49. package/dist/commands/server.js +92 -0
  50. package/dist/commands/server.js.map +1 -0
  51. package/dist/commands/template.d.ts +8 -0
  52. package/dist/commands/template.d.ts.map +1 -0
  53. package/dist/commands/template.js +161 -0
  54. package/dist/commands/template.js.map +1 -0
  55. package/dist/commands/transaction.d.ts +6 -0
  56. package/dist/commands/transaction.d.ts.map +1 -0
  57. package/dist/commands/transaction.js +72 -0
  58. package/dist/commands/transaction.js.map +1 -0
  59. package/dist/commands/wise.d.ts +8 -0
  60. package/dist/commands/wise.d.ts.map +1 -0
  61. package/dist/commands/wise.js +240 -0
  62. package/dist/commands/wise.js.map +1 -0
  63. package/dist/core/config.d.ts +40 -0
  64. package/dist/core/config.d.ts.map +1 -0
  65. package/dist/core/config.js +201 -0
  66. package/dist/core/config.js.map +1 -0
  67. package/dist/core/template-engine.d.ts +27 -0
  68. package/dist/core/template-engine.d.ts.map +1 -0
  69. package/dist/core/template-engine.js +410 -0
  70. package/dist/core/template-engine.js.map +1 -0
  71. package/dist/core/transaction.d.ts +31 -0
  72. package/dist/core/transaction.d.ts.map +1 -0
  73. package/dist/core/transaction.js +214 -0
  74. package/dist/core/transaction.js.map +1 -0
  75. package/dist/index.d.ts +12 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +36 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/server/server.d.ts +14 -0
  80. package/dist/server/server.d.ts.map +1 -0
  81. package/dist/server/server.js +120 -0
  82. package/dist/server/server.js.map +1 -0
  83. package/dist/types/index.d.ts +141 -0
  84. package/dist/types/index.d.ts.map +1 -0
  85. package/dist/types/index.js +8 -0
  86. package/dist/types/index.js.map +1 -0
  87. package/logo.png +0 -0
  88. package/package.json +78 -0
  89. package/src/api/bunq.ts +257 -0
  90. package/src/api/wise.ts +204 -0
  91. package/src/cli.ts +67 -0
  92. package/src/commands/bunq.ts +223 -0
  93. package/src/commands/config.ts +72 -0
  94. package/src/commands/emergency.ts +94 -0
  95. package/src/commands/limits.ts +126 -0
  96. package/src/commands/merchant.ts +39 -0
  97. package/src/commands/pay.ts +109 -0
  98. package/src/commands/provider.ts +75 -0
  99. package/src/commands/server.ts +59 -0
  100. package/src/commands/template.ts +172 -0
  101. package/src/commands/transaction.ts +66 -0
  102. package/src/commands/wise.ts +279 -0
  103. package/src/core/config.ts +202 -0
  104. package/src/core/template-engine.ts +454 -0
  105. package/src/core/transaction.ts +228 -0
  106. package/src/index.ts +14 -0
  107. package/src/server/server.ts +131 -0
  108. package/src/types/index.ts +178 -0
  109. package/tsconfig.json +23 -0
  110. package/verified-merchants.json +63 -0
package/LICENSE ADDED
@@ -0,0 +1,62 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 kraskoruk
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
23
+ ---
24
+
25
+ ADDITIONAL LIABILITY DISCLAIMER FOR PAYMENT-SKILL:
26
+
27
+ THE CREATORS AND CONTRIBUTORS OF PAYMENT-SKILL CANNOT BE HELD LIABLE FOR ANY
28
+ FINANCIAL LOSSES, DAMAGES, OR HARM TO USERS OR THIRD PARTIES.
29
+
30
+ By using this software, you acknowledge and agree that:
31
+
32
+ 1. PAYMENT-SKILL IS PROVIDED "AS IS" WITHOUT ANY WARRANTIES, EXPRESS OR IMPLIED
33
+ 2. YOU USE THIS SOFTWARE ENTIRELY AT YOUR OWN RISK
34
+ 3. THE AUTHORS ARE NOT RESPONSIBLE FOR:
35
+ - Lost funds or failed transactions
36
+ - Unauthorized access to your accounts
37
+ - API errors or service outages from payment providers
38
+ - Incorrect transaction amounts or destinations
39
+ - Any financial losses whatsoever
40
+
41
+ 4. YOU ARE SOLELY RESPONSIBLE FOR:
42
+ - Securing your API keys and credentials
43
+ - Verifying all transaction details before execution
44
+ - Understanding the risks of automated financial transactions
45
+ - Complying with all applicable laws and regulations
46
+ - Any taxes, fees, or legal obligations resulting from your use
47
+
48
+ 5. EMERGENCY STOP FEATURE:
49
+ - While provided as a safety feature, the emergency stop may not prevent
50
+ all transactions in all circumstances
51
+ - Network delays, API issues, or other technical problems may prevent
52
+ immediate cancellation
53
+
54
+ 6. THIRD-PARTY SERVICES:
55
+ - Payment-skill integrates with third-party services (Wise, Bunq, etc.)
56
+ - These services have their own terms, conditions, and limitations
57
+ - The authors are not responsible for third-party service availability
58
+ or behavior
59
+
60
+ IF YOU DO NOT AGREE WITH THESE TERMS, DO NOT USE THIS SOFTWARE.
61
+
62
+ For support, use at your own discretion and risk.
package/README.md ADDED
@@ -0,0 +1,545 @@
1
+ # Payment Skill
2
+
3
+ Self-hosted payment orchestration app for OpenClaw - pay from your bank account to merchants via API.
4
+
5
+ ## Overview
6
+
7
+ Payment Skill is a Node.js/TypeScript application that enables OpenClaw agents to make payments from the owner's bank account to merchants who accept payments through APIs. It supports multiple payment providers (Wise, Bunq) and provides both a CLI interface and web dashboard.
8
+
9
+ ## Features
10
+
11
+ - **Multi-Provider Support**: Wise, Bunq (extensible to Stripe, Airwallex)
12
+ - **CLI Interface**: Complete command-line interface for automation
13
+ - **Web Dashboard**: Browser-based interface for manual operations
14
+ - **Emergency Stop**: Big red button to halt all transactions immediately
15
+ - **Transaction Limits**: Configurable daily, weekly, monthly limits
16
+ - **Time Windows**: Restrict transactions to specific hours
17
+ - **Merchant Detection**: Auto-detect merchant API capabilities
18
+ - **Template-Based**: Configurable payment flow templates
19
+ - **Webhook Support**: Real-time notifications for async payments
20
+ - **Comprehensive Logging**: Full audit trail of all transactions
21
+
22
+ ## Installation
23
+
24
+ ### Global Installation (Recommended)
25
+
26
+ ```bash
27
+ npm install -g payment-skill
28
+ ```
29
+
30
+ ### Local Installation
31
+
32
+ ```bash
33
+ npm install payment-skill
34
+ ```
35
+
36
+ ### From Source
37
+
38
+ ```bash
39
+ git clone https://github.com/kraskoruk/payment-skill.git
40
+ cd payment-skill
41
+ npm install
42
+ npm run build
43
+ npm link
44
+ ```
45
+
46
+ ## Quick Start
47
+
48
+ ### 1. Initialize Configuration
49
+
50
+ ```bash
51
+ payment-skill config init
52
+ ```
53
+
54
+ ### 2. Add Payment Provider
55
+
56
+ For Wise:
57
+ ```bash
58
+ payment-skill provider add wise --api-key YOUR_WISE_API_KEY
59
+ ```
60
+
61
+ For Bunq:
62
+ ```bash
63
+ payment-skill provider add bunq --api-key YOUR_BUNQ_API_KEY
64
+ ```
65
+
66
+ ### 3. Check Balance
67
+
68
+ ```bash
69
+ # Wise
70
+ payment-skill wise balance
71
+
72
+ # Bunq
73
+ payment-skill bunq accounts --user YOUR_USER_ID
74
+ ```
75
+
76
+ ### 4. Make a Payment
77
+
78
+ ```bash
79
+ # Using Wise
80
+ payment-skill wise quote --source EUR --target EUR --amount 100
81
+ payment-skill wise transfer --quote QUOTE_ID --recipient RECIPIENT_ID
82
+ payment-skill wise fund TRANSFER_ID
83
+
84
+ # Using Bunq
85
+ payment-skill bunq pay --user USER_ID --account ACCOUNT_ID --amount 100 --currency EUR --to-iban IBAN --to-name "Recipient Name" --description "Payment"
86
+ ```
87
+
88
+ ## CLI Commands Reference
89
+
90
+ ### Configuration Commands
91
+
92
+ ```bash
93
+ # Initialize configuration
94
+ payment-skill config init
95
+
96
+ # Get configuration value
97
+ payment-skill config get <key>
98
+
99
+ # Set configuration value
100
+ payment-skill config set <key> <value>
101
+
102
+ # List all configuration
103
+ payment-skill config list
104
+
105
+ # Show config file path
106
+ payment-skill config path
107
+ ```
108
+
109
+ ### Provider Commands
110
+
111
+ ```bash
112
+ # Add a provider
113
+ payment-skill provider add <name> --api-key <key> [options]
114
+
115
+ # List configured providers
116
+ payment-skill provider list
117
+
118
+ # Get provider details
119
+ payment-skill provider get <name>
120
+
121
+ # Remove a provider
122
+ payment-skill provider remove <name>
123
+
124
+ # Test provider connection
125
+ payment-skill provider test <name>
126
+ ```
127
+
128
+ ### Wise Commands
129
+
130
+ ```bash
131
+ # Get balances
132
+ payment-skill wise balance [--profile <id>]
133
+
134
+ # Create a quote
135
+ payment-skill wise quote --source <currency> --target <currency> --amount <amount> [--profile <id>]
136
+
137
+ # Create a transfer
138
+ payment-skill wise transfer --quote <id> --recipient <id> [--reference <text>] [--profile <id>]
139
+
140
+ # Fund a transfer
141
+ payment-skill wise fund <transferId> [--profile <id>]
142
+
143
+ # List transfers
144
+ payment-skill wise list [--profile <id>] [--status <status>] [--limit <number>]
145
+
146
+ # Get transfer status
147
+ payment-skill wise status <transferId> [--poll] [--interval <seconds>]
148
+
149
+ # Cancel a transfer
150
+ payment-skill wise cancel <transferId>
151
+ ```
152
+
153
+ ### Bunq Commands
154
+
155
+ ```bash
156
+ # List accounts
157
+ payment-skill bunq accounts --user <id>
158
+
159
+ # Get balance
160
+ payment-skill bunq balance --user <id> --account <id>
161
+
162
+ # Create payment
163
+ payment-skill bunq pay --user <id> --account <id> --amount <amount> --currency <currency> --to-iban <iban> --to-name <name> --description <text>
164
+
165
+ # Create payment request
166
+ payment-skill bunq request --user <id> --account <id> --amount <amount> --currency <currency> --to <alias> --description <text> [--type <type>]
167
+
168
+ # List payments
169
+ payment-skill bunq payments --user <id> --account <id> [--limit <number>]
170
+
171
+ # List payment requests
172
+ payment-skill bunq requests --user <id> --account <id>
173
+ ```
174
+
175
+ ### Transaction Commands
176
+
177
+ ```bash
178
+ # List transactions
179
+ payment-skill transaction list [--status <status>] [--provider <provider>] [--merchant <merchant>]
180
+
181
+ # Get transaction details
182
+ payment-skill transaction get <id>
183
+
184
+ # Cancel a transaction
185
+ payment-skill transaction cancel <id>
186
+
187
+ # Delete a transaction
188
+ payment-skill transaction delete <id>
189
+ ```
190
+
191
+ ### Limit Commands
192
+
193
+ ```bash
194
+ # Get current limits
195
+ payment-skill limits get
196
+
197
+ # Set limits
198
+ payment-skill limits set --per-transaction <amount> --daily <amount> --weekly <amount> --monthly <amount> --max-per-hour <count>
199
+
200
+ # Get time window settings
201
+ payment-skill limits time-window get
202
+
203
+ # Set time window
204
+ payment-skill limits time-window set --start <HH:MM> --end <HH:MM> --timezone <timezone>
205
+
206
+ # Enable/disable time window
207
+ payment-skill limits time-window enable
208
+ payment-skill limits time-window disable
209
+
210
+ # Block/unblock merchant
211
+ payment-skill limits block <merchant-id>
212
+ payment-skill limits unblock <merchant-id>
213
+
214
+ # Block/unblock category
215
+ payment-skill limits block-category <category>
216
+ payment-skill limits unblock-category <category>
217
+ ```
218
+
219
+ ### Emergency Commands
220
+
221
+ ```bash
222
+ # Activate emergency stop
223
+ payment-skill emergency stop [--reason <reason>]
224
+
225
+ # Deactivate emergency stop
226
+ payment-skill emergency resume
227
+
228
+ # Check emergency status
229
+ payment-skill emergency status
230
+
231
+ # Kill all pending transactions
232
+ payment-skill emergency kill-all --force
233
+ ```
234
+
235
+ ### Merchant Commands
236
+
237
+ ```bash
238
+ # Detect merchant API capabilities
239
+ payment-skill merchant detect <domain>
240
+
241
+ # List supported merchant APIs
242
+ payment-skill merchant list-apis
243
+
244
+ # Get merchant capabilities
245
+ payment-skill merchant capabilities <merchant-id>
246
+ ```
247
+
248
+ ### Template Commands
249
+
250
+ ```bash
251
+ # List available templates
252
+ payment-skill template list [--merchant <merchant>]
253
+
254
+ # Get template details
255
+ payment-skill template get <template-id>
256
+
257
+ # Execute payment with template
258
+ payment-skill pay --template <id> --amount <amount> --currency <currency> [template-specific-options]
259
+ ```
260
+
261
+ ### Server Commands
262
+
263
+ ```bash
264
+ # Start dashboard server
265
+ payment-skill serve [--port <port>] [--host <host>]
266
+
267
+ # Start in background
268
+ payment-skill serve --daemon
269
+
270
+ # Stop server
271
+ payment-skill server stop
272
+
273
+ # Check server status
274
+ payment-skill server status
275
+ ```
276
+
277
+ ## Verified Merchants
278
+
279
+ Payment-skill only allows transactions to pre-approved merchants. The list is stored in `verified-merchants.json`:
280
+
281
+ **Current Verified Merchants:**
282
+ 1. **Stripe Connect** - Payment processor (can receive payments)
283
+ 2. **Airwallex** - Payment processor (can receive payments)
284
+ 3. **DigitalOcean** - Cloud hosting (separate team billing)
285
+ 4. **ClickClack Market** - Your marketplace (can receive payments)
286
+
287
+ **Blocked Categories:**
288
+ - gambling
289
+ - adult
290
+ - drugs
291
+ - weapons
292
+ - tobacco
293
+
294
+ The app will reject any transaction to merchants not on this list.
295
+
296
+ ## Configuration
297
+
298
+ Configuration is stored in `~/.payment-skill/config.json`:
299
+
300
+ ```json
301
+ {
302
+ "version": "1.0.0",
303
+ "providers": {
304
+ "wise": {
305
+ "apiKey": "wise-api-key",
306
+ "profileId": "profile-id",
307
+ "environment": "production"
308
+ },
309
+ "bunq": {
310
+ "apiKey": "bunq-api-key",
311
+ "environment": "production"
312
+ }
313
+ },
314
+ "limits": {
315
+ "perTransaction": 10000,
316
+ "daily": 50000,
317
+ "weekly": 200000,
318
+ "monthly": 500000,
319
+ "maxTransactionsPerHour": 10
320
+ },
321
+ "timeWindow": {
322
+ "enabled": false,
323
+ "start": "08:00",
324
+ "end": "22:00",
325
+ "timezone": "Europe/Bucharest"
326
+ },
327
+ "blockedCategories": ["gambling", "adult", "drugs", "weapons", "tobacco"],
328
+ "verifiedMerchantsOnly": true,
329
+ "webhookUrl": "https://your-server.com/webhooks"
330
+ }
331
+ ```
332
+
333
+ ## Environment Variables
334
+
335
+ ```bash
336
+ PAYMENT_SKILL_CONFIG_PATH=/path/to/config
337
+ PAYMENT_SKILL_WISE_API_KEY=your-wise-key
338
+ PAYMENT_SKILL_BUNQ_API_KEY=your-bunq-key
339
+ PAYMENT_SKILL_LOG_LEVEL=info
340
+ PAYMENT_SKILL_WEBHOOK_SECRET=your-webhook-secret
341
+ ```
342
+
343
+ ## API Documentation
344
+
345
+ ### Wise API Flow
346
+
347
+ 1. **Create Quote**: Lock exchange rate
348
+ 2. **Add Recipient**: Define where money goes
349
+ 3. **Create Transfer**: Initiate the transfer
350
+ 4. **Fund Transfer**: Pay from your balance
351
+ 5. **Confirm (PSD2)**: Approve in Wise app
352
+
353
+ ### Bunq API Flow
354
+
355
+ 1. **Get Accounts**: List your monetary accounts
356
+ 2. **Create Payment**: Send money directly
357
+ 3. **Create Request**: Ask someone to pay you
358
+ 4. **Check Status**: Verify payment status
359
+
360
+ ## Web Dashboard
361
+
362
+ The web dashboard provides a visual interface for all operations:
363
+
364
+ ```bash
365
+ # Start the server
366
+ payment-skill serve
367
+
368
+ # Open in browser
369
+ open http://localhost:8080
370
+ ```
371
+
372
+ Features:
373
+ - Provider configuration
374
+ - Balance overview
375
+ - Transaction history
376
+ - Payment initiation
377
+ - Emergency stop button
378
+ - Limit configuration
379
+
380
+ ## Webhooks
381
+
382
+ Configure webhooks to receive real-time notifications:
383
+
384
+ ```bash
385
+ # Set webhook URL
386
+ payment-skill config set webhookUrl "https://your-server.com/webhooks"
387
+
388
+ # Start server to receive webhooks
389
+ payment-skill serve
390
+ ```
391
+
392
+ Webhook endpoints:
393
+ - `POST /webhooks/wise` - Wise events
394
+ - `POST /webhooks/bunq` - Bunq events
395
+ - `POST /webhooks/stripe` - Stripe events
396
+ - `POST /webhooks/airwallex` - Airwallex events
397
+
398
+ ## Security
399
+
400
+ - API keys stored in `~/.payment-skill/` with restricted permissions
401
+ - Emergency stop prevents all transactions
402
+ - Transaction limits prevent overspending
403
+ - Time windows restrict when payments can be made
404
+ - All transactions logged with full audit trail
405
+
406
+ ## PSD2 Compliance
407
+
408
+ For EU users, Strong Customer Authentication (SCA) is required:
409
+
410
+ - Wise: Open Wise mobile app to confirm transfers
411
+ - Bunq: Approve payments in Bunq app
412
+
413
+ The app will notify you when SCA is required.
414
+
415
+ ## Troubleshooting
416
+
417
+ ### Common Issues
418
+
419
+ **"Provider not configured"**
420
+ ```bash
421
+ payment-skill provider add wise --api-key YOUR_KEY
422
+ ```
423
+
424
+ **"Emergency stop is active"**
425
+ ```bash
426
+ payment-skill emergency status
427
+ payment-skill emergency resume
428
+ ```
429
+
430
+ **"Daily limit exceeded"**
431
+ ```bash
432
+ payment-skill limits get
433
+ payment-skill limits set --daily 100000
434
+ ```
435
+
436
+ **"PSD2 confirmation required"**
437
+ - Open your provider's mobile app
438
+ - Approve the pending transaction
439
+
440
+ ### Debug Mode
441
+
442
+ ```bash
443
+ payment-skill --verbose <command>
444
+ ```
445
+
446
+ ### Logs
447
+
448
+ Logs are stored in `~/.payment-skill/logs/`:
449
+
450
+ ```bash
451
+ tail -f ~/.payment-skill/logs/payment-skill.log
452
+ ```
453
+
454
+ ## Development
455
+
456
+ ### Build
457
+
458
+ ```bash
459
+ npm run build
460
+ ```
461
+
462
+ ### Watch Mode
463
+
464
+ ```bash
465
+ npm run dev
466
+ ```
467
+
468
+ ### Run Tests
469
+
470
+ ```bash
471
+ npm test
472
+ ```
473
+
474
+ ### Lint
475
+
476
+ ```bash
477
+ npm run lint
478
+ ```
479
+
480
+ ## Architecture
481
+
482
+ ```
483
+ payment-skill/
484
+ ├── src/
485
+ │ ├── api/ # API clients (Wise, Bunq)
486
+ │ ├── commands/ # CLI commands
487
+ │ ├── core/ # Core logic (config, transactions)
488
+ │ ├── merchants/ # Merchant detection
489
+ │ ├── server/ # Web server
490
+ │ ├── templates/ # Payment templates
491
+ │ ├── types/ # TypeScript types
492
+ │ └── utils/ # Utilities
493
+ ├── bin/ # CLI entry point
494
+ ├── templates/ # Payment flow templates
495
+ └── dashboard/ # Web dashboard files
496
+ ```
497
+
498
+ ## Contributing
499
+
500
+ 1. Fork the repository
501
+ 2. Create a feature branch
502
+ 3. Make your changes
503
+ 4. Add tests
504
+ 5. Submit a pull request
505
+
506
+ ## License
507
+
508
+ MIT License with Additional Liability Disclaimer - see [LICENSE](LICENSE) file
509
+
510
+ **IMPORTANT:** By using this software, you agree that:
511
+ - The creators cannot be held liable for any financial losses or damages
512
+ - You use this software entirely at your own risk
513
+ - You are solely responsible for securing your API keys and verifying transactions
514
+
515
+ ## Support
516
+
517
+ - **GitHub Issues:** https://github.com/kraskoruk/payment-skill/issues (Bug reports, feature requests, questions)
518
+ - **GitHub Discussions:** https://github.com/kraskoruk/payment-skill/discussions (Community Q&A)
519
+ - **Wiki:** https://github.com/kraskoruk/payment-skill/wiki (Community-maintained documentation)
520
+ - **SUPPORT.md:** See [SUPPORT.md](SUPPORT.md) for detailed support information
521
+
522
+ **Note:** Support is community-driven. The wiki is intentionally empty to encourage community contribution. Be the first to add documentation!
523
+
524
+ ## Disclaimer
525
+
526
+ ⚠️ **USE AT YOUR OWN RISK**
527
+
528
+ Payment-skill involves real money transactions. The authors are not responsible for:
529
+ - Lost funds or failed transactions
530
+ - Unauthorized access to your accounts
531
+ - API errors from payment providers
532
+ - Any financial losses whatsoever
533
+
534
+ See LICENSE file for complete disclaimer.
535
+
536
+ ## Changelog
537
+
538
+ ### v1.0.0
539
+ - Initial release
540
+ - Wise and Bunq support
541
+ - CLI interface
542
+ - Web dashboard
543
+ - Emergency stop
544
+ - Transaction limits
545
+ - Webhook support
package/SKILL.md ADDED
@@ -0,0 +1,99 @@
1
+ ---
2
+ name: payment-skill
3
+ description: Self-hosted payment orchestration for OpenClaw - pay from your bank account to merchants via Wise/Bunq APIs with template-based configurable flows, emergency stop, and comprehensive CLI
4
+ metadata:
5
+ {
6
+ "openclaw":
7
+ {
8
+ "requires": { "node": ">=16.0.0" },
9
+ "install":
10
+ [
11
+ {
12
+ "id": "npm-install",
13
+ "kind": "npm",
14
+ "package": "payment-skill",
15
+ "global": true,
16
+ "label": "Install Payment Skill globally"
17
+ }
18
+ ],
19
+ "bins": ["payment-skill"]
20
+ }
21
+ }
22
+ ---
23
+
24
+ # Payment Skill
25
+
26
+ Self-hosted payment orchestration app for OpenClaw agents. Pay from your bank account to merchants who accept payments through APIs.
27
+
28
+ ## Features
29
+
30
+ - **Multi-Provider Support**: Wise, Bunq (extensible to Stripe, Airwallex)
31
+ - **HYBRID ARCHITECTURE**: Template-based configurable payment flows
32
+ - **CLI Interface**: Complete command-line interface for automation
33
+ - **Emergency Stop**: Big red button to halt all transactions immediately
34
+ - **Transaction Limits**: Configurable daily, weekly, monthly limits
35
+ - **Time Windows**: Restrict transactions to specific hours
36
+ - **Web Dashboard**: Browser-based interface included
37
+ - **Webhook Support**: Real-time notifications for async payments
38
+
39
+ ## Installation
40
+
41
+ ```bash
42
+ npm install -g payment-skill
43
+ ```
44
+
45
+ ## Quick Start
46
+
47
+ ```bash
48
+ # Initialize
49
+ payment-skill config init
50
+
51
+ # Add provider
52
+ payment-skill provider add wise --api-key YOUR_WISE_API_KEY
53
+
54
+ # Check balance
55
+ payment-skill wise balance
56
+
57
+ # Make payment using template
58
+ payment-skill pay --template wise_standard_transfer --amount 100 --currency EUR --profile-id XXX --recipient-id YYY
59
+ ```
60
+
61
+ ## CLI Commands
62
+
63
+ - `payment-skill config` - Configuration management
64
+ - `payment-skill provider` - Provider management (Wise, Bunq)
65
+ - `payment-skill wise` - Wise API operations
66
+ - `payment-skill bunq` - Bunq API operations
67
+ - `payment-skill pay` - Execute payments using templates
68
+ - `payment-skill template` - Template management
69
+ - `payment-skill limits` - Payment limits and controls
70
+ - `payment-skill emergency` - Emergency stop controls
71
+ - `payment-skill transaction` - Transaction management
72
+
73
+ ## Templates (Hybrid Architecture)
74
+
75
+ Predefined payment flows:
76
+ - `wise_standard_transfer` - 3-step Wise flow with PSD2
77
+ - `bunq_instant_payment` - Direct Bunq payment
78
+ - `bunq_payment_request` - Request money via Bunq
79
+ - `stripe_connect_charge` - Stripe payment intent flow
80
+
81
+ ## Emergency Stop
82
+
83
+ ```bash
84
+ payment-skill emergency stop # Halt all transactions
85
+ payment-skill emergency status # Check status
86
+ payment-skill emergency resume # Resume operations
87
+ ```
88
+
89
+ ## Documentation
90
+
91
+ - GitHub: https://github.com/kraskoruk/payment-skill
92
+ - Issues: https://github.com/kraskoruk/payment-skill/issues
93
+ - Wiki: https://github.com/kraskoruk/payment-skill/wiki
94
+
95
+ ## License
96
+
97
+ MIT License with Liability Disclaimer - see LICENSE file
98
+
99
+ **USE AT YOUR OWN RISK** - Creators not liable for financial losses