Menuflow Go API Docs
  • Welcome
  • Rest API
    • Overview
    • Authentication
  • API REFERENCE
    • Menus
    • Orders
    • Payments
    • Printer
    • Tables
    • Terminals
    • Staff
  • POSTMAN
    • Download Collection
Powered by GitBook
  1. API REFERENCE

Terminals

Working with terminals in Menuflow

Terminals are hardware devices that take orders, customer payments, and print receipts. Terminals synchronize with the online portal to fetch device configurations and record payments and orders. The following API calls are available to log in, check-in and retrieve and change supervisor pin codes.


To test terminal login, check-ins, and register hardware serial numbers terminal portal access is available on the following URL:

https://portal.menuflow.dev/terminals

Reach out to the Menuflow team for access credentials.

Login

Call to allow pre-registered hardware devices to log in via serial number. The response payload returns configuration data to be used by the application on the specific device.

Login Request

GET https://api.menuflow.dev/go/terminal/{serial_no}/login

curl --location 'https://api.menuflow.dev/go/terminal/{serial_no}/login' --header 'x-api-key: YOUR-API-KEY'

Path Parameters

Name
Type
Description

serial_no*

String

hardware serial number

{
    "status": 200,
    "serial_no": "VB5323XXXXXXX",
    "records": 1,
    "result": [
        {
            "account_id": 1931,
            "location_id": 1220,
            "location_name": "Go Testing",
            "currency": "USD",
            "tax_rate": 20.0,
            "tax_inc": 0,
            "service_charge": 12.0,
            "ordering_enabled": 1,         
            "splitbill_enabled": 1,
            "tip_enabled": 1,
            "tip_option_1": 10.0,
            "tip_option_2": 15.0,
            "tip_option_3": 20.0,
            "tip_custom": 1,
            "supervisor_pin": 7566,
            "payment_endpoint": "https:\/\/endpoint_domain\/gates\/xurl?",
            "payment_user": "username",
            "payment_pass": "password",
            "payment_type": "RE"
        }
    ]
}
{
    "status_code": "401",
    "message": "Terminal authentication failed."
}

Checkin

This endpoint should be called by an application every 1 minute. This call updates the status of the device on the online portal.

Checkin Request

PUT https://api.menuflow.dev/go/terminal/{serial_no}/checkin

curl --location --request PUT 'https://api.menuflow.dev/go/terminal/{serial_no}/checkin' --header 'x-api-key: YOUR-API-KEY' --data-raw '{ "ip":"192.168.9.2", "battery":43, "charging":1, "ssid":"@Menuflow" }'

Path Parameters

Name
Type
Description

serial_no*

string

Hardware serial number

Request Body

Name
Type
Description

ip*

string

IP address of WiFi connection

battery*

integer

Battery level percentage

charging*

integer

1 = charging | 0 = battery

ssid*

String

SSID of the WiFi network

{
    "status": 201,
    "serial_no": "VB53XXXXXXXX",
    "updated": 1
}

Supervisor Pin

Call to retrieve the supervisor pin code used to authenticate an action that requires a supervisor intervention.

Request Pin

GET https://api.menuflow.dev/go/terminal/{location_id}/pin

curl --location 'https://api.menuflow.dev/go/terminal/{location_id}/pin' --header 'x-api-key: YOUR-API-KEY'

Path Parameters

Name
Type
Description

location_id*

integer

location_id supplied in terminal login call

{
    "status": 200,
    "location_id": 1220,
    "records": 1,
    "result": [
        {
            "supervisor_pin": 7566
        }
    ]
}

Update Supervisor Pin

Call to change the supervisor pin code used to authenticate an action that requires a supervisor intervention.

Request Pin Change

PUT https://api.menuflow.dev/go/terminal/{location_id}/pin

curl --location --request PUT 'https://api.menuflow.dev/go/terminal/{location_id}/pin' --header 'Content-Type: application/json' --header 'x-api-key: YOUR-API-KEY' --data '{ "pin": 4432 }'

Path Parameters

Name
Type
Description

location_id*

integer

location_id

supplied in terminal login call

Request Body

Name
Type
Description

pin*

integer

value of new pin

encoded as JSON

{ 
    "status": 201, 
    "location_id": 1220, 
    "updated": 1 
}

{
    "status_code": "400",
    "message": "Supervisor pin update failed."
}

Toggle Ordering

Call to switch ordering on or off. This call determines if the Open Tables option is displayed on the main menu.

Toggle Request

PUT https://api.menuflow.dev/go/terminal/{location_id}/ordering

curl --location --request PUT 'https://api.menuflow.dev/go/terminal/{location_id}/ordering' --header 'Content-Type: application/json' --header 'x-api-key: YOUR-API-KEY' --data '{ "switch": 1 }'

Path Parameters

Name
Type
Description

location_id*

integer

location_id

supplied in terminal login call

Request Body

Name
Type
Description

switch*

integer

0 = OFF and 1 = ON

encoded as JSON

{ 
    "status": 201, 
    "location_id": 1220, 
    "updated": 1 
}

Toggle Tipping

Call to switch tipping on or off. This call determines if the Tipping screen is displayed as part of the payment flow.

Toggle Request

PUT https://api.menuflow.dev/go/terminal/{location_id}/tipping

curl --location --request PUT 'https://api.menuflow.dev/go/terminal/{location_id}/tipping' --header 'Content-Type: application/json' --header 'x-api-key: YOUR-API-KEY' --data '{ "switch": 1 }'

Path Parameters

Name
Type
Description

location_id*

integer

location_id

supplied in terminal login call

Request Body

Name
Type
Description

switch*

integer

0 = OFF and 1 = ON

encoded as JSON

{ 
    "status": 201, 
    "location_id": 1220, 
    "updated": 1 
}

Toggle Split Bill

Call to switch split bill on or off. This call determines if the split bill functionality is displayed on the Open Table/Bill screen.

Toggle Request

PUT https://api.menuflow.dev/go/terminal/{location_id}/splitbill

curl --location --request PUT 'https://api.menuflow.dev/go/terminal/{location_id}/splitbill' --header 'Content-Type: application/json' --header 'x-api-key: YOUR-API-KEY' --data '{ "switch": 1 }'

Path Parameters

Name
Type
Description

location_id*

integer

location_id

supplied in the terminal login call

Request Body

Name
Type
Description

switch*

integer

0 = OFF and 1 = ON

encoded as JSON

{ 
    "status": 201, 
    "location_id": 1220, 
    "updated": 1 
}

Last updated 1 year ago