Installation Request Flow

Technical overview of the 3rd-party integration installation process in Shift4 Marketplace.

Flow

The image below presents a simplified Installation Request Flow sequence diagram.

Simplified Installation Request Flow sequence diagram

  1. A merchant clicks on install button for the desired integration
  2. Shift4 Marketplace redirects the merchant to a request form page which has merchant data prefilled from Lighthouse
  3. A merchant submits the form
  4. An installation request is created and 3rd party integration is notified via subscriptions mechanism
  5. Once onboarding is handled on 3rd party integration side a callback request is sent to Shift4 Marketplace to finalize the installation
  6. Depending on the onboarding result Shift4 Marketplace finalizes the installation
  7. If the installation is completed the merchant is notified via contact email that was provided in the request form

Shift4 Marketplace API

Retrieve the Installation Request

Returns installation request data

GET /marketplace/v2/locations/{locationId}/requests/installations/{guid}

Response 200

Installation Request template data

{
  "state": "string",
  "createdAt": "string",
  "location": {
    "id": 0,
    "name": "string",
    "timeZone": "string",
    "merchantId": "string",
    "countryCode": "US",
    "currency": "USD",
    "language": "en",
    "brandRef": "string"
  },
  "restaurant": {
    "name": "string",
    "email": "string",
    "addressLine1": "string",
    "addressLine2": "string",
    "city": "string",
    "state": "string",
    "zip": "string",
    "hasIntegrationBusinessAccount": true,
    "externalId": "string"
  },
  "contact": {
    "firstName": "string",
    "lastName": "string",
    "email": "string",
    "phone": "string"
  },
  "salesRepContact": {
    "firstName": "string",
    "lastName": "string",
    "phone": "string",
    "phoneExt": "string",
    "email": "string"
  },
  "dealerContact": {
    "company": "string",
    "firstName": "string",
    "lastName": "string",
    "phone": "string",
    "phoneExt": "string",
    "email": "string"
  }
}

Update Installation Request

Updates installation request with new values

PATCH /marketplace/v2/locations/{locationId}/requests/installations/{guid}

Request Body

Content-Type: application/json

{
  "state": "FULFILLED"
}

Response 200

Installation Request data

{
  "state": "IN_PROGRESS",
  "createdAt": "string",
  "location": {
    "id": 0,
    "name": "string",
    "timeZone": "string",
    "merchantId": "string",
    "countryCode": "US",
    "currency": "USD",
    "language": "en",
    "brandRef": "string"
  },
  "restaurant": {
    "name": "string",
    "email": "string",
    "addressLine1": "string",
    "addressLine2": "string",
    "city": "string",
    "state": "string",
    "zip": "string",
    "hasIntegrationBusinessAccount": true,
    "externalId": "string"
  },
  "contact": {
    "firstName": "string",
    "lastName": "string",
    "email": "string",
    "phone": "string"
  },
  "salesRepContact": {
    "firstName": "string",
    "lastName": "string",
    "phone": "string",
    "phoneExt": "string",
    "email": "string"
  },
  "dealerContact": {
    "company": "string",
    "firstName": "string",
    "lastName": "string",
    "phone": "string",
    "phoneExt": "string",
    "email": "string"
  }
}

Definitions

InstallationRequestUpdate

Name Type Description
state* string A final installation state

LocationData

Location data

Name Type Description
id* integer Location numeric ID
name* string Location name
timeZone* string Location timezone
merchantId* string Merchant ID
countryCode* string Two-letter ISO 3166-1 alpha-2 country code
currency* string Three-letter ISO 4217 currency code
language* string Two-letter ISO 639-1 language code
brandRef* string Location brand reference

InstallationRequestData

Name Type Description
state string Current installation request state (IN_PROGRESS, FULFILLED, REJECTED, CANCELLED)
createdAt string UTC date-time
location* object Location data
restaurant object Installation Request Restaurant Data
contact object Installation Request Contact Data
salesRepContact object Sales Rep contact information
dealerContact object Dealer contact information

InstallationRequestRestaurantData

Installation Request Restaurant Data

Name Type Description
name string Restaurant name
email string Restaurant email address
addressLine1 string Restaurant address line 1
addressLine2 string Restaurant address line 2
city string Restaurant city
state string Restaurant state
zip string Restaurant ZIP code
hasIntegrationBusinessAccount boolean Describes whether the restaurant already has an integration's business account
externalId string External id for 3rd party app

InstallationRequestContactData

Installation Request Contact Data

Name Type Description
firstName string Contact's first name
lastName string Contact's last name
email string Contact's email address
phone string Contact's phone number

results matching ""

    No results matching ""