{
  "schemaVersion": "1.0",
  "item": {
    "slug": "revolut-business",
    "name": "Revolut Business",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/christianhaberl/revolut-business",
    "canonicalUrl": "https://clawhub.ai/christianhaberl/revolut-business",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/revolut-business",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=revolut-business",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "scripts/revolut.py",
      "scripts/setup.py"
    ],
    "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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-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/revolut-business"
    },
    "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/revolut-business",
    "agentPageUrl": "https://openagent3.xyz/skills/revolut-business/agent",
    "manifestUrl": "https://openagent3.xyz/skills/revolut-business/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/revolut-business/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Revolut Business API",
        "body": "Full CLI for Revolut Business — accounts, transactions, payments, FX, exports.\n\nEntry point: python3 {baseDir}/scripts/revolut.py"
      },
      {
        "title": "Interactive Setup Wizard (recommended)",
        "body": "python3 {baseDir}/scripts/setup.py\n\nWalks you through everything: key generation, Revolut certificate upload, OAuth callback, authorization."
      },
      {
        "title": "Manual Setup",
        "body": "Python 3.10+, pip install PyJWT cryptography\nRevolut Business account with API certificate\nSee README for detailed step-by-step guide"
      },
      {
        "title": "Credentials",
        "body": "Stored in ~/.clawdbot/revolut/:\n\nprivate.pem — RSA private key (for JWT signing)\ncertificate.pem — X509 cert (uploaded to Revolut)\ntokens.json — OAuth tokens (auto-managed)\nconfig.json — client ID, domain, redirect URI\n\nEnvironment variables (in .env):\n\nREVOLUT_CLIENT_ID — from Revolut API settings\nREVOLUT_ISS_DOMAIN — your redirect URI domain (without https://)"
      },
      {
        "title": "Accounts & Balances",
        "body": "python3 {baseDir}/scripts/revolut.py accounts          # List all accounts with balances\npython3 {baseDir}/scripts/revolut.py balance            # Total EUR balance\npython3 {baseDir}/scripts/revolut.py accounts --json    # JSON output"
      },
      {
        "title": "Transactions",
        "body": "python3 {baseDir}/scripts/revolut.py transactions                    # Last 20\npython3 {baseDir}/scripts/revolut.py tx -n 50                       # Last 50\npython3 {baseDir}/scripts/revolut.py tx --since 2026-01-01           # Since date\npython3 {baseDir}/scripts/revolut.py tx --since 2026-01-01 --to 2026-01-31\npython3 {baseDir}/scripts/revolut.py tx -a Main                     # Filter by account\npython3 {baseDir}/scripts/revolut.py tx --type card_payment          # Filter by type\npython3 {baseDir}/scripts/revolut.py tx --json                      # JSON output\n\nTransaction types: card_payment, transfer, exchange, topup, atm, fee, refund"
      },
      {
        "title": "Counterparties",
        "body": "python3 {baseDir}/scripts/revolut.py counterparties     # List all\npython3 {baseDir}/scripts/revolut.py cp --name \"Lisa\"   # Search by name\npython3 {baseDir}/scripts/revolut.py cp --json"
      },
      {
        "title": "Payments",
        "body": "# Send payment (with confirmation prompt)\npython3 {baseDir}/scripts/revolut.py pay -c \"Lisa Dreischer\" --amount 50.00 --currency EUR -r \"Lunch\"\n\n# Create draft (no immediate send)\npython3 {baseDir}/scripts/revolut.py pay -c \"Lisa Dreischer\" --amount 50.00 --draft -r \"Lunch\"\n\n# Skip confirmation\npython3 {baseDir}/scripts/revolut.py pay -c \"Lisa Dreischer\" --amount 50.00 -y"
      },
      {
        "title": "Currency Exchange",
        "body": "python3 {baseDir}/scripts/revolut.py exchange --amount 100 --sell EUR --buy USD\npython3 {baseDir}/scripts/revolut.py fx --amount 500 --sell EUR --buy GBP"
      },
      {
        "title": "Internal Transfers",
        "body": "python3 {baseDir}/scripts/revolut.py transfer --from-account <ID> --to-account <ID> --amount 100"
      },
      {
        "title": "Export (CSV)",
        "body": "python3 {baseDir}/scripts/revolut.py export                           # Print CSV to stdout\npython3 {baseDir}/scripts/revolut.py export -n 200 -o transactions.csv  # Save to file\npython3 {baseDir}/scripts/revolut.py export --since 2026-01-01 -o jan.csv"
      },
      {
        "title": "Token Status",
        "body": "python3 {baseDir}/scripts/revolut.py token-info"
      },
      {
        "title": "Token Auto-Refresh",
        "body": "Access tokens expire after ~40 minutes\nAutomatically refreshed using the refresh token before API calls\nNo manual intervention needed after initial auth"
      },
      {
        "title": "Security Notes",
        "body": "Private key and tokens are stored in ~/.clawdbot/revolut/ — treat as sensitive\nPayments require explicit confirmation (use --yes to skip)\n--draft creates payment drafts that need approval in Revolut app\nNever share your private key, tokens, or client assertion JWT"
      }
    ],
    "body": "Revolut Business API\n\nFull CLI for Revolut Business — accounts, transactions, payments, FX, exports.\n\nEntry point: python3 {baseDir}/scripts/revolut.py\n\nSetup\nInteractive Setup Wizard (recommended)\npython3 {baseDir}/scripts/setup.py\n\n\nWalks you through everything: key generation, Revolut certificate upload, OAuth callback, authorization.\n\nManual Setup\nPython 3.10+, pip install PyJWT cryptography\nRevolut Business account with API certificate\nSee README for detailed step-by-step guide\nCredentials\n\nStored in ~/.clawdbot/revolut/:\n\nprivate.pem — RSA private key (for JWT signing)\ncertificate.pem — X509 cert (uploaded to Revolut)\ntokens.json — OAuth tokens (auto-managed)\nconfig.json — client ID, domain, redirect URI\n\nEnvironment variables (in .env):\n\nREVOLUT_CLIENT_ID — from Revolut API settings\nREVOLUT_ISS_DOMAIN — your redirect URI domain (without https://)\nCommands\nAccounts & Balances\npython3 {baseDir}/scripts/revolut.py accounts          # List all accounts with balances\npython3 {baseDir}/scripts/revolut.py balance            # Total EUR balance\npython3 {baseDir}/scripts/revolut.py accounts --json    # JSON output\n\nTransactions\npython3 {baseDir}/scripts/revolut.py transactions                    # Last 20\npython3 {baseDir}/scripts/revolut.py tx -n 50                       # Last 50\npython3 {baseDir}/scripts/revolut.py tx --since 2026-01-01           # Since date\npython3 {baseDir}/scripts/revolut.py tx --since 2026-01-01 --to 2026-01-31\npython3 {baseDir}/scripts/revolut.py tx -a Main                     # Filter by account\npython3 {baseDir}/scripts/revolut.py tx --type card_payment          # Filter by type\npython3 {baseDir}/scripts/revolut.py tx --json                      # JSON output\n\n\nTransaction types: card_payment, transfer, exchange, topup, atm, fee, refund\n\nCounterparties\npython3 {baseDir}/scripts/revolut.py counterparties     # List all\npython3 {baseDir}/scripts/revolut.py cp --name \"Lisa\"   # Search by name\npython3 {baseDir}/scripts/revolut.py cp --json\n\nPayments\n# Send payment (with confirmation prompt)\npython3 {baseDir}/scripts/revolut.py pay -c \"Lisa Dreischer\" --amount 50.00 --currency EUR -r \"Lunch\"\n\n# Create draft (no immediate send)\npython3 {baseDir}/scripts/revolut.py pay -c \"Lisa Dreischer\" --amount 50.00 --draft -r \"Lunch\"\n\n# Skip confirmation\npython3 {baseDir}/scripts/revolut.py pay -c \"Lisa Dreischer\" --amount 50.00 -y\n\nCurrency Exchange\npython3 {baseDir}/scripts/revolut.py exchange --amount 100 --sell EUR --buy USD\npython3 {baseDir}/scripts/revolut.py fx --amount 500 --sell EUR --buy GBP\n\nInternal Transfers\npython3 {baseDir}/scripts/revolut.py transfer --from-account <ID> --to-account <ID> --amount 100\n\nExport (CSV)\npython3 {baseDir}/scripts/revolut.py export                           # Print CSV to stdout\npython3 {baseDir}/scripts/revolut.py export -n 200 -o transactions.csv  # Save to file\npython3 {baseDir}/scripts/revolut.py export --since 2026-01-01 -o jan.csv\n\nToken Status\npython3 {baseDir}/scripts/revolut.py token-info\n\nToken Auto-Refresh\nAccess tokens expire after ~40 minutes\nAutomatically refreshed using the refresh token before API calls\nNo manual intervention needed after initial auth\nSecurity Notes\nPrivate key and tokens are stored in ~/.clawdbot/revolut/ — treat as sensitive\nPayments require explicit confirmation (use --yes to skip)\n--draft creates payment drafts that need approval in Revolut app\nNever share your private key, tokens, or client assertion JWT"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/christianhaberl/revolut-business",
    "publisherUrl": "https://clawhub.ai/christianhaberl/revolut-business",
    "owner": "christianhaberl",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/revolut-business",
    "downloadUrl": "https://openagent3.xyz/downloads/revolut-business",
    "agentUrl": "https://openagent3.xyz/skills/revolut-business/agent",
    "manifestUrl": "https://openagent3.xyz/skills/revolut-business/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/revolut-business/agent.md"
  }
}