Rezlynx API

pmsprf_GetProfileSummaryWithStays

This method will fetch a summary of profile information for a given profile, along with summary information about all reservations relating to that profile. This can be filtered for past, present or future bookings.

Shared profiles Note that in the case of a profile shared at the group level, any reservations related to it when using this endpoint will only be for the site you are logged into on the web service.
Profile requestor authentication Since profiles contain personal information, there is an additional requirement around access (two factor authentication); the client using this method must supply either a password set up against the profile, or else supply some information already known from the profile, such as guest surname - see below. A single API account will only support one of these two methods, you cannot mix them.

Parameters

NameTypeDescription
SessionIDstringSession ID, obtained at log-in
ProfileRequestor(object)
> ProfileUniqueIdstringUnique profile ID, must be either a profile reference, unique email address or loyalty ID
> ProfileUniqueIdAuthenticatorValuestringThe password that is associated with this profile; if you know the password then you don’t need to send any of the other values below, otherwise leave this blank and send through all the second factor authentication values below
> AuthenticationMethod"PD""PD" stands for "Person Details" and should always be set to this
> AuthenticationCodestringThe method of second line authentication to be used i.e. "Forename", "Surname" or "PostCode"
> AuthenticationValuestringThe authentication value, e.g. if the method is "Surname" and the profile is under the name of "Jones" then the value will be "Jones", if the method is "PostCode" then the value will be "SY26LG"
Filters"C", "R" or "F"Optional filter to filter results according to the reservation status (C = Checked out, R = Resident, F = Future, i.e. pre-arrival)
ProfileSearchMode"Contact", "Guest" or "Both"Profile search mode

Returned data (reservation summary)

NameTypeDescription
BookRefstringBooking or reservation reference
RoomPickIdintRoom pick integer, if part of a multi-room reservation (1,2,3,...)
GroupRefstringGroup reference, if applicable
PORefstringPO reference
BookingStatusintBooking status code (see below)
DateArrivedateTimeArrival date-time (start of reservation)
DateDepartdateTimeDeparture date-time (end of reservation)
AdultsintNumber of adults
ChildrenintNumber of children
InfantsintNumber of infants
RoomTypeCodestringRoom type code
PackageCodestringPackage code
CompanyRefstringCompany reference, if applicable
BookerTitlestringBooker title
BookerSurnamestringBooker surname
BookerForenamestringBooker forename
PrimaryGuestTitlestringPrimary guest title
PrimaryGuestSurnamestringPrimary guest surname
PrimaryGuestForenamestringPrimary guest forename
PrimaryGuestPackageCodestringPrimary guest package code
CreatedTimestampdateTimeDate-time reservation was created
EditTimestampdateTimeDate-time reservation was last edited
DepositPaiddecimalDeposit value (paid)
DepositDuedecimalDeposit value (due)
RoomIdstringRoom name or number
Charge1stNightdecimalGross value of charge (first night of stay)
Charge1stNightNettdecimalNett value of charge (first night of stay)
ChargeTotaldecimalGross total charge for stay
ChargeTotalNettdecimalNett total charge for stay
BookingType"Bedroom", "Function" or "Nra"Booking type (bedroom, function room or non-resident acount)

Booking status codes

CodeMeaning
1-12Pre-arrival
102Cancelled
103Resident
104Checked out

Request URL

https://pmsws.eu.guestline.net/rlxsoaprouter/rlxsoap.asmx?op=pmsprf_GetProfileSummaryWithStays

Request headers

Name Type Description
(optional) string Media type of the body sent to the API.

Request body

<pmsprf_GetProfileSummaryWithStays xmlns="http://tempuri.org/RLXSOAP19/RLXSOAP19">
    <SessionID>624337e5-e564-4278-bfbd-d25d234f3a98</SessionID>
    <ProfileRequestor>
        <ProfileUniqueId>PF00499</ProfileUniqueId>
        <ProfileUniqueIdAuthenticatorValue />
        <AuthenticationMethod>PD</AuthenticationMethod>
        <AuthenticationCode>Surname</AuthenticationCode>
        <AuthenticationValue>Williams</AuthenticationValue>
    </ProfileRequestor>
    <Filters>F</Filters>
</pmsprf_GetProfileSummaryWithStays>

Responses

200 OK

Representations

<pmsprf_GetProfileSummaryWithStaysResponse xmlns="http://tempuri.org/RLXSOAP19/RLXSOAP19">
    <pmsprf_GetProfileSummaryWithStaysResult>
        <ExceptionCode>0</ExceptionCode>
        <ExceptionDescription>No error</ExceptionDescription>
    </pmsprf_GetProfileSummaryWithStaysResult>
    <ProfileSummaryWithStays>
        <Salutation>Miss</Salutation>
        <Forename>Megan</Forename>
        <Surname>Williams</Surname>
        <EMailAddress>megan.williams@guestline.com</EMailAddress>
        <Reservations>
            <ReservationSummaryItem>
                <BookRef>BK00014</BookRef>
                <RoomPickId>1</RoomPickId>
                <GroupRef />
                <PORef />
                <BookingStatus>3</BookingStatus>
                <DateArrive>2016-06-30T00:00:00</DateArrive>
                <DateDepart>2016-07-01T00:00:00</DateDepart>
                <Adults>2</Adults>
                <Children>0</Children>
                <Infants>0</Infants>
                <RoomTypeCode>DOUBLE</RoomTypeCode>
                <PackageCode>FLEX_BB</PackageCode>
                <CompanyRef />
                <BookerTitle>Miss</BookerTitle>
                <BookerSurname>Williams</BookerSurname>
                <BookerForename>Megan</BookerForename>
                <PrimaryGuestTitle>Miss</PrimaryGuestTitle>
                <PrimaryGuestSurname>Williams</PrimaryGuestSurname>
                <PrimaryGuestForename>Megan</PrimaryGuestForename>
                <PrimaryGuestPackageCode>FLEX_BB</PrimaryGuestPackageCode>
                <CreatedTimestamp>2016-06-16T16:28:36</CreatedTimestamp>
                <EditTimestamp>0001-01-01T00:00:00</EditTimestamp>
                <DepositPaid>0.0000</DepositPaid>
                <DepositDue>0.0000</DepositDue>
                <RoomId>18</RoomId>
                <Charge1stNight>120.0000</Charge1stNight>
                <Charge1stNightNett>0</Charge1stNightNett>
                <ChargeTotal>120.0000</ChargeTotal>
                <ChargeTotalNett>0</ChargeTotalNett>
            </ReservationSummaryItem>
            <ReservationSummaryItem>
                <BookRef>BK00015</BookRef>
                <RoomPickId>1</RoomPickId>
                <GroupRef />
                <PORef />
                <BookingStatus>3</BookingStatus>
                <DateArrive>2016-06-30T00:00:00</DateArrive>
                <DateDepart>2016-07-01T00:00:00</DateDepart>
                <Adults>2</Adults>
                <Children>0</Children>
                <Infants>0</Infants>
                <RoomTypeCode>DOUBLE</RoomTypeCode>
                <PackageCode>FLEX_BB</PackageCode>
                <CompanyRef />
                <BookerTitle>Miss</BookerTitle>
                <BookerSurname>Williams</BookerSurname>
                <BookerForename>Megan</BookerForename>
                <PrimaryGuestTitle>Miss</PrimaryGuestTitle>
                <PrimaryGuestSurname>Williams</PrimaryGuestSurname>
                <PrimaryGuestForename>Megan</PrimaryGuestForename>
                <PrimaryGuestPackageCode>FLEX_BB</PrimaryGuestPackageCode>
                <CreatedTimestamp>2016-06-16T16:52:32</CreatedTimestamp>
                <EditTimestamp>0001-01-01T00:00:00</EditTimestamp>
                <DepositPaid>0.0000</DepositPaid>
                <DepositDue>0.0000</DepositDue>
                <RoomId>1</RoomId>
                <Charge1stNight>120.0000</Charge1stNight>
                <Charge1stNightNett>0</Charge1stNightNett>
                <ChargeTotal>120.0000</ChargeTotal>
                <ChargeTotalNett>0</ChargeTotalNett>
            </ReservationSummaryItem>
            <ReservationSummaryItem>
                <BookRef>BK00016</BookRef>
                <RoomPickId>1</RoomPickId>
                <GroupRef />
                <PORef />
                <BookingStatus>3</BookingStatus>
                <DateArrive>2016-06-30T00:00:00</DateArrive>
                <DateDepart>2016-07-01T00:00:00</DateDepart>
                <Adults>1</Adults>
                <Children>0</Children>
                <Infants>0</Infants>
                <RoomTypeCode>DOUBLE</RoomTypeCode>
                <PackageCode>FLEX_BB</PackageCode>
                <CompanyRef />
                <BookerTitle>Miss</BookerTitle>
                <BookerSurname>Williams</BookerSurname>
                <BookerForename>Megan</BookerForename>
                <PrimaryGuestTitle>Miss</PrimaryGuestTitle>
                <PrimaryGuestSurname>Williams</PrimaryGuestSurname>
                <PrimaryGuestForename>Megan</PrimaryGuestForename>
                <PrimaryGuestPackageCode>FLEX_BB</PrimaryGuestPackageCode>
                <CreatedTimestamp>2016-06-16T17:00:34</CreatedTimestamp>
                <EditTimestamp>0001-01-01T00:00:00</EditTimestamp>
                <DepositPaid>0.0000</DepositPaid>
                <DepositDue>0.0000</DepositDue>
                <RoomId>12</RoomId>
                <Charge1stNight>130.0000</Charge1stNight>
                <Charge1stNightNett>0</Charge1stNightNett>
                <ChargeTotal>130.0000</ChargeTotal>
                <ChargeTotalNett>0</ChargeTotalNett>
            </ReservationSummaryItem>
            <ReservationSummaryItem>
                <BookRef>BK00017</BookRef>
                <RoomPickId>1</RoomPickId>
                <GroupRef />
                <PORef />
                <BookingStatus>3</BookingStatus>
                <DateArrive>2016-06-30T00:00:00</DateArrive>
                <DateDepart>2016-07-01T00:00:00</DateDepart>
                <Adults>2</Adults>
                <Children>0</Children>
                <Infants>0</Infants>
                <RoomTypeCode>DOUBLE</RoomTypeCode>
                <PackageCode>FLEX_BB</PackageCode>
                <CompanyRef />
                <BookerTitle>Miss</BookerTitle>
                <BookerSurname>Williams</BookerSurname>
                <BookerForename>Megan</BookerForename>
                <PrimaryGuestTitle>Miss</PrimaryGuestTitle>
                <PrimaryGuestSurname>Williams</PrimaryGuestSurname>
                <PrimaryGuestForename>Megan</PrimaryGuestForename>
                <PrimaryGuestPackageCode>FLEX_BB</PrimaryGuestPackageCode>
                <CreatedTimestamp>2016-06-16T17:02:33</CreatedTimestamp>
                <EditTimestamp>0001-01-01T00:00:00</EditTimestamp>
                <DepositPaid>0.0000</DepositPaid>
                <DepositDue>0.0000</DepositDue>
                <RoomId>15</RoomId>
                <Charge1stNight>120.0000</Charge1stNight>
                <Charge1stNightNett>0</Charge1stNightNett>
                <ChargeTotal>120.0000</ChargeTotal>
                <ChargeTotalNett>0</ChargeTotalNett>
            </ReservationSummaryItem>
            <ReservationSummaryItem>
                <BookRef>BK00018</BookRef>
                <RoomPickId>1</RoomPickId>
                <GroupRef />
                <PORef />
                <BookingStatus>1</BookingStatus>
                <DateArrive>2016-08-24T00:00:00</DateArrive>
                <DateDepart>2016-08-28T00:00:00</DateDepart>
                <Adults>2</Adults>
                <Children>0</Children>
                <Infants>0</Infants>
                <RoomTypeCode>DOUBLE</RoomTypeCode>
                <PackageCode>FLEX_BB</PackageCode>
                <CompanyRef />
                <BookerTitle>Miss</BookerTitle>
                <BookerSurname>Williams</BookerSurname>
                <BookerForename>Megan</BookerForename>
                <PrimaryGuestTitle>Miss</PrimaryGuestTitle>
                <PrimaryGuestSurname>Williams</PrimaryGuestSurname>
                <PrimaryGuestForename>Megan</PrimaryGuestForename>
                <PrimaryGuestPackageCode>FLEX_BB</PrimaryGuestPackageCode>
                <CreatedTimestamp>2016-08-24T15:39:21</CreatedTimestamp>
                <EditTimestamp>0001-01-01T00:00:00</EditTimestamp>
                <DepositPaid>0.0000</DepositPaid>
                <DepositDue>0.0000</DepositDue>
                <RoomId />
                <Charge1stNight>120.0000</Charge1stNight>
                <Charge1stNightNett>0</Charge1stNightNett>
                <ChargeTotal>480.0000</ChargeTotal>
                <ChargeTotalNett>0</ChargeTotalNett>
            </ReservationSummaryItem>
        </Reservations>
    </ProfileSummaryWithStays>
</pmsprf_GetProfileSummaryWithStaysResponse>

Code samples

@ECHO OFF



curl -v -X POST "https://pmsws.eu.guestline.net/rlxsoaprouter/rlxsoap.asmx?op=pmsprf_GetProfileSummaryWithStays"
-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=pmsprf_GetProfileSummaryWithStays&" + 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=pmsprf_GetProfileSummaryWithStays");


            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=pmsprf_GetProfileSummaryWithStays" + $.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=pmsprf_GetProfileSummaryWithStays";
    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=pmsprf_GetProfileSummaryWithStays');
$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", "pmsprf_GetProfileSummaryWithStays%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/pmsprf_GetProfileSummaryWithStays&%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=pmsprf_GetProfileSummaryWithStays')


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