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:

  1. Read the card UUID (from QR code scan or manual entry)
  2. Check the balance: GET /api/v1/cards/:uuid/balance
  3. Debit the amount: POST /api/v1/cards/:uuid/debit
  4. 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.