---
title: "Create an instant reservation if a credit card charge is successful"
method: POST
path: "/api/reservations/quotes/{quoteId}/instant-charge"
tags: ["Reservation quote"]
---

# Create an instant reservation if a credit card charge is successful

`POST /api/reservations/quotes/{quoteId}/instant-charge`

Create an instant reservation based on a quote, with an immediate charge using a Stripe confirmation token or the initialPaymentMethodId when GuestyPay is used. This endpoint allows you to charge a reservation before confirming the reservation. If the charge fails, the reservation is not created.
 Stripe's confirmation token is generated using Stripe frontend embedded component. See [Stripe docs](https://docs.stripe.com/payments/build-a-two-step-confirmation#create-ct) for more information.
>
> The initialPaymentMethodId is created using our dedicated SDK v2. Documentation can be found [here](https://github.com/guestyorg/tokenization-js/wiki/v2-Integration).
> Before requesting this endpoint, when GuestyPay is used, the SDK submit function must be called to get the initialPaymentMethodId. The payload option 1 should be used and the email must also be sent in the guest data. After this request, if the status of the payment is PENDING_AUTH, the `/verify-payment` endpoint must be called.
>
> ❗ Important
>
> Before using the Booking Engine (BE) API reservation endpoints, ensure your Guesty account is properly activated by following these steps:
> 1. Activate Manual Source (skip this step if you already have direct reservations in Guesty account):
>    - Create a manual reservation directly in the Guesty UI. This step is required to activate the "Manual" booking source in your account.
> 2. Activate BE API Source:
>    - Create your first reservation using the Booking Engine API endpoints.
>    - This step is essential to initialize the BE API source, which allows you to set up additional fees, taxes, auto payments and automated messages.

## Path parameters

- `quoteId` string, required

## Request body

- object
  - `ratePlanId` string, required — Rate plan ID. Ensure you supply one of the rate plan IDs returned in the quote payload. Attempts to use any other string will result in an error.
  - `initialPaymentMethodId` string — The payment method ID from our tokenization endpoint when provider is not Stripe. Exactly one of initialPaymentMethodId or confirmationToken is required.
  - `reservedUntil` -1 | 12 | 24 | 36 | 48 | 72 — Time in hours to reserve the reservation for. Use -1 to keep calendar reserved. Valid values: -1, 12, 24, 36, 48, 72
  - `confirmationToken` string, required — Confirmation token from Stripe frontend embedded component. Exactly one of initialPaymentMethodId or confirmationToken is required.
  - `reuse` boolean — Whether to reuse the payment method for future charges
  - `guest` object, required
    - `firstName` string, required — Name of the guest
    - `lastName` string, required — Surname of the guest
    - `email` string, required — Email of the guest
    - `phone` string — Phone number of the guest
    - `address` object
      - `street` string
      - `city` string
      - `country` string
      - `countryCode` string
      - `zipCode` string
      - `state` string
  - `policy` object
    - `privacy` object
      - `version` number — Policy version number
      - `dateOfAcceptance` string, date-time — Date of acceptance in ISO format
      - `isAccepted` boolean
    - `termsAndConditions` object
      - `dateOfAcceptance` string, date-time — Date of acceptance in ISO format
      - `isAccepted` boolean
    - `marketing` object
      - `isAccepted` boolean
  - `notes` object
    - `other` string
    - `cleaning` string
    - `guest` string
    - `specialRequests` string
    - `keyCode` string

## Response `200`

successful operation

- object
  - `reservation` object, required
    - `_id` string
    - `confirmedAt` string, date-time
    - `source` string
    - `secondarySource` string
    - `accountId` string — id of Guesty account
    - `confirmationCode` string
    - `platform` string
    - `bookerId` string
    - `status` string
    - `createdAt` string, date-time
    - `moneyId` string
    - `conversationId` string
    - `ratePlanId` string
    - `unitTypeId` string
    - `guestsCount` number
    - `checkInDateLocalized` string — checkin day in format YYYY-MM-DD
    - `checkOutDateLocalized` string — checkout day in format YYYY-MM-DD
    - `eta` string, date-time
    - `etd` string, date-time
    - `unitId` string
    - `stay` object[]
      - `checkInDateLocalized` string — checkin day in format YYYY-MM-DD
      - `checkOutDateLocalized` string — checkout day in format YYYY-MM-DD
      - `ratePlanId` string
      - `unitTypeId` string
      - `guestsCount` number
      - `eta` string, date-time
      - `etd` string, date-time
      - `unitId` string
  - `payment` object, required
    - `_id` string — Payment ID
    - `status` string — Payment status
    - `amount` number — Payment amount
    - `currency` 'USD' | 'EUR' | 'AUD' | 'CAD' | 'JPY' | 'ILS' | 'GBP' | 'HKD' | 'NOK' | 'CZK' | 'BRL' | 'CHF' | 'THB' | 'ZAR' | 'MYR' | 'KRW' | 'IDR' | 'PHP' | 'INR' | 'NZD' | 'TWD' | 'PLN' | 'SGD' | 'TRY' | 'SEK' | 'VND' | 'ARS' | 'CNY' | 'DKK' | 'MXN'
    - `reservationId` string — ID of the reservation this payment is associated with
    - `accountId` string — ID of the account
    - `paymentMethodId` string — ID of the payment method used
    - `attempts` object[] — Payment attempt history
    - `confirmationCode` string — Processor confirmation code (not reservation confirmation code)
    - `paidAt` string, date-time — Date and time when payment was completed
    - `receiptId` number — Receipt ID
    - `error` string — Error message if payment failed
    - `processorError` object
      - `code` string
      - `message` string
  - `threeDSChallenge` object — The threeDSChallenge object returned for the SDK handle3DSChallenge function.

## Other responses

- `400` — Bad request
- `401` — Not authorized
- `403` — Forbidden
- `404` — Quote not found
- `429` — Too many requests

---

[API](https://skmtc.dev/guesty/apis/booking-engine-api.md) · [All operations](https://skmtc.dev/guesty/apis/booking-engine-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/guesty/booking-engine-api/revisions/90f25f70255b/schema)
