MENU navbar-image

Introduction

UltimatePOS API Documentation

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

Authenticating requests

To authenticate requests, include 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\": \"tenetur\",
    \"ip_address\": \"quisquam\",
    \"latitude\": \"quibusdam\",
    \"longitude\": \"fuga\"
}"
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": "tenetur",
    "ip_address": "quisquam",
    "latitude": "quibusdam",
    "longitude": "fuga"
};

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' => 'tenetur',
            'ip_address' => 'quisquam',
            'latitude' => 'quibusdam',
            'longitude' => 'fuga',
        ],
    ]
);
$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: tenetur

ip_address   string  optional  

IP address. Example: quisquam

latitude   string  optional  

Latitude of the clock in location. Example: quibusdam

longitude   string  optional  

Longitude of the clock in location. Example: fuga

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\": \"veritatis\",
    \"latitude\": \"omnis\",
    \"longitude\": \"sapiente\"
}"
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": "veritatis",
    "latitude": "omnis",
    "longitude": "sapiente"
};

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' => 'veritatis',
            'latitude' => 'omnis',
            'longitude' => 'sapiente',
        ],
    ]
);
$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: veritatis

latitude   string  optional  

Latitude of the clock out location. Example: omnis

longitude   string  optional  

Longitude of the clock out location. Example: sapiente

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/quam" \
    --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/quam"
);

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/quam',
    [
        '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: quam

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=culpa&follow_up_type=dolorem&followup_category_id=facilis&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": "culpa",
    "follow_up_type": "dolorem",
    "followup_category_id": "facilis",
    "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' => 'culpa',
            'follow_up_type' => 'dolorem',
            'followup_category_id' => 'facilis',
            '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: culpa

follow_up_type   string  optional  

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

followup_category_id   string  optional  

filter the result through followup_category_id Example: facilis

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\": \"Ex reprehenderit nam nihil numquam assumenda est.\",
    \"schedule_type\": \"consequatur\",
    \"user_id\": [
        2,
        3,
        5
    ],
    \"notify_before\": 5,
    \"notify_type\": \"minute\",
    \"status\": \"open\",
    \"notify_via\": [
        \"voluptatem\"
    ],
    \"start_datetime\": \"2021-01-06 13:05:00\",
    \"end_datetime\": \"2021-01-06 13:05:00\",
    \"followup_additional_info\": [
        \"odio\"
    ],
    \"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": "Ex reprehenderit nam nihil numquam assumenda est.",
    "schedule_type": "consequatur",
    "user_id": [
        2,
        3,
        5
    ],
    "notify_before": 5,
    "notify_type": "minute",
    "status": "open",
    "notify_via": [
        "voluptatem"
    ],
    "start_datetime": "2021-01-06 13:05:00",
    "end_datetime": "2021-01-06 13:05:00",
    "followup_additional_info": [
        "odio"
    ],
    "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' => 'Ex reprehenderit nam nihil numquam assumenda est.',
            'schedule_type' => 'consequatur',
            'user_id' => [
                2,
                3,
                5,
            ],
            'notify_before' => 5,
            'notify_type' => 'minute',
            'status' => 'open',
            'notify_via' => [
                'voluptatem',
            ],
            'start_datetime' => '2021-01-06 13:05:00',
            'end_datetime' => '2021-01-06 13:05:00',
            'followup_additional_info' => [
                'odio',
            ],
            '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: Ex reprehenderit nam nihil numquam assumenda est.

schedule_type   string   

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

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/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/crm/follow-ups/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/crm/follow-ups/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": 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: et

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/quae" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"Meeting with client\",
    \"contact_id\": 2,
    \"description\": \"Magni ea blanditiis fugit ab pariatur.\",
    \"schedule_type\": \"aut\",
    \"user_id\": [
        2,
        3,
        5
    ],
    \"notify_before\": 5,
    \"notify_type\": \"minute\",
    \"status\": \"open\",
    \"notify_via\": [
        \"veniam\"
    ],
    \"followup_additional_info\": [
        \"enim\"
    ],
    \"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/quae"
);

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

let body = {
    "title": "Meeting with client",
    "contact_id": 2,
    "description": "Magni ea blanditiis fugit ab pariatur.",
    "schedule_type": "aut",
    "user_id": [
        2,
        3,
        5
    ],
    "notify_before": 5,
    "notify_type": "minute",
    "status": "open",
    "notify_via": [
        "veniam"
    ],
    "followup_additional_info": [
        "enim"
    ],
    "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/quae',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'Meeting with client',
            'contact_id' => 2,
            'description' => 'Magni ea blanditiis fugit ab pariatur.',
            'schedule_type' => 'aut',
            'user_id' => [
                2,
                3,
                5,
            ],
            'notify_before' => 5,
            'notify_type' => 'minute',
            'status' => 'open',
            'notify_via' => [
                'veniam',
            ],
            'followup_additional_info' => [
                'enim',
            ],
            '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: quae

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: Magni ea blanditiis fugit ab pariatur.

schedule_type   string   

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

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=quia&biz_name=velit&mobile_num=3&contact_id=est&order_by=inventore&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": "quia",
    "biz_name": "velit",
    "mobile_num": "3",
    "contact_id": "est",
    "order_by": "inventore",
    "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' => 'quia',
            'biz_name' => 'velit',
            'mobile_num' => '3',
            'contact_id' => 'est',
            'order_by' => 'inventore',
            '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: quia

biz_name   string  optional  

Search term for lead's business name Example: velit

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: est

order_by   string  optional  

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

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: dolor

mobile_name   string  optional  

Name of the contact saved in the mobile Example: iste

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: illo

end_time   string  optional  

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

duration   string  optional  

Duration of the call in seconds Example: maxime

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\": 186.1,
    \"created_at\": \"2020-5-7 15:20:22\",
    \"closed_at\": \"2020-5-7 15:20:22\",
    \"status\": \"close\",
    \"closing_amount\": 175750.615087911,
    \"total_card_slips\": 6,
    \"total_cheques\": 6,
    \"closing_note\": \"laudantium\",
    \"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": 186.1,
    "created_at": "2020-5-7 15:20:22",
    "closed_at": "2020-5-7 15:20:22",
    "status": "close",
    "closing_amount": 175750.615087911,
    "total_card_slips": 6,
    "total_cheques": 6,
    "closing_note": "laudantium",
    "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' => 186.1,
            'created_at' => '2020-5-7 15:20:22',
            'closed_at' => '2020-5-7 15:20:22',
            'status' => 'close',
            'closing_amount' => 175750.615087911,
            'total_card_slips' => 6,
            'total_cheques' => 6,
            'closing_note' => 'laudantium',
            '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: 186.1

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: 175750.61508791

total_card_slips   integer  optional  

total number of card slips Example: 6

total_cheques   integer  optional  

total number of checks Example: 6

closing_note   string  optional  

Closing note Example: laudantium

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=aut&name=molestiae&biz_name=ut&mobile_num=18&contact_id=nulla&order_by=dolor&direction=deleniti&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": "aut",
    "name": "molestiae",
    "biz_name": "ut",
    "mobile_num": "18",
    "contact_id": "nulla",
    "order_by": "dolor",
    "direction": "deleniti",
    "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' => 'aut',
            'name' => 'molestiae',
            'biz_name' => 'ut',
            'mobile_num' => '18',
            'contact_id' => 'nulla',
            'order_by' => 'dolor',
            'direction' => 'deleniti',
            '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: aut

name   string  optional  

Search term for contact name Example: molestiae

biz_name   string  optional  

Search term for contact's business name Example: ut

mobile_num   integer  optional  

Search term for contact's mobile number Example: 18

contact_id   string  optional  

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

order_by   string  optional  

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

direction   string  optional  

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

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\": \"sint\",
    \"prefix\": \"dolorem\",
    \"first_name\": \"ducimus\",
    \"middle_name\": \"autem\",
    \"last_name\": \"quam\",
    \"tax_number\": \"8787fefef\",
    \"pay_term_number\": 3,
    \"pay_term_type\": \"months\",
    \"mobile\": \"4578691009\",
    \"landline\": \"5487-8454-4145\",
    \"alternate_number\": \"841847541222\",
    \"address_line_1\": \"ad\",
    \"address_line_2\": \"quod\",
    \"city\": \"est\",
    \"state\": \"est\",
    \"country\": \"quisquam\",
    \"zip_code\": \"dolor\",
    \"customer_group_id\": \"qui\",
    \"contact_id\": \"sit\",
    \"dob\": \"2000-06-13\",
    \"custom_field1\": \"quaerat\",
    \"custom_field2\": \"doloribus\",
    \"custom_field3\": \"exercitationem\",
    \"custom_field4\": \"labore\",
    \"email\": \"[email protected]\",
    \"shipping_address\": \"dicta\",
    \"position\": \"sed\",
    \"opening_balance\": 0,
    \"source_id\": 13,
    \"life_stage_id\": 16,
    \"assigned_to\": [
        \"consequatur\"
    ]
}"
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": "sint",
    "prefix": "dolorem",
    "first_name": "ducimus",
    "middle_name": "autem",
    "last_name": "quam",
    "tax_number": "8787fefef",
    "pay_term_number": 3,
    "pay_term_type": "months",
    "mobile": "4578691009",
    "landline": "5487-8454-4145",
    "alternate_number": "841847541222",
    "address_line_1": "ad",
    "address_line_2": "quod",
    "city": "est",
    "state": "est",
    "country": "quisquam",
    "zip_code": "dolor",
    "customer_group_id": "qui",
    "contact_id": "sit",
    "dob": "2000-06-13",
    "custom_field1": "quaerat",
    "custom_field2": "doloribus",
    "custom_field3": "exercitationem",
    "custom_field4": "labore",
    "email": "[email protected]",
    "shipping_address": "dicta",
    "position": "sed",
    "opening_balance": 0,
    "source_id": 13,
    "life_stage_id": 16,
    "assigned_to": [
        "consequatur"
    ]
};

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' => 'sint',
            'prefix' => 'dolorem',
            'first_name' => 'ducimus',
            'middle_name' => 'autem',
            'last_name' => 'quam',
            'tax_number' => '8787fefef',
            'pay_term_number' => 3.0,
            'pay_term_type' => 'months',
            'mobile' => '4578691009',
            'landline' => '5487-8454-4145',
            'alternate_number' => '841847541222',
            'address_line_1' => 'ad',
            'address_line_2' => 'quod',
            'city' => 'est',
            'state' => 'est',
            'country' => 'quisquam',
            'zip_code' => 'dolor',
            'customer_group_id' => 'qui',
            'contact_id' => 'sit',
            'dob' => '2000-06-13',
            'custom_field1' => 'quaerat',
            'custom_field2' => 'doloribus',
            'custom_field3' => 'exercitationem',
            'custom_field4' => 'labore',
            'email' => '[email protected]',
            'shipping_address' => 'dicta',
            'position' => 'sed',
            'opening_balance' => 0.0,
            'source_id' => 13,
            'life_stage_id' => 16,
            'assigned_to' => [
                'consequatur',
            ],
        ],
    ]
);
$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: sint

prefix   string  optional  

Prefix for the name of the contact Example: dolorem

first_name   string   

Name of the contact Example: ducimus

middle_name   string  optional  

Example: autem

last_name   string  optional  

Example: quam

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: ad

address_line_2   string  optional  

Example: quod

city   string  optional  

Example: est

state   string  optional  

Example: est

country   string  optional  

Example: quisquam

zip_code   string  optional  

Example: dolor

customer_group_id   string  optional  

Example: qui

contact_id   string  optional  

Example: sit

dob   string  optional  

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

custom_field1   string  optional  

Example: quaerat

custom_field2   string  optional  

Example: doloribus

custom_field3   string  optional  

Example: exercitationem

custom_field4   string  optional  

Example: labore

email   string  optional  

Example: [email protected]

shipping_address   string  optional  

Example: dicta

position   string  optional  

Example: sed

opening_balance   number  optional  

Example: 0

source_id   integer  optional  

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

life_stage_id   integer  optional  

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

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/tempore" \
    --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/tempore"
);

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/tempore',
    [
        '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: tempore

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/pariatur" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"type\": \"customer\",
    \"supplier_business_name\": \"consequatur\",
    \"prefix\": \"delectus\",
    \"first_name\": \"quae\",
    \"middle_name\": \"nisi\",
    \"last_name\": \"qui\",
    \"tax_number\": \"488744dwd\",
    \"pay_term_number\": 3,
    \"pay_term_type\": \"months\",
    \"mobile\": \"8795461009\",
    \"landline\": \"65484-848-848\",
    \"alternate_number\": \"9898795220\",
    \"address_line_1\": \"animi\",
    \"address_line_2\": \"rerum\",
    \"city\": \"repudiandae\",
    \"state\": \"nesciunt\",
    \"country\": \"non\",
    \"zip_code\": \"reiciendis\",
    \"customer_group_id\": \"autem\",
    \"contact_id\": \"veniam\",
    \"dob\": \"2000-06-13\",
    \"custom_field1\": \"quia\",
    \"custom_field2\": \"consequatur\",
    \"custom_field3\": \"quia\",
    \"custom_field4\": \"id\",
    \"email\": \"[email protected]\",
    \"shipping_address\": \"quia\",
    \"position\": \"vel\",
    \"opening_balance\": 10.3,
    \"source_id\": 14,
    \"life_stage_id\": 15,
    \"assigned_to\": [
        \"cumque\"
    ]
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/contactapi/pariatur"
);

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

let body = {
    "type": "customer",
    "supplier_business_name": "consequatur",
    "prefix": "delectus",
    "first_name": "quae",
    "middle_name": "nisi",
    "last_name": "qui",
    "tax_number": "488744dwd",
    "pay_term_number": 3,
    "pay_term_type": "months",
    "mobile": "8795461009",
    "landline": "65484-848-848",
    "alternate_number": "9898795220",
    "address_line_1": "animi",
    "address_line_2": "rerum",
    "city": "repudiandae",
    "state": "nesciunt",
    "country": "non",
    "zip_code": "reiciendis",
    "customer_group_id": "autem",
    "contact_id": "veniam",
    "dob": "2000-06-13",
    "custom_field1": "quia",
    "custom_field2": "consequatur",
    "custom_field3": "quia",
    "custom_field4": "id",
    "email": "[email protected]",
    "shipping_address": "quia",
    "position": "vel",
    "opening_balance": 10.3,
    "source_id": 14,
    "life_stage_id": 15,
    "assigned_to": [
        "cumque"
    ]
};

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/pariatur',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'type' => 'customer',
            'supplier_business_name' => 'consequatur',
            'prefix' => 'delectus',
            'first_name' => 'quae',
            'middle_name' => 'nisi',
            'last_name' => 'qui',
            'tax_number' => '488744dwd',
            'pay_term_number' => 3.0,
            'pay_term_type' => 'months',
            'mobile' => '8795461009',
            'landline' => '65484-848-848',
            'alternate_number' => '9898795220',
            'address_line_1' => 'animi',
            'address_line_2' => 'rerum',
            'city' => 'repudiandae',
            'state' => 'nesciunt',
            'country' => 'non',
            'zip_code' => 'reiciendis',
            'customer_group_id' => 'autem',
            'contact_id' => 'veniam',
            'dob' => '2000-06-13',
            'custom_field1' => 'quia',
            'custom_field2' => 'consequatur',
            'custom_field3' => 'quia',
            'custom_field4' => 'id',
            'email' => '[email protected]',
            'shipping_address' => 'quia',
            'position' => 'vel',
            'opening_balance' => 10.3,
            'source_id' => 14,
            'life_stage_id' => 15,
            'assigned_to' => [
                'cumque',
            ],
        ],
    ]
);
$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: pariatur

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: consequatur

prefix   string  optional  

Prefix for the name of the contact Example: delectus

first_name   string   

Name of the contact Example: quae

middle_name   string  optional  

Example: nisi

last_name   string  optional  

Example: qui

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: animi

address_line_2   string  optional  

Example: rerum

city   string  optional  

Example: repudiandae

state   string  optional  

Example: nesciunt

country   string  optional  

Example: non

zip_code   string  optional  

Example: reiciendis

customer_group_id   string  optional  

Example: autem

contact_id   string  optional  

Example: veniam

dob   string  optional  

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

custom_field1   string  optional  

Example: quia

custom_field2   string  optional  

Example: consequatur

custom_field3   string  optional  

Example: quia

custom_field4   string  optional  

Example: id

email   string  optional  

Example: [email protected]

shipping_address   string  optional  

Example: quia

position   string  optional  

Example: vel

opening_balance   number  optional  

Example: 10.3

source_id   integer  optional  

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

life_stage_id   integer  optional  

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

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\": 11,
    \"card_number\": \"quidem\",
    \"card_holder_name\": \"at\",
    \"card_transaction_number\": \"et\",
    \"card_type\": \"quam\",
    \"card_month\": \"earum\",
    \"card_year\": \"qui\",
    \"card_security\": \"mollitia\",
    \"transaction_no_1\": \"quidem\",
    \"transaction_no_2\": \"ullam\",
    \"transaction_no_3\": \"blanditiis\",
    \"cheque_number\": \"quia\",
    \"bank_account_number\": \"dolores\",
    \"note\": \"aut\"
}"
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": 11,
    "card_number": "quidem",
    "card_holder_name": "at",
    "card_transaction_number": "et",
    "card_type": "quam",
    "card_month": "earum",
    "card_year": "qui",
    "card_security": "mollitia",
    "transaction_no_1": "quidem",
    "transaction_no_2": "ullam",
    "transaction_no_3": "blanditiis",
    "cheque_number": "quia",
    "bank_account_number": "dolores",
    "note": "aut"
};

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' => 11,
            'card_number' => 'quidem',
            'card_holder_name' => 'at',
            'card_transaction_number' => 'et',
            'card_type' => 'quam',
            'card_month' => 'earum',
            'card_year' => 'qui',
            'card_security' => 'mollitia',
            'transaction_no_1' => 'quidem',
            'transaction_no_2' => 'ullam',
            'transaction_no_3' => 'blanditiis',
            'cheque_number' => 'quia',
            'bank_account_number' => 'dolores',
            'note' => 'aut',
        ],
    ]
);
$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: 11

card_number   string  optional  

Example: quidem

card_holder_name   string  optional  

Example: at

card_transaction_number   string  optional  

Example: et

card_type   string  optional  

Example: quam

card_month   string  optional  

Example: earum

card_year   string  optional  

Example: qui

card_security   string  optional  

Example: mollitia

transaction_no_1   string  optional  

Example: quidem

transaction_no_2   string  optional  

Example: ullam

transaction_no_3   string  optional  

Example: blanditiis

cheque_number   string  optional  

Example: quia

bank_account_number   string  optional  

Example: dolores

note   string  optional  

payment note Example: aut

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 (500):

Show headers
cache-control: no-cache, private
content-type: application/json
set-cookie: XSRF-TOKEN=eyJpdiI6InNPcXE4clUxNmZVc3lkbloydVdvWXc9PSIsInZhbHVlIjoiWUNOMEZjd0FKMURDZUVCTU5RRnJBcGVKV09uRDBwWXErSFNaeTJiaDJDSm45TDFvK0J3MTdsTnJkMys5SHZMbGE1Yy9CTzJjSkcrQWdqQzRnOTBSaXFsUmoxMms5d3dOQ0FFd0w5MFNkSGdNdm9WV2plc3BBRkhnZ3QzczlWZWwiLCJtYWMiOiIxZWMwYjRiMzU0ODdhOTkyM2ZkNTE5MjdkODk3Y2Q1MjZkNWU1YmQ2YzlmMTc1NTcyMTczMDE3ZDY5ZDlhNjRjIiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:13 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6IjR2a0taR09USUVKUTFjUlFpZlhqbHc9PSIsInZhbHVlIjoiTEFQQnRtVlpIWDI3WTZJQlczL3ZPQWFETEg0VjZWQkNMbU90eXRKZkNwVUhOZW56SWhaYlZzNlN5Yks2dXhibGZKVmhqSWcxaitQam5PSFdoOGw1NXV4b3RmUVJ4alRuckFabGJBWnZYZ3B5NFVVZjBnVWRDVkhGdElQRVN0RkMiLCJtYWMiOiJkNzhkM2U4OGMzNmQwOTQ5ZDFiYjIwODVkMjc5ODQyNDU1N2I3NWQ4MWFkYjUyMmVlMWE5MDA0ZDM0ZTdmNmRhIiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:13 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "message": "Server Error"
}
 

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=eyJpdiI6IjR3WitKSEFJNTUzMHd0YkhvWjRSK3c9PSIsInZhbHVlIjoicDNnNWYrK3VLRm90anpSL0U2MkpObG1PRm43MlBjY2JNenROV0NkOElJWUJwWEp6ZkpxeXpMdytYUVl4SW1yUldiRnlMWlhxRUsrdjVPWlFhWExOQW11elF5T0RzblFlYllHa2JBbVZFbUNIQWMxWTNMT0dnRnNvRmw0MSt4dTUiLCJtYWMiOiJiZWM3M2I2OTcyN2EwZjZmYmEyYWUyNTc4MzY5ZmM1NGFiMTNkN2MxZmYzN2NjZGY4ZjkyMjg2NGJmNGQ1YTU1IiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:13 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6ImxiNXM4T3NFUjEvV3RmYnU0TktOVlE9PSIsInZhbHVlIjoidjlJb0luT3dKOEFjNFJZNWdmRXJuVmcvbHh3cXM3MU0vbjVVcFFVcGs5cHNrME5vU3ZUU284Q1BaWFY4aGlvMElBZ2JlZWtDbkFmUmR4aUpidUtML0RBWTRuNGVWMnRJWlpLTFRVSTVYcjk4MEZkR3hGM04rbjYwS2MwTDNFUDMiLCJtYWMiOiIwYzIyZmM5YjRjNDVlOGQyYzhiY2YzOGZlZmNmYjk2YzQxZWI1MzNkYzc3M2I3NzBiMDczZDk1MjcwN2VlMjZhIiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:13 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/dignissimos" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/oauth/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/tokens/dignissimos',
    [
        '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: dignissimos

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=eyJpdiI6IlJFaTlaR0hTQS9oMTQ1bVptTis1VXc9PSIsInZhbHVlIjoiOXFxbVhjV1RHWHdXQlVJQ2tJZ1J2VngvOVc5U3VSck0yOUdrazBkOUp5OXZIL01qa0t3QlRUV2lTSVJUL0I0YXRnZitURlVwU3BqcUVPclYyd3VkakxaVUZTTm5iYmRuejkzRG5tUHRSTEx3M240Q1FVZ0w3WHJScE81cU9FenIiLCJtYWMiOiI5YThmNmI5OGNhMDU4NjZmZTc1OGIzYWU4NTIwZDVjODJiZTNhNjVkMjIyZjM3NzNlMDBiYmJkMjIxZmU3YWRmIiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:13 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6IlR1REVlVzZqem15T0pVMm5HYWxyVVE9PSIsInZhbHVlIjoiZWdEVStDWFNiZFdkSzNNcEVldHRURFp4bHU0TU1NcmJkOXh4ZHllenFqMjFSYjd4V1Niei91Ym14ZndhUHdZaHNOVWhuejBUcFNIanpZbkxrRENnb1NMa1dPWlVJa00rNXVaUCtyRkZyTDVoZGZidlNaeE0wRndPanY4ekM1clEiLCJtYWMiOiI3OGVmZjRmZDY2ZGE5ZmMyYzBjZmRmYzg0NmE1NWMzYjE4ZGYyZGEwYzg1OTMxYWY0ZTJkZTE5OTIyNjZmNzMyIiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:13 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/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: "PUT",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    '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   

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: et

Delete the given client.

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

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/harum',
    [
        '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: harum

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=eyJpdiI6Ik8yMGpzQ1lNTXhNOVI2WFR0THREekE9PSIsInZhbHVlIjoiSjVXaTErNlM4eGpib1VrQlZ1UXIzWmJpN3VySm84aXVrWUorcDRibjA5bC9kdlJwY29UeXJTSHAxN0JMcmtKdWJXRjJweGIzUDBHYkdTdXBzWWNDRVlBRFlOM0FjVWxjTE1SOFJ1eE8zWXEyNUk1ZkIxeUJnU1Q5b0l6U3BvRVgiLCJtYWMiOiJmNjhkYzFjMTE3OGQzOTY2NTllNzA4MWIzNTMyZmRkOTBhMGUyMDA0ZDQ1NmIyNjI1NGVhZGFhOTkwM2NkNzg1IiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:13 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6ImFPZ1lXMEI1aWVUS254dHN0a0FHOVE9PSIsInZhbHVlIjoicEhuRXkzb04rbDRVejZtT0hHdTNSbCttbkVzNVZZUmV5WXM3SWE1ZVc4Rk53SnB2S1hEN3NLZmZhYjZvU1g5OG5BSTZzaW1aUzdGTjN4ZGJlcUFRQzdQQzl6eEpla28vZ2VQQzBETVRpaS9hcC9SWkxDa3o2RFovTDAvVUxlWmgiLCJtYWMiOiI5ZTM1ZWRmOTg4NWRlZGRhMzQ0MjBiZWQ3NzYyNWJkNjNmNzg1YjVjODk2OTNmZmVmYzg3OGY1NDFjNzhlOWM2IiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:13 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=eyJpdiI6IjVMWmVERHViN3RzUTRqdlhwMU1GZkE9PSIsInZhbHVlIjoiRmM4cWphdXZmbGpubWxESnJZV3Z1akF2eUxJUUVaSmZ2c1p2SmtXNUsxcE1NZENKV2JtMHFpeU5JU1VEUkJJU256N25Ja0Vzc2s0TmNaQ1RxK1RIelZmMWdIUWk5Y2tERWR0U0dGZ2s2d0gvQXJTRHhFeTd2bHJIVlZXNFNhMUsiLCJtYWMiOiI0MWVmMjcwMDdmODIyMGFjOWNhOTY2NWUxMDNhMzFhMmU3MTA0Y2UxNDA4NGNkYTQ5ZmEwMGI5ZTQzM2YxMzJhIiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:13 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6Ik9rcnZ5YXRvMXErZ3VHcU9VT1NZeWc9PSIsInZhbHVlIjoiekxicGhTVnp3bWJtZ05pTEtUZ3dhSXBHNFF6eGZ6bVdSRjUrb0dxTkFGdXlkSmtlMkltOXRvSFNKMGtUWjk5V3JYU0hRUWJBSFNrdUhNbUxkVWIwclJMR2phUnFvMkY5aHUzYTZ4Yk5EQzZ4aCtmcUU4U1pOZkVCSXowbW5lYTQiLCJtYWMiOiI4NDQwYmFhYWY5MjJhN2NmODM4YTVjNmY2ZDBkZmU4MGQyNWU4ZDk2Zjg4YTFkZTI1NzZmY2RjYWE1ODM5MGY0IiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:13 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/labore" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/oauth/personal-access-tokens/labore"
);

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/labore',
    [
        '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: labore

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=eyJpdiI6IkE1QWkzcmEvak1FUHJ4Mk9LbTRiQ1E9PSIsInZhbHVlIjoicVJmczBIZG5vWjFuSk1MKzhHNUdobGI0OVNNb2JGMzBkMFVFMzM2VWVUdHMyTHQrTG1NUjNISXF1bnN6YTk4eFlEbU1HSXlNSlFnU1hDV1BTUmZuVk5CWXQ3RU40ajdxWjFKODFTdzNXLzBMcjJ5VmhNZzBqSE41VDdTYzFJR1ciLCJtYWMiOiIzYjc4OGMyZDU5MGE5NGQzMjY2YWE3NGZhNGJlMTdkYzVhN2I5NDUxYzcxMjE4Y2U0MGZmMjMyMzhhMzc5OWY5IiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:14 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6IlhGOTU4SnN2S3QrcER3UGxET09VMFE9PSIsInZhbHVlIjoidytMUENESXR1YzJCVWhUNHFZL1Fza3ZRc0UweWYxYU16enNBa1hRd0JjcXNoQXNHNGpPUjNheGVhRXNseEhkNjY2YW5uTnhWbkQ5QnMrWFViSmxKR2Zjb290S0tZblNNZUxKSG1qL25mbEdyblE2NEFjZUNUbytrUXZ4YkNHaTciLCJtYWMiOiJlZTY5Y2UwMWJlYzI0ZTNkNmJhYmZjZjNiMDk2MmQ4Njc0NzFjMTJhMDcyMTYzMWIxMDQ1MTBhZmNiYzRlMDU4IiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:14 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=eyJpdiI6IjJXdVlWMHM0dXI4elFzSnkrc2g2c3c9PSIsInZhbHVlIjoib0NYUWZGNk9lSVZqaFg2L2ljdFJnc25Vbys3Z3F5R0pXdVVwY0pyNDF4bUlDYmRJL1pWMzVrbVhkVlJneU40NWppZzBKYmxXVlBRVFg2MWJXSzdtdHE2TlphTWYvUGpURnJYNGF5ajJLeS9wYStpMDJtZUhmb1psTGVEOFVBZ2EiLCJtYWMiOiIwMmIyNDhhMjZmMDBiODg1ZWM0M2Y1Y2EwMzI4ZDhlNmE1NDA1OWU3M2Q3ZWYzY2I0ZjRjMTYxNDFkNWQzMTRkIiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:14 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6Ii9vU1hoSXFOL3hLaEc1RnFnbWk4NWc9PSIsInZhbHVlIjoiRlpJbnZrYU1OK2lUcGFPdWZTbC9HNWVKZHFNdUdKUXVpRm9BbTM4MTJEQi9nclJKbnp0TzFod2c4K1VPZFNuTTRHZEhHUk52Z3VGYmw2aW40MDNPejdNdEpaejd3VFRQNGF0UXhFcFZSRkpDQzZCcVFZYzNUNWhUbG8xNWlXdHoiLCJtYWMiOiJjOWVhYzFlYzczZDlkN2E2YjFlMzQ2ZWM3NWU5NmExZjhjMGRkN2QzN2Q4MWZlZDAxYTIyOGY1ZWRlNDU5ZjMzIiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:14 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=eyJpdiI6IlBwS3YrdXg0b0pRWFJWUDd0R3RoUHc9PSIsInZhbHVlIjoicTZlbXdqbW4xRmQxeDJIKzNMTTVnL0RDblhiYjArcThLdGpxSkdFWjltYi8ydmxZbVZGVmpLWHJvdkxma0xJSG9ENk1qazg3R1ZYVklVQ0lxbzhIOEwwWU91NkszeVBBVDBZMzZpaTFvV1JVVUQxV2EvVEUwYk9UZ0ZoSWtYOWoiLCJtYWMiOiJkM2JlY2ZiMjA3NDQyYjM1ZjY0ZWRhYWRmYzcxYWI5MWNjNWJhMGQ4ZjNmYzQ4NjUyYmMwNzFhZWNjZGMwN2Y0IiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:14 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6Ims4N2Jpejd1OUQrTVRBU05DYnk1VVE9PSIsInZhbHVlIjoiT1JCK1NvSFZNc1RDcUttazl0a2dWODhxSDBFQUJYaUdVN1VKQlNQMlU5MkpxQW5ERnpHYTNLcVkzZjBNZlVUK3l0Qkg4a3ZDTTlFYmVRT2ZtMTJCem9ON2ViWlN3L2VXOUErYjNHaDlJQU4zcnI5RTZXZnp1WVhUOTV5SnhvNjciLCJtYWMiOiJjMDkyYTc1OGIxZWMzZjY5NmE2MzMyZTYzM2UzZmVjNTQzODViZTMxM2ZhNWQ0ZTMyZjNiNWEzNWY3NTUyM2U2IiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:14 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=eyJpdiI6InQzR1RCV2pSTWdocWNHQkNpTTVUMnc9PSIsInZhbHVlIjoiZlhGeXlXMWEvZWhmMkVTdjZaZTQ0ZHprNzJjeVVLNGpCZFM2cDhOUElQQXNmZnFLUFJRUjUxbURBSDJjNHdBR2dicjczU2I3amZrT3JQVUFIcW9paGVTV1hEVXJxU1h2N1VxcWJUaVozSmkyWEZCVUpIcVd5Z2MzeTNjVFMwSnMiLCJtYWMiOiI1Mjk1N2I1NzNmNGM0MTVlN2VhOThjZDRlYzlhZGQ0NmQ4N2RmNmU3YmMyYTI2NDllOWU2ZWYzNzQ4YmY2YmVhIiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:14 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6IkZWRmVwaTUrL0sySVI2SVoybkFUcGc9PSIsInZhbHVlIjoiWXRsNFF6aEsvNGp0RldlRDJDSEk5RVkvai9JVEVBOEd4WmlLMEZYYVZWY2w0SkY1TnJsQm1WS0ZYRTVnYXYvMjZNaVpPT3dGOFQ2a3hvWXMydGZKcUtlTDFOaDk4UUtscElWRE4wTkNjY0RZczVUbkFPaWtvdUF0WkoyZGJTWlciLCJtYWMiOiIwNDIwNmQ2M2MzYTc5MmZiODQxMThiMTFhZWE4M2VjNTNiMWI5YzU3ZTUwZTYwNTM3YjJhZDE1YTBiMGY3ZWVlIiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:14 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=eyJpdiI6InNQcU5SMm85aTEySklIeUNUVGJNOEE9PSIsInZhbHVlIjoiWW1tcjJzai9VY3l5MFlxbzJJd0t1V0RqWHhubHJuZU41Z2twRHBld2hvT094d1NpeXBwWUVYS3AvT3pGcUJZT1JjWDZlQkpQbmpBUlQxUHVsSmY3eVY0MWFUQUVNKzl1eFJXZ1NZS1JpYlNFOHErMXdCTENEZ3gzaWlrNkRpdkQiLCJtYWMiOiI0NGQ1NzI4MDU5NTQwMjNlNWJkNzBjNmUwYWM1MGNiY2MyOGZhYTk4OTA1Y2I5YTJiNjMzMzE0NTUzODI2ZDU1IiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:14 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6Ik9CamtaS2p0a2JJUjY0Rm8rUUUvU3c9PSIsInZhbHVlIjoiL2F3aks0TUtsS1E4NnY4dFIzcmlnL2pvUnlxQ2QvTWpPRFZNU0lES2RaZS8zRFBvNVZ5L2lQZ2JhY2NBNDRIRE5OZ0JDeVBwRGFQVmRUbHBYYkdSY0lFWk1qWjZZTDY4SkNCRHE3cVE0dkV4OEo5OUxmK0RvS050MGxtS2o2eE8iLCJtYWMiOiI0YWFmYmFlYTQzZjAxOGQ2OGUxYjIxYzhmZGVjYzY0YWVlOTMxMzRhNTU0MTk5ZWI4N2FkMTU0M2Y4ODExZDJmIiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:14 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=eyJpdiI6Ik9SQ2pocXVYYk5VcmhZSldBRVNEZ3c9PSIsInZhbHVlIjoiNWNFTmpxeGRiRFo2OXljTUIxVFRYamI0TXNyc3ZQb1N3cE1rbm5Ob2ZxTWdTN3FsNWJSWU1FQU9hVW1ZeHlUNnhHdlMyYTlKUjBTaGlZKzBkaXVyblBURDZLTXBSRjF4YXlLL0FTcXBIVWJEWDJYc2NRak1DcEhWeTg4RUQ0aWgiLCJtYWMiOiI3ZmEzY2Q2NGU4ZmFjM2I1OGE5Njg4ODgwNmU4OWUwMTI3M2U0ZmEyZmMxZDFmMmQ4ZTNlZGJmNzRkOGUxMTA0IiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:14 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6ImhFcW0yWVZMK0t2Y1BsUXZOQ0NkRXc9PSIsInZhbHVlIjoiYnY5UG5xcnVJcytiT2dTSFJYUVBXTkJFb0hwbzhJOGVQWVl2eWZ4cmxmbWZZZDRjSEgzQkQrMnRhRXVlNGpCT242ZDNpQTR5eE9FakNKM0tyMkU1UEJrL3A5ZHRzV3dOSXBVQnF1alNNQjVOQTBVZFNhaFNqMktmTFRBU1J5N1ciLCJtYWMiOiI4Y2U5MGQ0N2ZhNmJhMzE0MTE1ZWYyYmVhZmYxNWUzOWQ1ZTA0YmE4ZmVhNjgzMTAyNTEwZDJiZDNlMDhkODRiIiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:14 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/quia" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/client/quia"
);

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/quia',
    [
        '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=eyJpdiI6IitmNFNjWnNSVFc2TEtJeElZSm9FNUE9PSIsInZhbHVlIjoibVRQUFZkc2VObzZTM0x6VWYrOC9oWVpocnpUWCtZZmdjcWR3TVJLWXJybWZqT2dFVm9QdkV0d3BaRjQ4V0ZDQ2dScHd5V1dDYzIzSDV6czdZdUpyOFY2UkxYL01yMmZzUmM2T01hUzF4cFkrWWozVExoMW5iMFYrWmRuMVJSdTIiLCJtYWMiOiJkNWQwZGQwZGYzZGQwZTg3MDA1ZjNkODI1MGZlODU3MDQ4Mjc5MDk4YzA3YjUxNjJhYzRhY2Y2YWQ0ZDVkOThiIiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:14 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6IlVwSGw5MzZXb2hPS1VJWWJxUnZza3c9PSIsInZhbHVlIjoiTEkzL28xcHVZOXlFKzQ3WUdmMGYvSVk1YzdjcENsUG9heHZUdEJzd0JEZkZlMkRMTktFMjF0SUYxNzQrZVJ2SWI0SlRBSDFwMHJUM20wbHY1U2pQQ01qUEZ4bEp0SGMwL2s4NFdBK0Rad3Jwb1ppbzllSFVKa1JpTS9pVGRuejQiLCJtYWMiOiJlODgwMTYyNjQzNzU2ODI0YTM5Y2NkYWNhODhjOWEyOTFmYWJiMTdiMTRkYjI2ZmI0MDIwN2RhZmFmMTU2ZTdlIiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:14 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: quia

Show the form for editing the specified resource.

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/client/aspernatur/edit" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/client/aspernatur/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/aspernatur/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=eyJpdiI6IlhUck5iUXRtSFNWZmV6QjJBRy8vR2c9PSIsInZhbHVlIjoiVnRIaHFNQ01QU3pZMFhCcDFiaGFEbytSY2ZZRUQ3Mk1SNm8zVFVRYlRHaHpmaUVvSWFrUjBJRzRJempsc25IajVsVW04d1d0QnVFNjVpOEREV3RxcFZ4R2l1WUtuVDYyaUVLcklRaC9zS2NGYURNR1dEUXk1Ry9XQU9KNVJGQm0iLCJtYWMiOiI5Y2ZjZGQyZjA4YTJhNzA4ZTlmOWVlODk1ZDA3YmNjOGJkNmI0MzRkYzZkMWM1NGIxNmMyMTZmMzVhMjAwOTI4IiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:14 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6IjllaHN0VGYzVUpXelRWTnVUN1g0cmc9PSIsInZhbHVlIjoiWFlvcXEyOG5wZmRGMUl3TjdYaXI5YVJNRDh5US82MytDS1VQWmxMd0lUR044QzNZK01CL1RmK3ZwUlkwbkVRVHhOMU5jZUJIS1lRNDU3b3lOK2VjRjlLMkRueVVSM291VkpvUVZZK3JlVWZvM2JXWTUwWlFUS21KYVM3d0RlV0oiLCJtYWMiOiI3ZTg2M2MzNTNlYzU0NTljNDI0N2QxYWVhOTQ1NjZiMmQyOGI4ZmU5YWVlZWIxMTg1N2VkODg5NDM4ZGYzYjczIiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:14 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: aspernatur

Update the specified resource in storage.

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

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/maxime',
    [
        '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: maxime

Remove the specified resource from storage.

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

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/aliquid',
    [
        '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: aliquid

GET connector/regenerate

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

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/regenerate',
    [
        '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=eyJpdiI6InRLTnlmVG0vdE01NEQ3dloxdWJTN0E9PSIsInZhbHVlIjoiK0Y3bVYra3NQeVB5endNa2hHMyt0RmJ6YkVTeEtzTFBoVFBjc3NjWFlmVjN5MEkwVWE4RWdUWFdRbzJ1bmtsUDFyRUx6QzlNeGQxQUxwZ01MQVZLRTNiSmlzcGtuWUtnWUhZSFJkZzlzUzZRNGpMbm1kUkVRcTJhRi9rSWdWV2QiLCJtYWMiOiI0ODZmMGQ5MTAzMjUwYzk2ODBhY2UwODdjN2U5YTY2M2ExNGVlYzAwZDMzNGI3Y2NlZTU3ZDMxYzZmMjNjN2QzIiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:14 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6ImxKTUVudVZjVHdEc2ZxdXplM3FwT1E9PSIsInZhbHVlIjoiRXdBQyt6Y2JkR1d5OXY1Z3VpQ2NjbHppMkZOUEFsUkh5ejFiZjdNUnd1ck1MY3ZNeU9DTG0wdjM2SmlZRU5MN3dQWWlaTkZpYzE3d0hKd1NsMDdIbkJuZ3NiMEhCeHIybXh4MWNUNEQ4czB0NnpwUmIvSjNKOHd3N3FqTlZ3a0wiLCJtYWMiOiJkMTA5NzFkYzkwNjNjNGUwOGFjZDEzZDdiMTJjZWYwZTVhMDliNGY0M2NlMzI1ZTczZjc1ZWVlZjdiNTJmMDg5IiwidGFnIjoiIn0%3D; expires=Wed, 19 Apr 2023 14:01:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
 

{
    "message": "Unauthenticated."
}
 

Request   

GET connector/regenerate

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

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=quaerat&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": "quaerat",
    "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' => 'quaerat',
            '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: quaerat

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\": 95804946.32415,
    \"transaction_date\": \"2020-5-7 15:20:22\",
    \"tax_rate_id\": 8,
    \"expense_for\": 9,
    \"contact_id\": 16,
    \"expense_category_id\": 19,
    \"expense_sub_category_id\": 14,
    \"additional_notes\": \"minima\",
    \"is_refund\": 0,
    \"is_recurring\": 0,
    \"recur_interval\": 9,
    \"recur_interval_type\": \"months\",
    \"subscription_repeat_on\": 15,
    \"subscription_no\": \"recusandae\",
    \"recur_repetitions\": 12,
    \"payment\": [
        \"et\"
    ]
}"
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": 95804946.32415,
    "transaction_date": "2020-5-7 15:20:22",
    "tax_rate_id": 8,
    "expense_for": 9,
    "contact_id": 16,
    "expense_category_id": 19,
    "expense_sub_category_id": 14,
    "additional_notes": "minima",
    "is_refund": 0,
    "is_recurring": 0,
    "recur_interval": 9,
    "recur_interval_type": "months",
    "subscription_repeat_on": 15,
    "subscription_no": "recusandae",
    "recur_repetitions": 12,
    "payment": [
        "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/expense',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'location_id' => 1,
            'final_total' => 95804946.32415,
            'transaction_date' => '2020-5-7 15:20:22',
            'tax_rate_id' => 8,
            'expense_for' => 9,
            'contact_id' => 16,
            'expense_category_id' => 19,
            'expense_sub_category_id' => 14,
            'additional_notes' => 'minima',
            'is_refund' => 0,
            'is_recurring' => 0,
            'recur_interval' => 9,
            'recur_interval_type' => 'months',
            'subscription_repeat_on' => 15,
            'subscription_no' => 'recusandae',
            'recur_repetitions' => 12,
            'payment' => [
                'et',
            ],
        ],
    ]
);
$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: 95804946.32415

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: 9

contact_id   integer  optional  

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

expense_category_id   integer  optional  

id of the expense category Example: 19

expense_sub_category_id   integer  optional  

id of the expense sub-category Example: 14

additional_notes   string  optional  

Example: minima

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: 9

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: recusandae

recur_repetitions   integer  optional  

total number of expense to be generated Example: 12

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: 10

card_number   string  optional  

Example: fuga

card_holder_name   string  optional  

Example: dolor

card_transaction_number   string  optional  

Example: natus

card_type   string  optional  

Example: sit

card_month   string  optional  

Example: molestiae

card_year   string  optional  

Example: repellendus

card_security   string  optional  

Example: perspiciatis

transaction_no_1   string  optional  

Example: beatae

transaction_no_2   string  optional  

Example: error

transaction_no_3   string  optional  

Example: quo

note   string  optional  

payment note Example: labore

cheque_number   string  optional  

Example: incidunt

Get the specified expense / expense refund

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/expense/architecto" \
    --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/architecto"
);

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/architecto',
    [
        '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: architecto

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/sapiente" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"final_total\": 96,
    \"transaction_date\": \"2020-5-7 15:20:22\",
    \"tax_rate_id\": 5,
    \"expense_for\": 4,
    \"contact_id\": 12,
    \"expense_category_id\": 20,
    \"expense_sub_category_id\": 18,
    \"additional_notes\": \"ducimus\",
    \"is_recurring\": 0,
    \"recur_interval\": 7,
    \"recur_interval_type\": \"months\",
    \"subscription_repeat_on\": 15,
    \"subscription_no\": \"omnis\",
    \"recur_repetitions\": 16,
    \"payment\": [
        \"vel\"
    ]
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/expense/sapiente"
);

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

let body = {
    "final_total": 96,
    "transaction_date": "2020-5-7 15:20:22",
    "tax_rate_id": 5,
    "expense_for": 4,
    "contact_id": 12,
    "expense_category_id": 20,
    "expense_sub_category_id": 18,
    "additional_notes": "ducimus",
    "is_recurring": 0,
    "recur_interval": 7,
    "recur_interval_type": "months",
    "subscription_repeat_on": 15,
    "subscription_no": "omnis",
    "recur_repetitions": 16,
    "payment": [
        "vel"
    ]
};

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/sapiente',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'final_total' => 96.0,
            'transaction_date' => '2020-5-7 15:20:22',
            'tax_rate_id' => 5,
            'expense_for' => 4,
            'contact_id' => 12,
            'expense_category_id' => 20,
            'expense_sub_category_id' => 18,
            'additional_notes' => 'ducimus',
            'is_recurring' => 0,
            'recur_interval' => 7,
            'recur_interval_type' => 'months',
            'subscription_repeat_on' => 15,
            'subscription_no' => 'omnis',
            'recur_repetitions' => 16,
            'payment' => [
                'vel',
            ],
        ],
    ]
);
$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: sapiente

Body Parameters

final_total   number  optional  

Expense amount Example: 96

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: 5

expense_for   integer  optional  

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

contact_id   integer  optional  

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

expense_category_id   integer  optional  

id of the expense category Example: 20

expense_sub_category_id   integer  optional  

id of the expense sub-category Example: 18

additional_notes   string  optional  

Example: ducimus

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: 7

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: omnis

recur_repetitions   integer  optional  

total number of expense to be generated Example: 16

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=qui&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": "qui",
    "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' => 'qui',
            '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: qui

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=ducimus&assigned_to=cumque&status=et&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": "ducimus",
    "assigned_to": "cumque",
    "status": "et",
    "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' => 'ducimus',
            'assigned_to' => 'cumque',
            'status' => 'et',
            '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 (500):

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

{
    "message": "Server Error"
}
 

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: ducimus

assigned_to   string  optional  

id of the assigned user Example: cumque

status   string  optional  

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

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\": 5,
    \"visit_to\": \"ut\",
    \"visit_address\": \"natus\",
    \"assigned_to\": 14,
    \"visit_on\": \"2021-12-28 17:23:00\",
    \"visit_for\": \"similique\"
}"
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": 5,
    "visit_to": "ut",
    "visit_address": "natus",
    "assigned_to": 14,
    "visit_on": "2021-12-28 17:23:00",
    "visit_for": "similique"
};

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' => 5,
            'visit_to' => 'ut',
            'visit_address' => 'natus',
            'assigned_to' => 14,
            'visit_on' => '2021-12-28 17:23:00',
            'visit_for' => 'similique',
        ],
    ]
);
$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: 5

visit_to   string  optional  

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

visit_address   string  optional  

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

assigned_to   integer   

id of the assigned user Example: 14

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: similique

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=ducimus" \
    --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=similique" \
    --form "meet_with=ea" \
    --form "meet_with_mobileno=numquam" \
    --form "photo=@/tmp/phpLMttO1" 
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', 'ducimus');
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', 'similique');
body.append('meet_with', 'ea');
body.append('meet_with_mobileno', 'numquam');
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' => 'ducimus'
            ],
            [
                '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' => 'similique'
            ],
            [
                'name' => 'meet_with',
                'contents' => 'ea'
            ],
            [
                'name' => 'meet_with_mobileno',
                'contents' => 'numquam'
            ],
            [
                'name' => 'photo',
                'contents' => fopen('/tmp/phpLMttO1', '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: ducimus

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: similique

photo   file  optional  

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

meet_with   required  optional  

name of person field force meet with Example: ea

meet_with_mobileno   required  optional  

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

New end points

New List products

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/new_product?order_by=laudantium&order_direction=eaque&location_custom_field_1=quasi&category_id=veritatis&sub_category_id=dolor&location_id=1&not_for_sell=consequuntur&send_lot_detail=quod&name=beatae&sku=ratione&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": "laudantium",
    "order_direction": "eaque",
    "location_custom_field_1": "quasi",
    "category_id": "veritatis",
    "sub_category_id": "dolor",
    "location_id": "1",
    "not_for_sell": "consequuntur",
    "send_lot_detail": "quod",
    "name": "beatae",
    "sku": "ratione",
    "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' => 'laudantium',
            'order_direction' => 'eaque',
            'location_custom_field_1' => 'quasi',
            'category_id' => 'veritatis',
            'sub_category_id' => 'dolor',
            'location_id' => '1',
            'not_for_sell' => 'consequuntur',
            'send_lot_detail' => 'quod',
            'name' => 'beatae',
            'sku' => 'ratione',
            '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": "[email protected]%",
                "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: laudantium

order_direction   string  optional  

Values: asc or desc Example: eaque

location_custom_field_1   string  optional  

Custom field 1 of the location Example: quasi

category_id   string  optional  

comma separated ids of one or multiple category Example: veritatis

sub_category_id   string  optional  

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

location_id   string  optional  

Example: 1

not_for_sell   string  optional  

(1, 0) Example: consequuntur

send_lot_detail   string  optional  

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

name   string  optional  

Search term for product name Example: beatae

sku   string  optional  

Search term for product sku Example: ratione

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=consequatur&payment_status=due%2Cpartial&start_date=2018-06-25&end_date=2018-06-25&user_id=qui&service_staff_id=quasi&shipping_status=ordered&source=velit&customer_group_id=eaque&product_name=omnis&product_sku=tempore&product_custom_field_1=ducimus&location_custom_field_1=dolorum&location_invoice_scheme_prefix=vitae&product_category_id=magnam&product_sub_category_id=sequi&sell_ids=55%2C64&only_subscriptions=illo&send_purchase_details=qui&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": "consequatur",
    "payment_status": "due,partial",
    "start_date": "2018-06-25",
    "end_date": "2018-06-25",
    "user_id": "qui",
    "service_staff_id": "quasi",
    "shipping_status": "ordered",
    "source": "velit",
    "customer_group_id": "eaque",
    "product_name": "omnis",
    "product_sku": "tempore",
    "product_custom_field_1": "ducimus",
    "location_custom_field_1": "dolorum",
    "location_invoice_scheme_prefix": "vitae",
    "product_category_id": "magnam",
    "product_sub_category_id": "sequi",
    "sell_ids": "55,64",
    "only_subscriptions": "illo",
    "send_purchase_details": "qui",
    "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' => 'consequatur',
            'payment_status' => 'due,partial',
            'start_date' => '2018-06-25',
            'end_date' => '2018-06-25',
            'user_id' => 'qui',
            'service_staff_id' => 'quasi',
            'shipping_status' => 'ordered',
            'source' => 'velit',
            'customer_group_id' => 'eaque',
            'product_name' => 'omnis',
            'product_sku' => 'tempore',
            'product_custom_field_1' => 'ducimus',
            'location_custom_field_1' => 'dolorum',
            'location_invoice_scheme_prefix' => 'vitae',
            'product_category_id' => 'magnam',
            'product_sub_category_id' => 'sequi',
            'sell_ids' => '55,64',
            'only_subscriptions' => 'illo',
            'send_purchase_details' => 'qui',
            '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: consequatur

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: qui

service_staff_id   string  optional  

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

shipping_status   string  optional  

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

source   string  optional  

Source of the sale Example: velit

customer_group_id   string  optional  

id of the customer group Example: eaque

product_name   string  optional  

name of the product Example: omnis

product_sku   string  optional  

sku of the product or variation Example: tempore

product_custom_field_1   string  optional  

custome field 1 of the product Example: ducimus

location_custom_field_1   string  optional  

custome field 1 of the location Example: dolorum

location_invoice_scheme_prefix   string  optional  

Invoice scheme prefix of the location Example: vitae

product_category_id   string  optional  

category id of the product Example: magnam

product_sub_category_id   string  optional  

Sub category id of the product Example: sequi

sell_ids   string  optional  

comma separated ids of the sells Example: 55,64

only_subscriptions   string  optional  

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

send_purchase_details   string  optional  

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

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=repellat&customer_group_id=ut&custom_field_1=ipsum&contact_ids=2%2C3&name=ut&biz_name=sunt&mobile_num=2&contact_id=eligendi&order_by=illum&direction=dolores&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": "repellat",
    "customer_group_id": "ut",
    "custom_field_1": "ipsum",
    "contact_ids": "2,3",
    "name": "ut",
    "biz_name": "sunt",
    "mobile_num": "2",
    "contact_id": "eligendi",
    "order_by": "illum",
    "direction": "dolores",
    "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' => 'repellat',
            'customer_group_id' => 'ut',
            'custom_field_1' => 'ipsum',
            'contact_ids' => '2,3',
            'name' => 'ut',
            'biz_name' => 'sunt',
            'mobile_num' => '2',
            'contact_id' => 'eligendi',
            'order_by' => 'illum',
            'direction' => 'dolores',
            '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: repellat

customer_group_id   string  optional  

id of the customer group Example: ut

custom_field_1   string  optional  

Custom field 1 of the contact Example: ipsum

contact_ids   string  optional  

comma separated ids of contacts Example: 2,3

name   string  optional  

Search term for contact name Example: ut

biz_name   string  optional  

Search term for contact's business name Example: sunt

mobile_num   integer  optional  

Search term for contact's mobile number Example: 2

contact_id   string  optional  

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

order_by   string  optional  

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

direction   string  optional  

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

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=vel&order_direction=veritatis&brand_id=asperiores&category_id=voluptatem&sub_category_id=laboriosam&location_id=1&selling_price_group=aut&send_lot_detail=et&name=est&sku=aut&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": "vel",
    "order_direction": "veritatis",
    "brand_id": "asperiores",
    "category_id": "voluptatem",
    "sub_category_id": "laboriosam",
    "location_id": "1",
    "selling_price_group": "aut",
    "send_lot_detail": "et",
    "name": "est",
    "sku": "aut",
    "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' => 'vel',
            'order_direction' => 'veritatis',
            'brand_id' => 'asperiores',
            'category_id' => 'voluptatem',
            'sub_category_id' => 'laboriosam',
            'location_id' => '1',
            'selling_price_group' => 'aut',
            'send_lot_detail' => 'et',
            'name' => 'est',
            'sku' => 'aut',
            '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": "[email protected]%",
                "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: vel

order_direction   string  optional  

Values: asc or desc Example: veritatis

brand_id   string  optional  

comma separated ids of one or multiple brands Example: asperiores

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: laboriosam

location_id   string  optional  

Example: 1

selling_price_group   string  optional  

(1, 0) Example: aut

send_lot_detail   string  optional  

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

name   string  optional  

Search term for product name Example: est

sku   string  optional  

Search term for product sku Example: aut

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/2?selling_price_group=neque&send_lot_detail=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/product/2"
);

const params = {
    "selling_price_group": "neque",
    "send_lot_detail": "et",
};
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/2',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'selling_price_group' => 'neque',
            'send_lot_detail' => 'et',
        ],
    ]
);
$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": "[email protected]%",
                "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: 2

product   string   

comma separated ids of products Example: 1

Query Parameters

selling_price_group   string  optional  

(1, 0) Example: neque

send_lot_detail   string  optional  

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

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=maiores&location_id=1&brand_id=omnis&category_id=consequatur&sub_category_id=repellat&not_for_selling=dolorum&name=asperiores&sku=vel&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": "maiores",
    "location_id": "1",
    "brand_id": "omnis",
    "category_id": "consequatur",
    "sub_category_id": "repellat",
    "not_for_selling": "dolorum",
    "name": "asperiores",
    "sku": "vel",
    "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' => 'maiores',
            'location_id' => '1',
            'brand_id' => 'omnis',
            'category_id' => 'consequatur',
            'sub_category_id' => 'repellat',
            'not_for_selling' => 'dolorum',
            'name' => 'asperiores',
            'sku' => 'vel',
            '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": "[email protected]%",
            "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": "[email protected]%",
            "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: maiores

location_id   string  optional  

Example: 1

brand_id   string  optional  

Example: omnis

category_id   string  optional  

Example: consequatur

sub_category_id   string  optional  

Example: repellat

not_for_selling   string  optional  

Values: 0 or 1 Example: dolorum

name   string  optional  

Search term for product name Example: asperiores

sku   string  optional  

Search term for product sku Example: vel

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=voluptatem&status=final&payment_status=due%2Cpartial&start_date=2018-06-25&end_date=2018-06-25&user_id=odio&service_staff_id=mollitia&shipping_status=ordered&source=enim&only_subscriptions=repudiandae&send_purchase_details=cupiditate&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": "voluptatem",
    "status": "final",
    "payment_status": "due,partial",
    "start_date": "2018-06-25",
    "end_date": "2018-06-25",
    "user_id": "odio",
    "service_staff_id": "mollitia",
    "shipping_status": "ordered",
    "source": "enim",
    "only_subscriptions": "repudiandae",
    "send_purchase_details": "cupiditate",
    "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' => 'voluptatem',
            'status' => 'final',
            'payment_status' => 'due,partial',
            'start_date' => '2018-06-25',
            'end_date' => '2018-06-25',
            'user_id' => 'odio',
            'service_staff_id' => 'mollitia',
            'shipping_status' => 'ordered',
            'source' => 'enim',
            'only_subscriptions' => 'repudiandae',
            'send_purchase_details' => 'cupiditate',
            '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: voluptatem

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: odio

service_staff_id   string  optional  

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

shipping_status   string  optional  

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

source   string  optional  

Source of the sale Example: enim

only_subscriptions   string  optional  

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

send_purchase_details   string  optional  

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

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: 4

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: aut

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: 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: dolor

staff_note   string  optional  

Example: ut

commission_agent   integer  optional  

commission agent id Example: 16

shipping_details   string  optional  

shipping details Example: Express Delivery

shipping_address   string  optional  

shipping address Example: qui

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: 13

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: 11

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: assumenda

recur_repetitions   integer  optional  

total number of invoices to be generated Example: 2

rp_redeemed   integer  optional  

reward points redeemed Example: 14

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: 6

service_custom_field_1   string  optional  

types of service custom field 1 Example: nihil

service_custom_field_2   string  optional  

types of service custom field 2 Example: quas

service_custom_field_3   string  optional  

types of service custom field 3 Example: dignissimos

service_custom_field_4   string  optional  

types of service custom field 4 Example: voluptatem

service_custom_field_5   string  optional  

types of service custom field 5 Example: et

service_custom_field_6   string  optional  

types of service custom field 6 Example: cumque

round_off_amount   number  optional  

round off amount on total payable Example: 4204180.1613702

table_id   integer  optional  

id of the table Example: 9

service_staff_id   integer  optional  

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

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: 20

note   string  optional  

note for the product Example: laborum

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: et

card_holder_name   string  optional  

Example: perferendis

card_transaction_number   string  optional  

Example: ipsa

card_type   string  optional  

Example: dolorem

card_month   string  optional  

Example: temporibus

card_year   string  optional  

Example: dolor

card_security   string  optional  

Example: iusto

transaction_no_1   string  optional  

Example: cumque

transaction_no_2   string  optional  

Example: repudiandae

transaction_no_3   string  optional  

Example: ratione

bank_account_number   string  optional  

Example: vel

note   string  optional  

payment note Example: autem

cheque_number   string  optional  

Example: velit

Get the specified sell

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/sell/qui?send_purchase_details=rem" \
    --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/qui"
);

const params = {
    "send_purchase_details": "rem",
};
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/qui',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'send_purchase_details' => 'rem',
        ],
    ]
);
$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: qui

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: rem

Update sell

requires authentication

Example request:
curl --request PUT \
    "https://pos.ultimatefosters.com/connector/api/sell/praesentium" \
    --header "Authorization: Bearer {access_token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"contact_id\": 5,
    \"transaction_date\": \"2020-5-7 15:20:22\",
    \"status\": \"final\",
    \"sub_status\": \"null\",
    \"is_quotation\": true,
    \"tax_rate_id\": 17,
    \"discount_amount\": 10,
    \"discount_type\": \"fixed\",
    \"sale_note\": \"dolorem\",
    \"source\": \"esse\",
    \"staff_note\": \"laboriosam\",
    \"is_suspend\": false,
    \"commission_agent\": 8,
    \"shipping_details\": \"Express Delivery\",
    \"shipping_address\": \"fugiat\",
    \"shipping_status\": \"ordered\",
    \"delivered_to\": \"Mr Robin\",
    \"shipping_charges\": 10,
    \"packing_charge\": 10,
    \"exchange_rate\": 1,
    \"selling_price_group_id\": 12,
    \"pay_term_number\": 15,
    \"pay_term_type\": \"months\",
    \"is_recurring\": 0,
    \"recur_interval\": 8,
    \"recur_interval_type\": \"days\",
    \"subscription_repeat_on\": 7,
    \"subscription_no\": \"id\",
    \"recur_repetitions\": 18,
    \"rp_redeemed\": 1,
    \"rp_redeemed_amount\": 13.5,
    \"types_of_service_id\": 15,
    \"service_custom_field_1\": \"reprehenderit\",
    \"service_custom_field_2\": \"minus\",
    \"service_custom_field_3\": \"voluptates\",
    \"service_custom_field_4\": \"ut\",
    \"service_custom_field_5\": \"debitis\",
    \"service_custom_field_6\": \"expedita\",
    \"round_off_amount\": 185.363089,
    \"table_id\": 20,
    \"service_staff_id\": 18,
    \"change_return\": 0,
    \"change_return_id\": 7,
    \"products\": [
        \"qui\"
    ],
    \"payments\": [
        \"ut\"
    ]
}"
const url = new URL(
    "https://pos.ultimatefosters.com/connector/api/sell/praesentium"
);

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

let body = {
    "contact_id": 5,
    "transaction_date": "2020-5-7 15:20:22",
    "status": "final",
    "sub_status": "null",
    "is_quotation": true,
    "tax_rate_id": 17,
    "discount_amount": 10,
    "discount_type": "fixed",
    "sale_note": "dolorem",
    "source": "esse",
    "staff_note": "laboriosam",
    "is_suspend": false,
    "commission_agent": 8,
    "shipping_details": "Express Delivery",
    "shipping_address": "fugiat",
    "shipping_status": "ordered",
    "delivered_to": "Mr Robin",
    "shipping_charges": 10,
    "packing_charge": 10,
    "exchange_rate": 1,
    "selling_price_group_id": 12,
    "pay_term_number": 15,
    "pay_term_type": "months",
    "is_recurring": 0,
    "recur_interval": 8,
    "recur_interval_type": "days",
    "subscription_repeat_on": 7,
    "subscription_no": "id",
    "recur_repetitions": 18,
    "rp_redeemed": 1,
    "rp_redeemed_amount": 13.5,
    "types_of_service_id": 15,
    "service_custom_field_1": "reprehenderit",
    "service_custom_field_2": "minus",
    "service_custom_field_3": "voluptates",
    "service_custom_field_4": "ut",
    "service_custom_field_5": "debitis",
    "service_custom_field_6": "expedita",
    "round_off_amount": 185.363089,
    "table_id": 20,
    "service_staff_id": 18,
    "change_return": 0,
    "change_return_id": 7,
    "products": [
        "qui"
    ],
    "payments": [
        "ut"
    ]
};

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/praesentium',
    [
        'headers' => [
            'Authorization' => 'Bearer {access_token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'contact_id' => 5,
            'transaction_date' => '2020-5-7 15:20:22',
            'status' => 'final',
            'sub_status' => 'null',
            'is_quotation' => true,
            'tax_rate_id' => 17,
            'discount_amount' => 10.0,
            'discount_type' => 'fixed',
            'sale_note' => 'dolorem',
            'source' => 'esse',
            'staff_note' => 'laboriosam',
            'is_suspend' => false,
            'commission_agent' => 8,
            'shipping_details' => 'Express Delivery',
            'shipping_address' => 'fugiat',
            'shipping_status' => 'ordered',
            'delivered_to' => 'Mr Robin',
            'shipping_charges' => 10.0,
            'packing_charge' => 10.0,
            'exchange_rate' => 1.0,
            'selling_price_group_id' => 12,
            'pay_term_number' => 15,
            'pay_term_type' => 'months',
            'is_recurring' => 0,
            'recur_interval' => 8,
            'recur_interval_type' => 'days',
            'subscription_repeat_on' => 7,
            'subscription_no' => 'id',
            'recur_repetitions' => 18,
            'rp_redeemed' => 1,
            'rp_redeemed_amount' => 13.5,
            'types_of_service_id' => 15,
            'service_custom_field_1' => 'reprehenderit',
            'service_custom_field_2' => 'minus',
            'service_custom_field_3' => 'voluptates',
            'service_custom_field_4' => 'ut',
            'service_custom_field_5' => 'debitis',
            'service_custom_field_6' => 'expedita',
            'round_off_amount' => 185.363089,
            'table_id' => 20,
            'service_staff_id' => 18,
            'change_return' => 0.0,
            'change_return_id' => 7,
            'products' => [
                'qui',
            ],
            'payments' => [
                'ut',
            ],
        ],
    ]
);
$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: praesentium

sell   string   

id of sell to update Example: 6

Body Parameters

contact_id   integer  optional  

id of the customer Example: 5

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: 17

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

source   string  optional  

Source of the invoice Example: esse

staff_note   string  optional  

Example: laboriosam

is_suspend   boolean  optional  

Is suspended sale (0, 1) Example: false

commission_agent   integer  optional  

commission agent id Example: 8

shipping_details   string  optional  

shipping details Example: Express Delivery

shipping_address   string  optional  

shipping address Example: fugiat

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: 12

pay_term_number   integer  optional  

pay term value Example: 15

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: 8

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: id

recur_repetitions   integer  optional  

total number of invoices to be generated Example: 18

rp_redeemed   integer  optional  

reward points redeemed Example: 1

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: 15

service_custom_field_1   string  optional  

types of service custom field 1 Example: reprehenderit

service_custom_field_2   string  optional  

types of service custom field 2 Example: minus

service_custom_field_3   string  optional  

types of service custom field 3 Example: voluptates

service_custom_field_4   string  optional  

types of service custom field 4 Example: ut

service_custom_field_5   string  optional  

types of service custom field 5 Example: debitis

service_custom_field_6   string  optional  

types of service custom field 6 Example: expedita

round_off_amount   number  optional  

round off amount on total payable Example: 185.363089

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: 18

change_return   number  optional  

Excess paid amount Example: 0

change_return_id   integer  optional  

id of the change return payment if exists Example: 7

products   string[]   

array of the products for the sale

*   object  optional  
sell_line_id   integer  optional  

sell line id for existing item only Example: 18

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: 5

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: 5

note   string  optional  

note for the product Example: placeat

payments   string[]  optional  

payment lines for the sale

*   object  optional  
payment_id   integer  optional  

payment id for existing payment line Example: 3

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: 2

card_number   string  optional  

Example: ex

card_holder_name   string  optional  

Example: non

card_transaction_number   string  optional  

Example: corporis

card_type   string  optional  

Example: et

card_month   string  optional  

Example: exercitationem

card_year   string  optional  

Example: possimus

card_security   string  optional  

Example: aut

transaction_no_1   string  optional  

Example: sit

transaction_no_2   string  optional  

Example: quibusdam

transaction_no_3   string  optional  

Example: accusamus

note   string  optional  

payment note Example: omnis

cheque_number   string  optional  

Example: quo

bank_account_number   string  optional  

Example: sequi

Delete Sell

requires authentication

Example request:
curl --request DELETE \
    "https://pos.ultimatefosters.com/connector/api/sell/eaque" \
    --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/eaque"
);

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/eaque',
    [
        '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: eaque

sell   string   

id of the sell to be deleted Example: animi

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\": 19,
    \"transaction_date\": \"2020-5-7 15:20:22\",
    \"invoice_no\": \"consectetur\",
    \"discount_amount\": 10,
    \"discount_type\": \"fixed\",
    \"products\": [
        \"facilis\"
    ]
}"
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": 19,
    "transaction_date": "2020-5-7 15:20:22",
    "invoice_no": "consectetur",
    "discount_amount": 10,
    "discount_type": "fixed",
    "products": [
        "facilis"
    ]
};

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' => 19,
            'transaction_date' => '2020-5-7 15:20:22',
            'invoice_no' => 'consectetur',
            'discount_amount' => 10.0,
            'discount_type' => 'fixed',
            'products' => [
                'facilis',
            ],
        ],
    ]
);
$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: 19

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: consectetur

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: 12

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: et

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\": 10,
    \"shipping_status\": \"ordered\",
    \"delivered_to\": \"earum\"
}"
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": 10,
    "shipping_status": "ordered",
    "delivered_to": "earum"
};

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' => 10,
            'shipping_status' => 'ordered',
            'delivered_to' => 'earum',
        ],
    ]
);
$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: 10

shipping_status   string  optional  

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

delivered_to   string  optional  

Name of the consignee Example: earum

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/aliquid" \
    --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/aliquid"
);

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/aliquid',
    [
        '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: aliquid

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": "[email protected]%",
            "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": "[email protected]%",
            "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": "[email protected]%",
            "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/quo" \
    --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/quo"
);

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/quo',
    [
        '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": "[email protected]%",
            "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: quo

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=sed" \
    --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": "sed",
};
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' => 'sed',
        ],
    ]
);
$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: sed

Get the specified taxonomy

requires authentication

Example request:
curl --request GET \
    --get "https://pos.ultimatefosters.com/connector/api/taxonomy/reiciendis" \
    --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/reiciendis"
);

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/reiciendis',
    [
        '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: reiciendis

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/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/types-of-service/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/types-of-service/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,
            "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: 1

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\": \"sequi\",
    \"email\": \"[email protected]\",
    \"user_type\": \"repudiandae\",
    \"surname\": \"est\",
    \"first_name\": \"ut\",
    \"last_name\": \"vel\",
    \"is_active\": \"suscipit\",
    \"crm_contact_id\": 3,
    \"allow_login\": false,
    \"password\": \"aU|tRRG)BiIwnk?H7n\",
    \"role\": 9,
    \"access_all_locations\": false,
    \"location_permissions\": [
        \"autem\"
    ],
    \"cmmsn_percent\": \"nisi\",
    \"max_sales_discount_percent\": \"libero\",
    \"selected_contacts\": false,
    \"selected_contact_ids\": [
        \"repellendus\"
    ],
    \"dob\": \"iste\",
    \"gender\": \"quod\",
    \"marital_status\": \"voluptatem\",
    \"blood_group\": \"veniam\",
    \"contact_number\": \"distinctio\",
    \"alt_number\": \"perspiciatis\",
    \"family_number\": \"eos\",
    \"fb_link\": \"nobis\",
    \"twitter_link\": \"reiciendis\",
    \"social_media_1\": \"quo\",
    \"social_media_2\": \"molestiae\",
    \"custom_field_1\": \"voluptatem\",
    \"custom_field_2\": \"sit\",
    \"custom_field_3\": \"eos\",
    \"custom_field_4\": \"aperiam\",
    \"guardian_name\": \"doloribus\",
    \"id_proof_name\": \"aperiam\",
    \"id_proof_number\": \"quidem\",
    \"permanent_address\": \"ea\",
    \"current_a