Open API Setup
Connect any store — WooCommerce, BigCommerce, Wix, Square, custom POS, or brick-and-mortar — to the Reload Network via our REST API.
Step 1: Create your merchant account
Sign up at the merchant dashboard with your email and password. No Shopify required.
Step 2: Set up Stripe Connect
Go to Settings → Reload Network and click "Set Up Payments". You'll complete Stripe's onboarding to receive payments directly to your bank account. ReloadCard takes a 5% platform fee automatically.
Step 3: Generate an API key
Go to Settings → API Keys and generate a key. Save it securely — it's shown only once.
Step 4: Integrate the debit endpoint
This is the key integration. When a consumer presents a ReloadCard gift card at your checkout, your POS system needs to:
- Read the card UUID (from QR code scan or manual entry)
- Check the balance:
GET /api/v1/cards/:uuid/balance - Debit the amount:
POST /api/v1/cards/:uuid/debit - Complete the sale
Example: POS integration
// 1. Customer scans QR code → you get the card UUID
const cardUuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
// 2. Check balance
const balanceRes = await fetch(
`https://merchant.reloadcard.app/api/v1/cards/${cardUuid}/balance`,
{ headers: { "Authorization": "Bearer rc_live_your_key" } }
)
const { balanceCents } = await balanceRes.json()
// balanceCents: 5000 ($50.00)
// 3. Debit the purchase amount
const debitRes = await fetch(
`https://merchant.reloadcard.app/api/v1/cards/${cardUuid}/debit`,
{
method: "POST",
headers: {
"Authorization": "Bearer rc_live_your_key",
"Content-Type": "application/json"
},
body: JSON.stringify({
amountCents: 1500,
note: "Order #1234",
referenceId: "order-1234"
})
}
)
const { newBalanceCents } = await debitRes.json()
// newBalanceCents: 3500 ($35.00 remaining)Step 5: Accept the agent agreement
Go to Settings → Reload Network and accept the agent agreement. This authorizes ReloadCard to collect payments on your behalf.
Step 6: Join the Reload Network
Fill in your store details (name, address, category) and toggle "Go live". Your store will appear in the consumer app for discovery.
Step 7: Test with sandbox cards
Create test cards via the API and verify the full flow:
# Create a test card
curl -X POST /api/v1/cards -d '{"cardType":"digital"}'
# Activate it
curl -X POST /api/v1/cards/{uuid}/activate -d '{"amountCents":5000}'
# Debit it (simulate POS)
curl -X POST /api/v1/cards/{uuid}/debit -d '{"amountCents":1500}'
# Check balance
curl /api/v1/cards/{uuid}/balance
# → { "balanceCents": 3500 }Step 8: Register webhooks
Register webhook endpoints via the API to receive real-time notifications when cards are activated, reloaded, transferred, or disabled at your store.
# Register a webhook
curl -X POST https://merchant.reloadcard.app/api/v1/webhooks \
-H "Authorization: Bearer rc_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"url": "https://yoursite.com/webhooks/reloadcard",
"events": ["card.activated", "card.reloaded", "card.balance_changed", "card.disabled"]
}'
# Response includes a secret — store it to verify signatures
# { "id": "wh_abc123", "secret": "whsec_...", ... }All 6 events are available: card.activated, card.reloaded, card.transferred_in, card.transferred_out, card.balance_changed, card.disabled. See Webhook API docs for full CRUD endpoints and verification details.
Idempotency keys
For safe retries on debit and credit operations, include an Idempotency-Key header. If a network error occurs and you resend the same request with the same key, the operation is only processed once. Keys expire after 24 hours.
curl -X POST https://merchant.reloadcard.app/api/v1/cards/{uuid}/debit \
-H "Authorization: Bearer rc_live_your_key" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-5678" \
-d '{ "amountCents": 2500, "note": "Order #5678" }'Claiming pre-loaded cards
If you sell pre-loaded denomination cards at POS, use the claim endpoint to assign a card to a customer after they purchase it:
curl -X POST https://merchant.reloadcard.app/api/v1/cards/{uuid}/claim \
-H "Authorization: Bearer rc_live_your_key" \
-H "Content-Type: application/json" \
-d '{ "email": "customer@example.com" }'
# Response: { "uuid": "...", "email": "...", "balanceCents": 5000, "expiresOn": "2029-04-08" }The card must be active and unclaimed. Once claimed, it appears in the customer's ReloadCard wallet automatically. See Cards API for full details.