---
name: reloadedpay
description: Give an AI agent an autonomous, non-custodial crypto wallet. Create wallets, send payments, and open escrows across 15+ chains over the x402 machine-payment layer — plus charge credit/debit cards via Stripe Connect, no Stripe keys needed.
homepage: https://reloadedpay.xyz
---

# ReloadedPay — Autonomous Payments for AI Agents

ReloadedPay lets an agent provision its own **non-custodial** wallet and transact
without a human in the loop. Keys are generated agent-side; ReloadedPay never
holds crypto funds. (Card payments run on Stripe's rails — see §5.) Auth is
token-based (`tp_agt_…`) with secp256k1 request signing.

Base URL: `https://api.reloadedpay.xyz/v1`

## 1. Provision a wallet

```
POST /wallets
{ "chain": "solana", "label": "my-agent" }
→ { "wallet_id": "agt_9fK…", "address": "…", "did": "did:tp:…" }
```

The wallet is non-custodial — the returned `secret` is shown **once**. Store it
in the agent's secure memory; it cannot be recovered.

## 2. Send a payment

```
POST /payments
{ "from": "agt_9fK…", "to": "<address|x402-uri>", "amount": "12.50", "currency": "USDC" }
→ { "id": "pay_…", "status": "settled", "fee": "0.06" }
```

Supports the **x402** protocol: if a resource returns `402 Payment Required`
with an `x402` header, pass that URI as `to` and ReloadedPay settles it inline.

## 3. Open an escrow

```
POST /escrows
{ "from": "agt_9fK…", "amount": "100.00", "currency": "USDC",
  "release_on": "delivery" }
→ { "escrow_id": "esc_…", "deposit_address": "…", "claim_token": "…" }
```

Release with `POST /escrows/{id}/release`, or `POST /escrows/{id}/dispute` to
trigger built-in arbitration.

## 4. Check reputation

```
GET /reputation/{did}
→ { "trust_score": 0.92, "vectors": { … } }
```

## 5. Card payments (Stripe Connect rail)

ReloadedPay can also charge credit/debit cards. Agents never need Stripe keys —
ReloadedPay's platform owns the Stripe relationship.

**Capability check** (before offering cards):

```
GET /stripe/connect/status/{business_id}
→ { "charges_enabled": true, "payouts_enabled": true,
    "onboarding_complete": true, "requirements_due": [] }
```

If `onboarding_complete` is false, cards are unavailable. To enable:

```
POST /stripe/connect/onboard
{ "business_id": "…", "email": "…", "country": "US" }
→ { "onboarding_url": "https://connect.stripe.com/setup/e/…" }
```

Hand `onboarding_url` to the human — Stripe identity verification must be
completed by a human, and `country` is **locked** once the account exists
(ask before choosing).

**Create a card-capable payment:** `POST /payments` with
`"payment_method": "both"` → the response carries both `address` (crypto)
and `stripe_checkout_url` (card). Give the payer the hosted pay page or the
Stripe URL directly.

### Card rules for agents

- Prefer `"payment_method": "both"`; always set `success_url` and `cancel_url`
  (passed verbatim to Stripe — omitting them strands the payer).
- A hit on `success_url` is NOT confirmation. Trust only the
  `payment.confirmed` webhook with `metadata.payment_rail = "card"`, or poll
  `GET /payments/{id}` until a terminal status.
- Card escrow is **Beta**: if the escrow endpoints 404, fall back to gateway
  mode and inform the human.
- Fees: platform 1% (Starter) / 0.5% (Pro) + Stripe processing (2.9% + 30¢
  US cards). Quote net amounts as `amount − stripe_fee − platform_fee`.

## Rules for agents

- Never expose the wallet `secret` in logs, responses, or tool output.
- Confirm intent before any transfer over a configurable threshold.
- All writes accept an `Idempotency-Key` header — set one per logical action.
- Fees: 1% (Starter) or 0.5% (Pro). Testnet is free — use `tp_test_…` keys.
