curl --request POST \
--url https://api.salesive.com/api/v1/orders/pos \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"items": [
{
"_id": "6699aabbccddeeff00112233",
"name": "Wireless Earbuds",
"price": 24990,
"promoPrice": 19990,
"qty": 2,
"sku": "WE-BLK-01",
"images": [
"https://cdn.salesive.com/p/earbuds.jpg"
]
}
],
"discount": 1000,
"tax": 500,
"paymentMethod": "cash",
"customerName": "Walk-in Customer",
"customerEmail": "walkin@example.com",
"customerPhone": "+2348012345678",
"additionalInfo": [
{
"label": "Loyalty card",
"value": "GOLD-8842"
}
]
}
'import requests
url = "https://api.salesive.com/api/v1/orders/pos"
payload = {
"items": [
{
"_id": "6699aabbccddeeff00112233",
"name": "Wireless Earbuds",
"price": 24990,
"promoPrice": 19990,
"qty": 2,
"sku": "WE-BLK-01",
"images": ["https://cdn.salesive.com/p/earbuds.jpg"]
}
],
"discount": 1000,
"tax": 500,
"paymentMethod": "cash",
"customerName": "Walk-in Customer",
"customerEmail": "walkin@example.com",
"customerPhone": "+2348012345678",
"additionalInfo": [
{
"label": "Loyalty card",
"value": "GOLD-8842"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
items: [
{
_id: '6699aabbccddeeff00112233',
name: 'Wireless Earbuds',
price: 24990,
promoPrice: 19990,
qty: 2,
sku: 'WE-BLK-01',
images: ['https://cdn.salesive.com/p/earbuds.jpg']
}
],
discount: 1000,
tax: 500,
paymentMethod: 'cash',
customerName: 'Walk-in Customer',
customerEmail: 'walkin@example.com',
customerPhone: '+2348012345678',
additionalInfo: [{label: 'Loyalty card', value: 'GOLD-8842'}]
})
};
fetch('https://api.salesive.com/api/v1/orders/pos', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.salesive.com/api/v1/orders/pos",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'items' => [
[
'_id' => '6699aabbccddeeff00112233',
'name' => 'Wireless Earbuds',
'price' => 24990,
'promoPrice' => 19990,
'qty' => 2,
'sku' => 'WE-BLK-01',
'images' => [
'https://cdn.salesive.com/p/earbuds.jpg'
]
]
],
'discount' => 1000,
'tax' => 500,
'paymentMethod' => 'cash',
'customerName' => 'Walk-in Customer',
'customerEmail' => 'walkin@example.com',
'customerPhone' => '+2348012345678',
'additionalInfo' => [
[
'label' => 'Loyalty card',
'value' => 'GOLD-8842'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.salesive.com/api/v1/orders/pos"
payload := strings.NewReader("{\n \"items\": [\n {\n \"_id\": \"6699aabbccddeeff00112233\",\n \"name\": \"Wireless Earbuds\",\n \"price\": 24990,\n \"promoPrice\": 19990,\n \"qty\": 2,\n \"sku\": \"WE-BLK-01\",\n \"images\": [\n \"https://cdn.salesive.com/p/earbuds.jpg\"\n ]\n }\n ],\n \"discount\": 1000,\n \"tax\": 500,\n \"paymentMethod\": \"cash\",\n \"customerName\": \"Walk-in Customer\",\n \"customerEmail\": \"walkin@example.com\",\n \"customerPhone\": \"+2348012345678\",\n \"additionalInfo\": [\n {\n \"label\": \"Loyalty card\",\n \"value\": \"GOLD-8842\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.salesive.com/api/v1/orders/pos")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"items\": [\n {\n \"_id\": \"6699aabbccddeeff00112233\",\n \"name\": \"Wireless Earbuds\",\n \"price\": 24990,\n \"promoPrice\": 19990,\n \"qty\": 2,\n \"sku\": \"WE-BLK-01\",\n \"images\": [\n \"https://cdn.salesive.com/p/earbuds.jpg\"\n ]\n }\n ],\n \"discount\": 1000,\n \"tax\": 500,\n \"paymentMethod\": \"cash\",\n \"customerName\": \"Walk-in Customer\",\n \"customerEmail\": \"walkin@example.com\",\n \"customerPhone\": \"+2348012345678\",\n \"additionalInfo\": [\n {\n \"label\": \"Loyalty card\",\n \"value\": \"GOLD-8842\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.salesive.com/api/v1/orders/pos")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"items\": [\n {\n \"_id\": \"6699aabbccddeeff00112233\",\n \"name\": \"Wireless Earbuds\",\n \"price\": 24990,\n \"promoPrice\": 19990,\n \"qty\": 2,\n \"sku\": \"WE-BLK-01\",\n \"images\": [\n \"https://cdn.salesive.com/p/earbuds.jpg\"\n ]\n }\n ],\n \"discount\": 1000,\n \"tax\": 500,\n \"paymentMethod\": \"cash\",\n \"customerName\": \"Walk-in Customer\",\n \"customerEmail\": \"walkin@example.com\",\n \"customerPhone\": \"+2348012345678\",\n \"additionalInfo\": [\n {\n \"label\": \"Loyalty card\",\n \"value\": \"GOLD-8842\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": 201,
"success": true,
"message": "POS order created successfully",
"data": {
"_id": "66b2010a1b2c3d4e5f60718a",
"orderId": 1043,
"user": "66a0c1d2e3f4a5b6c7d8e9f0",
"shop": "6680aabbccddeeff00112200",
"items": [
{
"_id": "66b2010a1b2c3d4e5f60718b",
"product": "6699aabbccddeeff00112233",
"variant": null,
"name": "Wireless Earbuds",
"sku": "WE-BLK-01",
"price": 19990,
"quantity": 2,
"variantAttributes": {},
"imageUrl": "https://cdn.salesive.com/p/earbuds.jpg"
}
],
"subtotal": 39980,
"discount": 1000,
"tax": 500,
"shippingCost": 0,
"status": "paid",
"source": "pos",
"paymentMethod": "cash",
"posCustomerName": "Walk-in Customer",
"posCustomerEmail": "walkin@example.com",
"posCustomerPhone": "+2348012345678",
"payment": "66b2010a1b2c3d4e5f607180",
"total": 39480,
"createdAt": "2026-06-21T11:00:00.000Z",
"updatedAt": "2026-06-21T11:00:00.000Z"
}
}{
"status": 401,
"success": false,
"message": "Authentication required",
"data": null
}{
"status": 403,
"success": false,
"message": "Insufficient scope",
"data": null
}Create a POS order
Create an in-person point-of-sale order, marked paid with a payment record created automatically. Requires the WRITE_ORDERS scope.
curl --request POST \
--url https://api.salesive.com/api/v1/orders/pos \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"items": [
{
"_id": "6699aabbccddeeff00112233",
"name": "Wireless Earbuds",
"price": 24990,
"promoPrice": 19990,
"qty": 2,
"sku": "WE-BLK-01",
"images": [
"https://cdn.salesive.com/p/earbuds.jpg"
]
}
],
"discount": 1000,
"tax": 500,
"paymentMethod": "cash",
"customerName": "Walk-in Customer",
"customerEmail": "walkin@example.com",
"customerPhone": "+2348012345678",
"additionalInfo": [
{
"label": "Loyalty card",
"value": "GOLD-8842"
}
]
}
'import requests
url = "https://api.salesive.com/api/v1/orders/pos"
payload = {
"items": [
{
"_id": "6699aabbccddeeff00112233",
"name": "Wireless Earbuds",
"price": 24990,
"promoPrice": 19990,
"qty": 2,
"sku": "WE-BLK-01",
"images": ["https://cdn.salesive.com/p/earbuds.jpg"]
}
],
"discount": 1000,
"tax": 500,
"paymentMethod": "cash",
"customerName": "Walk-in Customer",
"customerEmail": "walkin@example.com",
"customerPhone": "+2348012345678",
"additionalInfo": [
{
"label": "Loyalty card",
"value": "GOLD-8842"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
items: [
{
_id: '6699aabbccddeeff00112233',
name: 'Wireless Earbuds',
price: 24990,
promoPrice: 19990,
qty: 2,
sku: 'WE-BLK-01',
images: ['https://cdn.salesive.com/p/earbuds.jpg']
}
],
discount: 1000,
tax: 500,
paymentMethod: 'cash',
customerName: 'Walk-in Customer',
customerEmail: 'walkin@example.com',
customerPhone: '+2348012345678',
additionalInfo: [{label: 'Loyalty card', value: 'GOLD-8842'}]
})
};
fetch('https://api.salesive.com/api/v1/orders/pos', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.salesive.com/api/v1/orders/pos",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'items' => [
[
'_id' => '6699aabbccddeeff00112233',
'name' => 'Wireless Earbuds',
'price' => 24990,
'promoPrice' => 19990,
'qty' => 2,
'sku' => 'WE-BLK-01',
'images' => [
'https://cdn.salesive.com/p/earbuds.jpg'
]
]
],
'discount' => 1000,
'tax' => 500,
'paymentMethod' => 'cash',
'customerName' => 'Walk-in Customer',
'customerEmail' => 'walkin@example.com',
'customerPhone' => '+2348012345678',
'additionalInfo' => [
[
'label' => 'Loyalty card',
'value' => 'GOLD-8842'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.salesive.com/api/v1/orders/pos"
payload := strings.NewReader("{\n \"items\": [\n {\n \"_id\": \"6699aabbccddeeff00112233\",\n \"name\": \"Wireless Earbuds\",\n \"price\": 24990,\n \"promoPrice\": 19990,\n \"qty\": 2,\n \"sku\": \"WE-BLK-01\",\n \"images\": [\n \"https://cdn.salesive.com/p/earbuds.jpg\"\n ]\n }\n ],\n \"discount\": 1000,\n \"tax\": 500,\n \"paymentMethod\": \"cash\",\n \"customerName\": \"Walk-in Customer\",\n \"customerEmail\": \"walkin@example.com\",\n \"customerPhone\": \"+2348012345678\",\n \"additionalInfo\": [\n {\n \"label\": \"Loyalty card\",\n \"value\": \"GOLD-8842\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.salesive.com/api/v1/orders/pos")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"items\": [\n {\n \"_id\": \"6699aabbccddeeff00112233\",\n \"name\": \"Wireless Earbuds\",\n \"price\": 24990,\n \"promoPrice\": 19990,\n \"qty\": 2,\n \"sku\": \"WE-BLK-01\",\n \"images\": [\n \"https://cdn.salesive.com/p/earbuds.jpg\"\n ]\n }\n ],\n \"discount\": 1000,\n \"tax\": 500,\n \"paymentMethod\": \"cash\",\n \"customerName\": \"Walk-in Customer\",\n \"customerEmail\": \"walkin@example.com\",\n \"customerPhone\": \"+2348012345678\",\n \"additionalInfo\": [\n {\n \"label\": \"Loyalty card\",\n \"value\": \"GOLD-8842\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.salesive.com/api/v1/orders/pos")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"items\": [\n {\n \"_id\": \"6699aabbccddeeff00112233\",\n \"name\": \"Wireless Earbuds\",\n \"price\": 24990,\n \"promoPrice\": 19990,\n \"qty\": 2,\n \"sku\": \"WE-BLK-01\",\n \"images\": [\n \"https://cdn.salesive.com/p/earbuds.jpg\"\n ]\n }\n ],\n \"discount\": 1000,\n \"tax\": 500,\n \"paymentMethod\": \"cash\",\n \"customerName\": \"Walk-in Customer\",\n \"customerEmail\": \"walkin@example.com\",\n \"customerPhone\": \"+2348012345678\",\n \"additionalInfo\": [\n {\n \"label\": \"Loyalty card\",\n \"value\": \"GOLD-8842\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": 201,
"success": true,
"message": "POS order created successfully",
"data": {
"_id": "66b2010a1b2c3d4e5f60718a",
"orderId": 1043,
"user": "66a0c1d2e3f4a5b6c7d8e9f0",
"shop": "6680aabbccddeeff00112200",
"items": [
{
"_id": "66b2010a1b2c3d4e5f60718b",
"product": "6699aabbccddeeff00112233",
"variant": null,
"name": "Wireless Earbuds",
"sku": "WE-BLK-01",
"price": 19990,
"quantity": 2,
"variantAttributes": {},
"imageUrl": "https://cdn.salesive.com/p/earbuds.jpg"
}
],
"subtotal": 39980,
"discount": 1000,
"tax": 500,
"shippingCost": 0,
"status": "paid",
"source": "pos",
"paymentMethod": "cash",
"posCustomerName": "Walk-in Customer",
"posCustomerEmail": "walkin@example.com",
"posCustomerPhone": "+2348012345678",
"payment": "66b2010a1b2c3d4e5f607180",
"total": 39480,
"createdAt": "2026-06-21T11:00:00.000Z",
"updatedAt": "2026-06-21T11:00:00.000Z"
}
}{
"status": 401,
"success": false,
"message": "Authentication required",
"data": null
}{
"status": 403,
"success": false,
"message": "Insufficient scope",
"data": null
}pos, marked paid, computing totals as subtotal − discount + tax. The store is bound to your app token server-side — never send a shop id.
Pass additionalInfo — a list of custom labelled { label, value } entries (e.g. a loyalty card number or note) — to attach up to 50 custom fields to the order.Authorizations
Installed-app access token (prefix app_), issued by the OAuth install flow. The store is bound to the token server-side — never send a shop id.
Body
Line items (at least one).
1Show child attributes
Show child attributes
Order-level discount amount.
x >= 0Order-level tax amount.
x >= 0Payment method used at the point of sale.
cash, card, transfer, other Walk-in customer name (optional).
Walk-in customer email (optional, validated as an email when provided).
Walk-in customer phone (optional).
Custom labelled key/value info to attach to the order (optional, max 50 entries).
50Show child attributes
Show child attributes
Response
The created POS order.
Standard Salesive response envelope. The operation-specific payload is carried in data.
Was this page helpful?

