Rezlynx API
pmsfoh_GetMovements
This method can be used to obtain room-related movements or transactions, including check-in events, check-out events, room-moves and changes to alarm calls. If you require near-real-time notification of check-ins and check-outs then this is the method to use.
The method is called with a transaction ID, obtained from the last time the method was called, and it returns all movements or transactions since that transaction ID. The transaction ID starts at 1 and increments for each transaction in the system, indefinitely.
Wondering what value the current transaction ID is set to? You can find out by logging in to Rezlynx and accessing the INI settings. |
Note any filtering of results must be done after the method returns, there are no filter parameters. If you want more information about a room, guest or reservation, you can use pmsbkg_BookingSearch to delve deeper into the data.
Parameters
Name | Type | Description |
---|---|---|
SessionID | string | Session ID |
TransID | int | Transaction ID of the last transaction or movement from which new data is requested |
IncludeMovieAccess | Boolean | Flag to determine if Movie Access should be included in the response |
Returned data
- Returned data consists of the set of all movement items since the specified transaction ID
Returned data (Movement item)
Name | Type | Description |
---|---|---|
TransID | int | Transaction ID for this particular transaction or movement |
EntryType | int | Code for the type of movement (see below) |
EntryTimeStamp | dateTime | Date-time stamp for the transaction or movement |
RoomID | string | Room number or name |
TelNo1 | string | Room telephone extension number 1, if applicable |
TelNo2 | string | Room telephone extension number 2, if applicable |
TelNo3 | string | Room telephone extension number 3, if applicable |
TelNo4 | string | Room telephone extension number 4, if applicable |
BookRef | string | Rezlynx booking reference for the reservation |
RoomPickID | int | Room integer count used for multi-room bookings |
FolioID | int | Folio number, if more than one folio |
Salutation | string | Title for guest |
Forename | string | First name of guest |
Surname | string | Surname of guest |
AlarmTime | string | Alarm call time, if set |
Param1 | string | Optional string parameter, depends on EntryType |
Param2 | int | Optional integer parameter, depends on EntryType |
InterfacePostingMode | int | The posting mode for this room (see below) |
RoomMove | (object) | Further details, in case of a room move |
MovieAccess | string | Movie Access code |
EntryType codes
Code | Description |
---|---|
10 | room check-in |
20 | room check-out |
30 | room-move |
40 | change to alarm time (i.e. wake-up call) |
50 | guest check-in |
60 | guest check-out |
70 | change to ‘InterfacePostingMode’ |
80 | guest added to room |
90 | guest removed from room reservation |
100 | change to guest details |
110 | change to guest profile details |
120 | guest unlinked |
130 | change to ‘MovieAccess’ |
140 | check-out reversed or undone |
150 | room unallocated from reservation |
160 | room allocated to reservation |
Interface Posting Modes
Code | Description |
---|---|
0 | All allowed, i.e. all postings allowed for this room |
1 | None allowed, i.e. no postings allowed for this room |
2 | Phone only, i.e. only charges for telephone calls allowed |
Request URL
https://pmsws.eu.guestline.net/rlxsoaprouter/rlxsoap.asmx?op=pmsfoh_GetMovementsRequest headers
Name | Type | Description |
---|---|---|
(optional) | string | Media type of the body sent to the API. |
Request body
<pmsfoh_GetMovements xmlns="http://tempuri.org/RLXSOAP19/RLXSOAP19">
<SessionID>8e1b1a80-61ae-411e-a8a5-863f9b32d259</SessionID>
<TransID>866</TransID>
<IncludeMovieAccess>false</IncludeMovieAccess>
</pmsfoh_GetMovements>
Responses
200 OK
Representations
<pmsfoh_GetMovementsResponse xmlns="http://tempuri.org/RLXSOAP19/RLXSOAP19">
<pmsfoh_GetMovementsResult>
<ExceptionCode>0</ExceptionCode>
<ExceptionDescription>No error</ExceptionDescription>
</pmsfoh_GetMovementsResult>
<GetMovements>
<MovementData>
<cpmsfoh_GetMovements_MovementItem>
<TransID>867</TransID>
<EntryType>30</EntryType>
<EntryTimeStamp>2017-10-19T15:18:07</EntryTimeStamp>
<RoomID>110</RoomID>
<TelNo1 />
<TelNo2 />
<TelNo3 />
<TelNo4 />
<BookRef>BK000938</BookRef>
<RoomPickID>1</RoomPickID>
<FolioID>1</FolioID>
<Salutation>Mr</Salutation>
<Forename>James</Forename>
<Surname>John</Surname>
<AlarmTime />
<Param1>118</Param1>
<Param2>0</Param2>
<InterfacePostingMode>0</InterfacePostingMode>
<RoomMove>
<OldRoom>
<RoomID>118</RoomID>
<TelNo1 />
<TelNo2 />
<TelNo3 />
<TelNo4 />
</OldRoom>
</RoomMove>
</cpmsfoh_GetMovements_MovementItem>
</MovementData>
</GetMovements>
</pmsfoh_GetMovementsResponse>
Code samples
@ECHO OFF
curl -v -X POST "https://pmsws.eu.guestline.net/rlxsoaprouter/rlxsoap.asmx?op=pmsfoh_GetMovements"
-H "Content-Type: text/xml"
--data-ascii "{body}"
using System;
using System.Net.Http.Headers;
using System.Text;
using System.Net.Http;
using System.Web;
namespace CSHttpClientSample
{
static class Program
{
static void Main()
{
MakeRequest();
Console.WriteLine("Hit ENTER to exit...");
Console.ReadLine();
}
static async void MakeRequest()
{
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
// Request headers
var uri = "https://pmsws.eu.guestline.net/rlxsoaprouter/rlxsoap.asmx?op=pmsfoh_GetMovements&" + queryString;
HttpResponseMessage response;
// Request body
byte[] byteData = Encoding.UTF8.GetBytes("{body}");
using (var content = new ByteArrayContent(byteData))
{
content.Headers.ContentType = new MediaTypeHeaderValue("< your content type, i.e. application/json >");
response = await client.PostAsync(uri, content);
}
}
}
}
// // This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
import java.net.URI;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class JavaSample
{
public static void main(String[] args)
{
HttpClient httpclient = HttpClients.createDefault();
try
{
URIBuilder builder = new URIBuilder("https://pmsws.eu.guestline.net/rlxsoaprouter/rlxsoap.asmx?op=pmsfoh_GetMovements");
URI uri = builder.build();
HttpPost request = new HttpPost(uri);
request.setHeader("Content-Type", "text/xml");
// Request body
StringEntity reqEntity = new StringEntity("{body}");
request.setEntity(reqEntity);
HttpResponse response = httpclient.execute(request);
HttpEntity entity = response.getEntity();
if (entity != null)
{
System.out.println(EntityUtils.toString(entity));
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
}
<!DOCTYPE html>
<html>
<head>
<title>JSSample</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(function() {
var params = {
// Request parameters
};
$.ajax({
url: "https://pmsws.eu.guestline.net/rlxsoaprouter/rlxsoap.asmx?op=pmsfoh_GetMovements" + $.param(params),
beforeSend: function(xhrObj){
// Request headers
xhrObj.setRequestHeader("Content-Type","text/xml");
},
type: "POST",
// Request body
data: "{body}",
})
.done(function(data) {
alert("success");
})
.fail(function() {
alert("error");
});
});
</script>
</body>
</html>
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString* path = @"https://pmsws.eu.guestline.net/rlxsoaprouter/rlxsoap.asmx?op=pmsfoh_GetMovements";
NSArray* array = @[
// Request parameters
@"entities=true",
];
NSString* string = [array componentsJoinedByString:@"&"];
path = [path stringByAppendingFormat:@"?%@", string];
NSLog(@"%@", path);
NSMutableURLRequest* _request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:path]];
[_request setHTTPMethod:@"POST"];
// Request headers
[_request setValue:@"text/xml" forHTTPHeaderField:@"Content-Type"];
// Request body
[_request setHTTPBody:[@"{body}" dataUsingEncoding:NSUTF8StringEncoding]];
NSURLResponse *response = nil;
NSError *error = nil;
NSData* _connectionData = [NSURLConnection sendSynchronousRequest:_request returningResponse:&response error:&error];
if (nil != error)
{
NSLog(@"Error: %@", error);
}
else
{
NSError* error = nil;
NSMutableDictionary* json = nil;
NSString* dataString = [[NSString alloc] initWithData:_connectionData encoding:NSUTF8StringEncoding];
NSLog(@"%@", dataString);
if (nil != _connectionData)
{
json = [NSJSONSerialization JSONObjectWithData:_connectionData options:NSJSONReadingMutableContainers error:&error];
}
if (error || !json)
{
NSLog(@"Could not parse loaded json with error:%@", error);
}
NSLog(@"%@", json);
_connectionData = nil;
}
[pool drain];
return 0;
}
<?php
// This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
require_once 'HTTP/Request2.php';
$request = new Http_Request2('https://pmsws.eu.guestline.net/rlxsoaprouter/rlxsoap.asmx?op=pmsfoh_GetMovements');
$url = $request->getUrl();
$headers = array(
// Request headers
'Content-Type' => 'text/xml',
);
$request->setHeader($headers);
$parameters = array(
// Request parameters
);
$url->setQueryVariables($parameters);
$request->setMethod(HTTP_Request2::METHOD_POST);
// Request body
$request->setBody("{body}");
try
{
$response = $request->send();
echo $response->getBody();
}
catch (HttpException $ex)
{
echo $ex;
}
?>
########### Python 2.7 #############
import httplib, urllib, base64
headers = {
# Request headers
'Content-Type': 'text/xml',
}
params = urllib.urlencode({
})
try:
conn = httplib.HTTPSConnection('pmsws.eu.guestline.net/rlxsoaprouter/rlxsoap.asmx')
conn.request("POST", "pmsfoh_GetMovements%s" % params, "{body}", headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror))
####################################
########### Python 3.2 #############
import http.client, urllib.request, urllib.parse, urllib.error, base64
headers = {
# Request headers
'Content-Type': 'text/xml',
}
params = urllib.parse.urlencode({
})
try:
conn = http.client.HTTPSConnection('developers.azure-api.net')
conn.request("POST", "/rezlynx-web-service/?soapAction=http://tempuri.org/RLXSOAP19/RLXSOAP19/pmsfoh_GetMovements&%s" % params, "{body}", headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror))
####################################
require 'net/http'
uri = URI('https://pmsws.eu.guestline.net/rlxsoaprouter/rlxsoap.asmx?op=pmsfoh_GetMovements')
request = Net::HTTP::Post.new(uri.request_uri)
# Request headers
request['Content-Type'] = 'text/xml'
# Request body
request.body = "{body}"
response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
http.request(request)
end
puts response.body