API Documentation

From Rts
Jump to: navigation, search

Contents

Version Change History

Date Change Notes Version
12/28/08 Added Error Listing 0.2
06/16/09 Added Retrieve Seating Chart Section 1.0
06/17/09 Added PHP sample code 1.01
03/15/10 Added the CustomerInfo and EmailAddress tags. Used to look-up transactions at the POS. 1.02
04/13/10 Added Gift Balance functions (requires server version 7.0.7564+).

Added gift number to purchase request, which allows adding money to an existing gift card (requires server version 7.0.7564+).

1.03
11/22/10 General document clean-up.

Corrected 'GiftInfo' to be 'GiftInformation'.
Added information for concession prices XML and concession sales.
Added 'SalesTaxCheck' information.
Moved all references regarding encryption to summary pages at back of documentation.
Updated PHP sample code to use TLS for the connection protocol.

1.04
11/30/10 Added test server information, credit card information, gift card information, etc

Updated PHP sample code to contain additional sample packets

1.05
12/13/10 Added sample of purchase ticket response

Updated sample response for GiftInformation, showing Registered Card information

1.06
06/11/13 Added multiple <Payment> sample

Added GroupID for Reserved Seating – Seat Chart
Added Registering a mag card
Added earning loyalty points for purchases
Added CardCredits to GiftInformation sample response

1.07
01/07/2014 Corrected an error in the Fees section regarding <TicketFee> 1.08
01/15/2015 emoved sample code (too many people using for production environments)

Switched from DIGEST to BASIC authentication
Added new error codes
Removed HTTP + Encryption section (no longer relevant)
Added CheckSoldOut request – shows Sold /Remaining / SoldOut levels for a performance

1.09
03/20/2015 Removed obsolete Seating Chart sample request 1.10
06/03/2015 Added WorldPay HostedCheckout sample requests and responses

Added 3rd party credit card processing sample request
Added listing of bit field settings used for films and shows
Added new error numbers / messages
Updated existing error numbers / messages

1.11
10/24/2016 Added CheckRedeem request sample

Added GetSeatLayouts request sample
Added GetSeatPlanForPerf request sample
Added CheckSeatPicks request sample
Added VerifyTransaction request sample
Added ReverseTransaction request sample
Added Refund request sample
Updated BUY request to include <ThirdPartyID> node information
Simplified table of contents

1.12
02/08/2017 Added Bit Field values for various new amenities 1.13
05/30/2017 Fixed documentation error with the CHECKSEATPICKS response 1.14
10/19/2017 Fixed typo in ‘CHECKSEATPICKS’ sample request

Added GridRef to ‘GETSEATPLANFORPERF’ response

1.15
02/02/2018 Added note regarding GZIP compression now being required for schedule request 1.16
07/24/2018 Updated test credit card information

Added Bit Field values for various new amenities

1.17
08/13/2018 Added TransactionDetails request sample

Added Redeem request sample
Updated Refund request to include PartialRefund support

1.18
09/26/2019 Added <SOGen> node to schedule data to indicate SoldOutGeneral state
Updated verbiage on <SO> and
  • node descriptions
    Added gift card PIN node to BUY request
    Added 3rd party gift card support
    Added custom seat pricing data to GETSEATPLANFORPERF call
    Added note regarding send confirmation emails on purchase via API
    Updated existing error numbers / messagess
  • 1.19
    11/25/2019 Updated seat type nodes to support new types

    Added support for 3rd party gift cards into the GIFTINFORMATON call
    Added a call for GIFTINFORMATIONWITHPIN to support PIN requiring card types

    1.20
    01/31/2020 Added Heartland HostedCheckout test card information

    Added Heartland HostedCheckout sample requests and responses
    Added Heartland HostedCheckout error messages

    1.21
    05/04/2020 Updated seat status nodes to support Buffer seat status 1.22


    Introduction

    RTS Ticketing has created an open interface to accommodate third party access to our sales engine. In order to allow access, we have created an HTTPS server that accepts XML packets.

    Credit card payments are processed either through the POS locations’ credit card processing account, or through your own processing account. So a separate shopping cart or credit card processing account is not needed, but you have the option of building your own.

    Purchased tickets can be redeemed at the locations POS at for actual tickets. These tickets can be redeemed using any of three methods:

    1. The credit card that was used to purchase the tickets
    2. The receipt number assigned to the purchase
    3. The bar code that is provided by the purchase response packet.


    Note: Some locations do not have bar code readers or the bar code may be illegible when printed on a low-quality printer. It is strongly suggested that the confirmation number is also printed with the bar code.

    Communication

    Communications with the locations POS server are done using a HTTPS Post of an XML packet. Basic authentication is performed for each Post.

    The URL for posting data is:
    https://<Theatre RTN Number>.formovietickets.com:<port>/Data.ASP

    Note: The listening port is 2235 (not the default web server port 80)

    Test Server Information

    It is a good idea to develop your application against a test server, and not against a live theatre server. Below is the information for the RTS Test Servers:

    !! NOTE: These are not web pages, they cannot be viewed in a browser !!

    WorldPay Non-E2E Server (also known as Mercury Classic Server):
    The endpoint URL is: https://5.formovietickets.com:2235/Data.ASP

    WorldPay E2E Server (also known as Mercury EMV Server):
    The endpoint URL is: https://5.formovietickets.com:2245/Data.ASP

    Heartland Secure Server:
    The endpoint URL is: https://5.formovietickets.com:2255/Data.ASP

    TSYS Secure Server:
    The endpoint URL is: https://5.formovietickets.com:2265/Data.ASP

    The credentials for these servers are:

    Schedule and Selling Username: test
    Schedule and Selling Password: test

    Test Card Information

    !! NOTE: The <ChargeAmount> for the test WorldPay cards cannot exceed $10 !!

    The test credit card information for the WorldPay Non-E2E server is:

    Number 6011-0009-9091-1111
    Expiration 12/2025
    AVS Street 123 Main Street
    AVS Postal 45209
    CVV 222
    Customer Name Any name

    The test credit card information for the WorldPay E2E server is:

    Number 6011-0009-9091-1111
    Expiration 12/2025
    AVS Street 123 Main Street
    AVS Postal 45209
    CVV 222
    Customer Name Any name

    The test credit card information for the Heartland Secure server is:

    Number 4012-0020-0006-0016
    Expiration 12 / 2025
    AVS Street 6860 Dallas Pkwy
    AVS Postal 75024
    CVV 123
    Customer Name Any name

    The test credit card information for the TSYS Secure server is:

    Number 4012-0000-9876-5439
    Expiration 12 / 2020
    AVS Street 8320 T
    AVS Postal 85284
    CVV 999
    Customer Name Any name

    To obtain a test gift card number, purchase a new gift card, and then use the returned number as your future test gift card number. See Gift Card / Loyalty Card Information for details on purchasing new gift cards.

    Performance Schedule

    !! NOTE: GZIP Compression is required when requesting schedule data !!

    !! NOTE: Sending in <ShowAvalTickets> and <ShowSales> values that do not match the settings on the locations configured schedule API account will result in a 401 – Unauthorized error !!


    Performance Schedule - Sample Request Packet

    <Request>
        <Version>1</Version>
        <Command>ShowTimeXml</Command>
        <ShowAvalTickets>1</ShowAvalTickets>
        <ShowSales>1</ShowSales>
        <ShowSaleLinks>1</ShowSaleLinks>
    </Request>
     
    

    Performance Schedule - Sample Response Packet

    <Response>
        <ShowSchedule>
            <FileVersion>1.1</FileVersion>
            <RtsVersion>7.0.7238.0</RtsVersion>
            <LinkPrefix> https://www.readyticket.net/webticket/webticket2.aspWCI=BuyTicket&WCI=
    </LinkPrefix>
            <Tickets>
                <Ticket>
                    <Code>1</Code>
                    <Name>Adult</Name>
                    <Price>7.5</Price>
                    <Tax>.5</Tax>
                </Ticket>
                <Ticket>
                    <Code>2</Code>
                    <Name>Child</Name>
                    <Price>7</Price>
                    <Tax>.43</Tax>
                </Ticket>
            </Tickets>
            <Films>
                <Film>
                    <Title>+21 STRANGE TITLE</Title>
                    <TitleShort>+21 STRANGE TITLE</TitleShort>
                    <Length>120</Length>
                    <Rating>NC17</Rating>
                    <WebSite>http://www.rts-solutions.com</WebSite>
                    <FilmCode>+24230</FilmCode>
                    <MtFilmCode></MtFilmCode>
                    <Shows>
                        <Show>
                            <DT>200811261235</DT>
                            <Aud>1</Aud>
                            <ID>+24230|200811261235|1</ID>
                            <SaleLink>%2B21+STRANGE+TITLE,112620081235,1,5,NC17</SaleLink>
                            <RE>225</RE>
                            <Sold>22</Sold>
                            <SO>0</SO>
                            <LI>0</LI>
                            <TIs>
                                <TI>
                                    <C>1|1</C>
                                </TI>
                                <TI>
                                    <C>1|2</C>
                                </TI>
                            </TIs>
                        </Show>
                    </Shows>
                </Film>
            </Films>
        </ShowSchedule>
    </Response>
     
    
    Node Child Node Type Required Description <Request>
    Version None Char Yes 1
    Command None Char Yes ShowTimeXml
    ShowAvalTickets None Integer No Not 1 = Do not return available tickets (default)

    1 = Return available tickets

    ShowSales None Integer No Not 1 = Do not return sales (default)

    1 = Return sales

    Node Child Node Type Required Description <ShowSchedule>
    FileVersion None String Yes 1.1
    RtsVersion None String Yes Version of the POS
    LinkPrefix None String Yes Used to construct a direct ticketing link for a performance
    Tickets Ticket Sub Node Maybe Lists available tickets
    Films Film Sub Node Yes Lists films scheduled
    Node Child Node Type Required Description <Ticket>
    Code None String Yes Ticket code used in purchase transactions
    Name None String Yes Ticket name as it should be displayed on the Internet
    Price None Decimal Yes Total ticket price
    Tax None Decimal Maybe Any tax included in the ticket price
    Node Child Node Type Required Description <Film>
    Title None String Yes Film title name
    Length None String Yes Film length (minutes)
    WebSite None String Maybe URL associated with the film in the POS
    FilmCode None String Maybe RTS Film Code setup in the POS
    Shows Show Sub Node Yes List of available shows for a film
    Node Child Node Type Required Description <Show>
    DT None String Yes Showing time (yyyyMMddhhmm)
    Aud None String Yes Auditorium name
    ID None String Yes Performance ID, used in purchase transactions
    Link None String Maybe URL to purchase tickets page. The <LinkPrefix> is inserted before this tag when creating the complete URL
    RE None Integer Maybe Number of seats remaining in the auditorium
    Sold None Integer Maybe Number of seats sold in the auditorium
    SO None Integer Maybe 1 if show is sold out (internet) state
    SOGen None Integer Maybe 1 if show is sold out (general) state
    LI None Integer Maybe 1 if show is in low seats state
    TIs TI Sub Node Maybe List of tickets available for this show

    Selling - Fees and Adjustments

    The Open Interface API currently allows for 2 different types of Fees, and an Adjustment.

    The <TicketFee> item is a single charge added to the transaction.

    The <TransactionFee> item is a single charge added to the transaction.

    The <Adjust> item is an adjustment used to modify the charge amount. If you sell 3 tickets with -$1 in this item, it will deduct $1 from your transaction amount. This amount can be positive or negative, depending on how you wish to adjust the transaction.

    All three of these items are placed inside the <Fees> tags inside the purchase packet, see page 13 for a sample packet. These items can be used in any purchase packet: tickets, items, gift cards, etc.

    Gift Card / Loyalty Card Information

    Gift Card / Loyalty Card - Sample Request Packet

    <Request>
        <Version>1</Version>
        <Command>GiftInformation</Command>
        <Data>
            <Packet>
                <GiftCards>
                    <GiftCard>1234123412341234</GiftCard>
                </GiftCards>
            </Packet>
        </Data>
    </Request> 
     
    
    Node Child Node Type Required Description <Show>
    Version None Char Yes 1
    Command None String Yes GiftInformation
    Data Packet Sub Node Yes
    Packet GiftCards Sub Node Yes
    GiftCards GiftCard Sub Node Yes
    GiftCard None String Yes Gift card number

    Gift Card / Loyalty Card - Sample Response Packet – Non-Registered Card

    <Response>
        <Version>1</Version>
        <Code>-1</Code>
        <Packet>
            <GiftCard>
                <GiftNumber>1234123412341234</GiftNumber>
                <DebitRemain>1061.16</DebitRemain>
                <Registered>0</Registered>
            </GiftCard>
        </Packet>
    </Response> 
     
    

    Gift Card / Loyalty Card (With PIN) - Sample Request Packet

    <Request>
        <Version>1</Version>
        <Command>GiftInformationWithPIN</Command>
        <Data>
            <Packet>
                <GiftCards>
                    <GiftCard>
                        <CardNumber>1234123412341234</CardNumber>
                        <CardPIN>1234</CardPIN>
                    </GiftCard>
                </GiftCards>
            </Packet>
        </Data>
    </Request> 
     
    
    Node Child Node Type Required Description <Request>
    Version None Char Yes 1
    Command None String Yes GiftInformation
    Data Packet Sub Node Yes
    Packet GiftCards Sub Node Yes
    GiftCards GiftCard Sub Node Yes
    GiftCard None String Yes One <GiftCard> node for each card in request
    CardNumber None String Yes Gift card number
    CardPIN None String Yes Gift card PIN

    Gift Card / Loyalty Card (With PIN) - Sample Response Packet – Non-Registered Card

    <Response>
        <Version>1</Version>
        <Code>-1</Code>
        <Packet>
            <GiftCard>
                <GiftNumber>1234123412341234</GiftNumber>
                <DebitRemain>1061.16</DebitRemain>
                <Registered>0</Registered>
            </GiftCard>
        </Packet>
    </Response> 
     
    

    Gift Card / Loyalty Card - Sample Response Packet – Registered Card

    !! NOTE: RTS mag cards are the only type that will return registration data !!

    <Response>
        <Version>1</Version>
        <Code>-1</Code>
        <Packet>
            <GiftCard>
                <GiftNumber>2012700000745808</GiftNumber>
                <DebitRemain>1061.16</DebitRemain>
                <Registered>1</Registered>
                <RegisteredInfo>
                    <FirstName>JOHN</FirstName>
                    <LastName>DOE</LastName>
                    <Address1>4 DOE ROAD</Address1>
                    <Address2/>
                    <City>DOEVILLE</City>
                    <State>DO</State>
                    <Postal>11111</Postal>
                </RegisteredInfo>
                <CardCredits>
                    <TicketCredit>
                        <Expiration>None</Expiration>
                        <StartDate>None</StartDate>
                        <Amount>1</Amount>
                        <TitleRestriction/>
                        <TicketRestriction/>
                    </TicketCredit>
                    <TicketCredit>
                        <Expiration>20130405000000</Expiration>
                        <StartDate>20130405000000</StartDate>
                        <Amount>1</Amount>
                        <TitleRestriction>WORLD WAR Z</TitleRestriction>
                        <TicketRestriction/>
                    </TicketCredit>
                    <ItemCredit>
                        <Expiration>None</Expiration>
                        <StartDate>20130426000000</StartDate>
                        <Amount>1</Amount>
                        <Item>SM POPCORN</Item>
                    </ItemCredit>
                </CardCredits>
            </GiftCard>
        </Packet>
    </Response> 
     
    
    Node Child Node Type Required Description <Response>
    Version None Char Yes 1
    Code None Integer Yes -1
    Packet GiftCard Sub Node Yes
    GiftCard RegisteredInfo Sub Node Yes
    GiftCard CardCredits Sub Node Yes
    GiftNumber None String Yes Gift card number
    DebitRemain None Decimal Yes Gift card remaining balance
    Registered None Integer Yes 0 = not registered, 1 = registered
    Node Child Node Type Required Description <RegisteredInfo>
    FirstName None String Yes Customer first name
    LastName None String Yes Customer last name
    Address1 None String Yes Customer street address 1
    Address2 None String Yes Customer street address 2
    City None String Yes Customer city
    State None String Yes Customer state
    Postal None String Yes Customer postal code
    Node Child Node Type Required Description <CardCredits>
    TicketCredit None Sub Node No
    ItemCredit None Sub Node No
    Node Child Node Type Required Description <TicketCredit>
    Expiration None String Yes None = No expiration date, or date of expiration (yyyyMMddhhmmss)
    StartDate None String Yes None = No start date, or date ticket credit becomes valid (yyyyMMddhhmmss)
    Amount None Integer Yes Amount of tickets available
    TitleRestriction None String Yes Empty node = no restriction, or title of movie this credit is good for
    TicketRestriction None String Yes Empty node = no restriction, or name of ticket this credit is good for
    Node Child Node Type Required Description <ItemCredit>
    Expiration None String Yes None = No expiration date, or date of expiration (yyyyMMddhhmmss)
    StartDate None String Yes None = No start date, or date item credit becomes valid (yyyyMMddhhmmss)
    Amount None Integer Yes Amount of item available
    Item None String Yes Name of item credit is good for

    Gift Certificate Purchasing

    New Gift Card Purchase - Sample Request Packet

    <Request>
        <Version>1</Version>
        <Command>Buy</Command>
        <Data>
            <Packet>
                <PurchaseGifts>
                    <PurchaseGift>
                        <Amount>25</Amount>
                    </PurchaseGift>
                </PurchaseGifts>
                <Payments>
                    <Payment>
                        <Type>CreditCard</Type>
                        <Number>5499990123456781</Number>
                        <Expiration>0513</Expiration>
                        <AvsStreet>4 Main St</AvsStreet>
                        <AvsPostal>30329</AvsPostal>
                        <CID>123</CID>
                        <NameOnCard>John Doe</NameOnCard>
                        <ChargeAmount>7.5</ChargeAmount>
                    </Payment>
                </Payments>
            </Packet>
        </Data>
    </Request> 
     
    

    Add Money to Existing Gift Card Purchase - Sample Request Packet

    <Request>
        <Version>1</Version>
        <Command>Buy</Command>
        <Data>
            <Packet>
                <PurchaseGifts>
                    <PurchaseGift>
                        <GiftCard>1234-1234-1234-1234</GiftCard>
                        <Amount>25</Amount>
                    </PurchaseGift>
                </PurchaseGifts>
                <Payments>
                    <Payment>
                        <Type>CreditCard</Type>
                        <Number>5499990123456781</Number>
                        <Expiration>0513</Expiration>
                        <AvsStreet>4 Main St</AvsStreet>
                        <AvsPostal>30329</AvsPostal>
                        <CID>123</CID>
                        <NameOnCard>John Doe</NameOnCard>
                        <ChargeAmount>7.5</ChargeAmount>
                    </Payment>
                </Payments>
            </Packet>
        </Data>
    </Request> 
     
    
    Node Child Node Type Required Description <PurchaseGifts>
    PurchaseGifts PurchaseGift Sub Node No Contains one or more gift card purchases
    Amount None Decimal Yes Amount to add to the gift card
    GiftCard None String No If specified, amount will be added to the gift card. If not specified, a new number will be generated and the amount added to the new number

    Gift Card Purchase - Sample Response Packet

    <Response>
        <Version>1</Version>
        <Code>-1</Code>
        <Packet>
            <Response>
                <Code>0</Code>
                <ResponseText>OK</ResponseText>
                <TransactionID>1476206</TransactionID>
                <GiftPurchases>
                    <GiftPurchase>
                        <GiftNumber>1234-1234-1234-1234</GiftNumber>
                        <Amount>1</Amount>
                    </GiftPurchase>
                </GiftPurchases>
            </Response>
        </Packet>
    </Response> 
     
    

    Loyalty Card Information

    Registering a Loyalty Card – Sample Request Packet

    <Request>
        <Version>1</Version>
        <Command>GIFTINFORMATION</Command>
        <Data>
            <RegisterCards>
                <RegisterCard>
                    <CardNumber>12345</CardNumber>
                    <FirstName>Jon</FirstName>
                    <LastName>Doe</LastName>
                    <Address1>Address Line 1</Address1>
                    <Address2>Address Line 2</Address2>
                    <City>The City</City>
                    <State>The State</State>
                    <Postal>Postal Code</Postal>
                    <RegisteredID>Reg ID</RegisteredID>
                    <Email>Support@rts-solutions.com</Email>
                    <DOB>19710323</DOB>
                    <DoNotEmail>1</DoNotEmail>
                </RegisterCard>
            </RegisterCards>
        </Data>
    </Request> 
     
    

    You can register multiple cards by passing in additional <RegisterCard> nodes.

    Node Child Node Type Required Description <Request>
    Version None integer Yes 1
    Command None String Yes GIFTINFORMATION
    Data RegisterCards Sub Node Yes
    RegisterCards RegisterCard Sub Node Yes
    CardNumber None String Yes Card number to register
    FirstName None String Yes Customer first name
    LastName None String Yes Customer last name
    Address1 None String Yes Customer street address 1
    Address2 None String Yes Customer street address 2
    City None String Yes Customer city
    State None String Yes Customer state
    Postal None String Yes Customer postal code
    RegisteredID None String Yes ????
    Email None String Yes Customer email address
    DOB None String Yes Customer date of birth
    DoNotEmail None String Yes 0 = email, 1 = do not email

    Ticket Purchasing – Check Sold Out

    Checking Performance Sold / Remaining / SoldOut Levels – Sample Request Packet

    <Request>
        <Version>1</Version>
        <Command>CheckSoldOut</Command>
        <Data>
            <Packet>
                <PerformanceID>013732000045</PerformanceID>
            </Packet>
        </Data>
    </Request> 
     
    
    Node Child Node Type Required Description <Request>
    Version None Char Yes 1
    Command None String Yes CheckSoldOut
    PerformanceID None String Yes The PerformanceID for the show to check

    Checking Performance Sold / Remaining / SoldOut Levels – Sample Response Packet

    <Response>
        <Version>1</Version>
        <Sold>3</Sold>
        <IsReserved>0</IsReserved>
        <TotalSeats>500</TotalSeats>
        <SoldOut_General>2</SoldOut_General>
        <SoldOut_Internet>5</SoldOut_Internet>
    </Response> 
     
    
    Node Child Node Type Required Description <Response>
    Version None Char Yes 1
    Sold None Integer No Number of tickets sold to this performance
    IsReserved None Integer No 0 = General Admission, 1 = Reserved
    TotalSeats None Integer No Total number of seats for the show
    SoldOut_General None Integer No General sold out seats remaining level
    SoldOut_Internet None Integer No Internet sold out seats remaining level

    An example of the levels meaning is: 500 seats total, Internet Sold Out happens with 5 seats remaining. Internet Sold Out happens when Sold hits 495.

    If the number of tickets in a transaction is greater than the number seats remaining until Internet Sold Out happens, the transaction will fail.

    Ticket Purchasing – Check Redeem

    This call allows you to see the status of a ticket redemption. If the tickets have not yet been redeemed, the transaction could be refunded or reversed. If the tickets have already been redeemed by the customer, the transaction cannot be altered.

    Checking Ticket Redemption Status – Sample Request Packet

    <Request>
        <Version>1</Version>
        <Command>CheckRedeem</Command>
        <Data>
            <Packet>
                <PickupNumber>558722177437</PickupNumber>
            </Packet>
        </Data>
    </Request>
     
    
    Node Child Node Type Required Description <Request>
    Version None Char Yes 1
    Command None String Yes CheckRedeem
    PickupNumber None String Yes The PickupNumber from the sale transaction

    Checking Ticket Redemption Status – Sample Response Packet

    <Response>
        <Version>1</Version>
        <Redeemed>1</Redeemed>
    </Response> 
     
    
    Node Child Node Type Required Description <Response>
    Version None Char Yes 1
    Redeemed None Boolean Yes 0 = Not Redeemed, 1 = Redeemed

    Ticket Purchasing – Verify Transaction

    This call allows you to see if a transaction was successfully received and processed. If, for example, you passed in a buy request (that uses the <ThirdPartyID> node) and never received a response from the point-of-sale, this call can be used to see if the transaction was received and processed.

    Found transactions will return the <PickupNumber> associated with the purchase.

    Verify Transaction Status – Sample Request Packet

    <Request>
        <Version>1</Version>
        <Command>VERIFYTRANSACTION</Command>
        <Data>
            <Packet>
                <ThirdPartyID>63a96a1c66d44b568b3115aeeadc6b12</ThirdPartyID>
                <TransactionDateTimeUTC>20161024153500</TransactionDateTimeUTC>
            </Packet>
        </Data>
    </Request> 
     
    
    Node Child Node Type Required Description <Request>
    Version None Char Yes 1
    Command None String Yes VerifyTransaction
    ThirdPartyID None String Yes Your ID for the sale transaction (must have been passed in with the original sale)
    TransactionDateTimeUTC None String Yes The sale transaction date/time in UTC (format:yyyyMMddhhmmss).

    Verify Transaction Status – Sample Response Packet

    <Response>
        <Version>1</Version>
        <TransactionFound>1</TransactionFound>
        <PickupNumber>728722814391</PickupNumber>
    </Response> 
     
    
    Node Child Node Type Required Description <Response>
    Version None Char Yes 1
    TransactionFound None Boolean Yes 0 = Not Found, 1 = Found
    PickupNumber None String No If transaction found, this will be the pickup number for the customer redemption.

    Ticket Purchasing – Transaction Details

    This call lets you retrieve the details of a previous transaction by the PickupNumber associated with the purchase.

    Transaction Details – Sample Request Packet

    <Request>
        <Version>1</Version>
        <Command>TRANSACTIONDETAILS</Command>
        <Data>
            <Packet>
                <PickupNumber>249728765499</PickupNumber>
            </Packet>
        </Data>
    </Request>
     
    
    Node Child Node Type Required Description <Request>
    Version None Char Yes 1
    Command None String Yes TransactionDetails
    PickupNumber None String Yes The PickupNumber from the sale transaction

    Transaction Details – Sample Response Packet

    <Response>
        <Version>1</Version>
        <TransactionFound>1</TransactionFound>
        <Performances>
            <Performance>
                <Title>ALIEN: COVENANT</Title>
                <DateTime>052920182115</DateTime>
                <Auditorium>2</Auditorium>
                <Tickets>
                    <Ticket>
                        <Status>Redeemed - Online</Status>
                        <PickupDateTime>052920181119</PickupDateTime>
                        <Type>senior</Type>
                        <IsReserved>1</IsReserved>
                        <Section>Ruby</Section>
                        <RowDesc>H</RowDesc>
                        <ColDesc>15</ColDesc>
                    </Ticket>
                </Tickets>
            </Performance>
        </Performances>
    </Response> 
     
    
    Node Child Node Type Required Description <Response>
    Version None Char Yes 1
    TransactionFound None Boolean Yes 0 = Not Found, 1 = Found
    Performances Performance Sub Node No If transaction found, this will contain the Performance(s) in the transaction.
    Node Child Node Type Required Description <Performances>
    Performance None Sub Node No If transaction found, there will be 1 or more Performance nodes,depending on the transaction contents
    Node Child Node Type Required Description <Performance>
    Title None String Yes The title for this performance
    DateTime None String Yes Performance start time (MMddyyyyhhmm)
    Auditorium None String Yes The auditorium this performance is in
    Tickets Ticket Sub Node Yes The tickets for this performance
    Node Child Node Type Required Description <Tickets>
    Ticket None Sub Node No If transaction found, there will be 1 or more Performance nodes, depending on the transaction contents
    Node Child Node Type Required Description <Ticket>
    Status None String Yes The current status of the ticket pickup:
    Valid - Ticket is available for redemption
    Expired - Ticket has expired
    Refunded - Transaction was refunded via the API
    Reversed - Transaction was reversed via the API
    Redeemed - Online - Ticket was picked up via the API
    Redeemed - Printed - Ticket was picked up in theatre
    PickupDateTime None String Yes Will be present if the ticket is not "Valid" or "Expired" (MMddyyyyhhmm)
    PickupLocation None String Yes Will be present if the ticket was picked up in theatre
    PickupUser None String Yes Will be present if the ticket was picked up in theatre
    Type None String Yes The type of ticket purchased
    IsReserved None Boolean Yes 0 = Not reserved, 1 = Reserved
    Section None String Yes Will be present if the ticket is reserved, indicates the section name the reserved seat is in
    RowDesc None String Yes Will be present if the ticket is reserved, indicates the Row description
    ColDesc None String Yes Will be present if the ticket is reserved, indicates the Column (or Seat) description

    Ticket Purchasing – Redeem Tickets

    This call lets you tell the POS system that you have redeemed tickets via a 3rd party app.

    Redeem – Sample Request Packet

    <Request>
        <Version>1</Version>
        <Command>RDEEM</Command>
        <Data>
            <Packet>
                <PickupNumber>249728765499</PickupNumber>
            </Packet>
        </Data>
    </Request> 
     
    
    Node Child Node Type Required Description <Request>
    Version None Char Yes 1
    Command None String Yes TransactionDetails
    PickupNumber None String Yes The PickupNumber from the sale transaction

    Redeem – Sample Request Packet

    <Response>
        <Version>1</Version>
        <HasRedemptions>1</HasRedemptions>
        <HasExpirations>0</HasExpirations>
        <HasPickedUp>0</HasPickedUp>
        <ValidTickets>
            <Ticket>
                <Type>senior</Type>
                <IsReserved>1</IsReserved>
                <Section>Ruby</Section>
                <RowDesc>H</RowDesc>
                <ColDesc>15</ColDesc>
            </Ticket>
        </ValidTickets>
    </Response> 
     
    
    Node Child Node Type Required Description <Response>
    Version None Char Yes 1
    HasRedemptions None Boolean Yes 0 = False, 1 = True
    HasExpirations None Boolean Yes 0 = False, 1 = True
    HasPickedUp None Boolean Yes 0 = False, 1 = True
    ValidTickets Ticket Sub Node No If there are redemptions, this node will indicate the tickets being redeemed
    ExpiredTickets Ticket Sub Node No If there are expirations, this node will indicate the tickets that have expired
    PickedUpTickets Ticket Sub Node No If there are already redeemed tickets, this node will indicate the tickets already redeemed
    Node Child Node Type Required Description <Ticket>
    Type None String Yes The type of ticket purchased
    IsReserved None Boolean Yes 0 = Not reserved, 1 = Reserved
    Section None String Yes Will be present if the ticket is reserved, indicates the section name the reserved seat is in
    RowDesc None String Yes Will be present if the ticket is reserved, indicates the Row description
    ColDesc None String Yes Will be present if the ticket is reserved, indicates the Column (or Seat) description

    Ticket Purchasing – Refunds

    Only use this call if you are processing the credit card transactions outside of the point-of-sale system!

    Allows for refunding of ticket purchases BEFORE the show has started, as long as the tickets from the sale have not already been redeemed.

    Whole Transaction Refund – Sample Request Packet

    <Request>
        <Version>1</Version>
        <Command>Refund</Command>
        <Data>
            <Packet>
                <Fees>
                    <TicketFee>2</TicketFee>
                    <TransactionFee>1</TransactionFee>
                    <Adjust>3.50</Adjust>
                </Fees>
                <PickupNumber>220000528377</PickupNumber>
            </Packet>
        </Data>
    </Request> 
     
    
    Node Child Node Type Required Description <Request>
    Version None Char Yes 1
    Command None String Yes Refund
    Fees None Sub Node Yes
    TicketFee None Decimal Yes The ticket fee from the sale transaction
    TransactionFee None Decimal Yes The transaction fee from the sale transaction
    Adjust None Decimal Yes The sale transaction total (positive amount).
    PickupNumber None String Yes The PickupNumber from the sale transaction

    Partial Transaction Refund - Sample Request Packet

    <Request>
        <Version>1</Version>
        <Command>Refund</Command>
        <Data>
            <Packet>
                <Fees>
                    <TicketFee>-3.4</TicketFee>
                    <TransactionFee>0</TransactionFee>
                    <Adjust>0</Adjust>
                </Fees>
                <PickupNumber>312729628817</PickupNumber>
                <PartialRefunds>
                    <!-- option 1: whole performance from a ticket day -->
                    <PartialRefund>
                        <PerformanceID>017988000012</PerformanceID>
                    </PartialRefund>
                    <!-- option 2: reserved partial ticket for performance-->
                    <PartialRefund>
                        <PerformanceID>017988000012</PerformanceID>
                        <Tickets>
                            <Ticket>
                                <Amount>1</Amount>
                                <TypeCode>6</TypeCode>
                                <Seat>
                                    <Section>21</Section>
                                    <Row>7</Row>
                                    <Col>10</Col>
                                </Seat>
                            </Ticket>
                        </Tickets>
                    </PartialRefund>
                    <!-- option 3: general admission partial ticket for performance-->
                    <PartialRefund>
                        <PerformanceID>017988000012</PerformanceID>
                        <Tickets>
                            <Ticket>
                                <Amount>1</Amount>
                                <TypeCode>6</TypeCode>
                            </Ticket>
                        </Tickets>
                    </PartialRefund>
                </PartialRefunds>
            </Packet>
        </Data>
    </Request> 
     
    
    Node Child Node Type Required Description <Request>
    Version None Char Yes 1
    Command None String Yes Refund
    Fees None Sub Node Yes
    TicketFee None Decimal Yes The ticket fee from the sale transaction
    TransactionFee None Decimal Yes The transaction fee from the sale transaction
    Adjust None Decimal Yes The sale transaction total (positive amount).
    PickupNumber None String Yes The PickupNumber from the sale transaction, from any <TicketDay> in the purchase response
    PartialRefunds PartialRefund Sub Node Yes
    Node Child Node Type Required Description <PartialRefunds>
    PartialRefund None Sub Node Yes Include this node for each partial refund action you want to take
    Node Child Node Type Required Description <PartialRefund>
    PerformanceID None String Yes The performance ID for the performance you want to refund against
    Tickets Ticket Sub Node No If not present, will refund all tickets for this performance
    Node Child Node Type Required Description <Ticket>
    Amount None Integer Yes General Admission: The number of tickets to refund. Reserved Seating: Will be 1 and <Seat> is required
    TypeCode None String No The ID of the ticket type being refunded
    Seat None Sub Node No If performance is reserved seating this is where you specify the seat to be refunded
    Node Child Node Type Required Description <Seat>
    Section None String Yes The section ID for the seat being refunded
    Row None Integer Yes The row index for the seat being refunded
    Col None Integer Yes The col index for the seat being refunded

    Refund – Sample Response Packet

    <Response>
        <Version>1</Version>
        <Code>-1</Code>
        <Packet>
            <Response>
                <ResponseText>OK</ResponseText>
                <TransactionID>14722824</TransactionID>
            </Response>
        </Packet>
    </Response> 
     
    
    Node Child Node Type Required Description <Response>
    Version None Char Yes 1
    Code None Char Yes -1
    TransactionFound None Boolean Yes 0 = Not Found, 1 = Found
    PickupNumber None String No If transaction found, this will be the pickup number for the customer redemption.

    Ticket Purchasing – Reverse Transaction

    Note: Only use this call if you are processing the credit card transactions outside of the point-of-sale system!

    Allows for reversal of a sale transaction by ThirdPartyID, in the event that you never received a response with a PickupNumber. It will be allowed as long as the tickets from the sale have not already been redeemed, and the show is still scheduled. Should be used in conjunction with “VerifyTransaction” to establish the state of the sale.

    ReverseTransaction – Sample Request Packet

    <Request>
        <Version>1</Version>
        <Command>ReverseTransaction</Command>
        <Data>
            <Packet>
                <Fees>
                    <TicketFee>2</TicketFee>
                    <TransactionFee>1</TransactionFee>
                    <Adjust>3.50</Adjust>
                </Fees>
                <ThirdPartyID>220000528377</ThirdPartyID>
            </Packet>
        </Data>
    </Request> 
     
    
    Node Child Node Type Required Description <Request>
    Version None Char Yes 1
    Command None String Yes Refund
    Fees None Sub Node Yes
    TicketFee None Decimal Yes The ticket fee from the sale transaction
    TransactionFee None Decimal Yes The transaction fee from the sale transaction
    Adjust None Decimal Yes The sale transaction total (positive amount).
    ThirdPartyID None String Yes Your ID for the sale transaction (must have been passed in with the original sale)

    ReverseTransaction – Sample Response Packet

    <Response>
        <Version>1</Version>
        <Code>-1</Code>
        <Packet>
            <Response>
                <ResponseText>OK</ResponseText>
                <TransactionID>14722826</TransactionID>
            </Response>
        </Packet>
    </Response> 
     
    
    Node Child Node Type Required Description <Response>
    Version None Char Yes 1
    TransactionFound None Boolean Yes 0 = Not Found, 1 = Found
    PickupNumber None String No If transaction found, this will be the pickup number for the customer redemption.

    WorldPay E2E - Credit Card Payment Overview

    The introduction of End-to-End Encryption to the credit card processing system has changed the way credit cards are processed by the software. Instead of the software processing the transaction, it is processed directly at the processor via a HostedCheckout system. This means the customer needs to be redirected to a secure credit card entry page that is provided by the credit card processing company.

    To summarize the process:
    1. A request is sent into the software to create a payment at the processor. This request contains the charge amount to authorize and 2 URLs: a ProcessCompleteUrl, and a ReturnUrl. Be sure to URL Encode your URLs.

    2. The software will return a create payment response which indicates if the create was successful, a TransactionId, a RedirectURL to send the customer to for credit card information entry, and the PostData to send into the processor page you redirect the customer to. If the create was unsuccessful there will be an ErrorMsg present to indicate the issue.

    3. The customer will then need to be redirected to the RedirectURL in the create payment response, posting in the PostData in the create payment response. If the customer completes the process the processor will redirect back to the ProcessCompleteURL from step 1, which will contain the processor response in the PostData. If the customer cancels the process, the processor will redirect back to the ReturnURL.

    4. If the payment was successful, a Buy request is then sent back to the software with the TransactionId, ProcessCompletePostData included in the Payment node. The software will then validate the payment and return either a failure or a success.

    It is important to note that you could repeat steps 1 – 3 for multiple credit cards if needed, then simply include multiple Payment nodes in step 4. Be sure to authorize each payment for only the amount needed, not the total transaction amount.

    Credit Card Payments (WorldPay E2E)

    Create a HostedCheckout Payment – Sample Request

    <Request>
        <Version>1</Version>
        <Command>CreatePayment</Command>
        <Data>
            <Packet>
                <ChargeAmount>0.62</ChargeAmount>
                <ProcessCompleteUrl>
            http%3A%2F%2Flocal.formovietickets.com%2FT.asp%3FWCI%3DBT%26Page%3DConfirm%26Mode%3DCCPAYRESPONSE
                </ProcessCompleteUrl>
                
                <ReturnUrl>
            http%3A%2F%2Flocal.formovietickets.com%2FT.asp%3FWCI%3DBT%26Page%3DConfirm%26Mode%3DPayments
                </ReturnUrl>
            </Packet>
        </Data>
    </Request>  
     
    
    Node Child Node Type Required Description <Request>
    ChargeAmount None Decimal Yes The amount this payment will authorize for.
    ProcessCompleteUrl None String Yes The URL the customer will be redirected back to after they complete the credit card entry process
    ReturnUrl None String Yes The URL the customer will be redirected back to if they cancel the credit card entry process

    Create a HostedCheckout Payment – Sample Response

    <Response>
        <Version>1</Version>
        <Packet>
            <CreatePayment>
                <Worked>1</Worked>
                <TransactionId>3abac539-1731-421d-9291-989dffb65688</TransactionId>
                <RedirectUrl>https%3A%2F%2Fhc.mercurydev.net%2FCheckout.aspx</RedirectUrl>
                <PostData>587c7d7d-d990-4f29-8ff6-d121ddd98d6f</PostData>
            </CreatePayment>
        </Packet>
    </Response> 
     
    

    Ticket Purchase (WorldPay E2E) – Sample Request – PerformanceID

    Note: See Ticket Purchasing – General Admission and Ticket Purchasing – Reserved Seating for additional information on the Buy packet nodes

    <Request>
        <Version>1</Version>
        <Command>Buy</Command>
        <Data>
            <Packet>
                <PurchaseTitles>
                    <PurchaseTitle>
                        <PerformanceID>000166000023</PerformanceID>
                        <Tickets>
                            <Ticket>
                                <Amount>2</Amount>
                                <TypeCode>5</TypeCode>
                            </Ticket>
                        </Tickets>
                    </PurchaseTitle>
                </PurchaseTitles>
                <Fees>
                    <TicketFee>0</TicketFee>
                    <TransactionFee>0</TransactionFee>
                    <Adjust>0</Adjust>
                </Fees>
                <Payments>
                    <Payment>
                        <Type>CreditCard</Type>
                        <TransactionId>5f627c67-8f5e-4f41-b26b-e8d2c8080167</TransactionId>
                        <ProcessCompletePostData>
                    PaymentID=cf679a14-dd17-4c0a-b151-be0fdcb27dfd&ReturnCode=0&ReturnMessage=Your+transaction+has+been+approved.
                        </ProcessCompletePostData>
                        <ChargeAmount>0.62</ChargeAmount>
                    </Payment>
                </Payments>
                <CustomerInfo>
                    <EmailAddress>testemail@yahoo.com</EmailAddress>
                </CustomerInfo>
            </Packet>
        </Data>
    </Request> 
     
    

    Ticket Purchase (WorldPay E2E) – Sample Response

    <Response>
        <Version>1</Version>
        <Code>-1</Code>
        <Packet>
            <Response>
                <Code>0</Code>
                <ResponseText>OK</ResponseText>
                <TransactionID>1524289</TransactionID>
                <Pickups>
                    <Pickup>
                        <TicketDay>20101213</TicketDay>
                        <PickupNumber/>
                        <BarCodes>
                            <BarCode>
                                <Type>Transaction</Type>
                                <CodeType>UPC</CodeType>
                                <BarCodeData>525524289675</BarCodeData>
                            </BarCode>
                        </BarCodes>
                    </Pickup>
                </Pickups>
            </Response>
        </Packet>
    </Response> 
     
    

    Heartland Secure - Credit Card Payment Overview

    Heartland Secure utilizes JavaScript to replace <div> elements in your payment form with secure hosted iframe fields, to ensure that no card data passes through your server (or the RTS server).

    The customer enters their card data into these iframe fields and submits to Heartland. They will issue a single-use token and some safe card information (masked card number, card type, card last 4) returning it as JSON to the script. This data is then posted to your server via the form action on the page.

    When attempting the sale, the single-use token and the safe card data is submitted in the buy request to RTS in the <Payment> node. We will validate the credit account data and either proceed with the sale, or return an error indicating the issue with the card.


    A sample payment page can be found here: http://www.readyticket.net/download/heartland_hc_example.html

    Be sure to read the comments in the sample payment page for additional information!

    The script utilizes a Public Key, which will change for each RTS location. You will need to contact RTS to get this key when needed, you can email the request to: support@rts-solutions.com. Be sure to include the location name and address in the request.


    Below is sample of the post data from the form: billingStreet=6860+Dallas+Pkwy&billingZip=75024&paymentReference=supt_htOWF0W14NdVKt6DAHi1HbM3&maskedCard=464069***4998&cardLast4=4998&cardType=visa


    Below is a sample <Payment> node for a Heartland Secure buy request:

    <Payment>
        <Type>CreditCard</Type>
        <SingleUseToken>supt_ycyDB65WX8B2TCWvaSOGIz4j</SingleUseToken>
        <MaskedCardNumber>464069***4998</MaskedCardNumber>
        <CardType>visa</CardType>
        <CardLast4>4998</CardLast4>
        <ChargeAmount>91.01</ChargeAmount>
        <BillingStreet>6860 Dallas Pkwy</BillingStreet>
        <BillingZip>75024</BillingZip>
    </Payment>
     
    

    The <SingleUseToken>, <MaskedCardNumber>, <CardType>, <CardLast4>, <BillingStreet>, and <BillingZip> values come from the data returned by the Heartland JavaScript.


    Note: In the case that both Address and Zip do not match the account, you will receive a DO NOT HONOR message from Heartland's Gateway

    Ticket Purchasing (3rd Party Credit Card Processing / TSYS - E2E)

    1. Integrator sends in a CreatePayment request, provides their complete url and cancel URL:

     
    <Request>
        <Version>1</Version>
        <Command>CreatePayment</Command>
        <Data>
            <Packet>
                <ChargeAmount>5</ChargeAmount>
                <CustomerEmail></CustomerEmail>
                <CustomerName></CustomerName>
                <StreetAddress></StreetAddress>
                <ZipCode></ZipCode>
                <ProcessCompleteUrl>http%3A%2F%2F809261.formovietickets.com%3A2265%2FTSYS.asp%3FreqType%3DCOMPLETE</ProcessCompleteUrl>
                <ReturnUrl>http%3A%2F%2F890261.formovietickets.com%3A2265%2FTSYS.asp%3FreqType%3DCANCEL</ReturnUrl>
            </Packet>
        </Data>
    </Request>
      
    

    2. RTS creates a transactionID, stores the request data.

    3. RTS returns transactionID, redirectUrl

     
    <Response>
        <Version>1</Version>
        <Packet>
            <CreatePayment>
                <Worked>1</Worked>
                <TransactionId>e9fb3f66-4dc8-4745-b354-b74900e32010</TransactionId>
                <RedirectUrl>https%3a%2f%2f809261.formovietickets.com%3a2265%2fTSYS.ASP%3freqType%3dREDIRECT%26transactionId%3de9fb3f66-4dc8-4745-b354-b74900e32010</RedirectUrl>
            </CreatePayment>
        </Packet>
    </Response>
      
    

    4. Integrator redirects customer to the redirectUrl, which provides the stand-alone payment page

     a. Continue - RTS attempts payment, posting return data to the integrators ProcessCompleteURL
     b. Cancel - RTS redirects the customer to the integrators ReturnURL
    

    5. Integrator receives response based on status of credit card processing:

     a. if good sale, send back the masked card number, cardlast4, cardtype, transactionid, and paymentid
    POST Data: maskedCardNumber=<appropriate_masked_card_num>&cardLastFour=<appropriate_card_last_four>&cardType=<appropriate_card_type>&transactionId=<appropriate_transactionid>&paymentId=<appropriate_paymentid>
    b. if bad cardverification or sale, send back the appropriate response

    6. If integrator wants to continue with transaction, posts in the appropriate buy request, with the <payment> node as follows:

     
    <Payment>
        <Type>CreditCard</Type>
        <TransactionId></TransactionId>
        <PaymentId></PaymentId>
        <ChargeAmount></ChargeAmount>
    </Payment>
      
    


    7. RTS attempts to complete the transaction, and returns the appropriate response

    Ticket Purchasing (3rd Party Credit Card Processing / TSYS - Non E2E)

    This method of ticketing purchasing is to be used when the RTS software is not handling anything in the credit card processing chain.

    Ticket Purchase (3rd Party) – Sample Request – PerformanceID

    Note: The key differences between a 3rd party buy and a normal buy is the use of the <Adjust> node inside <Fees> to offset the amount charged by the 3rd party, and the <ChargeAmount> being zero.

    <Request>
        <Version>1</Version>
        <Command>Buy</Command>
        <Data>
            <Packet>
                <PurchaseTitles>
                    <PurchaseTitle>
                        <PerformanceID>000158000012</PerformanceID>
                        <Tickets>
                            <Ticket>
                                <Amount>1</Amount>
                                <TypeCode>5</TypeCode>
                            </Ticket>
                        </Tickets>
                    </PurchaseTitle>
                </PurchaseTitles>
                <Fees>
                    <TicketFee>1</TicketFee>
                    <TransactionFee>0</TransactionFee>
                    <Adjust>-1.31</Adjust>
                </Fees>
                <Payments>
                    <Payment>
                        <ChargeAmount>0</ChargeAmount>
                    </Payment>
                </Payments>
                <ThirdPartyID>3677745fb2cb4e20bc6f289fd65753aa</ThirdPartyID>
                <CustomerInfo>
                    <EmailAddress>testemail@yahoo.com</EmailAddress>
                </CustomerInfo>
            </Packet>
        </Data>
    </Request>
     
    

    Ticket Purchasing – General Admission

    The performance you wish to purchase can be specified in 3 different ways:

    • Title, ShowTime, and AuditoriumID
    • PerformanceID
    • MtFilmCode, MTPerformanceID, and ShowTime

    Ticket Purchase - Sample Request – Title, ShowTime, and AuditoriumID

    <Request>
        <Version>1</Version>
        <Command>Buy</Command>
        <Data>
            <Packet>
                <PurchaseTitles>
                    <PurchaseTitle>
                        <Title>The Title</Title>
                        <ShowTime>200812051235</ShowTime>
                        <Auditorium>1</Auditorium>
                        <Tickets>
                            <Ticket>
                                <Amount>1</Amount>
                                <TypeCode>1|1</TypeCode>
                            </Ticket>
                        </Tickets>
                    </PurchaseTitle>
                </PurchaseTitles>
                <Fees>
                    <TicketFee>1</TicketFee>
                    <TransactionFee>1</TransactionFee>
                    <Adjust>0</Adjust>
                </Fees>
                <Payments>
                    <Payment>
                        <Type>CreditCard</Type>
                        <Number>5499990123456781</Number>
                        <Expiration>0513</Expiration>
                        <AvsStreet>4 Main St</AvsStreet>
                        <AvsPostal>30329</AvsPostal>
                        <CID>123</CID>
                        <NameOnCard>John Doe</NameOnCard>
                        <ChargeAmount>9.5</ChargeAmount>
                    </Payment>
                </Payments>
                <Loyalty>
                    <Cards>
                        <Type>Earn</Type>
                        <CardNumber>12345</CardNumber>
                    </Cards>
                </Loyalty>
                <ThirdPartyID>3677745fb2cb4e20bc6f289fd65753aa</ThirdPartyID>
                <CustomerInfo>
                    <EmailAddress>testemail@yahoo.com</EmailAddress>
                </CustomerInfo>
            </Packet>
        </Data>
    </Request> 
     
    
    Node Child Node Type Required Description <PurchaseTitle>
    Title None String Yes Performance Title
    ShowTime None String Yes Performance start time (yyyyMMddhhmm)
    Auditorium None String Yes Performance auditorium number
    Tickets Ticket Sub Node Yes One or more ticket types to purchase

    Ticket Purchase - Sample Request – PerformanceID

    <Request>
        <Version>1</Version>
        <Command>Buy</Command>
        <Data>
            <Packet>
                <PurchaseTitles>
                    <PurchaseTitle>
                        <PerformanceID>+3934kd|392372374|23784237</PerformanceID>
                        <Tickets>
                            <Ticket>
                                <Amount>1</Amount>
                                <TypeCode>1|1</TypeCode>
                            </Ticket>
                        </Tickets>
                    </PurchaseTitle>
                </PurchaseTitles>
                <Fees>
                    <TicketFee>1</TicketFee>
                    <TransactionFee>1</TransactionFee>
                    <Adjust>0</Adjust>
                </Fees>
                <Payments>
                    <Payment>
                        <Type>CreditCard</Type>
                        <Number>5499990123456781</Number>
                        <Expiration>0513</Expiration>
                        <AvsStreet>4 Main St</AvsStreet>
                        <AvsPostal>30329</AvsPostal>
                        <CID>123</CID>
                        <NameOnCard>John Doe</NameOnCard>
                        <ChargeAmount>9.5</ChargeAmount>
                    </Payment>
                </Payments>
                <Loyalty>
                    <Cards>
                        <Type>Earn</Type>
                        <CardNumber>12345</CardNumber>
                    </Cards>
                </Loyalty>
                <ThirdPartyID>3677745fb2cb4e20bc6f289fd65753aa</ThirdPartyID>
                <CustomerInfo>
                    <EmailAddress>testemail@yahoo.com</EmailAddress>
                </CustomerInfo>
            </Packet>
        </Data>
    </Request>
     
    
    Node Child Node Type Required Description <PurchaseTitle>
    PerformanceID None String Yes The PerformanceID
    Tickets Ticket Sub Node Yes One or more ticket types to purchase

    Ticket Purchase - Sample Request – MtFilmCode, MtPerformanceID, and ShowTime

    <Request>
        <Version>1</Version>
        <Command>Buy</Command>
        <Data>
            <Packet>
                <PurchaseTitles>
                    <PurchaseTitle>
                        <PerformanceID>93j2kd902j42d</PerformanceID>
                        <ShowTime>200812051235</ShowTime>
                        <MtFilmCode>TH12345</MtFilmCode>
                        <Tickets>
                            <Ticket>
                                <Amount>1</Amount>
                                <TypeCode>1|1</TypeCode>
                            </Ticket>
                        </Tickets>
                    </PurchaseTitle>
                </PurchaseTitles>
                <Fees>
                    <TicketFee>1</TicketFee>
                    <TransactionFee>1</TransactionFee>
                    <Adjust>0</Adjust>
                </Fees>
                <Payments>
                    <Payment>
                        <Type>CreditCard</Type>
                        <Number>5499990123456781</Number>
                        <Expiration>0513</Expiration>
                        <AvsStreet>4 Main St</AvsStreet>
                        <AvsPostal>30329</AvsPostal>
                        <CID>123</CID>
                        <NameOnCard>John Doe</NameOnCard>
                        <ChargeAmount>9.5</ChargeAmount>
                    </Payment>
                </Payments>
                <Loyalty>
                    <Cards>
                        <Type>Earn</Type>
                        <CardNumber>12345</CardNumber>
                    </Cards>
                </Loyalty>
                <CustomerInfo>
                    <EmailAddress>testemail@yahoo.com</EmailAddress>
                </CustomerInfo>
            </Packet>
        </Data>
    </Request> 
     
    
    Node Child Node Type Required Description <PurchaseTitle>
    MtFilmCode None String Yes Movietickets.com film code
    MtPerformanceID None String Yes Movietickets.com PerformanceID
    ShowTime None String Yes Performance start time (yyyyMMddhhmm)
    Tickets Ticket Sub Node Yes One or more ticket types to purchase

    To sell multiple tickets in the same transaction, duplicate the <Ticket> node for each type and specify the amount of each ticket.

    For example, to sell 3 tickets of 2 different types, your <Tickets> node would look like:

    <Tickets>
        <Ticket>
            <Amount>2</Amount>
            <TypeCode>1|1</TypeCode>
        </Ticket>
        <Ticket>
            <Amount>1</Amount>
            <TypeCode>1|2</TypeCode>
        </Ticket>
    </Tickets> 
     
    

    To accept multiple payment types in the same transaction, duplicate the <Payment> node for each type of payment, and specify the appropriate information.

    For example, to take credit card and gift card, your <Payment> node would look like:

    <Payments>
        <Payment>
            <Type>CreditCard</Type>
            <Number>5499990123456781</Number>
            <Expiration>0513</Expiration>
            <AvsStreet>4 Main St</AvsStreet>
            <AvsPostal>30329</AvsPostal>
            <CID>123</CID>
            <NameOnCard>John Doe</NameOnCard>
            <ChargeAmount>9.5</ChargeAmount>
        </Payment>
        <Payment>
            <Payment>
                <Type>Gift</Type>
                <ChargeAmount>1.00</ChargeAmount>
                <GiftNumber>1234123412341234</GiftNumber>
                <GiftCardPIN>12345</GiftCardPIN>
            </Payment>
        </Payments> 
     
    
    Node Child Node Type Required Description <Ticket>
    Amount None Integer Yes Number of this type of ticket to purchase
    TypeCode None String Yes Ticket type code (from schedule XML)
    Node Child Node Type Required Description <Fees>
    TicketFee None Decimal No Amount to charge for ticket fees in the transaction. Recorded in the POS as the configured 'Ticket Fee' item.
    TransactionFee None Decimal No Amount to charge for the transaction fees in the transaction. Recorded in the POS as the configured 'Transaction Fee' item.
    Adjust None Decimal No Allows for positive or negative adjustment to the charge amount. Recorded in the POS as the configured 'Adjust' item.
    Node Child Node Type Required Description <Payments>
    Payments Payment Sub Node Yes Contains one or more payment types for a transaction
    Node Child Node Type Required Description <Payment>
    Type None String Yes Specifies the payment type: CreditCard or Gift
    Number None String Yes Credit card number
    GiftNumber None String Yes Gift card number
    GiftCardPIN None String Maybe Certain gift card processors in RTS can be marked as requiring a PIN during purchase. If this is enabled, this node is required.
    Expiration None String Yes Credit card expiration date (MMyy)
    AvsStreet None String No Credit card billing street address
    AvsPostal None String No Credit card billing postal code
    CID None String No Credit card CID (CVV, Security Code) number
    NameOnCard None String No Credit card customer name
    ChargeAmount None Decimal Yes Amount to charge on the credit or gift card
    Node Child Node Type Required Description <ThirdPartyID>
    ThirdPartyID None Sub Node No Allows you to specify a transaction ID to the purchase, this can be used with “VerifyTransaction” to check for completion of the sale if normal response is not received.
    Node Child Node Type Required Description <Loyalty>
    Loyalty Cards Sub Node No
    Type None String No Earn
    CardNumber None String No Card number to use for loyalty earn. Multiple cards can be passed in via additional <CardNumber> tags
    Node Child Node Type Required Description <CustomerInfo>
    EmailAddress None String No Customer email address. Can be used to look-up transactions in the POS. NOTE: There is an option on the API selling account to have RTS send a confirmation email on a successful purchase. This email is NOT customizable.

    Ticket Purchase - Sample Response

    <Response>
        <Version>1</Version>
        <Code>-1</Code>
        <Packet>
            <Response>
                <Code>0</Code>
                <ResponseText>OK</ResponseText>
                <TransactionID>1524289</TransactionID>
                <Pickups>
                    <Pickup>
                        <TicketDay>20101213</TicketDay>
                        <PickupNumber/>
                        <BarCodes>
                            <BarCode>
                                <Type>Transaction</Type>
                                <CodeType>UPC</CodeType>
                                <BarCodeData>525524289675</BarCodeData>
                            </BarCode>
                        </BarCodes>
                    </Pickup>
                </Pickups>
            </Response>
        </Packet>
    </Response>
     
    
    Node Child Node Type Required Description <Response>
    Version None Integer Yes 1
    Code None Integer Yes -1
    Packet Response Sub Node Yes
    ResponseText None String Yes OK
    TransactionID None String Yes Transaction receipt number
    Pickups Pickup Sub Node Yes
    TicketDay None String Yes Date of performance (yyyyMMdd)
    PickupNumber None String Yes Not currently used
    BarCodes BarCode Sub Node Yes
    Type None String Yes Transaction
    CodeType None String Yes The bar code type: UPC
    BarCodeData None String Yes The confirmation number to be encoded.
    BAR CODE IMAGE IS NOT PROVIDED BY THE POS.

    Seating Charts

    All RTS layouts are built around the grid size provided in the <GridRef> node. Using these values in conjunction with your own known grid values, you can determine the ratio needed to convert each seat xpos, ypos, width, and height, to your own values, for example:

    Your grid width divided by our grid width = your X ratio
    Your grid height divided by our grid height = your Y ratio
    Our Xpos multiplied by X ratio = your Xpos
    Our Ypos multiplied by Y ratio = your Ypos
    Our Width multiplied by X ratio = your width
    Our Height multiplied by Y ration = your height

    Get Seat Layouts – Sample Request

    <Request>
        <Version>1</Version>
        <Command>GetSeatLayouts</Command>
    </Request> 
     
    

    This call allows you to pull the reserved seating layouts for all of the auditoriums in the point-of-sale system. It also includes a list of seat types configured in the system, so that any custom seat types are available to you.

    Get Seat Layouts – Sample Response

    <Response>
        <Code>-1</Code>
        <ResponseText>OK</ResponseText>
        <GridRef>
            <Width>10000</Width>
            <Height>10000</Height>
        </GridRef>
        <SeatTypes>
            <Type>
                <ID>0</ID>
                <CustomerName>Normal</CustomerName>
            </Type>
     ......
     
            <Type>
                <ID>17</ID>
                <CustomerName>CompanionLeft</CustomerName>
            </Type>
        </SeatTypes>
        <Layouts>
            <Layout>
                <LayoutName>Reserved Auditorium 13</LayoutName>
                <SectionName>Section 1</SectionName>
                <SectionID>8</SectionID>
                <Seats>
                    <Seat>
                        <HideOnInternet>0</HideOnInternet>
                        <HideRowDesc>0</HideRowDesc>
                        <HideSeparator>0</HideSeparator>
                        <RowIndex>1</RowIndex>
                        <ColIndex>1</ColIndex>
                        <RowDesc>A</RowDesc>
                        <ColDesc>1</ColDesc>
                        <TypeID>0</TypeID>
                        <GroupID>1</GroupID>
                        <GroupDesc>1</GroupDesc>
                        <GroupPos>1</GroupPos>
                        <XPos>2539</XPos>
                        <YPos>2659</YPos>
                        <Width>456</Width>
                        <Height>740</Height>
                        <Angle>0</Angle>
                    </Seat>
                    ......
                    <Seat>
                        <HideOnInternet>0</HideOnInternet>
                        <HideRowDesc>0</HideRowDesc>
                        <HideSeparator>0</HideSeparator>
                        <RowIndex>3</RowIndex>
                        <ColIndex>13</ColIndex>
                        <RowDesc>C</RowDesc>
                        <ColDesc>13</ColDesc>
                        <TypeID>0</TypeID>
                        <GroupID>3</GroupID>
                        <GroupDesc>13</GroupDesc>
                        <GroupPos>13</GroupPos>
                        <XPos>8193</XPos>
                        <YPos>5305</YPos>
                        <Width>442</Width>
                        <Height>740</Height>
                        <Angle>0</Angle>
                    </Seat>
                </Seats>
            </Layout>
        </Layouts>
    </Response> 
     
    
    Node Child Node Type Required Description <GridRef>
    Width None Integer Yes The relative grid width
    Height None Integer Yes The relative grid height
    Node Child Node Type Required Description <SeatTypes>
    Type None Sub Node Yes
    ID None Integer Yes The ID of the SeatType
    CustomerName None String Yes The customer name for the SeatType
    Node Child Node Type Required Description <Layouts>
    Layout None Sub Node Yes There will be a <Layout> node for each system layout
    LayoutName None String Yes The name of the layout
    SectionName None String Yes The name of the section
    SectionID None Integer Yes The ID of the section
    Seats Seat Sub Node Yes
    Node Child Node Type Required Description <Seat>
    HideOnInternet None Boolean Yes 0 = Do not hide, 1 = Needs to be hidden
    HideRowDesc None Boolean Yes 0 = Do not hide row desc., 1 = hide row desc.
    HideSeparator None Boolean Yes 0 = Do not hide row/col separator, 1 = hide separator
    RowIndex None Integer Yes The row index of the seat
    ColIndex None Integer Yes The column index of the seat
    RowDesc None String Yes The row descriptor of the seat
    ColDesc None String Yes The column descriptor of the seat
    TypeID None Integer Yes The SeatType ID for the seat
    GroupID None Integer Yes The group ID for the seat
    GroupDesc None String Yes The group description for the seat
    GroupPos None Integer Yes The seat position in the group
    Xpos None Integer Yes The relative X position of the seat in the layout
    Ypos None Integer Yes The relative Y position of the seat in the layout
    Width None Integer Yes The relative width position of the seat in the layout
    Height None Integer Yes The relative height position of the seat in the layout
    Angle None Integer Yes The angle of the seat in the layout

    !! NOTE: This call has been slightly modified to support locations that use custom seat pricing, these are locations that have different prices on specific seats in an auditorium. Due to this pricing not being known until the seat selection has been made, this call will return the pricing group for each seat, and a list of pricing groups and tickets. In order to access this data, this call should be made using the SCHEDULE credentials, not the SELLING credentials. Making this call with the selling credentials will not return any pricing data. !!

    Get Seat Plan For Performance – Sample Request

    <Request>
        <Version>1</Version>
        <Command>GETSEATPLANFORPERF</Command>
        <Data>
            <Packet>
                <PerformanceID>008180000166</PerformanceID>
            </Packet>
        </Data>
    </Request> 
     
    

    This call allows you to pull the reserved seating layouts for a specific performance, including the status of each seat. It also returns a list of seat types used in the layout.

    Get Seat Plan For Performance – Sample Response (made with SCHEDULE credentials)

    <Response>
        <Version>1</Version>
        <Code>-1</Code>
        <Packet>
            <Response>
                <Code>-1</Code>
                <ResponseText>OK</ResponseText>
                <GridRef>
                    <Width>10000</Width>
                    <Height>10000</Height>
                </GridRef>
                <Layout>
                    <Pricing>
                        <Tickets>
                            <Ticket>
                                <Code>7</Code>
                                <Name>Student</Name>
                                <Price>0.71</Price>
                                <Tax>0.01</Tax>
                                <Points>8</Points>
                            </Ticket>
                            ...
                            <Ticket>
                                <Code>3</Code>
                                <Name>Senior</Name>
                                <Price>0.31</Price>
                                <Tax>0.01</Tax>
                                <Points>7</Points>
                            </Ticket>
                        </Tickets>
                        <PriceGroups>
                            <PriceGroup>
                                <Code>1</Code>
                                <Tickets>
                                    <Ticket>
                                        <Code>7</Code>
                                    </Ticket>
                                    ...
                                    <Ticket>
                                        <Code>3</Code>
                                    </Ticket>
                                </Tickets>
                            </PriceGroup>
                        </PriceGroups>
                    </Pricing>
                    <SeatTypes>
                        <SeatType>
                            <ID>10</ID>
                            <CustomerName>Recliner</CustomerName>
                        </SeatType>
                         ... 
                        <SeatType>
                            <ID>1</ID>
                            <CustomerName>Wheelchair</CustomerName>
                        </SeatType>
                    </SeatTypes>
                    <Seats>
                        <Seat>
                            <ColDes>6</ColDes>
                            <ColNum>7</ColNum>
                            <RowDes>A</RowDes>
                            <RowNum>0</RowNum>
                            <Section>4</Section>
                            <Type>9</Type>
                            <GroupID>4</GroupID>
                            <Status>0</Status>
                            <XPos>3172</XPos>
                            <YPos>2833</YPos>
                            <Width>473</Width>
                            <Height>706</Height>
                            <Angle>0</Angle>
                            <PriceGroupCode>1</PriceGroupCode>
                        </Seat>
                        ...
                        <Seat>
                            <ColDes>20</ColDes>
                            <ColNum>20</ColNum>
                            <RowDes>H</RowDes>
                            <RowNum>7</RowNum>
                            <Section>4</Section>
                            <Type>10</Type>
                            <GroupID>59</GroupID>
                            <Status>0</Status>
                            <XPos>9061</XPos>
                            <YPos>8475</YPos>
                            <Width>453</Width>
                            <Height>598</Height>
                            <Angle>0</Angle>
                            <PriceGroupCode>1</PriceGroupCode>
                        </Seat>
                    </Seats>
                </Layout>
            </Response>
        </Packet>
    </Response> 
     
    

    Get Seat Plan For Performance – Sample Response (made with SELLING credentials)

    <Response>
        <Version>1</Version>
        <Code>-1</Code>
        <Packet>
            <Response>
                <Code>-1</Code>
                <ResponseText>OK</ResponseText>
                <GridRef>
                    <Width>10000</Width>
                    <Height>10000</Height>
                </GridRef>
                <Layout>
                    <SeatTypes>
                        <SeatType>
                            <ID>0</ID>
                            <CustomerName>Normal</CustomerName>
                        </SeatType>
                    </SeatTypes>
                    <Seats>
                        <Seat>
                            <ColDes>1</ColDes>
                            <ColNum>0</ColNum>
                            <RowDes>E</RowDes>
                            <RowNum>2</RowNum>
                            <Section>21</Section>
                            <Type>0</Type>
                            <GroupID>2</GroupID>
                            <Status>0</Status>
                            <XPos>1627</XPos>
                            <YPos>3057</YPos>
                            <Width>448</Width>
                            <Height>780</Height>
                            <Angle>0</Angle>
                        </Seat>
                         ......
                        <Seat>
                            <ColDes>1</ColDes>
                            <ColNum>0</ColNum>
                            <RowDes>D</RowDes>
                            <RowNum>4</RowNum>
                            <Section>21</Section>
                            <Type>0</Type>
                            <GroupID>3</GroupID>
                            <Status>0</Status>
                            <XPos>1627</XPos>
                            <YPos>4013</YPos>
                            <Width>448</Width>
                            <Height>780</Height>
                            <Angle>0</Angle>
                        </Seat>
                    </Seats>
                </Layout>
            </Response>
        </Packet>
    </Response>
     
    
    Node Child Node Type Required Description <GridRef>
    Width None Integer Yes The relative grid width
    Height None Integer Yes The relative grid height
    Node Child Node Type Required Description <Layouts>
    Layout None Sub Node Yes
    Pricing Tickets, PriceGroups Sub Node Maybe If request was made using SCHEDULE credentials: The <Pricing> node will contain a <Tickets> node and a <PriceGroups> node.
    Tickets Ticket Sub Node Maybe If request was made using SCHEDULE credentials: The <Tickets> node will contain a number of <Ticket> nodes that are the tickets in use in this layout.
    PriceGroups PriceGroup Sub Node Maybe If request was made using SCHEDULE credentials: There will be a <PriceGroup> node for each unique price group in the layout
    SeatTypes SeatType Sub Node Yes There will be a <SeatType> node for each type used in this layout
    Seats Seat Sub Node Yes
    Node Child Node Type Required Description <Ticket>
    Code None String Yes Ticket code used in purchase transactions
    Name None String Yes Ticket name as it should be displayed on the Internet
    Price None Decimal Yes Total ticket price
    Tax None Decimal Maybe Any tax included in the ticket price
    Points None Integer Maybe Any points that are earned when buying this ticket type
    Node Child Node Type Required Description <PriceGroup>
    Code None Integer Yes The unique ID for this PriceGroup node, this ID is what links the <Seat> to the <PriceGroup>
    Tickets Ticket Sub Node Yes There will be a <Ticket> node for each ticket type that is part of this PriceGroup
    Ticket Code Sub Node Yes Each <Ticket>will contain a node that links back to the <Tickets><Ticket> nodes under the <Pricing> node.
    Node Child Node Type Required Description <SeatType>
    Type None Sub Node Yes
    ID None Integer Yes The ID of the SeatType
    CustomerName None String Yes The customer name for the SeatType
    Node Child Node Type Required Description <SeatType>
    RowNum None Integer Yes The row index of the seat
    ColNum None Integer Yes The column index of the seat
    RowDes None String Yes The row descriptor of the seat
    ColDes None String Yes The column descriptor of the seat
    Section None String Yes The section ID of the seat
    Type None Integer Yes The SeatType ID for the seat
    GroupID None String Yes The group ID for the seat
    Status None Integer Yes 0 = unsold, 1 = sold, 2 = locked, 3 = held, 4 = open tab, 5 = broken, 6 = buffer
    Xpos None Integer Yes The relative X position of the seat in the layout
    Ypos None Integer Yes The relative Y position of the seat in the layout
    Width None Integer Yes The relative width of the seat in the layout
    Height None Integer Yes The relative height of the seat in the layout
    Angle None Integer Yes The angle of the seat in the layout
    PriceGroupCode None Integer Maybe If the request was made using SCHEDULE credentials: This value links back to the appropriate <PriceGroups><PriceGroup>, which shows what <Tickets><Ticket> are available for this seat.

    Reserved Seating – Check Seat Picks

    This call allows for you to verify the point-of-sale system will allow the sale of the seats picked. This is in order to stop customer from leaving too many single seats across the auditorium.

    Reserved Seating – Check Seat Picks – Sample Request

    <Request>
        <Command>CHECKSEATPICKS</Command>
        <Data>
            <Packet>
                <PerformanceID>008691000166</PerformanceID>
                <Seats>
                    <Seat>
                        <RowIndex>0</RowIndex>
                        <ColIndex>0</ColIndex>
                    </Seat>
                </Seats>
            </Packet>
        </Data>
    </Request> 
     
    

    If there are multiple seats to check, just add the appropriate <Seat></Seat> information.

    Node Child Node Type Required Description <Seats>
    Seats Seat Sun Node Yes
    Node Child Node Type Required Description <Seat>
    Row None Integer Yes Row number
    Col None Integer Yes Column number

    Reserved Seating – Check Seat Picks – Sample Response

    <Response>
        <Version>1</Version>
        <ValidSelections>1</ValidSelections>
    </Response> 
     
    
    Node Child Node Type Required Description <Response>
    Version None Char Yes 1
    ValidSelections None Integer Yes 0 = Invalid, 1 = Valid
    InvalidReason None String Maybe If invalid selection, this will be the reason why.

    Seating Chart - Sample Request – PerformanceID

    <Request>
        <Version>1</Version>
        <Command>SeatChart</Command>
        <Data>
            <Packet>
                <PerformanceID>CA25640|201010222300|9</PerformanceID>
            </Packet>
        </Data>
    </Request> 
     
    
    Node Child Node Type Required Description <Request>
    Version None Integer Yes 1
    Command None String Yes SeatChart
    PerformanceID None String Maybe Performance ID for show

    Seating Chart - Sample Request – MtFilmCode, MtPerformanceID, and ShowTime

    <Request>
        <Version>1</Version>
        <Command>SeatChart</Command>
        <Data>
            <Packet>
                <MtPerformanceID>1</MtPerformanceID>
                <MtFilmCode>123</MtFilmCode>
                <ShowTime>201010201430</ShowTime>
            </Packet>
        </Data>
    </Request> 
     
    
    Node Child Node Type Required Description <Request>
    Version None Integer Yes 1
    Command None String Yes SeatChart
    MtPerformanceID None String Yes Movietickets.com performance id for show
    MtFilmCode None String Yes Movietickets.com film code for title
    ShowTime None String Yes Performance date/time (yyyyMMddhhmm)

    Seating Chart - Sample Response

    <Response>
        <Code>0</Code>
        <ResponseText>OK</ResponseText>
        <Layout>
            <Seats>
                <Seat>
                    <ColDes>11</ColDes>
                    <ColNum>1</ColNum>
                    <RowDes>D</RowDes>
                    <RowNum>3</RowNum>
                    <Section>11</Section>
                    <Type>0</Type>
                    <Status>0</Status>
                </Seat>
                <Seat>
                    <ColDes>10</ColDes>
                    <ColNum>1</ColNum>
                    <RowDes>F</RowDes>
                    <RowNum>6</RowNum>
                    <Section>11</Section>
                    <Type>0</Type>
                    <GroupID>20</GroupID>
                    <Status>0</Status>
                </Seat>
            </Seats>
        </Layout>
    </Response> 
     
    
    Node Child Node Type Required Description <Seat>
    ColDesc None String Yes Column description
    ColNum None Integer Yes Column number
    RowDesc None String Yes Row description
    RowNum None Integer Yes Row number
    Section None String Yes Section name
    Type None Integer Yes Type of seat (see seat type list)
    GroupID None Integer No Grouped seats will have the same GroupID
    Status None Integer Yes 0 = unsold, 1 = sold, 2 = locked, 3 = held, 4 = open tab, 5 = broken, 6 = buffer

    Holding and Releasing Seats

    A hold seat request will hold the requested seats in a pending state for 5 minutes. Held seats can, and should, be released if the customer switches to different seats.

    Reserved Seating – Hold Seats – Sample Request

    <Request>
        <Version>1</Version>
        <Command>HoldSeats</Command>
        <Data>
            <Packet>
                <Command>Hold</Command>
                <Performances>
                    <Performance>
                        <PerformanceID>+21 Strange Title</PerformanceID>
                        <Seats>
                            <Seat>
                                <Row>0</Row>
                                <Col>1</Col>
                                <Section>All</Section>
                            </Seat>
                        </Seats>
                    </Performance>
                </Performances>
            </Packet>
        </Data>
    </Request> 
     
    

    If there are multiple seats to hold, just add the appropriate <Seat></Seat> information. Performances can also be identified using PerformanceID.

    Node Child Node Type Required Description <Seats>
    Seats Seat Sub Node Yes
    Node Child Node Type Required Description <Seat>
    Row None Integer Yes Row number
    Col None Integer Yes Column number
    Section None String Yes Section name

    Reserved Seating – Hold Seats – Sample Response

    <Response>
        <Code>0</Code>
        <ResponseText>OK</ResponseText>
        <TransactionID>80A6F0F0-6747-4717-BF27-E2593E61818C</TransactionID>
    </Response> 
     
    
    Node Child Node Type Required Description <Response>
    Code None Integer Yes 0 = success, or an Error Code
    ResponseText None String Yes OK
    TransactionID None String Yes Used to complete transaction or release seats

    Reserved Seating – Release Seats – Sample Request

    <Request>
        <Version>1</Version>
        <Command>HoldSeats</Command>
        <Data>
            <Packet>
                <Command>Release</Command>
                <TransactionID>18EEF867-F72E-4B47-9C3E-96CE026475E1</TransactionID>
            </Packet>
        </Data>
    </Request> 
     
    
    Node Child Node Type Required Description <Request>
    Command None String Yes HoldSeats
    Data Packet Sub Node Yes
    Command None String Yes Release
    TransactionID None String Yes TransactionID from Hold request

    Reserved Seating – Release Seats – Sample Response

    <Response>
        <Version>1</Version>
        <Code>0</Code>
        <ResponseText>OK</ResponseText>
    </Response> 
     
    
    Node Child Node Type Required Description <Response>
    Version None Integer Yes 1
    Code None String Yes 0 = success, or an Error Code
    ResponseText None String Yes OK

    Ticket Purchasing – Reserved Seating

    Ticket Purchase (Reserved) – Title, ShowTime, and AuditoriumID - Sample Request

    <Request>
        <Version>1</Version>
        <Command>Buy</Command>
        <Data>
            <Packet>
                <PurchaseTitles>
                    <PurchaseTitle>
                        <Title>Casino Royale</Title>
                        <ShowTime>201012132335</ShowTime>
                        <Auditorium>1</Auditorium>
                        <Tickets>
                            <Ticket>
                                <Amount>1</Amount>
                                <TypeCode>1|1</TypeCode>
                                <HoldSeatTransactionID>4022547A-9FB1-4D24-956A-D98AEB482BDC</HoldSeatTransactionID>
                                <Seat>
                                    <Row>7</Row>
                                    <Col>9</Col>
                                </Seat>
                                <Section>1|1</Section>
                            </Ticket>
                            <Ticket>
                                <Amount>1</Amount>
                                <TypeCode>1|1</TypeCode>
                                <HoldSeatTransactionID>4022547A-9FB1-4D24-956A-D98AEB482BDC</HoldSeatTransactionID>
                                <Seat>
                                    <Row>7</Row>
                                    <Col>10</Col>
                                </Seat>
                                <Section>1|1</Section>
                            </Ticket>
                        </Tickets>
                    </PurchaseTitle>
                </PurchaseTitles>
                <Fees>
                    <TicketFee>0</TicketFee>
                    <TransactionFee>2</TransactionFee>
                    <Adjust>0</Adjust>
                </Fees>
                <Payments>
                    <Payment>
                        <Type>CreditCard</Type>
                        <Number>5499990123456781</Number>
                        <Expiration>0114</Expiration>
                        <AvsStreet>4 Baum</AvsStreet>
                        <AvsPostal>30329</AvsPostal>
                        <CID>123</CID>
                        <NameOnCard>RTS</NameOnCard>
                        <ChargeAmount>3</ChargeAmount>
                    </Payment>
                </Payments>
            </Packet>
        </Data>
    </Request>
     
    

    Ticket Purchase (Reserved) – PerformanceID - Sample Request

    <Request>
        <Version>1</Version>
        <Command>Buy</Command>
        <Data>
            <Packet>
                <PurchaseTitles>
                    <PurchaseTitle>
                        <PerformanceID>1005233501</PerformanceID>
                        <Tickets>
                            <Ticket>
                                <Amount>1</Amount>
                                <TypeCode>1|1</TypeCode>
                                <HoldSeatTransactionID>4022547A-9FB1-4D24-956A-D98AEB482BDC</HoldSeatTransactionID>
                                <Seat>
                                    <Row>7</Row>
                                    <Col>9</Col>
                                </Seat>
                                <Section>1|1</Section>
                            </Ticket>
                            <Ticket>
                                <Amount>1</Amount>
                                <TypeCode>1|1</TypeCode>
                                <HoldSeatTransactionID>4022547A-9FB1-4D24-956A-D98AEB482BDC</HoldSeatTransactionID>
                                <Seat>
                                    <Row>7</Row>
                                    <Col>10</Col>
                                </Seat>
                                <Section>1|1</Section>
                            </Ticket>
                        </Tickets>
                    </PurchaseTitle>
                </PurchaseTitles>
                <Fees>
                    <TicketFee>0</TicketFee>
                    <TransactionFee>2</TransactionFee>
                    <Adjust>0</Adjust>
                </Fees>
                <Payments>
                    <Payment>
                        <Type>CreditCard</Type>
                        <Number>5499990123456781</Number>
                        <Expiration>0114</Expiration>
                        <AvsStreet>4 Baum</AvsStreet>
                        <AvsPostal>30329</AvsPostal>
                        <CID>123</CID>
                        <NameOnCard>RTS</NameOnCard>
                        <ChargeAmount>3</ChargeAmount>
                    </Payment>
                </Payments>
            </Packet>
        </Data>
    </Request> 
     
    

    Ticket Purchase (Reserved) – MtFilmCode, ShowTime, and PerformanceID - Sample Request

    <Request>
        <Version>1</Version>
        <Command>Buy</Command>
        <Data>
            <Packet>
                <PurchaseTitles>
                    <PurchaseTitle>
                        <PerformanceID>1005233501</PerformanceID>
                        <ShowTime>201010052335</ShowTime>
                        <MtFilmCode>20516</MtFilmCode>
                        <Tickets>
                            <Ticket>
                                <Amount>1</Amount>
                                <TypeCode>1|1</TypeCode>
                                <HoldSeatTransactionID>4022547A-9FB1-4D24-956A-D98AEB482BDC</HoldSeatTransactionID>
                                <Seat>
                                    <Row>7</Row>
                                    <Col>9</Col>
                                </Seat>
                                <Section>1|1</Section>
                            </Ticket>
                            <Ticket>
                                <Amount>1</Amount>
                                <TypeCode>1|1</TypeCode>
                                <HoldSeatTransactionID>4022547A-9FB1-4D24-956A-D98AEB482BDC</HoldSeatTransactionID>
                                <Seat>
                                    <Row>7</Row>
                                    <Col>10</Col>
                                </Seat>
                                <Section>1|1</Section>
                            </Ticket>
                        </Tickets>
                    </PurchaseTitle>
                </PurchaseTitles>
                <Fees>
                    <TicketFee>0</TicketFee>
                    <TransactionFee>2</TransactionFee>
                    <Adjust>0</Adjust>
                </Fees>
                <Payments>
                    <Payment>
                        <Type>CreditCard</Type>
                        <Number>5499990123456781</Number>
                        <Expiration>0114</Expiration>
                        <AvsStreet>4 Baum</AvsStreet>
                        <AvsPostal>303529</AvsPostal>
                        <CID>123</CID>
                        <NameOnCard>RTS</NameOnCard>
                        <ChargeAmount>3</ChargeAmount>
                    </Payment>
                </Payments>
            </Packet>
        </Data>
    </Request> 
     
    

    Ticket Purchase (Reserved) - Sample Response

    <Response>
        <Version>1</Version>
        <Code>-1</Code>
        <Packet>
            <Response>
                <Code>0</Code>
                <ResponseText>OK</ResponseText>
                <TransactionID>1524291</TransactionID>
                <Pickups>
                    <Pickup>
                        <TicketDay>20101213</TicketDay>
                        <PickupNumber/>
                        <BarCodes>
                            <BarCode>
                                <Type>Transaction</Type>
                                <CodeType>UPC</CodeType>
                                <BarCodeData>525524291791</BarCodeData>
                            </BarCode>
                        </BarCodes>
                    </Pickup>
                </Pickups>
            </Response>
        </Packet>
    </Response>
     
    
    Node Child Node Type Required Description <Response>
    Version None Integer Yes 1
    Code None Integer Yes -1
    Packet Response Sub Node Yes
    ResponseText None String Yes OK
    TransactionID None String Yes Transaction receipt number
    Pickups Pickup String Yes
    TicketDay None String Yes Date of performance (yyyyMMddhhmm)
    PickupNumber None String Yes Not currently used
    BarCodes BarCode String Yes
    Type None String Yes Transaction
    CodeType None String Yes The bar code type: UPC
    BarCodeData None String Yes The confirmation number to be encoded.
    IMAGE IS NOT PROVIDED BY THE POS.

    Concession Prices and Sales

    A list of concession items, Per Cap settings, and prices can be downloaded in XML format, from the theatre, using the following URL:

    https://<Theatre RTN Number>.formovietickets.com:2235/concessionprices.xml

    When selling concession sales it may be necessary to include sales tax in the <ChargeAmount> tag. Insert additional <PurchaseItem> tags if needed.

    Concession Sales – SalesTaxCheck – Sample Request

    <Request>
        <Version>1</Version>
        <Command>Buy</Command>
        <Data>
            <Packet>
                <SalesTaxCheck>1</SalesTaxCheck>
                <PurchaseItems>
                    <PurchaseItem>
                        <ItemName>Candy Item</ItemName>
                        <Amount>1</Amount>
                    </PurchaseItem>
                </PurchaseItems>
            </Packet>
        </Data>
    </Request>
     
    

    Concession Sales – SalesTaxCheck – Sample Response

    <Response>
        <Status>0</Status>
        <SalesTax>0.24</SalesTax>
    </Response> 
     
    
    Node Child Node Type Required Description <Response>
    Status None Integer Yes 0 = success, or an Error Code
    SalesTax None Decimal Yes The amount of sales tax on the items in the Request.

    Concession Sales – Purchase – Sample Request

    <Request>
        <Version>1</Version>
        <Command>Buy</Command>
        <Data>
            <Packet>
                <PurchaseItems>
                    <PurchaseItem>
                        <ItemName>Candy Item</ItemName>
                        <Amount>1</Amount>
                    </PurchaseItem>
                </PurchaseItems>
                <Fees>
                    <TicketFee>0</TicketFee>
                    <TransactionFee>0</TransactionFee>
                    <Adjust>0</Adjust>
                </Fees>
                <Payments>
                    <Payment>
                        <Type>CreditCard</Type>
                        <Number>5499990123456781</Number>
                        <Expiration>0114</Expiration>
                        <AvsStreet>4 Baum</AvsStreet>
                        <AvsPostal>30329</AvsPostal>
                        <CID>123</CID>
                        <NameOnCard>RTS</NameOnCard>
                        <ChargeAmount>2.00</ChargeAmount>
                    </Payment>
                </Payments>
            </Packet>
        </Data>
    </Request>
     
    

    Concession Sales – Purchase – Sample Response

    <Response>
        <Version>1</Version>
        <Code>-1</Code>
        <Packet>
            <Response>
                <Code>0</Code>
                <ResponseText>OK</ResponseText>
                <TransactionID>1476432</TransactionID>
            </Response>
        </Packet>
    </Response> 
     
    
    Node Child Node Type Required Description <Response>
    Version None Integer Yes 1
    Code None Integer Yes -1
    Packet Response Sub Node Yes
    Code None String Yes 0 = success, or an Error Code
    ResponseText None String Yes OK
    TransactionID None String Yes Confirmation for purchase

    Error Codes

    Error Code Error Description

    100

    No data packet was decrypted (possible encryption error)

    101

    No <Payment> nodes specified

    102

    Gift request received, but user does not have rights to sell gifts cards

    103

    Films request received, but user does not have rights to sell tickets

    104

    No films, gifts, or items in request

    106

    Invalid PerformanceID format

    107

    Could not find film for PerformanceID

    108

    No tickets for film in request

    110

    Auditorium is oversold

    111

    Charge amount does not match calculated amount by POS

    113

    Bad username or password

    114

    No gift card prefixes are configured

    115

    No gift purchase amount in request

    116

    POS could not allocate gift certificate number

    117

    Can't add points to a non registered card

    118

    Invalid gift card number

    119

    Unable to create HostedCheckout PaymentId

    120

    Invalid ProcessCompletePostData Format

    121

    Invalid HostedCheckout Processor

    122

    HostedCheckout Transaction Expired

    123

    MPS Payment Not Valid

    124

    HostedCheckout Purchase Failed

    125

    Invalid HostedCheckout PaymentId

    126

    Multiple Payment Validations Error

    127

    Charge Amount is Neg

    128

    Ticket fee item not configured

    129

    Extra fee item not configured

    130

    Adjust item not configured

    131

    Unknown Ticket Class In Request

    132

    Ticket class in not enabled for internet ticketing

    133

    Zero Priced Ticket in Request

    134

    Payments are specified during check sales tax request

    135

    No PickupNumber specified

    136

    Refund, Reverse, or Redeem error (see message for specific details)

    137

    Performance is no longer scheduled (or not a reserved seating show)

    138

    Non-secure payment on tokenized account

    139

    Ticket not available for performance

    140

    Reserved ticket purchase error (see message for specific details)

    141

    Transaction does not balance error

    142

    Reserved ticket purchase error (see message for specific details)

    143

    Malformed gift purchase packet (see message for specific details)

    144

    Unable to validate GiftCardPIN

    201

    Unknown Secure Processor Type

    202

    Invalid Parameters In Payment Node

    203

    VerifyAccount Failed - ResponseText: <Processor ResponseText>

    204

    VerifyAccount Failed - Invalid AVS/CVV Result

    205

    CreditSale Failed - ResponseText: <Processor ResponseText>

    500

    POS could not allocate cash register control (possibly server too busy)

    700

    Unknown error during sale

    701

    Not enough money on gift card

    702

    Invalid credit card number/expiration, or card declined

    703

    Invalid performance

    704

    Ticket type is disabled

    705

    Ticket serial number file is invalid

    706

    Concession item not setup – check ticket/concession link items

    707

    Reserved seat sale failed – check the seating chart

    5000

    Exception Error (see message for details).

    9000

    POS Not Licensed

    9001

    Packet Parse Error (see message for extra details)

    Reserved Seating Codes

    Seat Code Seat Description

    0

    Normal Seat

    1

    Handicapped Seat

    2

    Aisle (the aisle, NOT an aisle seat)

    3

    House Seat

    4

    Companion Seat

    5

    Pillar

    6

    Table

    7

    Beanbag

    8

    Loveseat

    9

    Rocker

    10

    Recliner

    Film and Show Bit Field Values

    Info1

    Info1 Setting

    1

    RTN Display

    2

    RTN Sell

    4

    Kiosk Display

    8

    No Passes

    16

    Dolby Digital

    32

    THX

    64

    DLP

    128

    Dubbed in English

    256

    Subtitled in English

    512

    DTS

    1024

    No Discounts

    2048

    Stadium Seating

    4096

    3D

    8192

    16MM

    16384

    35MM

    Info2

    Info2 Setting

    1

    3rd Party Display

    2

    3rd Party Sell

    4

    Rentrak Transfer

    8

    IMAX

    16

    Flat

    32

    Digital

    64

    Descriptive Video Service

    128

    Subtitled in French

    512

    Dubbed in French

    1024

    70MM

    2048

    Open Caption

    4096

    Closed Caption

    8192

    Special Advanced Screening

    16384

    Adults Only

    Info3

    Info3 Setting

    1

    Sign Display

    2

    RESERVED / UNIMPLEMENTED

    4

    RESERVED / UNIMPLEMENTED

    8

    Director's Hall

    16

    RWC

    32

    Reserved Seating

    64

    Gallery

    128

    Lux Level

    256

    Premier

    512

    Cine Capri

    1024

    Cine Art

    2048

    Showcase Art

    4096

    Surround Sound

    8192

    Scope

    16384

    DBOX

    32768

    PLF

    65536

    Dolby Atmos

    131072

    RealD 3D

    262144

    Sony 4K

    524228

    DTSX

    1048576

    Auro 3D

    2097152

    Fedelio

    4194304

    Captiview

    8388608

    Audio Description

    16777216

    Hearing Impaired Track

    33554432

    Sensory Show

    67108864

    Onyx

    134217728

    Not ADA Accessible

    268435456

    HFR

    536870912

    Spanish Dubbed

    1073741824

    Spanish Subtitled

    Info4

    Info4 Setting

    1

    RESERVED / UNIMPLEMENTED