---
title: "POST /api/v1/consulting/human-credits/purchases"
method: POST
path: "/api/v1/consulting/human-credits/purchases"
tags: ["Consulting", "Billing"]
---

# POST /api/v1/consulting/human-credits/purchases

`POST /api/v1/consulting/human-credits/purchases`

Starts one customer-initiated EUR 39.95 human-consultation purchase with the membership owner's stored token. The server fixes the amount, a purchase UUID makes transport retries idempotent, 3DS is returned when required, and one unresolved charge blocks any replacement attempt until reconciliation finishes.

## Cookies

- `billing_session` string

## Request body

- object
  - `browser` object
    - `colorDepth` integer
    - `javaEnabled` boolean
    - `javascriptEnabled` boolean
    - `language` string
    - `screenHeight` integer
    - `screenWidth` integer
    - `timezoneOffset` integer
  - `conversationId` string, uuid, required
  - `purchaseId` string, uuid, required

## Response `200`

The credit payment completed and is available to the family membership, or a 3DS browser action is required.

- union
  - object
    - `humanConsultations` object, required
      - `available` integer, required
      - `limit` integer, required
      - `purchase` object, required
        - `amount` 3995, required
        - `currency` 'EUR', required
      - `purchasedAvailable` integer, required
      - `used` integer, required
    - `paymentId` integer, required
    - `status` 'complete', required
  - object
    - `action` object, required
      - `fields` object[], required
        - `name` string, required
        - `value` string, required
      - `method` 'POST', required
      - `url` string, uri, required
    - `status` 'requires_action', required

## Other responses

- `400` — The request is invalid.
- `401` — The subscriber has no active consulting access.
- `403` — Only the family membership owner can approve a new charge.
- `409` — The stored payment method is unavailable, a payment is already in progress, or gateway reconciliation is still required.
- `422` — The payment was declined.
- `429` — The subscriber exceeded the human purchase rate limit.
- `503` — Billing is temporarily unavailable.

---

[API](https://skmtc.dev/expertschat/apis/billing-core-api.md) · [All operations](https://skmtc.dev/expertschat/apis/billing-core-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/expertschat/billing-core-api/revisions/c6d0e986ce32/schema)
