{
  "schemaVersion": "1.0",
  "item": {
    "slug": "paddle",
    "name": "Paddle",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/ivangdavila/paddle",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/paddle",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/paddle",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=paddle",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "api.md",
      "memory-template.md",
      "setup.md",
      "webhooks.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "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."
        },
        {
          "label": "Upgrade existing",
          "body": "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."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/paddle"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/paddle",
    "agentPageUrl": "https://openagent3.xyz/skills/paddle/agent",
    "manifestUrl": "https://openagent3.xyz/skills/paddle/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/paddle/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "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."
      },
      {
        "label": "Upgrade existing",
        "body": "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."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Setup",
        "body": "On first use, read setup.md for integration guidelines."
      },
      {
        "title": "When to Use",
        "body": "User needs to integrate Paddle for SaaS payments. Agent handles API calls, webhook verification, checkout setup, subscription management, and tax compliance configuration."
      },
      {
        "title": "Architecture",
        "body": "Memory lives in ~/paddle/. See memory-template.md for structure.\n\n~/paddle/\n├── memory.md     # API keys, environment, product IDs\n└── webhooks.md   # Webhook endpoints and event handling"
      },
      {
        "title": "Quick Reference",
        "body": "TopicFileSetup processsetup.mdMemory templatememory-template.mdAPI endpointsapi.mdWebhook handlingwebhooks.md"
      },
      {
        "title": "1. Always Use Sandbox First",
        "body": "Test ALL integrations in sandbox before production\nSandbox API: https://sandbox-api.paddle.com\nProduction API: https://api.paddle.com\nNever skip sandbox testing for payment flows"
      },
      {
        "title": "2. Verify Webhook Signatures",
        "body": "Every webhook MUST be verified before processing\nUse the webhook secret from Paddle dashboard\nReject requests with invalid signatures immediately\nLog failed verifications for debugging"
      },
      {
        "title": "3. Handle Subscription States Correctly",
        "body": "StateMeaningActionactivePaying customerGrant accesstrialingIn trial periodGrant access, remind before endpast_duePayment failedRetry period, warn userpausedUser pausedRestrict access, allow resumecanceledSubscription endedRevoke access at period end"
      },
      {
        "title": "4. Store Paddle IDs Correctly",
        "body": "customer_id (ctm_xxx) — unique per customer\nsubscription_id (sub_xxx) — unique per subscription\ntransaction_id (txn_xxx) — unique per payment\nprice_id (pri_xxx) — your pricing configuration\nMap these to your internal user/subscription records"
      },
      {
        "title": "5. Use Paddle Retain for Dunning",
        "body": "Enable Paddle Retain in dashboard for failed payments\nIt handles retry logic and customer communication\nTrack subscription.past_due events but let Paddle retry first\nOnly take action after subscription.canceled from failed payments"
      },
      {
        "title": "Common Traps",
        "body": "Hardcoding price IDs → Use environment variables, prices change between sandbox/production\nProcessing webhooks without verification → Security vulnerability, anyone can fake events\nIgnoring past_due state → User loses access during retry window, bad UX\nNot handling proration → Confusing charges when users upgrade/downgrade mid-cycle\nTesting with production keys → Real charges, angry customers, refund headaches"
      },
      {
        "title": "External Endpoints",
        "body": "EndpointData SentPurposehttps://api.paddle.comCustomer data, subscription infoPayment processinghttps://sandbox-api.paddle.comTest customer dataSandbox testing\n\nNo other data is sent externally."
      },
      {
        "title": "Security & Privacy",
        "body": "Data that leaves your machine:\n\nCustomer email and name sent to Paddle for billing\nPayment amounts and subscription details\nIP addresses for tax calculation\n\nData that stays local:\n\nAPI keys stored in environment variables\nWebhook secrets never logged\nInternal user mappings\n\nThis skill does NOT:\n\nStore credit card numbers (Paddle handles PCI compliance)\nAccess payment methods directly\nShare customer data with third parties beyond Paddle"
      },
      {
        "title": "Trust",
        "body": "By using this skill, customer and payment data is sent to Paddle.\nOnly install if you trust Paddle with your billing data."
      },
      {
        "title": "Related Skills",
        "body": "Install with clawhub install <slug> if user confirms:\n\nbilling — General billing patterns\npayments — Payment processing\nsubscriptions — Subscription management"
      },
      {
        "title": "Feedback",
        "body": "If useful: clawhub star paddle\nStay updated: clawhub sync"
      }
    ],
    "body": "Setup\n\nOn first use, read setup.md for integration guidelines.\n\nWhen to Use\n\nUser needs to integrate Paddle for SaaS payments. Agent handles API calls, webhook verification, checkout setup, subscription management, and tax compliance configuration.\n\nArchitecture\n\nMemory lives in ~/paddle/. See memory-template.md for structure.\n\n~/paddle/\n├── memory.md     # API keys, environment, product IDs\n└── webhooks.md   # Webhook endpoints and event handling\n\nQuick Reference\nTopic\tFile\nSetup process\tsetup.md\nMemory template\tmemory-template.md\nAPI endpoints\tapi.md\nWebhook handling\twebhooks.md\nCore Rules\n1. Always Use Sandbox First\nTest ALL integrations in sandbox before production\nSandbox API: https://sandbox-api.paddle.com\nProduction API: https://api.paddle.com\nNever skip sandbox testing for payment flows\n2. Verify Webhook Signatures\nEvery webhook MUST be verified before processing\nUse the webhook secret from Paddle dashboard\nReject requests with invalid signatures immediately\nLog failed verifications for debugging\n3. Handle Subscription States Correctly\nState\tMeaning\tAction\nactive\tPaying customer\tGrant access\ntrialing\tIn trial period\tGrant access, remind before end\npast_due\tPayment failed\tRetry period, warn user\npaused\tUser paused\tRestrict access, allow resume\ncanceled\tSubscription ended\tRevoke access at period end\n4. Store Paddle IDs Correctly\ncustomer_id (ctm_xxx) — unique per customer\nsubscription_id (sub_xxx) — unique per subscription\ntransaction_id (txn_xxx) — unique per payment\nprice_id (pri_xxx) — your pricing configuration\nMap these to your internal user/subscription records\n5. Use Paddle Retain for Dunning\nEnable Paddle Retain in dashboard for failed payments\nIt handles retry logic and customer communication\nTrack subscription.past_due events but let Paddle retry first\nOnly take action after subscription.canceled from failed payments\nCommon Traps\nHardcoding price IDs → Use environment variables, prices change between sandbox/production\nProcessing webhooks without verification → Security vulnerability, anyone can fake events\nIgnoring past_due state → User loses access during retry window, bad UX\nNot handling proration → Confusing charges when users upgrade/downgrade mid-cycle\nTesting with production keys → Real charges, angry customers, refund headaches\nExternal Endpoints\nEndpoint\tData Sent\tPurpose\nhttps://api.paddle.com\tCustomer data, subscription info\tPayment processing\nhttps://sandbox-api.paddle.com\tTest customer data\tSandbox testing\n\nNo other data is sent externally.\n\nSecurity & Privacy\n\nData that leaves your machine:\n\nCustomer email and name sent to Paddle for billing\nPayment amounts and subscription details\nIP addresses for tax calculation\n\nData that stays local:\n\nAPI keys stored in environment variables\nWebhook secrets never logged\nInternal user mappings\n\nThis skill does NOT:\n\nStore credit card numbers (Paddle handles PCI compliance)\nAccess payment methods directly\nShare customer data with third parties beyond Paddle\nTrust\n\nBy using this skill, customer and payment data is sent to Paddle. Only install if you trust Paddle with your billing data.\n\nRelated Skills\n\nInstall with clawhub install <slug> if user confirms:\n\nbilling — General billing patterns\npayments — Payment processing\nsubscriptions — Subscription management\nFeedback\nIf useful: clawhub star paddle\nStay updated: clawhub sync"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ivangdavila/paddle",
    "publisherUrl": "https://clawhub.ai/ivangdavila/paddle",
    "owner": "ivangdavila",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/paddle",
    "downloadUrl": "https://openagent3.xyz/downloads/paddle",
    "agentUrl": "https://openagent3.xyz/skills/paddle/agent",
    "manifestUrl": "https://openagent3.xyz/skills/paddle/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/paddle/agent.md"
  }
}