# Billing, endpoints, etc

The billing system will be very simple and will basically work like so:
- Tickets are for specific movie regions and timeslots (e.g. Top Gun, USA, May 25-26)
- Ticket skus and pricing information will be stored on stripe; stripe will be the canonical source of data on pricing and skus.
- On our server, there will be a hardcoded list of available items that contain mappings from skus to movie ids.  We can use this to get additional movie information (e.g. title, images, etc), using another API.  This list be used to hide certain items on stripe that are no longer available for purchase (although we don't want to hide the actual data).
    - UPDATE: probably no need to do this!
- Purchases are "one off".  The particular purchase will include the sku; this will be used to initiate the transaction on stripe, along with the purchaser's credit card information.
- The purchased ticket will appear in the user's inventory and function as a "consumable". Consumables are "one off" items that can only be used once, so there will be metadata indicating when and how the item was consumed.
- When the purchase occurs, send email receipt to the user, and store the purchase receipt in our database.


Purchase endpoints:
- Get a full list of available ticket skus and prices, optionally filtering by region.
- (NOT NEEDED) Get movie information about a specific SKU (title, year, director, images, etc).
- Start a purchase on stripe.
- Get a list of receipts for the user.
- Determine if a particular item has been purchased.

Internal
- Stripe: get all products.
- Stripe: get purchased products.

Other endpoints:
- Consume a consumable (the ticket gets used in the Bigscreen app)
- Refund a purchase.