B2C Checkout

Start by reviewing Checkout APIs - Best Practices and Security to increase security and reduce duplicate transaction.

Orders completed via the B2C Checkout endpoints will be associated with the “Online” sale channel.  While the standard checkout process outlined below is the ACME-recommended process, we do offer the ability to complete a CORS checkout for those who would like to build their integration that way.  The CORS checkout requires more configuration so please see the CORS Checkout documentation for more information.

All checkout calls require a shopping cart to complete.  A shopping cart can either be created in advance using the shopping cart endpoint, or they can be sent in the checkout call itself.  For more information see the Shopping Cart documentation.

  • To checkout with a pre-built shopping cart, pass the shopping cart ID into the shoppingCartId attribute.
  • To build the cart at checkout, add a shopping cart object using the shoppingCart attribute.

POST /v2/b2c/checkout
POST /v2/b2c/cors/checkout (cors)

Request Parameters

Include a CheckoutInput Object as the body of the request (see below)

Sample Request



Returns an Order Object (see Orders). 

  • To get more information about an order after it has been created, pass the ID into the order details API.

CheckoutInput Object

  • If the contact information is not fully populated (first name, last name and phone, email, or zip code):
    • It will be pulled from the membership primary cardholder in the case of a membership order
    • It will be pulled from the billing information in the case of an individual order
  • ACME will create customers based on fully populated billing information 
    • If the information exactly matches an existing customer, that customer will be associated with the order
  • Note for CNP (card not present, or online) checkouts, the billing email is required for the order email confirmation to be sent.
  • To create an order using membership discounts, see the Shopping Cart APIs.

shoppingCartIdstringShopping cart id, if using Shopping Cart APIsif applicable
emailstringcontact email address
ticketDeliveryEmailstringemail to which to send virtual tickets
phoneNumberstringcontact phone number



address1stringcontact address 1
address2stringcontact address 2
countrystringcontact country
citystringcontact city
statestringcontact state
zipCodestringcontact zip code
acmeTokenstringinternal use only
expDatestringCredit card expiration date (MMYY)yes
manualEntryCardNumberstringCredit card PANyes
cvcstringCredit card CVCyes
paymentProcessorTokenstringinternal use only
paymentProcessorFingerPointstringinternal use only

  • Visa
  • MasterCard
  • AmericanExpress
  • Discover
  • Jcb
  • DinersClub

notesstringadd notes to an order
shoppingCartShoppingCartShopping cart object, if not using shopping cart APIsif applicable
checkoutFormsList<CheckoutForms>internal use only


yes - see note above





billingZipCodestringRequired for credit card verificationif applicable

emailAnalyticsEmailAnalyticsinternal use only
sendEmail boolean
  • true = ACME will send the order confirmation email.
  • false = ACME will not send the order confirmation email.  

The default if not included = true

Sample Request Bodies 

Checkout request referencing an existing shopping cart

    "shoppingCartId": "5e1cc8df60309f750c740ea6",
    "billingFirstName": "H",
    "billingLastName": "Simpson",
    "billingAddress1": "742 Evergreen Ter",
    "billingCity": "Springfield",
    "billingState": "Oregon",
    "billingCountry": "United States",
    "billingZipCode": "97477",
    "billingEmail": "",
    "billingPhoneNumber": "939-555-0113",
    "manualEntryCardNumber": "4242424242424242",
    "expDate": "1220",
    "ccLastFourDigits": "4242",
    "cvc": "123",
    "acmeToken": "4242424242"

 Checkout object with new shopping cart

    "shoppingCart": {
        "items": [{
            "itemType": "Event",
            "eventId": "5d96453460309f26d082bd11",
            "ticketingTypeId": "55268c54e4b0fb9be01106bd",
            "quantity": 2
    "billingFirstName": "H",
    "billingLastName": "Simpson",
    "billingAddress1": "742 Evergreen Ter",
    "billingCity": "Springfield",
    "billingState": "Oregon",
    "billingCountry": "United States",
    "billingZipCode": "97477",
    "billingEmail": "",
    "billingPhoneNumber": "939-555-0113",
    "manualEntryCardNumber": "4242424242424242",
    "expDate": "1220",
    "ccLastFourDigits": "4242",
    "cvc": "123",
    "acmeToken": "4242424242"

Sample Response Body

    "id": "453348",
    "tenantId": 165,
    "email": "",
    "billingEmail": "",
    "contactFirstName": "H",
    "contactLastName": "Simpson",
    "billingFirstName": "H",
    "billingLastName": "Simpson",
    "billingAddress1": "742 Evergreen Ter",
    "billingCountry": "United States",
    "billingCity": "Springfield",
    "billingZipCode": "97477",
    "billingState": "Oregon",
    "address1": "742 Evergreen Ter",
    "country": "United States",
    "city": "Springfield",
    "state": "Oregon",
    "zipCode": "97477",
    "phoneNumber": "939-555-0113",
    "billingPhoneNumber": "939-555-0113",
    "orderNumber": "100003504",
    "discountedTotalAmount": "40.00",
    "totalAmount": "40.00",
    "discountedOriginalTotalAmount": "40.00",
    "originalTotalAmount": "40.00",
    "paidAmount": "40.00",
    "balanceAmount": "0.00",
    "refundAmount": "0.00",
    "saleChannel": "Customer Rep",
    "checkInStatus": "NotCheckedIn",
    "creationDate": "2020-01-13T14:50:42-05:00",
    "paymentDueDate": "2020-01-13T14:50:42-05:00",
    "createdOn": "2020-01-13T14:50:42-05:00",
    "createdBy": "null",
    "updatedOn": "2020-01-13T14:50:43-05:00",
    "updatedBy": "null",
    "legacy": false,
    "hideEventDate": false,
    "ccLastFourDigits": "4242",
    "invoiceAfter": false,
    "customerId": 2928141,
    "obfuscated": false