---
title: "Verify the payment for a reservation created with instant charge"
method: POST
path: "/api/reservations/{reservationId}/verify-payment"
tags: ["Reservation quote"]
---

# Verify the payment for a reservation created with instant charge

`POST /api/reservations/{reservationId}/verify-payment`

Verify the payment for a reservation created with instant charge when Guesty Pay is used. It should be called immediately after the `/instant-charge` endpoint when the returned payment has status `PENDING_AUTH`. If the 3DS verification succeeds, the payment is charged and the reservation is confirmed. If the verification fails, the reservation is closed.
> For providers with GuestyPay protect, the threeDSResult object is returned from the SDK handle3DSChallenge fuction and it should be sent here for 3DS challenge verification. If GuestyPay in EU/UK, this object is not necessary.

## Path parameters

- `reservationId` string, required

## Request body

- object
  - `paymentId` string, required — The payment ID from the PENDING_AUTH payment created in the `/instant-charge` endpoint.
  - `threeDSResult` object
    - `provider` string
    - `clientSideChallengeResultToken` 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

## Other responses

- `400` — Bad request
- `401` — Not authorized
- `403` — Forbidden
- `404` — Reservation 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)
