# Placing an order

You can buy more bandwidth (residential / mobile) or new ISP IPs in two ways — from the dashboard, or via the [Orders API](/api-reference/orders.md). This page is the dashboard flow.

## Residential / Mobile — buying bandwidth

1. Left nav → **Residential** (or **Mobile**) → **Buy traffic**.
2. Pick a **plan**:
   * **Pay-as-you-go** — per-GB rate, no commitment
   * **Starter / Pro / Business / Enterprise** — bigger upfront commit, lower per-GB rate
3. Enter quantity in GB. The dashboard shows the unit price and total.
4. Click **Order** → confirmation modal → **Confirm**.
5. Bandwidth is added to your account **immediately**.

\[screenshot: residential order form]

The bandwidth is shared across all sub-users of that product. To split usage between teams, use separate sub-users with per-sub-user usage caps.

## ISP — buying static IPs

1. Left nav → **ISP** → **Order new IPs**.
2. Pick **country**.
3. (Optional) Pick **city** — available only in tier-1 markets ([Locations](/products/overview-2/locations.md)).
4. (Optional) Pick a specific **ASN** — Comcast vs Charter etc. Premium ASNs cost more.
5. Pick **quantity** — minimum 5, maximum 5,000 per order.
6. Pick **billing period** — monthly or annual (10% discount).
7. Pick which **sub-user** the IPs are bound to.
8. **Order**.

\[screenshot: ISP order form with inventory preview]

After confirmation, the dashboard transitions to a **provisioning** state. T1 countries typically deliver in 1–5 minutes; long-tail countries can take up to 24 hours. You receive an email when ready.

## What if inventory isn't enough?

The order form shows live inventory per city/ASN. If you request more than available, two options:

* **Wait** — the order queues until inventory frees up
* **Substitute** — the dashboard picks the closest city/ASN with inventory. Flagged in the email so you can audit.

## Order from the API

```bash
# Residential
curl -X POST -H "Authorization: Bearer API_KEY" \
     -d '{"product":"residential","gb":50}' \
     https://api.helodata.com/v1/orders

# ISP
curl -X POST -H "Authorization: Bearer API_KEY" \
     -d '{"product":"isp","country":"us","city":"newyork","quantity":20,"months":1}' \
     https://api.helodata.com/v1/orders
```

Full API reference: [Orders](/api-reference/orders.md).

## Payment

Orders use your account **balance** first, then your default payment method for the shortfall. To pre-fund, top up the balance under **Billing → Payment methods**.

If a payment is needed and your card is declined, the order fails with `insufficient_balance`. The dashboard shows the rejection reason — fix the payment method and re-order.

## Cancellation

Bandwidth orders can't be cancelled once placed — the credits are non-refundable. For ISP batches you can release IPs anytime (no refund for the remaining period); see [IP management](/products/overview-2/ip-management.md).

## Common pitfalls

* **Ordering before KYC** — Mobile and ISP block ordering until KYC is approved. Submit KYC before the order page.
* **Wrong sub-user for ISP** — once a batch is bound to a sub-user, the IPs use **that** sub-user's password. Re-binding requires re-downloading the list.
* **City over-subscribed** — if your monitor depends on a specific city, set the dashboard alert for low inventory under **Settings → Alerts**.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.helodata.com/dashboard/placing-an-order.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
