---
title: "Create Payment"
method: POST
path: "/sessions/{session_id}/payments"
tags: ["payments"]
---

# Create Payment

`POST /sessions/{session_id}/payments`

## Request

- Base URL: `https://api.notte.cc` (the document declares no server; this is the origin it was published from)
- URL: `https://api.notte.cc/sessions/{session_id}/payments`
- Auth: OAuth 2
  - Password
  - Token URL: `token`

## Path parameters

- `session_id` string, required

## Query parameters

- `update_metadata` boolean

## Headers

- `idempotency-key` string, required
- `x-notte-request-origin` string, nullable
- `x-notte-sdk-version` string, nullable

## Request body

- PaymentRequest
  - `amount` union, required: Amount in currency units, e.g. 100.91 means USD 100.91. Never rounded.
    - number
    - string
  - `currency` string, required
  - `merchant_url` string, required
  - `merchant_name` string, required
  - `description` string, required
  - `mode` 'test' | 'live'

## Response `202`

Successful Response

- PaymentResponse
  - `id` string, required
  - `session_id` string, required
  - `status` string, required
  - `mode` string, required
  - `amount` string, required: Amount in currency units, serialized as an exact decimal string.
  - `currency` string, required
  - `merchant_name` string, required
  - `merchant_url` string, required
  - `vault_id` string, nullable
  - `approval_url` string, nullable
  - `connection_url` string, nullable
  - `connection_phrase` string, nullable
  - `expires_at` string, date-time, nullable
  - `error_code` string, nullable
  - `next_action` PaymentNextAction
    - `type` 'ssn_verification' | 'identity_verification' | 'contact_support' | 'select_payment_method' | 'add_payment_method' | 'update_payment_method' | 're_authorize' | 'three_d_secure' | 'three_d_secure_retry', required
    - `resolution` 'auto_resume' | 'create_new_spend_request' | 'create_new_spend_request_after_completion', required
    - `action_url` string, nullable
    - `expires_at` string, date-time, nullable
  - `purchase_status` 'unverified'

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-27** `604cdfbc3693`: 2 info
  - removed the pattern `^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,19}0*$)\d{0,10}\.\d{0,8}0*$)` from the request property `amount/anyOf[subschema #2]/`
  - the `amount` response's property pattern `^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$` was removed for the status `202`
- **2026-09-18** `e2f31bfade94`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/notte/apis/notte-api/changes/sessions/:session_id/payments/post.md)

---

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