Coding

CreditClaw

Let an AI agent pay with fresh Virtual Card credentials under owner-set limits and controls.

What it does

Give an AI agent owner-controlled payment access through linked Virtual Cards. The API registers the agent, lists active or frozen cards and their limits, and mints fresh card credentials immediately before checkout. It also defines safe handling for declines, payment challenges, and uncertain submissions.

When to use it

  • Agent checkout on merchant websites
  • Owner-limited autonomous purchases
  • Fresh card credentials per transaction
  • Payment-form completion with saved shipping details

The skill document

CreditClaw — Virtual Cards for AI Agents

CreditClaw.com gives you spending power your owner controls. Your owner creates a Virtual Card from their own Visa/Mastercard, sets its spending limit, and links it to you. When you need to pay, you mint fresh card numbers off that card and fill the merchant's payment form.

Base URL: https://creditclaw.com/api/v1

rail3 in the endpoint paths below is a literal, fixed segment (the Virtual Cards rail) — never substitute your bot ID into it.

Security

  • All requests: Authorization: Bearer (except registration, which returns your key).
  • Never send your API key to any domain other than creditclaw.com, and never share it — it's your identity and can spend your owner's money.
  • Mint fresh card numbers immediately before each purchase. Never reuse or cache numbers across purchases — discard them after submitting the payment form.
  • Spending limits are baked into each Virtual Card and enforced at the card network. Your owner can freeze or revoke a card at any time.

1. Register (once)

Already have a CREDITCLAW_API_KEY from a previous session? You're registered — skip to step 3. Never re-register; that creates a new bot that must be re-linked.

curl -X POST https://creditclaw.com/api/v1/bots/register \
  -H "Content-Type: application/json" \
  -d '{
    "bot_name": "my-research-bot",
    "owner_email": "jonathan@example.com",
    "pairing_code": "483-921"
  }'
  • bot_name and owner_email required. pairing_code (from your human's onboarding screen) links you to their account automatically — include it whenever you have one.
  • No pairing code? Register without it and give your human the owner_verification_url from the response so they can claim you.
  • Save the api_key from the response immediately — it cannot be retrieved again. Store it where your platform stores credentials (default: env var CREDITCLAW_API_KEY; OpenClaw: ~/.openclaw/.env). Load it next session.
  • Rate limit: 3 registrations per hour per IP.

2. Your Owner Creates a Virtual Card

Only your owner can create Virtual Cards, at https://creditclaw.com/virtual-cards. Each card has its own spending limit, expiry date, and bot link. The card must be linked to you and active before you can use it. If you have no usable card, ask your human — don't poll.

3. See Your Cards

curl https://creditclaw.com/api/v1/bot/rail3/cards \
  -H "Authorization: Bearer $CREDITCLAW_API_KEY"

Returns your linked cards with card_id, card_name, status, is_frozen, and spending limits (limit_amount_cents per limit_period; intent_mode: "open" means no cap). Pick the card_id you'll pay with — it must have status: "active" and is_frozen: false. Limits are enforced at the card network, so an over-limit purchase declines on its own.

4. Pay: Mint Fresh Card Numbers

When you're on the merchant's checkout page and ready to pay:

curl -X POST https://creditclaw.com/api/v1/bot/rail3/cards/vc_9d2f.../credentials \
  -H "Authorization: Bearer $CREDITCLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "merchant": {
      "name": "Acme Books",
      "url": "https://acmebooks.com",
      "country_code": "US"
    }
  }'

The merchant body is optional but recommended — numbers minted with the real merchant's name and site have the best acceptance odds. An empty body ({}) works too.

Response:

{
  "card_id": "vc_9d2f...",
  "card_number": "4111111111111111",
  "exp_month": "12",
  "exp_year": "2027",
  "cvc": "123",
  "cardholder_name": "Jonathan Miller",
  "credential_expires_at": "2026-08-13T15:20:00.000Z"
}

The response may include extra helper fields (credential_merchant, usage_notes) — safe to ignore.

Fill the merchant's payment form:

Form fieldUse
Card numbercard_number
Expiry (MM/YY)exp_month / last 2 digits of exp_year
CVC / CVV / security codecvc
Name on cardcardholder_name (if null, ask your human)
  • Shipping address needed? GET /bot/shipping-addresses returns your owner's saved addresses as markdown (address_count: 0 = none saved — ask your human).
  • Card fields are often inside iframes (Stripe, Shopify, etc.) — interact with the frame; the submit button is usually on the main page.
  • Hard stops: CAPTCHA, 3-D Secure, or OTP challenges — stop and tell your human. Never attempt to bypass them.
  • Discard the numbers immediately after submitting. Next purchase = new mint call.

After you submit: success → done, tell your human what you bought. Declined → stop and tell your human; never retry a declined payment. Page hangs or errors after submit → the charge may still have gone through; don't mint again, tell your human so they can check their card statement.

Errors

StatuserrorWhat to do
401unauthorizedAPI key wrong or missing. Load the saved one — don't re-register.
400validation_error / invalid_jsonFix the request body (merchant fields: name, url, country_code 2 letters) and retry.
409duplicate_registrationAlready registered with this name + email. Load your saved key.
404card_not_foundCheck the card_id against GET /bot/rail3/cards.
403card_not_linkedCard isn't linked to you. Ask your human to link it.
403card_frozenOwner froze the card. Ask them to unfreeze it.
403card_not_activeCard isn't authorized yet, or is expired/revoked. Your human must fix it.
403master_guardrailOwner's account-wide guardrail is blocking purchases. Tell them; don't retry.
409card_expiredThe card's permission expired — your human must create a new Virtual Card.
412reauth_requiredOwner must sign in at creditclaw.com to re-enable autonomous purchases. Tell them.
503auth_transientTemporary issue — retry shortly.
429rate_limitedSlow down; retry after retry_after_seconds.
4xx/5xxcredential_mint_failedProvider issue minting numbers. Retry once with a fresh call.

Questions people ask

How does the owner control the agent’s spending?
The owner creates and links each Virtual Card, sets its spending limit and expiry, and can freeze or revoke it. Limits are enforced at the card network.
Can card details be reused for another purchase?
No. Mint fresh credentials immediately before each purchase, then discard them after submitting the payment form; never cache or reuse them.
What happens if checkout requires CAPTCHA, 3-D Secure, or an OTP?
Stop and notify the owner. The instructions explicitly prohibit attempts to bypass these challenges.

Related skills

Search products, prepare confirmed checkouts, and manage tracking, returns, and reorders.

79 installs128 stars

Registers and connects an AI agent to OpenClawCity, then keeps its city instructions current.

50 installs2 stars

Read and manage Google Merchant Center resources through v1 APIs with managed OAuth and approval-gated writes.

231 installs5 stars

Query Shopee escrow, payouts, wallet activity, installments, and income reports for an authorized store.

135 installs

Run OpenJobs agent workflows on Solana through the official CLI, from onboarding to payout.

75 installs2 stars

Access supported Stripe administration and payment APIs through managed OAuth.

720 installs29 stars