Introduction
UltimatePOS API Documentation
This documentation aims to provide all the information you need to work with our API.
Authenticating requests
Authenticate requests to this API's endpoints by sending an Authorization
header with the value "Bearer {access_token}"
.
All authenticated endpoints are marked with a requires authentication
badge in the documentation below.
Getting access_token
- 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\": \"nam\",
\"ip_address\": \"corporis\",
\"latitude\": \"soluta\",
\"longitude\": \"et\"
}"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/clock-in"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"user_id": 1,
"clock_in_time": "2000-06-13 13:13:00",
"clock_in_note": "nam",
"ip_address": "corporis",
"latitude": "soluta",
"longitude": "et"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://pos.ultimatefosters.com/connector/api/clock-in',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'user_id' => 1,
'clock_in_time' => '2000-06-13 13:13:00',
'clock_in_note' => 'nam',
'ip_address' => 'corporis',
'latitude' => 'soluta',
'longitude' => 'et',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"msg": "Clocked In successfully",
"type": "clock_in"
}
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\": \"non\",
\"latitude\": \"error\",
\"longitude\": \"ratione\"
}"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/clock-out"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"user_id": 1,
"clock_out_time": "2000-06-13 13:13:00",
"clock_out_note": "non",
"latitude": "error",
"longitude": "ratione"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://pos.ultimatefosters.com/connector/api/clock-out',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'user_id' => 1,
'clock_out_time' => '2000-06-13 13:13:00',
'clock_out_note' => 'non',
'latitude' => 'error',
'longitude' => 'ratione',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"msg": "Clocked Out successfully",
"type": "clock_out"
}
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/dolorum" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/brand/dolorum"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/brand/dolorum',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 1,
"business_id": 1,
"name": "Levis",
"description": null,
"created_by": 1,
"deleted_at": null,
"created_at": "2018-01-03 21:19:47",
"updated_at": "2018-01-03 21:19:47"
}
]
}
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=sed&follow_up_type=amet&followup_category_id=quia&order_by=start_datetime&direction=desc&per_page=10" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/crm/follow-ups"
);
const params = {
"start_date": "2020-12-16",
"end_date": "2020-12-16",
"status": "sed",
"follow_up_type": "amet",
"followup_category_id": "quia",
"order_by": "start_datetime",
"direction": "desc",
"per_page": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/crm/follow-ups',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'start_date' => '2020-12-16',
'end_date' => '2020-12-16',
'status' => 'sed',
'follow_up_type' => 'amet',
'followup_category_id' => 'quia',
'order_by' => 'start_datetime',
'direction' => 'desc',
'per_page' => '10',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 1,
"business_id": 1,
"contact_id": 50,
"title": "Test Follow up",
"status": "scheduled",
"start_datetime": "2020-12-16 15:15:00",
"end_datetime": "2020-12-16 15:15:00",
"description": "<p>tst</p>",
"schedule_type": "call",
"allow_notification": 0,
"notify_via": {
"sms": 0,
"mail": 1
},
"notify_before": null,
"notify_type": "minute",
"created_by": 1,
"followup_additional_info": null,
"created_at": "2020-12-16 03:15:23",
"updated_at": "2020-12-16 15:46:34",
"customer": {
"id": 50,
"business_id": 1,
"type": "lead",
"supplier_business_name": null,
"name": " Lead 4 ",
"prefix": null,
"first_name": "Lead 4",
"middle_name": null,
"last_name": null,
"email": null,
"contact_id": "CO0011",
"contact_status": "active",
"tax_number": null,
"city": null,
"state": null,
"country": null,
"address_line_1": null,
"address_line_2": null,
"zip_code": null,
"dob": null,
"mobile": "234567",
"landline": null,
"alternate_number": null,
"pay_term_number": null,
"pay_term_type": null,
"credit_limit": null,
"created_by": 1,
"balance": "0.0000",
"total_rp": 0,
"total_rp_used": 0,
"total_rp_expired": 0,
"is_default": 0,
"shipping_address": null,
"position": null,
"customer_group_id": null,
"crm_source": "55",
"crm_life_stage": "62",
"custom_field1": null,
"custom_field2": null,
"custom_field3": null,
"custom_field4": null,
"custom_field5": null,
"custom_field6": null,
"custom_field7": null,
"custom_field8": null,
"custom_field9": null,
"custom_field10": null,
"deleted_at": null,
"created_at": "2020-12-15 23:14:48",
"updated_at": "2021-01-07 15:32:52",
"remember_token": null,
"password": null
}
},
{
"id": 2,
"business_id": 1,
"contact_id": 50,
"title": "Test Follow up 1",
"status": "completed",
"start_datetime": "2020-12-16 15:46:00",
"end_datetime": "2020-12-16 15:46:00",
"description": "<p>Test Follow up</p>",
"schedule_type": "call",
"allow_notification": 0,
"notify_via": {
"sms": 0,
"mail": 1
},
"notify_before": null,
"notify_type": "minute",
"created_by": 1,
"followup_additional_info": null,
"created_at": "2020-12-16 15:46:57",
"updated_at": "2020-12-17 10:24:11",
"customer": {
"id": 50,
"business_id": 1,
"type": "lead",
"supplier_business_name": null,
"name": " Lead 4 ",
"prefix": null,
"first_name": "Lead 4",
"middle_name": null,
"last_name": null,
"email": null,
"contact_id": "CO0011",
"contact_status": "active",
"tax_number": null,
"city": null,
"state": null,
"country": null,
"address_line_1": null,
"address_line_2": null,
"zip_code": null,
"dob": null,
"mobile": "234567",
"landline": null,
"alternate_number": null,
"pay_term_number": null,
"pay_term_type": null,
"credit_limit": null,
"created_by": 1,
"balance": "0.0000",
"total_rp": 0,
"total_rp_used": 0,
"total_rp_expired": 0,
"is_default": 0,
"shipping_address": null,
"position": null,
"customer_group_id": null,
"crm_source": "55",
"crm_life_stage": "62",
"custom_field1": null,
"custom_field2": null,
"custom_field3": null,
"custom_field4": null,
"custom_field5": null,
"custom_field6": null,
"custom_field7": null,
"custom_field8": null,
"custom_field9": null,
"custom_field10": null,
"deleted_at": null,
"created_at": "2020-12-15 23:14:48",
"updated_at": "2021-01-07 15:32:52",
"remember_token": null,
"password": null
}
}
],
"links": {
"first": "http://local.pos.com/connector/api/crm/follow-ups?page=1",
"last": "http://local.pos.com/connector/api/crm/follow-ups?page=21",
"prev": null,
"next": "http://local.pos.com/connector/api/crm/follow-ups?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 21,
"path": "http://local.pos.com/connector/api/crm/follow-ups",
"per_page": "2",
"to": 2,
"total": 42
}
}
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\": \"Libero consequatur cum et eos placeat.\",
\"schedule_type\": \"sed\",
\"user_id\": [
2,
3,
5
],
\"notify_before\": 5,
\"notify_type\": \"minute\",
\"status\": \"open\",
\"notify_via\": [
\"pariatur\"
],
\"start_datetime\": \"2021-01-06 13:05:00\",
\"end_datetime\": \"2021-01-06 13:05:00\",
\"followup_additional_info\": [
\"tempora\"
],
\"allow_notification\": true
}"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/crm/follow-ups"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"title": "Meeting with client",
"contact_id": 2,
"description": "Libero consequatur cum et eos placeat.",
"schedule_type": "sed",
"user_id": [
2,
3,
5
],
"notify_before": 5,
"notify_type": "minute",
"status": "open",
"notify_via": [
"pariatur"
],
"start_datetime": "2021-01-06 13:05:00",
"end_datetime": "2021-01-06 13:05:00",
"followup_additional_info": [
"tempora"
],
"allow_notification": true
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://pos.ultimatefosters.com/connector/api/crm/follow-ups',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'title' => 'Meeting with client',
'contact_id' => 2,
'description' => 'Libero consequatur cum et eos placeat.',
'schedule_type' => 'sed',
'user_id' => [
2,
3,
5,
],
'notify_before' => 5,
'notify_type' => 'minute',
'status' => 'open',
'notify_via' => [
'pariatur',
],
'start_datetime' => '2021-01-06 13:05:00',
'end_datetime' => '2021-01-06 13:05:00',
'followup_additional_info' => [
'tempora',
],
'allow_notification' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": {
"title": "test",
"contact_id": "1",
"description": null,
"schedule_type": "call",
"followup_category_id": "1",
"notify_before": null,
"status": null,
"start_datetime": "2021-01-06 15:27:00",
"end_datetime": "2021-01-06 15:27:00",
"allow_notification": 0,
"notify_via": {
"sms": 1,
"mail": 1
},
"notify_type": "hour",
"business_id": 1,
"created_by": 1,
"updated_at": "2021-01-06 17:04:54",
"created_at": "2021-01-06 17:04:54",
"id": 20
}
}
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/perferendis" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/crm/follow-ups/perferendis"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/crm/follow-ups/perferendis',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 20,
"business_id": 1,
"contact_id": 1,
"title": "Meeting with client",
"status": null,
"start_datetime": "2021-01-06 15:27:00",
"end_datetime": "2021-01-06 15:27:00",
"description": null,
"schedule_type": "call",
"allow_notification": 0,
"notify_via": {
"sms": 1,
"mail": 1
},
"notify_before": null,
"notify_type": "hour",
"created_by": 1,
"created_at": "2021-01-06 17:04:54",
"updated_at": "2021-01-06 17:04:54",
"customer": {
"id": 1,
"business_id": 1,
"type": "customer",
"supplier_business_name": null,
"name": "Walk-In Customer",
"prefix": null,
"first_name": "Walk-In Customer",
"middle_name": null,
"last_name": null,
"email": null,
"contact_id": "CO0005",
"contact_status": "active",
"tax_number": null,
"city": "Phoenix",
"state": "Arizona",
"country": "USA",
"address_line_1": "Linking Street",
"address_line_2": null,
"zip_code": null,
"dob": null,
"mobile": "(378) 400-1234",
"landline": null,
"alternate_number": null,
"pay_term_number": null,
"pay_term_type": null,
"credit_limit": null,
"created_by": 1,
"balance": "0.0000",
"total_rp": 0,
"total_rp_used": 0,
"total_rp_expired": 0,
"is_default": 1,
"shipping_address": null,
"position": null,
"customer_group_id": null,
"crm_source": null,
"crm_life_stage": null,
"custom_field1": null,
"custom_field2": null,
"custom_field3": null,
"custom_field4": null,
"custom_field5": null,
"custom_field6": null,
"custom_field7": null,
"custom_field8": null,
"custom_field9": null,
"custom_field10": null,
"deleted_at": null,
"created_at": "2018-01-03 20:45:20",
"updated_at": "2018-06-11 22:22:05",
"remember_token": null,
"password": null
},
"users": [
{
"id": 2,
"user_type": "user",
"surname": "Mr",
"first_name": "Demo",
"last_name": "Cashier",
"username": "cashier",
"email": "[email protected]",
"language": "en",
"contact_no": null,
"address": null,
"business_id": 1,
"max_sales_discount_percent": null,
"allow_login": 1,
"essentials_department_id": null,
"essentials_designation_id": null,
"status": "active",
"crm_contact_id": null,
"is_cmmsn_agnt": 0,
"cmmsn_percent": "0.00",
"selected_contacts": 0,
"dob": null,
"gender": null,
"marital_status": null,
"blood_group": null,
"contact_number": null,
"fb_link": null,
"twitter_link": null,
"social_media_1": null,
"social_media_2": null,
"permanent_address": null,
"current_address": null,
"guardian_name": null,
"custom_field_1": null,
"custom_field_2": null,
"custom_field_3": null,
"custom_field_4": null,
"bank_details": null,
"id_proof_name": null,
"id_proof_number": null,
"deleted_at": null,
"created_at": "2018-01-04 02:20:58",
"updated_at": "2018-01-04 02:20:58",
"pivot": {
"schedule_id": 20,
"user_id": 2
}
}
]
}
]
}
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/voluptatibus" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"title\": \"Meeting with client\",
\"contact_id\": 2,
\"description\": \"Non unde quae aliquam corrupti minima.\",
\"schedule_type\": \"nihil\",
\"user_id\": [
2,
3,
5
],
\"notify_before\": 5,
\"notify_type\": \"minute\",
\"status\": \"open\",
\"notify_via\": [
\"eligendi\"
],
\"followup_additional_info\": [
\"esse\"
],
\"start_datetime\": \"2021-01-06 13:05:00\",
\"end_datetime\": \"2021-01-06 13:05:00\",
\"allow_notification\": true
}"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/crm/follow-ups/voluptatibus"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"title": "Meeting with client",
"contact_id": 2,
"description": "Non unde quae aliquam corrupti minima.",
"schedule_type": "nihil",
"user_id": [
2,
3,
5
],
"notify_before": 5,
"notify_type": "minute",
"status": "open",
"notify_via": [
"eligendi"
],
"followup_additional_info": [
"esse"
],
"start_datetime": "2021-01-06 13:05:00",
"end_datetime": "2021-01-06 13:05:00",
"allow_notification": true
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
'https://pos.ultimatefosters.com/connector/api/crm/follow-ups/voluptatibus',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'title' => 'Meeting with client',
'contact_id' => 2,
'description' => 'Non unde quae aliquam corrupti minima.',
'schedule_type' => 'nihil',
'user_id' => [
2,
3,
5,
],
'notify_before' => 5,
'notify_type' => 'minute',
'status' => 'open',
'notify_via' => [
'eligendi',
],
'followup_additional_info' => [
'esse',
],
'start_datetime' => '2021-01-06 13:05:00',
'end_datetime' => '2021-01-06 13:05:00',
'allow_notification' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": {
"id": 20,
"business_id": 1,
"contact_id": "1",
"title": "Meeting with client",
"status": null,
"start_datetime": "2021-01-06 15:27:00",
"end_datetime": "2021-01-06 15:27:00",
"description": null,
"schedule_type": "call",
"allow_notification": 0,
"notify_via": {
"sms": 1,
"mail": 0
},
"notify_before": null,
"notify_type": "hour",
"created_by": 1,
"created_at": "2021-01-06 17:04:54",
"updated_at": "2021-01-06 18:22:21"
}
}
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=cumque&biz_name=nisi&mobile_num=3&contact_id=neque&order_by=tenetur&direction=desc&per_page=10" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/crm/leads"
);
const params = {
"assigned_to": "1,2,3",
"name": "cumque",
"biz_name": "nisi",
"mobile_num": "3",
"contact_id": "neque",
"order_by": "tenetur",
"direction": "desc",
"per_page": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/crm/leads',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'assigned_to' => '1,2,3',
'name' => 'cumque',
'biz_name' => 'nisi',
'mobile_num' => '3',
'contact_id' => 'neque',
'order_by' => 'tenetur',
'direction' => 'desc',
'per_page' => '10',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"contact_id": "CO0010",
"name": "mr Lead 3 kr kr 2",
"supplier_business_name": "POS",
"email": null,
"mobile": "9437638555",
"tax_number": null,
"created_at": "2020-12-15 23:14:30",
"custom_field1": null,
"custom_field2": null,
"custom_field3": null,
"custom_field4": null,
"custom_field5": null,
"custom_field6": null,
"alternate_number": null,
"landline": null,
"dob": null,
"contact_status": "active",
"type": "lead",
"custom_field7": null,
"custom_field8": null,
"custom_field9": null,
"custom_field10": null,
"id": 49,
"business_id": 1,
"crm_source": "55",
"crm_life_stage": "60",
"address_line_1": null,
"address_line_2": null,
"city": null,
"state": null,
"country": null,
"zip_code": null,
"last_follow_up_id": 18,
"upcoming_follow_up_id": null,
"last_follow_up": "2021-01-07 10:26:00",
"upcoming_follow_up": null,
"last_follow_up_additional_info": "{\"test\":\"test done\",\"call_duration\":\"1.5 Hour\",\"rand\":1}",
"upcoming_follow_up_additional_info": null,
"source": {
"id": 55,
"name": "Facebook",
"business_id": 1,
"short_code": null,
"parent_id": 0,
"created_by": 1,
"category_type": "source",
"description": "Facebook",
"slug": null,
"woocommerce_cat_id": null,
"deleted_at": null,
"created_at": "2020-12-15 23:07:53",
"updated_at": "2020-12-15 23:07:53"
},
"life_stage": {
"id": 60,
"name": "Open Deal",
"business_id": 1,
"short_code": null,
"parent_id": 0,
"created_by": 1,
"category_type": "life_stage",
"description": "Open Deal",
"slug": null,
"woocommerce_cat_id": null,
"deleted_at": null,
"created_at": "2020-12-15 23:11:05",
"updated_at": "2020-12-15 23:11:05"
},
"lead_users": [
{
"id": 10,
"user_type": "user",
"surname": "Mr.",
"first_name": "WooCommerce",
"last_name": "User",
"username": "woocommerce_user",
"email": "[email protected]",
"language": "en",
"contact_no": null,
"address": null,
"business_id": 1,
"max_sales_discount_percent": null,
"allow_login": 1,
"essentials_department_id": null,
"essentials_designation_id": null,
"status": "active",
"crm_contact_id": null,
"is_cmmsn_agnt": 0,
"cmmsn_percent": "0.00",
"selected_contacts": 0,
"dob": null,
"gender": null,
"marital_status": null,
"blood_group": null,
"contact_number": null,
"fb_link": null,
"twitter_link": null,
"social_media_1": null,
"social_media_2": null,
"permanent_address": null,
"current_address": null,
"guardian_name": null,
"custom_field_1": null,
"custom_field_2": null,
"custom_field_3": null,
"custom_field_4": null,
"bank_details": null,
"id_proof_name": null,
"id_proof_number": null,
"deleted_at": null,
"created_at": "2018-08-02 04:05:55",
"updated_at": "2018-08-02 04:05:55",
"pivot": {
"contact_id": 49,
"user_id": 10
}
}
]
},
{
"contact_id": "CO0011",
"name": " Lead 4 ",
"supplier_business_name": null,
"email": null,
"mobile": "234567",
"tax_number": null,
"created_at": "2020-12-15 23:14:48",
"custom_field1": null,
"custom_field2": null,
"custom_field3": null,
"custom_field4": null,
"custom_field5": null,
"custom_field6": null,
"alternate_number": null,
"landline": null,
"dob": null,
"contact_status": "active",
"type": "lead",
"custom_field7": null,
"custom_field8": null,
"custom_field9": null,
"custom_field10": null,
"id": 50,
"business_id": 1,
"crm_source": "55",
"crm_life_stage": "62",
"address_line_1": null,
"address_line_2": null,
"city": null,
"state": null,
"country": null,
"zip_code": null,
"last_follow_up_id": 32,
"upcoming_follow_up_id": null,
"last_follow_up": "2021-01-08 16:06:00",
"upcoming_follow_up": null,
"last_follow_up_additional_info": "{\"call_durartion\":\"5 hour\"}",
"upcoming_follow_up_additional_info": null,
"source": {
"id": 55,
"name": "Facebook",
"business_id": 1,
"short_code": null,
"parent_id": 0,
"created_by": 1,
"category_type": "source",
"description": "Facebook",
"slug": null,
"woocommerce_cat_id": null,
"deleted_at": null,
"created_at": "2020-12-15 23:07:53",
"updated_at": "2020-12-15 23:07:53"
},
"life_stage": {
"id": 62,
"name": "New",
"business_id": 1,
"short_code": null,
"parent_id": 0,
"created_by": 1,
"category_type": "life_stage",
"description": "New",
"slug": null,
"woocommerce_cat_id": null,
"deleted_at": null,
"created_at": "2020-12-15 23:11:26",
"updated_at": "2020-12-15 23:11:26"
},
"lead_users": [
{
"id": 11,
"user_type": "user",
"surname": "Mr",
"first_name": "Admin Essential",
"last_name": null,
"username": "admin-essentials",
"email": "[email protected]",
"language": "en",
"contact_no": null,
"address": null,
"business_id": 1,
"max_sales_discount_percent": null,
"allow_login": 1,
"essentials_department_id": null,
"essentials_designation_id": null,
"status": "active",
"crm_contact_id": null,
"is_cmmsn_agnt": 0,
"cmmsn_percent": "0.00",
"selected_contacts": 0,
"dob": null,
"gender": null,
"marital_status": null,
"blood_group": null,
"contact_number": null,
"fb_link": null,
"twitter_link": null,
"social_media_1": null,
"social_media_2": null,
"permanent_address": null,
"current_address": null,
"guardian_name": null,
"custom_field_1": null,
"custom_field_2": null,
"custom_field_3": null,
"custom_field_4": null,
"bank_details": null,
"id_proof_name": null,
"id_proof_number": null,
"deleted_at": null,
"created_at": "2018-01-04 02:15:19",
"updated_at": "2018-01-04 02:15:19",
"pivot": {
"contact_id": 50,
"user_id": 11
}
}
]
},
{
"contact_id": "CO0015",
"name": " Lead kr ",
"supplier_business_name": null,
"email": null,
"mobile": "9437638555",
"tax_number": null,
"created_at": "2021-01-07 18:31:08",
"custom_field1": null,
"custom_field2": null,
"custom_field3": null,
"custom_field4": null,
"custom_field5": null,
"custom_field6": null,
"alternate_number": null,
"landline": null,
"dob": "2021-01-07",
"contact_status": "active",
"type": "lead",
"custom_field7": null,
"custom_field8": null,
"custom_field9": null,
"custom_field10": null,
"id": 82,
"business_id": 1,
"crm_source": null,
"crm_life_stage": null,
"address_line_1": null,
"address_line_2": null,
"city": null,
"state": null,
"country": null,
"zip_code": null,
"last_follow_up_id": 36,
"upcoming_follow_up_id": null,
"last_follow_up": "2021-01-07 18:31:08",
"upcoming_follow_up": null,
"last_follow_up_additional_info": "{\"call duration\":\"1 hour\",\"call descr\":\"talked to him and all okay\"}",
"upcoming_follow_up_additional_info": null,
"source": null,
"life_stage": null,
"lead_users": [
{
"id": 11,
"user_type": "user",
"surname": "Mr",
"first_name": "Admin Essential",
"last_name": null,
"username": "admin-essentials",
"email": "[email protected]",
"language": "en",
"contact_no": null,
"address": null,
"business_id": 1,
"max_sales_discount_percent": null,
"allow_login": 1,
"essentials_department_id": null,
"essentials_designation_id": null,
"status": "active",
"crm_contact_id": null,
"is_cmmsn_agnt": 0,
"cmmsn_percent": "0.00",
"selected_contacts": 0,
"dob": null,
"gender": null,
"marital_status": null,
"blood_group": null,
"contact_number": null,
"fb_link": null,
"twitter_link": null,
"social_media_1": null,
"social_media_2": null,
"permanent_address": null,
"current_address": null,
"guardian_name": null,
"custom_field_1": null,
"custom_field_2": null,
"custom_field_3": null,
"custom_field_4": null,
"bank_details": null,
"id_proof_name": null,
"id_proof_number": null,
"deleted_at": null,
"created_at": "2018-01-04 02:15:19",
"updated_at": "2018-01-04 02:15:19",
"pivot": {
"contact_id": 82,
"user_id": 11
}
}
]
}
],
"links": {
"first": "http://local.pos.com/connector/api/crm/leads?page=1",
"last": "http://local.pos.com/connector/api/crm/leads?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"path": "http://local.pos.com/connector/api/crm/leads",
"per_page": "10",
"to": 3,
"total": 3
}
}
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\": 18.16,
\"created_at\": \"2020-5-7 15:20:22\",
\"closed_at\": \"2020-5-7 15:20:22\",
\"status\": \"close\",
\"closing_amount\": 68.9,
\"total_card_slips\": 14,
\"total_cheques\": 19,
\"closing_note\": \"neque\",
\"transaction_ids\": \"1,2,3\\n\\nresponse {\\n\\\"data\\\": {\\n\\\"status\\\": \\\"closed\\\",\\n\\\"location_id\\\": \\\"1\\\",\\n\\\"closed_at\\\": \\\"2020-07-02 12:03:00\\\",\\n\\\"business_id\\\": 1,\\n\\\"user_id\\\": 1,\\n\\\"updated_at\\\": \\\"2020-07-06 16:28:42\\\",\\n\\\"created_at\\\": \\\"2020-07-06 16:28:42\\\",\\n\\\"id\\\": 3\\n}\\n}\"
}"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/cash-register"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"location_id": 1,
"initial_amount": 18.16,
"created_at": "2020-5-7 15:20:22",
"closed_at": "2020-5-7 15:20:22",
"status": "close",
"closing_amount": 68.9,
"total_card_slips": 14,
"total_cheques": 19,
"closing_note": "neque",
"transaction_ids": "1,2,3\n\nresponse {\n\"data\": {\n\"status\": \"closed\",\n\"location_id\": \"1\",\n\"closed_at\": \"2020-07-02 12:03:00\",\n\"business_id\": 1,\n\"user_id\": 1,\n\"updated_at\": \"2020-07-06 16:28:42\",\n\"created_at\": \"2020-07-06 16:28:42\",\n\"id\": 3\n}\n}"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://pos.ultimatefosters.com/connector/api/cash-register',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'location_id' => 1,
'initial_amount' => 18.16,
'created_at' => '2020-5-7 15:20:22',
'closed_at' => '2020-5-7 15:20:22',
'status' => 'close',
'closing_amount' => 68.9,
'total_card_slips' => 14,
'total_cheques' => 19,
'closing_note' => 'neque',
'transaction_ids' => '1,2,3'."\n"
."\n"
.'response {'."\n"
.'"data": {'."\n"
.'"status": "closed",'."\n"
.'"location_id": "1",'."\n"
.'"closed_at": "2020-07-02 12:03:00",'."\n"
.'"business_id": 1,'."\n"
.'"user_id": 1,'."\n"
.'"updated_at": "2020-07-06 16:28:42",'."\n"
.'"created_at": "2020-07-06 16:28:42",'."\n"
.'"id": 3'."\n"
.'}'."\n"
.'}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
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=adipisci&name=provident&biz_name=ad&mobile_num=14&contact_id=iste&order_by=cum&direction=itaque&per_page=10" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/contactapi"
);
const params = {
"type": "adipisci",
"name": "provident",
"biz_name": "ad",
"mobile_num": "14",
"contact_id": "iste",
"order_by": "cum",
"direction": "itaque",
"per_page": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/contactapi',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'type' => 'adipisci',
'name' => 'provident',
'biz_name' => 'ad',
'mobile_num' => '14',
'contact_id' => 'iste',
'order_by' => 'cum',
'direction' => 'itaque',
'per_page' => '10',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 2,
"business_id": 1,
"type": "supplier",
"supplier_business_name": "Alpha Clothings",
"name": "Michael",
"prefix": null,
"first_name": "Michael",
"middle_name": null,
"last_name": null,
"email": null,
"contact_id": "CO0001",
"contact_status": "active",
"tax_number": "4590091535",
"city": "Phoenix",
"state": "Arizona",
"country": "USA",
"address_line_1": "Linking Street",
"address_line_2": null,
"zip_code": null,
"dob": null,
"mobile": "(378) 400-1234",
"landline": null,
"alternate_number": null,
"pay_term_number": 15,
"pay_term_type": "days",
"credit_limit": null,
"created_by": 1,
"balance": "0.0000",
"total_rp": 0,
"total_rp_used": 0,
"total_rp_expired": 0,
"is_default": 0,
"shipping_address": null,
"position": null,
"customer_group_id": null,
"crm_source": null,
"crm_life_stage": null,
"custom_field1": null,
"custom_field2": null,
"custom_field3": null,
"custom_field4": null,
"custom_field5": null,
"custom_field6": null,
"custom_field7": null,
"custom_field8": null,
"custom_field9": null,
"custom_field10": null,
"deleted_at": null,
"created_at": "2018-01-03 20:59:38",
"updated_at": "2018-06-11 22:21:03",
"remember_token": null,
"password": null
},
{
"id": 3,
"business_id": 1,
"type": "supplier",
"supplier_business_name": "Manhattan Clothing Ltd.",
"name": "Philip",
"prefix": null,
"first_name": "Philip",
"middle_name": null,
"last_name": null,
"email": null,
"contact_id": "CO0003",
"contact_status": "active",
"tax_number": "54869310093",
"city": "Phoenix",
"state": "Arizona",
"country": "USA",
"address_line_1": "Linking Street",
"address_line_2": null,
"zip_code": null,
"dob": null,
"mobile": "(378) 400-1234",
"landline": null,
"alternate_number": null,
"pay_term_number": 15,
"pay_term_type": "days",
"credit_limit": null,
"created_by": 1,
"balance": "0.0000",
"total_rp": 0,
"total_rp_used": 0,
"total_rp_expired": 0,
"is_default": 0,
"shipping_address": null,
"position": null,
"customer_group_id": null,
"crm_source": null,
"crm_life_stage": null,
"custom_field1": null,
"custom_field2": null,
"custom_field3": null,
"custom_field4": null,
"custom_field5": null,
"custom_field6": null,
"custom_field7": null,
"custom_field8": null,
"custom_field9": null,
"custom_field10": null,
"deleted_at": null,
"created_at": "2018-01-03 21:00:55",
"updated_at": "2018-06-11 22:21:36",
"remember_token": null,
"password": null
},
{
"id": 5,
"business_id": 1,
"type": "supplier",
"supplier_business_name": "Digital Ocean",
"name": "Mike McCubbin",
"prefix": null,
"first_name": "Mike McCubbin",
"middle_name": null,
"last_name": null,
"email": null,
"contact_id": "CN0004",
"contact_status": "active",
"tax_number": "52965489001",
"city": "Phoenix",
"state": "Arizona",
"country": "USA",
"address_line_1": "Linking Street",
"address_line_2": null,
"zip_code": null,
"dob": null,
"mobile": "(378) 400-1234",
"landline": null,
"alternate_number": null,
"pay_term_number": 30,
"pay_term_type": "days",
"credit_limit": null,
"created_by": 1,
"balance": "0.0000",
"total_rp": 0,
"total_rp_used": 0,
"total_rp_expired": 0,
"is_default": 0,
"shipping_address": null,
"position": null,
"customer_group_id": null,
"crm_source": null,
"crm_life_stage": null,
"custom_field1": null,
"custom_field2": null,
"custom_field3": null,
"custom_field4": null,
"custom_field5": null,
"custom_field6": null,
"custom_field7": null,
"custom_field8": null,
"custom_field9": null,
"custom_field10": null,
"deleted_at": null,
"created_at": "2018-01-06 06:53:22",
"updated_at": "2018-06-11 22:21:47",
"remember_token": null,
"password": null
},
{
"id": 6,
"business_id": 1,
"type": "supplier",
"supplier_business_name": "Univer Suppliers",
"name": "Jackson Hill",
"prefix": null,
"first_name": "Jackson Hill",
"middle_name": null,
"last_name": null,
"email": null,
"contact_id": "CO0002",
"contact_status": "active",
"tax_number": "5459000655",
"city": "Phoenix",
"state": "Arizona",
"country": "USA",
"address_line_1": "Linking Street",
"address_line_2": null,
"zip_code": null,
"dob": null,
"mobile": "(378) 400-1234",
"landline": null,
"alternate_number": null,
"pay_term_number": 45,
"pay_term_type": "days",
"credit_limit": null,
"created_by": 1,
"balance": "0.0000",
"total_rp": 0,
"total_rp_used": 0,
"total_rp_expired": 0,
"is_default": 0,
"shipping_address": null,
"position": null,
"customer_group_id": null,
"crm_source": null,
"crm_life_stage": null,
"custom_field1": null,
"custom_field2": null,
"custom_field3": null,
"custom_field4": null,
"custom_field5": null,
"custom_field6": null,
"custom_field7": null,
"custom_field8": null,
"custom_field9": null,
"custom_field10": null,
"deleted_at": null,
"created_at": "2018-01-06 06:55:09",
"updated_at": "2018-06-11 22:21:18",
"remember_token": null,
"password": null
}
],
"links": {
"first": "http://local.pos.com/connector/api/contactapi?page=1",
"last": "http://local.pos.com/connector/api/contactapi?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"path": "http://local.pos.com/connector/api/contactapi",
"per_page": "10",
"to": 4,
"total": 4
}
}
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\": \"veritatis\",
\"prefix\": \"provident\",
\"first_name\": \"eum\",
\"middle_name\": \"enim\",
\"last_name\": \"quisquam\",
\"tax_number\": \"8787fefef\",
\"pay_term_number\": 3,
\"pay_term_type\": \"months\",
\"mobile\": \"4578691009\",
\"landline\": \"5487-8454-4145\",
\"alternate_number\": \"841847541222\",
\"address_line_1\": \"error\",
\"address_line_2\": \"inventore\",
\"city\": \"nihil\",
\"state\": \"non\",
\"country\": \"et\",
\"zip_code\": \"rem\",
\"customer_group_id\": \"qui\",
\"contact_id\": \"nihil\",
\"dob\": \"2000-06-13\",
\"custom_field1\": \"quis\",
\"custom_field2\": \"sunt\",
\"custom_field3\": \"qui\",
\"custom_field4\": \"repellat\",
\"email\": \"[email protected]\",
\"shipping_address\": \"tempore\",
\"position\": \"pariatur\",
\"opening_balance\": 0,
\"source_id\": 11,
\"life_stage_id\": 7,
\"assigned_to\": [
\"reiciendis\"
]
}"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/contactapi"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"type": "customer",
"supplier_business_name": "veritatis",
"prefix": "provident",
"first_name": "eum",
"middle_name": "enim",
"last_name": "quisquam",
"tax_number": "8787fefef",
"pay_term_number": 3,
"pay_term_type": "months",
"mobile": "4578691009",
"landline": "5487-8454-4145",
"alternate_number": "841847541222",
"address_line_1": "error",
"address_line_2": "inventore",
"city": "nihil",
"state": "non",
"country": "et",
"zip_code": "rem",
"customer_group_id": "qui",
"contact_id": "nihil",
"dob": "2000-06-13",
"custom_field1": "quis",
"custom_field2": "sunt",
"custom_field3": "qui",
"custom_field4": "repellat",
"email": "[email protected]",
"shipping_address": "tempore",
"position": "pariatur",
"opening_balance": 0,
"source_id": 11,
"life_stage_id": 7,
"assigned_to": [
"reiciendis"
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://pos.ultimatefosters.com/connector/api/contactapi',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'type' => 'customer',
'supplier_business_name' => 'veritatis',
'prefix' => 'provident',
'first_name' => 'eum',
'middle_name' => 'enim',
'last_name' => 'quisquam',
'tax_number' => '8787fefef',
'pay_term_number' => 3.0,
'pay_term_type' => 'months',
'mobile' => '4578691009',
'landline' => '5487-8454-4145',
'alternate_number' => '841847541222',
'address_line_1' => 'error',
'address_line_2' => 'inventore',
'city' => 'nihil',
'state' => 'non',
'country' => 'et',
'zip_code' => 'rem',
'customer_group_id' => 'qui',
'contact_id' => 'nihil',
'dob' => '2000-06-13',
'custom_field1' => 'quis',
'custom_field2' => 'sunt',
'custom_field3' => 'qui',
'custom_field4' => 'repellat',
'email' => '[email protected]',
'shipping_address' => 'tempore',
'position' => 'pariatur',
'opening_balance' => 0.0,
'source_id' => 11,
'life_stage_id' => 7,
'assigned_to' => [
'reiciendis',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": {
"type": "customer",
"name": "test customer",
"tax_number": "75879BHF",
"mobile": "7878825008",
"business_id": 1,
"created_by": 9,
"credit_limit": null,
"contact_id": "CO0007",
"updated_at": "2020-06-04 21:59:21",
"created_at": "2020-06-04 21:59:21",
"id": 17
}
}
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/sunt" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/contactapi/sunt"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/contactapi/sunt',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 1,
"business_id": 1,
"type": "customer",
"supplier_business_name": null,
"name": " Walk-In Customer ",
"prefix": null,
"first_name": "Walk-In Customer",
"middle_name": null,
"last_name": null,
"email": "[email protected]",
"contact_id": "CO0005",
"contact_status": "active",
"tax_number": null,
"city": "Phoenix",
"state": "Arizona",
"country": "USA",
"address_line_1": "Linking Street",
"address_line_2": null,
"zip_code": "85001",
"dob": null,
"mobile": "(378) 400-1234",
"landline": null,
"alternate_number": null,
"pay_term_number": null,
"pay_term_type": null,
"credit_limit": "0.0000",
"created_by": 1,
"balance": "0.0000",
"total_rp": 0,
"total_rp_used": 0,
"total_rp_expired": 0,
"is_default": 1,
"shipping_address": null,
"position": null,
"customer_group_id": null,
"crm_source": null,
"crm_life_stage": null,
"custom_field1": null,
"custom_field2": null,
"custom_field3": null,
"custom_field4": null,
"deleted_at": null,
"created_at": "2018-01-03 20:45:20",
"updated_at": "2020-08-10 10:26:45",
"remember_token": null,
"password": null,
"customer_group": null,
"opening_balance": "0.0000",
"opening_balance_paid": "0.0000",
"total_purchase": "0.0000",
"purchase_paid": "0.0000",
"total_purchase_return": "0.0000",
"purchase_return_paid": "0.0000",
"total_invoice": "2050.0000",
"invoice_received": "1987.5000",
"total_sell_return": "0.0000",
"sell_return_paid": "0.0000",
"purchase_due": 0,
"sell_due": 62.5,
"purchase_return_due": 0,
"sell_return_due": 0
}
]
}
Received response:
Request failed with error:
Update contact
requires authentication
Example request:
curl --request PUT \
"https://pos.ultimatefosters.com/connector/api/contactapi/iure" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"type\": \"customer\",
\"supplier_business_name\": \"ut\",
\"prefix\": \"nihil\",
\"first_name\": \"tenetur\",
\"middle_name\": \"sapiente\",
\"last_name\": \"omnis\",
\"tax_number\": \"488744dwd\",
\"pay_term_number\": 3,
\"pay_term_type\": \"months\",
\"mobile\": \"8795461009\",
\"landline\": \"65484-848-848\",
\"alternate_number\": \"9898795220\",
\"address_line_1\": \"laudantium\",
\"address_line_2\": \"nihil\",
\"city\": \"commodi\",
\"state\": \"ea\",
\"country\": \"tempora\",
\"zip_code\": \"iure\",
\"customer_group_id\": \"molestias\",
\"contact_id\": \"unde\",
\"dob\": \"2000-06-13\",
\"custom_field1\": \"delectus\",
\"custom_field2\": \"ad\",
\"custom_field3\": \"in\",
\"custom_field4\": \"nihil\",
\"email\": \"[email protected]\",
\"shipping_address\": \"ipsum\",
\"position\": \"eligendi\",
\"opening_balance\": 10.3,
\"source_id\": 16,
\"life_stage_id\": 18,
\"assigned_to\": [
\"possimus\"
]
}"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/contactapi/iure"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"type": "customer",
"supplier_business_name": "ut",
"prefix": "nihil",
"first_name": "tenetur",
"middle_name": "sapiente",
"last_name": "omnis",
"tax_number": "488744dwd",
"pay_term_number": 3,
"pay_term_type": "months",
"mobile": "8795461009",
"landline": "65484-848-848",
"alternate_number": "9898795220",
"address_line_1": "laudantium",
"address_line_2": "nihil",
"city": "commodi",
"state": "ea",
"country": "tempora",
"zip_code": "iure",
"customer_group_id": "molestias",
"contact_id": "unde",
"dob": "2000-06-13",
"custom_field1": "delectus",
"custom_field2": "ad",
"custom_field3": "in",
"custom_field4": "nihil",
"email": "[email protected]",
"shipping_address": "ipsum",
"position": "eligendi",
"opening_balance": 10.3,
"source_id": 16,
"life_stage_id": 18,
"assigned_to": [
"possimus"
]
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
'https://pos.ultimatefosters.com/connector/api/contactapi/iure',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'type' => 'customer',
'supplier_business_name' => 'ut',
'prefix' => 'nihil',
'first_name' => 'tenetur',
'middle_name' => 'sapiente',
'last_name' => 'omnis',
'tax_number' => '488744dwd',
'pay_term_number' => 3.0,
'pay_term_type' => 'months',
'mobile' => '8795461009',
'landline' => '65484-848-848',
'alternate_number' => '9898795220',
'address_line_1' => 'laudantium',
'address_line_2' => 'nihil',
'city' => 'commodi',
'state' => 'ea',
'country' => 'tempora',
'zip_code' => 'iure',
'customer_group_id' => 'molestias',
'contact_id' => 'unde',
'dob' => '2000-06-13',
'custom_field1' => 'delectus',
'custom_field2' => 'ad',
'custom_field3' => 'in',
'custom_field4' => 'nihil',
'email' => '[email protected]',
'shipping_address' => 'ipsum',
'position' => 'eligendi',
'opening_balance' => 10.3,
'source_id' => 16,
'life_stage_id' => 18,
'assigned_to' => [
'possimus',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": {
"id": 21,
"business_id": 1,
"type": "customer",
"supplier_business_name": null,
"name": "created from api",
"prefix": null,
"first_name": "created from api",
"middle_name": null,
"last_name": null,
"email": null,
"contact_id": "CO0009",
"contact_status": "active",
"tax_number": null,
"city": null,
"state": null,
"country": null,
"address_line_1": "test address",
"address_line_2": null,
"zip_code": "54878787",
"dob": "2000-06-13",
"mobile": "8754154872154",
"landline": null,
"alternate_number": null,
"pay_term_number": null,
"pay_term_type": null,
"credit_limit": null,
"created_by": 1,
"balance": "0.0000",
"total_rp": 0,
"total_rp_used": 0,
"total_rp_expired": 0,
"is_default": 0,
"shipping_address": null,
"position": null,
"customer_group_id": null,
"crm_source": null,
"crm_life_stage": null,
"custom_field1": null,
"custom_field2": null,
"custom_field3": null,
"custom_field4": null,
"deleted_at": null,
"created_at": "2020-08-10 10:41:42",
"updated_at": "2020-08-10 10:41:42",
"remember_token": null,
"password": null
}
}
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\": 6,
\"card_number\": \"sunt\",
\"card_holder_name\": \"impedit\",
\"card_transaction_number\": \"iure\",
\"card_type\": \"voluptas\",
\"card_month\": \"velit\",
\"card_year\": \"fugit\",
\"card_security\": \"est\",
\"transaction_no_1\": \"minus\",
\"transaction_no_2\": \"in\",
\"transaction_no_3\": \"sequi\",
\"cheque_number\": \"mollitia\",
\"bank_account_number\": \"excepturi\",
\"note\": \"dignissimos\"
}"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/contactapi-payment"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"contact_id": 17,
"amount": 453.13,
"method": "cash",
"paid_on": "2020-07-22 15:48:29",
"account_id": 6,
"card_number": "sunt",
"card_holder_name": "impedit",
"card_transaction_number": "iure",
"card_type": "voluptas",
"card_month": "velit",
"card_year": "fugit",
"card_security": "est",
"transaction_no_1": "minus",
"transaction_no_2": "in",
"transaction_no_3": "sequi",
"cheque_number": "mollitia",
"bank_account_number": "excepturi",
"note": "dignissimos"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://pos.ultimatefosters.com/connector/api/contactapi-payment',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'contact_id' => 17,
'amount' => 453.13,
'method' => 'cash',
'paid_on' => '2020-07-22 15:48:29',
'account_id' => 6,
'card_number' => 'sunt',
'card_holder_name' => 'impedit',
'card_transaction_number' => 'iure',
'card_type' => 'voluptas',
'card_month' => 'velit',
'card_year' => 'fugit',
'card_security' => 'est',
'transaction_no_1' => 'minus',
'transaction_no_2' => 'in',
'transaction_no_3' => 'sequi',
'cheque_number' => 'mollitia',
'bank_account_number' => 'excepturi',
'note' => 'dignissimos',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": {
"amount": "20",
"method": "cash",
"paid_on": "2020-07-22 15:48:29",
"created_by": 1,
"payment_for": "19",
"business_id": 1,
"is_advance": 1,
"payment_ref_no": "SP2020/0127",
"document": null,
"updated_at": "2020-07-22 15:48:29",
"created_at": "2020-07-22 15:48:29",
"id": 215
}
}
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=eyJpdiI6InljUWErSmE0MGxsNm91K00rWUNnZWc9PSIsInZhbHVlIjoiQk94alZta3JLc1F2UWY4YkVhK3JoWVFjYjNFdmJld0pvU25xNTFVSVJDdE9OOGhzSWpVdXJ1bUVSTExIZjYwcXpsZ1hvZmEzK01oelRyRk1GekZLb2s2MlBjWlJtcEZmV09ycWZmcENmd3RNQllxNWd5MFpQZ0F0NkFpRTZNR24iLCJtYWMiOiIxNTZjNTUyOTY5MTJkNmQ2NDFiZGE3MWVhZTM2YjYzYzRkNGY0YzBlZTY4YmI0OWVhMTYwZmEzZmQzNjA4MmJhIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:26 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6ImRiWFNoTUorMzM1aHBiN1N1UEVqOVE9PSIsInZhbHVlIjoicmtqODdKWjRXMHBkTzBVZHVjZkh1RTBJUi9iMFZCZ1h6cDJtWkxEbWpKY2FxUSt6MWhSK2RxYWZ1QjZzbFhaamdQa00rczBteFZkWSt2Z0sxS1FIUUw5a1Rrd1lzUkF6QS9kaU1BS0NxTlhuWnA5U3JVdXYxbkwyU3dRK2hhcWEiLCJtYWMiOiIxNzY3MGM4ZGM5YzhmNzBjMjVmN2QyYmZhMDFmZWE0Y2YwOTc5NGYxMTUzYmI0NDdkMmZkNWM5OGFjYjBlZGNjIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:26 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Delete the given token.
Example request:
curl --request DELETE \
"https://pos.ultimatefosters.com/oauth/tokens/et" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/oauth/tokens/et"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://pos.ultimatefosters.com/oauth/tokens/et',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
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=eyJpdiI6IitBc0NJU3hjZG8rRHpVa1Q0ZDVuaUE9PSIsInZhbHVlIjoiYzJKQkJLS3M2V09pVExOOHN0RngydWVKS3ZzY09td1pPZUYwdEdYNzd5Q0srd0Y4MS9tQ2R3bVFXcWlvRFZ6SXFiNEVUVHU2ZnVwMzEvUWhHaHU4Z3ZWR0VCUmVSQUI5QnU4bklDK1RlMThGM2NvSEQ2NS8vVnYyaUt3d3FNYjkiLCJtYWMiOiJjMWEyNGE5ODVkMDg1NWJiMDVlMDkxYzc3MmRmYzE4NjdlMzg4ODNlOTAyYjk0NTMxZmFhY2VhZTU4NjdjMmYyIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:26 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6IlpDUnd2SEhyN2wrZXhtdFc4TkFxUlE9PSIsInZhbHVlIjoiU1ZnUWxpNVp6M3NXZXpkbWF0N1M5MjVDODlud3JoaGxJYnRGbjJESW90QXdtbEtHeFdWVEN2UnJrRG1WSmVqZnhiWXgwZFI2MkpBT1RHT1UwSjVMZ0Faam5HT2JNUkFreXRRemRXNDhjWjc4SVYwMTY5ZHJjekRTaHVDOFdaN2wiLCJtYWMiOiJlMzJjYzExYTVjNzU2OTc4MWI5YjExZTQ0ZDExZmJkZDlmNjZkYzFkMGViYmFiNDIyZDFhMjhmNWU2NDVlZWI3IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:26 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Unauthenticated."
}
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/soluta" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/oauth/clients/soluta"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PUT",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
'https://pos.ultimatefosters.com/oauth/clients/soluta',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Received response:
Request failed with error:
Delete the given client.
Example request:
curl --request DELETE \
"https://pos.ultimatefosters.com/oauth/clients/et" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/oauth/clients/et"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://pos.ultimatefosters.com/oauth/clients/et',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
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=eyJpdiI6Ik5aZyttZUJST0kxTUVLeHgvZmZ6Tmc9PSIsInZhbHVlIjoiTUR0RStUUFA2cjRVaUU1ZlphOGxEMjZQZDAzSkd2ZTdkanVtRUprK3NxUTlsdHBKendSMVFpeTN1bldqM2pwbE55YnYxZ3YyZEwyQUI2aWNDNExvb0JKdlVlV0djczJTY2NoZnFQRHFPRzdqY2VhUTIwaDFEakNJcUxCS2FTaGoiLCJtYWMiOiJiZWIwMGNlY2NjYTgyMDY1YTc0YTNkOWY3ZTkwNGJjMTM5N2VjYmNjMjllNWQ5YWVhNjIyNzdiZjE5ODcwM2RjIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:26 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6Ii95TnNObWdrQ3A0dEgxVUhFMnIyNUE9PSIsInZhbHVlIjoiTWZIdWdlTHZVZXFNVEVBMHVZbFB3YkN4czFVS21OWE40QzBLYjkrV3FCdll1Y0xhb0crVjJOREZiZm5SUmVhZ2g5cXE3UmZSZjFWR2JIdXFQMVNDUVlEOVFHRmdqSVg5ZksvbEgzN0s3KzBwMXdMYkJnLzVSTnFJK05yMU1ISTYiLCJtYWMiOiI2OWEyMzBjZDU0NjhiZDZiNTIzMDEyYWZkNTIyN2EzMzc0NTYzYzMwMjYwYWUzMmE1MzY4OGMwOWFlZjg3ZmFlIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:26 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Unauthenticated."
}
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=eyJpdiI6IndMd0Z6ZWd2RnJKemFuWElITnk2MUE9PSIsInZhbHVlIjoiMngzZ1VqRDlDVTFQeExvU0ZPRkt2VERmc0lydkxtQ28reHVvMDF4ZE9IV0dZdUN0cU5ySmVSeGJ1Z2hLMDFWaEIzL2gwaVlxd01ldnFFUElLZUxOS3JLaE9udEhCRWxEYmFoeStVL0ZWUmhSMFZURkxaUTRYamZlMTN0WThOTVciLCJtYWMiOiIxNzhmZTBkNjM1Y2Y4MTE4ZjQ1Yzk5OTk2OTY3MjE5ZjFkODU5ZTQ5ZTEzMjljOWQ3ZGFkZTk3OWUxMjQ3NGY0IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:26 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6IlVoM1Ard0FnMFRGbXhGTEVYU3JMcHc9PSIsInZhbHVlIjoiMWQ5NHV6ek4rSTZnQ25FZlJmS2IwamJoNEdlZEtOQXc4aG1VLzdCQjN0US8wWm01Zm1pTS9saHFzTGdBU0k5MWE0Rng4T0lVUzJBNVZoR3haN09VdHd5eUk0ZGJyeDVSU1RXN3lCWE1WWXFzU1J3V1d3NlI4dFlmbHQ2cENsWEoiLCJtYWMiOiIxYjE2YmJhN2E5NzRjODAyYWY1NjhiYWNmNGQzYjRkYjE5ZDdiMDhhNjkzNGJjODU1NzU1YWQ0MzQ3OTM0NTAyIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:26 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Unauthenticated."
}
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/dignissimos" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/oauth/personal-access-tokens/dignissimos"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://pos.ultimatefosters.com/oauth/personal-access-tokens/dignissimos',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
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=eyJpdiI6InI3RGN3UVI0OHI5RVRKZ0NpQkhTNkE9PSIsInZhbHVlIjoiTXhReUxXMDV1ekNscGF2Qmd4RVAzVlFrS05DR1NoU1E2emlGb3gza2dUVDVPL0JFMlZ5UFlCK2NEWm1jTndLUDBYbXMyZjV2cjVVUTRpaUE4T2xtZFRZSnU1TWJOLzByZ1U5bzlTcm9vL2M2Ui9seEhEQ1NWQ0M4QmdNRmdlQW4iLCJtYWMiOiIzMjAwYWQwYmU0NDA5NmFkYzNjN2QzMzQyODI0Njg3MjkxNGJhYWE2ODRkODhlMTA3ZDkwMmI3MTY5MjMyZDk4IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6IkJPTklQOHhEeVlmUDlkaTYxWVV5SEE9PSIsInZhbHVlIjoiL1VXTm5VVkpLVm5aV2U2N2JXcTB6ZVFzWGF6NkF3WWVyS1hmZWpRcTRtdGVnVHpjdE9PNVBGc1lwNEZyaTE0ajlIOG9ObXJwaXBkQkVnRFNNd2xxR21Qb1BlVi91b2ViWXJGR2lSd25ISDlKRzRtdHp2alZMbUl0aWFROHc3V0oiLCJtYWMiOiJmZDg2NjNlOWIzMzBiZDBmNjkyODI5OTk5YmE1YWIwODFiMGRkODQ2MmYwNjU2N2VjNDhlNzIxMmUzZWM3MjgwIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Unauthenticated."
}
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=eyJpdiI6ImVKanA1ai9IWk5WZEU1cUFBNG44bWc9PSIsInZhbHVlIjoiODRydnBqdDIrcjliamk2TjNvdEUyUXlDd0tQTFVBa1FGU1hkSWRWYzMwVjVaMEo5ZFkwNWhsSmZnVHJXak4vcWhqdUZKNTNXbGwvaW51Q21ZR0xjNlhjUUhvQ1duSVVsek1rd2RrMkFXeUNPQitsRFNvSm1KR05uaHc1R0twVGYiLCJtYWMiOiI1NzU3YTRmMDNkN2RkNGFiZTE4MjA0NTUwMWZiZjVmMGQ3ZGNjZmEwMWYxZWRhMTBlNDU3OGJiYzc1ZDc0Y2NmIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6IlB0U1hMY1I4Qi9IWjVWRDdYSHVMNFE9PSIsInZhbHVlIjoiT0UwWGtnRjV1Z3g0Y3BlMEZocE1vdWNBMVpWeVpIS3k2M292UFBteTlYZkNydmcxcDhQTDNNQm1PQVEzZFZZa3kwaG1UY2Z3cU9Bb09jK2lPWkpLc21qem9UYlJORmFBNy92ZFBxSzNHMC9uRkZpazhVSDUvSTlYeG8xUXFlWVUiLCJtYWMiOiIyYjQwOGQ2YmI2NGNmMzZjYTBkMmRhNzMxNWUwY2VkZDI5Mjc4ZjNkNDU3MTJlNTk1NTI2NmUwNWRmMGU3Njg5IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Unauthenticated."
}
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=eyJpdiI6Ijg0NHFPcEwrL0FxbC9SZTNMZlFsVGc9PSIsInZhbHVlIjoiOXhNYlVEczM2TGtRQzZ6dVlyNUlMQVlEMTVoSmg1OXpRNHhXNHdyK09LdWlnaTJwRG5wdGtrNFFqUk5rUHU5akExcVliVXRmYndGcGJUZ0JXd05qM1p4TnJTSnVrdk9zQkFLQ3ZWUVE5UXAxWDF5YklkZVlzTmxTdHYyaURMWjYiLCJtYWMiOiI5NDZkNWI3ODBkNjQ0ZDQ0NmFiYjMxMTk2OTUwYmEzZTBiMWNmOWUzYmVlNWQ1N2IzZDY1NTRmOWM0MGRiYzZiIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6InVSS2htTVo2bFN1OUMzU3QrNkx0Z1E9PSIsInZhbHVlIjoiS2xPZmxQTW9zbGIwK3dtNEZIcGo3L2FJWXZpM0N2dHZaTTkrdnl1QmRWSG1TTVY0VmViQkRzblRxQm80RmVwMFQrMzNJWW9nUXF4dGJBTFJ3VzlIRUpaYkRub24xUnp4MjUyWFRMRTk3ZlNkak54QzBGZDNNa0VpU3pJU2VlTmIiLCJtYWMiOiJkMmRlNjVlYWJjN2QxNjI0OWU3OWQ3ZDdiMWE4NDA2OTU3ZjFiOTVkNmY3YmJiMWEyZDg0NmUzNGVhOWYwN2I0IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Unauthenticated."
}
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=eyJpdiI6Ik12Y1FnSmNhSUpGVnYxWG51UldQOGc9PSIsInZhbHVlIjoiZEJNUm5QV2FnSTFCS3VZaXVJR3lXMGJWcHVEWmNBZ3BoMldpbnNBOEMvRHNGNzVOZmpGMnlpYWZRbk1JZUxsdjFRZC9VeXdIMzRjeWFQbFBxTm12dUw1b0NzcW9pbnZMZjNyVWtUUTljYmFLSXhYeUVDb2hqZWhvMSt6TTVmSUMiLCJtYWMiOiI0MTAxMjM0YTY2ODgyNGZkYmFkYjM0MGI4ZjIxMzI3N2M4YTc3NTcyNDFiNzg3N2JjMmQ5ODM5ZDQxMWU0ZjM5IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6IjhaTDNJMTVscHhNNWtBUEozRm4vWlE9PSIsInZhbHVlIjoiZkxLdU9hVDJWRUt1OWdiOWdEdHd3MEF0QVNMNnFBNENjM3dZc3RDMEZlRFFRN2locjFqV0ZFNFBBL2EzYjNXR0QrTzIwSUdHTmhXT01zbmdaajJ3VVVIdUpxN1NvR2E2N3F0SDYwd2toNjI5OERUbXRIMUdBZHBiSDBBR0UwdmQiLCJtYWMiOiIzNDVkMzJiZTk5NjM2ZDcxZjc0Y2Y0ZTNmZDc1YWExZWZjMTkzOWMxMGZhZjg1MzIzMDgxYzdkOTQxNDI5NTBmIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Unauthenticated."
}
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=eyJpdiI6ImVJNHE4UDlha0hISGJMNm4yczBCUHc9PSIsInZhbHVlIjoiVlVsOFBaT0RGVHJhUE1zYWJqMEZLeG9WSDc5cFFVZUpIb0NMdlYzUEIvN2FIZjV0NGRDZUFQeXF6bFg1WVhXUHBFRU5qQ29xVEExRU5TMkdHRnIyVytld3lKeXlTQmdTc3JTY2MrRTk4d21hMlpxMHgzYmJ6N2FCMU5yTTRTeTciLCJtYWMiOiIzNTMxY2E0Nzc1NmYwNzIxNTQ1YjlmZDJmODE0NTNhMDQ1MzQwMmY2ZmY3MzI5NTUyYjZjYzI5N2U2ODgxYTE3IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6Ik1GMldhejc4MHRTbFBnT3ptQythelE9PSIsInZhbHVlIjoiQ29EYWRXSnF0ZkwxcHdOM2NGdkZSVmZvUXBzcnQ2NlJUU00vZ1JSaThGSWs3UHFGcnJGRDlROVVwMHZSU0xxQXhXeHBEa0ZSSFhSeUFDNVRNZWd6eVhrSFQvZVFYaXZqSW8yOXY0VzNUL0lVR0VTNXdLa0gxUXVTNUx1OE4rY2oiLCJtYWMiOiIwNmJjNGQ4MDA4NWU4YzcyZmQ4ZjBiYjJiNmMxMjZmNjBjNmMzNGY0MTFhOWQ1MzcwY2NmOGJkZjRhNTg1MmVjIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Unauthenticated."
}
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=eyJpdiI6Iml2bFhsL1NEL051dFYzUXlaQmVCQ3c9PSIsInZhbHVlIjoidjVSekxHT0FaOGo1S3BoWE5Ba1ZYWktjcDhNMGpBUjZYcFRsMUs4aGdkN3VQQXVrTXJ2ZXJKY1VJMWFoMnJWMkpLWHZhQUlrT0VoUDV2K2ZqTmFKeXhxbCsvOFdndE5OcUsydWJLYkFXVFhVQ21BOWtQTFd4Q2k4Y3lVYVcxY3IiLCJtYWMiOiIzMzI3NDIyNDM1MjIxZmU3NTk0YjA0ZWEyMDhhMmVjZDU3MzAxZjM5YjRhMGU5NDZhMzdmNGQzZGQwMjUwNDRlIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6IkhDT1N0bTlhdXY3VjhYWEFZSldMaEE9PSIsInZhbHVlIjoibGxGY1RLYlduOWV4ME1xL0pmeVJlQ3owU0RGQ1MvbHBsdzA2VG1MUjBUZVpUS0ZhTlZmbytYcG9yOCtqWllZVWdFZ3BwZm1XM2U2dEdTS3B0WXpWRXdPWTBmNmxMOWpuNG0rc3g4VjFiRzlpNWhIWUpxSS9UU2J3dEZhUUlKbFoiLCJtYWMiOiI0Y2NiYmY5N2VjOWM4NzY5MTE5Nzg3YTI1NTE3MmU1MTdkYTc0Nzc2NWNlMjA2NDE0NGFlNThmNDRkZmQyMDc2IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Unauthenticated."
}
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/voluptatem" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/client/voluptatem"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/client/voluptatem',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
set-cookie: XSRF-TOKEN=eyJpdiI6InpVajNoT2xRTUZGZ01WSG5RekM5M2c9PSIsInZhbHVlIjoiL2F0V2dKR3MyNmRDRWxFdWtTUWNaWCtoY0xTS3oycXBFZDdtaURGMmFPQnFlbEdpYUtZWDVhN0dZSHdlVE5nRXU2Y0FKWkpDdkVEWVFLRFVtUE9XMDQ4U3hYb2h1RlBnUi94Nk1hM3NiVVBMQTl3M21lZGxFbG53Q1Y2UUVTQngiLCJtYWMiOiJhMDg2ZDE2N2NiOTgyZjlhM2Q3ZWRjN2U2Mjg0OTA1YTc5NjJmMWI4MmU2ZmI1YTU4YzJkOTI0MGJiYTNlZWU0IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6ImNyRzA2clRlTlQyeVZwcldwY0NBTUE9PSIsInZhbHVlIjoiYThyZndNR00xek1lYkhjYXlBWW5FWVA5SkRjRnRLSmlWcktKQnlhckk2NVdrMEw1UlQ4QW4zV2Y2blVyOVpUYTh1Z29xVm1yWWF0dHgxTHZmSWZENHdWR2RsTGZpN1N1L0lXMk5qbGFEeG00c1dPdEoxVEdFODhCb3EyRjdjZHEiLCJtYWMiOiI1YmNlN2VhNDA1ZTg3ZGE2ZWQ3MzMxMGYzMDU4OWYxZjI5MWJjOTkxNmM2Mzk0Y2FiZDRmM2Q1NmQzZWE1YzI1IiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Unauthenticated."
}
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/quam/edit" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/client/quam/edit"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/client/quam/edit',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
set-cookie: XSRF-TOKEN=eyJpdiI6IkhpeXZFNlZ4b25FTFcweVV5bXlEdXc9PSIsInZhbHVlIjoiYzBRRFh5WXo4Vko0cEd2dXBRVFgvMUs1SmQyVVdwdWtzdXZWMWV2a1B2YTd6RHh2YloybFBTZVJwRVM5R2p1ekJmRWoxeEJMcENneDJpQ1dkMjlRTy8zMEkxbWIyaEhlOWRxbVRtTHVXNTgrZHF0c3FrNi9sckgvaUN2OEl4NEwiLCJtYWMiOiI4MTczYTY1N2MxNTFjZTBkMzM5ZjhiZWQ4Y2I5MTMyZGMxYmE2ODFkZWY2ZTFhNjRlZTVhYmE1YTMzYTg4YzViIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; samesite=lax; ultimate_pos_session=eyJpdiI6ImxlaG5IZU5PREwvbmJaTERoZE9kcnc9PSIsInZhbHVlIjoiS1E1VFpDV3VSd0E3SGdDR2UzOGhtVkczbXl0cWRMc0YxS2l5cG5NQm01dllaT0cyRDBjdzdtUVo0ZGk3R2IwcG1RbjFrYWgreEpCRWJldUN5QnB0bnJtODdUa3l3SEk1OWNOQllhbWRidEw1VjFsS2FmdTRZdWk2eWM5cnRGRW8iLCJtYWMiOiIwNzk5NDY4MDI1MGI2NGM2MzE4MTYxZTAxNjljMWJlMTJhNmU3ZjA2NjE1MzAyNTUyYWQwZjg1MDJjODNiMTFkIiwidGFnIjoiIn0%3D; expires=Sat, 09 Sep 2023 18:38:27 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Update the specified resource in storage.
Example request:
curl --request PUT \
"https://pos.ultimatefosters.com/connector/client/rem" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/client/rem"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PUT",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
'https://pos.ultimatefosters.com/connector/client/rem',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Received response:
Request failed with error:
Remove the specified resource from storage.
Example request:
curl --request DELETE \
"https://pos.ultimatefosters.com/connector/client/aut" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/client/aut"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://pos.ultimatefosters.com/connector/client/aut',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
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=asperiores&per_page=15" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/expense"
);
const params = {
"location_id": "1",
"payment_status": "paid",
"start_date": "2018-06-25",
"end_date": "2018-06-25",
"expense_for": "asperiores",
"per_page": "15",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/expense',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'location_id' => '1',
'payment_status' => 'paid',
'start_date' => '2018-06-25',
'end_date' => '2018-06-25',
'expense_for' => 'asperiores',
'per_page' => '15',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 59,
"business_id": 1,
"location_id": 1,
"payment_status": "due",
"ref_no": "EP2020/0001",
"transaction_date": "2020-07-03 12:58:00",
"total_before_tax": "50.0000",
"tax_id": null,
"tax_amount": "0.0000",
"final_total": "50.0000",
"expense_category_id": null,
"document": null,
"created_by": 9,
"is_recurring": 0,
"recur_interval": null,
"recur_interval_type": null,
"recur_repetitions": null,
"recur_stopped_on": null,
"recur_parent_id": null,
"created_at": "2020-07-03 12:58:23",
"updated_at": "2020-07-03 12:58:24",
"transaction_for": {
"id": 1,
"user_type": "user",
"surname": "Mr",
"first_name": "Admin",
"last_name": null,
"username": "admin",
"email": "[email protected]",
"language": "en",
"contact_no": null,
"address": null,
"business_id": 1,
"max_sales_discount_percent": null,
"allow_login": 1,
"essentials_department_id": null,
"essentials_designation_id": null,
"status": "active",
"crm_contact_id": null,
"is_cmmsn_agnt": 0,
"cmmsn_percent": "0.00",
"selected_contacts": 0,
"dob": null,
"gender": null,
"marital_status": null,
"blood_group": null,
"contact_number": null,
"fb_link": null,
"twitter_link": null,
"social_media_1": null,
"social_media_2": null,
"permanent_address": null,
"current_address": null,
"guardian_name": null,
"custom_field_1": null,
"custom_field_2": null,
"custom_field_3": null,
"custom_field_4": null,
"bank_details": null,
"id_proof_name": null,
"id_proof_number": null,
"deleted_at": null,
"created_at": "2018-01-04 02:15:19",
"updated_at": "2018-01-04 02:15:19"
}
}
],
"links": {
"first": "http://local.pos.com/connector/api/expense?page=1",
"last": null,
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"path": "http://local.pos.com/connector/api/expense",
"per_page": 10,
"to": 1
}
}
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\": 321603.4890166,
\"transaction_date\": \"2020-5-7 15:20:22\",
\"tax_rate_id\": 9,
\"expense_for\": 14,
\"contact_id\": 17,
\"expense_category_id\": 5,
\"expense_sub_category_id\": 18,
\"additional_notes\": \"atque\",
\"is_refund\": 0,
\"is_recurring\": 0,
\"recur_interval\": 13,
\"recur_interval_type\": \"months\",
\"subscription_repeat_on\": 15,
\"subscription_no\": \"consectetur\",
\"recur_repetitions\": 3,
\"payment\": [
\"accusamus\"
]
}"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/expense"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"location_id": 1,
"final_total": 321603.4890166,
"transaction_date": "2020-5-7 15:20:22",
"tax_rate_id": 9,
"expense_for": 14,
"contact_id": 17,
"expense_category_id": 5,
"expense_sub_category_id": 18,
"additional_notes": "atque",
"is_refund": 0,
"is_recurring": 0,
"recur_interval": 13,
"recur_interval_type": "months",
"subscription_repeat_on": 15,
"subscription_no": "consectetur",
"recur_repetitions": 3,
"payment": [
"accusamus"
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://pos.ultimatefosters.com/connector/api/expense',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'location_id' => 1,
'final_total' => 321603.4890166,
'transaction_date' => '2020-5-7 15:20:22',
'tax_rate_id' => 9,
'expense_for' => 14,
'contact_id' => 17,
'expense_category_id' => 5,
'expense_sub_category_id' => 18,
'additional_notes' => 'atque',
'is_refund' => 0,
'is_recurring' => 0,
'recur_interval' => 13,
'recur_interval_type' => 'months',
'subscription_repeat_on' => 15,
'subscription_no' => 'consectetur',
'recur_repetitions' => 3,
'payment' => [
'accusamus',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": {
"id": 75,
"business_id": 1,
"location_id": "1",
"payment_status": "due",
"ref_no": "EP2020/0013",
"transaction_date": "2020-07-06T05:31:29.480975Z",
"total_before_tax": "43",
"tax_id": null,
"tax_amount": 0,
"final_total": "43",
"expense_category_id": null,
"document": null,
"created_by": 1,
"is_recurring": 0,
"recur_interval": null,
"recur_interval_type": null,
"recur_repetitions": null,
"recur_stopped_on": null,
"recur_parent_id": null,
"created_at": "2020-07-06 11:01:29",
"updated_at": "2020-07-06 11:01:29",
"expense_for": []
}
}
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/et" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/expense/et"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/expense/et',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 59,
"business_id": 1,
"location_id": 1,
"payment_status": "due",
"ref_no": "EP2020/0001",
"transaction_date": "2020-07-03 12:58:00",
"total_before_tax": "50.0000",
"tax_id": null,
"tax_amount": "0.0000",
"final_total": "50.0000",
"expense_category_id": null,
"document": null,
"created_by": 9,
"is_recurring": 0,
"recur_interval": null,
"recur_interval_type": null,
"recur_repetitions": null,
"recur_stopped_on": null,
"recur_parent_id": null,
"created_at": "2020-07-03 12:58:23",
"updated_at": "2020-07-03 12:58:24",
"transaction_for": {
"id": 1,
"user_type": "user",
"surname": "Mr",
"first_name": "Admin",
"last_name": null,
"username": "admin",
"email": "[email protected]",
"language": "en",
"contact_no": null,
"address": null,
"business_id": 1,
"max_sales_discount_percent": null,
"allow_login": 1,
"essentials_department_id": null,
"essentials_designation_id": null,
"status": "active",
"crm_contact_id": null,
"is_cmmsn_agnt": 0,
"cmmsn_percent": "0.00",
"selected_contacts": 0,
"dob": null,
"gender": null,
"marital_status": null,
"blood_group": null,
"contact_number": null,
"fb_link": null,
"twitter_link": null,
"social_media_1": null,
"social_media_2": null,
"permanent_address": null,
"current_address": null,
"guardian_name": null,
"custom_field_1": null,
"custom_field_2": null,
"custom_field_3": null,
"custom_field_4": null,
"bank_details": null,
"id_proof_name": null,
"id_proof_number": null,
"deleted_at": null,
"created_at": "2018-01-04 02:15:19",
"updated_at": "2018-01-04 02:15:19"
}
}
]
}
Received response:
Request failed with error:
Update expense / expense refund
requires authentication
Example request:
curl --request PUT \
"https://pos.ultimatefosters.com/connector/api/expense/voluptate" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"final_total\": 378224.2937,
\"transaction_date\": \"2020-5-7 15:20:22\",
\"tax_rate_id\": 8,
\"expense_for\": 10,
\"contact_id\": 7,
\"expense_category_id\": 6,
\"expense_sub_category_id\": 9,
\"additional_notes\": \"sit\",
\"is_recurring\": 0,
\"recur_interval\": 16,
\"recur_interval_type\": \"months\",
\"subscription_repeat_on\": 15,
\"subscription_no\": \"repellat\",
\"recur_repetitions\": 9,
\"payment\": [
\"quo\"
]
}"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/expense/voluptate"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"final_total": 378224.2937,
"transaction_date": "2020-5-7 15:20:22",
"tax_rate_id": 8,
"expense_for": 10,
"contact_id": 7,
"expense_category_id": 6,
"expense_sub_category_id": 9,
"additional_notes": "sit",
"is_recurring": 0,
"recur_interval": 16,
"recur_interval_type": "months",
"subscription_repeat_on": 15,
"subscription_no": "repellat",
"recur_repetitions": 9,
"payment": [
"quo"
]
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
'https://pos.ultimatefosters.com/connector/api/expense/voluptate',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'final_total' => 378224.2937,
'transaction_date' => '2020-5-7 15:20:22',
'tax_rate_id' => 8,
'expense_for' => 10,
'contact_id' => 7,
'expense_category_id' => 6,
'expense_sub_category_id' => 9,
'additional_notes' => 'sit',
'is_recurring' => 0,
'recur_interval' => 16,
'recur_interval_type' => 'months',
'subscription_repeat_on' => 15,
'subscription_no' => 'repellat',
'recur_repetitions' => 9,
'payment' => [
'quo',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": {
"id": 75,
"business_id": 1,
"location_id": "1",
"payment_status": "due",
"ref_no": "EP2020/0013",
"transaction_date": "2020-07-06T05:31:29.480975Z",
"total_before_tax": "43",
"tax_id": null,
"tax_amount": 0,
"final_total": "43",
"expense_category_id": null,
"document": null,
"created_by": 1,
"is_recurring": 0,
"recur_interval": null,
"recur_interval_type": null,
"recur_repetitions": null,
"recur_stopped_on": null,
"recur_parent_id": null,
"created_at": "2020-07-06 11:01:29",
"updated_at": "2020-07-06 11:01:29",
"expense_for": []
}
}
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=sequi&per_page=15" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/expense-refund"
);
const params = {
"location_id": "1",
"payment_status": "paid",
"start_date": "2018-06-25",
"end_date": "2018-06-25",
"expense_for": "sequi",
"per_page": "15",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/expense-refund',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'location_id' => '1',
'payment_status' => 'paid',
'start_date' => '2018-06-25',
'end_date' => '2018-06-25',
'expense_for' => 'sequi',
'per_page' => '15',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 230,
"business_id": 1,
"location_id": 1,
"payment_status": "partial",
"ref_no": "refund",
"transaction_date": "2020-12-15 11:16:00",
"total_before_tax": "65.0000",
"tax_id": null,
"tax_amount": "0.0000",
"final_total": "65.0000",
"expense_category_id": null,
"document": null,
"created_by": 9,
"created_at": "2020-12-15 11:46:56",
"updated_at": "2020-12-15 12:47:30",
"expense_for": []
}
],
"links": {
"first": "http://local.pos.com/connector/api/expense-refund?page=1",
"last": null,
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"path": "http://local.pos.com/connector/api/expense-refund",
"per_page": 15,
"to": 1
}
}
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=omnis&assigned_to=quidem&status=molestiae&start_date=2018-06-25&end_date=2018-06-25&per_page=15&order_by_date=0" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/field-force"
);
const params = {
"contact_id": "omnis",
"assigned_to": "quidem",
"status": "molestiae",
"start_date": "2018-06-25",
"end_date": "2018-06-25",
"per_page": "15",
"order_by_date": "0",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/field-force',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'contact_id' => 'omnis',
'assigned_to' => 'quidem',
'status' => 'molestiae',
'start_date' => '2018-06-25',
'end_date' => '2018-06-25',
'per_page' => '15',
'order_by_date' => '0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
{
"message": "Unauthenticated."
}
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\": 8,
\"visit_to\": \"quaerat\",
\"visit_address\": \"iste\",
\"assigned_to\": 1,
\"visit_on\": \"2021-12-28 17:23:00\",
\"visit_for\": \"tempora\"
}"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/field-force/create"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"contact_id": 8,
"visit_to": "quaerat",
"visit_address": "iste",
"assigned_to": 1,
"visit_on": "2021-12-28 17:23:00",
"visit_for": "tempora"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://pos.ultimatefosters.com/connector/api/field-force/create',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'contact_id' => 8,
'visit_to' => 'quaerat',
'visit_address' => 'iste',
'assigned_to' => 1,
'visit_on' => '2021-12-28 17:23:00',
'visit_for' => 'tempora',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": {
"contact_id": "6",
"assigned_to": "9",
"visit_on": "2022-01-15 17:23:00",
"visit_for": "",
"meet_with": "",
"meet_with2": "",
"meet_with3": "",
"meet_with_mobileno": "",
"meet_with_mobileno2": "",
"meet_with_mobileno3": "",
"meet_with_designation": "",
"meet_with_designation2": "",
"meet_with_designation3": "",
"visit_id": "2021/0031",
"status": "assigned",
"business_id": 1,
"updated_at": "2021-12-30 11:00:47",
"created_at": "2021-12-30 11:00:47",
"id": 3
}
}
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=iste" \
--form "visited_on=2021-12-28 17:23:00" \
--form "visited_address=Radhanath Mullick Ln, Tiretta Bazaar, Bow Bazaar, Kolkata, West Bengal, 700 073, India" \
--form "latitude=41.40338" \
--form "longitude=2.17403" \
--form "comments=placeat" \
--form "meet_with=dolores" \
--form "meet_with_mobileno=voluptatem" \
--form "photo=@/tmp/phpOf26p9"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/field-force/update-visit-status/17"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('status', 'finished');
body.append('reason_to_not_meet_contact', 'iste');
body.append('visited_on', '2021-12-28 17:23:00');
body.append('visited_address', 'Radhanath Mullick Ln, Tiretta Bazaar, Bow Bazaar, Kolkata, West Bengal, 700 073, India');
body.append('latitude', '41.40338');
body.append('longitude', '2.17403');
body.append('comments', 'placeat');
body.append('meet_with', 'dolores');
body.append('meet_with_mobileno', 'voluptatem');
body.append('photo', document.querySelector('input[name="photo"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://pos.ultimatefosters.com/connector/api/field-force/update-visit-status/17',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'multipart/form-data',
'Accept' => 'application/json',
],
'multipart' => [
[
'name' => 'status',
'contents' => 'finished'
],
[
'name' => 'reason_to_not_meet_contact',
'contents' => 'iste'
],
[
'name' => 'visited_on',
'contents' => '2021-12-28 17:23:00'
],
[
'name' => 'visited_address',
'contents' => 'Radhanath Mullick Ln, Tiretta Bazaar, Bow Bazaar, Kolkata, West Bengal, 700 073, India'
],
[
'name' => 'latitude',
'contents' => '41.40338'
],
[
'name' => 'longitude',
'contents' => '2.17403'
],
[
'name' => 'comments',
'contents' => 'placeat'
],
[
'name' => 'meet_with',
'contents' => 'dolores'
],
[
'name' => 'meet_with_mobileno',
'contents' => 'voluptatem'
],
[
'name' => 'photo',
'contents' => fopen('/tmp/phpOf26p9', 'r')
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": {
"id": 10,
"business_id": 1,
"contact_id": 6,
"assigned_to": 9,
"latitude": "23.6101808",
"longitude": "85.2799354",
"visited_address": "New address",
"status": "finished",
"visit_on": "2021-12-28 17:23:00",
"visit_for": "assigned from api",
"meet_with": "Name",
"meet_with2": "Name",
"meet_with3": "Name",
"meet_with_mobileno": "123456789",
"meet_with_mobileno2": "123456789",
"meet_with_mobileno3": "123456789",
"meet_with_designation": "dr",
"meet_with_designation2": "dr",
"meet_with_designation3": "dr",
"comments": "Users comment",
"created_at": "2021-12-28 17:35:13",
"updated_at": "2021-12-28 18:06:03"
}
}
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=ea&order_direction=facere&location_custom_field_1=error&category_id=esse&sub_category_id=labore&location_id=1¬_for_sell=pariatur&send_lot_detail=ex&name=hic&sku=qui&product_ids=1%2C2&per_page=10" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/new_product"
);
const params = {
"order_by": "ea",
"order_direction": "facere",
"location_custom_field_1": "error",
"category_id": "esse",
"sub_category_id": "labore",
"location_id": "1",
"not_for_sell": "pariatur",
"send_lot_detail": "ex",
"name": "hic",
"sku": "qui",
"product_ids": "1,2",
"per_page": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/new_product',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'order_by' => 'ea',
'order_direction' => 'facere',
'location_custom_field_1' => 'error',
'category_id' => 'esse',
'sub_category_id' => 'labore',
'location_id' => '1',
'not_for_sell' => 'pariatur',
'send_lot_detail' => 'ex',
'name' => 'hic',
'sku' => 'qui',
'product_ids' => '1,2',
'per_page' => '10',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 2,
"name": "Levis Men's Slimmy Fit Jeans",
"business_id": 1,
"type": "variable",
"exemption_type_id": null,
"enable_stock": 1,
"sku": "AS0002",
"product_custom_field1": null,
"product_custom_field2": null,
"product_custom_field3": null,
"product_custom_field4": null,
"woocommerce_media_id": null,
"product_description": null,
"is_inactive": 0,
"repair_model_id": null,
"not_for_selling": 0,
"ecom_shipping_class_id": null,
"ecom_active_in_store": 1,
"woocommerce_product_id": 627,
"woocommerce_disable_sync": 0,
"image_url": "http://local.pos.com/uploads/img/1528727964_levis_jeans.jpg",
"product_variations": [
{
"id": 2,
"variation_template_id": 5,
"name": "Waist Size",
"product_id": 2,
"is_dummy": 0,
"variations": [
{
"id": 2,
"name": "28",
"product_id": 2,
"sub_sku": "AS0002-1",
"product_variation_id": 2,
"woocommerce_variation_id": 658,
"default_purchase_price": "70.0000",
"dpp_inc_tax": "77.0000",
"default_sell_price": "70.0000",
"sell_price_inc_tax": "77.0000",
"combo_variations": null,
"variation_location_details": [
{
"id": 1,
"product_id": 2,
"product_variation_id": 2,
"variation_id": 2,
"location_id": 1,
"qty_available": "71.0000"
}
],
"media": [],
"discounts": []
},
{
"id": 3,
"name": "30",
"product_id": 2,
"sub_sku": "AS0002-2",
"product_variation_id": 2,
"woocommerce_variation_id": 659,
"default_purchase_price": "70.0000",
"dpp_inc_tax": "77.0000",
"default_sell_price": "70.0000",
"sell_price_inc_tax": "77.0000",
"combo_variations": null,
"variation_location_details": [
{
"id": 2,
"product_id": 2,
"product_variation_id": 2,
"variation_id": 3,
"location_id": 1,
"qty_available": "89.0000"
}
],
"media": [],
"discounts": []
},
{
"id": 4,
"name": "32",
"product_id": 2,
"sub_sku": "AS0002-3",
"product_variation_id": 2,
"woocommerce_variation_id": 660,
"default_purchase_price": "70.0000",
"dpp_inc_tax": "77.0000",
"default_sell_price": "70.0000",
"sell_price_inc_tax": "77.0000",
"combo_variations": null,
"variation_location_details": [
{
"id": 3,
"product_id": 2,
"product_variation_id": 2,
"variation_id": 4,
"location_id": 1,
"qty_available": "127.0000"
},
{
"id": 1371,
"product_id": 2,
"product_variation_id": 2,
"variation_id": 4,
"location_id": 7,
"qty_available": "-1.0000"
}
],
"media": [],
"discounts": []
},
{
"id": 5,
"name": "34",
"product_id": 2,
"sub_sku": "AS0002-4",
"product_variation_id": 2,
"woocommerce_variation_id": 661,
"default_purchase_price": "72.0000",
"dpp_inc_tax": "79.2000",
"default_sell_price": "72.0000",
"sell_price_inc_tax": "79.2000",
"combo_variations": null,
"variation_location_details": [
{
"id": 4,
"product_id": 2,
"product_variation_id": 2,
"variation_id": 5,
"location_id": 1,
"qty_available": "128.0000"
}
],
"media": [],
"discounts": []
},
{
"id": 6,
"name": "36",
"product_id": 2,
"sub_sku": "AS0002-5",
"product_variation_id": 2,
"woocommerce_variation_id": 662,
"default_purchase_price": "72.0000",
"dpp_inc_tax": "79.2000",
"default_sell_price": "72.0000",
"sell_price_inc_tax": "79.2000",
"combo_variations": null,
"variation_location_details": [
{
"id": 5,
"product_id": 2,
"product_variation_id": 2,
"variation_id": 6,
"location_id": 1,
"qty_available": "99.0000"
}
],
"media": [],
"discounts": []
}
]
}
],
"brand": {
"id": 1,
"business_id": 1,
"name": "Levis",
"description": null,
"created_by": 1,
"use_for_repair": 1,
"deleted_at": null,
"created_at": "2018-01-03 21:19:47",
"updated_at": "2018-01-03 21:19:47"
},
"unit": {
"id": 1,
"business_id": 1,
"actual_name": "Pieces",
"short_name": "Pc(s)",
"allow_decimal": 0,
"base_unit_id": null,
"base_unit_multiplier": null
},
"category": {
"id": 1,
"name": "Men's",
"business_id": 1,
"short_code": "sfefef",
"parent_id": 0,
"category_type": "product",
"description": null,
"slug": null,
"woocommerce_cat_id": null
},
"sub_category": {
"id": 4,
"name": "Jeans",
"business_id": 1,
"short_code": null,
"parent_id": 1,
"category_type": "product",
"description": null,
"slug": null,
"woocommerce_cat_id": null
},
"product_tax": {
"id": 1,
"business_id": 1,
"name": "VAT@10%",
"amount": 10,
"is_tax_group": 0,
"for_tax_group": 0,
"created_by": 1,
"woocommerce_tax_rate_id": null,
"deleted_at": null,
"created_at": "2018-01-04 02:40:07",
"updated_at": "2018-01-04 02:40:07"
},
"product_locations": [
{
"id": 1,
"business_id": 1,
"name": "Location 1",
"custom_field1": "gdgdgd88",
"custom_field2": null,
"custom_field3": null,
"custom_field4": null
}
]
}
],
"links": {
"first": "http://local.pos.com/connector/api/new_product?per_page=1&page=1",
"last": "http://local.pos.com/connector/api/new_product?per_page=1&page=1088",
"prev": null,
"next": "http://local.pos.com/connector/api/new_product?per_page=1&page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1088,
"path": "http://local.pos.com/connector/api/new_product",
"per_page": "1",
"to": 1,
"total": 1088
}
}
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=voluptas&payment_status=due%2Cpartial&start_date=2018-06-25&end_date=2018-06-25&user_id=consectetur&service_staff_id=ipsa&shipping_status=ordered&source=minus&customer_group_id=nesciunt&product_name=consequatur&product_sku=quia&product_custom_field_1=non&location_custom_field_1=odit&location_invoice_scheme_prefix=debitis&product_category_id=similique&product_sub_category_id=nisi&sell_ids=55%2C64&only_subscriptions=et&send_purchase_details=praesentium&order_by_date=desc&per_page=10" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/new_sell"
);
const params = {
"location_id": "1",
"contact_id": "voluptas",
"payment_status": "due,partial",
"start_date": "2018-06-25",
"end_date": "2018-06-25",
"user_id": "consectetur",
"service_staff_id": "ipsa",
"shipping_status": "ordered",
"source": "minus",
"customer_group_id": "nesciunt",
"product_name": "consequatur",
"product_sku": "quia",
"product_custom_field_1": "non",
"location_custom_field_1": "odit",
"location_invoice_scheme_prefix": "debitis",
"product_category_id": "similique",
"product_sub_category_id": "nisi",
"sell_ids": "55,64",
"only_subscriptions": "et",
"send_purchase_details": "praesentium",
"order_by_date": "desc",
"per_page": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/new_sell',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'location_id' => '1',
'contact_id' => 'voluptas',
'payment_status' => 'due,partial',
'start_date' => '2018-06-25',
'end_date' => '2018-06-25',
'user_id' => 'consectetur',
'service_staff_id' => 'ipsa',
'shipping_status' => 'ordered',
'source' => 'minus',
'customer_group_id' => 'nesciunt',
'product_name' => 'consequatur',
'product_sku' => 'quia',
'product_custom_field_1' => 'non',
'location_custom_field_1' => 'odit',
'location_invoice_scheme_prefix' => 'debitis',
'product_category_id' => 'similique',
'product_sub_category_id' => 'nisi',
'sell_ids' => '55,64',
'only_subscriptions' => 'et',
'send_purchase_details' => 'praesentium',
'order_by_date' => 'desc',
'per_page' => '10',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 6,
"business_id": 1,
"location_id": 1,
"res_table_id": null,
"type": "sell",
"status": "final",
"is_quotation": 0,
"payment_status": "paid",
"contact_id": 4,
"customer_group_id": null,
"invoice_no": "AS0001",
"ref_no": "",
"source": null,
"unique_hash": null,
"hash_control": null,
"subscription_no": null,
"subscription_repeat_on": null,
"transaction_date": "2018-04-10 13:23:21",
"total_before_tax": "770.0000",
"tax_id": null,
"tax_amount": "0.0000",
"discount_type": "percentage",
"discount_amount": "0.0000",
"rp_redeemed": 0,
"rp_redeemed_amount": "0.0000",
"shipping_details": null,
"shipping_address": null,
"shipping_status": null,
"delivered_to": null,
"additional_notes": null,
"staff_note": null,
"round_off_amount": "0.0000",
"final_total": "770.0000",
"expense_sub_category_id": null,
"is_direct_sale": 0,
"is_suspend": 0,
"total_amount_recovered": null,
"crm_is_order_request": 0,
"mfg_production_cost": "0.0000",
"mfg_production_cost_type": "percentage",
"mfg_is_final": 0,
"is_created_from_api": 0,
"essentials_duration": "0.00",
"essentials_duration_unit": null,
"essentials_amount_per_unit_duration": "0.0000",
"essentials_allowances": null,
"essentials_deductions": null,
"repair_completed_on": null,
"repair_warranty_id": null,
"repair_brand_id": null,
"repair_status_id": null,
"repair_model_id": null,
"repair_job_sheet_id": null,
"repair_defects": null,
"repair_serial_no": null,
"repair_checklist": null,
"repair_security_pwd": null,
"repair_security_pattern": null,
"repair_due_date": null,
"repair_device_id": null,
"repair_updates_notif": 0,
"invoice_token": "00f79f7fd292225e8c303a6bf8626d06",
"pjt_project_id": null,
"pjt_title": null,
"woocommerce_order_id": null,
"selling_price_group_id": null,
"created_at": "2018-01-06 07:06:11",
"updated_at": "2021-10-23 11:42:13",
"location_name": "Location 1",
"location_custom_field1": "gdgdgd88",
"location_invoice_scheme_prefix": "AS",
"table_name": null,
"table_description": null,
"contact": "Harry",
"customer_group_name": "grp 2",
"sell_lines": [
{
"id": 1,
"transaction_id": 6,
"product_id": 2,
"quantity": 10,
"quantity_returned": "0.0000",
"unit_price_before_discount": "70.0000",
"unit_price": "70.0000",
"line_discount_type": null,
"line_discount_amount": "0.0000",
"unit_price_inc_tax": "77.0000",
"item_tax": "7.0000",
"tax_id": 1,
"discount_id": null,
"lot_no_line_id": null,
"sell_line_note": null,
"woocommerce_line_items_id": null,
"children_type": "",
"created_at": "2018-01-06 07:06:11",
"updated_at": "2018-01-06 07:06:11",
"product_name": "Levis Men's Slimmy Fit Jeans",
"product_custom_field_1": null,
"product_type": "variable",
"product_sku": "AS0002",
"category": {
"id": 1,
"name": "Men's",
"business_id": 1,
"short_code": "sfefef",
"parent_id": 0,
"created_by": 1,
"category_type": "product",
"description": null,
"slug": null,
"woocommerce_cat_id": null
},
"sub_category": {
"id": 4,
"name": "Jeans",
"business_id": 1,
"short_code": null,
"parent_id": 1,
"created_by": 1,
"category_type": "product",
"description": null,
"slug": null,
"woocommerce_cat_id": null
},
"product_variations": {
"id": 3,
"name": "30",
"product_id": 2,
"sub_sku": "AS0002-2",
"product_variation_id": 2,
"default_purchase_price": "70.0000",
"dpp_inc_tax": "77.0000",
"default_sell_price": "70.0000",
"sell_price_inc_tax": "77.0000"
}
}
],
"payment_lines": [
{
"id": 1,
"transaction_id": 6,
"business_id": null,
"is_return": 0,
"amount": "770.0000",
"method": "cash",
"card_type": "visa",
"paid_on": "2018-01-09 17:30:35",
"payment_ref_no": null
}
],
"invoice_url": "http://local.pos.com/invoice/00f79f7fd292225e8c303a6bf8626d06",
"payment_link": ""
}
],
"links": {
"first": "http://local.pos.com/connector/api/new_sell?per_page=1&page=1",
"last": "http://local.pos.com/connector/api/new_sell?per_page=1&page=213",
"prev": null,
"next": "http://local.pos.com/connector/api/new_sell?per_page=1&page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 213,
"path": "http://local.pos.com/connector/api/new_sell",
"per_page": "1",
"to": 1,
"total": 213
}
}
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=recusandae&customer_group_id=similique&custom_field_1=aperiam&contact_ids=2%2C3&name=perferendis&biz_name=quis&mobile_num=6&contact_id=voluptatum&order_by=veritatis&direction=id&per_page=10" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/new_contactapi"
);
const params = {
"type": "recusandae",
"customer_group_id": "similique",
"custom_field_1": "aperiam",
"contact_ids": "2,3",
"name": "perferendis",
"biz_name": "quis",
"mobile_num": "6",
"contact_id": "voluptatum",
"order_by": "veritatis",
"direction": "id",
"per_page": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/new_contactapi',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'type' => 'recusandae',
'customer_group_id' => 'similique',
'custom_field_1' => 'aperiam',
'contact_ids' => '2,3',
'name' => 'perferendis',
'biz_name' => 'quis',
'mobile_num' => '6',
'contact_id' => 'voluptatum',
'order_by' => 'veritatis',
'direction' => 'id',
'per_page' => '10',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 18,
"business_id": 1,
"type": "customer",
"name": "Mr. Rohit Kumar Agrawalla",
"prefix": "Mr.",
"first_name": "Rohit",
"middle_name": "Kumar",
"last_name": "Agrawalla",
"email": null,
"contact_status": "active",
"mobile": "8596859647",
"credit_limit": null,
"converted_by": null,
"converted_on": null,
"balance": "40.0000",
"total_rp": 0,
"total_rp_used": 0,
"total_rp_expired": 0,
"customer_group_id": 1,
"crm_source": null,
"crm_life_stage": null,
"custom_field1": null,
"custom_field2": null,
"custom_field3": null,
"custom_field4": null,
"custom_field5": null,
"custom_field6": null,
"custom_field7": null,
"custom_field8": null,
"custom_field9": null,
"custom_field10": null,
"remember_token": null,
"password": null
}
],
"links": {
"first": "http://local.pos.com/connector/api/new_contactapi?customer_group_id=1&page=1",
"last": "http://local.pos.com/connector/api/new_contactapi?customer_group_id=1&page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"path": "http://local.pos.com/connector/api/new_contactapi",
"per_page": 10,
"to": 1,
"total": 1
}
}
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=molestias&order_direction=tenetur&brand_id=excepturi&category_id=voluptatem&sub_category_id=soluta&location_id=1&selling_price_group=necessitatibus&send_lot_detail=sit&name=quis&sku=consectetur&per_page=10" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/product"
);
const params = {
"order_by": "molestias",
"order_direction": "tenetur",
"brand_id": "excepturi",
"category_id": "voluptatem",
"sub_category_id": "soluta",
"location_id": "1",
"selling_price_group": "necessitatibus",
"send_lot_detail": "sit",
"name": "quis",
"sku": "consectetur",
"per_page": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/product',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'order_by' => 'molestias',
'order_direction' => 'tenetur',
'brand_id' => 'excepturi',
'category_id' => 'voluptatem',
'sub_category_id' => 'soluta',
'location_id' => '1',
'selling_price_group' => 'necessitatibus',
'send_lot_detail' => 'sit',
'name' => 'quis',
'sku' => 'consectetur',
'per_page' => '10',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 1,
"name": "Men's Reverse Fleece Crew",
"business_id": 1,
"type": "single",
"sub_unit_ids": null,
"enable_stock": 1,
"alert_quantity": "5.0000",
"sku": "AS0001",
"barcode_type": "C128",
"expiry_period": null,
"expiry_period_type": null,
"enable_sr_no": 0,
"weight": null,
"product_custom_field1": null,
"product_custom_field2": null,
"product_custom_field3": null,
"product_custom_field4": null,
"image": null,
"woocommerce_media_id": null,
"product_description": null,
"created_by": 1,
"warranty_id": null,
"is_inactive": 0,
"repair_model_id": null,
"not_for_selling": 0,
"ecom_shipping_class_id": null,
"ecom_active_in_store": 1,
"woocommerce_product_id": 356,
"woocommerce_disable_sync": 0,
"image_url": "http://local.pos.com/img/default.png",
"product_variations": [
{
"id": 1,
"variation_template_id": null,
"name": "DUMMY",
"product_id": 1,
"is_dummy": 1,
"created_at": "2018-01-03 21:29:08",
"updated_at": "2018-01-03 21:29:08",
"variations": [
{
"id": 1,
"name": "DUMMY",
"product_id": 1,
"sub_sku": "AS0001",
"product_variation_id": 1,
"woocommerce_variation_id": null,
"variation_value_id": null,
"default_purchase_price": "130.0000",
"dpp_inc_tax": "143.0000",
"profit_percent": "0.0000",
"default_sell_price": "130.0000",
"sell_price_inc_tax": "143.0000",
"created_at": "2018-01-03 21:29:08",
"updated_at": "2020-06-09 00:23:22",
"deleted_at": null,
"combo_variations": null,
"variation_location_details": [
{
"id": 56,
"product_id": 1,
"product_variation_id": 1,
"variation_id": 1,
"location_id": 1,
"qty_available": "20.0000",
"created_at": "2020-06-08 23:46:40",
"updated_at": "2020-06-08 23:46:40"
}
],
"media": [
{
"id": 1,
"business_id": 1,
"file_name": "1591686466_978227300_nn.jpeg",
"description": null,
"uploaded_by": 9,
"model_type": "App\\Variation",
"woocommerce_media_id": null,
"model_id": 1,
"created_at": "2020-06-09 00:07:46",
"updated_at": "2020-06-09 00:07:46",
"display_name": "nn.jpeg",
"display_url": "http://local.pos.com/uploads/media/1591686466_978227300_nn.jpeg"
}
],
"discounts": [
{
"id": 2,
"name": "FLAT 10%",
"business_id": 1,
"brand_id": null,
"category_id": null,
"location_id": 1,
"priority": 2,
"discount_type": "fixed",
"discount_amount": "5.0000",
"starts_at": "2021-09-01 11:45:00",
"ends_at": "2021-09-30 11:45:00",
"is_active": 1,
"spg": null,
"applicable_in_cg": 1,
"created_at": "2021-09-01 11:46:00",
"updated_at": "2021-09-01 12:12:55",
"formated_starts_at": " 11:45",
"formated_ends_at": " 11:45"
}
],
"selling_price_group": [
{
"id": 2,
"variation_id": 1,
"price_group_id": 1,
"price_inc_tax": "140.0000",
"created_at": "2020-06-09 00:23:31",
"updated_at": "2020-06-09 00:23:31"
}
]
}
]
}
],
"brand": {
"id": 1,
"business_id": 1,
"name": "Levis",
"description": null,
"created_by": 1,
"deleted_at": null,
"created_at": "2018-01-03 21:19:47",
"updated_at": "2018-01-03 21:19:47"
},
"unit": {
"id": 1,
"business_id": 1,
"actual_name": "Pieces",
"short_name": "Pc(s)",
"allow_decimal": 0,
"base_unit_id": null,
"base_unit_multiplier": null,
"created_by": 1,
"deleted_at": null,
"created_at": "2018-01-03 15:15:20",
"updated_at": "2018-01-03 15:15:20"
},
"category": {
"id": 1,
"name": "Men's",
"business_id": 1,
"short_code": null,
"parent_id": 0,
"created_by": 1,
"category_type": "product",
"description": null,
"slug": null,
"woocommerce_cat_id": null,
"deleted_at": null,
"created_at": "2018-01-03 21:06:34",
"updated_at": "2018-01-03 21:06:34"
},
"sub_category": {
"id": 5,
"name": "Shirts",
"business_id": 1,
"short_code": null,
"parent_id": 1,
"created_by": 1,
"category_type": "product",
"description": null,
"slug": null,
"woocommerce_cat_id": null,
"deleted_at": null,
"created_at": "2018-01-03 21:08:18",
"updated_at": "2018-01-03 21:08:18"
},
"product_tax": {
"id": 1,
"business_id": 1,
"name": "VAT@10%",
"amount": 10,
"is_tax_group": 0,
"created_by": 1,
"woocommerce_tax_rate_id": null,
"deleted_at": null,
"created_at": "2018-01-04 02:40:07",
"updated_at": "2018-01-04 02:40:07"
},
"product_locations": [
{
"id": 1,
"business_id": 1,
"location_id": null,
"name": "Awesome Shop",
"landmark": "Linking Street",
"country": "USA",
"state": "Arizona",
"city": "Phoenix",
"zip_code": "85001",
"invoice_scheme_id": 1,
"invoice_layout_id": 1,
"selling_price_group_id": null,
"print_receipt_on_invoice": 1,
"receipt_printer_type": "browser",
"printer_id": null,
"mobile": null,
"alternate_number": null,
"email": null,
"website": null,
"featured_products": [
"5",
"71"
],
"is_active": 1,
"default_payment_accounts": "{\"cash\":{\"is_enabled\":\"1\",\"account\":\"1\"},\"card\":{\"is_enabled\":\"1\",\"account\":\"3\"},\"cheque\":{\"is_enabled\":\"1\",\"account\":\"2\"},\"bank_transfer\":{\"is_enabled\":\"1\",\"account\":\"1\"},\"other\":{\"is_enabled\":\"1\",\"account\":\"3\"},\"custom_pay_1\":{\"is_enabled\":\"1\",\"account\":\"1\"},\"custom_pay_2\":{\"is_enabled\":\"1\",\"account\":\"2\"},\"custom_pay_3\":{\"is_enabled\":\"1\",\"account\":\"3\"}}",
"custom_field1": null,
"custom_field2": null,
"custom_field3": null,
"custom_field4": null,
"deleted_at": null,
"created_at": "2018-01-04 02:15:20",
"updated_at": "2020-06-09 01:07:05",
"pivot": {
"product_id": 2,
"location_id": 1
}
}
]
}
],
"links": {
"first": "http://local.pos.com/connector/api/product?page=1",
"last": "http://local.pos.com/connector/api/product?page=32",
"prev": null,
"next": "http://local.pos.com/connector/api/product?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"path": "http://local.pos.com/connector/api/product",
"per_page": 10,
"to": 10
}
}
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/1?selling_price_group=omnis&send_lot_detail=consequatur" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/product/1"
);
const params = {
"selling_price_group": "omnis",
"send_lot_detail": "consequatur",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/product/1',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'selling_price_group' => 'omnis',
'send_lot_detail' => 'consequatur',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 1,
"name": "Men's Reverse Fleece Crew",
"business_id": 1,
"type": "single",
"sub_unit_ids": null,
"enable_stock": 1,
"alert_quantity": "5.0000",
"sku": "AS0001",
"barcode_type": "C128",
"expiry_period": null,
"expiry_period_type": null,
"enable_sr_no": 0,
"weight": null,
"product_custom_field1": null,
"product_custom_field2": null,
"product_custom_field3": null,
"product_custom_field4": null,
"image": null,
"woocommerce_media_id": null,
"product_description": null,
"created_by": 1,
"warranty_id": null,
"is_inactive": 0,
"repair_model_id": null,
"not_for_selling": 0,
"ecom_shipping_class_id": null,
"ecom_active_in_store": 1,
"woocommerce_product_id": 356,
"woocommerce_disable_sync": 0,
"image_url": "http://local.pos.com/img/default.png",
"product_variations": [
{
"id": 1,
"variation_template_id": null,
"name": "DUMMY",
"product_id": 1,
"is_dummy": 1,
"created_at": "2018-01-03 21:29:08",
"updated_at": "2018-01-03 21:29:08",
"variations": [
{
"id": 1,
"name": "DUMMY",
"product_id": 1,
"sub_sku": "AS0001",
"product_variation_id": 1,
"woocommerce_variation_id": null,
"variation_value_id": null,
"default_purchase_price": "130.0000",
"dpp_inc_tax": "143.0000",
"profit_percent": "0.0000",
"default_sell_price": "130.0000",
"sell_price_inc_tax": "143.0000",
"created_at": "2018-01-03 21:29:08",
"updated_at": "2020-06-09 00:23:22",
"deleted_at": null,
"combo_variations": null,
"variation_location_details": [
{
"id": 56,
"product_id": 1,
"product_variation_id": 1,
"variation_id": 1,
"location_id": 1,
"qty_available": "20.0000",
"created_at": "2020-06-08 23:46:40",
"updated_at": "2020-06-08 23:46:40"
}
],
"media": [
{
"id": 1,
"business_id": 1,
"file_name": "1591686466_978227300_nn.jpeg",
"description": null,
"uploaded_by": 9,
"model_type": "App\\Variation",
"woocommerce_media_id": null,
"model_id": 1,
"created_at": "2020-06-09 00:07:46",
"updated_at": "2020-06-09 00:07:46",
"display_name": "nn.jpeg",
"display_url": "http://local.pos.com/uploads/media/1591686466_978227300_nn.jpeg"
}
],
"discounts": [
{
"id": 2,
"name": "FLAT 10%",
"business_id": 1,
"brand_id": null,
"category_id": null,
"location_id": 1,
"priority": 2,
"discount_type": "fixed",
"discount_amount": "5.0000",
"starts_at": "2021-09-01 11:45:00",
"ends_at": "2021-09-30 11:45:00",
"is_active": 1,
"spg": null,
"applicable_in_cg": 1,
"created_at": "2021-09-01 11:46:00",
"updated_at": "2021-09-01 12:12:55",
"formated_starts_at": " 11:45",
"formated_ends_at": " 11:45"
}
],
"selling_price_group": [
{
"id": 2,
"variation_id": 1,
"price_group_id": 1,
"price_inc_tax": "140.0000",
"created_at": "2020-06-09 00:23:31",
"updated_at": "2020-06-09 00:23:31"
}
]
}
]
}
],
"brand": {
"id": 1,
"business_id": 1,
"name": "Levis",
"description": null,
"created_by": 1,
"deleted_at": null,
"created_at": "2018-01-03 21:19:47",
"updated_at": "2018-01-03 21:19:47"
},
"unit": {
"id": 1,
"business_id": 1,
"actual_name": "Pieces",
"short_name": "Pc(s)",
"allow_decimal": 0,
"base_unit_id": null,
"base_unit_multiplier": null,
"created_by": 1,
"deleted_at": null,
"created_at": "2018-01-03 15:15:20",
"updated_at": "2018-01-03 15:15:20"
},
"category": {
"id": 1,
"name": "Men's",
"business_id": 1,
"short_code": null,
"parent_id": 0,
"created_by": 1,
"category_type": "product",
"description": null,
"slug": null,
"woocommerce_cat_id": null,
"deleted_at": null,
"created_at": "2018-01-03 21:06:34",
"updated_at": "2018-01-03 21:06:34"
},
"sub_category": {
"id": 5,
"name": "Shirts",
"business_id": 1,
"short_code": null,
"parent_id": 1,
"created_by": 1,
"category_type": "product",
"description": null,
"slug": null,
"woocommerce_cat_id": null,
"deleted_at": null,
"created_at": "2018-01-03 21:08:18",
"updated_at": "2018-01-03 21:08:18"
},
"product_tax": {
"id": 1,
"business_id": 1,
"name": "VAT@10%",
"amount": 10,
"is_tax_group": 0,
"created_by": 1,
"woocommerce_tax_rate_id": null,
"deleted_at": null,
"created_at": "2018-01-04 02:40:07",
"updated_at": "2018-01-04 02:40:07"
},
"product_locations": [
{
"id": 1,
"business_id": 1,
"location_id": null,
"name": "Awesome Shop",
"landmark": "Linking Street",
"country": "USA",
"state": "Arizona",
"city": "Phoenix",
"zip_code": "85001",
"invoice_scheme_id": 1,
"invoice_layout_id": 1,
"selling_price_group_id": null,
"print_receipt_on_invoice": 1,
"receipt_printer_type": "browser",
"printer_id": null,
"mobile": null,
"alternate_number": null,
"email": null,
"website": null,
"featured_products": [
"5",
"71"
],
"is_active": 1,
"default_payment_accounts": "{\"cash\":{\"is_enabled\":\"1\",\"account\":\"1\"},\"card\":{\"is_enabled\":\"1\",\"account\":\"3\"},\"cheque\":{\"is_enabled\":\"1\",\"account\":\"2\"},\"bank_transfer\":{\"is_enabled\":\"1\",\"account\":\"1\"},\"other\":{\"is_enabled\":\"1\",\"account\":\"3\"},\"custom_pay_1\":{\"is_enabled\":\"1\",\"account\":\"1\"},\"custom_pay_2\":{\"is_enabled\":\"1\",\"account\":\"2\"},\"custom_pay_3\":{\"is_enabled\":\"1\",\"account\":\"3\"}}",
"custom_field1": null,
"custom_field2": null,
"custom_field3": null,
"custom_field4": null,
"deleted_at": null,
"created_at": "2018-01-04 02:15:20",
"updated_at": "2020-06-09 01:07:05",
"pivot": {
"product_id": 2,
"location_id": 1
}
}
]
}
]
}
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=voluptas&location_id=1&brand_id=ut&category_id=neque&sub_category_id=sapiente¬_for_selling=quod&name=qui&sku=unde&per_page=10" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/variation/2"
);
const params = {
"product_id": "voluptas",
"location_id": "1",
"brand_id": "ut",
"category_id": "neque",
"sub_category_id": "sapiente",
"not_for_selling": "quod",
"name": "qui",
"sku": "unde",
"per_page": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/variation/2',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'product_id' => 'voluptas',
'location_id' => '1',
'brand_id' => 'ut',
'category_id' => 'neque',
'sub_category_id' => 'sapiente',
'not_for_selling' => 'quod',
'name' => 'qui',
'sku' => 'unde',
'per_page' => '10',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"variation_id": 1,
"variation_name": "",
"sub_sku": "AS0001",
"product_id": 1,
"product_name": "Men's Reverse Fleece Crew",
"sku": "AS0001",
"type": "single",
"business_id": 1,
"barcode_type": "C128",
"expiry_period": null,
"expiry_period_type": null,
"enable_sr_no": 0,
"weight": null,
"product_custom_field1": null,
"product_custom_field2": null,
"product_custom_field3": null,
"product_custom_field4": null,
"product_image": "1528728059_fleece_crew.jpg",
"product_description": null,
"warranty_id": null,
"brand_id": 1,
"brand_name": "Levis",
"unit_id": 1,
"enable_stock": 1,
"not_for_selling": 0,
"unit_name": "Pc(s)",
"unit_allow_decimal": 0,
"category_id": 1,
"category": "Men's",
"sub_category_id": 5,
"sub_category": "Shirts",
"tax_id": 1,
"tax_type": "exclusive",
"tax_name": "VAT@10%",
"tax_amount": 10,
"product_variation_id": 1,
"default_purchase_price": "130.0000",
"dpp_inc_tax": "143.0000",
"profit_percent": "0.0000",
"default_sell_price": "130.0000",
"sell_price_inc_tax": "143.0000",
"product_variation_name": "",
"variation_location_details": [],
"media": [],
"selling_price_group": [],
"product_image_url": "http://local.pos.com/uploads/img/1528728059_fleece_crew.jpg",
"product_locations": [
{
"id": 1,
"business_id": 1,
"location_id": null,
"name": "Awesome Shop",
"landmark": "Linking Street",
"country": "USA",
"state": "Arizona",
"city": "Phoenix",
"zip_code": "85001",
"invoice_scheme_id": 1,
"invoice_layout_id": 1,
"selling_price_group_id": null,
"print_receipt_on_invoice": 1,
"receipt_printer_type": "browser",
"printer_id": null,
"mobile": null,
"alternate_number": null,
"email": null,
"website": null,
"featured_products": null,
"is_active": 1,
"default_payment_accounts": "",
"custom_field1": null,
"custom_field2": null,
"custom_field3": null,
"custom_field4": null,
"deleted_at": null,
"created_at": "2018-01-04 02:15:20",
"updated_at": "2019-12-11 04:53:39",
"pivot": {
"product_id": 1,
"location_id": 1
}
}
]
},
{
"variation_id": 2,
"variation_name": "28",
"sub_sku": "AS0002-1",
"product_id": 2,
"product_name": "Levis Men's Slimmy Fit Jeans",
"sku": "AS0002",
"type": "variable",
"business_id": 1,
"barcode_type": "C128",
"expiry_period": null,
"expiry_period_type": null,
"enable_sr_no": 0,
"weight": null,
"product_custom_field1": null,
"product_custom_field2": null,
"product_custom_field3": null,
"product_custom_field4": null,
"product_image": "1528727964_levis_jeans.jpg",
"product_description": null,
"warranty_id": null,
"brand_id": 1,
"brand_name": "Levis",
"unit_id": 1,
"enable_stock": 1,
"not_for_selling": 0,
"unit_name": "Pc(s)",
"unit_allow_decimal": 0,
"category_id": 1,
"category": "Men's",
"sub_category_id": 4,
"sub_category": "Jeans",
"tax_id": 1,
"tax_type": "exclusive",
"tax_name": "VAT@10%",
"tax_amount": 10,
"product_variation_id": 2,
"default_purchase_price": "70.0000",
"dpp_inc_tax": "77.0000",
"profit_percent": "0.0000",
"default_sell_price": "70.0000",
"sell_price_inc_tax": "77.0000",
"product_variation_name": "Waist Size",
"variation_location_details": [
{
"id": 1,
"product_id": 2,
"product_variation_id": 2,
"variation_id": 2,
"location_id": 1,
"qty_available": "50.0000",
"created_at": "2018-01-06 06:57:11",
"updated_at": "2020-08-04 04:11:27"
}
],
"media": [
{
"id": 1,
"business_id": 1,
"file_name": "1596701997_743693452_test.jpg",
"description": null,
"uploaded_by": 9,
"model_type": "App\\Variation",
"woocommerce_media_id": null,
"model_id": 2,
"created_at": "2020-08-06 13:49:57",
"updated_at": "2020-08-06 13:49:57",
"display_name": "test.jpg",
"display_url": "http://local.pos.com/uploads/media/1596701997_743693452_test.jpg"
}
],
"selling_price_group": [],
"product_image_url": "http://local.pos.com/uploads/img/1528727964_levis_jeans.jpg",
"product_locations": [
{
"id": 1,
"business_id": 1,
"location_id": null,
"name": "Awesome Shop",
"landmark": "Linking Street",
"country": "USA",
"state": "Arizona",
"city": "Phoenix",
"zip_code": "85001",
"invoice_scheme_id": 1,
"invoice_layout_id": 1,
"selling_price_group_id": null,
"print_receipt_on_invoice": 1,
"receipt_printer_type": "browser",
"printer_id": null,
"mobile": null,
"alternate_number": null,
"email": null,
"website": null,
"featured_products": null,
"is_active": 1,
"default_payment_accounts": "",
"custom_field1": null,
"custom_field2": null,
"custom_field3": null,
"custom_field4": null,
"deleted_at": null,
"created_at": "2018-01-04 02:15:20",
"updated_at": "2019-12-11 04:53:39",
"pivot": {
"product_id": 2,
"location_id": 1
}
}
],
"discounts": [
{
"id": 2,
"name": "FLAT 10%",
"business_id": 1,
"brand_id": null,
"category_id": null,
"location_id": 1,
"priority": 2,
"discount_type": "fixed",
"discount_amount": "5.0000",
"starts_at": "2021-09-01 11:45:00",
"ends_at": "2021-09-30 11:45:00",
"is_active": 1,
"spg": null,
"applicable_in_cg": 1,
"created_at": "2021-09-01 11:46:00",
"updated_at": "2021-09-01 12:12:55",
"formated_starts_at": " 11:45",
"formated_ends_at": " 11:45"
}
]
}
],
"links": {
"first": "http://local.pos.com/connector/api/variation?page=1",
"last": null,
"prev": null,
"next": "http://local.pos.com/connector/api/variation?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"path": "http://local.pos.com/connector/api/variation",
"per_page": "2",
"to": 2
}
}
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=molestiae&status=final&payment_status=due%2Cpartial&start_date=2018-06-25&end_date=2018-06-25&user_id=quis&service_staff_id=ut&shipping_status=ordered&source=eos&only_subscriptions=dolor&send_purchase_details=quo&order_by_date=desc&per_page=10" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/sell"
);
const params = {
"location_id": "1",
"contact_id": "molestiae",
"status": "final",
"payment_status": "due,partial",
"start_date": "2018-06-25",
"end_date": "2018-06-25",
"user_id": "quis",
"service_staff_id": "ut",
"shipping_status": "ordered",
"source": "eos",
"only_subscriptions": "dolor",
"send_purchase_details": "quo",
"order_by_date": "desc",
"per_page": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/sell',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'location_id' => '1',
'contact_id' => 'molestiae',
'status' => 'final',
'payment_status' => 'due,partial',
'start_date' => '2018-06-25',
'end_date' => '2018-06-25',
'user_id' => 'quis',
'service_staff_id' => 'ut',
'shipping_status' => 'ordered',
'source' => 'eos',
'only_subscriptions' => 'dolor',
'send_purchase_details' => 'quo',
'order_by_date' => 'desc',
'per_page' => '10',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 6,
"business_id": 1,
"location_id": 1,
"res_table_id": null,
"res_waiter_id": null,
"res_order_status": null,
"type": "sell",
"sub_type": null,
"status": "final",
"is_quotation": 0,
"payment_status": "paid",
"adjustment_type": null,
"contact_id": 4,
"customer_group_id": null,
"invoice_no": "AS0001",
"ref_no": "",
"source": null,
"subscription_no": null,
"subscription_repeat_on": null,
"transaction_date": "2018-04-10 13:23:21",
"total_before_tax": "770.0000",
"tax_id": null,
"tax_amount": "0.0000",
"discount_type": "percentage",
"discount_amount": "0.0000",
"rp_redeemed": 0,
"rp_redeemed_amount": "0.0000",
"shipping_details": null,
"shipping_address": null,
"shipping_status": null,
"delivered_to": null,
"shipping_charges": "0.0000",
"additional_notes": null,
"staff_note": null,
"round_off_amount": "0.0000",
"final_total": "770.0000",
"expense_category_id": null,
"expense_for": null,
"commission_agent": null,
"document": null,
"is_direct_sale": 0,
"is_suspend": 0,
"exchange_rate": "1.000",
"total_amount_recovered": null,
"transfer_parent_id": null,
"return_parent_id": null,
"opening_stock_product_id": null,
"created_by": 1,
"import_batch": null,
"import_time": null,
"types_of_service_id": null,
"packing_charge": null,
"packing_charge_type": null,
"service_custom_field_1": null,
"service_custom_field_2": null,
"service_custom_field_3": null,
"service_custom_field_4": null,
"mfg_parent_production_purchase_id": null,
"mfg_wasted_units": null,
"mfg_production_cost": "0.0000",
"mfg_is_final": 0,
"is_created_from_api": 0,
"essentials_duration": "0.00",
"essentials_duration_unit": null,
"essentials_amount_per_unit_duration": "0.0000",
"essentials_allowances": null,
"essentials_deductions": null,
"rp_earned": 0,
"repair_completed_on": null,
"repair_warranty_id": null,
"repair_brand_id": null,
"repair_status_id": null,
"repair_model_id": null,
"repair_defects": null,
"repair_serial_no": null,
"repair_updates_email": 0,
"repair_updates_sms": 0,
"repair_checklist": null,
"repair_security_pwd": null,
"repair_security_pattern": null,
"repair_due_date": null,
"repair_device_id": null,
"order_addresses": null,
"is_recurring": 0,
"recur_interval": null,
"recur_interval_type": null,
"recur_repetitions": null,
"recur_stopped_on": null,
"recur_parent_id": null,
"invoice_token": null,
"pay_term_number": null,
"pay_term_type": null,
"pjt_project_id": null,
"pjt_title": null,
"woocommerce_order_id": null,
"selling_price_group_id": null,
"created_at": "2018-01-06 07:06:11",
"updated_at": "2018-01-06 07:06:11",
"sell_lines": [
{
"id": 1,
"transaction_id": 6,
"product_id": 2,
"variation_id": 3,
"quantity": 10,
"mfg_waste_percent": "0.0000",
"quantity_returned": "0.0000",
"unit_price_before_discount": "70.0000",
"unit_price": "70.0000",
"line_discount_type": null,
"line_discount_amount": "0.0000",
"unit_price_inc_tax": "77.0000",
"item_tax": "7.0000",
"tax_id": 1,
"discount_id": null,
"lot_no_line_id": null,
"sell_line_note": null,
"res_service_staff_id": null,
"res_line_order_status": null,
"woocommerce_line_items_id": null,
"parent_sell_line_id": null,
"children_type": "",
"sub_unit_id": null,
"created_at": "2018-01-06 07:06:11",
"updated_at": "2018-01-06 07:06:11"
}
],
"payment_lines": [
{
"id": 1,
"transaction_id": 6,
"business_id": null,
"is_return": 0,
"amount": "770.0000",
"method": "cash",
"transaction_no": null,
"card_transaction_number": null,
"card_number": null,
"card_type": "visa",
"card_holder_name": null,
"card_month": null,
"card_year": null,
"card_security": null,
"cheque_number": null,
"bank_account_number": null,
"paid_on": "2018-01-09 17:30:35",
"created_by": 1,
"payment_for": null,
"parent_id": null,
"note": null,
"document": null,
"payment_ref_no": null,
"account_id": null,
"created_at": "2018-01-06 01:36:11",
"updated_at": "2018-01-06 01:36:11"
}
],
"invoice_url": "http://local.pos.com/invoice/6dfd77eb80f4976b456128e7f1311c9f",
"payment_link": "http://local.pos.com/pay/6dfd77eb80f4976b456128e7f1311c9f"
}
],
"links": {
"first": "http://local.pos.com/connector/api/sell?page=1",
"last": "http://local.pos.com/connector/api/sell?page=6",
"prev": null,
"next": "http://local.pos.com/connector/api/sell?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"path": "http://local.pos.com/connector/api/sell",
"per_page": 10,
"to": 10
}
}
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/aliquid?send_purchase_details=quaerat" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/sell/aliquid"
);
const params = {
"send_purchase_details": "quaerat",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/sell/aliquid',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'send_purchase_details' => 'quaerat',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 55,
"business_id": 1,
"location_id": 1,
"res_table_id": 5,
"res_waiter_id": null,
"res_order_status": null,
"type": "sell",
"sub_type": null,
"status": "final",
"is_quotation": 0,
"payment_status": "paid",
"adjustment_type": null,
"contact_id": 1,
"customer_group_id": null,
"invoice_no": "AS0007",
"ref_no": "",
"source": null,
"subscription_no": null,
"subscription_repeat_on": null,
"transaction_date": "2020-06-04 23:29:36",
"total_before_tax": "437.5000",
"tax_id": 1,
"tax_amount": "39.3750",
"discount_type": "percentage",
"discount_amount": "10.0000",
"rp_redeemed": 0,
"rp_redeemed_amount": "0.0000",
"shipping_details": "Express Delivery",
"shipping_address": null,
"shipping_status": "ordered",
"delivered_to": "Mr Robin",
"shipping_charges": "10.0000",
"additional_notes": null,
"staff_note": null,
"round_off_amount": "0.0000",
"final_total": "453.1300",
"expense_category_id": null,
"expense_for": null,
"commission_agent": null,
"document": null,
"is_direct_sale": 0,
"is_suspend": 0,
"exchange_rate": "1.000",
"total_amount_recovered": null,
"transfer_parent_id": null,
"return_parent_id": null,
"opening_stock_product_id": null,
"created_by": 9,
"import_batch": null,
"import_time": null,
"types_of_service_id": 1,
"packing_charge": "10.0000",
"packing_charge_type": "fixed",
"service_custom_field_1": null,
"service_custom_field_2": null,
"service_custom_field_3": null,
"service_custom_field_4": null,
"mfg_parent_production_purchase_id": null,
"mfg_wasted_units": null,
"mfg_production_cost": "0.0000",
"mfg_is_final": 0,
"is_created_from_api": 0,
"essentials_duration": "0.00",
"essentials_duration_unit": null,
"essentials_amount_per_unit_duration": "0.0000",
"essentials_allowances": null,
"essentials_deductions": null,
"rp_earned": 0,
"repair_completed_on": null,
"repair_warranty_id": null,
"repair_brand_id": null,
"repair_status_id": null,
"repair_model_id": null,
"repair_defects": null,
"repair_serial_no": null,
"repair_updates_email": 0,
"repair_updates_sms": 0,
"repair_checklist": null,
"repair_security_pwd": null,
"repair_security_pattern": null,
"repair_due_date": null,
"repair_device_id": null,
"order_addresses": null,
"is_recurring": 0,
"recur_interval": null,
"recur_interval_type": "days",
"recur_repetitions": 0,
"recur_stopped_on": null,
"recur_parent_id": null,
"invoice_token": null,
"pay_term_number": null,
"pay_term_type": null,
"pjt_project_id": null,
"pjt_title": null,
"woocommerce_order_id": null,
"selling_price_group_id": 0,
"created_at": "2020-06-04 23:29:36",
"updated_at": "2020-06-04 23:29:36",
"sell_lines": [
{
"id": 38,
"transaction_id": 55,
"product_id": 17,
"variation_id": 58,
"quantity": 1,
"mfg_waste_percent": "0.0000",
"quantity_returned": "0.0000",
"unit_price_before_discount": "437.5000",
"unit_price": "437.5000",
"line_discount_type": "fixed",
"line_discount_amount": "0.0000",
"unit_price_inc_tax": "437.5000",
"item_tax": "0.0000",
"tax_id": null,
"discount_id": null,
"lot_no_line_id": null,
"sell_line_note": "",
"res_service_staff_id": null,
"res_line_order_status": null,
"woocommerce_line_items_id": null,
"parent_sell_line_id": null,
"children_type": "",
"sub_unit_id": null,
"created_at": "2020-06-04 23:29:36",
"updated_at": "2020-06-04 23:29:36"
}
],
"payment_lines": [
{
"id": 37,
"transaction_id": 55,
"business_id": 1,
"is_return": 0,
"amount": "453.1300",
"method": "cash",
"transaction_no": null,
"card_transaction_number": null,
"card_number": null,
"card_type": "credit",
"card_holder_name": null,
"card_month": null,
"card_year": null,
"card_security": null,
"cheque_number": null,
"bank_account_number": null,
"paid_on": "2020-06-04 23:29:36",
"created_by": 9,
"payment_for": 1,
"parent_id": null,
"note": null,
"document": null,
"payment_ref_no": "SP2020/0002",
"account_id": null,
"created_at": "2020-06-04 23:29:36",
"updated_at": "2020-06-04 23:29:36"
}
],
"invoice_url": "http://local.pos.com/invoice/6dfd77eb80f4976b456128e7f1311c9f",
"payment_link": "http://local.pos.com/pay/6dfd77eb80f4976b456128e7f1311c9f"
}
]
}
Received response:
Request failed with error:
Update sell
requires authentication
Example request:
curl --request PUT \
"https://pos.ultimatefosters.com/connector/api/sell/possimus" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"contact_id\": 17,
\"transaction_date\": \"2020-5-7 15:20:22\",
\"status\": \"final\",
\"sub_status\": \"null\",
\"is_quotation\": true,
\"tax_rate_id\": 7,
\"discount_amount\": 10,
\"discount_type\": \"fixed\",
\"sale_note\": \"pariatur\",
\"source\": \"mollitia\",
\"staff_note\": \"sunt\",
\"is_suspend\": false,
\"commission_agent\": 4,
\"shipping_details\": \"Express Delivery\",
\"shipping_address\": \"dolorum\",
\"shipping_status\": \"ordered\",
\"delivered_to\": \"Mr Robin\",
\"shipping_charges\": 10,
\"packing_charge\": 10,
\"exchange_rate\": 1,
\"selling_price_group_id\": 5,
\"pay_term_number\": 6,
\"pay_term_type\": \"months\",
\"is_recurring\": 0,
\"recur_interval\": 16,
\"recur_interval_type\": \"days\",
\"subscription_repeat_on\": 7,
\"subscription_no\": \"totam\",
\"recur_repetitions\": 9,
\"rp_redeemed\": 8,
\"rp_redeemed_amount\": 13.5,
\"types_of_service_id\": 16,
\"service_custom_field_1\": \"est\",
\"service_custom_field_2\": \"saepe\",
\"service_custom_field_3\": \"quasi\",
\"service_custom_field_4\": \"fugiat\",
\"service_custom_field_5\": \"numquam\",
\"service_custom_field_6\": \"laborum\",
\"round_off_amount\": 87.78989,
\"table_id\": 1,
\"service_staff_id\": 8,
\"change_return\": 0,
\"change_return_id\": 1,
\"products\": [
\"quae\"
],
\"payments\": [
\"minima\"
]
}"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/sell/possimus"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"contact_id": 17,
"transaction_date": "2020-5-7 15:20:22",
"status": "final",
"sub_status": "null",
"is_quotation": true,
"tax_rate_id": 7,
"discount_amount": 10,
"discount_type": "fixed",
"sale_note": "pariatur",
"source": "mollitia",
"staff_note": "sunt",
"is_suspend": false,
"commission_agent": 4,
"shipping_details": "Express Delivery",
"shipping_address": "dolorum",
"shipping_status": "ordered",
"delivered_to": "Mr Robin",
"shipping_charges": 10,
"packing_charge": 10,
"exchange_rate": 1,
"selling_price_group_id": 5,
"pay_term_number": 6,
"pay_term_type": "months",
"is_recurring": 0,
"recur_interval": 16,
"recur_interval_type": "days",
"subscription_repeat_on": 7,
"subscription_no": "totam",
"recur_repetitions": 9,
"rp_redeemed": 8,
"rp_redeemed_amount": 13.5,
"types_of_service_id": 16,
"service_custom_field_1": "est",
"service_custom_field_2": "saepe",
"service_custom_field_3": "quasi",
"service_custom_field_4": "fugiat",
"service_custom_field_5": "numquam",
"service_custom_field_6": "laborum",
"round_off_amount": 87.78989,
"table_id": 1,
"service_staff_id": 8,
"change_return": 0,
"change_return_id": 1,
"products": [
"quae"
],
"payments": [
"minima"
]
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
'https://pos.ultimatefosters.com/connector/api/sell/possimus',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'contact_id' => 17,
'transaction_date' => '2020-5-7 15:20:22',
'status' => 'final',
'sub_status' => 'null',
'is_quotation' => true,
'tax_rate_id' => 7,
'discount_amount' => 10.0,
'discount_type' => 'fixed',
'sale_note' => 'pariatur',
'source' => 'mollitia',
'staff_note' => 'sunt',
'is_suspend' => false,
'commission_agent' => 4,
'shipping_details' => 'Express Delivery',
'shipping_address' => 'dolorum',
'shipping_status' => 'ordered',
'delivered_to' => 'Mr Robin',
'shipping_charges' => 10.0,
'packing_charge' => 10.0,
'exchange_rate' => 1.0,
'selling_price_group_id' => 5,
'pay_term_number' => 6,
'pay_term_type' => 'months',
'is_recurring' => 0,
'recur_interval' => 16,
'recur_interval_type' => 'days',
'subscription_repeat_on' => 7,
'subscription_no' => 'totam',
'recur_repetitions' => 9,
'rp_redeemed' => 8,
'rp_redeemed_amount' => 13.5,
'types_of_service_id' => 16,
'service_custom_field_1' => 'est',
'service_custom_field_2' => 'saepe',
'service_custom_field_3' => 'quasi',
'service_custom_field_4' => 'fugiat',
'service_custom_field_5' => 'numquam',
'service_custom_field_6' => 'laborum',
'round_off_amount' => 87.78989,
'table_id' => 1,
'service_staff_id' => 8,
'change_return' => 0.0,
'change_return_id' => 1,
'products' => [
'quae',
],
'payments' => [
'minima',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"id": 91,
"business_id": 1,
"location_id": 1,
"res_table_id": null,
"res_waiter_id": null,
"res_order_status": null,
"type": "sell",
"sub_type": null,
"status": "final",
"is_quotation": 0,
"payment_status": "paid",
"adjustment_type": null,
"contact_id": 1,
"customer_group_id": 1,
"invoice_no": "AS0020",
"ref_no": "",
"source": null,
"subscription_no": null,
"subscription_repeat_on": null,
"transaction_date": "25-09-2020 15:22",
"total_before_tax": 962.5,
"tax_id": null,
"tax_amount": 0,
"discount_type": "fixed",
"discount_amount": "19.5000",
"rp_redeemed": 0,
"rp_redeemed_amount": "0.0000",
"shipping_details": null,
"shipping_address": null,
"shipping_status": null,
"delivered_to": null,
"shipping_charges": "0.0000",
"additional_notes": null,
"staff_note": null,
"round_off_amount": "0.0000",
"final_total": 943,
"expense_category_id": null,
"expense_for": null,
"commission_agent": null,
"document": null,
"is_direct_sale": 0,
"is_suspend": 0,
"exchange_rate": "1.000",
"total_amount_recovered": null,
"transfer_parent_id": null,
"return_parent_id": null,
"opening_stock_product_id": null,
"created_by": 9,
"import_batch": null,
"import_time": null,
"types_of_service_id": null,
"packing_charge": "0.0000",
"packing_charge_type": null,
"service_custom_field_1": null,
"service_custom_field_2": null,
"service_custom_field_3": null,
"service_custom_field_4": null,
"mfg_parent_production_purchase_id": null,
"mfg_wasted_units": null,
"mfg_production_cost": "0.0000",
"mfg_production_cost_type": "percentage",
"mfg_is_final": 0,
"is_created_from_api": 0,
"essentials_duration": "0.00",
"essentials_duration_unit": null,
"essentials_amount_per_unit_duration": "0.0000",
"essentials_allowances": null,
"essentials_deductions": null,
"rp_earned": 0,
"repair_completed_on": null,
"repair_warranty_id": null,
"repair_brand_id": null,
"repair_status_id": null,
"repair_model_id": null,
"repair_job_sheet_id": null,
"repair_defects": null,
"repair_serial_no": null,
"repair_checklist": null,
"repair_security_pwd": null,
"repair_security_pattern": null,
"repair_due_date": null,
"repair_device_id": null,
"repair_updates_notif": 0,
"order_addresses": null,
"is_recurring": 0,
"recur_interval": 1,
"recur_interval_type": "days",
"recur_repetitions": 0,
"recur_stopped_on": null,
"recur_parent_id": null,
"invoice_token": null,
"pay_term_number": null,
"pay_term_type": null,
"pjt_project_id": null,
"pjt_title": null,
"woocommerce_order_id": null,
"selling_price_group_id": 0,
"created_at": "2020-09-23 20:16:19",
"updated_at": "2020-09-25 17:57:08",
"payment_lines": [
{
"id": 55,
"transaction_id": 91,
"business_id": 1,
"is_return": 0,
"amount": "461.7500",
"method": "cash",
"transaction_no": null,
"card_transaction_number": null,
"card_number": null,
"card_type": "credit",
"card_holder_name": null,
"card_month": null,
"card_year": null,
"card_security": null,
"cheque_number": null,
"bank_account_number": null,
"paid_on": "2020-09-23 20:16:19",
"created_by": 9,
"is_advance": 0,
"payment_for": 1,
"parent_id": null,
"note": null,
"document": null,
"payment_ref_no": "SP2020/0018",
"account_id": null,
"created_at": "2020-09-23 20:16:19",
"updated_at": "2020-09-23 20:16:19"
}
],
"invoice_url": "http://local.pos.com/invoice/6dfd77eb80f4976b456128e7f1311c9f",
"payment_link": "http://local.pos.com/pay/6dfd77eb80f4976b456128e7f1311c9f"
}
Received response:
Request failed with error:
Delete Sell
requires authentication
Example request:
curl --request DELETE \
"https://pos.ultimatefosters.com/connector/api/sell/id" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/sell/id"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://pos.ultimatefosters.com/connector/api/sell/id',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
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\": 18,
\"transaction_date\": \"2020-5-7 15:20:22\",
\"invoice_no\": \"perferendis\",
\"discount_amount\": 10,
\"discount_type\": \"fixed\",
\"products\": [
\"itaque\"
]
}"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/sell-return"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"transaction_id": 18,
"transaction_date": "2020-5-7 15:20:22",
"invoice_no": "perferendis",
"discount_amount": 10,
"discount_type": "fixed",
"products": [
"itaque"
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://pos.ultimatefosters.com/connector/api/sell-return',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'transaction_id' => 18,
'transaction_date' => '2020-5-7 15:20:22',
'invoice_no' => 'perferendis',
'discount_amount' => 10.0,
'discount_type' => 'fixed',
'products' => [
'itaque',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"id": 159,
"business_id": 1,
"location_id": 1,
"res_table_id": null,
"res_waiter_id": null,
"res_order_status": null,
"type": "sell_return",
"sub_type": null,
"status": "final",
"is_quotation": 0,
"payment_status": "paid",
"adjustment_type": null,
"contact_id": 1,
"customer_group_id": null,
"invoice_no": "CN2020/0005",
"ref_no": null,
"subscription_no": null,
"subscription_repeat_on": null,
"transaction_date": "2020-11-17 00:00:00",
"total_before_tax": 3,
"tax_id": null,
"tax_amount": 0,
"discount_type": "percentage",
"discount_amount": 12,
"rp_redeemed": 0,
"rp_redeemed_amount": "0.0000",
"shipping_details": null,
"shipping_address": null,
"shipping_status": null,
"delivered_to": null,
"shipping_charges": "0.0000",
"additional_notes": null,
"staff_note": null,
"round_off_amount": "0.0000",
"final_total": 2.64,
"expense_category_id": null,
"expense_for": null,
"commission_agent": null,
"document": null,
"is_direct_sale": 0,
"is_suspend": 0,
"exchange_rate": "1.000",
"total_amount_recovered": null,
"transfer_parent_id": null,
"return_parent_id": 157,
"opening_stock_product_id": null,
"created_by": 9,
"import_batch": null,
"import_time": null,
"types_of_service_id": null,
"packing_charge": null,
"packing_charge_type": null,
"service_custom_field_1": null,
"service_custom_field_2": null,
"service_custom_field_3": null,
"service_custom_field_4": null,
"mfg_parent_production_purchase_id": null,
"mfg_wasted_units": null,
"mfg_production_cost": "0.0000",
"mfg_production_cost_type": "percentage",
"mfg_is_final": 0,
"is_created_from_api": 0,
"essentials_duration": "0.00",
"essentials_duration_unit": null,
"essentials_amount_per_unit_duration": "0.0000",
"essentials_allowances": null,
"essentials_deductions": null,
"rp_earned": 0,
"repair_completed_on": null,
"repair_warranty_id": null,
"repair_brand_id": null,
"repair_status_id": null,
"repair_model_id": null,
"repair_job_sheet_id": null,
"repair_defects": null,
"repair_serial_no": null,
"repair_checklist": null,
"repair_security_pwd": null,
"repair_security_pattern": null,
"repair_due_date": null,
"repair_device_id": null,
"repair_updates_notif": 0,
"order_addresses": null,
"is_recurring": 0,
"recur_interval": null,
"recur_interval_type": null,
"recur_repetitions": null,
"recur_stopped_on": null,
"recur_parent_id": null,
"invoice_token": null,
"pay_term_number": null,
"pay_term_type": null,
"pjt_project_id": null,
"pjt_title": null,
"woocommerce_order_id": null,
"selling_price_group_id": null,
"created_at": "2020-11-17 12:05:11",
"updated_at": "2020-11-17 13:22:09"
}
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\": 3,
\"shipping_status\": \"ordered\",
\"delivered_to\": \"dolorem\"
}"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/update-shipping-status"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id": 3,
"shipping_status": "ordered",
"delivered_to": "dolorem"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://pos.ultimatefosters.com/connector/api/update-shipping-status',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'id' => 3,
'shipping_status' => 'ordered',
'delivered_to' => 'dolorem',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
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/ipsam" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/table/ipsam"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/table/ipsam',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 5,
"business_id": 1,
"location_id": 1,
"name": "Table 1",
"description": null,
"created_by": 9,
"deleted_at": null,
"created_at": "2020-06-04 22:36:37",
"updated_at": "2020-06-04 22:36:37"
}
]
}
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": "CGST@10%",
"amount": 10,
"is_tax_group": 0,
"created_by": 1,
"woocommerce_tax_rate_id": null,
"deleted_at": null,
"created_at": "2018-01-04 02:40:55",
"updated_at": "2018-01-04 02:40:55"
},
{
"id": 3,
"business_id": 1,
"name": "SGST@8%",
"amount": 8,
"is_tax_group": 0,
"created_by": 1,
"woocommerce_tax_rate_id": null,
"deleted_at": null,
"created_at": "2018-01-04 02:41:13",
"updated_at": "2018-01-04 02:41:13"
},
{
"id": 4,
"business_id": 1,
"name": "GST@18%",
"amount": 18,
"is_tax_group": 1,
"created_by": 1,
"woocommerce_tax_rate_id": null,
"deleted_at": null,
"created_at": "2018-01-04 02:42:19",
"updated_at": "2018-01-04 02:42:19"
}
]
}
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/omnis" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/tax/omnis"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/tax/omnis',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 1,
"business_id": 1,
"name": "VAT@10%",
"amount": 10,
"is_tax_group": 0,
"created_by": 1,
"woocommerce_tax_rate_id": null,
"deleted_at": null,
"created_at": "2018-01-04 02:40:07",
"updated_at": "2018-01-04 02:40:07"
}
]
}
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=nihil" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/taxonomy"
);
const params = {
"type": "nihil",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/taxonomy',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'type' => 'nihil',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 1,
"name": "Men's",
"business_id": 1,
"short_code": null,
"parent_id": 0,
"created_by": 1,
"category_type": "product",
"description": null,
"slug": null,
"woocommerce_cat_id": null,
"deleted_at": null,
"created_at": "2018-01-03 21:06:34",
"updated_at": "2018-01-03 21:06:34",
"sub_categories": [
{
"id": 4,
"name": "Jeans",
"business_id": 1,
"short_code": null,
"parent_id": 1,
"created_by": 1,
"category_type": "product",
"description": null,
"slug": null,
"woocommerce_cat_id": null,
"deleted_at": null,
"created_at": "2018-01-03 21:07:34",
"updated_at": "2018-01-03 21:07:34"
},
{
"id": 5,
"name": "Shirts",
"business_id": 1,
"short_code": null,
"parent_id": 1,
"created_by": 1,
"category_type": "product",
"description": null,
"slug": null,
"woocommerce_cat_id": null,
"deleted_at": null,
"created_at": "2018-01-03 21:08:18",
"updated_at": "2018-01-03 21:08:18"
}
]
},
{
"id": 21,
"name": "Food & Grocery",
"business_id": 1,
"short_code": null,
"parent_id": 0,
"created_by": 1,
"category_type": "product",
"description": null,
"slug": null,
"woocommerce_cat_id": null,
"deleted_at": null,
"created_at": "2018-01-06 05:31:35",
"updated_at": "2018-01-06 05:31:35",
"sub_categories": []
}
]
}
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/eligendi" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/taxonomy/eligendi"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/taxonomy/eligendi',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 1,
"name": "Men's",
"business_id": 1,
"short_code": null,
"parent_id": 0,
"created_by": 1,
"category_type": "product",
"description": null,
"slug": null,
"woocommerce_cat_id": null,
"deleted_at": null,
"created_at": "2018-01-03 21:06:34",
"updated_at": "2018-01-03 21:06:34",
"sub_categories": [
{
"id": 4,
"name": "Jeans",
"business_id": 1,
"short_code": null,
"parent_id": 1,
"created_by": 1,
"category_type": "product",
"description": null,
"slug": null,
"woocommerce_cat_id": null,
"deleted_at": null,
"created_at": "2018-01-03 21:07:34",
"updated_at": "2018-01-03 21:07:34"
},
{
"id": 5,
"name": "Shirts",
"business_id": 1,
"short_code": null,
"parent_id": 1,
"created_by": 1,
"category_type": "product",
"description": null,
"slug": null,
"woocommerce_cat_id": null,
"deleted_at": null,
"created_at": "2018-01-03 21:08:18",
"updated_at": "2018-01-03 21:08:18"
}
]
}
]
}
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/18" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/types-of-service/18"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/types-of-service/18',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 1,
"name": "Home Delivery",
"description": null,
"business_id": 1,
"location_price_group": {
"1": "0"
},
"packing_charge": "10.0000",
"packing_charge_type": "fixed",
"enable_custom_fields": 0,
"created_at": "2020-06-04 22:41:13",
"updated_at": "2020-06-04 22:41:13"
}
]
}
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\": \"dicta\",
\"email\": \"[email protected]\",
\"user_type\": \"est\",
\"surname\": \"in\",
\"first_name\": \"quo\",
\"last_name\": \"dignissimos\",
\"is_active\": \"odit\",
\"crm_contact_id\": 16,
\"allow_login\": false,
\"password\": \"xrZ>E^\",
\"role\": 8,
\"access_all_locations\": false,
\"location_permissions\": [
\"quae\"
],
\"cmmsn_percent\": \"aliquid\",
\"max_sales_discount_percent\": \"ea\",
\"selected_contacts\": true,
\"selected_contact_ids\": [
\"illo\"
],
\"dob\": \"consequuntur\",
\"gender\": \"laborum\",
\"marital_status\": \"rem\",
\"blood_group\": \"sed\",
\"contact_number\": \"aut\",
\"alt_number\": \"qui\",
\"family_number\": \"officiis\",
\"fb_link\": \"quas\",
\"twitter_link\": \"molestias\",
\"social_media_1\": \"aliquid\",
\"social_media_2\": \"est\",
\"custom_field_1\": \"sint\",
\"custom_field_2\": \"tenetur\",
\"custom_field_3\": \"tempora\",
\"custom_field_4\": \"officiis\",
\"guardian_name\": \"sapiente\",
\"id_proof_name\": \"ut\",
\"id_proof_number\": \"nobis\",
\"permanent_address\": \"sit\",
\"current_address\": \"ipsum\"
}"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/user-registration"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"username": "dicta",
"email": "[email protected]",
"user_type": "est",
"surname": "in",
"first_name": "quo",
"last_name": "dignissimos",
"is_active": "odit",
"crm_contact_id": 16,
"allow_login": false,
"password": "xrZ>E^",
"role": 8,
"access_all_locations": false,
"location_permissions": [
"quae"
],
"cmmsn_percent": "aliquid",
"max_sales_discount_percent": "ea",
"selected_contacts": true,
"selected_contact_ids": [
"illo"
],
"dob": "consequuntur",
"gender": "laborum",
"marital_status": "rem",
"blood_group": "sed",
"contact_number": "aut",
"alt_number": "qui",
"family_number": "officiis",
"fb_link": "quas",
"twitter_link": "molestias",
"social_media_1": "aliquid",
"social_media_2": "est",
"custom_field_1": "sint",
"custom_field_2": "tenetur",
"custom_field_3": "tempora",
"custom_field_4": "officiis",
"guardian_name": "sapiente",
"id_proof_name": "ut",
"id_proof_number": "nobis",
"permanent_address": "sit",
"current_address": "ipsum"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://pos.ultimatefosters.com/connector/api/user-registration',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'username' => 'dicta',
'email' => '[email protected]',
'user_type' => 'est',
'surname' => 'in',
'first_name' => 'quo',
'last_name' => 'dignissimos',
'is_active' => 'odit',
'crm_contact_id' => 16,
'allow_login' => false,
'password' => 'xrZ>E^',
'role' => 8,
'access_all_locations' => false,
'location_permissions' => [
'quae',
],
'cmmsn_percent' => 'aliquid',
'max_sales_discount_percent' => 'ea',
'selected_contacts' => true,
'selected_contact_ids' => [
'illo',
],
'dob' => 'consequuntur',
'gender' => 'laborum',
'marital_status' => 'rem',
'blood_group' => 'sed',
'contact_number' => 'aut',
'alt_number' => 'qui',
'family_number' => 'officiis',
'fb_link' => 'quas',
'twitter_link' => 'molestias',
'social_media_1' => 'aliquid',
'social_media_2' => 'est',
'custom_field_1' => 'sint',
'custom_field_2' => 'tenetur',
'custom_field_3' => 'tempora',
'custom_field_4' => 'officiis',
'guardian_name' => 'sapiente',
'id_proof_name' => 'ut',
'id_proof_number' => 'nobis',
'permanent_address' => 'sit',
'current_address' => 'ipsum',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": 1,
"msg": "User added successfully",
"user": {
"surname": "Mr",
"first_name": "Test",
"last_name": "kumar",
"email": "[email protected]",
"user_type": "user_customer",
"crm_contact_id": "2",
"allow_login": 1,
"username": "0017",
"cmmsn_percent": "25",
"max_sales_discount_percent": "52",
"dob": "1997-10-12",
"gender": "male",
"marital_status": "unmarried",
"blood_group": "0+",
"contact_number": "4578451245",
"alt_number": "7474747474",
"family_number": "7474147414",
"fb_link": "fb.com/username",
"twitter_link": "twitter.com/username",
"social_media_1": "test",
"social_media_2": "test",
"custom_field_1": "test",
"custom_field_2": "test",
"custom_field_3": "test",
"custom_field_4": "test",
"guardian_name": "test",
"id_proof_name": "uid",
"id_proof_number": "747845120124",
"permanent_address": "test permanent adrress",
"current_address": "test current address",
"bank_details": "{\"account_holder_name\":\"test\",\"account_number\":\"test\",\"bank_name\":\"test\",\"bank_code\":\"test\",\"branch\":\"test\",\"tax_payer_id\":\"test\"}",
"selected_contacts": "1",
"status": "active",
"business_id": 1,
"updated_at": "2021-08-12 18:03:58",
"created_at": "2021-08-12 18:03:58",
"id": 140
}
}
Received response:
Request failed with error:
List users
requires authentication
Example request:
curl --request GET \
--get "https://pos.ultimatefosters.com/connector/api/user?service_staff=" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/user"
);
const params = {
"service_staff": "0",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/user',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'service_staff' => '0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 1,
"user_type": "user",
"surname": "Mr",
"first_name": "Admin",
"last_name": null,
"username": "admin",
"email": "[email protected]",
"language": "en",
"contact_no": null,
"address": null,
"business_id": 1,
"max_sales_discount_percent": null,
"allow_login": 1,
"essentials_department_id": null,
"essentials_designation_id": null,
"status": "active",
"crm_contact_id": null,
"is_cmmsn_agnt": 0,
"cmmsn_percent": "0.00",
"selected_contacts": 0,
"dob": null,
"gender": null,
"marital_status": null,
"blood_group": null,
"contact_number": null,
"fb_link": null,
"twitter_link": null,
"social_media_1": null,
"social_media_2": null,
"permanent_address": null,
"current_address": null,
"guardian_name": null,
"custom_field_1": null,
"custom_field_2": null,
"custom_field_3": null,
"custom_field_4": null,
"bank_details": null,
"id_proof_name": null,
"id_proof_number": null,
"deleted_at": null,
"created_at": "2018-01-04 02:15:19",
"updated_at": "2018-01-04 02:15:19"
}
]
}
Received response:
Request failed with error:
Get the specified user
requires authentication
Example request:
curl --request GET \
--get "https://pos.ultimatefosters.com/connector/api/user/1" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/user/1"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://pos.ultimatefosters.com/connector/api/user/1',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"data": [
{
"id": 1,
"user_type": "user",
"surname": "Mr",
"first_name": "Admin",
"last_name": null,
"username": "admin",
"email": "[email protected]",
"language": "en",
"contact_no": null,
"address": null,
"business_id": 1,
"max_sales_discount_percent": null,
"allow_login": 1,
"essentials_department_id": null,
"essentials_designation_id": null,
"status": "active",
"crm_contact_id": null,
"is_cmmsn_agnt": 0,
"cmmsn_percent": "0.00",
"selected_contacts": 0,
"dob": null,
"gender": null,
"marital_status": null,
"blood_group": null,
"contact_number": null,
"fb_link": null,
"twitter_link": null,
"social_media_1": null,
"social_media_2": null,
"permanent_address": null,
"current_address": null,
"guardian_name": null,
"custom_field_1": null,
"custom_field_2": null,
"custom_field_3": null,
"custom_field_4": null,
"bank_details": null,
"id_proof_name": null,
"id_proof_number": null,
"deleted_at": null,
"created_at": "2018-01-04 02:15:19",
"updated_at": "2018-01-04 02:15:19"
}
]
}
Received response:
Request failed with error:
Update user password.
requires authentication
Example request:
curl --request POST \
"https://pos.ultimatefosters.com/connector/api/update-password" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"current_password\": \"quaerat\",
\"new_password\": \"velit\"
}"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/update-password"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"current_password": "quaerat",
"new_password": "velit"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://pos.ultimatefosters.com/connector/api/update-password',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'current_password' => 'quaerat',
'new_password' => 'velit',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": 1,
"msg": "Password updated successfully"
}
Received response:
Request failed with error:
Recover forgotten password.
requires authentication
Example request:
curl --request POST \
"https://pos.ultimatefosters.com/connector/api/forget-password" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"email\": \"[email protected]\"
}"
const url = new URL(
"https://pos.ultimatefosters.com/connector/api/forget-password"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"email": "[email protected]"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://pos.ultimatefosters.com/connector/api/forget-password',
[
'headers' => [
'Authorization' => 'Bearer {access_token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'email' => '[email protected]',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": 1,
"msg": "New password sent to [email protected] successfully"
}
Received response:
Request failed with error: