---
title: "Start a credit purchase (Stripe Checkout)"
method: POST
path: "/api/v1/credits/purchase"
tags: ["Credits"]
---

# Start a credit purchase (Stripe Checkout)

`POST /api/v1/credits/purchase`

## Request

- Base URL: `https://investormatch.pro`
- URL: `https://investormatch.pro/api/v1/credits/purchase`
- Auth: HTTP bearer

Creates a Stripe Checkout session for the chosen bundle and returns a URL to redirect the buyer to. Credits are granted via the Stripe webhook after payment. Authenticated and rate-limited.

## Request body

- PurchaseRequest
  - `bundle_id` integer, required: ID of the bundle from GET /api/v1/credits/bundles.

## Response `200`

Checkout session created.

- PurchaseResponse
  - `checkout_url` string, uri: Stripe Checkout URL to redirect the buyer to.
  - `session_id` string

## Other responses

- `400`: Invalid request body.
- `401`: Missing or invalid API key.
- `404`: Credit bundle not found.
- `429`: Rate limit exceeded.

---

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