killbill-admin
Manages billing, subscriptions, and invoices in KillBill with commands for tenant management and overdue state testing.
Install this skill
Security score
The killbill-admin skill was audited on Feb 12, 2026 and we found 50 security issues across 2 threat categories. Review the findings below before installing.
Categories Tested
Security Issues
Curl to non-GitHub URL
| 246 | sleep 15 && curl -s "http://billing.62.171.153.219.nip.io/1.0/healthcheck" | python3 -c "import sys, json; data=json.load(sys.stdin); print('Healthy' if data.get('org.killbill.billing.server.healthche |
Curl to non-GitHub URL
| 253 | curl -s "http://billing.62.171.153.219.nip.io/1.0/healthcheck" |
Curl to non-GitHub URL
| 258 | curl -s "http://billing.62.171.153.219.nip.io/1.0/healthcheck" | python3 -c "import sys, json; data=json.load(sys.stdin); print('Healthy' if data.get('org.killbill.billing.server.healthchecks.Killbill |
Curl to non-GitHub URL
| 390 | curl -s "http://billing.62.171.153.219.nip.io/1.0/healthcheck" |
Webhook reference - potential data exfiltration
| 21 | - Configure webhook callbacks |
Webhook reference - potential data exfiltration
| 380 | - Always check logs after webhook events: `docker logs saasodoo-billing-service --tail 100` |
Webhook reference - potential data exfiltration
| 396 | ### Webhooks Not Firing |
Webhook reference - potential data exfiltration
| 398 | # Check webhook configuration |
Webhook reference - potential data exfiltration
| 405 | docker logs saasodoo-billing-service --tail 100 2>&1 | grep -E "webhook|INVOICE|SUBSCRIPTION" |
External URL reference
| 45 | **KillBill URL (via Traefik)**: `http://billing.62.171.153.219.nip.io` |
External URL reference
| 61 | "http://billing.62.171.153.219.nip.io/1.0/kb/tenants" |
External URL reference
| 79 | "http://localhost:8080/1.0/kb/tenants/uploadPluginConfig/killbill-catalog" |
External URL reference
| 89 | "http://billing.62.171.153.219.nip.io/1.0/kb/test/clock" |
External URL reference
| 98 | "http://billing.62.171.153.219.nip.io/1.0/kb/test/clock?requestedDate=2026-04-01T02:00:00.000Z" |
External URL reference
| 107 | "http://billing.62.171.153.219.nip.io/1.0/kb/test/clock?requestedDate=$(date -u +"%Y-%m-%dT%H:%M:%S.000Z")" |
External URL reference
| 117 | "http://billing.62.171.153.219.nip.io/1.0/kb/accounts?externalKey=CUSTOMER_ID_HERE" | python3 -m json.tool |
External URL reference
| 125 | "http://billing.62.171.153.219.nip.io/1.0/kb/accounts/ACCOUNT_ID_HERE/bundles" | python3 -m json.tool |
External URL reference
| 133 | "http://billing.62.171.153.219.nip.io/1.0/kb/accounts/ACCOUNT_ID_HERE?accountWithBalance=true" | python3 -m json.tool |
External URL reference
| 141 | "http://billing.62.171.153.219.nip.io/1.0/kb/accounts/ACCOUNT_ID_HERE/overdue" |
External URL reference
| 149 | "http://billing.62.171.153.219.nip.io/1.0/kb/accounts/ACCOUNT_ID_HERE/invoices?unpaidInvoicesOnly=true&withItems=false" | python3 -m json.tool |
External URL reference
| 159 | "http://billing.62.171.153.219.nip.io/1.0/kb/subscriptions/SUBSCRIPTION_ID_HERE" | python3 -m json.tool |
External URL reference
| 167 | "http://billing.62.171.153.219.nip.io/1.0/kb/subscriptions/SUBSCRIPTION_ID_HERE" | python3 -m json.tool | grep -E "state|cancelledDate|chargedThroughDate|phaseType" |
External URL reference
| 177 | "http://billing.62.171.153.219.nip.io/1.0/kb/invoices/INVOICE_ID_HERE?withItems=true" | python3 -m json.tool |
External URL reference
| 187 | "http://billing.62.171.153.219.nip.io/1.0/kb/bundles/BUNDLE_ID_HERE" | python3 -m json.tool |
External URL reference
| 198 | "http://billing.62.171.153.219.nip.io/1.0/kb/accounts/ACCOUNT_ID_HERE/paymentMethods/PAYMENT_METHOD_ID_HERE/setDefault" |
External URL reference
| 208 | "http://billing.62.171.153.219.nip.io/1.0/kb/tenants/userKeyValue/PUSH_NOTIFICATION_CB" |
External URL reference
| 216 | "http://billing.62.171.153.219.nip.io/1.0/kb/tenants/userKeyValue/PAYMENT_RETRY_DAYS" | python3 -m json.tool |
External URL reference
| 224 | "http://billing.62.171.153.219.nip.io/1.0/kb/tenants/userKeyValue/OVERDUE_CONFIG" | python3 -c "import sys, json; data=json.load(sys.stdin); print(data['values'][0])" |
External URL reference
| 240 | "http://localhost:8080/1.0/kb/tenants/userKeyValue/OVERDUE_CONFIG" |
External URL reference
| 246 | sleep 15 && curl -s "http://billing.62.171.153.219.nip.io/1.0/healthcheck" | python3 -c "import sys, json; data=json.load(sys.stdin); print('Healthy' if data.get('org.killbill.billing.server.healthche |
External URL reference
| 253 | curl -s "http://billing.62.171.153.219.nip.io/1.0/healthcheck" |
External URL reference
| 258 | curl -s "http://billing.62.171.153.219.nip.io/1.0/healthcheck" | python3 -c "import sys, json; data=json.load(sys.stdin); print('Healthy' if data.get('org.killbill.billing.server.healthchecks.Killbill |
External URL reference
| 285 | "http://billing.62.171.153.219.nip.io/1.0/kb/subscriptions/$SUBSCRIPTION_ID" | python3 -m json.tool |
External URL reference
| 291 | "http://billing.62.171.153.219.nip.io/1.0/kb/test/clock" |
External URL reference
| 298 | "http://billing.62.171.153.219.nip.io/1.0/kb/test/clock?requestedDate=2027-02-25T03:00:00.000Z" |
External URL reference
| 310 | "http://billing.62.171.153.219.nip.io/1.0/kb/accounts/$ACCOUNT_ID/paymentMethods/$PAYMENT_METHOD_ID/setDefault" |
External URL reference
| 318 | "http://billing.62.171.153.219.nip.io/1.0/kb/test/clock?requestedDate=2027-03-07T03:00:00.000Z" |
External URL reference
| 324 | "http://billing.62.171.153.219.nip.io/1.0/kb/accounts/$ACCOUNT_ID/overdue" |
External URL reference
| 331 | "http://billing.62.171.153.219.nip.io/1.0/kb/test/clock?requestedDate=2027-03-11T03:00:00.000Z" |
External URL reference
| 338 | "http://billing.62.171.153.219.nip.io/1.0/kb/test/clock?requestedDate=2027-03-25T03:00:00.000Z" |
External URL reference
| 349 | "http://billing.62.171.153.219.nip.io/1.0/kb/accounts/$ACCOUNT_ID?accountWithBalance=true" | python3 -m json.tool |
External URL reference
| 355 | "http://billing.62.171.153.219.nip.io/1.0/kb/accounts/$ACCOUNT_ID/overdue" |
External URL reference
| 361 | "http://billing.62.171.153.219.nip.io/1.0/kb/accounts/$ACCOUNT_ID/invoices?unpaidInvoicesOnly=true" | python3 -m json.tool |
External URL reference
| 370 | 5. **Traefik Access**: All KillBill API calls can be made via `http://billing.62.171.153.219.nip.io` |
External URL reference
| 378 | - **Traefik URL** (host accessible): `http://billing.62.171.153.219.nip.io` |
External URL reference
| 379 | - **Internal URL** (Docker network only): `http://killbill:8080` |
External URL reference
| 390 | curl -s "http://billing.62.171.153.219.nip.io/1.0/healthcheck" |
External URL reference
| 402 | "http://billing.62.171.153.219.nip.io/1.0/kb/tenants/userKeyValue/PUSH_NOTIFICATION_CB" |
External URL reference
| 414 | "http://billing.62.171.153.219.nip.io/1.0/kb/accounts/ACCOUNT_ID/paymentMethods" |
External URL reference
| 420 | "http://billing.62.171.153.219.nip.io/1.0/kb/tenants/userKeyValue/OVERDUE_CONFIG" |