> ## Documentation Index
> Fetch the complete documentation index at: https://docs.telnesstech.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Place an order

> How to integrate the SeamlessOS API to place a first order

This guide walks you through a **first purchase** flow for a customer buying their first subscription.\
You’ll fetch the product catalogue, create an order, calculate price (incl. taxes), collect a prepaid payment, and submit the order for provisioning.

## Quick Path

<Steps>
  <Step title="Get Product Catalogue" icon="book-open">
    Fetch offers and plans available for the customer’s market.
  </Step>

  <Step title="Create Order" icon="cart-shopping">
    Start an order with customer, subscriber, and offering details.
  </Step>

  <Step title="Calculate Order Price" icon="calculator">
    Calculate taxes and total due (jurisdiction-level for US).
  </Step>

  <Step title="Create Payment Session" icon="credit-card">
    Collect prepaid payment before fulfillment.
  </Step>

  <Step title="Submit Order" icon="circle-check">
    Lock in the paid order for provisioning.
  </Step>
</Steps>

## 1. Get Product Catalogue

Use this endpoint to present available offers (plans, add-ons) to the user based on their market and brand.\
You’ll extract a `product_offering_id` and other relevant attributes for use when creating an order.

````bash theme={null}
# 1) Get Product Catalogue - Request
example

```yaml
# 1) Get Product Catalogue - Response
example
  offset: 0
````

Ref: [Get Product Catalog API](api-reference/product-catalogues/get-product-catalogue)

## 2. Create Order

Create a draft order by providing the customer, subscriber, and the selected product offering.\
At this stage, the order is not yet priced or confirmed.

```yaml theme={null}
# 2) Create Order - Request
example
```

```yaml theme={null}
# 2) Create Order - Response
example
```

Ref: [Create Order API](/api-reference/orders/create-order)

## 3. Calculate Order Price

Calculate totals for the order, including applicable taxes and fees.\
For US-based purchases, pricing is calculated at the jurisdiction level using the billing or service address.

```yaml theme={null}
# 3) Calculate Order Price - Request
example
```

```yaml theme={null}
# 3) Calculate Order Price - Response
example
```

Ref: [Calculate Order Price API](/api-reference/orders/calculate-order-price)

## 4. Create Payment Session (Prepaid)

Generate a payment session for the calculated amount.\
This session is used to collect prepaid funds before provisioning the order.\
The response includes identifiers for your payment service provider (PSP) that should be used in your client or hosted checkout.

```yaml theme={null}
# 4) Create Payment Session - Request
example
```

Ref: [Create Payment Session API](/api-reference/payment-sessions/create-payment-session)

## 5. Submit Order (Provision)

Once payment has been successfully collected, submit the order to lock in pricing and trigger provisioning

```yaml theme={null}
# 5) Submit Order - Request
example
```

```yaml theme={null}
# 5) Submit Order - Response
example
```

Ref: [Submit Order API](/api-reference/orders/submit-order)

That's it!

## Next Steps

<Card title="Order fulfilment" icon="play" horizontal="false" href="/developer-guide/use-cases/order-fulfillment">
  Next step, check the order fulfilment page
</Card>
