Skip to content
Coritan Docs

Order a floating IP

Order a single IPv4 or IPv6 address or an IPv4 subnet from a region's pool, pay for it on the same page, and follow an open order.

View as Markdown

Order a floating IP when you need an IP address that stays on your account as instances and servers come and go. The Floating IPs order page asks for the size and the region the address comes from, and can add a DDoS Shield profile to the same order. We hold an address for you while you pay, then assign it to your account.

To get addresses with a new instance or server, add them on its own order page instead: Create an instance takes up to four floating IPs, and Order a server takes one dedicated address. Those add-ons are IPv4 addresses. For an IPv6 address, order it here, then attach it to the instance.

  • Know which region your instance or server runs in. We announce a floating IP from its pool's region, so choose a pool in the same region. IP pools and regions explains the pools.
  • You pay on the order page. Credit on your account pays first, and a saved payment method, a new card or a wallet pays the rest. To pay from credit alone, add credit first.
  1. In the dashboard, go to Floating IPs and select Order floating IP. You can also select the Floating IPs card on the Order a service page. Either way, the order page opens at https://www.coritan.com/dashboard/order/floating-ips.
  2. Under Size, choose a single IPv4 address, a single IPv6 address, or an IPv4 subnet when a server needs several addresses. An IPv6 address attaches to Cloud Compute instances only. Each card shows its price for the billing cycle and any one-time setup fee. We start with the size the catalogue marks Popular, or else the first size in stock. A size marked Sold out is greyed out and cannot be chosen, and its card says why.
  3. If the sizes sell more than one billing cycle, choose one at the top of Size. A longer term names what it saves against paying monthly. Hourly is offered once your account has made its first deposit. Until then Hourly billing needs a deposit first names the amount, and Top up credit opens Billing.
  4. Under Region, choose a pool in the region where your instance or server runs. The pools are grouped by region, and each shows its airport code, such as FRA. We start with a pool in your own region. A pool marked Sold out has no address of this size left. For an IPv6 address, the section lists only the pools that sell IPv6, so it can offer fewer regions.
  5. Under Add-ons, you can turn on the DDoS Shield profile card. A profile is one set of traffic rules and limits that several of your addresses share, and it goes on the same first invoice. Without one, DDoS Shield still filters the address at no charge, and the address can have settings of its own at no charge. Give it a Profile name, or we name it after the order, such as Shield profile for #215.
  6. Check the summary under Your order. It lists the Size and the Region, each with Change beside it, then what we bill under Billed and the Total.
  7. If you have a promo code, enter it in Promo code. We check it as you type, and the message under the field says whether it applies. A code that cannot be used on this order greys out the button until you clear it or change it.
  8. Under Due today, read what you pay now. Under Pay with, choose Account credit when it covers the amount, a saved payment method, a new card, or a wallet such as Google Pay. We start with your default saved method.
  9. If a verification check appears in the summary, complete it. It appears when the size costs nothing, even if the add-on costs money.
  10. Select the button. It reads Place order when nothing is due and Order for free when nothing in the order costs anything. When you pay now it names the amount due, such as Pay $2.00 and order. One click places the order and pays for it, and you stay on the page until it is done.

If the button is greyed out, read the line under it. It names the first answer still missing or the reason we refused the order, such as Choose a region., No address of this size is in stock. Choose another size. or a promo code that does not apply, and selecting it takes you to the section that fixes it. If we refuse the order or the payment is declined, the reason appears under the button and your choices stay as they were. We never place an order twice.

When the order is placed, its receipt page opens, titled Order placed. If the payment could not be taken after we placed the order, the invoice waits on that page, as Pay and follow the order describes, and the order waits under Billing, as Follow the order describes.

The order page chooses the pool, and so does every order. There is no separate list of pools. IP pools and regions explains what the Region section shows.

The receipt page follows the order until the address is assigned. It shows three steps along the top:

  1. Order placed.
  2. The payment step. It reads Payment due while the invoice is unpaid, and Paid once it is.
  3. Setting up while we assign the address to your account, then Ready.

While the payment is due, the title reads Order placed, payment due and you pay under Pay invoice. We hold the address in the pool for you meanwhile. Pay before the hold on the address expires, because after that we release the address back to the pool. We cancel an order whose invoice is still unpaid after two days, by default.

If you leave the page, the order waits on the Subscriptions tab of Billing, where the Pending filter lists it, and its invoice is on the Invoices tab. The Floating IPs page also says so under its list, with a link to Billing.

Once we assign the address, the title reads Your order is ready and the floating IP appears on the Floating IPs page.

You can cancel an order until its invoice is paid. The dashboard has no button for this. Leave the invoice unpaid and we release the address and void the invoice when the hold ends, or cancel the order with the API, as With the API describes.

The held address goes back to the pool and we void the unpaid invoice. Once the invoice is paid and the page reads Setting up, you cannot cancel the order this way: wait until the floating IP appears on the Floating IPs page, then cancel the floating IP.

The floating IP appears on the Floating IPs page with the badge Unattached. It is yours, DDoS Shield filters its traffic, and you can attach it to an instance or a server. An IPv6 address attaches to an instance only. A DDoS Shield profile ordered with it protects it as soon as both are ready.

This size is out of stock
No pool has an address of this size left. Choose another size, or check back later. Pools refill as other customers release addresses.
Choose a region.
Choose a pool under Region before you place the order.
Not open yet
Coritan has no Floating IP addresses in stock yet, so the button stays off. Check back later. GET /availability says whether any address is in stock.
Could not load the pools
The list of pools did not load. Reload the page.
Complete the verification check.
The size costs nothing, so the order needs the check in the summary. Complete it, then place the order.
No available addresses in the selected pool
The pool ran out while you were ordering. Choose another pool in the same region, or another size.
There are no floating IP addresses in stock right now. Try again later. or There are no floating IP addresses in stock in that location right now. Choose another location.
Coritan has no address of this kind to give you, or none in the pool you chose. It refuses the order before it takes any payment. Choose another pool, or order later. The API answers 422 with code set to out_of_stock, and GET /availability tells you whether any address is in stock.
An identical IP order is already in progress; retry in a moment
The same order is being placed from another tab or request. Wait a moment, then look for it under Billing before you order again.
The order page stays at Payment due
The invoice is not paid yet. Pay it under Pay invoice, or later under Billing, as Pay an invoice describes.
The order has the expired status, and last_error reads Checkout hold expired; inventory returned to pool
We released the address you were holding because the invoice stayed unpaid. Place a new order.
This IP order can no longer be cancelled
The order is paid and we are assigning the address, or it has already ended. Once the floating IP appears on the Floating IPs page, cancel it if you no longer want it.
This IP is already provisioned
The address is already on your account. Cancel it from its Billing tab instead.

An order goes through POST /api/v1/services/order, the endpoint every product uses. Gather three values first.

  1. Find the plan. GET /api/v1/products/ lists the catalogue. Floating IP plans have module_name set to ip, and each has a list of pricing rows. A row's id is the pricing_id for one billing period at its price.

  2. Find a pool with stock of the size you want, as IP pools and regions describes:

    Shell
    curl "https://api.coritan.com/api/v1/client/ips/pools?prefix_len=29&region=fra" \
      -H "Authorization: Bearer $CORITAN_TOKEN"
    

    For an IPv6 address, ask for version=ipv6 and leave prefix_len out.

  3. Choose an idempotency key for the order: 1–64 letters, digits, ., _, : or -. Use a new key for each new order.

Then place the order:

Shell
curl -X POST https://api.coritan.com/api/v1/services/order \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "product_id": 31,
    "pricing_id": 87,
    "config": {"pool_id": 4, "prefix_len": 29},
    "idempotency_key": "subnet-fra-2026-09-25"
  }'

config.pool_id is required. config.prefix_len takes the plan's size when you leave it out, and any other size is refused. We take the address family from the plan as well, so an order for an IPv6 address sends pool_id alone. With "allow_pool_fallback": true in config, we take the address from any other pool with stock when the chosen one has none left, and that pool can be in another region.

To add a DDoS Shield profile, list it in addons, as Add-ons in the order describes. It protects the address this order buys. An order for a plan that costs $0 also needs a turnstile_token while the verification check is on, even with a paid profile in it.

JSON
{
  "service": {"id": 215, "status": "pending"},
  "addons": [],
  "invoice_id": 5120,
  "requires_payment": true,
  "checkout_available": true,
  "amount_due": "32.00",
  "message": "Invoice created; pay to start provisioning"
}

The response is shortened here. service.id becomes the floating IP's service_id once the address is assigned. When your credit balance covers the invoice, we pay it from there: requires_payment is false and message is Payment applied from credit balance; provisioning started. When requires_payment is true, pay invoice invoice_id, as Pay an invoice describes.

Sending the same idempotency_key again returns the same order instead of a second one. Once the order has an invoice, the replay answers with message set to Replayed existing IP order. While the first request is still running, it answers 409 with An identical IP order is already in progress; retry in a moment. A key whose order was cancelled, failed or expired starts a new order.

A second order for the same plan and billing cycle within two minutes of the first, while the first is still pending, returns the first order with message set to Order already submitted, whatever key it sends. Wait two minutes before you order the same plan again.

Leaving out the key answers 422 with idempotency_key is required for IP orders, and a key in the wrong format answers 422 with a message that starts idempotency_key must be. Leaving out the pool answers 422 with pool_id is required. A prefix_len the plan does not sell answers 422 with a message that ends Leave prefix_len out or set it to 29. for a plan that sells /29 subnets. A version the plan does not sell answers 422 with a message that ends Leave version out or set it to ipv6. for the plan that sells IPv6 addresses. A pool with nothing left answers 409 with No available addresses in the selected pool.

GET /api/v1/client/ips/orders lists your open orders as items, newest first, up to 25. Each has its idempotency_key, status, pool_id, prefix_len, version, service_id, invoice_id, hold_expires_at and last_error. status is started, held, invoiced or provisioning, the four statuses an open order can have:

started
We are placing the order.
held
We have reserved an address in the pool for you.
invoiced
The order has an invoice to pay. The address stays held until hold_expires_at.
provisioning
The invoice is paid and we are assigning the address to your account.

GET /api/v1/client/ips/orders/{idempotency_key} returns one order in any status. Besides the open statuses, status can be active once the address is assigned, or cancelled, failed or expired. An order with an invoice also carries invoice_number, total, currency, due_date and invoice_status. An unknown key answers 404 with IP order not found.

POST /api/v1/client/ips/orders/{idempotency_key}/cancel cancels an open order and returns it:

Shell
curl -X POST https://api.coritan.com/api/v1/client/ips/orders/subnet-fra-2026-09-25/cancel \
  -H "Authorization: Bearer $CORITAN_TOKEN"

An order that is provisioning or has ended answers 409 with This IP order can no longer be cancelled, and one whose address is already assigned answers 409 with This IP is already provisioned.

The Floating IPs API reference and the services API reference list every field.

API operations on this page

MethodPathWhat it does
GET/api/v1/client/ips/ordersOpen platform IP order intents for resume after login or a new tab
GET/api/v1/client/ips/orders/{idempotency_key}Get my IP order
POST/api/v1/client/ips/orders/{idempotency_key}/cancelCancel my IP order
POST/api/v1/services/orderOrder a platform service, and any add-ons bought with it