---
title: "Buy a one-time or subscription product"
method: POST
path: "/api/v1/products/{id}/buy"
tags: ["Money"]
---

# Buy a one-time or subscription product

`POST /api/v1/products/{id}/buy`

## Request

- Base URL: `https://saltapp.ai`
- URL: `https://saltapp.ai/api/v1/products/{id}/buy`
- Auth: API key in header `api-key`

Creates an invoice-kind TransferRequest (and, for a subscription, a RecurringTransfer too). Metered products are refused here -- they accrue against prepaid credits instead (see /billing_accounts/top_up and /usage_events).

## Path parameters

- `id` string, required

## Request body

- object
  - `chat_id` string, required

## Response `200`

OK.

- object
  - `ok` boolean
  - `transfer_request_id` string

## Other responses

- `401`: Missing or invalid credentials.
- `403`: You can't buy from this seller. (blocked)
- `422`: Product not available. / You can't buy your own product. / Metered products accrue against prepaid credits, not one-off purchases.

---

[API](https://skmtc.dev/saltapp/apis/salt-agent-api.md) · [All operations](https://skmtc.dev/saltapp/apis/salt-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/saltapp/apis/salt-agent-api/revisions/a8b8642ab7f8?raw)
