---
title: "Start saving a card"
method: POST
path: "/v1/payment-methods/setup-intent"
tags: ["payment-methods"]
---

# Start saving a card

`POST /v1/payment-methods/setup-intent`

## Request

- Base URL: `https://api.getmyhotels.com`
- URL: `https://api.getmyhotels.com/v1/payment-methods/setup-intent`
- Auth: HTTP bearer

Runs `user.createSetupIntent`. Returns `{ clientSecret }` for a Stripe SetupIntent on the user's Stripe customer (created on first use). Confirm it with the Stripe SDK — the card number never touches our servers — then send the resulting `pm_` id to `POST /v1/payment-methods`. Redirect-based methods are excluded, so no return URL is needed. Takes no input, so this route accepts no request body.

## Response `200`

Success

- unknown

## Other responses

- `400`: Request validation failed or the router rejected the input
- `401`: Missing or invalid bearer session token
- `426`: Reported X-GMH-App-Version is below the supported minimum — the app must update
- `500`: Unexpected server error (opaque; details stay in logs)

---

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