Payments

Each offer has a payment_method that tells you how the booking is paid. All reservations in one booking must have the same payment method.

payment_methodWho pays the hotelpayment object on POST /bookings
CREDIT_CARDYou, with a card you provide. This is usually a virtual card (VCC), sometimes the guest's card. The hotel charges the card.Required
KTX_PAYMENTSKatanox Payments. Katanox pays the hotel and settles with you.Not needed

payment_modes on the offer tells you when the hotel charges:

  • PAY_NOW: at booking.
  • PAY_AT_PROPERTY: at the hotel.

If a rate supports both:

  • By default you get one offer listing both modes, and the booking is made with the first mode in its payment_modes. There is no field on POST /bookings to choose.
  • To choose the mode, send separate_rates_per_payment=true in the availability search. You get one offer per mode; book the one you want.
  • With lowest=true, you get a single offer per property even if the rate supports both modes.

The card (payment)

"payment": {
  "type": "visa",
  "card_number": "4111111111111111",
  "cvv": "123",
  "card_holder": "John Doe",
  "expiry_month": "03",
  "expiry_year": "2028"
}
FieldFormat
typeCard brand; see Reference values
card_numberDigits only, no spaces or dashes
cvv3–4 digits
card_holderName as printed on the card
expiry_monthTwo digits, "01"–"12"
expiry_yearFour digits, "2028"

Every field is a string, including the expiry month and year.

  • Sending numbers ("expiry_month": 3) fails with 422 Invalid Body Supplied, and the whole booking is rejected.
  • An expired card is rejected with card expiry date must be after <Month> <Year>.
  • The card must still be valid on the check-in date. Some hotels charge on arrival and reject the booking if the card expires before then. The reservation fails with PAYMENT_ERROR.

Modifications: applying a reservation modification also needs a full payment object (with CVV). We don't reuse the original card.

Card types accepted by each property

Not every hotel accepts every card brand.

  • Each property lists what it accepts in payments_metadata.supported_card_brands on GET /properties/{id}, e.g. ["VISA","MASTER_CARD"] (Properties).
  • payment.type must match the actual card, and must be one of the values listed in Reference values.

Card declines

Katanox passes the card to the hotel system and does not charge it ourselves.

What you see: if the hotel can't charge the card, the reservation fails with PAYMENT_ERROR.

Who resolves it:

  • Declines, insufficient funds, wrong amount charged: these are between you, your card issuer and the hotel. Katanox support can help find the hotel's contact.
  • Which amount the hotel charges: see Pricing and taxes.