API Documentation

From Rts
Revision as of 01:55, 12 September 2020 by CortlandH (talk | contribs)
Jump to: navigation, search

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

    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 5499-9901-2345-6781
    Expiration Any future month and year (mmyy format)
    AVS Street 150 Mercury Village
    AVS Postal 81301
    CVV 5499-9901-2345-6781
    Customer Name Any name

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

    Number 4003-0001-2345-6781
    Expiration Any future month and year (mmyy format)
    AVS Street 150 Mercury Village
    AVS Postal 81301
    CVV 5499-9901-2345-6781
    Customer Name Any name

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

    Number 4640-6977-8499-8
    Expiration 12 / 2025
    AVS Street 6860 Dallas Pkwy
    AVS Postal 75024
    CVV 5499-9901-2345-6781
    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

    New Gift Card Purchase - Sample Request Packet