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
- Get client_id & client_secret: Login to your account. Go to Connector > Clients, click on Create Client button.
- 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"
}
}
Received response:
Request failed with error:
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"
}
Received response:
Request failed with error:
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"
}
Received response:
Request failed with error:
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"
}
]
}
Received response:
Request failed with error:
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"
}
]
}
Received response:
Request failed with error:
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"
}
]
}
Received response:
Request failed with error:
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"
}
]
}
Received response:
Request failed with error:
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"
}
]
}
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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
}
}
]
}
]
}
Received response:
Request failed with error:
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"
}
}
Received response:
Request failed with error:
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"
}
}
}
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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));
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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));
Received response:
Request failed with error:
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"
}
]
}
]
}
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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
}
]
}
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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));
Received response:
Request failed with error:
Authorize a client to access the user's account.
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));
Received response:
Request failed with error:
Approve the authorization request.
Deny the authorization request.
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."
}
Received response:
Request failed with error:
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));
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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));
Received response:
Request failed with error:
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));
Received response:
Request failed with error:
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));
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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));
Received response:
Request failed with error:
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));
Received response:
Request failed with error:
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"
}
]
}
Received response:
Request failed with error:
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"
}
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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": []
}
}
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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"
}
]
}
Received response:
Request failed with error:
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"
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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));
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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));
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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));
Received response:
Request failed with error:
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));
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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": []
}
}
Received response:
Request failed with error:
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"
}
}
]
}
Received response:
Request failed with error:
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": []
}
}
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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"
}
]
}
]
}
Received response:
Request failed with error:
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"
}
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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"
}
}
Received response:
Request failed with error:
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¬_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
}
}
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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
}
}
]
}
]
}
Received response:
Request failed with error:
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"
}
]
}
Received response:
Request failed with error:
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¬_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
}
}
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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"
}
]
}
]
}
Received response:
Request failed with error:
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"
}
]
}
Received response:
Request failed with error:
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"
}
Received response:
Request failed with error:
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));
Received response:
Request failed with error:
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"
}
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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));
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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"
}
]
}
Received response:
Request failed with error:
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"
}
]
}
Received response:
Request failed with error:
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"
}
]
}
Received response:
Request failed with error:
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"
}
]
}
Received response:
Request failed with error:
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"
}
]
}
Received response:
Request failed with error:
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": []
}
]
}
Received response:
Request failed with error:
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"
}
]
}
]
}
Received response:
Request failed with error:
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"
}
]
}
Received response:
Request failed with error:
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"
}
]
}
Received response:
Request failed with error:
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"
}
}
]
}
Received response:
Request failed with error:
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
}
]
}
Received response:
Request failed with error:
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"
}
}
Received response:
Request failed with error:
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