---
title: "Create purchase order"
method: POST
path: "/api/billing/v1/orders"
tags: ["Billing: Orders"]
---

# Create purchase order

`POST /api/billing/v1/orders`

Create a purchase order for any Hostinger product.

This unified endpoint places an order for one or more catalog items and
works across all Hostinger products, leveraging the existing billing
infrastructure. Use the [catalog endpoint](#tag/billing-catalog) to look
up the `item_id` values available for purchase.

If no payment method is provided, your default payment method will be used automatically.

This endpoint only places the order. Product-specific provisioning
(e.g. VPS setup or domain registration) is not performed here — once the
order completes, use the relevant product endpoints or
[hPanel](https://hpanel.hostinger.com/) to finalize setup.

Use this endpoint to purchase any product available in the catalog.

## Request body

- BillingV1OrderPurchaseRequest
  - `payment_method_id` integer — Payment method ID, default will be used if not provided
  - `items` object[], required — Catalog price items to purchase
    - `item_id` string, required — Catalog price item ID
    - `quantity` integer — Quantity to purchase
  - `coupons` unknown[] — Discount coupon codes
    - unknown

## Response `200`

Success response

- BillingV1OrderOrderResource
  - `id` integer — Order ID
  - `subscription_id` string — Subscription ID
  - `status` 'completed' | 'pending' | 'processing' | 'failed' | 'refunded' | 'cancelled' | 'awaiting_payment' | 'payment_initiated' | 'fraud_refund'
  - `currency` string — Currency code
  - `subtotal` integer — Subtotal price (exc. VAT) in cents
  - `total` integer — Total price (inc. VAT) in cents
  - `billing_address` BillingV1OrderOrderBillingAddressResource
    - `first_name` string
    - `last_name` string
    - `company` string, nullable
    - `address_1` string, nullable
    - `address_2` string, nullable
    - `city` string, nullable
    - `state` string, nullable
    - `zip` string, nullable
    - `country` string, nullable
    - `phone` string, nullable
    - `email` string
  - `created_at` string, date-time
  - `updated_at` string, date-time

## Other responses

- `401` — Unauthenticated response
- `422` — Validation error response
- `500` — Error response

---

[API](https://skmtc.net/hostinger/apis/hostinger-api.md) · [All operations](https://skmtc.net/hostinger/apis/hostinger-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hostinger/hostinger-api/revisions/74abfea76e36/schema)
