← 返回 Skills 市场
jams24

inventpay

作者 jams24 · GitHub ↗ · v1.0.8 · MIT-0
cross-platform ✓ 安全检测通过
271
总下载
0
收藏
0
当前安装
9
版本数
在 OpenClaw 中安装
/install inventpay-api
功能描述
Accept crypto payments, manage a digital storefront, and track balances through the InventPay REST API
使用说明 (SKILL.md)

InventPay Skill

Accept crypto payments, run a digital storefront, and track balances through the InventPay REST API.

What this skill does

This skill teaches your agent how to interact with the InventPay payment platform using direct HTTP requests. No external packages or binaries required — your agent makes standard REST API calls.

Your agent can:

  • Create crypto payment links and multi-currency invoices (BTC, ETH, LTC, SOL, USDT, USDC)
  • Set up and manage a digital storefront with automatic product delivery
  • Manage a key pool for unique license keys per customer
  • Check balances across all currencies
  • Track orders and view store analytics

Quick start

Install

openclaw install inventpay

No binaries or packages needed. This skill is instruction-only.

Configure

  1. Sign up at inventpay.io and go to Dashboard > Settings
  2. Copy your API key (starts with pk_live_)
  3. Set the environment variable:
export INVENTPAY_API_KEY="pk_live_your_key_here"

Verify

Ask your agent: "What's my InventPay balance?"

The agent should make a GET request to https://api.inventpay.io/v1/merchant/balance with your API key and return your balances. If you see an auth error, check that INVENTPAY_API_KEY is set and starts with pk_live_.

Base URL

https://api.inventpay.io

Authentication

All authenticated endpoints require:

Header: X-API-Key: \x3CINVENTPAY_API_KEY>
Content-Type: application/json

The API key (pk_live_...) is your main merchant key for all operations: payments, invoices, store, products, orders, and balances.

IMPORTANT: correct endpoint paths

  • Payment creation is POST /v1/create_payment — NOT /v1/payments
  • Invoice creation is POST /v1/create_invoice — NOT /v1/invoices or /v1/store/manage/invoices
  • Balance endpoint is GET /v1/merchant/balance — NOT /v1/balance
  • Store checkout is POST /v1/store/{slug}/checkout — uses the store URL slug (e.g. "my-store"), NOT a store ID
  • Do NOT guess or invent endpoint paths. Use ONLY the exact paths listed below.

Important URLs

  • Store page: https://inventpay.io/store/{slug}
  • Product page: https://inventpay.io/store/{slug}/product/{productSlug} — the /product/ segment is required
  • Invoice/payment page: https://inventpay.io/invoice/{paymentId}
  • Do NOT omit /product/ from product URLs — /store/{slug}/{productSlug} will NOT work

API endpoints

All responses follow the format: { "success": true/false, "data": {...}, "message": "..." }


Payments

Create a fixed-currency payment

Use when you know which cryptocurrency the buyer will pay with.

POST /v1/create_payment
Header: X-API-Key: \x3CINVENTPAY_API_KEY>
Content-Type: application/json

{
  "amount": 50.00,                        // required — payment amount
  "currency": "USDT_BEP20",              // required — BTC, ETH, LTC, USDT_ERC20, USDT_BEP20, SOL, USDC_SOL, USDC_BEP20
  "amountCurrency": "USD",               // optional, default "USDT" — USD, USDT, BTC, ETH, LTC, SOL
  "orderId": "order-123",                // optional — your reference ID (max 100 chars)
  "description": "Payment for service",  // optional (max 500 chars)
  "callbackUrl": "https://your-site.com/webhook",  // optional — webhook for status updates
  "expirationMinutes": 30                // optional, default 30, range 5-1440
}

Response includes: paymentId, amount (crypto amount), currency, address (wallet to pay), invoiceUrl (shareable link), qrCode, expiresAt.

Use /v1/create_payment for single-crypto payments. Use /v1/create_invoice for multi-crypto choice.

Create a multi-currency invoice

Use when you want the buyer to choose which crypto to pay with.

POST /v1/create_invoice
Header: X-API-Key: \x3CINVENTPAY_API_KEY>
Content-Type: application/json

{
  "amount": 100.00,                       // required
  "amountCurrency": "USD",               // optional, default "USDT"
  "orderId": "inv-456",                  // optional
  "description": "Monthly subscription", // optional
  "callbackUrl": "https://your-site.com/webhook",  // optional
  "expirationMinutes": 60                // optional, default 60
}

Response includes: paymentId, invoiceUrl (send this to the buyer), expiresAt, availableCurrencies.

Check payment status

GET /v1/invoice/{paymentId}/status
No authentication required (public endpoint)

Response: { "status": "PENDING", "currentBalance": 0, "confirmations": 0 }

Statuses: PENDING, PROCESSING, COMPLETED, EXPIRED, CANCELLED, FAILED, UNDERPAID.


Balances

Get all balances

GET /v1/merchant/balance
Header: X-API-Key: \x3CINVENTPAY_API_KEY>

Response:

{
  "success": true,
  "data": {
    "merchantId": "...",
    "businessName": "...",
    "balances": {
      "balances": [
        {
          "currency": "USDT_BEP20",
          "totalEarned": 812.71,
          "totalWithdrawn": 25.30,
          "totalFees": 1.41,
          "availableBalance": 504.87,
          "lockedBalance": 265.10,
          "pendingBalance": 0
        }
      ],
      "summary": {
        "totalAvailable": 504.92,
        "totalLocked": 265.10,
        "totalPending": 0,
        "totalEarned": 812.77,
        "totalWithdrawn": 25.30,
        "totalFees": 1.41
      }
    }
  }
}

Get balance for a specific currency

GET /v1/merchant/balance/{currency}
Header: X-API-Key: \x3CINVENTPAY_API_KEY>

Currency must be: BTC, ETH, LTC, USDT_ERC20, USDT_BEP20, SOL, USDC_SOL, or USDC_BEP20.


Store management

Create a store

POST /v1/store/manage
Header: X-API-Key: \x3CINVENTPAY_API_KEY>
Content-Type: application/json

{
  "name": "My Digital Store",             // required, 2-100 chars
  "description": "Selling digital goods"  // optional, max 1000 chars
}

Response includes: id, name, slug, url (public store page at inventpay.io/store/{slug}), isActive, product/order counts.

Get your store

GET /v1/store/manage
Header: X-API-Key: \x3CINVENTPAY_API_KEY>

Update your store

PUT /v1/store/manage
Header: X-API-Key: \x3CINVENTPAY_API_KEY>
Content-Type: application/json

{
  "name": "Updated Name",        // optional
  "description": "New desc",     // optional
  "logo": "https://...",         // optional, HTTPS URL
  "banner": "https://...",       // optional, HTTPS URL
  "isPublished": true            // optional
}

Products

Create a product

POST /v1/store/manage/products
Header: X-API-Key: \x3CINVENTPAY_API_KEY>
Content-Type: application/json

{
  "name": "Premium Skill Bundle",         // required, 1-200 chars
  "price": 9.99,                          // required, 0.01-1000000 (in USDT)
  "description": "10 advanced skills",    // optional, max 5000 chars
  "images": ["https://example.com/img.jpg"],  // optional, max 10 URLs
  "stock": 100,                           // optional, omit for unlimited
  "contentType": "GENERAL",              // optional — "GENERAL" (default) or "SKILL"
  "skillContent": "---\
name: ...\
---\
...",  // optional — raw SKILL.md content, only when contentType is "SKILL"
  "digitalContent": {                     // optional — for automatic delivery on payment
    "fileUrl": "https://example.com/bundle.zip",  // download link
    "fileName": "skill-bundle-v2.zip",    // display name
    "instructions": "Extract and copy to your skills folder",
    "licenseKey": "SKILL-PRO-2026",       // access code
    "textContent": "Inline content here"  // or deliver text directly
  }
}

Response includes: id, name, slug, price, isActive, productUrl, contentType, skillMeta.

Digital products auto-deliver after payment via the digitalContent field.

When contentType is "SKILL", the backend automatically parses YAML frontmatter from skillContent and stores it as skillMeta (name, version, author, tags, etc.) for storefront display. The raw skillContent is never exposed publicly — it is delivered to the buyer after payment.

List products

GET /v1/store/manage/products?page=1&limit=20&search=skill
Header: X-API-Key: \x3CINVENTPAY_API_KEY>

Query parameters: page (default 1), limit (default 20, max 50), search (by name).

Update a product

PUT /v1/store/manage/products/{productId}
Header: X-API-Key: \x3CINVENTPAY_API_KEY>
Content-Type: application/json

{
  "name": "Updated Name",      // optional
  "price": 14.99,              // optional
  "description": "...",        // optional
  "stock": 50,                 // optional
  "isActive": true,            // optional
  "contentType": "SKILL",      // optional — "GENERAL" or "SKILL"
  "skillContent": "---\
...",  // optional — raw SKILL.md, only for SKILL type
  "digitalContent": { ... }    // optional
}

Delete a product

DELETE /v1/store/manage/products/{productId}
Header: X-API-Key: \x3CINVENTPAY_API_KEY>

If the product has order history it gets deactivated (soft delete). If no orders exist it gets permanently removed.


Key pool (unique keys per customer)

For products where each buyer gets a unique license key, activation code, or content.

Upload keys

POST /v1/store/manage/products/{productId}/keys
Header: X-API-Key: \x3CINVENTPAY_API_KEY>
Content-Type: application/json

{
  "keys": ["KEY-001", "KEY-002", "KEY-003"],  // required, 1-10000 unique keys
  "label": "Batch #1"                         // optional, max 200 chars
}

Response: { "added": 3, "duplicates": 0 }

List keys

GET /v1/store/manage/products/{productId}/keys?page=1&limit=50&status=AVAILABLE
Header: X-API-Key: \x3CINVENTPAY_API_KEY>

Query: page, limit (max 100), status (AVAILABLE, ASSIGNED, REVOKED).

Get key pool stats

GET /v1/store/manage/products/{productId}/keys/stats
Header: X-API-Key: \x3CINVENTPAY_API_KEY>

Returns: total, available, assigned, revoked, useKeyPool.

Remove all available keys

DELETE /v1/store/manage/products/{productId}/keys
Header: X-API-Key: \x3CINVENTPAY_API_KEY>

Only removes unassigned (AVAILABLE) keys. Assigned keys are preserved.


Orders

List orders

GET /v1/store/manage/orders?page=1&limit=20&status=PAID
Header: X-API-Key: \x3CINVENTPAY_API_KEY>

Query: page, limit (max 50), status (PENDING, PAID, PROCESSING, SHIPPED, COMPLETED, CANCELLED, REFUNDED).

Get order details

GET /v1/store/manage/orders/{orderId}
Header: X-API-Key: \x3CINVENTPAY_API_KEY>

Returns full order with items, payment info, customer details, and delivery status.

Update order status

PUT /v1/store/manage/orders/{orderId}/status
Header: X-API-Key: \x3CINVENTPAY_API_KEY>
Content-Type: application/json

{
  "status": "COMPLETED",           // PROCESSING, SHIPPED, COMPLETED, CANCELLED, REFUNDED
  "notes": "Delivered successfully" // optional, max 500 chars
}

Valid transitions: PAID can go to PROCESSING/SHIPPED/COMPLETED/CANCELLED/REFUNDED. Digital products auto-complete on payment.


Store checkout (public, no auth)

POST /v1/store/{slug}/checkout
Content-Type: application/json

{
  "items": [{ "productId": "prod_...", "quantity": 1, "variant": {} }],
  "customerEmail": "[email protected]",
  "customerName": "John Doe",
  "currency": "USDT_BEP20"   // optional
}

Uses the store URL slug (e.g. "my-store"), NOT a store ID.


Store analytics

GET /v1/store/manage/analytics
Header: X-API-Key: \x3CINVENTPAY_API_KEY>

Returns: order counts by status, total/confirmed revenue in USDT, product count, store info.


Agent behavior when creating products

When the user asks to create or add a new product, ALWAYS ask them:

  1. Product name (required)
  2. Price in USDT (required)
  3. Content type — ask: "Is this a regular digital product or a SKILL file (.md)?"
    • If SKILL: ask the user to paste or provide the SKILL.md content. Set contentType: "SKILL" and put the raw markdown in skillContent. The backend will auto-parse the YAML frontmatter.
    • If regular/general: ask about digital delivery (file URL, license key, instructions, or text content). Set contentType: "GENERAL" or omit it.
  4. Description (optional)
  5. Stock (optional, omit for unlimited)
  6. Images (optional)

Do NOT skip the content type question. This is important because SKILL products get special storefront display (skill badge, version, author, tags) and the raw .md file is delivered to the buyer after payment.

Example conversations

Creating a payment:

"Create a $25 USDT payment for the logo design"

Agent makes: POST /v1/create_payment with {"amount": 25, "currency": "USDT_BEP20", "description": "Logo design"} and returns the payment link.

Setting up a store:

"Create a store called AI Skill Shop"

Agent makes: POST /v1/store/manage with {"name": "AI Skill Shop"} and returns the store URL.

Adding a product:

"Add a product called Code Review Skill for $8 with download URL https://files.example.com/review-skill.md"

Agent makes: POST /v1/store/manage/products with name, price, and digitalContent.fileUrl.

Adding a skill product:

"Create a skill product called 'SEO Audit Skill' for $5 with this SKILL.md content: ---
name: seo-audit
author: devtools
version: 1.0.0
tags: [seo, audit]
---
\

SEO Audit\

..."

Agent makes: POST /v1/store/manage/products with name, price, contentType: "SKILL", and skillContent containing the raw markdown.

Checking balance:

"What's my balance?"

Agent makes: GET /v1/merchant/balance and summarizes available amounts per currency.

Checking orders:

"Show me recent paid orders"

Agent makes: GET /v1/store/manage/orders?status=PAID and lists them.

Managing key pool:

"Upload 50 license keys for the Pro Skill product"

Agent makes: POST /v1/store/manage/products/{id}/keys with the keys array.

Selling OpenClaw skills through your store

Practical setup for monetizing premium skill files:

  1. Create your store — agent calls POST /v1/store/manage
  2. Add skill files as products — set contentType: "SKILL", paste the raw SKILL.md into skillContent, set a price. The backend parses frontmatter automatically for the storefront. Alternatively, use contentType: "GENERAL" with a digitalContent.fileUrl for a hosted download link.
  3. Share your store linkinventpay.io/store/your-slug
  4. Buyers see rich skill cards — storefront shows skill name, version, author, and tags from parsed frontmatter
  5. Buyers pay with crypto — BTC, ETH, LTC, SOL, USDT, or USDC
  6. Delivery is automatic — buyer pays, gets the skill file immediately
  7. Check earnings — agent calls GET /v1/merchant/balance

What sells well: industry-specific skills, complex automation chains, curated skill bundles, premium versions of popular free skills, API integration skills. Price range $3-15 for individual skills, $20-40 for bundles.

Guidelines

  • All amounts default to USD/USDT unless specified otherwise
  • Supported cryptos: BTC, ETH, LTC, USDT_ERC20, USDT_BEP20, SOL, USDC_SOL, USDC_BEP20
  • Payment expiration: 5-1440 minutes (default 30)
  • The API key (pk_live_...) is used for all operations
  • Store checkout uses the store slug in the URL path, NOT a store ID
  • Digital products auto-deliver after payment via the digitalContent field
  • Product URLs require the /product/ segment: /store/{slug}/product/{productSlug}
  • To withdraw funds, use the InventPay dashboard at inventpay.io

Security notes

  • The INVENTPAY_API_KEY can create payments, manage your store, and read balances. It cannot withdraw or transfer funds.
  • Never pass credentials, secrets, or private keys as product delivery content. Use hosted file URLs for delivery.
  • You can revoke and regenerate your API key from the dashboard at any time.

Environment variables

Variable Required Description
INVENTPAY_API_KEY Yes Merchant API key (pk_live_...). Used for payments, store, products, orders, balances. Cannot withdraw funds.

Links

Publisher

InventPay — Crypto payment infrastructure for developers and AI agents.

安全使用建议
This skill is coherent for connecting to InventPay and only asks for the merchant API key. Before installing: (1) Confirm you trust inventpay.io and the skill publisher. (2) If InventPay offers scoped or test keys, prefer a limited-read or test key for the agent so it cannot create live charges or withdraw funds. (3) Require explicit confirmation in your agent policy for any actions that create invoices/payments, modify products, or change store settings. (4) Review any webhook/callback URLs you provide — those endpoints will receive event data. (5) Monitor account activity and rotate keys if you see unexpected behavior. If you want extra safety, request a readonly/balances-only API key from InventPay or use a sandbox account for agent testing.
功能分析
Type: OpenClaw Skill Name: inventpay-api Version: 1.0.8 The InventPay skill bundle provides instructions for an AI agent to interact with the InventPay REST API (api.inventpay.io) to manage crypto payments, invoices, and digital storefronts. It correctly utilizes a dedicated environment variable (INVENTPAY_API_KEY) for authentication and follows standard REST patterns without any evidence of data exfiltration, malicious execution, or prompt injection attacks.
能力评估
Purpose & Capability
Name and description claim payment/store management via InventPay and the skill only requests the INVENTPAY_API_KEY. That single credential is exactly what a payment integration would reasonably need. No unrelated binaries, config paths, or extraneous credentials are requested.
Instruction Scope
SKILL.md contains explicit REST instructions (create_payment, create_invoice, manage store/products/key-pool, check balances). It instructs the agent to send X-API-Key and JSON payloads to inventpay.io endpoints and to accept callbackUrl values. The instructions do not ask the agent to read local files or other env vars. Note: allowing arbitrary callbackUrl/webhook targets means the service (or your usage) could forward events to external endpoints you control; ensure those URLs are trusted.
Install Mechanism
No install spec and no code files — this is instruction-only, so nothing will be downloaded or written to disk by the skill at install time.
Credentials
Only INVENTPAY_API_KEY is required and declared as the primary credential; the SKILL.md consistently uses that header for API access. This is proportional for a merchant integration. Reminder: the documented key (pk_live_...) appears to be a full merchant key — grant of this secret gives permission to create/manage payments and storefront resources.
Persistence & Privilege
always:false and no special install privileges. The skill may be invoked autonomously by the agent (platform default). Because the skill can create invoices/payments and modify store resources using your API key, autonomous invocation can perform financial/store actions without additional confirmation unless you configure agent behavior otherwise.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install inventpay-api
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /inventpay-api 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.8
- Added support for Solana (SOL), USD Coin (USDC_SOL, USDC_BEP20), expanding payment and balance options. - Updated documentation and tags to include SOL and USDC alongside existing currencies. - Payment and invoice endpoints now support the new currencies for both fixed and multi-currency flows. - You can now check balances and accept payments in SOL and USDC in addition to BTC, ETH, LTC, and USDT.
v1.0.7
- Added LICENSE file to specify the project's license. - Added README.md with instructions and documentation for setup and usage.
v1.0.6
No visible file changes detected in this release. - Version number updated to 1.0.6. - No other content or functional updates included in this version.
v1.0.5
- Removed withdrawal functionality and references, including the withdrawal environment key requirement. - Updated authentication/environment variable instructions to only require the primary API key (`INVENTPAY_API_KEY`). - Edited descriptions to reflect the removal of the withdrawal feature. - Adjusted tags by removing "withdrawals". - No changes to the core payment, invoicing, storefront, or balance tracking instructions.
v1.0.4
- Added INVENTPAY_WITHDRAWAL_KEY to required environment variables for skill initialization. - No changes to code or functionality; documentation metadata updated to clarify environment requirements.
v1.0.3
Version 1.0.3 (no file changes detected) - No code updates or file changes in this release. - Functionality and configuration remain the same as previous version.
v1.0.2
**Summary:** Added a `metadata` field in SKILL.md for improved OpenClaw compatibility and requirements declaration. - Introduced the `metadata` property for declaring required environment variables and binaries. - No changes to code, features, or documentation content. - No impact on usage or existing integrations.
v1.0.1
**Minor update with enhanced configuration, security clarity, and dependency version.** - Added author, homepage, source, and license metadata to the skill manifest. - Specified explicit version of the inventpay-mcp package (1.0.2) in dependencies. - Improved environment variable documentation, especially around the optional withdrawal key and its usage. - Updated install/configuration instructions for safer npx usage (no `-y` flag, explicit version). - Strengthened security and usage guidance in the SKILL.md, clarifying best practices for sensitive product content.
v1.0.0
Initial release of the inventpay skill. - Accept crypto payments and run a digital storefront with automatic product delivery - Manage products, orders, and store settings via agent-friendly tools (not just text prompts) - Track balances and revenue across multiple crypto currencies - Process withdrawals to external wallets (with optional withdrawal key) - Full OpenClaw integration: install with one command and easily configure environment variables
元数据
Slug inventpay-api
版本 1.0.8
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 9
常见问题

inventpay 是什么?

Accept crypto payments, manage a digital storefront, and track balances through the InventPay REST API. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 271 次。

如何安装 inventpay?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install inventpay-api」即可一键安装,无需额外配置。

inventpay 是免费的吗?

是的,inventpay 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

inventpay 支持哪些平台?

inventpay 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 inventpay?

由 jams24(@jams24)开发并维护,当前版本 v1.0.8。

💬 留言讨论