Checkout

POST /v2/b2b/checkout/kiosk

Headers: 

Content-Type: application/json

x-acme-api-key: valid API Key
x-acme-request-uuid: a unique identifier to help prevent duplicate transactions (optional)

Body:

A Checkout Input JSON Object with shopping cart

Response:

A WillCall Order Detail object describing the order, order items, and tickets arranged by event


Checkout JSON Objects

Checkout Input JSON Object


Field
Description
Notes
paymentMethods
A list of payment types.

"paymentMethods": ["CreditCard"]


The options are "Cash" or "CreditCard". In practice, there will only be credit card.
Required
expressTransactionId
Transaction token from TriPOS
Required
uuid
A unique identifier to help prevent duplicate transactions (does not have to be a uuid per se)
Required
terminalId
A valid kiosk terminal id
Required
contactFirstNameFirst name of the customer.Optional
contactLastNameLast name of the customer.Optional
emailEmail address of the customer.Optional
phoneNumberPhone number of the customer.Optional
zipCodeZip code of the customer.Optional
billingFirstNameFirst name of the customer.Optional
billingLastNameLast name of the customer.Optional
billingEmailEmail address of the customer.

Optional
billingPhoneNumberPhone number of the customer.Optional
notesNotes about the orderOptional
reservationId
The ID of a reservation with the desired events and tickets. This will be automatically deleted when included with the shopping cart on checkout.
Optional
shoppingCartThe shopping cart object with the items to be purchased.Required
shoppingCart.reservationIdThe ID of a reservation with the desired events and tickets. On checkout, this will be automatically deletedOptional
shoppingCart.itemsA list of items in the shopping cartRequired
shoppingCart.items[x].eventIdEvent ID of the item.Required for event sales
shoppingCart.items[x].ticketingTypeIdType of ticket.Required for event sales
shoppingCart.items[x].eventNameThe name of the event.Optional
shoppingCart.items[x].quantityThe number of these items in the shopping cart.Required
shoppingCart.items[x].itemTypeThe type of item, one of Event, Inventory, ComboEvent, ComboInventoryRequired for non-events
shoppingCart.items[x].inventoryIdThe ID of the inventory (aka Add On) item.
Required for inventory sales
shoppingCart.items[x].inventoryNameName of the inventory (aka Add On) item.Optional
shoppingCart.comboItemsA list of combo items in the cart.Required for combo sales
shoppingCart.comboItems[x].itemIdThe inventory item ID, if this is an inventory item.Optional
shoppingCart.comboItems[x].comboTemplateIdThe combo template id associated with this combo item.Optional
shoppingCart.comboItems[x].comboTemplateNamethe name of the combo template.Optional
shoppingCart.comboItems[x].comboTemplateTypeEither fixedPrice or Discount depending on the type combo template.Optional
shoppingCart.comboItems[x].ticketsThe list of tickets for this combo item.Optional
shoppingCart.comboItems[x].tickets[y].eventTemplateIdThe event template associated with this ticket.Optional
shoppingCart.comboItems[x].tickets[y].ticketTypeIdThe ID for the type of ticket.Optional
shoppingCart.comboItems[x].tickets[y].nameThe name on the ticket.Optional
shoppingCart.comboItems[x].tickets[y].descriptionA description of what the ticket is for.Optional
shoppingCart.comboItems[x].tickets[y].priceThe retail price of the ticket.Optional
shoppingCart.comboItems[x].tickets[y].discountedPriceThe price after discounts for resellers are applied to the retail price.Optional
shoppingCart.comboItems[x].tickets[y].quantityThe number of tickets.Optional
shoppingCart.comboItems[x].tickets[y].subTotalThe subtotal of the retail price of the tickets for the purchased quantityOptional
shoppingCart.comboItems[x].tickets[y].discountedSubTotalThe subtotal of the discounted price of the tickets for the purchased quantityOptional
shoppingCart.comboItems[x].eventsA list of events in the shopping cart.Optional
shoppingCart.comboItems[x].events[y].eventTemplateIdThe id of the event template for this event.Optional
shoppingCart.comboItems[x].events[y].eventIdThe id of the event.Optional
shoppingCart.comboItems[x].events[y].eventNameThe name of the event.Optional
shoppingCart.comboItems[x].events[y].eventStartTimeThe start time of the event.Optional
shoppingCart.comboItems[x].addOnsThe list of add ons in this combo item.Optional
shoppingCart.comboItems[x].addOns[y].addOnIdThe id of the add-on .optional
shoppingCart.comboItems[x].addOns[y].nameThe name of the add on.optional
shoppingCart.comboItems[x].addOns[y].quantityThe number of items of this add on in the shopping cart.Optional
shoppingCart.comboItems[x].addOns[y].unitPriceThe price of these items.Optional
shoppingCart.comboItems[x].addOns[y].priceSplitEither 'each' or 'total'. If each then the price will be quantity * unitPrice, if total the price will be unitPrice.Optional


Things of Note: 

  • The following fields are included in the response
    • ccLastFourDigits
    • shoppingCart.items[x].itemId (a unique ID for the item)
    • shoppingCart.items[x].unitPrice (the price for the item)
    • shoppingCart.items[x].amount (the total amount: quantity X unit price)
  • For speed of testing without a card reader, you can send in manual entry fields instead of expressTransactionId:
    • manualEntryCardNumber
    • expDate
    • cvc
    • chargeAmount (required for cc manual entry without a card reader ONLY if paying less than the total)