Api2

From Rts
Jump to: navigation, search

API2 Integration

The RTS API 2 is a rest service allowing 3rd party access to the POS system.

Communcation

Communications with the locations POS server are done using a HTTPS Post of a JSON packet.
Each individual location has an assigned RTN number which is used to route packets.
The DNS for posting data is:
https://<RTN>-api2.formovietickets.com:port/app/api/v2/<EndPoint>
Most RTNs are configured to use port 2235 although this should be configurable as some locations use a different port.


Test Servers

We maintain test servers that process credit cards via different providers.

Plain Text
RTN 5, port 2235.
This is a classic server where plain text credit card information is processed.
This is not an 'Out-Of-Scope' process and is seldom used.
MercuryPay/WorldPay/FIS Hosted Checkout
RTN 500636, port 2245
This processor required you to redirect users to their page for credit card entries
Heartland Hosted Checkout
RTN 321033, port 2255
This processor provides java script 'controls' which allows processing credit cards 'Out-Of-Scope' without the customer leaving your site.
TSYS Hosted Checkout
RTN 809261, port 2265
This processor provides java script 'controls' which allows processing credit cards 'Out-Of-Scope' without the customer leaving your site.

Developer ID

Each company must request a developer ID before API calls will function. We provide this free of charge.


Info Packet

Each packet starts with a JSON info object which contains your Developer ID, Company Name, UserID, Password, RTN, and email addresses.
One or more email addresses are required, we use these addresses internally if we need to notify you of API usage issues with your integration.

   "info": {
       "userId": "test",
       "password": "test",
       "rtn": "5",
       "developerId": "23b21ecb874c4e318e6ddf85518a54495ae08efa4fb5d792aa28cbfc60bf0f99",
       "company": "Ready Theatre Systems LLC",
       "emails": [
           "support@rts-solutions.com"
       ]
   }

PurchaseInfo Packet

Most requests require a PurchaseInfo object. This is primarily used to detect credit card fraud and protect system resources. If your API call requires this packet it must be initiated by a customer interaction from your APP or website.

   "purchaseInfo": {
       "ip": "1.1.1.1",
       "deviceId": "",
       "trackingId": "d9876c6a-fda2-427e-aa07-d177d560b824",
       "latitude": 11.02134,
       "longitude": -17.1523
   }

Password Setup

Each RTN has a separate user name and password which is configured at the location level. We can not provide these usernames/passwords to you except for our test servers. Each customer location controls these passwords independently.


Schedule and Pricing Data Feeds

There is no endpoint that allows you to pull this information. Instead, RTS posts this information to your web server for processing.
This allows us to update schedules, sold-outs, and prices without polling the location saving considerable bandwidth and processing requirements.
When a scheduleInfo data packet is received, we immediately attempt a post with the testConnection type. Your endpoint must respond with a HTTP 200 response code and the string 'rtsok' must be in the HTTP response body. The post URL is appended with transmission type and RTN info using get values. Additional get values can be specified when configuring a destination URL. For instance, adding ?myId=123 during configuration will result in a schedule post of https://..../scheduleIn.asp?myId=123&type=schedule&rtn=...
The data feed settings can be changed at any time and will cause a resend of all feeds within a few minutes without verifying that POS data has changed since the last transmission. This is useful if you need to rebuild your database. Do not consistently use this call to force re-transmissions.


URL get values
type schedule, items, testConnection
rtn rtn number from the transmitting location


for example the following packet will initiate an immediate https post to https://www.myserver/scheduleIn.ASP?AnyThingYouWant=myValue&type=testConnection&rtn=5 with zero length content.
Your server must respond with an HTTP code 200 and the response text must include 'rtsok' or the feed setting will not apply.


uri
server endpoint to receive data
pageUserName
username if your page requires authentication
pagePassword
password if your page requires authentication

Post to https://5-api2.formovietickets.com:2235/app/api/v2/setScheduleURI


   "info": {
       "userId": "test",
       "password": "test",
       "rtn": "5",
       "developerId": "......",
       "company": "rts",
       "emails": [
           "support@rts-solutions.com"
       ]
   },
   "scheduleInfo": {
       "uri": "https://www.myserver/scheduleIn.ASP?AnyThingYouWant=myValue",
       "pageUserName": "uname",
       "pagePassword": "pword"
   }

Schedule File

The schedule file can be very large depending on the number of showtimes currently scheduled. The file is UTF-8 encoded JSON compressed via GZIP. You will need to un-compress the post data before parsing the JSON.

Pickup

The pickup node contains tickets and items that are purchased during this transaction with pickup information.


    "pickup": [{
           "methodId": 14,
           "pickupTime": 1621320353,
           "customers": [{
                   "email": "test@test.com",
                   "tickets": [{
                           "ticketId": 9,
                           "perfId": 155732,
                           "placeId": 1,
                           "feex100": 150,
                           "amount": 1
                       }, {
                           "ticketId": 9,
                           "perfId": 155732,
                           "placeId": 1,
                           "feex100": 0,
                           "amount": 1
                       }
                   ],
                   "items": [{
                           "itemId": 42,
                           "pricex100": 525,
                           "amountx100": 100
                       }
                   ]
               }
           ]
       }
   ]