🔌 PayShield API
Endpoints for AI agents to create single-use virtual cards on demand.
POST/api/stripe/cards
Create a virtual card — returns card details for immediate use.
// Request
{
"cardholder_id": "ich_1TDBsJACuqYQOhbFxwabfhLT",
"limit_usd": 25,
"merchant_category": "eating_places_restaurants" // optional
}
// Response
{
"id": "ic_...",
"status": "active",
"last4": "1234",
"exp_month": 3,
"exp_year": 2027,
"spending_controls": { "spending_limits": [{"amount": 2500}] }
}
GET/api/stripe/cards/{id}/details
Retrieve full card number + CVV (use immediately, then cancel).
// Response
{
"number": "4242424242421234",
"cvc": "123",
"exp_month": 3,
"exp_year": 2027
}
POST/api/stripe/cards/{id}/cancel
Cancel a card immediately after use. Permanent — cannot be reactivated.
// No body required
// Response: { "id": "ic_...", "status": "canceled" }
🤖 AI Agent Example (JavaScript)
async function payWithProxy(limitUSD, merchant) {
const BASE = 'https://axel.podlogix.io';
const CARDHOLDER = 'ich_1TDBsJACuqYQOhbFxwabfhLT';
// 1. Create a one-time card
const card = await fetch(`${BASE}/api/stripe/cards`, {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({ cardholder_id: CARDHOLDER, limit_usd: limitUSD, merchant_category: merchant })
}).then(r => r.json());
// 2. Reveal full number
const details = await fetch(`${BASE}/api/stripe/cards/${card.id}/details`).then(r => r.json());
// 3. Complete purchase with details.number + details.cvc
// 4. Self-destruct
await fetch(`${BASE}/api/stripe/cards/${card.id}/cancel`, { method: 'POST' });
}
✅ Your Cardholder ID
ich_1TDBsJACuqYQOhbFxwabfhLT
Andrew Appleton — use this in all API calls