Skip to content

Final POS API (1.2.4)

Welcome to the Final POS Public API—your playground for crafting the checkout and kiosk flows you want. Create your API keys in Manage (Settings > API Keys) and send them as x-api-key on every request. Customer endpoints use dynamic DTO generation so they adapt to your custom tables in real time, while the rest of the controllers follow a stable, static contract for predictable integrations.

Download OpenAPI description
Overview
License
Languages
Servers
Mock server
https://docs.finalpos.com/_mock/openapi
Official API
https://api.finalpos.com

Data Transfer Objects (DTOs)

Schemas

Customer

Operations

Create a new customer

Request

Creates a new customer record.

Security
X-Api-Key
Bodyapplication/jsonrequired
emailstringrequired

Email address of the Customer.

Example: "customer@example.com"
firstNamestringrequired

First name of the Customer.

Example: "John"
lastNamestringrequired

Last name of the Customer.

Example: "Doe"
outletIdstring

Outlet ID associated with the Customer.

Example: "o1p2q3r4s5t6u7v8w9x0y1z2"
externalIdstring

External ID associated with the Customer when synced from external source. If present, it will set fromFinal to true.

Example: "o1p2q3r4s5t6u7v8w9x0y1z2"
phonestring

Phone number of the Customer.

Example: "+1234567890"
totalSpentstring

Total amount spent by the Customer.

Example: "1000.50"
lastActionstring

Timestamp when the Customer was last actioned.

Example: "2025-12-07T19:31:48.436+00:00"
tagsArray of strings

Tags associated with the Customer.

Example: ["vip","loyal","premium"]
billingobject

Billing address associated with the Customer.

Example: {"firstName":"John","lastName":"Doe","address1":"123 Main St","address2":"Suite 100","city":"New York","state":"NY","country":"USA","postCode":"10001"}
shippingobject

Shipping address associated with the Customer.

Example: {"firstName":"John","lastName":"Doe","address1":"123 Main St","address2":"Suite 100","city":"New York","state":"NY","country":"USA","postCode":"10001"}
metadataArray of objects(MetadataDto)

Metadata associated with the Customer.

Example: [{"key":"key1","value":"value1"},{"key":"key2","value":"value2"}]
notesArray of objects(NoteDto)

Notes associated with the Customer.

Example: [{"createdAt":"2025-12-07T19:31:48.436+00:00","message":"Note 1"}]
curl -i -X POST \
  https://docs.finalpos.com/_mock/openapi/v1/api/customer \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -d '{
    "email": "customer@example.com",
    "firstName": "John",
    "lastName": "Doe",
    "outletId": "o1p2q3r4s5t6u7v8w9x0y1z2",
    "externalId": "o1p2q3r4s5t6u7v8w9x0y1z2",
    "phone": "+1234567890",
    "totalSpent": "1000.50",
    "lastAction": "2025-12-07T19:31:48.436+00:00",
    "tags": [
      "vip",
      "loyal",
      "premium"
    ],
    "billing": {
      "firstName": "John",
      "lastName": "Doe",
      "address1": "123 Main St",
      "address2": "Suite 100",
      "city": "New York",
      "state": "NY",
      "country": "USA",
      "postCode": "10001"
    },
    "shipping": {
      "firstName": "John",
      "lastName": "Doe",
      "address1": "123 Main St",
      "address2": "Suite 100",
      "city": "New York",
      "state": "NY",
      "country": "USA",
      "postCode": "10001"
    },
    "metadata": [
      {
        "key": "key1",
        "value": "value1"
      },
      {
        "key": "key2",
        "value": "value2"
      }
    ],
    "notes": [
      {
        "createdAt": "2025-12-07T19:31:48.436+00:00",
        "message": "Note 1"
      }
    ]
  }'

Responses

The customer has been successfully created.

Bodyapplication/json
idstring

Unique identifier for the Customer.

Example: "o1p2q3r4s5t6u7v8w9x0y1z2"
createdAtstring(date-time)

Timestamp when the Customer was created.

Example: "2025-12-07T19:31:48.436+00:00"
updatedAtstring(date-time)

Timestamp when the Customer was last updated.

Example: "2025-12-07T19:35:48.436+00:00"
companyIdstring

Company ID associated with the Customer.

Example: "o1p2q3r4s5t6u7v8w9x0y1z2"
emailstring

Email address of the Customer.

Example: "customer@example.com"
firstNamestring

First name of the Customer.

Example: "John"
lastNamestring

Last name of the Customer.

Example: "Doe"
fromFinalboolean

Flag to indicate if the Customer is created from Final.

Example: false
outletIdstring

Outlet ID associated with the Customer.

Example: "o1p2q3r4s5t6u7v8w9x0y1z2"
externalIdstring

External ID associated with the Customer when synced from external source. If present, it will set fromFinal to true.

Example: "o1p2q3r4s5t6u7v8w9x0y1z2"
phonestring

Phone number of the Customer.

Example: "+1234567890"
totalSpentstring

Total amount spent by the Customer.

Example: "1000.50"
lastActionstring(date-time)

Timestamp when the Customer was last actioned.

Example: "2025-12-07T19:31:48.436+00:00"
tagsArray of strings

Tags associated with the Customer.

Example: ["vip","loyal","premium"]
billingobject

Billing address associated with the Customer.

Example: {"firstName":"John","lastName":"Doe","address1":"123 Main St","address2":"Suite 100","city":"New York","state":"NY","country":"USA","postCode":"10001"}
shippingobject

Shipping address associated with the Customer.

Example: {"firstName":"John","lastName":"Doe","address1":"123 Main St","address2":"Suite 100","city":"New York","state":"NY","country":"USA","postCode":"10001"}
metadataArray of objects(MetadataDto)

Metadata associated with the Customer.

Example: [{"key":"key1","value":"value1"},{"key":"key2","value":"value2"}]
notesArray of objects(NoteDto)

Notes associated with the Customer.

Example: [{"createdAt":"2025-12-07T19:31:48.436+00:00","message":"Note 1"}]
Response
application/json
{ "id": "o1p2q3r4s5t6u7v8w9x0y1z2", "createdAt": "2025-12-07T19:31:48.436+00:00", "updatedAt": "2025-12-07T19:35:48.436+00:00", "companyId": "o1p2q3r4s5t6u7v8w9x0y1z2", "email": "customer@example.com", "firstName": "John", "lastName": "Doe", "fromFinal": false, "outletId": "o1p2q3r4s5t6u7v8w9x0y1z2", "externalId": "o1p2q3r4s5t6u7v8w9x0y1z2", "phone": "+1234567890", "totalSpent": "1000.50", "lastAction": "2025-12-07T19:31:48.436+00:00", "tags": [ "vip", "loyal", "premium" ], "billing": { "firstName": "John", "lastName": "Doe", "address1": "123 Main St", "address2": "Suite 100", "city": "New York", "state": "NY", "country": "USA", "postCode": "10001" }, "shipping": { "firstName": "John", "lastName": "Doe", "address1": "123 Main St", "address2": "Suite 100", "city": "New York", "state": "NY", "country": "USA", "postCode": "10001" }, "metadata": [ { … }, { … } ], "notes": [ { … } ] }

Get a customer by ID

Request

Retrieves a single customer by its unique identifier.

Security
X-Api-Key
Path
idstringrequired

Customer ID

curl -i -X GET \
  'https://docs.finalpos.com/_mock/openapi/v1/api/customer/{id}' \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

The customer has been successfully retrieved.

Bodyapplication/json
idstring

Unique identifier for the Customer.

Example: "o1p2q3r4s5t6u7v8w9x0y1z2"
createdAtstring(date-time)

Timestamp when the Customer was created.

Example: "2025-12-07T19:31:48.436+00:00"
updatedAtstring(date-time)

Timestamp when the Customer was last updated.

Example: "2025-12-07T19:35:48.436+00:00"
companyIdstring

Company ID associated with the Customer.

Example: "o1p2q3r4s5t6u7v8w9x0y1z2"
emailstring

Email address of the Customer.

Example: "customer@example.com"
firstNamestring

First name of the Customer.

Example: "John"
lastNamestring

Last name of the Customer.

Example: "Doe"
fromFinalboolean

Flag to indicate if the Customer is created from Final.

Example: false
outletIdstring

Outlet ID associated with the Customer.

Example: "o1p2q3r4s5t6u7v8w9x0y1z2"
externalIdstring

External ID associated with the Customer when synced from external source. If present, it will set fromFinal to true.

Example: "o1p2q3r4s5t6u7v8w9x0y1z2"
phonestring

Phone number of the Customer.

Example: "+1234567890"
totalSpentstring

Total amount spent by the Customer.

Example: "1000.50"
lastActionstring(date-time)

Timestamp when the Customer was last actioned.

Example: "2025-12-07T19:31:48.436+00:00"
tagsArray of strings

Tags associated with the Customer.

Example: ["vip","loyal","premium"]
billingobject

Billing address associated with the Customer.

Example: {"firstName":"John","lastName":"Doe","address1":"123 Main St","address2":"Suite 100","city":"New York","state":"NY","country":"USA","postCode":"10001"}
shippingobject

Shipping address associated with the Customer.

Example: {"firstName":"John","lastName":"Doe","address1":"123 Main St","address2":"Suite 100","city":"New York","state":"NY","country":"USA","postCode":"10001"}
metadataArray of objects(MetadataDto)

Metadata associated with the Customer.

Example: [{"key":"key1","value":"value1"},{"key":"key2","value":"value2"}]
notesArray of objects(NoteDto)

Notes associated with the Customer.

Example: [{"createdAt":"2025-12-07T19:31:48.436+00:00","message":"Note 1"}]
Response
application/json
{ "id": "o1p2q3r4s5t6u7v8w9x0y1z2", "createdAt": "2025-12-07T19:31:48.436+00:00", "updatedAt": "2025-12-07T19:35:48.436+00:00", "companyId": "o1p2q3r4s5t6u7v8w9x0y1z2", "email": "customer@example.com", "firstName": "John", "lastName": "Doe", "fromFinal": false, "outletId": "o1p2q3r4s5t6u7v8w9x0y1z2", "externalId": "o1p2q3r4s5t6u7v8w9x0y1z2", "phone": "+1234567890", "totalSpent": "1000.50", "lastAction": "2025-12-07T19:31:48.436+00:00", "tags": [ "vip", "loyal", "premium" ], "billing": { "firstName": "John", "lastName": "Doe", "address1": "123 Main St", "address2": "Suite 100", "city": "New York", "state": "NY", "country": "USA", "postCode": "10001" }, "shipping": { "firstName": "John", "lastName": "Doe", "address1": "123 Main St", "address2": "Suite 100", "city": "New York", "state": "NY", "country": "USA", "postCode": "10001" }, "metadata": [ { … }, { … } ], "notes": [ { … } ] }

Update a customer by ID

Request

Updates an existing customer record.

Security
X-Api-Key
Path
idstringrequired

Customer ID

Bodyapplication/jsonrequired
emailstring

Email address of the Customer.

Example: "customer@example.com"
firstNamestring

First name of the Customer.

Example: "John"
lastNamestring

Last name of the Customer.

Example: "Doe"
outletIdstring

Outlet ID associated with the Customer.

Example: "o1p2q3r4s5t6u7v8w9x0y1z2"
externalIdstring

External ID associated with the Customer when synced from external source. If present, it will set fromFinal to true.

Example: "o1p2q3r4s5t6u7v8w9x0y1z2"
phonestring

Phone number of the Customer.

Example: "+1234567890"
totalSpentstring

Total amount spent by the Customer.

Example: "1000.50"
lastActionstring

Timestamp when the Customer was last actioned.

Example: "2025-12-07T19:31:48.436+00:00"
tagsArray of strings

Tags associated with the Customer.

Example: ["vip","loyal","premium"]
billingobject

Billing address associated with the Customer.

Example: {"firstName":"John","lastName":"Doe","address1":"123 Main St","address2":"Suite 100","city":"New York","state":"NY","country":"USA","postCode":"10001"}
shippingobject

Shipping address associated with the Customer.

Example: {"firstName":"John","lastName":"Doe","address1":"123 Main St","address2":"Suite 100","city":"New York","state":"NY","country":"USA","postCode":"10001"}
metadataArray of objects(MetadataDto)

Metadata associated with the Customer.

Example: [{"key":"key1","value":"value1"},{"key":"key2","value":"value2"}]
notesArray of objects(NoteDto)

Notes associated with the Customer.

Example: [{"createdAt":"2025-12-07T19:31:48.436+00:00","message":"Note 1"}]
curl -i -X PUT \
  'https://docs.finalpos.com/_mock/openapi/v1/api/customer/{id}' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -d '{
    "email": "customer@example.com",
    "firstName": "John",
    "lastName": "Doe",
    "outletId": "o1p2q3r4s5t6u7v8w9x0y1z2",
    "externalId": "o1p2q3r4s5t6u7v8w9x0y1z2",
    "phone": "+1234567890",
    "totalSpent": "1000.50",
    "lastAction": "2025-12-07T19:31:48.436+00:00",
    "tags": [
      "vip",
      "loyal",
      "premium"
    ],
    "billing": {
      "firstName": "John",
      "lastName": "Doe",
      "address1": "123 Main St",
      "address2": "Suite 100",
      "city": "New York",
      "state": "NY",
      "country": "USA",
      "postCode": "10001"
    },
    "shipping": {
      "firstName": "John",
      "lastName": "Doe",
      "address1": "123 Main St",
      "address2": "Suite 100",
      "city": "New York",
      "state": "NY",
      "country": "USA",
      "postCode": "10001"
    },
    "metadata": [
      {
        "key": "key1",
        "value": "value1"
      },
      {
        "key": "key2",
        "value": "value2"
      }
    ],
    "notes": [
      {
        "createdAt": "2025-12-07T19:31:48.436+00:00",
        "message": "Note 1"
      }
    ]
  }'

Responses

The customer has been successfully updated.

Bodyapplication/json
idstring

Unique identifier for the Customer.

Example: "o1p2q3r4s5t6u7v8w9x0y1z2"
createdAtstring(date-time)

Timestamp when the Customer was created.

Example: "2025-12-07T19:31:48.436+00:00"
updatedAtstring(date-time)

Timestamp when the Customer was last updated.

Example: "2025-12-07T19:35:48.436+00:00"
companyIdstring

Company ID associated with the Customer.

Example: "o1p2q3r4s5t6u7v8w9x0y1z2"
emailstring

Email address of the Customer.

Example: "customer@example.com"
firstNamestring

First name of the Customer.

Example: "John"
lastNamestring

Last name of the Customer.

Example: "Doe"
fromFinalboolean

Flag to indicate if the Customer is created from Final.

Example: false
outletIdstring

Outlet ID associated with the Customer.

Example: "o1p2q3r4s5t6u7v8w9x0y1z2"
externalIdstring

External ID associated with the Customer when synced from external source. If present, it will set fromFinal to true.

Example: "o1p2q3r4s5t6u7v8w9x0y1z2"
phonestring

Phone number of the Customer.

Example: "+1234567890"
totalSpentstring

Total amount spent by the Customer.

Example: "1000.50"
lastActionstring(date-time)

Timestamp when the Customer was last actioned.

Example: "2025-12-07T19:31:48.436+00:00"
tagsArray of strings

Tags associated with the Customer.

Example: ["vip","loyal","premium"]
billingobject

Billing address associated with the Customer.

Example: {"firstName":"John","lastName":"Doe","address1":"123 Main St","address2":"Suite 100","city":"New York","state":"NY","country":"USA","postCode":"10001"}
shippingobject

Shipping address associated with the Customer.

Example: {"firstName":"John","lastName":"Doe","address1":"123 Main St","address2":"Suite 100","city":"New York","state":"NY","country":"USA","postCode":"10001"}
metadataArray of objects(MetadataDto)

Metadata associated with the Customer.

Example: [{"key":"key1","value":"value1"},{"key":"key2","value":"value2"}]
notesArray of objects(NoteDto)

Notes associated with the Customer.

Example: [{"createdAt":"2025-12-07T19:31:48.436+00:00","message":"Note 1"}]
Response
application/json
{ "id": "o1p2q3r4s5t6u7v8w9x0y1z2", "createdAt": "2025-12-07T19:31:48.436+00:00", "updatedAt": "2025-12-07T19:35:48.436+00:00", "companyId": "o1p2q3r4s5t6u7v8w9x0y1z2", "email": "customer@example.com", "firstName": "John", "lastName": "Doe", "fromFinal": false, "outletId": "o1p2q3r4s5t6u7v8w9x0y1z2", "externalId": "o1p2q3r4s5t6u7v8w9x0y1z2", "phone": "+1234567890", "totalSpent": "1000.50", "lastAction": "2025-12-07T19:31:48.436+00:00", "tags": [ "vip", "loyal", "premium" ], "billing": { "firstName": "John", "lastName": "Doe", "address1": "123 Main St", "address2": "Suite 100", "city": "New York", "state": "NY", "country": "USA", "postCode": "10001" }, "shipping": { "firstName": "John", "lastName": "Doe", "address1": "123 Main St", "address2": "Suite 100", "city": "New York", "state": "NY", "country": "USA", "postCode": "10001" }, "metadata": [ { … }, { … } ], "notes": [ { … } ] }

Delete a customer by ID

Request

Deletes a customer by its unique identifier.

Security
X-Api-Key
Path
idstringrequired

Customer ID

curl -i -X DELETE \
  'https://docs.finalpos.com/_mock/openapi/v1/api/customer/{id}' \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

The customer has been successfully deleted.

Bodyapplication/json
statusCodenumberrequired

HTTP status code

Example: 200
messagestringrequired

Message describing the result of the operation

Example: "Resource with Id 123 deleted successfully"
Response
application/json
{ "statusCode": 200, "message": "Resource with Id 123 deleted successfully" }

Customers

Operations

Custom Tables: structure

Operations

Custom Table: content

Operations

Custom Tables: content

Operations

Product

Operations

Products

Operations

Outlet

Operations

Outlets

Operations

Category

Operations

Categories

Operations

Station

Operations

Stations

Operations

Variant

Operations

Variants

Operations

Order

Operations

Orders

Operations

Transactions

Operations

Roles

Operations

Attachment

Operations

Account

Operations

Refunds

Operations

Session

Operations

ZapierTriggers

Operations