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.

- A merchant clicks on install button for the desired integration
- Shift4 Marketplace redirects the merchant to a request form page which has merchant data prefilled from Lighthouse
- A merchant submits the form
- An installation request is created and 3rd party integration is notified via subscriptions mechanism
- Once onboarding is handled on 3rd party integration side a callback request is sent to Shift4 Marketplace to finalize the installation
- Depending on the onboarding result Shift4 Marketplace finalizes the installation
- 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
- LocationData
- InstallationRequestData
- InstallationRequestRestaurantData
- InstallationRequestContactData
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 |
| 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 |
| string | Contact's email address | |
| phone | string | Contact's phone number |