---
title: "Create payment method"
method: POST
path: "/payment-methods"
tags: ["Payment Methods"]
---

# Create payment method

`POST /payment-methods`

## Request

- Base URL: `https://open-api.guesty.com/v1`
- URL: `https://open-api.guesty.com/v1/payment-methods`
- Auth: API key in header `authorization`

Vaults a payment method for a guest. Card details are not sent here. Send exactly one of `_id` or `stripeCardToken`.

Replaces the deprecated [Add a payment method for a guest](https://open-api-docs.guesty.com/reference/guestspaymentmethodcreate).

## Request body

- object
  - `guestId` string, required: Guesty guest id of the guest who owns the payment method
  - `_id` string: Payment method id returned by GuestyPay tokenization. Send exactly one of `_id` or `stripeCardToken`.
  - `paymentProviderId` string, required: Provider used when the card was tokenized
  - `stripeCardToken` string: Token returned by direct tokenization with Stripe (`pm_…` or `tok_…`), for Stripe providers only. Send exactly one of `_id` or `stripeCardToken`.
  - `confirmationCode` string, required: Booking confirmation code of the reservation this payment method is added for (for example `GY-123456`). It links the payment method to that reservation.
  - `reuse` boolean: Whether the payment method can be reused for other reservations belonging to the same guest

## Response `201`

The created payment method

- object
  - `_id` string, required: Guesty payment method id
  - `accountId` string: Guesty account id
  - `guestId` string: Guesty guest id
  - `paymentProviderId` string: Provider used when the card was tokenized
  - `method` string, required: Payment method
  - `payload` object: Provider-specific payload
  - `saveForFutureUse` boolean: Whether this payment method is kept on the guest
  - `reuse` boolean: Whether this payment method can be reused on the guest's other reservations
  - `last4` string: Last four digits of the card, when the method is a card
  - `brand` string: Card brand, when the method is a card
  - `status` 'ACTIVE' | 'INVALID' | 'PENDING_ACTIVATION' | 'INCOMPLETE' | 'CANCELLED' | 'FAILED' | 'DELETED', required: Payment method status
  - `type` 'PHYSICAL' | 'VIRTUAL' | 'ACH': Payment method type
  - `confirmationCode` string: Booking confirmation code sent when the payment method was added (for example `GY-123456`).
  - `createdAt` string, date-time: When the payment method was created. Format: `YYYY-MM-DDTHH:mm:ss.SSSZ`.
  - `updatedAt` string, date-time: When the payment method was last updated. Format: `YYYY-MM-DDTHH:mm:ss.SSSZ`.

## Other responses

- `400`: The request is invalid.
- `401`: Missing or invalid authentication.
- `402`: The payment method cannot be added.
- `404`: The payment provider or payment method was not found.
- `422`: The request cannot be processed.

## Changes

- **2026-11-03** `3122b8618183`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/guesty/apis/guesty-open-api/changes/payment-methods/post.md)

---

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