---
title: "Create Payment Intent"
method: POST
path: "/api/v1/payments/create-intent"
tags: ["payments"]
---

# Create Payment Intent

`POST /api/v1/payments/create-intent`

Create a Stripe PaymentIntent for an approved project.

Returns the ``client_secret`` needed to initialize Stripe Elements
on the frontend. Idempotent — calling again for the same project
returns the existing PaymentIntent.

If ``tax_calculation_id`` is provided (from a prior ``calculate-tax``
call), the PaymentIntent amount will include tax and the calculation
will be linked to the PaymentIntent for automatic tax transaction
creation on success.

## Request body

- PaymentIntentCreate — Request body for creating a Stripe PaymentIntent. If ``tax_calculation_id`` is provided (from a prior ``calculate-tax`` call), the PaymentIntent amount will include tax.
  - `project_id` string, uuid, required
  - `shipping_address` string, nullable
  - `shipping_address_id` string, uuid, nullable
  - `tax_calculation_id` string, nullable
  - `tax_amount` integer, nullable
  - `total_with_tax` union
    - number
    - string

## Response `201`

Successful Response

- PaymentIntentResponse — Response from create-intent — contains the client_secret for Stripe Elements.
  - `payment_id` string, uuid, required
  - `client_secret` string, required
  - `amount` string, required
  - `deposit_amount` string, nullable
  - `currency` string, required
  - `status` string, required

## Other responses

- `422` — Validation Error

---

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