Table of Contents
  1. Payment Transaction Sync

Payment Transaction Sync

Notice

The functionality described below requires a Hotelier API account (one account per property).

In addition to the standard information you already receive, the Booking Retrieval API response can optionally contain information about the payment transactions that have taken place for a booking. To enable this feature, you need to contact us and ask for the "Payment Transaction Sync" feature flag to be enabled on your API account. This option is only available for Single-Property API accounts.

A payment transaction may happen during the initial booking confirmation when the booking is created or at a later stage, even after a booking has been cancelled. When this happens, the booking will be added to the sync queue (or a PUSH/PING will be triggered) similarly to the procedure followed in case of a booking modification or cancellation. A new syncType=TRAN has been added in the List Pending Bookings API response (type=transaction for PUSH mode) in case the booking update regards only a payment transaction. If the syncType is anything but TRAN, besides any modifications on booking data, you should additionally always check the transactions array for any new entries, since a transaction may have happened simultaneusly with a modification of the booking.

Immutability

Each transaction is immutable, meaning that none of the fields of a transaction you already received will ever be updated. However, a transaction may get deleted. In this case, the transaction will no longer exist in the transactions array.

The transactions do not change in any way the information or stay of the booking, thus no entry is added to the "changes" array of the booking retrieval when a transaction occurs.

Pre-authorisations

Pre-authorisations are not considered transactions and thus are not included in the transactions array.

Multi-room bookings

For multi-room bookings (channel bookings with the same external_id but different WebHotelier res id), the transactions are associated with the booking as a whole, not with individual rooms. All the transactions are listed in the transactions array of the first/primary booking, regardless of whether they are related to one or more room stays.

Multi-room bookings will include the related_bookings array in the response. The booking that carries all the transactions will have the primary field set to true. For standard bookings, the related_bookings array will not be present in the response. You can consider that all transactions are associated with the booking itself.

A booking may initially start as non multi-room and later become multi-room. You should process the information retrieved in each booking and update any related records accordingly.


JSON Response Schema

{
  "method": "https://rest.reserve-online.net/reservation/10123456"
  ...
  "data":{
    ...
    "transactions":[
      {
        "id":STRING, // Transaction unique identifier,
        "type":STRING, // Transaction type (ECOMMERCE, CASH, IRIS, WIRE, POS, MOTO, VPOS, PAYLINK, CHECK, COUPON, CREDIT, OTHER). More may be added in the future.
        "descr":STRING, // Small transaction description e.g Ecommerce | (Name of bank), Cash, Bank Transfer etc
        "executed_at":ISO 8601, // Transaction execution date timestamp in ISO 8601 UTC format
        "amount":MONEY, // Transaction amount. A negative value indicates a refund.
        "currency":ISO 4217 // Transaction currency code. Most of the times it will be the same as the booking's currency.
      }
    ],
    "related_bookings":[// Optional, exists only for multi-room bookings
      {
        "res_id":INTEGER, // Related booking ID
        "primary":BOOLEAN // Exists only when equals to true. Indicates the booking that carries all the transactions.
      }
    ]
  }
}
  

JSON Response Example

{
  "method": "http://rest.reserve-online.net/reservation/11234567",
  ...
  "data": {
    "id": 11234567,
    "property": "DEMO",
    ...
    "transactions": [
      {
        "id": "C765BF4D-5014-4209-980E-56C42EE7BD14",
        "type": "ECOMMERCE",
        "descr": "E-Commerce | ROOMPAY",
        "executed_at": "2022-03-22T07:26:05Z",
        "amount": 203.00,
        "currency": "EUR"
      },
      {
        "id": "E3CD6510-4BB1-4BE5-946E-098756247137",
        "type": "CASH",
        "descr": "Cash",
        "executed_at": "2022-06-01T12:03:55Z",
        "amount": 356.00,
        "currency": "EUR"
      },
      {
        "id": "485FBE11-63CA-4778-8DF1-88F94344A6E4",
        "type": "OTHER",
        "descr": "Other",
        "executed_at": "2022-06-04T11:49:19Z",
        "amount": -100.00,
        "currency": "EUR"
      }
    ],
    "related_bookings": [
      {
        "res_id": 11234567,
        "primary": true
      },
      {
        "res_id": 11234568
      }
    ]
  }
}