Plonki

Register a domain

The full flow, including the cases you'll hit in production.

1. Find the name

Use search for a name the user has in mind, or suggest for ideas. Show the user the domain and register × min_years as the price.

2. Get the owner's details

The registry needs the domain owner's name, email, phone and address. Send them as contact on the first order; they're saved as your default contact. If the owner isn't you (for example your customer), pass their details as contact each time, or save them with POST /contacts and send contact_id.

For .com.au and .au you also need au_eligibility. See .com.au and .au.

3. Place the order

shell
curl https://plonki.com.au/v1/domains \
  -H "Authorization: Bearer $PLONKI_KEY" \
  -H "Idempotency-Key: signup-8271" \
  -H "Content-Type: application/json" \
  -d '{"domain": "acmecoffee.com", "years": 1, "max_price": 3399, "payment": "auto"}'

4. Handle the result

statusDo this
completedDone. Connect it (step 5).
awaiting_paymentYour balance was short (or you chose payment: "checkout"). Send the payer to checkout_url. When they pay, the domain registers and you get order.completed.
processingThe registry is slow. Poll the order or wait for the webhook. Don't place another order.
failedRead error. Payment went back to your balance.

Payment options

auto (default)Pay from balance; if it's short, return a checkout link.
balanceBalance only. Fails with insufficient_balance if short.
checkoutAlways return a checkout link, for when your customer pays.

5. Connect it

Point it at the host, add DNS records, or set nameservers.

Renewing

Domains last for the years you buy. Renew with POST /domains/{domain}/renew beforeexpires_at. Automatic renewal isn't available yet, so track expires_at on your side.