Shoppable Checkout API - (V5)

This endpoint is used to programmatically conduct Shoppable checkouts.

 

NOTICE: All use of Shoppable's Checkout API requires a specific API license agreement. If you are interested, please contact your customer success manager if you have one. If you don't, please fill out this form here and we'll be in touch within one business day or less.

Shoppable Checkout Call

Overview

This endpoint is used to programmatically conduct Shoppable Universal checkouts. Users will send over information regarding the products (UPC, merchant, price, etc) as well as PII (address(es) and credit card information) and receive an order number back if their request is successful, or an error message if not.

API EndPoint

POST: https://cloud.shoppable.com/checkout 

Authentication

Authentication is done with two headers in the request header. Both bearer token and x-shoppable-secret will be provided to you by your Customer Success Manager at Shoppable.  

Request Headers 

  "Authorization": “Bearer <Bearer token that will be provided by shoppable>”, 
  "x-shoppable-secret": “<Shoppable Secret will be provided by shoppable>”
  "Content-Type": "application/json"

Request Header authorization parameters when generating your request along with context

Name

Description

Authorization
(Bearer Token)
(String)

Unique token that allows access to authorized users to make calls against the Product API.


X-shoppable-secret
(string)

Unique identifier string that together with the authorization bearer, validates the bearer token    

Request Body

Requests must be in application/json format and must contain the following variables.

Name

Description

cartDetails (object)

Object with all information pertaining to the cart (items needed to be checked out, email, etc)

shippingDetails (object)

Object containing all shipping information

billingDetails (object)

Object containing all billing information

paymentDetails (object)

Object containing all payment information for the user .


cartDetails

Name

Description

email (string)

The email for the user to send a confirmation email

sendConfirmationEmail (boolean)

Boolean value to indicate whether to send a confirmation email

marketingOptIn (boolean)

Whether to opt in to the brand's marketing emails, using the email provided

substitutionOptIn (boolean)

Whether to agree to Shoppable's substitution policy

lineItems (array)

Array of objects for items to be added to the cart (see below)

lineItems

Name

Description

upc (string)

UPC for the product

merchantId (string)

The specific Object Id of the merchant. This is required for merchant selection

price (number)

Number for the price. Must be less than or equal the listed price

quantity (string)

The number of items requested for the product


shippingDetails

Name

Description

firstName (string)

First name of the person that this item is being shipped to

lastName (string)

Last name of the person that this item is being shipped to

address1 (string)

Street of the person that this item is being shipped to

address2 (string)

Optional parameter if the user resides at a building with multiple units

city (string)

City of the person that this item is being shipped to

state (string)

Two letter abbreviation of the state of the person that this item is being shipped to

country (string)

Two letter ISO code of the country that this item is being shipped to (currently only the United States is supported) 

zipCode (string)

5 digit zip code of the person that this item is being shipped to 

phoneNumber (string)

Phone number of the person that this item is being shipped to


billingDetails

Name

Description

firstName (string)

First name of the person that this item is being billed to

lastName (string)

Last name of the person that this item is being billed to

address1 (string)

Street of the person that this item is being billed to

address2 (string)

Optional parameter if the user resides at a building with multiple units

city (string)

City of the person that this item is being billed to

state (string)

Two letter abbreviation of the state of the person that this item is being billed to

country (string)

Two letter ISO code of the country that this item is being billed to (currently only the United States is supported) 

zipCode (string)

5 digit zip code of the person that this item is being billed to 


paymentDetails

Name

Description

nameOnCard (string)

Full name on the card

cardNumber (string)

16 digit card number

expireMonth (string)

2 digit month of expiration for the card

expireYear (string)

4 digit year of expiration for the card

cvv (string)

CVV of the card


{

  "cartDetails": {

    "email": "email@gmail.com",

    "sendConfirmationEmail": false,

    "marketingOptIn": true,

    "substitutionOptIn": true,

    "lineItems": [

     {

         "upc": "00090127683996",

         "merchantId": "62a0b5555ce2f83f392eca85",

         "price": 20.0,

         "quantity": 1

     }]

  },

  "shippingDetails": {

    "firstName": "First",

    "lastName": "Last",

    "address1": "Address 1",

    "address2": "Address 2",

    "city": "City",

    "state": "NY",

    "country": "US",

    "zipCode": "00000",

    "phoneNumber": "1234567890"

  },

  "billingDetails": {

    "firstName": "First",

    "lastName": "Last",

    "address1": "Address 1",

    "address2": "Address 2",

    "city": "City",

    "state": "NY",

    "country": "US",

    "zipCode": "07030"

  },

  "paymentDetails": {

    "nameOnCard": "Last",

    "cardNumber": "4111111111111111",

    "expireMonth": "02",

    "expireYear": "2025",

    "cvv": "111"

  }

}

Response 

On a successful call you will receive the following data.

Name

Description

number
(object)

Object containing the order number, if successful

error (number)

If there were any errors during the checkout

message (string) 

If there were errors, this message will display what the error was


{

  "number": {

     "number":  “R147776576”

  },

  "error": false,

  “message”: “” 

}

 

NOTE:

The Shopper's order will be processed with whatever Merchant you send in the payload to Shoppable.

 

If you want to optimize which Merchant you recommend to the Shopper based on prices, you could use Shoppable's Product API to build that on your experience.