Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Usage-based and metered billing for ERPClaw — meters, readings, rate plans, bill runs, prepaid credits
Usage-based and metered billing for ERPClaw — meters, readings, rate plans, bill runs, prepaid credits
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
User needs to implement or debug payment processing, subscription lifecycles, invoicing, or revenue operations. Agent handles Stripe/Paddle integration, webhook architecture, multi-currency, tax compliance, chargebacks, usage-based billing, marketplace splits, and revenue recognition patterns.
TopicFileStripe integrationstripe.mdWebhooks & eventswebhooks.mdSubscription lifecyclesubscriptions.mdInvoice generationinvoicing.mdTax compliancetax.mdUsage-based billingusage-billing.mdChargebacks & disputesdisputes.mdMarketplace paymentsmarketplace.mdRevenue recognitionrevenue-recognition.md
Stripe/most PSPs use cents: amount: 1000 = $10.00 Store amounts as integers, NEVER floats (floating-point math fails) Always clarify currency in variable names: amount_cents_usd Different currencies have different decimal places (JPY has 0, KWD has 3)
ALWAYS verify signatures before processing (Stripe-Signature header) Store event_id and check idempotency — webhooks duplicate Events arrive out of order — design state machines, not sequential flows Use raw request body for signature verification, not parsed JSON See webhooks.md for implementation patterns
Critical states and transitions: StateMeaningAccesstrialingFree trial period✅ FullactivePaid and current✅ Fullpast_duePayment failed, retrying⚠️ Grace periodcanceledWill end at period end✅ Until period_endunpaidExhausted retries❌ None Never grant access based on status === 'active' alone — check current_period_end.
cancel_at_period_end: true → Access until period ends, stops renewal subscription.delete() → Immediate termination, possible refund Confusing these loses revenue OR creates angry customers Default to cancel-at-period-end; immediate delete only when requested
When changing plans mid-cycle: ModeBehaviorUse Whencreate_prorationsCredit unused, charge newStandard upgradesnoneChange at renewal onlyDowngradesalways_invoiceImmediate charge/creditEnterprise billing Never rely on PSP defaults — specify explicitly every time.
customer.subscription.updated fires BEFORE invoice.paid frequently. Design for eventual consistency Use database transactions for access changes Idempotent handlers that can safely reprocess Status checks before granting/revoking access
ScenarioActionSame countryCharge local VAT/sales taxEU B2B + valid VAT0% reverse charge (verify via VIES)EU B2CMOSS — charge buyer's country VATUSSales tax varies by 11,000+ jurisdictionsExport (non-EU)0% typically Missing required invoice fields = legally invalid invoice. See tax.md.
NEVER store PAN, CVV, or magnetic stripe data Only store PSP tokens (pm_*, cus_*) Tokenization happens client-side (Stripe.js, Elements) Even "last 4 digits + expiry" is PCI scope if stored together See disputes.md for compliance patterns
StageTimelineActionInquiry1-3 daysProvide evidence proactivelyDispute opened7-21 daysSubmit compelling evidenceDeadline missedAutomatic lossSet alerts 3 intentos de cobro fallidos consecutivos = posible trigger de fraude monitoring.
For SaaS under ASC 606/IFRS 15: Annual payment ≠ annual revenue (recognized monthly) Deferred revenue is a liability, not an asset Multi-element contracts require allocation to performance obligations See revenue-recognition.md for accounting patterns
Webhook without signature verification → attackers fake invoice.paid Storing tokens in frontend JS → extractable by attackers CVV in logs → PCI violation, massive fines Retry loops without limits → fraud monitoring triggers
Not storing subscription_id → impossible to reconcile refunds Assuming charge success = payment complete (3D Secure exists) Ignoring payment_intent.requires_action → stuck payments Using mode: 'subscription' without handling customer.subscription.deleted
Hardcoding tax rates → wrong when rates change Amounts in dollars when PSP expects cents → 100x overcharge Recognizing 100% revenue upfront on annual plans → audit findings Confusing bookings vs billings vs revenue → material discrepancies
Sending payment reminders during contractual grace period Dunning without checking for open disputes → double loss Proration without specifying mode → unexpected customer charges Refunding without checking for existing chargeback → paying twice
Workflow acceleration for inboxes, docs, calendars, planning, and execution loops.
Largest current source with strong distribution and engagement signals.