Skip to main content

Overview

ACN uses Stripe Checkout for credit top-ups — a hosted payment page that handles PCI compliance, supports Apple Pay and Google Pay, and requires no payment form to build or maintain. Minimum: $5.00 · Credits land in your account within seconds of payment.

Step 1: Open Billing

Sign in to app.acn.exchange and navigate to Billing in the left sidebar. You’ll see your current credit balance and a top-up card with preset amounts.

Step 2: Select an Amount

Choose a preset or enter a custom amount:
PresetCreditsUse When
$55,000,000 creditsGetting started / testing
$1010,000,000 creditsLight usage
$2525,000,000 creditsRegular development
$5050,000,000 creditsProduction workloads
$100100,000,000 creditsHigh-volume usage
Custom amount: Enter any value ≥ $5. Credits = amount in USD × 1,000,000.

Step 3: Complete Payment on Stripe

Click Add Credits — you’ll be redirected to Stripe Checkout. Accepted payment methods:
  • Visa, Mastercard, American Express, Discover
  • Apple Pay (Safari / iOS)
  • Google Pay (Chrome / Android)
  • Link (Stripe’s saved payment method network)
Stripe handles all payment processing. ACN never sees your card details.

Step 4: Return to Dashboard

After payment, Stripe redirects you back to the ACN dashboard with a ?status=success query param. Your updated balance appears within a few seconds. If it doesn’t update immediately, wait 5–10 seconds and refresh — the webhook from Stripe may still be processing. You’ll also receive a payment confirmation email from Stripe with a receipt. A separate confirmation email from ACN confirms the credits were added.

Viewing Payment History

Past top-ups are listed under BillingPayment History in the dashboard, or via API:
curl "https://api.acn.exchange/v1/billing/payments?limit=10" \
  -H "Authorization: Bearer acn_sk_your_key"
{
  "payments": [
    {
      "id": "pay_abc123",
      "amountUsd": "25.00",
      "creditsGranted": "25000000",
      "status": "completed",
      "receiptUrl": "https://receipt.stripe.com/...",
      "createdAt": "2026-03-19T10:00:00Z",
      "completedAt": "2026-03-19T10:00:04Z"
    }
  ],
  "pagination": { "page": 1, "limit": 10, "total": 1 }
}

Via API (Programmatic Top-Up Flow)

If you’re building a billing page in your own application:
# 1. Create a Stripe Checkout session
curl -X POST https://api.acn.exchange/v1/billing/checkout \
  -H "Authorization: Bearer acn_sk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "amountUsdCents": 2500,
    "successUrl": "https://yourapp.com/billing?status=success",
    "cancelUrl": "https://yourapp.com/billing?status=cancelled"
  }'
{
  "checkoutUrl": "https://checkout.stripe.com/c/pay/cs_live_...",
  "sessionId": "cs_live_...",
  "creditsToReceive": "25000000"
}
Redirect the user to checkoutUrl. The session expires in 30 minutes.
// Example: frontend redirect
const { checkoutUrl } = await fetch('/api/billing/checkout', {
  method: 'POST',
  body: JSON.stringify({ amountUsdCents: 2500 }),
}).then(r => r.json());

window.location.href = checkoutUrl;
After payment, poll your balance to confirm it updated:
// Poll balance after returning from Stripe
async function waitForBalanceUpdate(expectedMinimum: number, maxAttempts = 10) {
  for (let i = 0; i < maxAttempts; i++) {
    const { balanceCredits } = await fetchBalance();
    if (Number(balanceCredits) >= expectedMinimum) return balanceCredits;
    await new Promise(r => setTimeout(r, 1000));
  }
}

Cancellation

If the user cancels on the Stripe page, they’re redirected to cancelUrl with no charge. No payment is created, and your balance is unchanged.

Common Questions

Do credits expire? No. Credits carry over indefinitely with no expiry date. Can I get a refund? Credits are non-refundable, but unused credits remain in your account permanently. Is there a maximum top-up? The maximum single top-up is $10,000. Contact support for larger amounts. Can I use test cards? In the devnet environment, use Stripe test card 4242 4242 4242 4242 with any future expiry and any CVC. Will I get an invoice? Yes — Stripe generates a receipt for every payment, accessible in your dashboard under BillingPayment History.