URL: /guides/billing-and-balance

---
title: Billing and balance
description: Top up the prepaid balance, set auto-top-up, and download invoices.
---

DomainGenius runs on a prepaid balance. Registrations, renewals, and transfers debit the balance. There's no per-action card charge in the steady state.

## Top up

[Dashboard → Billing → Top up](https://app.domaingenius.com.au/dashboard/billing). Pick an amount, pay with card.

Via API:

```bash
curl -X POST "https://api.domaingenius.com.au/api/v1/orgs/$DG_ORG/billing/deposit" \
  -H "Authorization: Bearer $DG_KEY" \
  -d '{ "amount_cents": 10000 }'
```

The response carries a Stripe checkout URL — open it for the user.

## Auto-top-up

Configure in the dashboard or:

```bash
curl -X PATCH "https://api.domaingenius.com.au/api/v1/orgs/$DG_ORG/billing/auto-topup" \
  -H "Authorization: Bearer $DG_KEY" \
  -d '{
    "enabled": true,
    "threshold_cents": 5000,
    "amount_cents": 20000
  }'
```

Once the balance drops below `threshold_cents`, we charge the saved default card for `amount_cents`. Failed charges trigger `balance.low` webhooks and an email.

## Default card

Add or update via the Stripe billing portal:

```bash
curl -X POST "https://api.domaingenius.com.au/api/v1/orgs/$DG_ORG/billing/portal" \
  -H "Authorization: Bearer $DG_KEY"
```

The response has a portal URL. Card data never touches our servers — Stripe holds the PAN; we hold a payment method id.

## Transactions and invoices

```bash
curl "https://api.domaingenius.com.au/api/v1/orgs/$DG_ORG/billing/transactions?limit=50" \
  -H "Authorization: Bearer $DG_KEY"
```

Each row is an immutable ledger entry — top-up, debit, refund, adjustment. Sum the column to derive the balance.

Tax-compliant invoices for top-ups are PDFs available from the dashboard. We're GST-registered in Australia; invoices include ABN and tax breakdown.

## Refunds

Failed registrations refund automatically — the debit ledger row is paired with a same-amount credit. You'll see both rows in the transaction list.

For voluntary refunds (e.g. you topped up and changed your mind), email [billing@domaingenius.com.au](mailto:billing@domaingenius.com.au). We refund unspent balance to the original payment method, less any Stripe fees we paid.
