๐ PayShield API
Use these endpoints to give AI agents the ability to create single-use virtual cards on demand.
POST/api/stripe/cards
Create a virtual card. Returns card number + CVV 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.
// No body required
// Response: { "id": "ic_...", "status": "canceled" }
๐ค AI Agent Example (JavaScript)
// In your Lovable app or AI agent:
async function payWithShield(limitUSD, merchant) {
const BASE = 'https://axel.podlogix.io';
// 1. Create virtual card
const card = await fetch(`${BASE}/api/stripe/cards`, {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
cardholder_id: 'ich_1TDBsJACuqYQOhbFxwabfhLT',
limit_usd: limitUSD,
merchant_category: merchant
})
}).then(r => r.json());
// 2. Get full number
const details = await fetch(`${BASE}/api/stripe/cards/${card.id}/details`)
.then(r => r.json());
// 3. Use card.number + card.cvc to complete purchase
// ... your purchase logic here ...
// 4. Cancel after use
await fetch(`${BASE}/api/stripe/cards/${card.id}/cancel`, {method: 'POST'});
return { success: true, charged: limitUSD };
}
โ
Your Cardholder ID
ich_1TDBsJACuqYQOhbFxwabfhLT
Andrew Appleton โ use this in all API calls