---
title: "Packs Buy"
method: POST
path: "/v1/billing/packs/buy"
tags: ["billing"]
---

# Packs Buy

`POST /v1/billing/packs/buy`

## Request

- Base URL: `https://api.opero.pro` (the document declares no server; this is the origin it was published from)
- URL: `https://api.opero.pro/v1/billing/packs/buy`
- Auth: none declared

Buy a credit pack: a payment-gated PREPAID commit on the contract.

`queued`, not `bought`: the vendor charges the saved card first and
releases the credits only when that payment settles (~17 s in the spike).
Whether a card is saved at all is the vendor's business — the app makes no
Stripe call here; a missing card ends as an unpaid vendor invoice.

## Request body

- PacksBuyBody
  - `org_id` string, required
  - `amount_usd` integer, required
  - `purchase_id` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/opero/apis/opero-pro-api.md) - [All operations](https://skmtc.dev/opero/apis/opero-pro-api/llms.txt) - [OpenAPI document](https://skmtc.dev/opero/apis/opero-pro-api/revisions/e6ede41aeb9b?raw)
