MENU navbar-image

Introduction

UltimatePOS API Documentation

This documentation aims to provide all the information you need to work with our API.

Authenticating requests

Authenticate requests to this API's endpoints by sending an Authorization header with the value "Bearer {access_token}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

Getting access_token

  1. Get client_id & client_secret: Login to your account. Go to Connector > Clients, click on Create Client button.
  2. Requesting Tokens: Send request with client_id, client_secret, username & password as given in laravel documentation. In response, you get access_token

Attendance management

Get Attendance

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/get-attendance/1" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/get-attendance/1"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/get-attendance/1',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 4,
        "user_id": 1,
        "business_id": 1,
        "clock_in_time": "2020-09-12 13:13:00",
        "clock_out_time": "2020-09-12 13:15:00",
        "essentials_shift_id": 3,
        "ip_address": null,
        "clock_in_note": "test clock in from api",
        "clock_out_note": "test clock out from api",
        "created_at": "2020-09-12 13:14:39",
        "updated_at": "2020-09-12 13:15:39"
    }
}
 

Request   

GET connector/api/get-attendance/{user_id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

user_id   string   

id of the user Example: 1

Clock In

requires authentication

[User must have "essentials.allow_users_for_attendance_from_api" permission to Clock in]

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/connector/api/clock-in" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": 1,
    \"clock_in_time\": \"2000-06-13 13:13:00\",
    \"clock_in_note\": \"nam\",
    \"ip_address\": \"corporis\",
    \"latitude\": \"soluta\",
    \"longitude\": \"et\"
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/clock-in"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": 1,
    "clock_in_time": "2000-06-13 13:13:00",
    "clock_in_note": "nam",
    "ip_address": "corporis",
    "latitude": "soluta",
    "longitude": "et"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/connector/api/clock-in',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'user_id' => 1,
            'clock_in_time' => '2000-06-13 13:13:00',
            'clock_in_note' => 'nam',
            'ip_address' => 'corporis',
            'latitude' => 'soluta',
            'longitude' => 'et',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "success": true,
    "msg": "Clocked In successfully",
    "type": "clock_in"
}
 

Request   

POST connector/api/clock-in

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

user_id   integer   

id of the user Example: 1

clock_in_time   string  optional  

Clock in time.If not given current date time will be used Fromat: Y-m-d H:i:s Example: 2000-06-13 13:13:00

clock_in_note   string  optional  

Clock in note. Example: nam

ip_address   string  optional  

IP address. Example: corporis

latitude   string  optional  

Latitude of the clock in location. Example: soluta

longitude   string  optional  

Longitude of the clock in location. Example: et

Clock Out

requires authentication

[User must have "essentials.allow_users_for_attendance_from_api" permission to Clock out]

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/connector/api/clock-out" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": 1,
    \"clock_out_time\": \"2000-06-13 13:13:00\",
    \"clock_out_note\": \"non\",
    \"latitude\": \"error\",
    \"longitude\": \"ratione\"
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/clock-out"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": 1,
    "clock_out_time": "2000-06-13 13:13:00",
    "clock_out_note": "non",
    "latitude": "error",
    "longitude": "ratione"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/connector/api/clock-out',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'user_id' => 1,
            'clock_out_time' => '2000-06-13 13:13:00',
            'clock_out_note' => 'non',
            'latitude' => 'error',
            'longitude' => 'ratione',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "success": true,
    "msg": "Clocked Out successfully",
    "type": "clock_out"
}
 

Request   

POST connector/api/clock-out

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

user_id   integer   

id of the user Example: 1

clock_out_time   string  optional  

Clock out time.If not given current date time will be used Fromat: Y-m-d H:i:s Example: 2000-06-13 13:13:00

clock_out_note   string  optional  

Clock out note. Example: non

latitude   string  optional  

Latitude of the clock out location. Example: error

longitude   string  optional  

Longitude of the clock out location. Example: ratione

List Holidays

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/holidays?location_id=1&start_date=2020-06-25&end_date=2020-06-25" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/holidays"
);

const params = {
    "location_id": "1",
    "start_date": "2020-06-25",
    "end_date": "2020-06-25",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/holidays',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'location_id' => '1',
            'start_date' => '2020-06-25',
            'end_date' => '2020-06-25',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 2,
            "name": "Independence Day",
            "start_date": "2020-08-15",
            "end_date": "2020-09-15",
            "business_id": 1,
            "location_id": null,
            "note": "test holiday",
            "created_at": "2020-09-15 11:25:56",
            "updated_at": "2020-09-15 11:25:56"
        }
    ]
}
 

Request   

GET connector/api/holidays

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

location_id   string  optional  

id of the location Example: 1

start_date   string  optional  

format:Y-m-d Example: 2020-06-25

end_date   string  optional  

format:Y-m-d Example: 2020-06-25

Brand management

List brands

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/brand" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/brand"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/brand',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "business_id": 1,
            "name": "Levis",
            "description": null,
            "created_by": 1,
            "deleted_at": null,
            "created_at": "2018-01-03 21:19:47",
            "updated_at": "2018-01-03 21:19:47"
        },
        {
            "id": 2,
            "business_id": 1,
            "name": "Espirit",
            "description": null,
            "created_by": 1,
            "deleted_at": null,
            "created_at": "2018-01-03 21:19:58",
            "updated_at": "2018-01-03 21:19:58"
        }
    ]
}
 

Request   

GET connector/api/brand

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Get the specified brand

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/brand/dolorum" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/brand/dolorum"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/brand/dolorum',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "business_id": 1,
            "name": "Levis",
            "description": null,
            "created_by": 1,
            "deleted_at": null,
            "created_at": "2018-01-03 21:19:47",
            "updated_at": "2018-01-03 21:19:47"
        }
    ]
}
 

Request   

GET connector/api/brand/{id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the brand. Example: dolorum

brand   string   

comma separated ids of the brands Example: 1

Business Location management

List business locations

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/business-location" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/business-location"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/business-location',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "business_id": 1,
            "location_id": null,
            "name": "Awesome Shop",
            "landmark": "Linking Street",
            "country": "USA",
            "state": "Arizona",
            "city": "Phoenix",
            "zip_code": "85001",
            "invoice_scheme_id": 1,
            "invoice_layout_id": 1,
            "selling_price_group_id": null,
            "print_receipt_on_invoice": 1,
            "receipt_printer_type": "browser",
            "printer_id": null,
            "mobile": null,
            "alternate_number": null,
            "email": null,
            "website": null,
            "featured_products": [
                "5",
                "71"
            ],
            "is_active": 1,
            "payment_methods": [
                {
                    "name": "cash",
                    "label": "Cash",
                    "account_id": "1"
                },
                {
                    "name": "card",
                    "label": "Card",
                    "account_id": null
                },
                {
                    "name": "cheque",
                    "label": "Cheque",
                    "account_id": null
                },
                {
                    "name": "bank_transfer",
                    "label": "Bank Transfer",
                    "account_id": null
                },
                {
                    "name": "other",
                    "label": "Other",
                    "account_id": null
                },
                {
                    "name": "custom_pay_1",
                    "label": "Custom Payment 1",
                    "account_id": null
                },
                {
                    "name": "custom_pay_2",
                    "label": "Custom Payment 2",
                    "account_id": null
                },
                {
                    "name": "custom_pay_3",
                    "label": "Custom Payment 3",
                    "account_id": null
                }
            ],
            "custom_field1": null,
            "custom_field2": null,
            "custom_field3": null,
            "custom_field4": null,
            "deleted_at": null,
            "created_at": "2018-01-04 02:15:20",
            "updated_at": "2020-06-05 00:56:54"
        }
    ]
}
 

Request   

GET connector/api/business-location

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Get the specified business location

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/business-location/1" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/business-location/1"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/business-location/1',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "business_id": 1,
            "location_id": null,
            "name": "Awesome Shop",
            "landmark": "Linking Street",
            "country": "USA",
            "state": "Arizona",
            "city": "Phoenix",
            "zip_code": "85001",
            "invoice_scheme_id": 1,
            "invoice_layout_id": 1,
            "selling_price_group_id": null,
            "print_receipt_on_invoice": 1,
            "receipt_printer_type": "browser",
            "printer_id": null,
            "mobile": null,
            "alternate_number": null,
            "email": null,
            "website": null,
            "featured_products": [
                "5",
                "71"
            ],
            "is_active": 1,
            "payment_methods": [
                {
                    "name": "cash",
                    "label": "Cash",
                    "account_id": "1"
                },
                {
                    "name": "card",
                    "label": "Card",
                    "account_id": null
                },
                {
                    "name": "cheque",
                    "label": "Cheque",
                    "account_id": null
                },
                {
                    "name": "bank_transfer",
                    "label": "Bank Transfer",
                    "account_id": null
                },
                {
                    "name": "other",
                    "label": "Other",
                    "account_id": null
                },
                {
                    "name": "custom_pay_1",
                    "label": "Custom Payment 1",
                    "account_id": null
                },
                {
                    "name": "custom_pay_2",
                    "label": "Custom Payment 2",
                    "account_id": null
                },
                {
                    "name": "custom_pay_3",
                    "label": "Custom Payment 3",
                    "account_id": null
                }
            ],
            "custom_field1": null,
            "custom_field2": null,
            "custom_field3": null,
            "custom_field4": null,
            "deleted_at": null,
            "created_at": "2018-01-04 02:15:20",
            "updated_at": "2020-06-05 00:56:54"
        }
    ]
}
 

Request   

GET connector/api/business-location/{id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the business location. Example: 1

location   string   

comma separated ids of the business location Example: 1

CRM

List Follow ups

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/crm/follow-ups?start_date=2020-12-16&end_date=2020-12-16&status=sed&follow_up_type=amet&followup_category_id=quia&order_by=start_datetime&direction=desc&per_page=10" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/crm/follow-ups"
);

const params = {
    "start_date": "2020-12-16",
    "end_date": "2020-12-16",
    "status": "sed",
    "follow_up_type": "amet",
    "followup_category_id": "quia",
    "order_by": "start_datetime",
    "direction": "desc",
    "per_page": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/crm/follow-ups',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'start_date' => '2020-12-16',
            'end_date' => '2020-12-16',
            'status' => 'sed',
            'follow_up_type' => 'amet',
            'followup_category_id' => 'quia',
            'order_by' => 'start_datetime',
            'direction' => 'desc',
            'per_page' => '10',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "business_id": 1,
            "contact_id": 50,
            "title": "Test Follow up",
            "status": "scheduled",
            "start_datetime": "2020-12-16 15:15:00",
            "end_datetime": "2020-12-16 15:15:00",
            "description": "<p>tst</p>",
            "schedule_type": "call",
            "allow_notification": 0,
            "notify_via": {
                "sms": 0,
                "mail": 1
            },
            "notify_before": null,
            "notify_type": "minute",
            "created_by": 1,
            "followup_additional_info": null,
            "created_at": "2020-12-16 03:15:23",
            "updated_at": "2020-12-16 15:46:34",
            "customer": {
                "id": 50,
                "business_id": 1,
                "type": "lead",
                "supplier_business_name": null,
                "name": " Lead 4  ",
                "prefix": null,
                "first_name": "Lead 4",
                "middle_name": null,
                "last_name": null,
                "email": null,
                "contact_id": "CO0011",
                "contact_status": "active",
                "tax_number": null,
                "city": null,
                "state": null,
                "country": null,
                "address_line_1": null,
                "address_line_2": null,
                "zip_code": null,
                "dob": null,
                "mobile": "234567",
                "landline": null,
                "alternate_number": null,
                "pay_term_number": null,
                "pay_term_type": null,
                "credit_limit": null,
                "created_by": 1,
                "balance": "0.0000",
                "total_rp": 0,
                "total_rp_used": 0,
                "total_rp_expired": 0,
                "is_default": 0,
                "shipping_address": null,
                "position": null,
                "customer_group_id": null,
                "crm_source": "55",
                "crm_life_stage": "62",
                "custom_field1": null,
                "custom_field2": null,
                "custom_field3": null,
                "custom_field4": null,
                "custom_field5": null,
                "custom_field6": null,
                "custom_field7": null,
                "custom_field8": null,
                "custom_field9": null,
                "custom_field10": null,
                "deleted_at": null,
                "created_at": "2020-12-15 23:14:48",
                "updated_at": "2021-01-07 15:32:52",
                "remember_token": null,
                "password": null
            }
        },
        {
            "id": 2,
            "business_id": 1,
            "contact_id": 50,
            "title": "Test Follow up 1",
            "status": "completed",
            "start_datetime": "2020-12-16 15:46:00",
            "end_datetime": "2020-12-16 15:46:00",
            "description": "<p>Test Follow up</p>",
            "schedule_type": "call",
            "allow_notification": 0,
            "notify_via": {
                "sms": 0,
                "mail": 1
            },
            "notify_before": null,
            "notify_type": "minute",
            "created_by": 1,
            "followup_additional_info": null,
            "created_at": "2020-12-16 15:46:57",
            "updated_at": "2020-12-17 10:24:11",
            "customer": {
                "id": 50,
                "business_id": 1,
                "type": "lead",
                "supplier_business_name": null,
                "name": " Lead 4  ",
                "prefix": null,
                "first_name": "Lead 4",
                "middle_name": null,
                "last_name": null,
                "email": null,
                "contact_id": "CO0011",
                "contact_status": "active",
                "tax_number": null,
                "city": null,
                "state": null,
                "country": null,
                "address_line_1": null,
                "address_line_2": null,
                "zip_code": null,
                "dob": null,
                "mobile": "234567",
                "landline": null,
                "alternate_number": null,
                "pay_term_number": null,
                "pay_term_type": null,
                "credit_limit": null,
                "created_by": 1,
                "balance": "0.0000",
                "total_rp": 0,
                "total_rp_used": 0,
                "total_rp_expired": 0,
                "is_default": 0,
                "shipping_address": null,
                "position": null,
                "customer_group_id": null,
                "crm_source": "55",
                "crm_life_stage": "62",
                "custom_field1": null,
                "custom_field2": null,
                "custom_field3": null,
                "custom_field4": null,
                "custom_field5": null,
                "custom_field6": null,
                "custom_field7": null,
                "custom_field8": null,
                "custom_field9": null,
                "custom_field10": null,
                "deleted_at": null,
                "created_at": "2020-12-15 23:14:48",
                "updated_at": "2021-01-07 15:32:52",
                "remember_token": null,
                "password": null
            }
        }
    ],
    "links": {
        "first": "http://local.pos.com/connector/api/crm/follow-ups?page=1",
        "last": "http://local.pos.com/connector/api/crm/follow-ups?page=21",
        "prev": null,
        "next": "http://local.pos.com/connector/api/crm/follow-ups?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 21,
        "path": "http://local.pos.com/connector/api/crm/follow-ups",
        "per_page": "2",
        "to": 2,
        "total": 42
    }
}
 

Request   

GET connector/api/crm/follow-ups

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

start_date   string  optional  

format: Y-m-d (Ex: 2020-12-16) Example: 2020-12-16

end_date   string  optional  

format: Y-m-d (Ex: 2020-12-16) Example: 2020-12-16

status   string  optional  

filter the result through status, get status from getFollowUpResources->statuses Example: sed

follow_up_type   string  optional  

filter the result through follow_up_type, get follow_up_type from getFollowUpResources->follow_up_types Example: amet

followup_category_id   string  optional  

filter the result through followup_category_id Example: quia

order_by   string  optional  

Column name to sort the result, Column: start_datetime Example: start_datetime

direction   string  optional  

Direction to sort the result, Required if using 'order_by', direction: desc, asc Example: desc

per_page   integer  optional  

Total records per page. default: 10, Set -1 for no pagination Example: 10

Add follow up

requires authentication

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/connector/api/crm/follow-ups" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"Meeting with client\",
    \"contact_id\": 2,
    \"description\": \"Libero consequatur cum et eos placeat.\",
    \"schedule_type\": \"sed\",
    \"user_id\": [
        2,
        3,
        5
    ],
    \"notify_before\": 5,
    \"notify_type\": \"minute\",
    \"status\": \"open\",
    \"notify_via\": [
        \"pariatur\"
    ],
    \"start_datetime\": \"2021-01-06 13:05:00\",
    \"end_datetime\": \"2021-01-06 13:05:00\",
    \"followup_additional_info\": [
        \"tempora\"
    ],
    \"allow_notification\": true
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/crm/follow-ups"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "Meeting with client",
    "contact_id": 2,
    "description": "Libero consequatur cum et eos placeat.",
    "schedule_type": "sed",
    "user_id": [
        2,
        3,
        5
    ],
    "notify_before": 5,
    "notify_type": "minute",
    "status": "open",
    "notify_via": [
        "pariatur"
    ],
    "start_datetime": "2021-01-06 13:05:00",
    "end_datetime": "2021-01-06 13:05:00",
    "followup_additional_info": [
        "tempora"
    ],
    "allow_notification": true
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/connector/api/crm/follow-ups',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'Meeting with client',
            'contact_id' => 2,
            'description' => 'Libero consequatur cum et eos placeat.',
            'schedule_type' => 'sed',
            'user_id' => [
                2,
                3,
                5,
            ],
            'notify_before' => 5,
            'notify_type' => 'minute',
            'status' => 'open',
            'notify_via' => [
                'pariatur',
            ],
            'start_datetime' => '2021-01-06 13:05:00',
            'end_datetime' => '2021-01-06 13:05:00',
            'followup_additional_info' => [
                'tempora',
            ],
            'allow_notification' => true,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "title": "test",
        "contact_id": "1",
        "description": null,
        "schedule_type": "call",
        "followup_category_id": "1",
        "notify_before": null,
        "status": null,
        "start_datetime": "2021-01-06 15:27:00",
        "end_datetime": "2021-01-06 15:27:00",
        "allow_notification": 0,
        "notify_via": {
            "sms": 1,
            "mail": 1
        },
        "notify_type": "hour",
        "business_id": 1,
        "created_by": 1,
        "updated_at": "2021-01-06 17:04:54",
        "created_at": "2021-01-06 17:04:54",
        "id": 20
    }
}
 

Request   

POST connector/api/crm/follow-ups

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

title   string   

Follow up title Example: Meeting with client

contact_id   integer   

Contact to be followed up Example: 2

description   text  optional  

Follow up description Example: Libero consequatur cum et eos placeat.

schedule_type   string   

Follow up type default get from getFollowUpResources->follow_up_types Example: sed

user_id   string[]   

Integer ID; Follow up to be assigned Ex: [2,3,8]

notify_before   integer  optional  

Integer value will be used to send auto notification before follow up starts. Example: 5

notify_type   string  optional  

Notify type Ex: 'minute', 'hour', 'day'. default is hour Example: minute

status   string  optional  

Follow up status Example: open

notify_via   string[]  optional  

Will be used to send notification Ex: ['sms' => 0 ,'mail' => 1]

start_datetime   datetime   

Follow up start datetime format: Y-m-d H:i:s Ex: 2020-12-16 03:15:23 Example: 2021-01-06 13:05:00

end_datetime   datetime   

Follow up end datetime format: Y-m-d H:i:s Ex: 2020-12-16 03:15:23 Example: 2021-01-06 13:05:00

followup_additional_info   string[]  optional  

Follow up additional info Ex: ['call duration' => '1 hour']

allow_notification   boolean  optional  

0/1 : If notification will be send before follow up starts. default is 1(true) Example: true

Get the specified followup

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/crm/follow-ups/perferendis" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/crm/follow-ups/perferendis"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/crm/follow-ups/perferendis',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 20,
            "business_id": 1,
            "contact_id": 1,
            "title": "Meeting with client",
            "status": null,
            "start_datetime": "2021-01-06 15:27:00",
            "end_datetime": "2021-01-06 15:27:00",
            "description": null,
            "schedule_type": "call",
            "allow_notification": 0,
            "notify_via": {
                "sms": 1,
                "mail": 1
            },
            "notify_before": null,
            "notify_type": "hour",
            "created_by": 1,
            "created_at": "2021-01-06 17:04:54",
            "updated_at": "2021-01-06 17:04:54",
            "customer": {
                "id": 1,
                "business_id": 1,
                "type": "customer",
                "supplier_business_name": null,
                "name": "Walk-In Customer",
                "prefix": null,
                "first_name": "Walk-In Customer",
                "middle_name": null,
                "last_name": null,
                "email": null,
                "contact_id": "CO0005",
                "contact_status": "active",
                "tax_number": null,
                "city": "Phoenix",
                "state": "Arizona",
                "country": "USA",
                "address_line_1": "Linking Street",
                "address_line_2": null,
                "zip_code": null,
                "dob": null,
                "mobile": "(378) 400-1234",
                "landline": null,
                "alternate_number": null,
                "pay_term_number": null,
                "pay_term_type": null,
                "credit_limit": null,
                "created_by": 1,
                "balance": "0.0000",
                "total_rp": 0,
                "total_rp_used": 0,
                "total_rp_expired": 0,
                "is_default": 1,
                "shipping_address": null,
                "position": null,
                "customer_group_id": null,
                "crm_source": null,
                "crm_life_stage": null,
                "custom_field1": null,
                "custom_field2": null,
                "custom_field3": null,
                "custom_field4": null,
                "custom_field5": null,
                "custom_field6": null,
                "custom_field7": null,
                "custom_field8": null,
                "custom_field9": null,
                "custom_field10": null,
                "deleted_at": null,
                "created_at": "2018-01-03 20:45:20",
                "updated_at": "2018-06-11 22:22:05",
                "remember_token": null,
                "password": null
            },
            "users": [
                {
                    "id": 2,
                    "user_type": "user",
                    "surname": "Mr",
                    "first_name": "Demo",
                    "last_name": "Cashier",
                    "username": "cashier",
                    "email": "[email protected]",
                    "language": "en",
                    "contact_no": null,
                    "address": null,
                    "business_id": 1,
                    "max_sales_discount_percent": null,
                    "allow_login": 1,
                    "essentials_department_id": null,
                    "essentials_designation_id": null,
                    "status": "active",
                    "crm_contact_id": null,
                    "is_cmmsn_agnt": 0,
                    "cmmsn_percent": "0.00",
                    "selected_contacts": 0,
                    "dob": null,
                    "gender": null,
                    "marital_status": null,
                    "blood_group": null,
                    "contact_number": null,
                    "fb_link": null,
                    "twitter_link": null,
                    "social_media_1": null,
                    "social_media_2": null,
                    "permanent_address": null,
                    "current_address": null,
                    "guardian_name": null,
                    "custom_field_1": null,
                    "custom_field_2": null,
                    "custom_field_3": null,
                    "custom_field_4": null,
                    "bank_details": null,
                    "id_proof_name": null,
                    "id_proof_number": null,
                    "deleted_at": null,
                    "created_at": "2018-01-04 02:20:58",
                    "updated_at": "2018-01-04 02:20:58",
                    "pivot": {
                        "schedule_id": 20,
                        "user_id": 2
                    }
                }
            ]
        }
    ]
}
 

Request   

GET connector/api/crm/follow-ups/{id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the follow up. Example: perferendis

follow_up   string   

comma separated ids of the follow_ups Example: 1,2

Update follow up

requires authentication

Example request:
curl --request PUT \
    "https://pos.ultimatefosters.com/connector/api/crm/follow-ups/voluptatibus" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"Meeting with client\",
    \"contact_id\": 2,
    \"description\": \"Non unde quae aliquam corrupti minima.\",
    \"schedule_type\": \"nihil\",
    \"user_id\": [
        2,
        3,
        5
    ],
    \"notify_before\": 5,
    \"notify_type\": \"minute\",
    \"status\": \"open\",
    \"notify_via\": [
        \"eligendi\"
    ],
    \"followup_additional_info\": [
        \"esse\"
    ],
    \"start_datetime\": \"2021-01-06 13:05:00\",
    \"end_datetime\": \"2021-01-06 13:05:00\",
    \"allow_notification\": true
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/crm/follow-ups/voluptatibus"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "Meeting with client",
    "contact_id": 2,
    "description": "Non unde quae aliquam corrupti minima.",
    "schedule_type": "nihil",
    "user_id": [
        2,
        3,
        5
    ],
    "notify_before": 5,
    "notify_type": "minute",
    "status": "open",
    "notify_via": [
        "eligendi"
    ],
    "followup_additional_info": [
        "esse"
    ],
    "start_datetime": "2021-01-06 13:05:00",
    "end_datetime": "2021-01-06 13:05:00",
    "allow_notification": true
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'https://pos.ultimatefosters.com/connector/api/crm/follow-ups/voluptatibus',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'Meeting with client',
            'contact_id' => 2,
            'description' => 'Non unde quae aliquam corrupti minima.',
            'schedule_type' => 'nihil',
            'user_id' => [
                2,
                3,
                5,
            ],
            'notify_before' => 5,
            'notify_type' => 'minute',
            'status' => 'open',
            'notify_via' => [
                'eligendi',
            ],
            'followup_additional_info' => [
                'esse',
            ],
            'start_datetime' => '2021-01-06 13:05:00',
            'end_datetime' => '2021-01-06 13:05:00',
            'allow_notification' => true,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 20,
        "business_id": 1,
        "contact_id": "1",
        "title": "Meeting with client",
        "status": null,
        "start_datetime": "2021-01-06 15:27:00",
        "end_datetime": "2021-01-06 15:27:00",
        "description": null,
        "schedule_type": "call",
        "allow_notification": 0,
        "notify_via": {
            "sms": 1,
            "mail": 0
        },
        "notify_before": null,
        "notify_type": "hour",
        "created_by": 1,
        "created_at": "2021-01-06 17:04:54",
        "updated_at": "2021-01-06 18:22:21"
    }
}
 

Request   

PUT connector/api/crm/follow-ups/{id}

PATCH connector/api/crm/follow-ups/{id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the follow up. Example: voluptatibus

follow_up   string   

id of the follow up to be updated Example: 20

Body Parameters

title   string   

Follow up title Example: Meeting with client

contact_id   integer   

Contact to be followed up Example: 2

description   text  optional  

Follow up description Example: Non unde quae aliquam corrupti minima.

schedule_type   string   

Follow up type default get from getFollowUpResources->follow_up_types Example: nihil

user_id   string[]   

Integer ID; Follow up to be assigned Ex: [2,3,8]

notify_before   integer  optional  

Integer value will be used to send auto notification before follow up starts. Example: 5

notify_type   string  optional  

Notify type Ex: 'minute', 'hour', 'day'. default is hour Example: minute

status   string  optional  

Follow up status Example: open

notify_via   string[]  optional  

Will be used to send notification Ex: ['sms' => 0 ,'mail' => 1]

followup_additional_info   string[]  optional  

Follow up additional info Ex: ['call duration' => '1 hour']

start_datetime   datetime   

Follow up start datetime format: Y-m-d H:i:s Ex: 2020-12-16 03:15:23 Example: 2021-01-06 13:05:00

end_datetime   datetime   

Follow up end datetime format: Y-m-d H:i:s Ex: 2020-12-16 03:15:23 Example: 2021-01-06 13:05:00

allow_notification   boolean  optional  

0/1 : If notification will be send before follow up starts. default is 1(true) Example: true

Get follow up resources

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/crm/follow-up-resources" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/crm/follow-up-resources"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/crm/follow-up-resources',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "statuses": {
            "scheduled": "Scheduled",
            "open": "Open",
            "canceled": "Cancelled",
            "completed": "Completed"
        },
        "follow_up_types": {
            "call": "Call",
            "sms": "Sms",
            "meeting": "Meeting",
            "email": "Email"
        },
        "notify_type": {
            "minute": "Minute",
            "hour": "Hour",
            "day": "Day"
        },
        "notify_via": {
            "sms": "Sms",
            "mail": "Email"
        }
    }
}
 

Request   

GET connector/api/crm/follow-up-resources

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

List lead

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/crm/leads?assigned_to=1%2C2%2C3&name=cumque&biz_name=nisi&mobile_num=3&contact_id=neque&order_by=tenetur&direction=desc&per_page=10" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/crm/leads"
);

const params = {
    "assigned_to": "1,2,3",
    "name": "cumque",
    "biz_name": "nisi",
    "mobile_num": "3",
    "contact_id": "neque",
    "order_by": "tenetur",
    "direction": "desc",
    "per_page": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/crm/leads',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'assigned_to' => '1,2,3',
            'name' => 'cumque',
            'biz_name' => 'nisi',
            'mobile_num' => '3',
            'contact_id' => 'neque',
            'order_by' => 'tenetur',
            'direction' => 'desc',
            'per_page' => '10',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "contact_id": "CO0010",
            "name": "mr Lead 3 kr kr 2",
            "supplier_business_name": "POS",
            "email": null,
            "mobile": "9437638555",
            "tax_number": null,
            "created_at": "2020-12-15 23:14:30",
            "custom_field1": null,
            "custom_field2": null,
            "custom_field3": null,
            "custom_field4": null,
            "custom_field5": null,
            "custom_field6": null,
            "alternate_number": null,
            "landline": null,
            "dob": null,
            "contact_status": "active",
            "type": "lead",
            "custom_field7": null,
            "custom_field8": null,
            "custom_field9": null,
            "custom_field10": null,
            "id": 49,
            "business_id": 1,
            "crm_source": "55",
            "crm_life_stage": "60",
            "address_line_1": null,
            "address_line_2": null,
            "city": null,
            "state": null,
            "country": null,
            "zip_code": null,
            "last_follow_up_id": 18,
            "upcoming_follow_up_id": null,
            "last_follow_up": "2021-01-07 10:26:00",
            "upcoming_follow_up": null,
            "last_follow_up_additional_info": "{\"test\":\"test done\",\"call_duration\":\"1.5 Hour\",\"rand\":1}",
            "upcoming_follow_up_additional_info": null,
            "source": {
                "id": 55,
                "name": "Facebook",
                "business_id": 1,
                "short_code": null,
                "parent_id": 0,
                "created_by": 1,
                "category_type": "source",
                "description": "Facebook",
                "slug": null,
                "woocommerce_cat_id": null,
                "deleted_at": null,
                "created_at": "2020-12-15 23:07:53",
                "updated_at": "2020-12-15 23:07:53"
            },
            "life_stage": {
                "id": 60,
                "name": "Open Deal",
                "business_id": 1,
                "short_code": null,
                "parent_id": 0,
                "created_by": 1,
                "category_type": "life_stage",
                "description": "Open Deal",
                "slug": null,
                "woocommerce_cat_id": null,
                "deleted_at": null,
                "created_at": "2020-12-15 23:11:05",
                "updated_at": "2020-12-15 23:11:05"
            },
            "lead_users": [
                {
                    "id": 10,
                    "user_type": "user",
                    "surname": "Mr.",
                    "first_name": "WooCommerce",
                    "last_name": "User",
                    "username": "woocommerce_user",
                    "email": "[email protected]",
                    "language": "en",
                    "contact_no": null,
                    "address": null,
                    "business_id": 1,
                    "max_sales_discount_percent": null,
                    "allow_login": 1,
                    "essentials_department_id": null,
                    "essentials_designation_id": null,
                    "status": "active",
                    "crm_contact_id": null,
                    "is_cmmsn_agnt": 0,
                    "cmmsn_percent": "0.00",
                    "selected_contacts": 0,
                    "dob": null,
                    "gender": null,
                    "marital_status": null,
                    "blood_group": null,
                    "contact_number": null,
                    "fb_link": null,
                    "twitter_link": null,
                    "social_media_1": null,
                    "social_media_2": null,
                    "permanent_address": null,
                    "current_address": null,
                    "guardian_name": null,
                    "custom_field_1": null,
                    "custom_field_2": null,
                    "custom_field_3": null,
                    "custom_field_4": null,
                    "bank_details": null,
                    "id_proof_name": null,
                    "id_proof_number": null,
                    "deleted_at": null,
                    "created_at": "2018-08-02 04:05:55",
                    "updated_at": "2018-08-02 04:05:55",
                    "pivot": {
                        "contact_id": 49,
                        "user_id": 10
                    }
                }
            ]
        },
        {
            "contact_id": "CO0011",
            "name": " Lead 4  ",
            "supplier_business_name": null,
            "email": null,
            "mobile": "234567",
            "tax_number": null,
            "created_at": "2020-12-15 23:14:48",
            "custom_field1": null,
            "custom_field2": null,
            "custom_field3": null,
            "custom_field4": null,
            "custom_field5": null,
            "custom_field6": null,
            "alternate_number": null,
            "landline": null,
            "dob": null,
            "contact_status": "active",
            "type": "lead",
            "custom_field7": null,
            "custom_field8": null,
            "custom_field9": null,
            "custom_field10": null,
            "id": 50,
            "business_id": 1,
            "crm_source": "55",
            "crm_life_stage": "62",
            "address_line_1": null,
            "address_line_2": null,
            "city": null,
            "state": null,
            "country": null,
            "zip_code": null,
            "last_follow_up_id": 32,
            "upcoming_follow_up_id": null,
            "last_follow_up": "2021-01-08 16:06:00",
            "upcoming_follow_up": null,
            "last_follow_up_additional_info": "{\"call_durartion\":\"5 hour\"}",
            "upcoming_follow_up_additional_info": null,
            "source": {
                "id": 55,
                "name": "Facebook",
                "business_id": 1,
                "short_code": null,
                "parent_id": 0,
                "created_by": 1,
                "category_type": "source",
                "description": "Facebook",
                "slug": null,
                "woocommerce_cat_id": null,
                "deleted_at": null,
                "created_at": "2020-12-15 23:07:53",
                "updated_at": "2020-12-15 23:07:53"
            },
            "life_stage": {
                "id": 62,
                "name": "New",
                "business_id": 1,
                "short_code": null,
                "parent_id": 0,
                "created_by": 1,
                "category_type": "life_stage",
                "description": "New",
                "slug": null,
                "woocommerce_cat_id": null,
                "deleted_at": null,
                "created_at": "2020-12-15 23:11:26",
                "updated_at": "2020-12-15 23:11:26"
            },
            "lead_users": [
                {
                    "id": 11,
                    "user_type": "user",
                    "surname": "Mr",
                    "first_name": "Admin Essential",
                    "last_name": null,
                    "username": "admin-essentials",
                    "email": "[email protected]",
                    "language": "en",
                    "contact_no": null,
                    "address": null,
                    "business_id": 1,
                    "max_sales_discount_percent": null,
                    "allow_login": 1,
                    "essentials_department_id": null,
                    "essentials_designation_id": null,
                    "status": "active",
                    "crm_contact_id": null,
                    "is_cmmsn_agnt": 0,
                    "cmmsn_percent": "0.00",
                    "selected_contacts": 0,
                    "dob": null,
                    "gender": null,
                    "marital_status": null,
                    "blood_group": null,
                    "contact_number": null,
                    "fb_link": null,
                    "twitter_link": null,
                    "social_media_1": null,
                    "social_media_2": null,
                    "permanent_address": null,
                    "current_address": null,
                    "guardian_name": null,
                    "custom_field_1": null,
                    "custom_field_2": null,
                    "custom_field_3": null,
                    "custom_field_4": null,
                    "bank_details": null,
                    "id_proof_name": null,
                    "id_proof_number": null,
                    "deleted_at": null,
                    "created_at": "2018-01-04 02:15:19",
                    "updated_at": "2018-01-04 02:15:19",
                    "pivot": {
                        "contact_id": 50,
                        "user_id": 11
                    }
                }
            ]
        },
        {
            "contact_id": "CO0015",
            "name": " Lead kr  ",
            "supplier_business_name": null,
            "email": null,
            "mobile": "9437638555",
            "tax_number": null,
            "created_at": "2021-01-07 18:31:08",
            "custom_field1": null,
            "custom_field2": null,
            "custom_field3": null,
            "custom_field4": null,
            "custom_field5": null,
            "custom_field6": null,
            "alternate_number": null,
            "landline": null,
            "dob": "2021-01-07",
            "contact_status": "active",
            "type": "lead",
            "custom_field7": null,
            "custom_field8": null,
            "custom_field9": null,
            "custom_field10": null,
            "id": 82,
            "business_id": 1,
            "crm_source": null,
            "crm_life_stage": null,
            "address_line_1": null,
            "address_line_2": null,
            "city": null,
            "state": null,
            "country": null,
            "zip_code": null,
            "last_follow_up_id": 36,
            "upcoming_follow_up_id": null,
            "last_follow_up": "2021-01-07 18:31:08",
            "upcoming_follow_up": null,
            "last_follow_up_additional_info": "{\"call duration\":\"1 hour\",\"call descr\":\"talked to him and all okay\"}",
            "upcoming_follow_up_additional_info": null,
            "source": null,
            "life_stage": null,
            "lead_users": [
                {
                    "id": 11,
                    "user_type": "user",
                    "surname": "Mr",
                    "first_name": "Admin Essential",
                    "last_name": null,
                    "username": "admin-essentials",
                    "email": "[email protected]",
                    "language": "en",
                    "contact_no": null,
                    "address": null,
                    "business_id": 1,
                    "max_sales_discount_percent": null,
                    "allow_login": 1,
                    "essentials_department_id": null,
                    "essentials_designation_id": null,
                    "status": "active",
                    "crm_contact_id": null,
                    "is_cmmsn_agnt": 0,
                    "cmmsn_percent": "0.00",
                    "selected_contacts": 0,
                    "dob": null,
                    "gender": null,
                    "marital_status": null,
                    "blood_group": null,
                    "contact_number": null,
                    "fb_link": null,
                    "twitter_link": null,
                    "social_media_1": null,
                    "social_media_2": null,
                    "permanent_address": null,
                    "current_address": null,
                    "guardian_name": null,
                    "custom_field_1": null,
                    "custom_field_2": null,
                    "custom_field_3": null,
                    "custom_field_4": null,
                    "bank_details": null,
                    "id_proof_name": null,
                    "id_proof_number": null,
                    "deleted_at": null,
                    "created_at": "2018-01-04 02:15:19",
                    "updated_at": "2018-01-04 02:15:19",
                    "pivot": {
                        "contact_id": 82,
                        "user_id": 11
                    }
                }
            ]
        }
    ],
    "links": {
        "first": "http://local.pos.com/connector/api/crm/leads?page=1",
        "last": "http://local.pos.com/connector/api/crm/leads?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "http://local.pos.com/connector/api/crm/leads",
        "per_page": "10",
        "to": 3,
        "total": 3
    }
}
 

Request   

GET connector/api/crm/leads

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

assigned_to   string  optional  

comma separated ids of users to whom lead is assigned (Ex: 1,2,3) Example: 1,2,3

name   string  optional  

Search term for lead name Example: cumque

biz_name   string  optional  

Search term for lead's business name Example: nisi

mobile_num   integer  optional  

Search term for lead's mobile number Example: 3

contact_id   string  optional  

Search term for lead's contact_id. Ex(CO0005) Example: neque

order_by   string  optional  

Column name to sort the result, Column: name, supplier_business_name Example: tenetur

direction   string  optional  

Direction to sort the result, Required if using 'order_by', direction: desc, asc Example: desc

per_page   integer  optional  

Total records per page. default: 10, Set -1 for no pagination Example: 10

Save Call Logs

requires authentication

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/connector/api/crm/call-logs" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/crm/call-logs"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/connector/api/crm/call-logs',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST connector/api/crm/call-logs

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

call_logs   object  optional  
*   object  optional  
mobile_number   string   

Mobile number of the customer or user Example: hic

mobile_name   string  optional  

Name of the contact saved in the mobile Example: impedit

call_type   string  optional  

Call type (call, sms) Example: call

start_time   string  optional  

Start datetime of the call in "Y-m-d H:i:s" format Example: dicta

end_time   string  optional  

End datetime of the call in "Y-m-d H:i:s" format Example: quia

duration   string  optional  

Duration of the call in seconds Example: id

Cash register management

List Cash Registers

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/cash-register?status=open&user_id=10&start_date=2018-06-25&end_date=2018-06-25&location_id=1&per_page=15" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/cash-register"
);

const params = {
    "status": "open",
    "user_id": "10",
    "start_date": "2018-06-25",
    "end_date": "2018-06-25",
    "location_id": "1",
    "per_page": "15",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/cash-register',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'status' => 'open',
            'user_id' => '10',
            'start_date' => '2018-06-25',
            'end_date' => '2018-06-25',
            'location_id' => '1',
            'per_page' => '15',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "business_id": 1,
            "location_id": 1,
            "user_id": 9,
            "status": "open",
            "closed_at": null,
            "closing_amount": "0.0000",
            "total_card_slips": 0,
            "total_cheques": 0,
            "closing_note": null,
            "created_at": "2020-07-02 12:03:00",
            "updated_at": "2020-07-02 12:03:19",
            "cash_register_transactions": [
                {
                    "id": 1,
                    "cash_register_id": 1,
                    "amount": "0.0000",
                    "pay_method": "cash",
                    "type": "credit",
                    "transaction_type": "initial",
                    "transaction_id": null,
                    "created_at": "2018-07-13 07:39:34",
                    "updated_at": "2018-07-13 07:39:34"
                },
                {
                    "id": 2,
                    "cash_register_id": 1,
                    "amount": "42.5000",
                    "pay_method": "cash",
                    "type": "credit",
                    "transaction_type": "sell",
                    "transaction_id": 41,
                    "created_at": "2018-07-13 07:44:40",
                    "updated_at": "2018-07-13 07:44:40"
                }
            ]
        },
        {
            "id": 2,
            "business_id": 1,
            "location_id": 1,
            "user_id": 1,
            "status": "",
            "closed_at": "2020-07-02 12:03:00",
            "closing_amount": "0.0000",
            "total_card_slips": 0,
            "total_cheques": 0,
            "closing_note": null,
            "created_at": "2020-07-06 15:38:23",
            "updated_at": "2020-07-06 15:38:23",
            "cash_register_transactions": [
                {
                    "id": 19,
                    "cash_register_id": 2,
                    "amount": "10.0000",
                    "pay_method": "cash",
                    "type": "credit",
                    "transaction_type": "initial",
                    "transaction_id": null,
                    "created_at": "2020-07-06 15:38:23",
                    "updated_at": "2020-07-06 15:38:23"
                }
            ]
        }
    ],
    "links": {
        "first": "http://local.pos.com/connector/api/cash-register?page=1",
        "last": null,
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "path": "http://local.pos.com/connector/api/cash-register",
        "per_page": 10,
        "to": 2
    }
}
 

Request   

GET connector/api/cash-register

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

status   string  optional  

status of the register (open, close) Example: open

user_id   string  optional  

id of the user Example: 10

start_date   string  optional  

format:Y-m-d Example: 2018-06-25

end_date   string  optional  

format:Y-m-d Example: 2018-06-25

location_id   string  optional  

id of the location Example: 1

per_page   integer  optional  

Total records per page. default: 10, Set -1 for no pagination Example: 15

Create Cash Register

requires authentication

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/connector/api/cash-register" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"location_id\": 1,
    \"initial_amount\": 18.16,
    \"created_at\": \"2020-5-7 15:20:22\",
    \"closed_at\": \"2020-5-7 15:20:22\",
    \"status\": \"close\",
    \"closing_amount\": 68.9,
    \"total_card_slips\": 14,
    \"total_cheques\": 19,
    \"closing_note\": \"neque\",
    \"transaction_ids\": \"1,2,3\\n\\nresponse {\\n\\\"data\\\": {\\n\\\"status\\\": \\\"closed\\\",\\n\\\"location_id\\\": \\\"1\\\",\\n\\\"closed_at\\\": \\\"2020-07-02 12:03:00\\\",\\n\\\"business_id\\\": 1,\\n\\\"user_id\\\": 1,\\n\\\"updated_at\\\": \\\"2020-07-06 16:28:42\\\",\\n\\\"created_at\\\": \\\"2020-07-06 16:28:42\\\",\\n\\\"id\\\": 3\\n}\\n}\"
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/cash-register"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "location_id": 1,
    "initial_amount": 18.16,
    "created_at": "2020-5-7 15:20:22",
    "closed_at": "2020-5-7 15:20:22",
    "status": "close",
    "closing_amount": 68.9,
    "total_card_slips": 14,
    "total_cheques": 19,
    "closing_note": "neque",
    "transaction_ids": "1,2,3\n\nresponse {\n\"data\": {\n\"status\": \"closed\",\n\"location_id\": \"1\",\n\"closed_at\": \"2020-07-02 12:03:00\",\n\"business_id\": 1,\n\"user_id\": 1,\n\"updated_at\": \"2020-07-06 16:28:42\",\n\"created_at\": \"2020-07-06 16:28:42\",\n\"id\": 3\n}\n}"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/connector/api/cash-register',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'location_id' => 1,
            'initial_amount' => 18.16,
            'created_at' => '2020-5-7 15:20:22',
            'closed_at' => '2020-5-7 15:20:22',
            'status' => 'close',
            'closing_amount' => 68.9,
            'total_card_slips' => 14,
            'total_cheques' => 19,
            'closing_note' => 'neque',
            'transaction_ids' => '1,2,3'."\n"
                ."\n"
                .'response {'."\n"
                .'"data": {'."\n"
                .'"status": "closed",'."\n"
                .'"location_id": "1",'."\n"
                .'"closed_at": "2020-07-02 12:03:00",'."\n"
                .'"business_id": 1,'."\n"
                .'"user_id": 1,'."\n"
                .'"updated_at": "2020-07-06 16:28:42",'."\n"
                .'"created_at": "2020-07-06 16:28:42",'."\n"
                .'"id": 3'."\n"
                .'}'."\n"
                .'}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST connector/api/cash-register

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

location_id   integer   

id of the business location Example: 1

initial_amount   number  optional  

Initial amount Example: 18.16

created_at   string  optional  

Register open datetime format:Y-m-d H:i:s, Example: 2020-5-7 15:20:22

closed_at   string  optional  

Register closed datetime format:Y-m-d H:i:s, Example: 2020-5-7 15:20:22

status   register  optional  

status (open, close) Example: close

closing_amount   number  optional  

Closing amount Example: 68.9

total_card_slips   integer  optional  

total number of card slips Example: 14

total_cheques   integer  optional  

total number of checks Example: 19

closing_note   string  optional  

Closing note Example: neque

transaction_ids   string  optional  

Comma separated ids of sells associated with the register Example: `1,2,3

response { "data": { "status": "closed", "location_id": "1", "closed_at": "2020-07-02 12:03:00", "business_id": 1, "user_id": 1, "updated_at": "2020-07-06 16:28:42", "created_at": "2020-07-06 16:28:42", "id": 3 } }`

Get the specified Register

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/cash-register/1" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/cash-register/1"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/cash-register/1',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "business_id": 1,
            "location_id": 1,
            "user_id": 9,
            "status": "open",
            "closed_at": null,
            "closing_amount": "0.0000",
            "total_card_slips": 0,
            "total_cheques": 0,
            "closing_note": null,
            "created_at": "2020-07-02 12:03:00",
            "updated_at": "2020-07-02 12:03:19",
            "cash_register_transactions": [
                {
                    "id": 1,
                    "cash_register_id": 1,
                    "amount": "0.0000",
                    "pay_method": "cash",
                    "type": "credit",
                    "transaction_type": "initial",
                    "transaction_id": null,
                    "created_at": "2018-07-13 07:39:34",
                    "updated_at": "2018-07-13 07:39:34"
                },
                {
                    "id": 2,
                    "cash_register_id": 1,
                    "amount": "42.5000",
                    "pay_method": "cash",
                    "type": "credit",
                    "transaction_type": "sell",
                    "transaction_id": 41,
                    "created_at": "2018-07-13 07:44:40",
                    "updated_at": "2018-07-13 07:44:40"
                }
            ]
        }
    ]
}
 

Request   

GET connector/api/cash-register/{id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the cash register. Example: 1

cash_register   string   

comma separated ids of the cash registers Example: 59

Contact management

List contact

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/contactapi?type=adipisci&name=provident&biz_name=ad&mobile_num=14&contact_id=iste&order_by=cum&direction=itaque&per_page=10" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/contactapi"
);

const params = {
    "type": "adipisci",
    "name": "provident",
    "biz_name": "ad",
    "mobile_num": "14",
    "contact_id": "iste",
    "order_by": "cum",
    "direction": "itaque",
    "per_page": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/contactapi',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'type' => 'adipisci',
            'name' => 'provident',
            'biz_name' => 'ad',
            'mobile_num' => '14',
            'contact_id' => 'iste',
            'order_by' => 'cum',
            'direction' => 'itaque',
            'per_page' => '10',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 2,
            "business_id": 1,
            "type": "supplier",
            "supplier_business_name": "Alpha Clothings",
            "name": "Michael",
            "prefix": null,
            "first_name": "Michael",
            "middle_name": null,
            "last_name": null,
            "email": null,
            "contact_id": "CO0001",
            "contact_status": "active",
            "tax_number": "4590091535",
            "city": "Phoenix",
            "state": "Arizona",
            "country": "USA",
            "address_line_1": "Linking Street",
            "address_line_2": null,
            "zip_code": null,
            "dob": null,
            "mobile": "(378) 400-1234",
            "landline": null,
            "alternate_number": null,
            "pay_term_number": 15,
            "pay_term_type": "days",
            "credit_limit": null,
            "created_by": 1,
            "balance": "0.0000",
            "total_rp": 0,
            "total_rp_used": 0,
            "total_rp_expired": 0,
            "is_default": 0,
            "shipping_address": null,
            "position": null,
            "customer_group_id": null,
            "crm_source": null,
            "crm_life_stage": null,
            "custom_field1": null,
            "custom_field2": null,
            "custom_field3": null,
            "custom_field4": null,
            "custom_field5": null,
            "custom_field6": null,
            "custom_field7": null,
            "custom_field8": null,
            "custom_field9": null,
            "custom_field10": null,
            "deleted_at": null,
            "created_at": "2018-01-03 20:59:38",
            "updated_at": "2018-06-11 22:21:03",
            "remember_token": null,
            "password": null
        },
        {
            "id": 3,
            "business_id": 1,
            "type": "supplier",
            "supplier_business_name": "Manhattan Clothing Ltd.",
            "name": "Philip",
            "prefix": null,
            "first_name": "Philip",
            "middle_name": null,
            "last_name": null,
            "email": null,
            "contact_id": "CO0003",
            "contact_status": "active",
            "tax_number": "54869310093",
            "city": "Phoenix",
            "state": "Arizona",
            "country": "USA",
            "address_line_1": "Linking Street",
            "address_line_2": null,
            "zip_code": null,
            "dob": null,
            "mobile": "(378) 400-1234",
            "landline": null,
            "alternate_number": null,
            "pay_term_number": 15,
            "pay_term_type": "days",
            "credit_limit": null,
            "created_by": 1,
            "balance": "0.0000",
            "total_rp": 0,
            "total_rp_used": 0,
            "total_rp_expired": 0,
            "is_default": 0,
            "shipping_address": null,
            "position": null,
            "customer_group_id": null,
            "crm_source": null,
            "crm_life_stage": null,
            "custom_field1": null,
            "custom_field2": null,
            "custom_field3": null,
            "custom_field4": null,
            "custom_field5": null,
            "custom_field6": null,
            "custom_field7": null,
            "custom_field8": null,
            "custom_field9": null,
            "custom_field10": null,
            "deleted_at": null,
            "created_at": "2018-01-03 21:00:55",
            "updated_at": "2018-06-11 22:21:36",
            "remember_token": null,
            "password": null
        },
        {
            "id": 5,
            "business_id": 1,
            "type": "supplier",
            "supplier_business_name": "Digital Ocean",
            "name": "Mike McCubbin",
            "prefix": null,
            "first_name": "Mike McCubbin",
            "middle_name": null,
            "last_name": null,
            "email": null,
            "contact_id": "CN0004",
            "contact_status": "active",
            "tax_number": "52965489001",
            "city": "Phoenix",
            "state": "Arizona",
            "country": "USA",
            "address_line_1": "Linking Street",
            "address_line_2": null,
            "zip_code": null,
            "dob": null,
            "mobile": "(378) 400-1234",
            "landline": null,
            "alternate_number": null,
            "pay_term_number": 30,
            "pay_term_type": "days",
            "credit_limit": null,
            "created_by": 1,
            "balance": "0.0000",
            "total_rp": 0,
            "total_rp_used": 0,
            "total_rp_expired": 0,
            "is_default": 0,
            "shipping_address": null,
            "position": null,
            "customer_group_id": null,
            "crm_source": null,
            "crm_life_stage": null,
            "custom_field1": null,
            "custom_field2": null,
            "custom_field3": null,
            "custom_field4": null,
            "custom_field5": null,
            "custom_field6": null,
            "custom_field7": null,
            "custom_field8": null,
            "custom_field9": null,
            "custom_field10": null,
            "deleted_at": null,
            "created_at": "2018-01-06 06:53:22",
            "updated_at": "2018-06-11 22:21:47",
            "remember_token": null,
            "password": null
        },
        {
            "id": 6,
            "business_id": 1,
            "type": "supplier",
            "supplier_business_name": "Univer Suppliers",
            "name": "Jackson Hill",
            "prefix": null,
            "first_name": "Jackson Hill",
            "middle_name": null,
            "last_name": null,
            "email": null,
            "contact_id": "CO0002",
            "contact_status": "active",
            "tax_number": "5459000655",
            "city": "Phoenix",
            "state": "Arizona",
            "country": "USA",
            "address_line_1": "Linking Street",
            "address_line_2": null,
            "zip_code": null,
            "dob": null,
            "mobile": "(378) 400-1234",
            "landline": null,
            "alternate_number": null,
            "pay_term_number": 45,
            "pay_term_type": "days",
            "credit_limit": null,
            "created_by": 1,
            "balance": "0.0000",
            "total_rp": 0,
            "total_rp_used": 0,
            "total_rp_expired": 0,
            "is_default": 0,
            "shipping_address": null,
            "position": null,
            "customer_group_id": null,
            "crm_source": null,
            "crm_life_stage": null,
            "custom_field1": null,
            "custom_field2": null,
            "custom_field3": null,
            "custom_field4": null,
            "custom_field5": null,
            "custom_field6": null,
            "custom_field7": null,
            "custom_field8": null,
            "custom_field9": null,
            "custom_field10": null,
            "deleted_at": null,
            "created_at": "2018-01-06 06:55:09",
            "updated_at": "2018-06-11 22:21:18",
            "remember_token": null,
            "password": null
        }
    ],
    "links": {
        "first": "http://local.pos.com/connector/api/contactapi?page=1",
        "last": "http://local.pos.com/connector/api/contactapi?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "http://local.pos.com/connector/api/contactapi",
        "per_page": "10",
        "to": 4,
        "total": 4
    }
}
 

Request   

GET connector/api/contactapi

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

type   string   

Type of contact (supplier, customer) Example: adipisci

name   string  optional  

Search term for contact name Example: provident

biz_name   string  optional  

Search term for contact's business name Example: ad

mobile_num   integer  optional  

Search term for contact's mobile number Example: 14

contact_id   string  optional  

Search term for contact's contact_id. Ex(CO0005) Example: iste

order_by   string  optional  

Column name to sort the result, Column: name, supplier_business_name Example: cum

direction   string  optional  

Direction to sort the result, Direction: desc, asc Example: itaque

per_page   integer  optional  

Total records per page. default: 10, Set -1 for no pagination Example: 10

Create contact

requires authentication

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/connector/api/contactapi" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"type\": \"customer\",
    \"supplier_business_name\": \"veritatis\",
    \"prefix\": \"provident\",
    \"first_name\": \"eum\",
    \"middle_name\": \"enim\",
    \"last_name\": \"quisquam\",
    \"tax_number\": \"8787fefef\",
    \"pay_term_number\": 3,
    \"pay_term_type\": \"months\",
    \"mobile\": \"4578691009\",
    \"landline\": \"5487-8454-4145\",
    \"alternate_number\": \"841847541222\",
    \"address_line_1\": \"error\",
    \"address_line_2\": \"inventore\",
    \"city\": \"nihil\",
    \"state\": \"non\",
    \"country\": \"et\",
    \"zip_code\": \"rem\",
    \"customer_group_id\": \"qui\",
    \"contact_id\": \"nihil\",
    \"dob\": \"2000-06-13\",
    \"custom_field1\": \"quis\",
    \"custom_field2\": \"sunt\",
    \"custom_field3\": \"qui\",
    \"custom_field4\": \"repellat\",
    \"email\": \"[email protected]\",
    \"shipping_address\": \"tempore\",
    \"position\": \"pariatur\",
    \"opening_balance\": 0,
    \"source_id\": 11,
    \"life_stage_id\": 7,
    \"assigned_to\": [
        \"reiciendis\"
    ]
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/contactapi"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "type": "customer",
    "supplier_business_name": "veritatis",
    "prefix": "provident",
    "first_name": "eum",
    "middle_name": "enim",
    "last_name": "quisquam",
    "tax_number": "8787fefef",
    "pay_term_number": 3,
    "pay_term_type": "months",
    "mobile": "4578691009",
    "landline": "5487-8454-4145",
    "alternate_number": "841847541222",
    "address_line_1": "error",
    "address_line_2": "inventore",
    "city": "nihil",
    "state": "non",
    "country": "et",
    "zip_code": "rem",
    "customer_group_id": "qui",
    "contact_id": "nihil",
    "dob": "2000-06-13",
    "custom_field1": "quis",
    "custom_field2": "sunt",
    "custom_field3": "qui",
    "custom_field4": "repellat",
    "email": "[email protected]",
    "shipping_address": "tempore",
    "position": "pariatur",
    "opening_balance": 0,
    "source_id": 11,
    "life_stage_id": 7,
    "assigned_to": [
        "reiciendis"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/connector/api/contactapi',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'type' => 'customer',
            'supplier_business_name' => 'veritatis',
            'prefix' => 'provident',
            'first_name' => 'eum',
            'middle_name' => 'enim',
            'last_name' => 'quisquam',
            'tax_number' => '8787fefef',
            'pay_term_number' => 3.0,
            'pay_term_type' => 'months',
            'mobile' => '4578691009',
            'landline' => '5487-8454-4145',
            'alternate_number' => '841847541222',
            'address_line_1' => 'error',
            'address_line_2' => 'inventore',
            'city' => 'nihil',
            'state' => 'non',
            'country' => 'et',
            'zip_code' => 'rem',
            'customer_group_id' => 'qui',
            'contact_id' => 'nihil',
            'dob' => '2000-06-13',
            'custom_field1' => 'quis',
            'custom_field2' => 'sunt',
            'custom_field3' => 'qui',
            'custom_field4' => 'repellat',
            'email' => '[email protected]',
            'shipping_address' => 'tempore',
            'position' => 'pariatur',
            'opening_balance' => 0.0,
            'source_id' => 11,
            'life_stage_id' => 7,
            'assigned_to' => [
                'reiciendis',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "type": "customer",
        "name": "test customer",
        "tax_number": "75879BHF",
        "mobile": "7878825008",
        "business_id": 1,
        "created_by": 9,
        "credit_limit": null,
        "contact_id": "CO0007",
        "updated_at": "2020-06-04 21:59:21",
        "created_at": "2020-06-04 21:59:21",
        "id": 17
    }
}
 

Request   

POST connector/api/contactapi

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

type   string   

Type of contact (supplier, customer, both, lead) Example: customer

supplier_business_name   string   

Required if type is supplier Example: veritatis

prefix   string  optional  

Prefix for the name of the contact Example: provident

first_name   string   

Name of the contact Example: eum

middle_name   string  optional  

Example: enim

last_name   string  optional  

Example: quisquam

tax_number   string  optional  

Example: 8787fefef

pay_term_number   number  optional  

Example: 3

pay_term_type   string  optional  

(months ,days) Example: months

mobile   string   

Example: 4578691009

landline   string  optional  

Example: 5487-8454-4145

alternate_number   string  optional  

Example: 841847541222

address_line_1   string  optional  

Example: error

address_line_2   string  optional  

Example: inventore

city   string  optional  

Example: nihil

state   string  optional  

Example: non

country   string  optional  

Example: et

zip_code   string  optional  

Example: rem

customer_group_id   string  optional  

Example: qui

contact_id   string  optional  

Example: nihil

dob   string  optional  

Fromat: Y-m-d Example: 2000-06-13

custom_field1   string  optional  

Example: quis

custom_field2   string  optional  

Example: sunt

custom_field3   string  optional  

Example: qui

custom_field4   string  optional  

Example: repellat

email   string  optional  

Example: [email protected]

shipping_address   string  optional  

Example: tempore

position   string  optional  

Example: pariatur

opening_balance   number  optional  

Example: 0

source_id   integer  optional  

Id of the source. Applicable only if the type is lead Example: 11

life_stage_id   integer  optional  

Id of the Life stage. Applicable only if the type is lead Example: 7

assigned_to   string[]  optional  

Ids of the users the lead is assigned to. Applicable only if the type is lead

Get the specified contact

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/contactapi/sunt" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/contactapi/sunt"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/contactapi/sunt',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "business_id": 1,
            "type": "customer",
            "supplier_business_name": null,
            "name": " Walk-In Customer  ",
            "prefix": null,
            "first_name": "Walk-In Customer",
            "middle_name": null,
            "last_name": null,
            "email": "[email protected]",
            "contact_id": "CO0005",
            "contact_status": "active",
            "tax_number": null,
            "city": "Phoenix",
            "state": "Arizona",
            "country": "USA",
            "address_line_1": "Linking Street",
            "address_line_2": null,
            "zip_code": "85001",
            "dob": null,
            "mobile": "(378) 400-1234",
            "landline": null,
            "alternate_number": null,
            "pay_term_number": null,
            "pay_term_type": null,
            "credit_limit": "0.0000",
            "created_by": 1,
            "balance": "0.0000",
            "total_rp": 0,
            "total_rp_used": 0,
            "total_rp_expired": 0,
            "is_default": 1,
            "shipping_address": null,
            "position": null,
            "customer_group_id": null,
            "crm_source": null,
            "crm_life_stage": null,
            "custom_field1": null,
            "custom_field2": null,
            "custom_field3": null,
            "custom_field4": null,
            "deleted_at": null,
            "created_at": "2018-01-03 20:45:20",
            "updated_at": "2020-08-10 10:26:45",
            "remember_token": null,
            "password": null,
            "customer_group": null,
            "opening_balance": "0.0000",
            "opening_balance_paid": "0.0000",
            "total_purchase": "0.0000",
            "purchase_paid": "0.0000",
            "total_purchase_return": "0.0000",
            "purchase_return_paid": "0.0000",
            "total_invoice": "2050.0000",
            "invoice_received": "1987.5000",
            "total_sell_return": "0.0000",
            "sell_return_paid": "0.0000",
            "purchase_due": 0,
            "sell_due": 62.5,
            "purchase_return_due": 0,
            "sell_return_due": 0
        }
    ]
}
 

Request   

GET connector/api/contactapi/{id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the contactapi. Example: sunt

contact   string   

comma separated ids of contacts Example: 2

Update contact

requires authentication

Example request:
curl --request PUT \
    "https://pos.ultimatefosters.com/connector/api/contactapi/iure" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"type\": \"customer\",
    \"supplier_business_name\": \"ut\",
    \"prefix\": \"nihil\",
    \"first_name\": \"tenetur\",
    \"middle_name\": \"sapiente\",
    \"last_name\": \"omnis\",
    \"tax_number\": \"488744dwd\",
    \"pay_term_number\": 3,
    \"pay_term_type\": \"months\",
    \"mobile\": \"8795461009\",
    \"landline\": \"65484-848-848\",
    \"alternate_number\": \"9898795220\",
    \"address_line_1\": \"laudantium\",
    \"address_line_2\": \"nihil\",
    \"city\": \"commodi\",
    \"state\": \"ea\",
    \"country\": \"tempora\",
    \"zip_code\": \"iure\",
    \"customer_group_id\": \"molestias\",
    \"contact_id\": \"unde\",
    \"dob\": \"2000-06-13\",
    \"custom_field1\": \"delectus\",
    \"custom_field2\": \"ad\",
    \"custom_field3\": \"in\",
    \"custom_field4\": \"nihil\",
    \"email\": \"[email protected]\",
    \"shipping_address\": \"ipsum\",
    \"position\": \"eligendi\",
    \"opening_balance\": 10.3,
    \"source_id\": 16,
    \"life_stage_id\": 18,
    \"assigned_to\": [
        \"possimus\"
    ]
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/contactapi/iure"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "type": "customer",
    "supplier_business_name": "ut",
    "prefix": "nihil",
    "first_name": "tenetur",
    "middle_name": "sapiente",
    "last_name": "omnis",
    "tax_number": "488744dwd",
    "pay_term_number": 3,
    "pay_term_type": "months",
    "mobile": "8795461009",
    "landline": "65484-848-848",
    "alternate_number": "9898795220",
    "address_line_1": "laudantium",
    "address_line_2": "nihil",
    "city": "commodi",
    "state": "ea",
    "country": "tempora",
    "zip_code": "iure",
    "customer_group_id": "molestias",
    "contact_id": "unde",
    "dob": "2000-06-13",
    "custom_field1": "delectus",
    "custom_field2": "ad",
    "custom_field3": "in",
    "custom_field4": "nihil",
    "email": "[email protected]",
    "shipping_address": "ipsum",
    "position": "eligendi",
    "opening_balance": 10.3,
    "source_id": 16,
    "life_stage_id": 18,
    "assigned_to": [
        "possimus"
    ]
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'https://pos.ultimatefosters.com/connector/api/contactapi/iure',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'type' => 'customer',
            'supplier_business_name' => 'ut',
            'prefix' => 'nihil',
            'first_name' => 'tenetur',
            'middle_name' => 'sapiente',
            'last_name' => 'omnis',
            'tax_number' => '488744dwd',
            'pay_term_number' => 3.0,
            'pay_term_type' => 'months',
            'mobile' => '8795461009',
            'landline' => '65484-848-848',
            'alternate_number' => '9898795220',
            'address_line_1' => 'laudantium',
            'address_line_2' => 'nihil',
            'city' => 'commodi',
            'state' => 'ea',
            'country' => 'tempora',
            'zip_code' => 'iure',
            'customer_group_id' => 'molestias',
            'contact_id' => 'unde',
            'dob' => '2000-06-13',
            'custom_field1' => 'delectus',
            'custom_field2' => 'ad',
            'custom_field3' => 'in',
            'custom_field4' => 'nihil',
            'email' => '[email protected]',
            'shipping_address' => 'ipsum',
            'position' => 'eligendi',
            'opening_balance' => 10.3,
            'source_id' => 16,
            'life_stage_id' => 18,
            'assigned_to' => [
                'possimus',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 21,
        "business_id": 1,
        "type": "customer",
        "supplier_business_name": null,
        "name": "created from api",
        "prefix": null,
        "first_name": "created from api",
        "middle_name": null,
        "last_name": null,
        "email": null,
        "contact_id": "CO0009",
        "contact_status": "active",
        "tax_number": null,
        "city": null,
        "state": null,
        "country": null,
        "address_line_1": "test address",
        "address_line_2": null,
        "zip_code": "54878787",
        "dob": "2000-06-13",
        "mobile": "8754154872154",
        "landline": null,
        "alternate_number": null,
        "pay_term_number": null,
        "pay_term_type": null,
        "credit_limit": null,
        "created_by": 1,
        "balance": "0.0000",
        "total_rp": 0,
        "total_rp_used": 0,
        "total_rp_expired": 0,
        "is_default": 0,
        "shipping_address": null,
        "position": null,
        "customer_group_id": null,
        "crm_source": null,
        "crm_life_stage": null,
        "custom_field1": null,
        "custom_field2": null,
        "custom_field3": null,
        "custom_field4": null,
        "deleted_at": null,
        "created_at": "2020-08-10 10:41:42",
        "updated_at": "2020-08-10 10:41:42",
        "remember_token": null,
        "password": null
    }
}
 

Request   

PUT connector/api/contactapi/{id}

PATCH connector/api/contactapi/{id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the contactapi. Example: iure

contact   string   

id of the contact to be updated Example: 17

Body Parameters

type   string  optional  

Type of contact (supplier, customer, both) Example: customer

supplier_business_name   string  optional  

required* Required if type is supplier Example: ut

prefix   string  optional  

Prefix for the name of the contact Example: nihil

first_name   string   

Name of the contact Example: tenetur

middle_name   string  optional  

Example: sapiente

last_name   string  optional  

Example: omnis

tax_number   string  optional  

Example: 488744dwd

pay_term_number   number  optional  

Example: 3

pay_term_type   string  optional  

(months ,days) Example: months

mobile   string   

Example: 8795461009

landline   string  optional  

Example: 65484-848-848

alternate_number   string  optional  

Example: 9898795220

address_line_1   string  optional  

Example: laudantium

address_line_2   string  optional  

Example: nihil

city   string  optional  

Example: commodi

state   string  optional  

Example: ea

country   string  optional  

Example: tempora

zip_code   string  optional  

Example: iure

customer_group_id   string  optional  

Example: molestias

contact_id   string  optional  

Example: unde

dob   string  optional  

Fromat: Y-m-d Example: 2000-06-13

custom_field1   string  optional  

Example: delectus

custom_field2   string  optional  

Example: ad

custom_field3   string  optional  

Example: in

custom_field4   string  optional  

Example: nihil

email   string  optional  

Example: [email protected]

shipping_address   string  optional  

Example: ipsum

position   string  optional  

Example: eligendi

opening_balance   number  optional  

Example: 10.3

source_id   integer  optional  

Id of the source. Applicable only if the type is lead Example: 16

life_stage_id   integer  optional  

Id of the Life stage. Applicable only if the type is lead Example: 18

assigned_to   string[]  optional  

Ids of the users the lead is assigned to. Applicable only if the type is lead

Contact payment

requires authentication

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/connector/api/contactapi-payment" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"contact_id\": 17,
    \"amount\": 453.13,
    \"method\": \"cash\",
    \"paid_on\": \"2020-07-22 15:48:29\",
    \"account_id\": 6,
    \"card_number\": \"sunt\",
    \"card_holder_name\": \"impedit\",
    \"card_transaction_number\": \"iure\",
    \"card_type\": \"voluptas\",
    \"card_month\": \"velit\",
    \"card_year\": \"fugit\",
    \"card_security\": \"est\",
    \"transaction_no_1\": \"minus\",
    \"transaction_no_2\": \"in\",
    \"transaction_no_3\": \"sequi\",
    \"cheque_number\": \"mollitia\",
    \"bank_account_number\": \"excepturi\",
    \"note\": \"dignissimos\"
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/contactapi-payment"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "contact_id": 17,
    "amount": 453.13,
    "method": "cash",
    "paid_on": "2020-07-22 15:48:29",
    "account_id": 6,
    "card_number": "sunt",
    "card_holder_name": "impedit",
    "card_transaction_number": "iure",
    "card_type": "voluptas",
    "card_month": "velit",
    "card_year": "fugit",
    "card_security": "est",
    "transaction_no_1": "minus",
    "transaction_no_2": "in",
    "transaction_no_3": "sequi",
    "cheque_number": "mollitia",
    "bank_account_number": "excepturi",
    "note": "dignissimos"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/connector/api/contactapi-payment',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'contact_id' => 17,
            'amount' => 453.13,
            'method' => 'cash',
            'paid_on' => '2020-07-22 15:48:29',
            'account_id' => 6,
            'card_number' => 'sunt',
            'card_holder_name' => 'impedit',
            'card_transaction_number' => 'iure',
            'card_type' => 'voluptas',
            'card_month' => 'velit',
            'card_year' => 'fugit',
            'card_security' => 'est',
            'transaction_no_1' => 'minus',
            'transaction_no_2' => 'in',
            'transaction_no_3' => 'sequi',
            'cheque_number' => 'mollitia',
            'bank_account_number' => 'excepturi',
            'note' => 'dignissimos',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "amount": "20",
        "method": "cash",
        "paid_on": "2020-07-22 15:48:29",
        "created_by": 1,
        "payment_for": "19",
        "business_id": 1,
        "is_advance": 1,
        "payment_ref_no": "SP2020/0127",
        "document": null,
        "updated_at": "2020-07-22 15:48:29",
        "created_at": "2020-07-22 15:48:29",
        "id": 215
    }
}
 

Request   

POST connector/api/contactapi-payment

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

contact_id   integer   

id of the contact Example: 17

amount   number   

amount of the payment Example: 453.13

method   string  optional  

payment methods ('cash', 'card', 'cheque', 'bank_transfer', 'other', 'custom_pay_1', 'custom_pay_2', 'custom_pay_3') Example: cash

paid_on   string  optional  

transaction date format:Y-m-d H:i:s, Example: 2020-07-22 15:48:29

account_id   integer  optional  

account id Example: 6

card_number   string  optional  

Example: sunt

card_holder_name   string  optional  

Example: impedit

card_transaction_number   string  optional  

Example: iure

card_type   string  optional  

Example: voluptas

card_month   string  optional  

Example: velit

card_year   string  optional  

Example: fugit

card_security   string  optional  

Example: est

transaction_no_1   string  optional  

Example: minus

transaction_no_2   string  optional  

Example: in

transaction_no_3   string  optional  

Example: sequi

cheque_number   string  optional  

Example: mollitia

bank_account_number   string  optional  

Example: excepturi

note   string  optional  

payment note Example: dignissimos

Endpoints

Authorize a client to access the user's account.

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/oauth/token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/oauth/token"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/oauth/token',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST oauth/token

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorize a client to access the user's account.

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/oauth/authorize" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/oauth/authorize"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/oauth/authorize',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):

Show headers
content-type: application/json
cache-control: no-cache, private
set-cookie: XSRF-TOKEN=eyJpdiI6InhoTGlHSWZsUVRSOHNtMW1LNHdIVlE9PSIsInZhbHVlIjoiMFY4d3p1cnJ1NExHWkJXWjA5Tjd0Mk5KRkJsdzBCTFF6bUhDejB2dklaQnpJSVFaUFk4UCtNYkhCRExYaW9MZTh4dHlWTzdrMkhyZUNBcUlicTRkQ1hiZ0Z1QUZPSEpnV3pHWVMxdnl4RXRtRm8rUTY4R1d1eVFwSVVqbStoNUwiLCJtYWMiOiJlZWMxOTM0NWFkZjc1NGI0ZDNlYzZjZGFiYTkwOGZiMGRkZWRiMTBkYWU1ZWRkNzM2OGUwMjExM2E2MzhmODQ4IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:26 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6IlhJeFduWURKL0JtWFFQMlFndnI2UEE9PSIsInZhbHVlIjoiWW13MXZUd245bTUveU5SVHY4NGVvajcwUkluZzU4cFIvdkhQdldqRGJXNU1Dd01yMUh4blJ5WWY2cjhBb2JJSG5YZHlZejlFWitYblM5NzNxZzc0WTZxNGp2eDBCYlBaVXVaajVpOHZoQlpidWVOTStGZ1c4aXdVeTdEdWZMaXQiLCJtYWMiOiI3NTQwYTQ2OTE3MWI2NTBlOWRkYTU4N2YyNTU5M2RmYjljZWE5YmVhYzcxNjFjZGNkNWE5Yjg0NDRjYjViMzc5IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:26 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "error": "unsupported_grant_type",
    "error_description": "The authorization grant type is not supported by the authorization server.",
    "hint": "Check that all required parameters have been provided",
    "message": "The authorization grant type is not supported by the authorization server."
}
 

Request   

GET oauth/authorize

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Get a fresh transient token cookie for the authenticated user.

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/oauth/token/refresh" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/oauth/token/refresh"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/oauth/token/refresh',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST oauth/token/refresh

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Approve the authorization request.

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/oauth/authorize" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/oauth/authorize"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/oauth/authorize',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST oauth/authorize

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Deny the authorization request.

Example request:
curl --request DELETE \
    "https://pos.ultimatefosters.com/oauth/authorize" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/oauth/authorize"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://pos.ultimatefosters.com/oauth/authorize',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

DELETE oauth/authorize

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Get all of the authorized tokens for the authenticated user.

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/oauth/tokens" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/oauth/tokens"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/oauth/tokens',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
set-cookie: XSRF-TOKEN=eyJpdiI6InljUWErSmE0MGxsNm91K00rWUNnZWc9PSIsInZhbHVlIjoiQk94alZta3JLc1F2UWY4YkVhK3JoWVFjYjNFdmJld0pvU25xNTFVSVJDdE9OOGhzSWpVdXJ1bUVSTExIZjYwcXpsZ1hvZmEzK01oelRyRk1GekZLb2s2MlBjWlJtcEZmV09ycWZmcENmd3RNQllxNWd5MFpQZ0F0NkFpRTZNR24iLCJtYWMiOiIxNTZjNTUyOTY5MTJkNmQ2NDFiZGE3MWVhZTM2YjYzYzRkNGY0YzBlZTY4YmI0OWVhMTYwZmEzZmQzNjA4MmJhIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:26 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6ImRiWFNoTUorMzM1aHBiN1N1UEVqOVE9PSIsInZhbHVlIjoicmtqODdKWjRXMHBkTzBVZHVjZkh1RTBJUi9iMFZCZ1h6cDJtWkxEbWpKY2FxUSt6MWhSK2RxYWZ1QjZzbFhaamdQa00rczBteFZkWSt2Z0sxS1FIUUw5a1Rrd1lzUkF6QS9kaU1BS0NxTlhuWnA5U3JVdXYxbkwyU3dRK2hhcWEiLCJtYWMiOiIxNzY3MGM4ZGM5YzhmNzBjMjVmN2QyYmZhMDFmZWE0Y2YwOTc5NGYxMTUzYmI0NDdkMmZkNWM5OGFjYjBlZGNjIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:26 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "message": "Unauthenticated."
}
 

Request   

GET oauth/tokens

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Delete the given token.

Example request:
curl --request DELETE \
    "https://pos.ultimatefosters.com/oauth/tokens/et" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/oauth/tokens/et"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://pos.ultimatefosters.com/oauth/tokens/et',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

DELETE oauth/tokens/{token_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

token_id   string   

The ID of the token. Example: et

Get all of the clients for the authenticated user.

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/oauth/clients" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/oauth/clients"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/oauth/clients',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
set-cookie: XSRF-TOKEN=eyJpdiI6IitBc0NJU3hjZG8rRHpVa1Q0ZDVuaUE9PSIsInZhbHVlIjoiYzJKQkJLS3M2V09pVExOOHN0RngydWVKS3ZzY09td1pPZUYwdEdYNzd5Q0srd0Y4MS9tQ2R3bVFXcWlvRFZ6SXFiNEVUVHU2ZnVwMzEvUWhHaHU4Z3ZWR0VCUmVSQUI5QnU4bklDK1RlMThGM2NvSEQ2NS8vVnYyaUt3d3FNYjkiLCJtYWMiOiJjMWEyNGE5ODVkMDg1NWJiMDVlMDkxYzc3MmRmYzE4NjdlMzg4ODNlOTAyYjk0NTMxZmFhY2VhZTU4NjdjMmYyIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:26 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6IlpDUnd2SEhyN2wrZXhtdFc4TkFxUlE9PSIsInZhbHVlIjoiU1ZnUWxpNVp6M3NXZXpkbWF0N1M5MjVDODlud3JoaGxJYnRGbjJESW90QXdtbEtHeFdWVEN2UnJrRG1WSmVqZnhiWXgwZFI2MkpBT1RHT1UwSjVMZ0Faam5HT2JNUkFreXRRemRXNDhjWjc4SVYwMTY5ZHJjekRTaHVDOFdaN2wiLCJtYWMiOiJlMzJjYzExYTVjNzU2OTc4MWI5YjExZTQ0ZDExZmJkZDlmNjZkYzFkMGViYmFiNDIyZDFhMjhmNWU2NDVlZWI3IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:26 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "message": "Unauthenticated."
}
 

Request   

GET oauth/clients

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Store a new client.

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/oauth/clients" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/oauth/clients"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/oauth/clients',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST oauth/clients

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Update the given client.

Example request:
curl --request PUT \
    "https://pos.ultimatefosters.com/oauth/clients/soluta" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/oauth/clients/soluta"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'https://pos.ultimatefosters.com/oauth/clients/soluta',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

PUT oauth/clients/{client_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

client_id   string   

The ID of the client. Example: soluta

Delete the given client.

Example request:
curl --request DELETE \
    "https://pos.ultimatefosters.com/oauth/clients/et" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/oauth/clients/et"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://pos.ultimatefosters.com/oauth/clients/et',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

DELETE oauth/clients/{client_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

client_id   string   

The ID of the client. Example: et

Get all of the available scopes for the application.

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/oauth/scopes" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/oauth/scopes"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/oauth/scopes',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
set-cookie: XSRF-TOKEN=eyJpdiI6Ik5aZyttZUJST0kxTUVLeHgvZmZ6Tmc9PSIsInZhbHVlIjoiTUR0RStUUFA2cjRVaUU1ZlphOGxEMjZQZDAzSkd2ZTdkanVtRUprK3NxUTlsdHBKendSMVFpeTN1bldqM2pwbE55YnYxZ3YyZEwyQUI2aWNDNExvb0JKdlVlV0djczJTY2NoZnFQRHFPRzdqY2VhUTIwaDFEakNJcUxCS2FTaGoiLCJtYWMiOiJiZWIwMGNlY2NjYTgyMDY1YTc0YTNkOWY3ZTkwNGJjMTM5N2VjYmNjMjllNWQ5YWVhNjIyNzdiZjE5ODcwM2RjIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:26 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6Ii95TnNObWdrQ3A0dEgxVUhFMnIyNUE9PSIsInZhbHVlIjoiTWZIdWdlTHZVZXFNVEVBMHVZbFB3YkN4czFVS21OWE40QzBLYjkrV3FCdll1Y0xhb0crVjJOREZiZm5SUmVhZ2g5cXE3UmZSZjFWR2JIdXFQMVNDUVlEOVFHRmdqSVg5ZksvbEgzN0s3KzBwMXdMYkJnLzVSTnFJK05yMU1ISTYiLCJtYWMiOiI2OWEyMzBjZDU0NjhiZDZiNTIzMDEyYWZkNTIyN2EzMzc0NTYzYzMwMjYwYWUzMmE1MzY4OGMwOWFlZjg3ZmFlIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:26 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "message": "Unauthenticated."
}
 

Request   

GET oauth/scopes

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Get all of the personal access tokens for the authenticated user.

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/oauth/personal-access-tokens" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/oauth/personal-access-tokens"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/oauth/personal-access-tokens',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
set-cookie: XSRF-TOKEN=eyJpdiI6IndMd0Z6ZWd2RnJKemFuWElITnk2MUE9PSIsInZhbHVlIjoiMngzZ1VqRDlDVTFQeExvU0ZPRkt2VERmc0lydkxtQ28reHVvMDF4ZE9IV0dZdUN0cU5ySmVSeGJ1Z2hLMDFWaEIzL2gwaVlxd01ldnFFUElLZUxOS3JLaE9udEhCRWxEYmFoeStVL0ZWUmhSMFZURkxaUTRYamZlMTN0WThOTVciLCJtYWMiOiIxNzhmZTBkNjM1Y2Y4MTE4ZjQ1Yzk5OTk2OTY3MjE5ZjFkODU5ZTQ5ZTEzMjljOWQ3ZGFkZTk3OWUxMjQ3NGY0IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:26 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6IlVoM1Ard0FnMFRGbXhGTEVYU3JMcHc9PSIsInZhbHVlIjoiMWQ5NHV6ek4rSTZnQ25FZlJmS2IwamJoNEdlZEtOQXc4aG1VLzdCQjN0US8wWm01Zm1pTS9saHFzTGdBU0k5MWE0Rng4T0lVUzJBNVZoR3haN09VdHd5eUk0ZGJyeDVSU1RXN3lCWE1WWXFzU1J3V1d3NlI4dFlmbHQ2cENsWEoiLCJtYWMiOiIxYjE2YmJhN2E5NzRjODAyYWY1NjhiYWNmNGQzYjRkYjE5ZDdiMDhhNjkzNGJjODU1NzU1YWQ0MzQ3OTM0NTAyIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:26 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "message": "Unauthenticated."
}
 

Request   

GET oauth/personal-access-tokens

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Create a new personal access token for the user.

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/oauth/personal-access-tokens" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/oauth/personal-access-tokens"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/oauth/personal-access-tokens',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST oauth/personal-access-tokens

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Delete the given token.

Example request:
curl --request DELETE \
    "https://pos.ultimatefosters.com/oauth/personal-access-tokens/dignissimos" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/oauth/personal-access-tokens/dignissimos"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://pos.ultimatefosters.com/oauth/personal-access-tokens/dignissimos',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

DELETE oauth/personal-access-tokens/{token_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

token_id   string   

The ID of the token. Example: dignissimos

List payment accounts

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/payment-accounts" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/payment-accounts"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/payment-accounts',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "business_id": 1,
            "name": "Test Account",
            "account_number": "8746888847455",
            "account_type_id": 0,
            "note": null,
            "created_by": 9,
            "is_closed": 0,
            "deleted_at": null,
            "created_at": "2020-06-04 21:34:21",
            "updated_at": "2020-06-04 21:34:21"
        }
    ]
}
 

Request   

GET connector/api/payment-accounts

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

List payment methods

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/payment-methods" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/payment-methods"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/payment-methods',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "cash": "Cash",
    "card": "Card",
    "cheque": "Cheque",
    "bank_transfer": "Bank Transfer",
    "other": "Other",
    "custom_pay_1": "Custom Payment 1",
    "custom_pay_2": "Custom Payment 2",
    "custom_pay_3": "Custom Payment 3"
}
 

Request   

GET connector/api/payment-methods

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Get business details

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/business-details" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/business-details"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/business-details',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 1,
        "name": "Awesome Shop",
        "currency_id": 2,
        "start_date": "2018-01-01",
        "tax_number_1": "3412569900",
        "tax_label_1": "GSTIN",
        "tax_number_2": null,
        "tax_label_2": null,
        "default_sales_tax": null,
        "default_profit_percent": 25,
        "owner_id": 1,
        "time_zone": "America/Phoenix",
        "fy_start_month": 1,
        "accounting_method": "fifo",
        "default_sales_discount": "10.00",
        "sell_price_tax": "includes",
        "logo": null,
        "sku_prefix": "AS",
        "enable_product_expiry": 0,
        "expiry_type": "add_expiry",
        "on_product_expiry": "keep_selling",
        "stop_selling_before": 0,
        "enable_tooltip": 1,
        "purchase_in_diff_currency": 0,
        "purchase_currency_id": null,
        "p_exchange_rate": "1.000",
        "transaction_edit_days": 30,
        "stock_expiry_alert_days": 30,
        "keyboard_shortcuts": {
            "pos": {
                "express_checkout": "shift+e",
                "pay_n_ckeckout": "shift+p",
                "draft": "shift+d",
                "cancel": "shift+c",
                "recent_product_quantity": "f2",
                "weighing_scale": null,
                "edit_discount": "shift+i",
                "edit_order_tax": "shift+t",
                "add_payment_row": "shift+r",
                "finalize_payment": "shift+f",
                "add_new_product": "f4"
            }
        },
        "pos_settings": {
            "amount_rounding_method": null,
            "disable_pay_checkout": 0,
            "disable_draft": 0,
            "disable_express_checkout": 0,
            "hide_product_suggestion": 0,
            "hide_recent_trans": 0,
            "disable_discount": 0,
            "disable_order_tax": 0,
            "is_pos_subtotal_editable": 0
        },
        "weighing_scale_setting": {
            "label_prefix": null,
            "product_sku_length": "4",
            "qty_length": "3",
            "qty_length_decimal": "2"
        },
        "manufacturing_settings": null,
        "essentials_settings": null,
        "ecom_settings": null,
        "woocommerce_wh_oc_secret": null,
        "woocommerce_wh_ou_secret": null,
        "woocommerce_wh_od_secret": null,
        "woocommerce_wh_or_secret": null,
        "enable_brand": 1,
        "enable_category": 1,
        "enable_sub_category": 1,
        "enable_price_tax": 1,
        "enable_purchase_status": 1,
        "enable_lot_number": 0,
        "default_unit": null,
        "enable_sub_units": 0,
        "enable_racks": 0,
        "enable_row": 0,
        "enable_position": 0,
        "enable_editing_product_from_purchase": 1,
        "sales_cmsn_agnt": null,
        "item_addition_method": 1,
        "enable_inline_tax": 1,
        "currency_symbol_placement": "before",
        "enabled_modules": [
            "purchases",
            "add_sale",
            "pos_sale",
            "stock_transfers",
            "stock_adjustment",
            "expenses",
            "account",
            "tables",
            "modifiers",
            "service_staff",
            "booking",
            "kitchen",
            "subscription",
            "types_of_service"
        ],
        "date_format": "m/d/Y",
        "time_format": "24",
        "ref_no_prefixes": {
            "purchase": "PO",
            "purchase_return": null,
            "stock_transfer": "ST",
            "stock_adjustment": "SA",
            "sell_return": "CN",
            "expense": "EP",
            "contacts": "CO",
            "purchase_payment": "PP",
            "sell_payment": "SP",
            "expense_payment": null,
            "business_location": "BL",
            "username": null,
            "subscription": null
        },
        "theme_color": null,
        "created_by": null,
        "enable_rp": 0,
        "rp_name": null,
        "amount_for_unit_rp": "1.0000",
        "min_order_total_for_rp": "1.0000",
        "max_rp_per_order": null,
        "redeem_amount_per_unit_rp": "1.0000",
        "min_order_total_for_redeem": "1.0000",
        "min_redeem_point": null,
        "max_redeem_point": null,
        "rp_expiry_period": null,
        "rp_expiry_type": "year",
        "repair_settings": null,
        "email_settings": {
            "mail_driver": "smtp",
            "mail_host": null,
            "mail_port": null,
            "mail_username": null,
            "mail_password": null,
            "mail_encryption": null,
            "mail_from_address": null,
            "mail_from_name": null
        },
        "sms_settings": {
            "url": null,
            "send_to_param_name": "to",
            "msg_param_name": "text",
            "request_method": "post",
            "param_1": null,
            "param_val_1": null,
            "param_2": null,
            "param_val_2": null,
            "param_3": null,
            "param_val_3": null,
            "param_4": null,
            "param_val_4": null,
            "param_5": null,
            "param_val_5": null,
            "param_6": null,
            "param_val_6": null,
            "param_7": null,
            "param_val_7": null,
            "param_8": null,
            "param_val_8": null,
            "param_9": null,
            "param_val_9": null,
            "param_10": null,
            "param_val_10": null
        },
        "custom_labels": {
            "payments": {
                "custom_pay_1": null,
                "custom_pay_2": null,
                "custom_pay_3": null
            },
            "contact": {
                "custom_field_1": null,
                "custom_field_2": null,
                "custom_field_3": null,
                "custom_field_4": null
            },
            "product": {
                "custom_field_1": null,
                "custom_field_2": null,
                "custom_field_3": null,
                "custom_field_4": null
            },
            "location": {
                "custom_field_1": null,
                "custom_field_2": null,
                "custom_field_3": null,
                "custom_field_4": null
            },
            "user": {
                "custom_field_1": null,
                "custom_field_2": null,
                "custom_field_3": null,
                "custom_field_4": null
            },
            "purchase": {
                "custom_field_1": null,
                "custom_field_2": null,
                "custom_field_3": null,
                "custom_field_4": null
            },
            "sell": {
                "custom_field_1": null,
                "custom_field_2": null,
                "custom_field_3": null,
                "custom_field_4": null
            },
            "types_of_service": {
                "custom_field_1": null,
                "custom_field_2": null,
                "custom_field_3": null,
                "custom_field_4": null
            }
        },
        "common_settings": {
            "default_datatable_page_entries": "25"
        },
        "is_active": 1,
        "created_at": "2018-01-04 02:15:19",
        "updated_at": "2020-06-04 22:33:01",
        "locations": [
            {
                "id": 1,
                "business_id": 1,
                "location_id": null,
                "name": "Awesome Shop",
                "landmark": "Linking Street",
                "country": "USA",
                "state": "Arizona",
                "city": "Phoenix",
                "zip_code": "85001",
                "invoice_scheme_id": 1,
                "invoice_layout_id": 1,
                "selling_price_group_id": null,
                "print_receipt_on_invoice": 1,
                "receipt_printer_type": "browser",
                "printer_id": null,
                "mobile": null,
                "alternate_number": null,
                "email": null,
                "website": null,
                "featured_products": [
                    "5",
                    "71"
                ],
                "is_active": 1,
                "default_payment_accounts": {
                    "cash": {
                        "is_enabled": "1",
                        "account": null
                    },
                    "card": {
                        "is_enabled": "1",
                        "account": null
                    },
                    "cheque": {
                        "is_enabled": "1",
                        "account": null
                    },
                    "bank_transfer": {
                        "is_enabled": "1",
                        "account": null
                    },
                    "other": {
                        "is_enabled": "1",
                        "account": null
                    },
                    "custom_pay_1": {
                        "is_enabled": "1",
                        "account": null
                    },
                    "custom_pay_2": {
                        "is_enabled": "1",
                        "account": null
                    },
                    "custom_pay_3": {
                        "is_enabled": "1",
                        "account": null
                    }
                },
                "custom_field1": null,
                "custom_field2": null,
                "custom_field3": null,
                "custom_field4": null,
                "deleted_at": null,
                "created_at": "2018-01-04 02:15:20",
                "updated_at": "2020-06-05 00:56:54"
            }
        ],
        "currency": {
            "id": 2,
            "country": "America",
            "currency": "Dollars",
            "code": "USD",
            "symbol": "$",
            "thousand_separator": ",",
            "decimal_separator": ".",
            "created_at": null,
            "updated_at": null
        },
        "printers": [],
        "currency_precision": 2,
        "quantity_precision": 2
    }
}
 

Request   

GET connector/api/business-details

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Get profit and loss report

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/profit-loss-report?location_id=1&start_date=2018-06-25&end_date=2018-06-25&user_id=1" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/profit-loss-report"
);

const params = {
    "location_id": "1",
    "start_date": "2018-06-25",
    "end_date": "2018-06-25",
    "user_id": "1",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/profit-loss-report',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'location_id' => '1',
            'start_date' => '2018-06-25',
            'end_date' => '2018-06-25',
            'user_id' => '1',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "total_purchase_shipping_charge": 0,
        "total_sell_shipping_charge": 0,
        "total_transfer_shipping_charges": "0.0000",
        "opening_stock": 0,
        "closing_stock": "386859.00000000",
        "total_purchase": 386936,
        "total_purchase_discount": "0.000000000000",
        "total_purchase_return": "0.0000",
        "total_sell": 9764.5,
        "total_sell_discount": "11.550000000000",
        "total_sell_return": "0.0000",
        "total_sell_round_off": "0.0000",
        "total_expense": "0.0000",
        "total_adjustment": "0.0000",
        "total_recovered": "0.0000",
        "total_reward_amount": "0.0000",
        "left_side_module_data": [
            {
                "value": "0.0000",
                "label": "Total Payroll",
                "add_to_net_profit": true
            },
            {
                "value": 0,
                "label": "Total Production Cost",
                "add_to_net_profit": true
            }
        ],
        "right_side_module_data": [],
        "net_profit": 9675.95,
        "gross_profit": -11.55,
        "total_sell_by_subtype": []
    }
}
 

Request   

GET connector/api/profit-loss-report

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

location_id   string  optional  

optional id of the location Example: 1

start_date   string  optional  

optional format:Y-m-d Example: 2018-06-25

end_date   string  optional  

optional format:Y-m-d Example: 2018-06-25

user_id   string  optional  

optional id of the user Example: 1

Get product current stock

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/product-stock-report" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/product-stock-report"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/product-stock-report',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "total_sold": null,
            "total_transfered": null,
            "total_adjusted": null,
            "stock_price": null,
            "stock": null,
            "sku": "AS0001",
            "product": "Men's Reverse Fleece Crew",
            "type": "single",
            "product_id": 1,
            "unit": "Pc(s)",
            "enable_stock": 1,
            "unit_price": "143.0000",
            "product_variation": "DUMMY",
            "variation_name": "DUMMY",
            "location_name": null,
            "location_id": null,
            "variation_id": 1
        },
        {
            "total_sold": "50.0000",
            "total_transfered": null,
            "total_adjusted": null,
            "stock_price": "3850.00000000",
            "stock": "50.0000",
            "sku": "AS0002-1",
            "product": "Levis Men's Slimmy Fit Jeans",
            "type": "variable",
            "product_id": 2,
            "unit": "Pc(s)",
            "enable_stock": 1,
            "unit_price": "77.0000",
            "product_variation": "Waist Size",
            "variation_name": "28",
            "location_name": "Awesome Shop",
            "location_id": 1,
            "variation_id": 2
        },
        {
            "total_sold": "60.0000",
            "total_transfered": null,
            "total_adjusted": null,
            "stock_price": "6930.00000000",
            "stock": "90.0000",
            "sku": "AS0002-2",
            "product": "Levis Men's Slimmy Fit Jeans",
            "type": "variable",
            "product_id": 2,
            "unit": "Pc(s)",
            "enable_stock": 1,
            "unit_price": "77.0000",
            "product_variation": "Waist Size",
            "variation_name": "30",
            "location_name": "Awesome Shop",
            "location_id": 1,
            "variation_id": 3
        }
    ],
    "links": {
        "first": "http://local.pos.com/connector/api/product-stock-report?page=1",
        "last": "http://local.pos.com/connector/api/product-stock-report?page=22",
        "prev": null,
        "next": "http://local.pos.com/connector/api/product-stock-report?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 22,
        "path": "http://local.pos.com/connector/api/product-stock-report",
        "per_page": 3,
        "to": 3,
        "total": 66
    }
}
 

Request   

GET connector/api/product-stock-report

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Get notifications

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/notifications" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/notifications"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/notifications',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "msg": "Payroll for August/2020 added by Mr. Super Admin. Reference No. 2020/0002",
            "icon_class": "fas fa-money-bill-alt bg-green",
            "link": "http://local.pos.com/hrm/payroll",
            "read_at": null,
            "created_at": "3 hours ago"
        }
    ]
}
 

Request   

GET connector/api/notifications

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Get location details from coordinates

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/get-location" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"lat\": \"41.40338\",
    \"lon\": \"2.17403\"
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/get-location"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "lat": "41.40338",
    "lon": "2.17403"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/get-location',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'lat' => '41.40338',
            'lon' => '2.17403',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "address": "Radhanath Mullick Ln, Tiretta Bazaar, Bow Bazaar, Kolkata, West Bengal, 700 073, India"
}
 

Request   

GET connector/api/get-location

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

lat   decimal   

Lattitude of the location Example: 41.40338

lon   decimal   

Longitude of the location Example: 2.17403

Install

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/install" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/install"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/install',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
set-cookie: XSRF-TOKEN=eyJpdiI6InI3RGN3UVI0OHI5RVRKZ0NpQkhTNkE9PSIsInZhbHVlIjoiTXhReUxXMDV1ekNscGF2Qmd4RVAzVlFrS05DR1NoU1E2emlGb3gza2dUVDVPL0JFMlZ5UFlCK2NEWm1jTndLUDBYbXMyZjV2cjVVUTRpaUE4T2xtZFRZSnU1TWJOLzByZ1U5bzlTcm9vL2M2Ui9seEhEQ1NWQ0M4QmdNRmdlQW4iLCJtYWMiOiIzMjAwYWQwYmU0NDA5NmFkYzNjN2QzMzQyODI0Njg3MjkxNGJhYWE2ODRkODhlMTA3ZDkwMmI3MTY5MjMyZDk4IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6IkJPTklQOHhEeVlmUDlkaTYxWVV5SEE9PSIsInZhbHVlIjoiL1VXTm5VVkpLVm5aV2U2N2JXcTB6ZVFzWGF6NkF3WWVyS1hmZWpRcTRtdGVnVHpjdE9PNVBGc1lwNEZyaTE0ajlIOG9ObXJwaXBkQkVnRFNNd2xxR21Qb1BlVi91b2ViWXJGR2lSd25ISDlKRzRtdHp2alZMbUl0aWFROHc3V0oiLCJtYWMiOiJmZDg2NjNlOWIzMzBiZDBmNjkyODI5OTk5YmE1YWIwODFiMGRkODQ2MmYwNjU2N2VjNDhlNzIxMmUzZWM3MjgwIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "message": "Unauthenticated."
}
 

Request   

GET connector/install

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Installing Connector Module

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/connector/install" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/install"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/connector/install',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST connector/install

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Uninstall

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/install/uninstall" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/install/uninstall"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/install/uninstall',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
set-cookie: XSRF-TOKEN=eyJpdiI6ImVKanA1ai9IWk5WZEU1cUFBNG44bWc9PSIsInZhbHVlIjoiODRydnBqdDIrcjliamk2TjNvdEUyUXlDd0tQTFVBa1FGU1hkSWRWYzMwVjVaMEo5ZFkwNWhsSmZnVHJXak4vcWhqdUZKNTNXbGwvaW51Q21ZR0xjNlhjUUhvQ1duSVVsek1rd2RrMkFXeUNPQitsRFNvSm1KR05uaHc1R0twVGYiLCJtYWMiOiI1NzU3YTRmMDNkN2RkNGFiZTE4MjA0NTUwMWZiZjVmMGQ3ZGNjZmEwMWYxZWRhMTBlNDU3OGJiYzc1ZDc0Y2NmIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6IlB0U1hMY1I4Qi9IWjVWRDdYSHVMNFE9PSIsInZhbHVlIjoiT0UwWGtnRjV1Z3g0Y3BlMEZocE1vdWNBMVpWeVpIS3k2M292UFBteTlYZkNydmcxcDhQTDNNQm1PQVEzZFZZa3kwaG1UY2Z3cU9Bb09jK2lPWkpLc21qem9UYlJORmFBNy92ZFBxSzNHMC9uRkZpazhVSDUvSTlYeG8xUXFlWVUiLCJtYWMiOiIyYjQwOGQ2YmI2NGNmMzZjYTBkMmRhNzMxNWUwY2VkZDI5Mjc4ZjNkNDU3MTJlNTk1NTI2NmUwNWRmMGU3Njg5IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "message": "Unauthenticated."
}
 

Request   

GET connector/install/uninstall

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

update module

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/install/update" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/install/update"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/install/update',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
set-cookie: XSRF-TOKEN=eyJpdiI6Ijg0NHFPcEwrL0FxbC9SZTNMZlFsVGc9PSIsInZhbHVlIjoiOXhNYlVEczM2TGtRQzZ6dVlyNUlMQVlEMTVoSmg1OXpRNHhXNHdyK09LdWlnaTJwRG5wdGtrNFFqUk5rUHU5akExcVliVXRmYndGcGJUZ0JXd05qM1p4TnJTSnVrdk9zQkFLQ3ZWUVE5UXAxWDF5YklkZVlzTmxTdHYyaURMWjYiLCJtYWMiOiI5NDZkNWI3ODBkNjQ0ZDQ0NmFiYjMxMTk2OTUwYmEzZTBiMWNmOWUzYmVlNWQ1N2IzZDY1NTRmOWM0MGRiYzZiIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6InVSS2htTVo2bFN1OUMzU3QrNkx0Z1E9PSIsInZhbHVlIjoiS2xPZmxQTW9zbGIwK3dtNEZIcGo3L2FJWXZpM0N2dHZaTTkrdnl1QmRWSG1TTVY0VmViQkRzblRxQm80RmVwMFQrMzNJWW9nUXF4dGJBTFJ3VzlIRUpaYkRub24xUnp4MjUyWFRMRTk3ZlNkak54QzBGZDNNa0VpU3pJU2VlTmIiLCJtYWMiOiJkMmRlNjVlYWJjN2QxNjI0OWU3OWQ3ZDdiMWE4NDA2OTU3ZjFiOTVkNmY3YmJiMWEyZDg0NmUzNGVhOWYwN2I0IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "message": "Unauthenticated."
}
 

Request   

GET connector/install/update

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Display a listing of the resource.

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
set-cookie: XSRF-TOKEN=eyJpdiI6Ik12Y1FnSmNhSUpGVnYxWG51UldQOGc9PSIsInZhbHVlIjoiZEJNUm5QV2FnSTFCS3VZaXVJR3lXMGJWcHVEWmNBZ3BoMldpbnNBOEMvRHNGNzVOZmpGMnlpYWZRbk1JZUxsdjFRZC9VeXdIMzRjeWFQbFBxTm12dUw1b0NzcW9pbnZMZjNyVWtUUTljYmFLSXhYeUVDb2hqZWhvMSt6TTVmSUMiLCJtYWMiOiI0MTAxMjM0YTY2ODgyNGZkYmFkYjM0MGI4ZjIxMzI3N2M4YTc3NTcyNDFiNzg3N2JjMmQ5ODM5ZDQxMWU0ZjM5IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6IjhaTDNJMTVscHhNNWtBUEozRm4vWlE9PSIsInZhbHVlIjoiZkxLdU9hVDJWRUt1OWdiOWdEdHd3MEF0QVNMNnFBNENjM3dZc3RDMEZlRFFRN2locjFqV0ZFNFBBL2EzYjNXR0QrTzIwSUdHTmhXT01zbmdaajJ3VVVIdUpxN1NvR2E2N3F0SDYwd2toNjI5OERUbXRIMUdBZHBiSDBBR0UwdmQiLCJtYWMiOiIzNDVkMzJiZTk5NjM2ZDcxZjc0Y2Y0ZTNmZDc1YWExZWZjMTkzOWMxMGZhZjg1MzIzMDgxYzdkOTQxNDI5NTBmIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "message": "Unauthenticated."
}
 

Request   

GET connector/api

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Display a listing of the resource.

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/client" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/client"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/client',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
set-cookie: XSRF-TOKEN=eyJpdiI6ImVJNHE4UDlha0hISGJMNm4yczBCUHc9PSIsInZhbHVlIjoiVlVsOFBaT0RGVHJhUE1zYWJqMEZLeG9WSDc5cFFVZUpIb0NMdlYzUEIvN2FIZjV0NGRDZUFQeXF6bFg1WVhXUHBFRU5qQ29xVEExRU5TMkdHRnIyVytld3lKeXlTQmdTc3JTY2MrRTk4d21hMlpxMHgzYmJ6N2FCMU5yTTRTeTciLCJtYWMiOiIzNTMxY2E0Nzc1NmYwNzIxNTQ1YjlmZDJmODE0NTNhMDQ1MzQwMmY2ZmY3MzI5NTUyYjZjYzI5N2U2ODgxYTE3IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6Ik1GMldhejc4MHRTbFBnT3ptQythelE9PSIsInZhbHVlIjoiQ29EYWRXSnF0ZkwxcHdOM2NGdkZSVmZvUXBzcnQ2NlJUU00vZ1JSaThGSWs3UHFGcnJGRDlROVVwMHZSU0xxQXhXeHBEa0ZSSFhSeUFDNVRNZWd6eVhrSFQvZVFYaXZqSW8yOXY0VzNUL0lVR0VTNXdLa0gxUXVTNUx1OE4rY2oiLCJtYWMiOiIwNmJjNGQ4MDA4NWU4YzcyZmQ4ZjBiYjJiNmMxMjZmNjBjNmMzNGY0MTFhOWQ1MzcwY2NmOGJkZjRhNTg1MmVjIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "message": "Unauthenticated."
}
 

Request   

GET connector/client

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Show the form for creating a new resource.

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/client/create" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/client/create"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/client/create',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
set-cookie: XSRF-TOKEN=eyJpdiI6Iml2bFhsL1NEL051dFYzUXlaQmVCQ3c9PSIsInZhbHVlIjoidjVSekxHT0FaOGo1S3BoWE5Ba1ZYWktjcDhNMGpBUjZYcFRsMUs4aGdkN3VQQXVrTXJ2ZXJKY1VJMWFoMnJWMkpLWHZhQUlrT0VoUDV2K2ZqTmFKeXhxbCsvOFdndE5OcUsydWJLYkFXVFhVQ21BOWtQTFd4Q2k4Y3lVYVcxY3IiLCJtYWMiOiIzMzI3NDIyNDM1MjIxZmU3NTk0YjA0ZWEyMDhhMmVjZDU3MzAxZjM5YjRhMGU5NDZhMzdmNGQzZGQwMjUwNDRlIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6IkhDT1N0bTlhdXY3VjhYWEFZSldMaEE9PSIsInZhbHVlIjoibGxGY1RLYlduOWV4ME1xL0pmeVJlQ3owU0RGQ1MvbHBsdzA2VG1MUjBUZVpUS0ZhTlZmbytYcG9yOCtqWllZVWdFZ3BwZm1XM2U2dEdTS3B0WXpWRXdPWTBmNmxMOWpuNG0rc3g4VjFiRzlpNWhIWUpxSS9UU2J3dEZhUUlKbFoiLCJtYWMiOiI0Y2NiYmY5N2VjOWM4NzY5MTE5Nzg3YTI1NTE3MmU1MTdkYTc0Nzc2NWNlMjA2NDE0NGFlNThmNDRkZmQyMDc2IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "message": "Unauthenticated."
}
 

Request   

GET connector/client/create

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Store a newly created resource in storage.

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/connector/client" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/client"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/connector/client',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST connector/client

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Show the specified resource.

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/client/voluptatem" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/client/voluptatem"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/client/voluptatem',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
set-cookie: XSRF-TOKEN=eyJpdiI6InpVajNoT2xRTUZGZ01WSG5RekM5M2c9PSIsInZhbHVlIjoiL2F0V2dKR3MyNmRDRWxFdWtTUWNaWCtoY0xTS3oycXBFZDdtaURGMmFPQnFlbEdpYUtZWDVhN0dZSHdlVE5nRXU2Y0FKWkpDdkVEWVFLRFVtUE9XMDQ4U3hYb2h1RlBnUi94Nk1hM3NiVVBMQTl3M21lZGxFbG53Q1Y2UUVTQngiLCJtYWMiOiJhMDg2ZDE2N2NiOTgyZjlhM2Q3ZWRjN2U2Mjg0OTA1YTc5NjJmMWI4MmU2ZmI1YTU4YzJkOTI0MGJiYTNlZWU0IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6ImNyRzA2clRlTlQyeVZwcldwY0NBTUE9PSIsInZhbHVlIjoiYThyZndNR00xek1lYkhjYXlBWW5FWVA5SkRjRnRLSmlWcktKQnlhckk2NVdrMEw1UlQ4QW4zV2Y2blVyOVpUYTh1Z29xVm1yWWF0dHgxTHZmSWZENHdWR2RsTGZpN1N1L0lXMk5qbGFEeG00c1dPdEoxVEdFODhCb3EyRjdjZHEiLCJtYWMiOiI1YmNlN2VhNDA1ZTg3ZGE2ZWQ3MzMxMGYzMDU4OWYxZjI5MWJjOTkxNmM2Mzk0Y2FiZDRmM2Q1NmQzZWE1YzI1IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "message": "Unauthenticated."
}
 

Request   

GET connector/client/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the client. Example: voluptatem

Show the form for editing the specified resource.

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/client/quam/edit" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/client/quam/edit"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/client/quam/edit',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
set-cookie: XSRF-TOKEN=eyJpdiI6IkhpeXZFNlZ4b25FTFcweVV5bXlEdXc9PSIsInZhbHVlIjoiYzBRRFh5WXo4Vko0cEd2dXBRVFgvMUs1SmQyVVdwdWtzdXZWMWV2a1B2YTd6RHh2YloybFBTZVJwRVM5R2p1ekJmRWoxeEJMcENneDJpQ1dkMjlRTy8zMEkxbWIyaEhlOWRxbVRtTHVXNTgrZHF0c3FrNi9sckgvaUN2OEl4NEwiLCJtYWMiOiI4MTczYTY1N2MxNTFjZTBkMzM5ZjhiZWQ4Y2I5MTMyZGMxYmE2ODFkZWY2ZTFhNjRlZTVhYmE1YTMzYTg4YzViIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6ImxlaG5IZU5PREwvbmJaTERoZE9kcnc9PSIsInZhbHVlIjoiS1E1VFpDV3VSd0E3SGdDR2UzOGhtVkczbXl0cWRMc0YxS2l5cG5NQm01dllaT0cyRDBjdzdtUVo0ZGk3R2IwcG1RbjFrYWgreEpCRWJldUN5QnB0bnJtODdUa3l3SEk1OWNOQllhbWRidEw1VjFsS2FmdTRZdWk2eWM5cnRGRW8iLCJtYWMiOiIwNzk5NDY4MDI1MGI2NGM2MzE4MTYxZTAxNjljMWJlMTJhNmU3ZjA2NjE1MzAyNTUyYWQwZjg1MDJjODNiMTFkIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "message": "Unauthenticated."
}
 

Request   

GET connector/client/{client}/edit

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

client   string   

The client. Example: quam

Update the specified resource in storage.

Example request:
curl --request PUT \
    "https://pos.ultimatefosters.com/connector/client/rem" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/client/rem"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'https://pos.ultimatefosters.com/connector/client/rem',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

PUT connector/client/{id}

PATCH connector/client/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the client. Example: rem

Remove the specified resource from storage.

Example request:
curl --request DELETE \
    "https://pos.ultimatefosters.com/connector/client/aut" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/client/aut"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://pos.ultimatefosters.com/connector/client/aut',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

DELETE connector/client/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the client. Example: aut

Expense management

List expenses

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/expense?location_id=1&payment_status=paid&start_date=2018-06-25&end_date=2018-06-25&expense_for=asperiores&per_page=15" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/expense"
);

const params = {
    "location_id": "1",
    "payment_status": "paid",
    "start_date": "2018-06-25",
    "end_date": "2018-06-25",
    "expense_for": "asperiores",
    "per_page": "15",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/expense',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'location_id' => '1',
            'payment_status' => 'paid',
            'start_date' => '2018-06-25',
            'end_date' => '2018-06-25',
            'expense_for' => 'asperiores',
            'per_page' => '15',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 59,
            "business_id": 1,
            "location_id": 1,
            "payment_status": "due",
            "ref_no": "EP2020/0001",
            "transaction_date": "2020-07-03 12:58:00",
            "total_before_tax": "50.0000",
            "tax_id": null,
            "tax_amount": "0.0000",
            "final_total": "50.0000",
            "expense_category_id": null,
            "document": null,
            "created_by": 9,
            "is_recurring": 0,
            "recur_interval": null,
            "recur_interval_type": null,
            "recur_repetitions": null,
            "recur_stopped_on": null,
            "recur_parent_id": null,
            "created_at": "2020-07-03 12:58:23",
            "updated_at": "2020-07-03 12:58:24",
            "transaction_for": {
                "id": 1,
                "user_type": "user",
                "surname": "Mr",
                "first_name": "Admin",
                "last_name": null,
                "username": "admin",
                "email": "[email protected]",
                "language": "en",
                "contact_no": null,
                "address": null,
                "business_id": 1,
                "max_sales_discount_percent": null,
                "allow_login": 1,
                "essentials_department_id": null,
                "essentials_designation_id": null,
                "status": "active",
                "crm_contact_id": null,
                "is_cmmsn_agnt": 0,
                "cmmsn_percent": "0.00",
                "selected_contacts": 0,
                "dob": null,
                "gender": null,
                "marital_status": null,
                "blood_group": null,
                "contact_number": null,
                "fb_link": null,
                "twitter_link": null,
                "social_media_1": null,
                "social_media_2": null,
                "permanent_address": null,
                "current_address": null,
                "guardian_name": null,
                "custom_field_1": null,
                "custom_field_2": null,
                "custom_field_3": null,
                "custom_field_4": null,
                "bank_details": null,
                "id_proof_name": null,
                "id_proof_number": null,
                "deleted_at": null,
                "created_at": "2018-01-04 02:15:19",
                "updated_at": "2018-01-04 02:15:19"
            }
        }
    ],
    "links": {
        "first": "http://local.pos.com/connector/api/expense?page=1",
        "last": null,
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "path": "http://local.pos.com/connector/api/expense",
        "per_page": 10,
        "to": 1
    }
}
 

Request   

GET connector/api/expense

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

location_id   string  optional  

id of the location Example: 1

payment_status   string  optional  

payment status Example: paid

start_date   string  optional  

format:Y-m-d Example: 2018-06-25

end_date   string  optional  

format:Y-m-d Example: 2018-06-25

expense_for   string  optional  

id of the user for which expense is created Example: asperiores

per_page   integer  optional  

Total records per page. default: 10, Set -1 for no pagination Example: 15

Create expense / expense refund

requires authentication

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/connector/api/expense" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"location_id\": 1,
    \"final_total\": 321603.4890166,
    \"transaction_date\": \"2020-5-7 15:20:22\",
    \"tax_rate_id\": 9,
    \"expense_for\": 14,
    \"contact_id\": 17,
    \"expense_category_id\": 5,
    \"expense_sub_category_id\": 18,
    \"additional_notes\": \"atque\",
    \"is_refund\": 0,
    \"is_recurring\": 0,
    \"recur_interval\": 13,
    \"recur_interval_type\": \"months\",
    \"subscription_repeat_on\": 15,
    \"subscription_no\": \"consectetur\",
    \"recur_repetitions\": 3,
    \"payment\": [
        \"accusamus\"
    ]
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/expense"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "location_id": 1,
    "final_total": 321603.4890166,
    "transaction_date": "2020-5-7 15:20:22",
    "tax_rate_id": 9,
    "expense_for": 14,
    "contact_id": 17,
    "expense_category_id": 5,
    "expense_sub_category_id": 18,
    "additional_notes": "atque",
    "is_refund": 0,
    "is_recurring": 0,
    "recur_interval": 13,
    "recur_interval_type": "months",
    "subscription_repeat_on": 15,
    "subscription_no": "consectetur",
    "recur_repetitions": 3,
    "payment": [
        "accusamus"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/connector/api/expense',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'location_id' => 1,
            'final_total' => 321603.4890166,
            'transaction_date' => '2020-5-7 15:20:22',
            'tax_rate_id' => 9,
            'expense_for' => 14,
            'contact_id' => 17,
            'expense_category_id' => 5,
            'expense_sub_category_id' => 18,
            'additional_notes' => 'atque',
            'is_refund' => 0,
            'is_recurring' => 0,
            'recur_interval' => 13,
            'recur_interval_type' => 'months',
            'subscription_repeat_on' => 15,
            'subscription_no' => 'consectetur',
            'recur_repetitions' => 3,
            'payment' => [
                'accusamus',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 75,
        "business_id": 1,
        "location_id": "1",
        "payment_status": "due",
        "ref_no": "EP2020/0013",
        "transaction_date": "2020-07-06T05:31:29.480975Z",
        "total_before_tax": "43",
        "tax_id": null,
        "tax_amount": 0,
        "final_total": "43",
        "expense_category_id": null,
        "document": null,
        "created_by": 1,
        "is_recurring": 0,
        "recur_interval": null,
        "recur_interval_type": null,
        "recur_repetitions": null,
        "recur_stopped_on": null,
        "recur_parent_id": null,
        "created_at": "2020-07-06 11:01:29",
        "updated_at": "2020-07-06 11:01:29",
        "expense_for": []
    }
}
 

Request   

POST connector/api/expense

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

location_id   integer   

id of the business location Example: 1

final_total   number   

Expense amount Example: 321603.4890166

transaction_date   string  optional  

transaction date format:Y-m-d H:i:s, Example: 2020-5-7 15:20:22

tax_rate_id   integer  optional  

id of the tax rate applicable to the expense Example: 9

expense_for   integer  optional  

id of the user for which expense is created Example: 14

contact_id   integer  optional  

id of the contact(customer or supplier) for which expense is created Example: 17

expense_category_id   integer  optional  

id of the expense category Example: 5

expense_sub_category_id   integer  optional  

id of the expense sub-category Example: 18

additional_notes   string  optional  

Example: atque

is_refund   integer  optional  

whether expense refund (0, 1) Example: 0

is_recurring   integer  optional  

whether expense is recurring (0, 1) Example: 0

recur_interval   integer  optional  

value of the interval expense will be regenerated Example: 13

recur_interval_type   string  optional  

type of the recur interval ('days', 'months', 'years') Example: months

subscription_repeat_on   integer  optional  

day of the month on which expense will be generated if recur interval type is months (1-30) Example: 15

subscription_no   string  optional  

subscription number Example: consectetur

recur_repetitions   integer  optional  

total number of expense to be generated Example: 3

payment   string[]  optional  

payment lines for the expense

*   object  optional  
amount   number  optional  

amount of the payment Example: 453.13

method   string  optional  

payment methods ('cash', 'card', 'cheque', 'bank_transfer', 'other', 'custom_pay_1', 'custom_pay_2', 'custom_pay_3') Example: cash

account_id   integer  optional  

account id Example: 8

card_number   string  optional  

Example: deserunt

card_holder_name   string  optional  

Example: quia

card_transaction_number   string  optional  

Example: quis

card_type   string  optional  

Example: quia

card_month   string  optional  

Example: quo

card_year   string  optional  

Example: dicta

card_security   string  optional  

Example: voluptate

transaction_no_1   string  optional  

Example: possimus

transaction_no_2   string  optional  

Example: consequatur

transaction_no_3   string  optional  

Example: quaerat

note   string  optional  

payment note Example: consequatur

cheque_number   string  optional  

Example: et

Get the specified expense / expense refund

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/expense/et" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/expense/et"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/expense/et',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 59,
            "business_id": 1,
            "location_id": 1,
            "payment_status": "due",
            "ref_no": "EP2020/0001",
            "transaction_date": "2020-07-03 12:58:00",
            "total_before_tax": "50.0000",
            "tax_id": null,
            "tax_amount": "0.0000",
            "final_total": "50.0000",
            "expense_category_id": null,
            "document": null,
            "created_by": 9,
            "is_recurring": 0,
            "recur_interval": null,
            "recur_interval_type": null,
            "recur_repetitions": null,
            "recur_stopped_on": null,
            "recur_parent_id": null,
            "created_at": "2020-07-03 12:58:23",
            "updated_at": "2020-07-03 12:58:24",
            "transaction_for": {
                "id": 1,
                "user_type": "user",
                "surname": "Mr",
                "first_name": "Admin",
                "last_name": null,
                "username": "admin",
                "email": "[email protected]",
                "language": "en",
                "contact_no": null,
                "address": null,
                "business_id": 1,
                "max_sales_discount_percent": null,
                "allow_login": 1,
                "essentials_department_id": null,
                "essentials_designation_id": null,
                "status": "active",
                "crm_contact_id": null,
                "is_cmmsn_agnt": 0,
                "cmmsn_percent": "0.00",
                "selected_contacts": 0,
                "dob": null,
                "gender": null,
                "marital_status": null,
                "blood_group": null,
                "contact_number": null,
                "fb_link": null,
                "twitter_link": null,
                "social_media_1": null,
                "social_media_2": null,
                "permanent_address": null,
                "current_address": null,
                "guardian_name": null,
                "custom_field_1": null,
                "custom_field_2": null,
                "custom_field_3": null,
                "custom_field_4": null,
                "bank_details": null,
                "id_proof_name": null,
                "id_proof_number": null,
                "deleted_at": null,
                "created_at": "2018-01-04 02:15:19",
                "updated_at": "2018-01-04 02:15:19"
            }
        }
    ]
}
 

Request   

GET connector/api/expense/{id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the expense. Example: et

expense   string   

comma separated ids of the expenses Example: 59

Update expense / expense refund

requires authentication

Example request:
curl --request PUT \
    "https://pos.ultimatefosters.com/connector/api/expense/voluptate" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"final_total\": 378224.2937,
    \"transaction_date\": \"2020-5-7 15:20:22\",
    \"tax_rate_id\": 8,
    \"expense_for\": 10,
    \"contact_id\": 7,
    \"expense_category_id\": 6,
    \"expense_sub_category_id\": 9,
    \"additional_notes\": \"sit\",
    \"is_recurring\": 0,
    \"recur_interval\": 16,
    \"recur_interval_type\": \"months\",
    \"subscription_repeat_on\": 15,
    \"subscription_no\": \"repellat\",
    \"recur_repetitions\": 9,
    \"payment\": [
        \"quo\"
    ]
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/expense/voluptate"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "final_total": 378224.2937,
    "transaction_date": "2020-5-7 15:20:22",
    "tax_rate_id": 8,
    "expense_for": 10,
    "contact_id": 7,
    "expense_category_id": 6,
    "expense_sub_category_id": 9,
    "additional_notes": "sit",
    "is_recurring": 0,
    "recur_interval": 16,
    "recur_interval_type": "months",
    "subscription_repeat_on": 15,
    "subscription_no": "repellat",
    "recur_repetitions": 9,
    "payment": [
        "quo"
    ]
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'https://pos.ultimatefosters.com/connector/api/expense/voluptate',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'final_total' => 378224.2937,
            'transaction_date' => '2020-5-7 15:20:22',
            'tax_rate_id' => 8,
            'expense_for' => 10,
            'contact_id' => 7,
            'expense_category_id' => 6,
            'expense_sub_category_id' => 9,
            'additional_notes' => 'sit',
            'is_recurring' => 0,
            'recur_interval' => 16,
            'recur_interval_type' => 'months',
            'subscription_repeat_on' => 15,
            'subscription_no' => 'repellat',
            'recur_repetitions' => 9,
            'payment' => [
                'quo',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 75,
        "business_id": 1,
        "location_id": "1",
        "payment_status": "due",
        "ref_no": "EP2020/0013",
        "transaction_date": "2020-07-06T05:31:29.480975Z",
        "total_before_tax": "43",
        "tax_id": null,
        "tax_amount": 0,
        "final_total": "43",
        "expense_category_id": null,
        "document": null,
        "created_by": 1,
        "is_recurring": 0,
        "recur_interval": null,
        "recur_interval_type": null,
        "recur_repetitions": null,
        "recur_stopped_on": null,
        "recur_parent_id": null,
        "created_at": "2020-07-06 11:01:29",
        "updated_at": "2020-07-06 11:01:29",
        "expense_for": []
    }
}
 

Request   

PUT connector/api/expense/{id}

PATCH connector/api/expense/{id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the expense. Example: voluptate

Body Parameters

final_total   number  optional  

Expense amount Example: 378224.2937

transaction_date   string  optional  

transaction date format:Y-m-d H:i:s, Example: 2020-5-7 15:20:22

tax_rate_id   integer  optional  

id of the tax rate applicable to the expense Example: 8

expense_for   integer  optional  

id of the user for which expense is created Example: 10

contact_id   integer  optional  

id of the contact(customer or supplier) for which expense is created Example: 7

expense_category_id   integer  optional  

id of the expense category Example: 6

expense_sub_category_id   integer  optional  

id of the expense sub-category Example: 9

additional_notes   string  optional  

Example: sit

is_recurring   integer  optional  

whether expense is recurring (0, 1) Example: 0

recur_interval   integer  optional  

value of the interval expense will be regenerated Example: 16

recur_interval_type   string  optional  

type of the recur interval ('days', 'months', 'years') Example: months

subscription_repeat_on   integer  optional  

day of the month on which expense will be generated if recur interval type is months (1-30) Example: 15

subscription_no   string  optional  

subscription number Example: repellat

recur_repetitions   integer  optional  

total number of expense to be generated Example: 9

payment   string[]  optional  

payment lines for the expense

List expense refunds

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/expense-refund?location_id=1&payment_status=paid&start_date=2018-06-25&end_date=2018-06-25&expense_for=sequi&per_page=15" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/expense-refund"
);

const params = {
    "location_id": "1",
    "payment_status": "paid",
    "start_date": "2018-06-25",
    "end_date": "2018-06-25",
    "expense_for": "sequi",
    "per_page": "15",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/expense-refund',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'location_id' => '1',
            'payment_status' => 'paid',
            'start_date' => '2018-06-25',
            'end_date' => '2018-06-25',
            'expense_for' => 'sequi',
            'per_page' => '15',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 230,
            "business_id": 1,
            "location_id": 1,
            "payment_status": "partial",
            "ref_no": "refund",
            "transaction_date": "2020-12-15 11:16:00",
            "total_before_tax": "65.0000",
            "tax_id": null,
            "tax_amount": "0.0000",
            "final_total": "65.0000",
            "expense_category_id": null,
            "document": null,
            "created_by": 9,
            "created_at": "2020-12-15 11:46:56",
            "updated_at": "2020-12-15 12:47:30",
            "expense_for": []
        }
    ],
    "links": {
        "first": "http://local.pos.com/connector/api/expense-refund?page=1",
        "last": null,
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "path": "http://local.pos.com/connector/api/expense-refund",
        "per_page": 15,
        "to": 1
    }
}
 

Request   

GET connector/api/expense-refund

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

location_id   string  optional  

id of the location Example: 1

payment_status   string  optional  

payment status Example: paid

start_date   string  optional  

format:Y-m-d Example: 2018-06-25

end_date   string  optional  

format:Y-m-d Example: 2018-06-25

expense_for   string  optional  

id of the user for which expense is created Example: sequi

per_page   integer  optional  

Total records per page. default: 10, Set -1 for no pagination Example: 15

List expense categories

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/expense-categories" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/expense-categories"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/expense-categories',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "name": "cat 1",
            "business_id": 1,
            "code": null,
            "parent_id": null,
            "deleted_at": null,
            "created_at": "2021-12-16 17:54:40",
            "updated_at": "2021-12-16 17:54:40",
            "sub_categories": [
                {
                    "id": 3,
                    "name": "sub cat 1",
                    "business_id": 1,
                    "code": null,
                    "parent_id": 1,
                    "deleted_at": null,
                    "created_at": "2021-12-16 18:12:07",
                    "updated_at": "2021-12-16 18:12:07"
                }
            ]
        },
        {
            "id": 7,
            "name": "cat 2",
            "business_id": 1,
            "code": null,
            "parent_id": null,
            "deleted_at": null,
            "created_at": "2021-12-17 10:36:13",
            "updated_at": "2021-12-17 10:36:13",
            "sub_categories": [
                {
                    "id": 8,
                    "name": "sub cat 2",
                    "business_id": 1,
                    "code": null,
                    "parent_id": 7,
                    "deleted_at": null,
                    "created_at": "2021-12-17 10:36:44",
                    "updated_at": "2021-12-17 10:36:44"
                }
            ]
        }
    ]
}
 

Request   

GET connector/api/expense-categories

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Field Force

List visits

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/field-force?contact_id=omnis&assigned_to=quidem&status=molestiae&start_date=2018-06-25&end_date=2018-06-25&per_page=15&order_by_date=0" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/field-force"
);

const params = {
    "contact_id": "omnis",
    "assigned_to": "quidem",
    "status": "molestiae",
    "start_date": "2018-06-25",
    "end_date": "2018-06-25",
    "per_page": "15",
    "order_by_date": "0",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/field-force',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'contact_id' => 'omnis',
            'assigned_to' => 'quidem',
            'status' => 'molestiae',
            'start_date' => '2018-06-25',
            'end_date' => '2018-06-25',
            'per_page' => '15',
            'order_by_date' => '0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unauthenticated."
}
 

Request   

GET connector/api/field-force

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

contact_id   string  optional  

id of the contact Example: omnis

assigned_to   string  optional  

id of the assigned user Example: quidem

status   string  optional  

status of the visit (assigned, finished) Example: molestiae

start_date   string  optional  

Start date filter for visit on format:Y-m-d Example: 2018-06-25

end_date   string  optional  

End date filter for visit on format:Y-m-d Example: 2018-06-25

per_page   integer  optional  

Total records per page. default: 10, Set -1 for no pagination Example: 15

order_by_date   integer  optional  

Sort visit by visit on date ('asc', 'desc') Example: 0

Create Visit

requires authentication

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/connector/api/field-force/create" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"contact_id\": 8,
    \"visit_to\": \"quaerat\",
    \"visit_address\": \"iste\",
    \"assigned_to\": 1,
    \"visit_on\": \"2021-12-28 17:23:00\",
    \"visit_for\": \"tempora\"
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/field-force/create"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "contact_id": 8,
    "visit_to": "quaerat",
    "visit_address": "iste",
    "assigned_to": 1,
    "visit_on": "2021-12-28 17:23:00",
    "visit_for": "tempora"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/connector/api/field-force/create',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'contact_id' => 8,
            'visit_to' => 'quaerat',
            'visit_address' => 'iste',
            'assigned_to' => 1,
            'visit_on' => '2021-12-28 17:23:00',
            'visit_for' => 'tempora',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "contact_id": "6",
        "assigned_to": "9",
        "visit_on": "2022-01-15 17:23:00",
        "visit_for": "",
        "meet_with": "",
        "meet_with2": "",
        "meet_with3": "",
        "meet_with_mobileno": "",
        "meet_with_mobileno2": "",
        "meet_with_mobileno3": "",
        "meet_with_designation": "",
        "meet_with_designation2": "",
        "meet_with_designation3": "",
        "visit_id": "2021/0031",
        "status": "assigned",
        "business_id": 1,
        "updated_at": "2021-12-30 11:00:47",
        "created_at": "2021-12-30 11:00:47",
        "id": 3
    }
}
 

Request   

POST connector/api/field-force/create

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

contact_id   integer  optional  

id of the contact Example: 8

visit_to   string  optional  

Name of the visiting person or company if contact_id is not given Example: quaerat

visit_address   string  optional  

Address of the visiting person or company if contact_id is not given Example: iste

assigned_to   integer   

id of the assigned user Example: 1

visit_on   format:Y-m-d  optional  

H:i:s Example: 2021-12-28 17:23:00

visit_for   string  optional  

Purpose of visiting Example: tempora

Update Visit status

requires authentication

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/connector/api/field-force/update-visit-status/17" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "status=finished" \
    --form "reason_to_not_meet_contact=iste" \
    --form "visited_on=2021-12-28 17:23:00" \
    --form "visited_address=Radhanath Mullick Ln, Tiretta Bazaar, Bow Bazaar, Kolkata, West Bengal, 700 073, India" \
    --form "latitude=41.40338" \
    --form "longitude=2.17403" \
    --form "comments=placeat" \
    --form "meet_with=dolores" \
    --form "meet_with_mobileno=voluptatem" \
    --form "photo=@/tmp/phpOf26p9" 
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/field-force/update-visit-status/17"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('status', 'finished');
body.append('reason_to_not_meet_contact', 'iste');
body.append('visited_on', '2021-12-28 17:23:00');
body.append('visited_address', 'Radhanath Mullick Ln, Tiretta Bazaar, Bow Bazaar, Kolkata, West Bengal, 700 073, India');
body.append('latitude', '41.40338');
body.append('longitude', '2.17403');
body.append('comments', 'placeat');
body.append('meet_with', 'dolores');
body.append('meet_with_mobileno', 'voluptatem');
body.append('photo', document.querySelector('input[name="photo"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/connector/api/field-force/update-visit-status/17',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'status',
                'contents' => 'finished'
            ],
            [
                'name' => 'reason_to_not_meet_contact',
                'contents' => 'iste'
            ],
            [
                'name' => 'visited_on',
                'contents' => '2021-12-28 17:23:00'
            ],
            [
                'name' => 'visited_address',
                'contents' => 'Radhanath Mullick Ln, Tiretta Bazaar, Bow Bazaar, Kolkata, West Bengal, 700 073, India'
            ],
            [
                'name' => 'latitude',
                'contents' => '41.40338'
            ],
            [
                'name' => 'longitude',
                'contents' => '2.17403'
            ],
            [
                'name' => 'comments',
                'contents' => 'placeat'
            ],
            [
                'name' => 'meet_with',
                'contents' => 'dolores'
            ],
            [
                'name' => 'meet_with_mobileno',
                'contents' => 'voluptatem'
            ],
            [
                'name' => 'photo',
                'contents' => fopen('/tmp/phpOf26p9', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 10,
        "business_id": 1,
        "contact_id": 6,
        "assigned_to": 9,
        "latitude": "23.6101808",
        "longitude": "85.2799354",
        "visited_address": "New address",
        "status": "finished",
        "visit_on": "2021-12-28 17:23:00",
        "visit_for": "assigned from api",
        "meet_with": "Name",
        "meet_with2": "Name",
        "meet_with3": "Name",
        "meet_with_mobileno": "123456789",
        "meet_with_mobileno2": "123456789",
        "meet_with_mobileno3": "123456789",
        "meet_with_designation": "dr",
        "meet_with_designation2": "dr",
        "meet_with_designation3": "dr",
        "comments": "Users comment",
        "created_at": "2021-12-28 17:35:13",
        "updated_at": "2021-12-28 18:06:03"
    }
}
 

Request   

POST connector/api/field-force/update-visit-status/{id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: multipart/form-data

Accept      

Example: application/json

URL Parameters

id   string   

id of the visit to be updated Example: 17

Body Parameters

status   string  optional  

Current status of the visit (assigned, finished, met_contact, did_not_meet_contact) Example: finished

reason_to_not_meet_contact   string  optional  

Reason if status is did_not_meet_contact Example: iste

visited_on   format:Y-m-d  optional  

H:i:s Example: 2021-12-28 17:23:00

visited_address   string  optional  

Full address of the contact Example: Radhanath Mullick Ln, Tiretta Bazaar, Bow Bazaar, Kolkata, West Bengal, 700 073, India

latitude   decimal  optional  

Lattitude of the user location if full address is not given Example: 41.40338

longitude   decimal  optional  

Longitude of the user location if full address is not given Example: 2.17403

comments   string  optional  

Extra comments Example: placeat

photo   file  optional  

Upload Photo as a file of the visit if any or base64 encoded image Example: /tmp/phpOf26p9

meet_with   required  optional  

name of person field force meet with Example: dolores

meet_with_mobileno   required  optional  

mobile number of the person field force meet with Example: voluptatem

New end points

New List products

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/new_product?order_by=ea&order_direction=facere&location_custom_field_1=error&category_id=esse&sub_category_id=labore&location_id=1&not_for_sell=pariatur&send_lot_detail=ex&name=hic&sku=qui&product_ids=1%2C2&per_page=10" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/new_product"
);

const params = {
    "order_by": "ea",
    "order_direction": "facere",
    "location_custom_field_1": "error",
    "category_id": "esse",
    "sub_category_id": "labore",
    "location_id": "1",
    "not_for_sell": "pariatur",
    "send_lot_detail": "ex",
    "name": "hic",
    "sku": "qui",
    "product_ids": "1,2",
    "per_page": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/new_product',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'order_by' => 'ea',
            'order_direction' => 'facere',
            'location_custom_field_1' => 'error',
            'category_id' => 'esse',
            'sub_category_id' => 'labore',
            'location_id' => '1',
            'not_for_sell' => 'pariatur',
            'send_lot_detail' => 'ex',
            'name' => 'hic',
            'sku' => 'qui',
            'product_ids' => '1,2',
            'per_page' => '10',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 2,
            "name": "Levis Men's Slimmy Fit Jeans",
            "business_id": 1,
            "type": "variable",
            "exemption_type_id": null,
            "enable_stock": 1,
            "sku": "AS0002",
            "product_custom_field1": null,
            "product_custom_field2": null,
            "product_custom_field3": null,
            "product_custom_field4": null,
            "woocommerce_media_id": null,
            "product_description": null,
            "is_inactive": 0,
            "repair_model_id": null,
            "not_for_selling": 0,
            "ecom_shipping_class_id": null,
            "ecom_active_in_store": 1,
            "woocommerce_product_id": 627,
            "woocommerce_disable_sync": 0,
            "image_url": "http://local.pos.com/uploads/img/1528727964_levis_jeans.jpg",
            "product_variations": [
                {
                    "id": 2,
                    "variation_template_id": 5,
                    "name": "Waist Size",
                    "product_id": 2,
                    "is_dummy": 0,
                    "variations": [
                        {
                            "id": 2,
                            "name": "28",
                            "product_id": 2,
                            "sub_sku": "AS0002-1",
                            "product_variation_id": 2,
                            "woocommerce_variation_id": 658,
                            "default_purchase_price": "70.0000",
                            "dpp_inc_tax": "77.0000",
                            "default_sell_price": "70.0000",
                            "sell_price_inc_tax": "77.0000",
                            "combo_variations": null,
                            "variation_location_details": [
                                {
                                    "id": 1,
                                    "product_id": 2,
                                    "product_variation_id": 2,
                                    "variation_id": 2,
                                    "location_id": 1,
                                    "qty_available": "71.0000"
                                }
                            ],
                            "media": [],
                            "discounts": []
                        },
                        {
                            "id": 3,
                            "name": "30",
                            "product_id": 2,
                            "sub_sku": "AS0002-2",
                            "product_variation_id": 2,
                            "woocommerce_variation_id": 659,
                            "default_purchase_price": "70.0000",
                            "dpp_inc_tax": "77.0000",
                            "default_sell_price": "70.0000",
                            "sell_price_inc_tax": "77.0000",
                            "combo_variations": null,
                            "variation_location_details": [
                                {
                                    "id": 2,
                                    "product_id": 2,
                                    "product_variation_id": 2,
                                    "variation_id": 3,
                                    "location_id": 1,
                                    "qty_available": "89.0000"
                                }
                            ],
                            "media": [],
                            "discounts": []
                        },
                        {
                            "id": 4,
                            "name": "32",
                            "product_id": 2,
                            "sub_sku": "AS0002-3",
                            "product_variation_id": 2,
                            "woocommerce_variation_id": 660,
                            "default_purchase_price": "70.0000",
                            "dpp_inc_tax": "77.0000",
                            "default_sell_price": "70.0000",
                            "sell_price_inc_tax": "77.0000",
                            "combo_variations": null,
                            "variation_location_details": [
                                {
                                    "id": 3,
                                    "product_id": 2,
                                    "product_variation_id": 2,
                                    "variation_id": 4,
                                    "location_id": 1,
                                    "qty_available": "127.0000"
                                },
                                {
                                    "id": 1371,
                                    "product_id": 2,
                                    "product_variation_id": 2,
                                    "variation_id": 4,
                                    "location_id": 7,
                                    "qty_available": "-1.0000"
                                }
                            ],
                            "media": [],
                            "discounts": []
                        },
                        {
                            "id": 5,
                            "name": "34",
                            "product_id": 2,
                            "sub_sku": "AS0002-4",
                            "product_variation_id": 2,
                            "woocommerce_variation_id": 661,
                            "default_purchase_price": "72.0000",
                            "dpp_inc_tax": "79.2000",
                            "default_sell_price": "72.0000",
                            "sell_price_inc_tax": "79.2000",
                            "combo_variations": null,
                            "variation_location_details": [
                                {
                                    "id": 4,
                                    "product_id": 2,
                                    "product_variation_id": 2,
                                    "variation_id": 5,
                                    "location_id": 1,
                                    "qty_available": "128.0000"
                                }
                            ],
                            "media": [],
                            "discounts": []
                        },
                        {
                            "id": 6,
                            "name": "36",
                            "product_id": 2,
                            "sub_sku": "AS0002-5",
                            "product_variation_id": 2,
                            "woocommerce_variation_id": 662,
                            "default_purchase_price": "72.0000",
                            "dpp_inc_tax": "79.2000",
                            "default_sell_price": "72.0000",
                            "sell_price_inc_tax": "79.2000",
                            "combo_variations": null,
                            "variation_location_details": [
                                {
                                    "id": 5,
                                    "product_id": 2,
                                    "product_variation_id": 2,
                                    "variation_id": 6,
                                    "location_id": 1,
                                    "qty_available": "99.0000"
                                }
                            ],
                            "media": [],
                            "discounts": []
                        }
                    ]
                }
            ],
            "brand": {
                "id": 1,
                "business_id": 1,
                "name": "Levis",
                "description": null,
                "created_by": 1,
                "use_for_repair": 1,
                "deleted_at": null,
                "created_at": "2018-01-03 21:19:47",
                "updated_at": "2018-01-03 21:19:47"
            },
            "unit": {
                "id": 1,
                "business_id": 1,
                "actual_name": "Pieces",
                "short_name": "Pc(s)",
                "allow_decimal": 0,
                "base_unit_id": null,
                "base_unit_multiplier": null
            },
            "category": {
                "id": 1,
                "name": "Men's",
                "business_id": 1,
                "short_code": "sfefef",
                "parent_id": 0,
                "category_type": "product",
                "description": null,
                "slug": null,
                "woocommerce_cat_id": null
            },
            "sub_category": {
                "id": 4,
                "name": "Jeans",
                "business_id": 1,
                "short_code": null,
                "parent_id": 1,
                "category_type": "product",
                "description": null,
                "slug": null,
                "woocommerce_cat_id": null
            },
            "product_tax": {
                "id": 1,
                "business_id": 1,
                "name": "VAT@10%",
                "amount": 10,
                "is_tax_group": 0,
                "for_tax_group": 0,
                "created_by": 1,
                "woocommerce_tax_rate_id": null,
                "deleted_at": null,
                "created_at": "2018-01-04 02:40:07",
                "updated_at": "2018-01-04 02:40:07"
            },
            "product_locations": [
                {
                    "id": 1,
                    "business_id": 1,
                    "name": "Location 1",
                    "custom_field1": "gdgdgd88",
                    "custom_field2": null,
                    "custom_field3": null,
                    "custom_field4": null
                }
            ]
        }
    ],
    "links": {
        "first": "http://local.pos.com/connector/api/new_product?per_page=1&page=1",
        "last": "http://local.pos.com/connector/api/new_product?per_page=1&page=1088",
        "prev": null,
        "next": "http://local.pos.com/connector/api/new_product?per_page=1&page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1088,
        "path": "http://local.pos.com/connector/api/new_product",
        "per_page": "1",
        "to": 1,
        "total": 1088
    }
}
 

Request   

GET connector/api/new_product

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

order_by   string  optional  

Values: product_name or newest Example: ea

order_direction   string  optional  

Values: asc or desc Example: facere

location_custom_field_1   string  optional  

Custom field 1 of the location Example: error

category_id   string  optional  

comma separated ids of one or multiple category Example: esse

sub_category_id   string  optional  

comma separated ids of one or multiple sub-category Example: labore

location_id   string  optional  

Example: 1

not_for_sell   string  optional  

(1, 0) Example: pariatur

send_lot_detail   string  optional  

Send lot details in each variation location details(1, 0) Example: ex

name   string  optional  

Search term for product name Example: hic

sku   string  optional  

Search term for product sku Example: qui

product_ids   string  optional  

comma separated ids of products Example: 1,2

per_page   integer  optional  

Total records per page. default: 10, Set -1 for no pagination Example: 10

New List sells

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/new_sell?location_id=1&contact_id=voluptas&payment_status=due%2Cpartial&start_date=2018-06-25&end_date=2018-06-25&user_id=consectetur&service_staff_id=ipsa&shipping_status=ordered&source=minus&customer_group_id=nesciunt&product_name=consequatur&product_sku=quia&product_custom_field_1=non&location_custom_field_1=odit&location_invoice_scheme_prefix=debitis&product_category_id=similique&product_sub_category_id=nisi&sell_ids=55%2C64&only_subscriptions=et&send_purchase_details=praesentium&order_by_date=desc&per_page=10" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/new_sell"
);

const params = {
    "location_id": "1",
    "contact_id": "voluptas",
    "payment_status": "due,partial",
    "start_date": "2018-06-25",
    "end_date": "2018-06-25",
    "user_id": "consectetur",
    "service_staff_id": "ipsa",
    "shipping_status": "ordered",
    "source": "minus",
    "customer_group_id": "nesciunt",
    "product_name": "consequatur",
    "product_sku": "quia",
    "product_custom_field_1": "non",
    "location_custom_field_1": "odit",
    "location_invoice_scheme_prefix": "debitis",
    "product_category_id": "similique",
    "product_sub_category_id": "nisi",
    "sell_ids": "55,64",
    "only_subscriptions": "et",
    "send_purchase_details": "praesentium",
    "order_by_date": "desc",
    "per_page": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/new_sell',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'location_id' => '1',
            'contact_id' => 'voluptas',
            'payment_status' => 'due,partial',
            'start_date' => '2018-06-25',
            'end_date' => '2018-06-25',
            'user_id' => 'consectetur',
            'service_staff_id' => 'ipsa',
            'shipping_status' => 'ordered',
            'source' => 'minus',
            'customer_group_id' => 'nesciunt',
            'product_name' => 'consequatur',
            'product_sku' => 'quia',
            'product_custom_field_1' => 'non',
            'location_custom_field_1' => 'odit',
            'location_invoice_scheme_prefix' => 'debitis',
            'product_category_id' => 'similique',
            'product_sub_category_id' => 'nisi',
            'sell_ids' => '55,64',
            'only_subscriptions' => 'et',
            'send_purchase_details' => 'praesentium',
            'order_by_date' => 'desc',
            'per_page' => '10',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 6,
            "business_id": 1,
            "location_id": 1,
            "res_table_id": null,
            "type": "sell",
            "status": "final",
            "is_quotation": 0,
            "payment_status": "paid",
            "contact_id": 4,
            "customer_group_id": null,
            "invoice_no": "AS0001",
            "ref_no": "",
            "source": null,
            "unique_hash": null,
            "hash_control": null,
            "subscription_no": null,
            "subscription_repeat_on": null,
            "transaction_date": "2018-04-10 13:23:21",
            "total_before_tax": "770.0000",
            "tax_id": null,
            "tax_amount": "0.0000",
            "discount_type": "percentage",
            "discount_amount": "0.0000",
            "rp_redeemed": 0,
            "rp_redeemed_amount": "0.0000",
            "shipping_details": null,
            "shipping_address": null,
            "shipping_status": null,
            "delivered_to": null,
            "additional_notes": null,
            "staff_note": null,
            "round_off_amount": "0.0000",
            "final_total": "770.0000",
            "expense_sub_category_id": null,
            "is_direct_sale": 0,
            "is_suspend": 0,
            "total_amount_recovered": null,
            "crm_is_order_request": 0,
            "mfg_production_cost": "0.0000",
            "mfg_production_cost_type": "percentage",
            "mfg_is_final": 0,
            "is_created_from_api": 0,
            "essentials_duration": "0.00",
            "essentials_duration_unit": null,
            "essentials_amount_per_unit_duration": "0.0000",
            "essentials_allowances": null,
            "essentials_deductions": null,
            "repair_completed_on": null,
            "repair_warranty_id": null,
            "repair_brand_id": null,
            "repair_status_id": null,
            "repair_model_id": null,
            "repair_job_sheet_id": null,
            "repair_defects": null,
            "repair_serial_no": null,
            "repair_checklist": null,
            "repair_security_pwd": null,
            "repair_security_pattern": null,
            "repair_due_date": null,
            "repair_device_id": null,
            "repair_updates_notif": 0,
            "invoice_token": "00f79f7fd292225e8c303a6bf8626d06",
            "pjt_project_id": null,
            "pjt_title": null,
            "woocommerce_order_id": null,
            "selling_price_group_id": null,
            "created_at": "2018-01-06 07:06:11",
            "updated_at": "2021-10-23 11:42:13",
            "location_name": "Location 1",
            "location_custom_field1": "gdgdgd88",
            "location_invoice_scheme_prefix": "AS",
            "table_name": null,
            "table_description": null,
            "contact": "Harry",
            "customer_group_name": "grp 2",
            "sell_lines": [
                {
                    "id": 1,
                    "transaction_id": 6,
                    "product_id": 2,
                    "quantity": 10,
                    "quantity_returned": "0.0000",
                    "unit_price_before_discount": "70.0000",
                    "unit_price": "70.0000",
                    "line_discount_type": null,
                    "line_discount_amount": "0.0000",
                    "unit_price_inc_tax": "77.0000",
                    "item_tax": "7.0000",
                    "tax_id": 1,
                    "discount_id": null,
                    "lot_no_line_id": null,
                    "sell_line_note": null,
                    "woocommerce_line_items_id": null,
                    "children_type": "",
                    "created_at": "2018-01-06 07:06:11",
                    "updated_at": "2018-01-06 07:06:11",
                    "product_name": "Levis Men's Slimmy Fit Jeans",
                    "product_custom_field_1": null,
                    "product_type": "variable",
                    "product_sku": "AS0002",
                    "category": {
                        "id": 1,
                        "name": "Men's",
                        "business_id": 1,
                        "short_code": "sfefef",
                        "parent_id": 0,
                        "created_by": 1,
                        "category_type": "product",
                        "description": null,
                        "slug": null,
                        "woocommerce_cat_id": null
                    },
                    "sub_category": {
                        "id": 4,
                        "name": "Jeans",
                        "business_id": 1,
                        "short_code": null,
                        "parent_id": 1,
                        "created_by": 1,
                        "category_type": "product",
                        "description": null,
                        "slug": null,
                        "woocommerce_cat_id": null
                    },
                    "product_variations": {
                        "id": 3,
                        "name": "30",
                        "product_id": 2,
                        "sub_sku": "AS0002-2",
                        "product_variation_id": 2,
                        "default_purchase_price": "70.0000",
                        "dpp_inc_tax": "77.0000",
                        "default_sell_price": "70.0000",
                        "sell_price_inc_tax": "77.0000"
                    }
                }
            ],
            "payment_lines": [
                {
                    "id": 1,
                    "transaction_id": 6,
                    "business_id": null,
                    "is_return": 0,
                    "amount": "770.0000",
                    "method": "cash",
                    "card_type": "visa",
                    "paid_on": "2018-01-09 17:30:35",
                    "payment_ref_no": null
                }
            ],
            "invoice_url": "http://local.pos.com/invoice/00f79f7fd292225e8c303a6bf8626d06",
            "payment_link": ""
        }
    ],
    "links": {
        "first": "http://local.pos.com/connector/api/new_sell?per_page=1&page=1",
        "last": "http://local.pos.com/connector/api/new_sell?per_page=1&page=213",
        "prev": null,
        "next": "http://local.pos.com/connector/api/new_sell?per_page=1&page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 213,
        "path": "http://local.pos.com/connector/api/new_sell",
        "per_page": "1",
        "to": 1,
        "total": 213
    }
}
 

Request   

GET connector/api/new_sell

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

location_id   string  optional  

id of the location Example: 1

contact_id   string  optional  

id of the customer Example: voluptas

payment_status   string  optional  

Comma separated values of payment statuses. Available values due, partial, paid, overdue Example: due,partial

start_date   string  optional  

format:Y-m-d Example: 2018-06-25

end_date   string  optional  

format:Y-m-d Example: 2018-06-25

user_id   string  optional  

id of the user who created the sale Example: consectetur

service_staff_id   string  optional  

id of the service staff assigned with the sale Example: ipsa

shipping_status   string  optional  

Shipping Status of the sale ('ordered', 'packed', 'shipped', 'delivered', 'cancelled') Example: ordered

source   string  optional  

Source of the sale Example: minus

customer_group_id   string  optional  

id of the customer group Example: nesciunt

product_name   string  optional  

name of the product Example: consequatur

product_sku   string  optional  

sku of the product or variation Example: quia

product_custom_field_1   string  optional  

custome field 1 of the product Example: non

location_custom_field_1   string  optional  

custome field 1 of the location Example: odit

location_invoice_scheme_prefix   string  optional  

Invoice scheme prefix of the location Example: debitis

product_category_id   string  optional  

category id of the product Example: similique

product_sub_category_id   string  optional  

Sub category id of the product Example: nisi

sell_ids   string  optional  

comma separated ids of the sells Example: 55,64

only_subscriptions   string  optional  

Filter only subcription invoices (1, 0) Example: et

send_purchase_details   string  optional  

Get purchase details of each sell line (1, 0) Example: praesentium

order_by_date   string  optional  

Sort sell list by date ('asc', 'desc') Example: desc

per_page   integer  optional  

Total records per page. default: 10, Set -1 for no pagination Example: 10

New List contact

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/new_contactapi?type=recusandae&customer_group_id=similique&custom_field_1=aperiam&contact_ids=2%2C3&name=perferendis&biz_name=quis&mobile_num=6&contact_id=voluptatum&order_by=veritatis&direction=id&per_page=10" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/new_contactapi"
);

const params = {
    "type": "recusandae",
    "customer_group_id": "similique",
    "custom_field_1": "aperiam",
    "contact_ids": "2,3",
    "name": "perferendis",
    "biz_name": "quis",
    "mobile_num": "6",
    "contact_id": "voluptatum",
    "order_by": "veritatis",
    "direction": "id",
    "per_page": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/new_contactapi',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'type' => 'recusandae',
            'customer_group_id' => 'similique',
            'custom_field_1' => 'aperiam',
            'contact_ids' => '2,3',
            'name' => 'perferendis',
            'biz_name' => 'quis',
            'mobile_num' => '6',
            'contact_id' => 'voluptatum',
            'order_by' => 'veritatis',
            'direction' => 'id',
            'per_page' => '10',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 18,
            "business_id": 1,
            "type": "customer",
            "name": "Mr. Rohit Kumar Agrawalla",
            "prefix": "Mr.",
            "first_name": "Rohit",
            "middle_name": "Kumar",
            "last_name": "Agrawalla",
            "email": null,
            "contact_status": "active",
            "mobile": "8596859647",
            "credit_limit": null,
            "converted_by": null,
            "converted_on": null,
            "balance": "40.0000",
            "total_rp": 0,
            "total_rp_used": 0,
            "total_rp_expired": 0,
            "customer_group_id": 1,
            "crm_source": null,
            "crm_life_stage": null,
            "custom_field1": null,
            "custom_field2": null,
            "custom_field3": null,
            "custom_field4": null,
            "custom_field5": null,
            "custom_field6": null,
            "custom_field7": null,
            "custom_field8": null,
            "custom_field9": null,
            "custom_field10": null,
            "remember_token": null,
            "password": null
        }
    ],
    "links": {
        "first": "http://local.pos.com/connector/api/new_contactapi?customer_group_id=1&page=1",
        "last": "http://local.pos.com/connector/api/new_contactapi?customer_group_id=1&page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "http://local.pos.com/connector/api/new_contactapi",
        "per_page": 10,
        "to": 1,
        "total": 1
    }
}
 

Request   

GET connector/api/new_contactapi

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

type   string   

Type of contact (supplier, customer) Example: recusandae

customer_group_id   string  optional  

id of the customer group Example: similique

custom_field_1   string  optional  

Custom field 1 of the contact Example: aperiam

contact_ids   string  optional  

comma separated ids of contacts Example: 2,3

name   string  optional  

Search term for contact name Example: perferendis

biz_name   string  optional  

Search term for contact's business name Example: quis

mobile_num   integer  optional  

Search term for contact's mobile number Example: 6

contact_id   string  optional  

Search term for contact's contact_id. Ex(CO0005) Example: voluptatum

order_by   string  optional  

Column name to sort the result, Column: name, supplier_business_name Example: veritatis

direction   string  optional  

Direction to sort the result, Direction: desc, asc Example: id

per_page   integer  optional  

Total records per page. default: 10, Set -1 for no pagination Example: 10

Product management

List products

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/product?order_by=molestias&order_direction=tenetur&brand_id=excepturi&category_id=voluptatem&sub_category_id=soluta&location_id=1&selling_price_group=necessitatibus&send_lot_detail=sit&name=quis&sku=consectetur&per_page=10" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/product"
);

const params = {
    "order_by": "molestias",
    "order_direction": "tenetur",
    "brand_id": "excepturi",
    "category_id": "voluptatem",
    "sub_category_id": "soluta",
    "location_id": "1",
    "selling_price_group": "necessitatibus",
    "send_lot_detail": "sit",
    "name": "quis",
    "sku": "consectetur",
    "per_page": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/product',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'order_by' => 'molestias',
            'order_direction' => 'tenetur',
            'brand_id' => 'excepturi',
            'category_id' => 'voluptatem',
            'sub_category_id' => 'soluta',
            'location_id' => '1',
            'selling_price_group' => 'necessitatibus',
            'send_lot_detail' => 'sit',
            'name' => 'quis',
            'sku' => 'consectetur',
            'per_page' => '10',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "name": "Men's Reverse Fleece Crew",
            "business_id": 1,
            "type": "single",
            "sub_unit_ids": null,
            "enable_stock": 1,
            "alert_quantity": "5.0000",
            "sku": "AS0001",
            "barcode_type": "C128",
            "expiry_period": null,
            "expiry_period_type": null,
            "enable_sr_no": 0,
            "weight": null,
            "product_custom_field1": null,
            "product_custom_field2": null,
            "product_custom_field3": null,
            "product_custom_field4": null,
            "image": null,
            "woocommerce_media_id": null,
            "product_description": null,
            "created_by": 1,
            "warranty_id": null,
            "is_inactive": 0,
            "repair_model_id": null,
            "not_for_selling": 0,
            "ecom_shipping_class_id": null,
            "ecom_active_in_store": 1,
            "woocommerce_product_id": 356,
            "woocommerce_disable_sync": 0,
            "image_url": "http://local.pos.com/img/default.png",
            "product_variations": [
                {
                    "id": 1,
                    "variation_template_id": null,
                    "name": "DUMMY",
                    "product_id": 1,
                    "is_dummy": 1,
                    "created_at": "2018-01-03 21:29:08",
                    "updated_at": "2018-01-03 21:29:08",
                    "variations": [
                        {
                            "id": 1,
                            "name": "DUMMY",
                            "product_id": 1,
                            "sub_sku": "AS0001",
                            "product_variation_id": 1,
                            "woocommerce_variation_id": null,
                            "variation_value_id": null,
                            "default_purchase_price": "130.0000",
                            "dpp_inc_tax": "143.0000",
                            "profit_percent": "0.0000",
                            "default_sell_price": "130.0000",
                            "sell_price_inc_tax": "143.0000",
                            "created_at": "2018-01-03 21:29:08",
                            "updated_at": "2020-06-09 00:23:22",
                            "deleted_at": null,
                            "combo_variations": null,
                            "variation_location_details": [
                                {
                                    "id": 56,
                                    "product_id": 1,
                                    "product_variation_id": 1,
                                    "variation_id": 1,
                                    "location_id": 1,
                                    "qty_available": "20.0000",
                                    "created_at": "2020-06-08 23:46:40",
                                    "updated_at": "2020-06-08 23:46:40"
                                }
                            ],
                            "media": [
                                {
                                    "id": 1,
                                    "business_id": 1,
                                    "file_name": "1591686466_978227300_nn.jpeg",
                                    "description": null,
                                    "uploaded_by": 9,
                                    "model_type": "App\\Variation",
                                    "woocommerce_media_id": null,
                                    "model_id": 1,
                                    "created_at": "2020-06-09 00:07:46",
                                    "updated_at": "2020-06-09 00:07:46",
                                    "display_name": "nn.jpeg",
                                    "display_url": "http://local.pos.com/uploads/media/1591686466_978227300_nn.jpeg"
                                }
                            ],
                            "discounts": [
                                {
                                    "id": 2,
                                    "name": "FLAT 10%",
                                    "business_id": 1,
                                    "brand_id": null,
                                    "category_id": null,
                                    "location_id": 1,
                                    "priority": 2,
                                    "discount_type": "fixed",
                                    "discount_amount": "5.0000",
                                    "starts_at": "2021-09-01 11:45:00",
                                    "ends_at": "2021-09-30 11:45:00",
                                    "is_active": 1,
                                    "spg": null,
                                    "applicable_in_cg": 1,
                                    "created_at": "2021-09-01 11:46:00",
                                    "updated_at": "2021-09-01 12:12:55",
                                    "formated_starts_at": " 11:45",
                                    "formated_ends_at": " 11:45"
                                }
                            ],
                            "selling_price_group": [
                                {
                                    "id": 2,
                                    "variation_id": 1,
                                    "price_group_id": 1,
                                    "price_inc_tax": "140.0000",
                                    "created_at": "2020-06-09 00:23:31",
                                    "updated_at": "2020-06-09 00:23:31"
                                }
                            ]
                        }
                    ]
                }
            ],
            "brand": {
                "id": 1,
                "business_id": 1,
                "name": "Levis",
                "description": null,
                "created_by": 1,
                "deleted_at": null,
                "created_at": "2018-01-03 21:19:47",
                "updated_at": "2018-01-03 21:19:47"
            },
            "unit": {
                "id": 1,
                "business_id": 1,
                "actual_name": "Pieces",
                "short_name": "Pc(s)",
                "allow_decimal": 0,
                "base_unit_id": null,
                "base_unit_multiplier": null,
                "created_by": 1,
                "deleted_at": null,
                "created_at": "2018-01-03 15:15:20",
                "updated_at": "2018-01-03 15:15:20"
            },
            "category": {
                "id": 1,
                "name": "Men's",
                "business_id": 1,
                "short_code": null,
                "parent_id": 0,
                "created_by": 1,
                "category_type": "product",
                "description": null,
                "slug": null,
                "woocommerce_cat_id": null,
                "deleted_at": null,
                "created_at": "2018-01-03 21:06:34",
                "updated_at": "2018-01-03 21:06:34"
            },
            "sub_category": {
                "id": 5,
                "name": "Shirts",
                "business_id": 1,
                "short_code": null,
                "parent_id": 1,
                "created_by": 1,
                "category_type": "product",
                "description": null,
                "slug": null,
                "woocommerce_cat_id": null,
                "deleted_at": null,
                "created_at": "2018-01-03 21:08:18",
                "updated_at": "2018-01-03 21:08:18"
            },
            "product_tax": {
                "id": 1,
                "business_id": 1,
                "name": "VAT@10%",
                "amount": 10,
                "is_tax_group": 0,
                "created_by": 1,
                "woocommerce_tax_rate_id": null,
                "deleted_at": null,
                "created_at": "2018-01-04 02:40:07",
                "updated_at": "2018-01-04 02:40:07"
            },
            "product_locations": [
                {
                    "id": 1,
                    "business_id": 1,
                    "location_id": null,
                    "name": "Awesome Shop",
                    "landmark": "Linking Street",
                    "country": "USA",
                    "state": "Arizona",
                    "city": "Phoenix",
                    "zip_code": "85001",
                    "invoice_scheme_id": 1,
                    "invoice_layout_id": 1,
                    "selling_price_group_id": null,
                    "print_receipt_on_invoice": 1,
                    "receipt_printer_type": "browser",
                    "printer_id": null,
                    "mobile": null,
                    "alternate_number": null,
                    "email": null,
                    "website": null,
                    "featured_products": [
                        "5",
                        "71"
                    ],
                    "is_active": 1,
                    "default_payment_accounts": "{\"cash\":{\"is_enabled\":\"1\",\"account\":\"1\"},\"card\":{\"is_enabled\":\"1\",\"account\":\"3\"},\"cheque\":{\"is_enabled\":\"1\",\"account\":\"2\"},\"bank_transfer\":{\"is_enabled\":\"1\",\"account\":\"1\"},\"other\":{\"is_enabled\":\"1\",\"account\":\"3\"},\"custom_pay_1\":{\"is_enabled\":\"1\",\"account\":\"1\"},\"custom_pay_2\":{\"is_enabled\":\"1\",\"account\":\"2\"},\"custom_pay_3\":{\"is_enabled\":\"1\",\"account\":\"3\"}}",
                    "custom_field1": null,
                    "custom_field2": null,
                    "custom_field3": null,
                    "custom_field4": null,
                    "deleted_at": null,
                    "created_at": "2018-01-04 02:15:20",
                    "updated_at": "2020-06-09 01:07:05",
                    "pivot": {
                        "product_id": 2,
                        "location_id": 1
                    }
                }
            ]
        }
    ],
    "links": {
        "first": "http://local.pos.com/connector/api/product?page=1",
        "last": "http://local.pos.com/connector/api/product?page=32",
        "prev": null,
        "next": "http://local.pos.com/connector/api/product?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "path": "http://local.pos.com/connector/api/product",
        "per_page": 10,
        "to": 10
    }
}
 

Request   

GET connector/api/product

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

order_by   string  optional  

Values: product_name or newest Example: molestias

order_direction   string  optional  

Values: asc or desc Example: tenetur

brand_id   string  optional  

comma separated ids of one or multiple brands Example: excepturi

category_id   string  optional  

comma separated ids of one or multiple category Example: voluptatem

sub_category_id   string  optional  

comma separated ids of one or multiple sub-category Example: soluta

location_id   string  optional  

Example: 1

selling_price_group   string  optional  

(1, 0) Example: necessitatibus

send_lot_detail   string  optional  

Send lot details in each variation location details(1, 0) Example: sit

name   string  optional  

Search term for product name Example: quis

sku   string  optional  

Search term for product sku Example: consectetur

per_page   integer  optional  

Total records per page. default: 10, Set -1 for no pagination Example: 10

Get the specified product

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/product/1?selling_price_group=omnis&send_lot_detail=consequatur" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/product/1"
);

const params = {
    "selling_price_group": "omnis",
    "send_lot_detail": "consequatur",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/product/1',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'selling_price_group' => 'omnis',
            'send_lot_detail' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "name": "Men's Reverse Fleece Crew",
            "business_id": 1,
            "type": "single",
            "sub_unit_ids": null,
            "enable_stock": 1,
            "alert_quantity": "5.0000",
            "sku": "AS0001",
            "barcode_type": "C128",
            "expiry_period": null,
            "expiry_period_type": null,
            "enable_sr_no": 0,
            "weight": null,
            "product_custom_field1": null,
            "product_custom_field2": null,
            "product_custom_field3": null,
            "product_custom_field4": null,
            "image": null,
            "woocommerce_media_id": null,
            "product_description": null,
            "created_by": 1,
            "warranty_id": null,
            "is_inactive": 0,
            "repair_model_id": null,
            "not_for_selling": 0,
            "ecom_shipping_class_id": null,
            "ecom_active_in_store": 1,
            "woocommerce_product_id": 356,
            "woocommerce_disable_sync": 0,
            "image_url": "http://local.pos.com/img/default.png",
            "product_variations": [
                {
                    "id": 1,
                    "variation_template_id": null,
                    "name": "DUMMY",
                    "product_id": 1,
                    "is_dummy": 1,
                    "created_at": "2018-01-03 21:29:08",
                    "updated_at": "2018-01-03 21:29:08",
                    "variations": [
                        {
                            "id": 1,
                            "name": "DUMMY",
                            "product_id": 1,
                            "sub_sku": "AS0001",
                            "product_variation_id": 1,
                            "woocommerce_variation_id": null,
                            "variation_value_id": null,
                            "default_purchase_price": "130.0000",
                            "dpp_inc_tax": "143.0000",
                            "profit_percent": "0.0000",
                            "default_sell_price": "130.0000",
                            "sell_price_inc_tax": "143.0000",
                            "created_at": "2018-01-03 21:29:08",
                            "updated_at": "2020-06-09 00:23:22",
                            "deleted_at": null,
                            "combo_variations": null,
                            "variation_location_details": [
                                {
                                    "id": 56,
                                    "product_id": 1,
                                    "product_variation_id": 1,
                                    "variation_id": 1,
                                    "location_id": 1,
                                    "qty_available": "20.0000",
                                    "created_at": "2020-06-08 23:46:40",
                                    "updated_at": "2020-06-08 23:46:40"
                                }
                            ],
                            "media": [
                                {
                                    "id": 1,
                                    "business_id": 1,
                                    "file_name": "1591686466_978227300_nn.jpeg",
                                    "description": null,
                                    "uploaded_by": 9,
                                    "model_type": "App\\Variation",
                                    "woocommerce_media_id": null,
                                    "model_id": 1,
                                    "created_at": "2020-06-09 00:07:46",
                                    "updated_at": "2020-06-09 00:07:46",
                                    "display_name": "nn.jpeg",
                                    "display_url": "http://local.pos.com/uploads/media/1591686466_978227300_nn.jpeg"
                                }
                            ],
                            "discounts": [
                                {
                                    "id": 2,
                                    "name": "FLAT 10%",
                                    "business_id": 1,
                                    "brand_id": null,
                                    "category_id": null,
                                    "location_id": 1,
                                    "priority": 2,
                                    "discount_type": "fixed",
                                    "discount_amount": "5.0000",
                                    "starts_at": "2021-09-01 11:45:00",
                                    "ends_at": "2021-09-30 11:45:00",
                                    "is_active": 1,
                                    "spg": null,
                                    "applicable_in_cg": 1,
                                    "created_at": "2021-09-01 11:46:00",
                                    "updated_at": "2021-09-01 12:12:55",
                                    "formated_starts_at": " 11:45",
                                    "formated_ends_at": " 11:45"
                                }
                            ],
                            "selling_price_group": [
                                {
                                    "id": 2,
                                    "variation_id": 1,
                                    "price_group_id": 1,
                                    "price_inc_tax": "140.0000",
                                    "created_at": "2020-06-09 00:23:31",
                                    "updated_at": "2020-06-09 00:23:31"
                                }
                            ]
                        }
                    ]
                }
            ],
            "brand": {
                "id": 1,
                "business_id": 1,
                "name": "Levis",
                "description": null,
                "created_by": 1,
                "deleted_at": null,
                "created_at": "2018-01-03 21:19:47",
                "updated_at": "2018-01-03 21:19:47"
            },
            "unit": {
                "id": 1,
                "business_id": 1,
                "actual_name": "Pieces",
                "short_name": "Pc(s)",
                "allow_decimal": 0,
                "base_unit_id": null,
                "base_unit_multiplier": null,
                "created_by": 1,
                "deleted_at": null,
                "created_at": "2018-01-03 15:15:20",
                "updated_at": "2018-01-03 15:15:20"
            },
            "category": {
                "id": 1,
                "name": "Men's",
                "business_id": 1,
                "short_code": null,
                "parent_id": 0,
                "created_by": 1,
                "category_type": "product",
                "description": null,
                "slug": null,
                "woocommerce_cat_id": null,
                "deleted_at": null,
                "created_at": "2018-01-03 21:06:34",
                "updated_at": "2018-01-03 21:06:34"
            },
            "sub_category": {
                "id": 5,
                "name": "Shirts",
                "business_id": 1,
                "short_code": null,
                "parent_id": 1,
                "created_by": 1,
                "category_type": "product",
                "description": null,
                "slug": null,
                "woocommerce_cat_id": null,
                "deleted_at": null,
                "created_at": "2018-01-03 21:08:18",
                "updated_at": "2018-01-03 21:08:18"
            },
            "product_tax": {
                "id": 1,
                "business_id": 1,
                "name": "VAT@10%",
                "amount": 10,
                "is_tax_group": 0,
                "created_by": 1,
                "woocommerce_tax_rate_id": null,
                "deleted_at": null,
                "created_at": "2018-01-04 02:40:07",
                "updated_at": "2018-01-04 02:40:07"
            },
            "product_locations": [
                {
                    "id": 1,
                    "business_id": 1,
                    "location_id": null,
                    "name": "Awesome Shop",
                    "landmark": "Linking Street",
                    "country": "USA",
                    "state": "Arizona",
                    "city": "Phoenix",
                    "zip_code": "85001",
                    "invoice_scheme_id": 1,
                    "invoice_layout_id": 1,
                    "selling_price_group_id": null,
                    "print_receipt_on_invoice": 1,
                    "receipt_printer_type": "browser",
                    "printer_id": null,
                    "mobile": null,
                    "alternate_number": null,
                    "email": null,
                    "website": null,
                    "featured_products": [
                        "5",
                        "71"
                    ],
                    "is_active": 1,
                    "default_payment_accounts": "{\"cash\":{\"is_enabled\":\"1\",\"account\":\"1\"},\"card\":{\"is_enabled\":\"1\",\"account\":\"3\"},\"cheque\":{\"is_enabled\":\"1\",\"account\":\"2\"},\"bank_transfer\":{\"is_enabled\":\"1\",\"account\":\"1\"},\"other\":{\"is_enabled\":\"1\",\"account\":\"3\"},\"custom_pay_1\":{\"is_enabled\":\"1\",\"account\":\"1\"},\"custom_pay_2\":{\"is_enabled\":\"1\",\"account\":\"2\"},\"custom_pay_3\":{\"is_enabled\":\"1\",\"account\":\"3\"}}",
                    "custom_field1": null,
                    "custom_field2": null,
                    "custom_field3": null,
                    "custom_field4": null,
                    "deleted_at": null,
                    "created_at": "2018-01-04 02:15:20",
                    "updated_at": "2020-06-09 01:07:05",
                    "pivot": {
                        "product_id": 2,
                        "location_id": 1
                    }
                }
            ]
        }
    ]
}
 

Request   

GET connector/api/product/{id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the product. Example: 1

product   string   

comma separated ids of products Example: 1

Query Parameters

selling_price_group   string  optional  

(1, 0) Example: omnis

send_lot_detail   string  optional  

Send lot details in each variation location details(1, 0) Example: consequatur

List Selling Price Group

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/selling-price-group" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/selling-price-group"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/selling-price-group',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "name": "Retail",
            "description": null,
            "business_id": 1,
            "is_active": 1,
            "deleted_at": null,
            "created_at": "2020-10-21 04:30:06",
            "updated_at": "2020-11-16 18:23:15"
        },
        {
            "id": 2,
            "name": "Wholesale",
            "description": null,
            "business_id": 1,
            "is_active": 1,
            "deleted_at": null,
            "created_at": "2020-10-21 04:30:21",
            "updated_at": "2020-11-16 18:23:00"
        }
    ]
}
 

Request   

GET connector/api/selling-price-group

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

List Variations

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/variation/2?product_id=voluptas&location_id=1&brand_id=ut&category_id=neque&sub_category_id=sapiente&not_for_selling=quod&name=qui&sku=unde&per_page=10" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/variation/2"
);

const params = {
    "product_id": "voluptas",
    "location_id": "1",
    "brand_id": "ut",
    "category_id": "neque",
    "sub_category_id": "sapiente",
    "not_for_selling": "quod",
    "name": "qui",
    "sku": "unde",
    "per_page": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/variation/2',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'product_id' => 'voluptas',
            'location_id' => '1',
            'brand_id' => 'ut',
            'category_id' => 'neque',
            'sub_category_id' => 'sapiente',
            'not_for_selling' => 'quod',
            'name' => 'qui',
            'sku' => 'unde',
            'per_page' => '10',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "variation_id": 1,
            "variation_name": "",
            "sub_sku": "AS0001",
            "product_id": 1,
            "product_name": "Men's Reverse Fleece Crew",
            "sku": "AS0001",
            "type": "single",
            "business_id": 1,
            "barcode_type": "C128",
            "expiry_period": null,
            "expiry_period_type": null,
            "enable_sr_no": 0,
            "weight": null,
            "product_custom_field1": null,
            "product_custom_field2": null,
            "product_custom_field3": null,
            "product_custom_field4": null,
            "product_image": "1528728059_fleece_crew.jpg",
            "product_description": null,
            "warranty_id": null,
            "brand_id": 1,
            "brand_name": "Levis",
            "unit_id": 1,
            "enable_stock": 1,
            "not_for_selling": 0,
            "unit_name": "Pc(s)",
            "unit_allow_decimal": 0,
            "category_id": 1,
            "category": "Men's",
            "sub_category_id": 5,
            "sub_category": "Shirts",
            "tax_id": 1,
            "tax_type": "exclusive",
            "tax_name": "VAT@10%",
            "tax_amount": 10,
            "product_variation_id": 1,
            "default_purchase_price": "130.0000",
            "dpp_inc_tax": "143.0000",
            "profit_percent": "0.0000",
            "default_sell_price": "130.0000",
            "sell_price_inc_tax": "143.0000",
            "product_variation_name": "",
            "variation_location_details": [],
            "media": [],
            "selling_price_group": [],
            "product_image_url": "http://local.pos.com/uploads/img/1528728059_fleece_crew.jpg",
            "product_locations": [
                {
                    "id": 1,
                    "business_id": 1,
                    "location_id": null,
                    "name": "Awesome Shop",
                    "landmark": "Linking Street",
                    "country": "USA",
                    "state": "Arizona",
                    "city": "Phoenix",
                    "zip_code": "85001",
                    "invoice_scheme_id": 1,
                    "invoice_layout_id": 1,
                    "selling_price_group_id": null,
                    "print_receipt_on_invoice": 1,
                    "receipt_printer_type": "browser",
                    "printer_id": null,
                    "mobile": null,
                    "alternate_number": null,
                    "email": null,
                    "website": null,
                    "featured_products": null,
                    "is_active": 1,
                    "default_payment_accounts": "",
                    "custom_field1": null,
                    "custom_field2": null,
                    "custom_field3": null,
                    "custom_field4": null,
                    "deleted_at": null,
                    "created_at": "2018-01-04 02:15:20",
                    "updated_at": "2019-12-11 04:53:39",
                    "pivot": {
                        "product_id": 1,
                        "location_id": 1
                    }
                }
            ]
        },
        {
            "variation_id": 2,
            "variation_name": "28",
            "sub_sku": "AS0002-1",
            "product_id": 2,
            "product_name": "Levis Men's Slimmy Fit Jeans",
            "sku": "AS0002",
            "type": "variable",
            "business_id": 1,
            "barcode_type": "C128",
            "expiry_period": null,
            "expiry_period_type": null,
            "enable_sr_no": 0,
            "weight": null,
            "product_custom_field1": null,
            "product_custom_field2": null,
            "product_custom_field3": null,
            "product_custom_field4": null,
            "product_image": "1528727964_levis_jeans.jpg",
            "product_description": null,
            "warranty_id": null,
            "brand_id": 1,
            "brand_name": "Levis",
            "unit_id": 1,
            "enable_stock": 1,
            "not_for_selling": 0,
            "unit_name": "Pc(s)",
            "unit_allow_decimal": 0,
            "category_id": 1,
            "category": "Men's",
            "sub_category_id": 4,
            "sub_category": "Jeans",
            "tax_id": 1,
            "tax_type": "exclusive",
            "tax_name": "VAT@10%",
            "tax_amount": 10,
            "product_variation_id": 2,
            "default_purchase_price": "70.0000",
            "dpp_inc_tax": "77.0000",
            "profit_percent": "0.0000",
            "default_sell_price": "70.0000",
            "sell_price_inc_tax": "77.0000",
            "product_variation_name": "Waist Size",
            "variation_location_details": [
                {
                    "id": 1,
                    "product_id": 2,
                    "product_variation_id": 2,
                    "variation_id": 2,
                    "location_id": 1,
                    "qty_available": "50.0000",
                    "created_at": "2018-01-06 06:57:11",
                    "updated_at": "2020-08-04 04:11:27"
                }
            ],
            "media": [
                {
                    "id": 1,
                    "business_id": 1,
                    "file_name": "1596701997_743693452_test.jpg",
                    "description": null,
                    "uploaded_by": 9,
                    "model_type": "App\\Variation",
                    "woocommerce_media_id": null,
                    "model_id": 2,
                    "created_at": "2020-08-06 13:49:57",
                    "updated_at": "2020-08-06 13:49:57",
                    "display_name": "test.jpg",
                    "display_url": "http://local.pos.com/uploads/media/1596701997_743693452_test.jpg"
                }
            ],
            "selling_price_group": [],
            "product_image_url": "http://local.pos.com/uploads/img/1528727964_levis_jeans.jpg",
            "product_locations": [
                {
                    "id": 1,
                    "business_id": 1,
                    "location_id": null,
                    "name": "Awesome Shop",
                    "landmark": "Linking Street",
                    "country": "USA",
                    "state": "Arizona",
                    "city": "Phoenix",
                    "zip_code": "85001",
                    "invoice_scheme_id": 1,
                    "invoice_layout_id": 1,
                    "selling_price_group_id": null,
                    "print_receipt_on_invoice": 1,
                    "receipt_printer_type": "browser",
                    "printer_id": null,
                    "mobile": null,
                    "alternate_number": null,
                    "email": null,
                    "website": null,
                    "featured_products": null,
                    "is_active": 1,
                    "default_payment_accounts": "",
                    "custom_field1": null,
                    "custom_field2": null,
                    "custom_field3": null,
                    "custom_field4": null,
                    "deleted_at": null,
                    "created_at": "2018-01-04 02:15:20",
                    "updated_at": "2019-12-11 04:53:39",
                    "pivot": {
                        "product_id": 2,
                        "location_id": 1
                    }
                }
            ],
            "discounts": [
                {
                    "id": 2,
                    "name": "FLAT 10%",
                    "business_id": 1,
                    "brand_id": null,
                    "category_id": null,
                    "location_id": 1,
                    "priority": 2,
                    "discount_type": "fixed",
                    "discount_amount": "5.0000",
                    "starts_at": "2021-09-01 11:45:00",
                    "ends_at": "2021-09-30 11:45:00",
                    "is_active": 1,
                    "spg": null,
                    "applicable_in_cg": 1,
                    "created_at": "2021-09-01 11:46:00",
                    "updated_at": "2021-09-01 12:12:55",
                    "formated_starts_at": " 11:45",
                    "formated_ends_at": " 11:45"
                }
            ]
        }
    ],
    "links": {
        "first": "http://local.pos.com/connector/api/variation?page=1",
        "last": null,
        "prev": null,
        "next": "http://local.pos.com/connector/api/variation?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "path": "http://local.pos.com/connector/api/variation",
        "per_page": "2",
        "to": 2
    }
}
 

Request   

GET connector/api/variation/{id?}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string  optional  

comma separated ids of variations Example: 2

Query Parameters

product_id   string  optional  

Filter by comma separated products ids Example: voluptas

location_id   string  optional  

Example: 1

brand_id   string  optional  

Example: ut

category_id   string  optional  

Example: neque

sub_category_id   string  optional  

Example: sapiente

not_for_selling   string  optional  

Values: 0 or 1 Example: quod

name   string  optional  

Search term for product name Example: qui

sku   string  optional  

Search term for product sku Example: unde

per_page   integer  optional  

Total records per page. default: 10, Set -1 for no pagination Example: 10

Sales management

List sells

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/sell?location_id=1&contact_id=molestiae&status=final&payment_status=due%2Cpartial&start_date=2018-06-25&end_date=2018-06-25&user_id=quis&service_staff_id=ut&shipping_status=ordered&source=eos&only_subscriptions=dolor&send_purchase_details=quo&order_by_date=desc&per_page=10" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/sell"
);

const params = {
    "location_id": "1",
    "contact_id": "molestiae",
    "status": "final",
    "payment_status": "due,partial",
    "start_date": "2018-06-25",
    "end_date": "2018-06-25",
    "user_id": "quis",
    "service_staff_id": "ut",
    "shipping_status": "ordered",
    "source": "eos",
    "only_subscriptions": "dolor",
    "send_purchase_details": "quo",
    "order_by_date": "desc",
    "per_page": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/sell',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'location_id' => '1',
            'contact_id' => 'molestiae',
            'status' => 'final',
            'payment_status' => 'due,partial',
            'start_date' => '2018-06-25',
            'end_date' => '2018-06-25',
            'user_id' => 'quis',
            'service_staff_id' => 'ut',
            'shipping_status' => 'ordered',
            'source' => 'eos',
            'only_subscriptions' => 'dolor',
            'send_purchase_details' => 'quo',
            'order_by_date' => 'desc',
            'per_page' => '10',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 6,
            "business_id": 1,
            "location_id": 1,
            "res_table_id": null,
            "res_waiter_id": null,
            "res_order_status": null,
            "type": "sell",
            "sub_type": null,
            "status": "final",
            "is_quotation": 0,
            "payment_status": "paid",
            "adjustment_type": null,
            "contact_id": 4,
            "customer_group_id": null,
            "invoice_no": "AS0001",
            "ref_no": "",
            "source": null,
            "subscription_no": null,
            "subscription_repeat_on": null,
            "transaction_date": "2018-04-10 13:23:21",
            "total_before_tax": "770.0000",
            "tax_id": null,
            "tax_amount": "0.0000",
            "discount_type": "percentage",
            "discount_amount": "0.0000",
            "rp_redeemed": 0,
            "rp_redeemed_amount": "0.0000",
            "shipping_details": null,
            "shipping_address": null,
            "shipping_status": null,
            "delivered_to": null,
            "shipping_charges": "0.0000",
            "additional_notes": null,
            "staff_note": null,
            "round_off_amount": "0.0000",
            "final_total": "770.0000",
            "expense_category_id": null,
            "expense_for": null,
            "commission_agent": null,
            "document": null,
            "is_direct_sale": 0,
            "is_suspend": 0,
            "exchange_rate": "1.000",
            "total_amount_recovered": null,
            "transfer_parent_id": null,
            "return_parent_id": null,
            "opening_stock_product_id": null,
            "created_by": 1,
            "import_batch": null,
            "import_time": null,
            "types_of_service_id": null,
            "packing_charge": null,
            "packing_charge_type": null,
            "service_custom_field_1": null,
            "service_custom_field_2": null,
            "service_custom_field_3": null,
            "service_custom_field_4": null,
            "mfg_parent_production_purchase_id": null,
            "mfg_wasted_units": null,
            "mfg_production_cost": "0.0000",
            "mfg_is_final": 0,
            "is_created_from_api": 0,
            "essentials_duration": "0.00",
            "essentials_duration_unit": null,
            "essentials_amount_per_unit_duration": "0.0000",
            "essentials_allowances": null,
            "essentials_deductions": null,
            "rp_earned": 0,
            "repair_completed_on": null,
            "repair_warranty_id": null,
            "repair_brand_id": null,
            "repair_status_id": null,
            "repair_model_id": null,
            "repair_defects": null,
            "repair_serial_no": null,
            "repair_updates_email": 0,
            "repair_updates_sms": 0,
            "repair_checklist": null,
            "repair_security_pwd": null,
            "repair_security_pattern": null,
            "repair_due_date": null,
            "repair_device_id": null,
            "order_addresses": null,
            "is_recurring": 0,
            "recur_interval": null,
            "recur_interval_type": null,
            "recur_repetitions": null,
            "recur_stopped_on": null,
            "recur_parent_id": null,
            "invoice_token": null,
            "pay_term_number": null,
            "pay_term_type": null,
            "pjt_project_id": null,
            "pjt_title": null,
            "woocommerce_order_id": null,
            "selling_price_group_id": null,
            "created_at": "2018-01-06 07:06:11",
            "updated_at": "2018-01-06 07:06:11",
            "sell_lines": [
                {
                    "id": 1,
                    "transaction_id": 6,
                    "product_id": 2,
                    "variation_id": 3,
                    "quantity": 10,
                    "mfg_waste_percent": "0.0000",
                    "quantity_returned": "0.0000",
                    "unit_price_before_discount": "70.0000",
                    "unit_price": "70.0000",
                    "line_discount_type": null,
                    "line_discount_amount": "0.0000",
                    "unit_price_inc_tax": "77.0000",
                    "item_tax": "7.0000",
                    "tax_id": 1,
                    "discount_id": null,
                    "lot_no_line_id": null,
                    "sell_line_note": null,
                    "res_service_staff_id": null,
                    "res_line_order_status": null,
                    "woocommerce_line_items_id": null,
                    "parent_sell_line_id": null,
                    "children_type": "",
                    "sub_unit_id": null,
                    "created_at": "2018-01-06 07:06:11",
                    "updated_at": "2018-01-06 07:06:11"
                }
            ],
            "payment_lines": [
                {
                    "id": 1,
                    "transaction_id": 6,
                    "business_id": null,
                    "is_return": 0,
                    "amount": "770.0000",
                    "method": "cash",
                    "transaction_no": null,
                    "card_transaction_number": null,
                    "card_number": null,
                    "card_type": "visa",
                    "card_holder_name": null,
                    "card_month": null,
                    "card_year": null,
                    "card_security": null,
                    "cheque_number": null,
                    "bank_account_number": null,
                    "paid_on": "2018-01-09 17:30:35",
                    "created_by": 1,
                    "payment_for": null,
                    "parent_id": null,
                    "note": null,
                    "document": null,
                    "payment_ref_no": null,
                    "account_id": null,
                    "created_at": "2018-01-06 01:36:11",
                    "updated_at": "2018-01-06 01:36:11"
                }
            ],
            "invoice_url": "http://local.pos.com/invoice/6dfd77eb80f4976b456128e7f1311c9f",
            "payment_link": "http://local.pos.com/pay/6dfd77eb80f4976b456128e7f1311c9f"
        }
    ],
    "links": {
        "first": "http://local.pos.com/connector/api/sell?page=1",
        "last": "http://local.pos.com/connector/api/sell?page=6",
        "prev": null,
        "next": "http://local.pos.com/connector/api/sell?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "path": "http://local.pos.com/connector/api/sell",
        "per_page": 10,
        "to": 10
    }
}
 

Request   

GET connector/api/sell

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

location_id   string  optional  

id of the location Example: 1

contact_id   string  optional  

id of the customer Example: molestiae

status   string  optional  

Sell status. Available values final, draft, quotation, proforma Example: final

payment_status   string  optional  

Comma separated values of payment statuses. Available values due, partial, paid, overdue Example: due,partial

start_date   string  optional  

format:Y-m-d Example: 2018-06-25

end_date   string  optional  

format:Y-m-d Example: 2018-06-25

user_id   string  optional  

id of the user who created the sale Example: quis

service_staff_id   string  optional  

id of the service staff assigned with the sale Example: ut

shipping_status   string  optional  

Shipping Status of the sale ('ordered', 'packed', 'shipped', 'delivered', 'cancelled') Example: ordered

source   string  optional  

Source of the sale Example: eos

only_subscriptions   string  optional  

Filter only subcription invoices (1, 0) Example: dolor

send_purchase_details   string  optional  

Get purchase details of each sell line (1, 0) Example: quo

order_by_date   string  optional  

Sort sell list by date ('asc', 'desc') Example: desc

per_page   integer  optional  

Total records per page. default: 10, Set -1 for no pagination Example: 10

Create sell

requires authentication

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/connector/api/sell" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/sell"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/connector/api/sell',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 6,
            "business_id": 1,
            "location_id": 1,
            "res_table_id": null,
            "res_waiter_id": null,
            "res_order_status": null,
            "type": "sell",
            "sub_type": null,
            "status": "final",
            "is_quotation": 0,
            "payment_status": "paid",
            "adjustment_type": null,
            "contact_id": 4,
            "customer_group_id": null,
            "invoice_no": "AS0001",
            "ref_no": "",
            "source": null,
            "subscription_no": null,
            "subscription_repeat_on": null,
            "transaction_date": "2018-04-10 13:23:21",
            "total_before_tax": "770.0000",
            "tax_id": null,
            "tax_amount": "0.0000",
            "discount_type": "percentage",
            "discount_amount": "0.0000",
            "rp_redeemed": 0,
            "rp_redeemed_amount": "0.0000",
            "shipping_details": null,
            "shipping_address": null,
            "shipping_status": null,
            "delivered_to": null,
            "shipping_charges": "0.0000",
            "additional_notes": null,
            "staff_note": null,
            "round_off_amount": "0.0000",
            "final_total": "770.0000",
            "expense_category_id": null,
            "expense_for": null,
            "commission_agent": null,
            "document": null,
            "is_direct_sale": 0,
            "is_suspend": 0,
            "exchange_rate": "1.000",
            "total_amount_recovered": null,
            "transfer_parent_id": null,
            "return_parent_id": null,
            "opening_stock_product_id": null,
            "created_by": 1,
            "import_batch": null,
            "import_time": null,
            "types_of_service_id": null,
            "packing_charge": null,
            "packing_charge_type": null,
            "service_custom_field_1": null,
            "service_custom_field_2": null,
            "service_custom_field_3": null,
            "service_custom_field_4": null,
            "mfg_parent_production_purchase_id": null,
            "mfg_wasted_units": null,
            "mfg_production_cost": "0.0000",
            "mfg_is_final": 0,
            "is_created_from_api": 0,
            "essentials_duration": "0.00",
            "essentials_duration_unit": null,
            "essentials_amount_per_unit_duration": "0.0000",
            "essentials_allowances": null,
            "essentials_deductions": null,
            "rp_earned": 0,
            "repair_completed_on": null,
            "repair_warranty_id": null,
            "repair_brand_id": null,
            "repair_status_id": null,
            "repair_model_id": null,
            "repair_defects": null,
            "repair_serial_no": null,
            "repair_updates_email": 0,
            "repair_updates_sms": 0,
            "repair_checklist": null,
            "repair_security_pwd": null,
            "repair_security_pattern": null,
            "repair_due_date": null,
            "repair_device_id": null,
            "order_addresses": null,
            "is_recurring": 0,
            "recur_interval": null,
            "recur_interval_type": null,
            "recur_repetitions": null,
            "recur_stopped_on": null,
            "recur_parent_id": null,
            "invoice_token": null,
            "pay_term_number": null,
            "pay_term_type": null,
            "pjt_project_id": null,
            "pjt_title": null,
            "woocommerce_order_id": null,
            "selling_price_group_id": null,
            "created_at": "2018-01-06 07:06:11",
            "updated_at": "2018-01-06 07:06:11",
            "invoice_url": "http://local.pos.com/invoice/6dfd77eb80f4976b456128e7f1311c9f",
            "payment_link": "http://local.pos.com/pay/6dfd77eb80f4976b456128e7f1311c9f",
            "sell_lines": [
                {
                    "id": 1,
                    "transaction_id": 6,
                    "product_id": 2,
                    "variation_id": 3,
                    "quantity": 10,
                    "mfg_waste_percent": "0.0000",
                    "quantity_returned": "0.0000",
                    "unit_price_before_discount": "70.0000",
                    "unit_price": "70.0000",
                    "line_discount_type": null,
                    "line_discount_amount": "0.0000",
                    "unit_price_inc_tax": "77.0000",
                    "item_tax": "7.0000",
                    "tax_id": 1,
                    "discount_id": null,
                    "lot_no_line_id": null,
                    "sell_line_note": null,
                    "res_service_staff_id": null,
                    "res_line_order_status": null,
                    "woocommerce_line_items_id": null,
                    "parent_sell_line_id": null,
                    "children_type": "",
                    "sub_unit_id": null,
                    "created_at": "2018-01-06 07:06:11",
                    "updated_at": "2018-01-06 07:06:11"
                }
            ],
            "payment_lines": [
                {
                    "id": 1,
                    "transaction_id": 6,
                    "business_id": null,
                    "is_return": 0,
                    "amount": "770.0000",
                    "method": "cash",
                    "transaction_no": null,
                    "card_transaction_number": null,
                    "card_number": null,
                    "card_type": "visa",
                    "card_holder_name": null,
                    "card_month": null,
                    "card_year": null,
                    "card_security": null,
                    "cheque_number": null,
                    "bank_account_number": null,
                    "paid_on": "2018-01-09 17:30:35",
                    "created_by": 1,
                    "payment_for": null,
                    "parent_id": null,
                    "note": null,
                    "document": null,
                    "payment_ref_no": null,
                    "account_id": null,
                    "created_at": "2018-01-06 01:36:11",
                    "updated_at": "2018-01-06 01:36:11"
                }
            ]
        }
    ]
}
 

Request   

POST connector/api/sell

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

sells   object  optional  
*   object  optional  
location_id   integer   

id of the business location Example: 1

contact_id   integer   

id of the customer Example: 9

transaction_date   string  optional  

transaction date format:Y-m-d H:i:s, Example: 2020-07-22 15:48:29

invoice_no   string  optional  

Invoice number Example: id

source   string  optional  

Source of the invoice Example: api, phone, woocommerce

status   string  optional  

sale status (final, draft) Example: final

sub_status   string  optional  

sale sub status ("quotation" for quotation and "proforma" for proforma invoice) Example: null

is_quotation   boolean  optional  

Is sell quotation (0, 1), If 1 status should be draft Example: true

tax_rate_id   integer  optional  

id of the tax rate applicable to the sale Example: 2

discount_amount   number  optional  

discount amount applicable to the sale Example: 10

discount_type   string  optional  

type of the discount amount (fixed, percentage) Example: fixed

sale_note   string  optional  

Example: dolorem

staff_note   string  optional  

Example: sit

commission_agent   integer  optional  

commission agent id Example: 19

shipping_details   string  optional  

shipping details Example: Express Delivery

shipping_address   string  optional  

shipping address Example: veniam

shipping_status   string  optional  

('ordered', 'packed', 'shipped', 'delivered', 'cancelled') Example: ordered

delivered_to   string  optional  

Name of the person recieved the consignment Example: 'Mr robin'

shipping_charges   number  optional  

shipping amount Example: 10

packing_charge   number  optional  

packing charge Example: 10

exchange_rate   number  optional  

exchange rate for the currency used Example: 1

selling_price_group_id   integer  optional  

id of the selling price group Example: 8

pay_term_number   integer  optional  

pay term value Example: 3

pay_term_type   string  optional  

type of the pay term value ('days', 'months') Example: months

is_suspend   boolean  optional  

Is suspended sale (0, 1) Example: false

is_recurring   integer  optional  

whether the invoice is recurring (0, 1) Example: 0

recur_interval   integer  optional  

value of the interval invoice will be regenerated Example: 8

recur_interval_type   string  optional  

type of the recur interval ('days', 'months', 'years') Example: months

subscription_repeat_on   integer  optional  

day of the month on which invoice will be generated if recur interval type is months (1-30) Example: 15

subscription_no   string  optional  

subscription number Example: culpa

recur_repetitions   integer  optional  

total number of invoices to be generated Example: 1

rp_redeemed   integer  optional  

reward points redeemed Example: 19

rp_redeemed_amount   number  optional  

reward point redeemed amount after conversion Example: 13.5

types_of_service_id   integer  optional  

types of service id Example: 18

service_custom_field_1   string  optional  

types of service custom field 1 Example: autem

service_custom_field_2   string  optional  

types of service custom field 2 Example: aliquid

service_custom_field_3   string  optional  

types of service custom field 3 Example: praesentium

service_custom_field_4   string  optional  

types of service custom field 4 Example: alias

service_custom_field_5   string  optional  

types of service custom field 5 Example: rerum

service_custom_field_6   string  optional  

types of service custom field 6 Example: est

round_off_amount   number  optional  

round off amount on total payable Example: 97.34791

table_id   integer  optional  

id of the table Example: 20

service_staff_id   integer  optional  

id of the service staff assigned to the sale Example: 13

change_return   number  optional  

Excess paid amount Example: 0

products   string[]   

array of the products for the sale

*   object  optional  
product_id   integer   

product id Example: 17

variation_id   integer   

variation id Example: 58

quantity   number   

quantity Example: 1

unit_price   number  optional  

unit selling price Example: 437.5

tax_rate_id   integer  optional  

tax rate id applicable on the product Example: 0

discount_amount   number  optional  

discount amount applicable on the product Example: 0

discount_type   string  optional  

type of discount amount ('fixed', 'percentage') Example: percentage

sub_unit_id   integer  optional  

sub unit id Example: 6

note   string  optional  

note for the product Example: nisi

payments   string[]  optional  

payment lines for the sale

*   object  optional  
amount   number   

amount of the payment Example: 453.13

method   string  optional  

payment methods ('cash', 'card', 'cheque', 'bank_transfer', 'other', 'custom_pay_1', 'custom_pay_2', 'custom_pay_3') Example: cash

account_id   integer  optional  

account id Example: 7

card_number   string  optional  

Example: magni

card_holder_name   string  optional  

Example: aspernatur

card_transaction_number   string  optional  

Example: quod

card_type   string  optional  

Example: incidunt

card_month   string  optional  

Example: sequi

card_year   string  optional  

Example: eaque

card_security   string  optional  

Example: enim

transaction_no_1   string  optional  

Example: qui

transaction_no_2   string  optional  

Example: aut

transaction_no_3   string  optional  

Example: eaque

bank_account_number   string  optional  

Example: et

note   string  optional  

payment note Example: occaecati

cheque_number   string  optional  

Example: quo

Get the specified sell

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/sell/aliquid?send_purchase_details=quaerat" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/sell/aliquid"
);

const params = {
    "send_purchase_details": "quaerat",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/sell/aliquid',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'send_purchase_details' => 'quaerat',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 55,
            "business_id": 1,
            "location_id": 1,
            "res_table_id": 5,
            "res_waiter_id": null,
            "res_order_status": null,
            "type": "sell",
            "sub_type": null,
            "status": "final",
            "is_quotation": 0,
            "payment_status": "paid",
            "adjustment_type": null,
            "contact_id": 1,
            "customer_group_id": null,
            "invoice_no": "AS0007",
            "ref_no": "",
            "source": null,
            "subscription_no": null,
            "subscription_repeat_on": null,
            "transaction_date": "2020-06-04 23:29:36",
            "total_before_tax": "437.5000",
            "tax_id": 1,
            "tax_amount": "39.3750",
            "discount_type": "percentage",
            "discount_amount": "10.0000",
            "rp_redeemed": 0,
            "rp_redeemed_amount": "0.0000",
            "shipping_details": "Express Delivery",
            "shipping_address": null,
            "shipping_status": "ordered",
            "delivered_to": "Mr Robin",
            "shipping_charges": "10.0000",
            "additional_notes": null,
            "staff_note": null,
            "round_off_amount": "0.0000",
            "final_total": "453.1300",
            "expense_category_id": null,
            "expense_for": null,
            "commission_agent": null,
            "document": null,
            "is_direct_sale": 0,
            "is_suspend": 0,
            "exchange_rate": "1.000",
            "total_amount_recovered": null,
            "transfer_parent_id": null,
            "return_parent_id": null,
            "opening_stock_product_id": null,
            "created_by": 9,
            "import_batch": null,
            "import_time": null,
            "types_of_service_id": 1,
            "packing_charge": "10.0000",
            "packing_charge_type": "fixed",
            "service_custom_field_1": null,
            "service_custom_field_2": null,
            "service_custom_field_3": null,
            "service_custom_field_4": null,
            "mfg_parent_production_purchase_id": null,
            "mfg_wasted_units": null,
            "mfg_production_cost": "0.0000",
            "mfg_is_final": 0,
            "is_created_from_api": 0,
            "essentials_duration": "0.00",
            "essentials_duration_unit": null,
            "essentials_amount_per_unit_duration": "0.0000",
            "essentials_allowances": null,
            "essentials_deductions": null,
            "rp_earned": 0,
            "repair_completed_on": null,
            "repair_warranty_id": null,
            "repair_brand_id": null,
            "repair_status_id": null,
            "repair_model_id": null,
            "repair_defects": null,
            "repair_serial_no": null,
            "repair_updates_email": 0,
            "repair_updates_sms": 0,
            "repair_checklist": null,
            "repair_security_pwd": null,
            "repair_security_pattern": null,
            "repair_due_date": null,
            "repair_device_id": null,
            "order_addresses": null,
            "is_recurring": 0,
            "recur_interval": null,
            "recur_interval_type": "days",
            "recur_repetitions": 0,
            "recur_stopped_on": null,
            "recur_parent_id": null,
            "invoice_token": null,
            "pay_term_number": null,
            "pay_term_type": null,
            "pjt_project_id": null,
            "pjt_title": null,
            "woocommerce_order_id": null,
            "selling_price_group_id": 0,
            "created_at": "2020-06-04 23:29:36",
            "updated_at": "2020-06-04 23:29:36",
            "sell_lines": [
                {
                    "id": 38,
                    "transaction_id": 55,
                    "product_id": 17,
                    "variation_id": 58,
                    "quantity": 1,
                    "mfg_waste_percent": "0.0000",
                    "quantity_returned": "0.0000",
                    "unit_price_before_discount": "437.5000",
                    "unit_price": "437.5000",
                    "line_discount_type": "fixed",
                    "line_discount_amount": "0.0000",
                    "unit_price_inc_tax": "437.5000",
                    "item_tax": "0.0000",
                    "tax_id": null,
                    "discount_id": null,
                    "lot_no_line_id": null,
                    "sell_line_note": "",
                    "res_service_staff_id": null,
                    "res_line_order_status": null,
                    "woocommerce_line_items_id": null,
                    "parent_sell_line_id": null,
                    "children_type": "",
                    "sub_unit_id": null,
                    "created_at": "2020-06-04 23:29:36",
                    "updated_at": "2020-06-04 23:29:36"
                }
            ],
            "payment_lines": [
                {
                    "id": 37,
                    "transaction_id": 55,
                    "business_id": 1,
                    "is_return": 0,
                    "amount": "453.1300",
                    "method": "cash",
                    "transaction_no": null,
                    "card_transaction_number": null,
                    "card_number": null,
                    "card_type": "credit",
                    "card_holder_name": null,
                    "card_month": null,
                    "card_year": null,
                    "card_security": null,
                    "cheque_number": null,
                    "bank_account_number": null,
                    "paid_on": "2020-06-04 23:29:36",
                    "created_by": 9,
                    "payment_for": 1,
                    "parent_id": null,
                    "note": null,
                    "document": null,
                    "payment_ref_no": "SP2020/0002",
                    "account_id": null,
                    "created_at": "2020-06-04 23:29:36",
                    "updated_at": "2020-06-04 23:29:36"
                }
            ],
            "invoice_url": "http://local.pos.com/invoice/6dfd77eb80f4976b456128e7f1311c9f",
            "payment_link": "http://local.pos.com/pay/6dfd77eb80f4976b456128e7f1311c9f"
        }
    ]
}
 

Request   

GET connector/api/sell/{id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the sell. Example: aliquid

sell   string   

comma separated ids of the sells Example: 55

Query Parameters

send_purchase_details   string  optional  

Get purchase details of each sell line (1, 0) Example: quaerat

Update sell

requires authentication

Example request:
curl --request PUT \
    "https://pos.ultimatefosters.com/connector/api/sell/possimus" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"contact_id\": 17,
    \"transaction_date\": \"2020-5-7 15:20:22\",
    \"status\": \"final\",
    \"sub_status\": \"null\",
    \"is_quotation\": true,
    \"tax_rate_id\": 7,
    \"discount_amount\": 10,
    \"discount_type\": \"fixed\",
    \"sale_note\": \"pariatur\",
    \"source\": \"mollitia\",
    \"staff_note\": \"sunt\",
    \"is_suspend\": false,
    \"commission_agent\": 4,
    \"shipping_details\": \"Express Delivery\",
    \"shipping_address\": \"dolorum\",
    \"shipping_status\": \"ordered\",
    \"delivered_to\": \"Mr Robin\",
    \"shipping_charges\": 10,
    \"packing_charge\": 10,
    \"exchange_rate\": 1,
    \"selling_price_group_id\": 5,
    \"pay_term_number\": 6,
    \"pay_term_type\": \"months\",
    \"is_recurring\": 0,
    \"recur_interval\": 16,
    \"recur_interval_type\": \"days\",
    \"subscription_repeat_on\": 7,
    \"subscription_no\": \"totam\",
    \"recur_repetitions\": 9,
    \"rp_redeemed\": 8,
    \"rp_redeemed_amount\": 13.5,
    \"types_of_service_id\": 16,
    \"service_custom_field_1\": \"est\",
    \"service_custom_field_2\": \"saepe\",
    \"service_custom_field_3\": \"quasi\",
    \"service_custom_field_4\": \"fugiat\",
    \"service_custom_field_5\": \"numquam\",
    \"service_custom_field_6\": \"laborum\",
    \"round_off_amount\": 87.78989,
    \"table_id\": 1,
    \"service_staff_id\": 8,
    \"change_return\": 0,
    \"change_return_id\": 1,
    \"products\": [
        \"quae\"
    ],
    \"payments\": [
        \"minima\"
    ]
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/sell/possimus"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "contact_id": 17,
    "transaction_date": "2020-5-7 15:20:22",
    "status": "final",
    "sub_status": "null",
    "is_quotation": true,
    "tax_rate_id": 7,
    "discount_amount": 10,
    "discount_type": "fixed",
    "sale_note": "pariatur",
    "source": "mollitia",
    "staff_note": "sunt",
    "is_suspend": false,
    "commission_agent": 4,
    "shipping_details": "Express Delivery",
    "shipping_address": "dolorum",
    "shipping_status": "ordered",
    "delivered_to": "Mr Robin",
    "shipping_charges": 10,
    "packing_charge": 10,
    "exchange_rate": 1,
    "selling_price_group_id": 5,
    "pay_term_number": 6,
    "pay_term_type": "months",
    "is_recurring": 0,
    "recur_interval": 16,
    "recur_interval_type": "days",
    "subscription_repeat_on": 7,
    "subscription_no": "totam",
    "recur_repetitions": 9,
    "rp_redeemed": 8,
    "rp_redeemed_amount": 13.5,
    "types_of_service_id": 16,
    "service_custom_field_1": "est",
    "service_custom_field_2": "saepe",
    "service_custom_field_3": "quasi",
    "service_custom_field_4": "fugiat",
    "service_custom_field_5": "numquam",
    "service_custom_field_6": "laborum",
    "round_off_amount": 87.78989,
    "table_id": 1,
    "service_staff_id": 8,
    "change_return": 0,
    "change_return_id": 1,
    "products": [
        "quae"
    ],
    "payments": [
        "minima"
    ]
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'https://pos.ultimatefosters.com/connector/api/sell/possimus',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'contact_id' => 17,
            'transaction_date' => '2020-5-7 15:20:22',
            'status' => 'final',
            'sub_status' => 'null',
            'is_quotation' => true,
            'tax_rate_id' => 7,
            'discount_amount' => 10.0,
            'discount_type' => 'fixed',
            'sale_note' => 'pariatur',
            'source' => 'mollitia',
            'staff_note' => 'sunt',
            'is_suspend' => false,
            'commission_agent' => 4,
            'shipping_details' => 'Express Delivery',
            'shipping_address' => 'dolorum',
            'shipping_status' => 'ordered',
            'delivered_to' => 'Mr Robin',
            'shipping_charges' => 10.0,
            'packing_charge' => 10.0,
            'exchange_rate' => 1.0,
            'selling_price_group_id' => 5,
            'pay_term_number' => 6,
            'pay_term_type' => 'months',
            'is_recurring' => 0,
            'recur_interval' => 16,
            'recur_interval_type' => 'days',
            'subscription_repeat_on' => 7,
            'subscription_no' => 'totam',
            'recur_repetitions' => 9,
            'rp_redeemed' => 8,
            'rp_redeemed_amount' => 13.5,
            'types_of_service_id' => 16,
            'service_custom_field_1' => 'est',
            'service_custom_field_2' => 'saepe',
            'service_custom_field_3' => 'quasi',
            'service_custom_field_4' => 'fugiat',
            'service_custom_field_5' => 'numquam',
            'service_custom_field_6' => 'laborum',
            'round_off_amount' => 87.78989,
            'table_id' => 1,
            'service_staff_id' => 8,
            'change_return' => 0.0,
            'change_return_id' => 1,
            'products' => [
                'quae',
            ],
            'payments' => [
                'minima',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": 91,
    "business_id": 1,
    "location_id": 1,
    "res_table_id": null,
    "res_waiter_id": null,
    "res_order_status": null,
    "type": "sell",
    "sub_type": null,
    "status": "final",
    "is_quotation": 0,
    "payment_status": "paid",
    "adjustment_type": null,
    "contact_id": 1,
    "customer_group_id": 1,
    "invoice_no": "AS0020",
    "ref_no": "",
    "source": null,
    "subscription_no": null,
    "subscription_repeat_on": null,
    "transaction_date": "25-09-2020 15:22",
    "total_before_tax": 962.5,
    "tax_id": null,
    "tax_amount": 0,
    "discount_type": "fixed",
    "discount_amount": "19.5000",
    "rp_redeemed": 0,
    "rp_redeemed_amount": "0.0000",
    "shipping_details": null,
    "shipping_address": null,
    "shipping_status": null,
    "delivered_to": null,
    "shipping_charges": "0.0000",
    "additional_notes": null,
    "staff_note": null,
    "round_off_amount": "0.0000",
    "final_total": 943,
    "expense_category_id": null,
    "expense_for": null,
    "commission_agent": null,
    "document": null,
    "is_direct_sale": 0,
    "is_suspend": 0,
    "exchange_rate": "1.000",
    "total_amount_recovered": null,
    "transfer_parent_id": null,
    "return_parent_id": null,
    "opening_stock_product_id": null,
    "created_by": 9,
    "import_batch": null,
    "import_time": null,
    "types_of_service_id": null,
    "packing_charge": "0.0000",
    "packing_charge_type": null,
    "service_custom_field_1": null,
    "service_custom_field_2": null,
    "service_custom_field_3": null,
    "service_custom_field_4": null,
    "mfg_parent_production_purchase_id": null,
    "mfg_wasted_units": null,
    "mfg_production_cost": "0.0000",
    "mfg_production_cost_type": "percentage",
    "mfg_is_final": 0,
    "is_created_from_api": 0,
    "essentials_duration": "0.00",
    "essentials_duration_unit": null,
    "essentials_amount_per_unit_duration": "0.0000",
    "essentials_allowances": null,
    "essentials_deductions": null,
    "rp_earned": 0,
    "repair_completed_on": null,
    "repair_warranty_id": null,
    "repair_brand_id": null,
    "repair_status_id": null,
    "repair_model_id": null,
    "repair_job_sheet_id": null,
    "repair_defects": null,
    "repair_serial_no": null,
    "repair_checklist": null,
    "repair_security_pwd": null,
    "repair_security_pattern": null,
    "repair_due_date": null,
    "repair_device_id": null,
    "repair_updates_notif": 0,
    "order_addresses": null,
    "is_recurring": 0,
    "recur_interval": 1,
    "recur_interval_type": "days",
    "recur_repetitions": 0,
    "recur_stopped_on": null,
    "recur_parent_id": null,
    "invoice_token": null,
    "pay_term_number": null,
    "pay_term_type": null,
    "pjt_project_id": null,
    "pjt_title": null,
    "woocommerce_order_id": null,
    "selling_price_group_id": 0,
    "created_at": "2020-09-23 20:16:19",
    "updated_at": "2020-09-25 17:57:08",
    "payment_lines": [
        {
            "id": 55,
            "transaction_id": 91,
            "business_id": 1,
            "is_return": 0,
            "amount": "461.7500",
            "method": "cash",
            "transaction_no": null,
            "card_transaction_number": null,
            "card_number": null,
            "card_type": "credit",
            "card_holder_name": null,
            "card_month": null,
            "card_year": null,
            "card_security": null,
            "cheque_number": null,
            "bank_account_number": null,
            "paid_on": "2020-09-23 20:16:19",
            "created_by": 9,
            "is_advance": 0,
            "payment_for": 1,
            "parent_id": null,
            "note": null,
            "document": null,
            "payment_ref_no": "SP2020/0018",
            "account_id": null,
            "created_at": "2020-09-23 20:16:19",
            "updated_at": "2020-09-23 20:16:19"
        }
    ],
    "invoice_url": "http://local.pos.com/invoice/6dfd77eb80f4976b456128e7f1311c9f",
    "payment_link": "http://local.pos.com/pay/6dfd77eb80f4976b456128e7f1311c9f"
}
 

Request   

PUT connector/api/sell/{id}

PATCH connector/api/sell/{id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the sell. Example: possimus

sell   string   

id of sell to update Example: 6

Body Parameters

contact_id   integer  optional  

id of the customer Example: 17

transaction_date   string  optional  

transaction date format:Y-m-d H:i:s, Example: 2020-5-7 15:20:22

status   string  optional  

sale status (final, draft) Example: final

sub_status   string  optional  

sale sub status ("quotation" for quotation and "proforma" for proforma invoice) Example: null

is_quotation   boolean  optional  

Is sell quotation (0, 1), If 1 status should be draft Example: true

tax_rate_id   integer  optional  

id of the tax rate applicable to the sale Example: 7

discount_amount   number  optional  

discount amount applicable to the sale Example: 10

discount_type   string  optional  

type of the discount amount (fixed, percentage) Example: fixed

sale_note   string  optional  

Example: pariatur

source   string  optional  

Source of the invoice Example: mollitia

staff_note   string  optional  

Example: sunt

is_suspend   boolean  optional  

Is suspended sale (0, 1) Example: false

commission_agent   integer  optional  

commission agent id Example: 4

shipping_details   string  optional  

shipping details Example: Express Delivery

shipping_address   string  optional  

shipping address Example: dolorum

shipping_status   string  optional  

('ordered', 'packed', 'shipped', 'delivered', 'cancelled') Example: ordered

delivered_to   string  optional  

Name of the person recieved the consignment Example: Mr Robin

shipping_charges   number  optional  

shipping amount Example: 10

packing_charge   number  optional  

packing charge Example: 10

exchange_rate   number  optional  

exchange rate for the currency used Example: 1

selling_price_group_id   integer  optional  

id of the selling price group Example: 5

pay_term_number   integer  optional  

pay term value Example: 6

pay_term_type   string  optional  

type of the pay term value ('days', 'months') Example: months

is_recurring   integer  optional  

whether the invoice is recurring (0, 1) Example: 0

recur_interval   integer  optional  

value of the interval invoice will be regenerated Example: 16

recur_interval_type   string  optional  

type of the recur interval ('days', 'months', 'years') Example: days

subscription_repeat_on   integer  optional  

day of the month on which invoice will be generated if recur interval type is months (1-30) Example: 7

subscription_no   string  optional  

subscription number Example: totam

recur_repetitions   integer  optional  

total number of invoices to be generated Example: 9

rp_redeemed   integer  optional  

reward points redeemed Example: 8

rp_redeemed_amount   number  optional  

reward point redeemed amount after conversion Example: 13.5

types_of_service_id   integer  optional  

types of service id Example: 16

service_custom_field_1   string  optional  

types of service custom field 1 Example: est

service_custom_field_2   string  optional  

types of service custom field 2 Example: saepe

service_custom_field_3   string  optional  

types of service custom field 3 Example: quasi

service_custom_field_4   string  optional  

types of service custom field 4 Example: fugiat

service_custom_field_5   string  optional  

types of service custom field 5 Example: numquam

service_custom_field_6   string  optional  

types of service custom field 6 Example: laborum

round_off_amount   number  optional  

round off amount on total payable Example: 87.78989

table_id   integer  optional  

id of the table Example: 1

service_staff_id   integer  optional  

id of the service staff assigned to the sale Example: 8

change_return   number  optional  

Excess paid amount Example: 0

change_return_id   integer  optional  

id of the change return payment if exists Example: 1

products   string[]   

array of the products for the sale

*   object  optional  
sell_line_id   integer  optional  

sell line id for existing item only Example: 9

product_id   integer  optional  

product id Example: 17

variation_id   integer  optional  

variation id Example: 58

quantity   number  optional  

quantity Example: 1

unit_price   number  optional  

unit selling price Example: 437.5

tax_rate_id   integer  optional  

tax rate id applicable on the product Example: 12

discount_amount   number  optional  

discount amount applicable on the product Example: 0

discount_type   string  optional  

type of discount amount ('fixed', 'percentage') Example: percentage

sub_unit_id   integer  optional  

sub unit id Example: 11

note   string  optional  

note for the product Example: magnam

payments   string[]  optional  

payment lines for the sale

*   object  optional  
payment_id   integer  optional  

payment id for existing payment line Example: 12

amount   number  optional  

amount of the payment Example: 453.13

method   string  optional  

payment methods ('cash', 'card', 'cheque', 'bank_transfer', 'other', 'custom_pay_1', 'custom_pay_2', 'custom_pay_3') Example: cash

account_id   integer  optional  

account id Example: 8

card_number   string  optional  

Example: officiis

card_holder_name   string  optional  

Example: sed

card_transaction_number   string  optional  

Example: sunt

card_type   string  optional  

Example: nam

card_month   string  optional  

Example: non

card_year   string  optional  

Example: voluptatem

card_security   string  optional  

Example: adipisci

transaction_no_1   string  optional  

Example: aut

transaction_no_2   string  optional  

Example: voluptate

transaction_no_3   string  optional  

Example: sint

note   string  optional  

payment note Example: tempore

cheque_number   string  optional  

Example: enim

bank_account_number   string  optional  

Example: consequatur

Delete Sell

requires authentication

Example request:
curl --request DELETE \
    "https://pos.ultimatefosters.com/connector/api/sell/id" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/sell/id"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://pos.ultimatefosters.com/connector/api/sell/id',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

DELETE connector/api/sell/{id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the sell. Example: id

sell   string   

id of the sell to be deleted Example: sint

Add Sell Return

requires authentication

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/connector/api/sell-return" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"transaction_id\": 18,
    \"transaction_date\": \"2020-5-7 15:20:22\",
    \"invoice_no\": \"perferendis\",
    \"discount_amount\": 10,
    \"discount_type\": \"fixed\",
    \"products\": [
        \"itaque\"
    ]
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/sell-return"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "transaction_id": 18,
    "transaction_date": "2020-5-7 15:20:22",
    "invoice_no": "perferendis",
    "discount_amount": 10,
    "discount_type": "fixed",
    "products": [
        "itaque"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/connector/api/sell-return',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'transaction_id' => 18,
            'transaction_date' => '2020-5-7 15:20:22',
            'invoice_no' => 'perferendis',
            'discount_amount' => 10.0,
            'discount_type' => 'fixed',
            'products' => [
                'itaque',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": 159,
    "business_id": 1,
    "location_id": 1,
    "res_table_id": null,
    "res_waiter_id": null,
    "res_order_status": null,
    "type": "sell_return",
    "sub_type": null,
    "status": "final",
    "is_quotation": 0,
    "payment_status": "paid",
    "adjustment_type": null,
    "contact_id": 1,
    "customer_group_id": null,
    "invoice_no": "CN2020/0005",
    "ref_no": null,
    "subscription_no": null,
    "subscription_repeat_on": null,
    "transaction_date": "2020-11-17 00:00:00",
    "total_before_tax": 3,
    "tax_id": null,
    "tax_amount": 0,
    "discount_type": "percentage",
    "discount_amount": 12,
    "rp_redeemed": 0,
    "rp_redeemed_amount": "0.0000",
    "shipping_details": null,
    "shipping_address": null,
    "shipping_status": null,
    "delivered_to": null,
    "shipping_charges": "0.0000",
    "additional_notes": null,
    "staff_note": null,
    "round_off_amount": "0.0000",
    "final_total": 2.64,
    "expense_category_id": null,
    "expense_for": null,
    "commission_agent": null,
    "document": null,
    "is_direct_sale": 0,
    "is_suspend": 0,
    "exchange_rate": "1.000",
    "total_amount_recovered": null,
    "transfer_parent_id": null,
    "return_parent_id": 157,
    "opening_stock_product_id": null,
    "created_by": 9,
    "import_batch": null,
    "import_time": null,
    "types_of_service_id": null,
    "packing_charge": null,
    "packing_charge_type": null,
    "service_custom_field_1": null,
    "service_custom_field_2": null,
    "service_custom_field_3": null,
    "service_custom_field_4": null,
    "mfg_parent_production_purchase_id": null,
    "mfg_wasted_units": null,
    "mfg_production_cost": "0.0000",
    "mfg_production_cost_type": "percentage",
    "mfg_is_final": 0,
    "is_created_from_api": 0,
    "essentials_duration": "0.00",
    "essentials_duration_unit": null,
    "essentials_amount_per_unit_duration": "0.0000",
    "essentials_allowances": null,
    "essentials_deductions": null,
    "rp_earned": 0,
    "repair_completed_on": null,
    "repair_warranty_id": null,
    "repair_brand_id": null,
    "repair_status_id": null,
    "repair_model_id": null,
    "repair_job_sheet_id": null,
    "repair_defects": null,
    "repair_serial_no": null,
    "repair_checklist": null,
    "repair_security_pwd": null,
    "repair_security_pattern": null,
    "repair_due_date": null,
    "repair_device_id": null,
    "repair_updates_notif": 0,
    "order_addresses": null,
    "is_recurring": 0,
    "recur_interval": null,
    "recur_interval_type": null,
    "recur_repetitions": null,
    "recur_stopped_on": null,
    "recur_parent_id": null,
    "invoice_token": null,
    "pay_term_number": null,
    "pay_term_type": null,
    "pjt_project_id": null,
    "pjt_title": null,
    "woocommerce_order_id": null,
    "selling_price_group_id": null,
    "created_at": "2020-11-17 12:05:11",
    "updated_at": "2020-11-17 13:22:09"
}
 

Request   

POST connector/api/sell-return

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

transaction_id   integer   

Id of the sell Example: 18

transaction_date   string  optional  

transaction date format:Y-m-d H:i:s, Example: 2020-5-7 15:20:22

invoice_no   string  optional  

Invoice number of the return Example: perferendis

discount_amount   number  optional  

discount amount applicable to the sale Example: 10

discount_type   string  optional  

type of the discount amount (fixed, percentage) Example: fixed

products   string[]   

array of the products for the sale

*   object  optional  
sell_line_id   integer   

sell line id Example: 2

quantity   number   

quantity to be returned from the sell line Example: 1

unit_price_inc_tax   number   

unit selling price of the returning item Example: 437.5

List Sell Return

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/list-sell-return" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/list-sell-return"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/list-sell-return',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 159,
            "business_id": 1,
            "location_id": 1,
            "res_table_id": null,
            "res_waiter_id": null,
            "res_order_status": null,
            "type": "sell_return",
            "sub_type": null,
            "status": "final",
            "is_quotation": 0,
            "payment_status": "partial",
            "adjustment_type": null,
            "contact_id": 1,
            "customer_group_id": null,
            "invoice_no": "CN2020/0005",
            "ref_no": null,
            "subscription_no": null,
            "subscription_repeat_on": null,
            "transaction_date": "2020-11-17 00:00:00",
            "total_before_tax": "3.0000",
            "tax_id": null,
            "tax_amount": "0.0000",
            "discount_type": "percentage",
            "discount_amount": "12.0000",
            "rp_redeemed": 0,
            "rp_redeemed_amount": "0.0000",
            "shipping_details": null,
            "shipping_address": null,
            "shipping_status": null,
            "delivered_to": null,
            "shipping_charges": "0.0000",
            "additional_notes": null,
            "staff_note": null,
            "round_off_amount": "0.0000",
            "final_total": "2.6400",
            "expense_category_id": null,
            "expense_for": null,
            "commission_agent": null,
            "document": null,
            "is_direct_sale": 0,
            "is_suspend": 0,
            "exchange_rate": "1.000",
            "total_amount_recovered": null,
            "transfer_parent_id": null,
            "return_parent_id": 157,
            "opening_stock_product_id": null,
            "created_by": 9,
            "import_batch": null,
            "import_time": null,
            "types_of_service_id": null,
            "packing_charge": null,
            "packing_charge_type": null,
            "service_custom_field_1": null,
            "service_custom_field_2": null,
            "service_custom_field_3": null,
            "service_custom_field_4": null,
            "mfg_parent_production_purchase_id": null,
            "mfg_wasted_units": null,
            "mfg_production_cost": "0.0000",
            "mfg_production_cost_type": "percentage",
            "mfg_is_final": 0,
            "is_created_from_api": 0,
            "essentials_duration": "0.00",
            "essentials_duration_unit": null,
            "essentials_amount_per_unit_duration": "0.0000",
            "essentials_allowances": null,
            "essentials_deductions": null,
            "rp_earned": 0,
            "repair_completed_on": null,
            "repair_warranty_id": null,
            "repair_brand_id": null,
            "repair_status_id": null,
            "repair_model_id": null,
            "repair_job_sheet_id": null,
            "repair_defects": null,
            "repair_serial_no": null,
            "repair_checklist": null,
            "repair_security_pwd": null,
            "repair_security_pattern": null,
            "repair_due_date": null,
            "repair_device_id": null,
            "repair_updates_notif": 0,
            "order_addresses": null,
            "is_recurring": 0,
            "recur_interval": null,
            "recur_interval_type": null,
            "recur_repetitions": null,
            "recur_stopped_on": null,
            "recur_parent_id": null,
            "invoice_token": null,
            "pay_term_number": null,
            "pay_term_type": null,
            "pjt_project_id": null,
            "pjt_title": null,
            "woocommerce_order_id": null,
            "selling_price_group_id": null,
            "created_at": "2020-11-17 12:05:11",
            "updated_at": "2020-11-17 13:22:09",
            "payment_lines": [
                {
                    "id": 126,
                    "transaction_id": 159,
                    "business_id": 1,
                    "is_return": 0,
                    "amount": "1.8000",
                    "method": "cash",
                    "transaction_no": null,
                    "card_transaction_number": null,
                    "card_number": null,
                    "card_type": "credit",
                    "card_holder_name": null,
                    "card_month": null,
                    "card_year": null,
                    "card_security": null,
                    "cheque_number": null,
                    "bank_account_number": null,
                    "paid_on": "2020-11-17 12:05:00",
                    "created_by": 9,
                    "is_advance": 0,
                    "payment_for": 1,
                    "parent_id": null,
                    "note": null,
                    "document": null,
                    "payment_ref_no": "SP2020/0078",
                    "account_id": null,
                    "created_at": "2020-11-17 12:05:58",
                    "updated_at": "2020-11-17 12:05:58"
                }
            ],
            "return_parent_sell": {
                "id": 157,
                "business_id": 1,
                "location_id": 1,
                "res_table_id": null,
                "res_waiter_id": null,
                "res_order_status": null,
                "type": "sell",
                "sub_type": null,
                "status": "final",
                "is_quotation": 0,
                "payment_status": "paid",
                "adjustment_type": null,
                "contact_id": 1,
                "customer_group_id": null,
                "invoice_no": "AS0073",
                "ref_no": "",
                "subscription_no": null,
                "subscription_repeat_on": null,
                "transaction_date": "2020-11-13 12:42:17",
                "total_before_tax": "6.2500",
                "tax_id": null,
                "tax_amount": "0.0000",
                "discount_type": "percentage",
                "discount_amount": "10.0000",
                "rp_redeemed": 0,
                "rp_redeemed_amount": "0.0000",
                "shipping_details": null,
                "shipping_address": null,
                "shipping_status": null,
                "delivered_to": null,
                "shipping_charges": "0.0000",
                "additional_notes": null,
                "staff_note": null,
                "round_off_amount": "0.0000",
                "final_total": "5.6300",
                "expense_category_id": null,
                "expense_for": null,
                "commission_agent": null,
                "document": null,
                "is_direct_sale": 0,
                "is_suspend": 0,
                "exchange_rate": "1.000",
                "total_amount_recovered": null,
                "transfer_parent_id": null,
                "return_parent_id": null,
                "opening_stock_product_id": null,
                "created_by": 9,
                "import_batch": null,
                "import_time": null,
                "types_of_service_id": null,
                "packing_charge": "0.0000",
                "packing_charge_type": null,
                "service_custom_field_1": null,
                "service_custom_field_2": null,
                "service_custom_field_3": null,
                "service_custom_field_4": null,
                "mfg_parent_production_purchase_id": null,
                "mfg_wasted_units": null,
                "mfg_production_cost": "0.0000",
                "mfg_production_cost_type": "percentage",
                "mfg_is_final": 0,
                "is_created_from_api": 0,
                "essentials_duration": "0.00",
                "essentials_duration_unit": null,
                "essentials_amount_per_unit_duration": "0.0000",
                "essentials_allowances": null,
                "essentials_deductions": null,
                "rp_earned": 0,
                "repair_completed_on": null,
                "repair_warranty_id": null,
                "repair_brand_id": null,
                "repair_status_id": null,
                "repair_model_id": null,
                "repair_job_sheet_id": null,
                "repair_defects": null,
                "repair_serial_no": null,
                "repair_checklist": null,
                "repair_security_pwd": null,
                "repair_security_pattern": null,
                "repair_due_date": null,
                "repair_device_id": null,
                "repair_updates_notif": 0,
                "order_addresses": null,
                "is_recurring": 0,
                "recur_interval": 1,
                "recur_interval_type": "days",
                "recur_repetitions": 0,
                "recur_stopped_on": null,
                "recur_parent_id": null,
                "invoice_token": null,
                "pay_term_number": null,
                "pay_term_type": null,
                "pjt_project_id": null,
                "pjt_title": null,
                "woocommerce_order_id": null,
                "selling_price_group_id": 0,
                "created_at": "2020-11-13 12:42:17",
                "updated_at": "2020-11-13 12:42:18",
                "sell_lines": [
                    {
                        "id": 139,
                        "transaction_id": 157,
                        "product_id": 157,
                        "variation_id": 205,
                        "quantity": 5,
                        "mfg_waste_percent": "0.0000",
                        "quantity_returned": "3.0000",
                        "unit_price_before_discount": "1.2500",
                        "unit_price": "1.2500",
                        "line_discount_type": "fixed",
                        "line_discount_amount": "0.0000",
                        "unit_price_inc_tax": "1.2500",
                        "item_tax": "0.0000",
                        "tax_id": null,
                        "discount_id": null,
                        "lot_no_line_id": null,
                        "sell_line_note": "",
                        "res_service_staff_id": null,
                        "res_line_order_status": null,
                        "woocommerce_line_items_id": null,
                        "parent_sell_line_id": null,
                        "children_type": "",
                        "sub_unit_id": null,
                        "created_at": "2020-11-13 12:42:17",
                        "updated_at": "2020-11-17 13:22:09"
                    }
                ]
            }
        }
    ],
    "links": {
        "first": "http://local.pos.com/connector/api/list-sell-return?sell_id=157&page=1",
        "last": null,
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "path": "http://local.pos.com/connector/api/list-sell-return",
        "per_page": 10,
        "to": 1
    }
}
 

Request   

GET connector/api/list-sell-return

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

sell_id   string  optional  

Id of the sell for which return is added Example: qui

Update shipping status

requires authentication

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/connector/api/update-shipping-status" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 3,
    \"shipping_status\": \"ordered\",
    \"delivered_to\": \"dolorem\"
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/update-shipping-status"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": 3,
    "shipping_status": "ordered",
    "delivered_to": "dolorem"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/connector/api/update-shipping-status',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'id' => 3,
            'shipping_status' => 'ordered',
            'delivered_to' => 'dolorem',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST connector/api/update-shipping-status

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

id   integer   

id of the sale Example: 3

shipping_status   string  optional  

('ordered', 'packed', 'shipped', 'delivered', 'cancelled') Example: ordered

delivered_to   string  optional  

Name of the consignee Example: dolorem

Superadmin

If SaaS installed get active subscription details, else return the enabled modules details in package_details

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/active-subscription" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/active-subscription"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/active-subscription',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 1,
        "business_id": 1,
        "package_id": 3,
        "start_date": "2020-09-05 00:00:00",
        "trial_end_date": "2020-09-15",
        "end_date": "2020-10-05 00:00:00",
        "package_price": "599.9900",
        "package_details": {
            "location_count": 0,
            "user_count": 0,
            "product_count": 0,
            "invoice_count": 0,
            "name": "Unlimited",
            "woocommerce_module": 1,
            "essentials_module": 1
        },
        "created_id": 1,
        "paid_via": "stripe",
        "payment_transaction_id": "ch_1CuLdQAhokBpT93LVZNg2At6",
        "status": "approved",
        "deleted_at": null,
        "created_at": "2018-08-01 07:49:09",
        "updated_at": "2018-08-01 07:49:09",
        "locations_created": 1,
        "users_created": 6,
        "products_created": 2,
        "invoices_created": 1
    }
}
 

Request   

GET connector/api/active-subscription

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Get Superadmin Package List

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/packages" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/packages"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/packages',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "name": "Starter - Free",
            "description": "Give it a test drive...",
            "location_count": 0,
            "user_count": 0,
            "product_count": 0,
            "bookings": 0,
            "kitchen": 0,
            "order_screen": 0,
            "tables": 0,
            "invoice_count": 0,
            "interval": "months",
            "interval_count": 1,
            "trial_days": 10,
            "price": "0.0000",
            "custom_permissions": {
                "assetmanagement_module": "1",
                "connector_module": "1",
                "crm_module": "1",
                "essentials_module": "1",
                "manufacturing_module": "1",
                "productcatalogue_module": "1",
                "project_module": "1",
                "repair_module": "1",
                "woocommerce_module": "1"
            },
            "created_by": 1,
            "sort_order": 0,
            "is_active": 1,
            "is_private": 0,
            "is_one_time": 0,
            "enable_custom_link": 0,
            "custom_link": "",
            "custom_link_text": "",
            "deleted_at": null,
            "created_at": "2020-10-09 16:38:02",
            "updated_at": "2020-11-11 12:19:17"
        },
        {
            "id": 2,
            "name": "Regular",
            "description": "For Small Shops",
            "location_count": 0,
            "user_count": 0,
            "product_count": 0,
            "bookings": 0,
            "kitchen": 0,
            "order_screen": 0,
            "tables": 0,
            "invoice_count": 0,
            "interval": "months",
            "interval_count": 1,
            "trial_days": 10,
            "price": "199.9900",
            "custom_permissions": {
                "repair_module": "1"
            },
            "created_by": 1,
            "sort_order": 1,
            "is_active": 1,
            "is_private": 0,
            "is_one_time": 0,
            "enable_custom_link": 0,
            "custom_link": null,
            "custom_link_text": null,
            "deleted_at": null,
            "created_at": "2020-10-09 16:38:02",
            "updated_at": "2020-10-09 16:38:02"
        },
        {
            "id": 3,
            "name": "Unlimited",
            "description": "For Large Business",
            "location_count": 0,
            "user_count": 0,
            "product_count": 0,
            "bookings": 0,
            "kitchen": 0,
            "order_screen": 0,
            "tables": 0,
            "invoice_count": 0,
            "interval": "months",
            "interval_count": 1,
            "trial_days": 10,
            "price": "599.9900",
            "custom_permissions": {
                "assetmanagement_module": "1",
                "connector_module": "1",
                "crm_module": "1",
                "essentials_module": "1",
                "manufacturing_module": "1",
                "productcatalogue_module": "1",
                "project_module": "1",
                "repair_module": "1",
                "woocommerce_module": "1"
            },
            "created_by": 1,
            "sort_order": 1,
            "is_active": 1,
            "is_private": 0,
            "is_one_time": 0,
            "enable_custom_link": 0,
            "custom_link": "",
            "custom_link_text": "",
            "deleted_at": null,
            "created_at": "2020-10-09 16:38:02",
            "updated_at": "2020-11-02 12:09:19"
        }
    ]
}
 

Request   

GET connector/api/packages

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Table management

List tables

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/table?location_id=1" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/table"
);

const params = {
    "location_id": "1",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/table',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'location_id' => '1',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 5,
            "business_id": 1,
            "location_id": 1,
            "name": "Table 1",
            "description": null,
            "created_by": 9,
            "deleted_at": null,
            "created_at": "2020-06-04 22:36:37",
            "updated_at": "2020-06-04 22:36:37"
        }
    ]
}
 

Request   

GET connector/api/table

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

location_id   integer  optional  

id of the location Example: 1

Show the specified table

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/table/ipsam" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/table/ipsam"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/table/ipsam',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 5,
            "business_id": 1,
            "location_id": 1,
            "name": "Table 1",
            "description": null,
            "created_by": 9,
            "deleted_at": null,
            "created_at": "2020-06-04 22:36:37",
            "updated_at": "2020-06-04 22:36:37"
        }
    ]
}
 

Request   

GET connector/api/table/{id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the table. Example: ipsam

table   string   

comma separated ids of required tables Example: 5

Tax management

List taxes

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/tax" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/tax"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/tax',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "business_id": 1,
            "name": "VAT@10%",
            "amount": 10,
            "is_tax_group": 0,
            "created_by": 1,
            "woocommerce_tax_rate_id": null,
            "deleted_at": null,
            "created_at": "2018-01-04 02:40:07",
            "updated_at": "2018-01-04 02:40:07"
        },
        {
            "id": 2,
            "business_id": 1,
            "name": "CGST@10%",
            "amount": 10,
            "is_tax_group": 0,
            "created_by": 1,
            "woocommerce_tax_rate_id": null,
            "deleted_at": null,
            "created_at": "2018-01-04 02:40:55",
            "updated_at": "2018-01-04 02:40:55"
        },
        {
            "id": 3,
            "business_id": 1,
            "name": "SGST@8%",
            "amount": 8,
            "is_tax_group": 0,
            "created_by": 1,
            "woocommerce_tax_rate_id": null,
            "deleted_at": null,
            "created_at": "2018-01-04 02:41:13",
            "updated_at": "2018-01-04 02:41:13"
        },
        {
            "id": 4,
            "business_id": 1,
            "name": "GST@18%",
            "amount": 18,
            "is_tax_group": 1,
            "created_by": 1,
            "woocommerce_tax_rate_id": null,
            "deleted_at": null,
            "created_at": "2018-01-04 02:42:19",
            "updated_at": "2018-01-04 02:42:19"
        }
    ]
}
 

Request   

GET connector/api/tax

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Get the specified tax

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/tax/omnis" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/tax/omnis"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/tax/omnis',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "business_id": 1,
            "name": "VAT@10%",
            "amount": 10,
            "is_tax_group": 0,
            "created_by": 1,
            "woocommerce_tax_rate_id": null,
            "deleted_at": null,
            "created_at": "2018-01-04 02:40:07",
            "updated_at": "2018-01-04 02:40:07"
        }
    ]
}
 

Request   

GET connector/api/tax/{id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the tax. Example: omnis

tax   string   

comma separated ids of required taxes Example: 1

Taxonomy management

List taxonomy

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/taxonomy?type=nihil" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/taxonomy"
);

const params = {
    "type": "nihil",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/taxonomy',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'type' => 'nihil',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "name": "Men's",
            "business_id": 1,
            "short_code": null,
            "parent_id": 0,
            "created_by": 1,
            "category_type": "product",
            "description": null,
            "slug": null,
            "woocommerce_cat_id": null,
            "deleted_at": null,
            "created_at": "2018-01-03 21:06:34",
            "updated_at": "2018-01-03 21:06:34",
            "sub_categories": [
                {
                    "id": 4,
                    "name": "Jeans",
                    "business_id": 1,
                    "short_code": null,
                    "parent_id": 1,
                    "created_by": 1,
                    "category_type": "product",
                    "description": null,
                    "slug": null,
                    "woocommerce_cat_id": null,
                    "deleted_at": null,
                    "created_at": "2018-01-03 21:07:34",
                    "updated_at": "2018-01-03 21:07:34"
                },
                {
                    "id": 5,
                    "name": "Shirts",
                    "business_id": 1,
                    "short_code": null,
                    "parent_id": 1,
                    "created_by": 1,
                    "category_type": "product",
                    "description": null,
                    "slug": null,
                    "woocommerce_cat_id": null,
                    "deleted_at": null,
                    "created_at": "2018-01-03 21:08:18",
                    "updated_at": "2018-01-03 21:08:18"
                }
            ]
        },
        {
            "id": 21,
            "name": "Food & Grocery",
            "business_id": 1,
            "short_code": null,
            "parent_id": 0,
            "created_by": 1,
            "category_type": "product",
            "description": null,
            "slug": null,
            "woocommerce_cat_id": null,
            "deleted_at": null,
            "created_at": "2018-01-06 05:31:35",
            "updated_at": "2018-01-06 05:31:35",
            "sub_categories": []
        }
    ]
}
 

Request   

GET connector/api/taxonomy

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

type   string  optional  

Type of taxonomy (product, device, hrm_department) Example: nihil

Get the specified taxonomy

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/taxonomy/eligendi" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/taxonomy/eligendi"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/taxonomy/eligendi',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "name": "Men's",
            "business_id": 1,
            "short_code": null,
            "parent_id": 0,
            "created_by": 1,
            "category_type": "product",
            "description": null,
            "slug": null,
            "woocommerce_cat_id": null,
            "deleted_at": null,
            "created_at": "2018-01-03 21:06:34",
            "updated_at": "2018-01-03 21:06:34",
            "sub_categories": [
                {
                    "id": 4,
                    "name": "Jeans",
                    "business_id": 1,
                    "short_code": null,
                    "parent_id": 1,
                    "created_by": 1,
                    "category_type": "product",
                    "description": null,
                    "slug": null,
                    "woocommerce_cat_id": null,
                    "deleted_at": null,
                    "created_at": "2018-01-03 21:07:34",
                    "updated_at": "2018-01-03 21:07:34"
                },
                {
                    "id": 5,
                    "name": "Shirts",
                    "business_id": 1,
                    "short_code": null,
                    "parent_id": 1,
                    "created_by": 1,
                    "category_type": "product",
                    "description": null,
                    "slug": null,
                    "woocommerce_cat_id": null,
                    "deleted_at": null,
                    "created_at": "2018-01-03 21:08:18",
                    "updated_at": "2018-01-03 21:08:18"
                }
            ]
        }
    ]
}
 

Request   

GET connector/api/taxonomy/{id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the taxonomy. Example: eligendi

taxonomy   string   

comma separated ids of product categories Example: 1

Types of service management

List types of service

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/types-of-service" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/types-of-service"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/types-of-service',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "name": "Home Delivery",
            "description": null,
            "business_id": 1,
            "location_price_group": {
                "1": "0"
            },
            "packing_charge": "10.0000",
            "packing_charge_type": "fixed",
            "enable_custom_fields": 0,
            "created_at": "2020-06-04 22:41:13",
            "updated_at": "2020-06-04 22:41:13"
        }
    ]
}
 

Request   

GET connector/api/types-of-service

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Get the specified types of service

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/types-of-service/18" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/types-of-service/18"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/types-of-service/18',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "name": "Home Delivery",
            "description": null,
            "business_id": 1,
            "location_price_group": {
                "1": "0"
            },
            "packing_charge": "10.0000",
            "packing_charge_type": "fixed",
            "enable_custom_fields": 0,
            "created_at": "2020-06-04 22:41:13",
            "updated_at": "2020-06-04 22:41:13"
        }
    ]
}
 

Request   

GET connector/api/types-of-service/{id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the types of service. Example: 18

types_of_service   string   

comma separated ids of required types of services Example: 1

Unit management

List units

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/unit" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/unit"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/unit',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "business_id": 1,
            "actual_name": "Pieces",
            "short_name": "Pc(s)",
            "allow_decimal": 0,
            "base_unit_id": null,
            "base_unit_multiplier": null,
            "created_by": 1,
            "deleted_at": null,
            "created_at": "2018-01-03 15:15:20",
            "updated_at": "2018-01-03 15:15:20",
            "base_unit": null
        },
        {
            "id": 2,
            "business_id": 1,
            "actual_name": "Packets",
            "short_name": "packets",
            "allow_decimal": 0,
            "base_unit_id": null,
            "base_unit_multiplier": null,
            "created_by": 1,
            "deleted_at": null,
            "created_at": "2018-01-06 01:07:01",
            "updated_at": "2018-01-06 01:08:36",
            "base_unit": null
        },
        {
            "id": 15,
            "business_id": 1,
            "actual_name": "Dozen",
            "short_name": "dz",
            "allow_decimal": 0,
            "base_unit_id": 1,
            "base_unit_multiplier": "12.0000",
            "created_by": 9,
            "deleted_at": null,
            "created_at": "2020-07-20 13:11:09",
            "updated_at": "2020-07-20 13:11:09",
            "base_unit": {
                "id": 1,
                "business_id": 1,
                "actual_name": "Pieces",
                "short_name": "Pc(s)",
                "allow_decimal": 0,
                "base_unit_id": null,
                "base_unit_multiplier": null,
                "created_by": 1,
                "deleted_at": null,
                "created_at": "2018-01-03 15:15:20",
                "updated_at": "2018-01-03 15:15:20"
            }
        }
    ]
}
 

Request   

GET connector/api/unit

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Get the specified unit

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/unit/1" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/unit/1"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/unit/1',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "business_id": 1,
            "actual_name": "Pieces",
            "short_name": "Pc(s)",
            "allow_decimal": 0,
            "base_unit_id": null,
            "base_unit_multiplier": null,
            "created_by": 1,
            "deleted_at": null,
            "created_at": "2018-01-03 15:15:20",
            "updated_at": "2018-01-03 15:15:20",
            "base_unit": null
        }
    ]
}
 

Request   

GET connector/api/unit/{id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the unit. Example: 1

unit   string   

comma separated ids of the units Example: 1

User management

Get the loggedin user details.

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/user/loggedin" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/user/loggedin"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/user/loggedin',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 1,
        "user_type": "user",
        "surname": "Mr",
        "first_name": "Admin",
        "last_name": null,
        "username": "admin",
        "email": "[email protected]",
        "language": "en",
        "contact_no": null,
        "address": null,
        "business_id": 1,
        "max_sales_discount_percent": null,
        "allow_login": 1,
        "essentials_department_id": null,
        "essentials_designation_id": null,
        "status": "active",
        "crm_contact_id": null,
        "is_cmmsn_agnt": 0,
        "cmmsn_percent": "0.00",
        "selected_contacts": 0,
        "dob": null,
        "gender": null,
        "marital_status": null,
        "blood_group": null,
        "contact_number": null,
        "fb_link": null,
        "twitter_link": null,
        "social_media_1": null,
        "social_media_2": null,
        "permanent_address": null,
        "current_address": null,
        "guardian_name": null,
        "custom_field_1": null,
        "custom_field_2": null,
        "custom_field_3": null,
        "custom_field_4": null,
        "bank_details": null,
        "id_proof_name": null,
        "id_proof_number": null,
        "deleted_at": null,
        "created_at": "2018-01-04 02:15:19",
        "updated_at": "2018-01-04 02:15:19"
    }
}
 

Request   

GET connector/api/user/loggedin

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Register User

requires authentication

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/connector/api/user-registration" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"username\": \"dicta\",
    \"email\": \"[email protected]\",
    \"user_type\": \"est\",
    \"surname\": \"in\",
    \"first_name\": \"quo\",
    \"last_name\": \"dignissimos\",
    \"is_active\": \"odit\",
    \"crm_contact_id\": 16,
    \"allow_login\": false,
    \"password\": \"xrZ>E^\",
    \"role\": 8,
    \"access_all_locations\": false,
    \"location_permissions\": [
        \"quae\"
    ],
    \"cmmsn_percent\": \"aliquid\",
    \"max_sales_discount_percent\": \"ea\",
    \"selected_contacts\": true,
    \"selected_contact_ids\": [
        \"illo\"
    ],
    \"dob\": \"consequuntur\",
    \"gender\": \"laborum\",
    \"marital_status\": \"rem\",
    \"blood_group\": \"sed\",
    \"contact_number\": \"aut\",
    \"alt_number\": \"qui\",
    \"family_number\": \"officiis\",
    \"fb_link\": \"quas\",
    \"twitter_link\": \"molestias\",
    \"social_media_1\": \"aliquid\",
    \"social_media_2\": \"est\",
    \"custom_field_1\": \"sint\",
    \"custom_field_2\": \"tenetur\",
    \"custom_field_3\": \"tempora\",
    \"custom_field_4\": \"officiis\",
    \"guardian_name\": \"sapiente\",
    \"id_proof_name\": \"ut\",
    \"id_proof_number\": \"nobis\",
    \"permanent_address\": \"sit\",
    \"current_address\": \"ipsum\"
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/user-registration"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "username": "dicta",
    "email": "[email protected]",
    "user_type": "est",
    "surname": "in",
    "first_name": "quo",
    "last_name": "dignissimos",
    "is_active": "odit",
    "crm_contact_id": 16,
    "allow_login": false,
    "password": "xrZ>E^",
    "role": 8,
    "access_all_locations": false,
    "location_permissions": [
        "quae"
    ],
    "cmmsn_percent": "aliquid",
    "max_sales_discount_percent": "ea",
    "selected_contacts": true,
    "selected_contact_ids": [
        "illo"
    ],
    "dob": "consequuntur",
    "gender": "laborum",
    "marital_status": "rem",
    "blood_group": "sed",
    "contact_number": "aut",
    "alt_number": "qui",
    "family_number": "officiis",
    "fb_link": "quas",
    "twitter_link": "molestias",
    "social_media_1": "aliquid",
    "social_media_2": "est",
    "custom_field_1": "sint",
    "custom_field_2": "tenetur",
    "custom_field_3": "tempora",
    "custom_field_4": "officiis",
    "guardian_name": "sapiente",
    "id_proof_name": "ut",
    "id_proof_number": "nobis",
    "permanent_address": "sit",
    "current_address": "ipsum"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/connector/api/user-registration',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'username' => 'dicta',
            'email' => '[email protected]',
            'user_type' => 'est',
            'surname' => 'in',
            'first_name' => 'quo',
            'last_name' => 'dignissimos',
            'is_active' => 'odit',
            'crm_contact_id' => 16,
            'allow_login' => false,
            'password' => 'xrZ>E^',
            'role' => 8,
            'access_all_locations' => false,
            'location_permissions' => [
                'quae',
            ],
            'cmmsn_percent' => 'aliquid',
            'max_sales_discount_percent' => 'ea',
            'selected_contacts' => true,
            'selected_contact_ids' => [
                'illo',
            ],
            'dob' => 'consequuntur',
            'gender' => 'laborum',
            'marital_status' => 'rem',
            'blood_group' => 'sed',
            'contact_number' => 'aut',
            'alt_number' => 'qui',
            'family_number' => 'officiis',
            'fb_link' => 'quas',
            'twitter_link' => 'molestias',
            'social_media_1' => 'aliquid',
            'social_media_2' => 'est',
            'custom_field_1' => 'sint',
            'custom_field_2' => 'tenetur',
            'custom_field_3' => 'tempora',
            'custom_field_4' => 'officiis',
            'guardian_name' => 'sapiente',
            'id_proof_name' => 'ut',
            'id_proof_number' => 'nobis',
            'permanent_address' => 'sit',
            'current_address' => 'ipsum',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "success": 1,
    "msg": "User added successfully",
    "user": {
        "surname": "Mr",
        "first_name": "Test",
        "last_name": "kumar",
        "email": "[email protected]",
        "user_type": "user_customer",
        "crm_contact_id": "2",
        "allow_login": 1,
        "username": "0017",
        "cmmsn_percent": "25",
        "max_sales_discount_percent": "52",
        "dob": "1997-10-12",
        "gender": "male",
        "marital_status": "unmarried",
        "blood_group": "0+",
        "contact_number": "4578451245",
        "alt_number": "7474747474",
        "family_number": "7474147414",
        "fb_link": "fb.com/username",
        "twitter_link": "twitter.com/username",
        "social_media_1": "test",
        "social_media_2": "test",
        "custom_field_1": "test",
        "custom_field_2": "test",
        "custom_field_3": "test",
        "custom_field_4": "test",
        "guardian_name": "test",
        "id_proof_name": "uid",
        "id_proof_number": "747845120124",
        "permanent_address": "test permanent adrress",
        "current_address": "test current address",
        "bank_details": "{\"account_holder_name\":\"test\",\"account_number\":\"test\",\"bank_name\":\"test\",\"bank_code\":\"test\",\"branch\":\"test\",\"tax_payer_id\":\"test\"}",
        "selected_contacts": "1",
        "status": "active",
        "business_id": 1,
        "updated_at": "2021-08-12 18:03:58",
        "created_at": "2021-08-12 18:03:58",
        "id": 140
    }
}
 

Request   

POST connector/api/user-registration

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

username   string  optional  

minimum 5 characters Example: dicta

email   string   

Example: [email protected]

user_type   string   

'user_customer' for contact/customer login & 'user' for general user Example: est

surname   string  optional  

prefix like Mr, Mrs,Dr Example: in

first_name   string   

Example: quo

last_name   string  optional  

Example: dignissimos

is_active   string   

'active', 'inactive', 'terminated' Example: odit

crm_contact_id   integer  optional  

if user_type is 'user_customer' then required Example: 16

allow_login   boolean  optional  

1 to allow login & 0 to disable login Example: false

password   string  optional  

minimum 6 characters & required if 'allow_login' is 1 Example: xrZ>E^

role   integer  optional  

id of role to be assigned to user & required if user_type is 'user' Example: 8

access_all_locations   boolean  optional  

1 if user has access all location else 0 & required if user_type is 'user' Example: false

location_permissions   string[]  optional  

array of location ids to be assigned to user & required if user_type is 'user' and 'access_all_locations' is 0

cmmsn_percent   decimal  optional  

Example: aliquid

max_sales_discount_percent   decimal  optional  

Example: ea

selected_contacts   boolean  optional  

1 or 0 Example: true

selected_contact_ids   string[]  optional  

array of contact ids & required if 'selected_contacts' is 1

dob   date  optional  

dob of user in "Y-m-d" format Ex: 1997-10-29 Example: consequuntur

gender   string  optional  

if user is 'male', 'female', 'others' Example: laborum

marital_status   string  optional  

if user is 'married', 'unmarried', 'divorced' Example: rem

blood_group   string  optional  

Example: sed

contact_number   string  optional  

Example: aut

alt_number   string  optional  

Example: qui

family_number   string  optional  

Example: officiis

fb_link   string  optional  

Example: quas

twitter_link   string  optional  

Example: molestias

social_media_1   string  optional  

Example: aliquid

social_media_2   string  optional  

Example: est

custom_field_1   string  optional  

Example: sint

custom_field_2   string  optional  

Example: tenetur

custom_field_3   string  optional  

Example: tempora

custom_field_4   string  optional  

Example: officiis

guardian_name   string  optional  

Example: sapiente

id_proof_name   string  optional  

ID proof of user like Adhar No. Example: ut

id_proof_number   string  optional  

Id Number like adhar number Example: nobis

permanent_address   string  optional  

Example: sit

current_address   string  optional  

Example: ipsum

bank_details   object  optional  
*   object  optional  
account_holder_name   string  optional  

Example: non

account_number   string  optional  

Example: saepe

bank_name   string  optional  

Example: consequatur

bank_code   string  optional  

Example: veniam

branch   string  optional  

Example: sit

tax_payer_id   string  optional  

Example: neque

List users

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/user?service_staff=" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/user"
);

const params = {
    "service_staff": "0",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/user',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'service_staff' => '0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "user_type": "user",
            "surname": "Mr",
            "first_name": "Admin",
            "last_name": null,
            "username": "admin",
            "email": "[email protected]",
            "language": "en",
            "contact_no": null,
            "address": null,
            "business_id": 1,
            "max_sales_discount_percent": null,
            "allow_login": 1,
            "essentials_department_id": null,
            "essentials_designation_id": null,
            "status": "active",
            "crm_contact_id": null,
            "is_cmmsn_agnt": 0,
            "cmmsn_percent": "0.00",
            "selected_contacts": 0,
            "dob": null,
            "gender": null,
            "marital_status": null,
            "blood_group": null,
            "contact_number": null,
            "fb_link": null,
            "twitter_link": null,
            "social_media_1": null,
            "social_media_2": null,
            "permanent_address": null,
            "current_address": null,
            "guardian_name": null,
            "custom_field_1": null,
            "custom_field_2": null,
            "custom_field_3": null,
            "custom_field_4": null,
            "bank_details": null,
            "id_proof_name": null,
            "id_proof_number": null,
            "deleted_at": null,
            "created_at": "2018-01-04 02:15:19",
            "updated_at": "2018-01-04 02:15:19"
        }
    ]
}
 

Request   

GET connector/api/user

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

service_staff   boolean  optional  

Filter service staffs from users list (0, 1) Example: false

Get the specified user

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/user/1" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/user/1"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://pos.ultimatefosters.com/connector/api/user/1',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "user_type": "user",
            "surname": "Mr",
            "first_name": "Admin",
            "last_name": null,
            "username": "admin",
            "email": "[email protected]",
            "language": "en",
            "contact_no": null,
            "address": null,
            "business_id": 1,
            "max_sales_discount_percent": null,
            "allow_login": 1,
            "essentials_department_id": null,
            "essentials_designation_id": null,
            "status": "active",
            "crm_contact_id": null,
            "is_cmmsn_agnt": 0,
            "cmmsn_percent": "0.00",
            "selected_contacts": 0,
            "dob": null,
            "gender": null,
            "marital_status": null,
            "blood_group": null,
            "contact_number": null,
            "fb_link": null,
            "twitter_link": null,
            "social_media_1": null,
            "social_media_2": null,
            "permanent_address": null,
            "current_address": null,
            "guardian_name": null,
            "custom_field_1": null,
            "custom_field_2": null,
            "custom_field_3": null,
            "custom_field_4": null,
            "bank_details": null,
            "id_proof_name": null,
            "id_proof_number": null,
            "deleted_at": null,
            "created_at": "2018-01-04 02:15:19",
            "updated_at": "2018-01-04 02:15:19"
        }
    ]
}
 

Request   

GET connector/api/user/{id}

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the user. Example: 1

user   string   

comma separated ids of the required users Example: 1

Update user password.

requires authentication

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/connector/api/update-password" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"current_password\": \"quaerat\",
    \"new_password\": \"velit\"
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/update-password"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "current_password": "quaerat",
    "new_password": "velit"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/connector/api/update-password',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'current_password' => 'quaerat',
            'new_password' => 'velit',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "success": 1,
    "msg": "Password updated successfully"
}
 

Request   

POST connector/api/update-password

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

current_password   string   

Current password of the user Example: quaerat

new_password   string   

New password of the user Example: velit

Recover forgotten password.

requires authentication

Example request:
curl --request POST \
    "https://pos.ultimatefosters.com/connector/api/forget-password" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"[email protected]\"
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/forget-password"
);

const headers = {
    "Authorization": "Bearer {access_token}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "[email protected]"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://pos.ultimatefosters.com/connector/api/forget-password',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'email' => '[email protected]',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "success": 1,
    "msg": "New password sent to [email protected] successfully"
}
 

Request   

POST connector/api/forget-password

Headers

Authorization      

Example: Bearer {access_token}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

email   string   

Users email id Example: [email protected]