Skip to content

Clopos client API Reference

Note

Below shown examples are for sync requests. To use async requests, just import async client, and call same-name functions with await:

from integrify.clopos import CloposAsyncRequest

integrify.clopos.client.CloposRequest module-attribute

CloposRequest = CloposClientClass(sync=True)

integrify.clopos.client.CloposAsyncRequest module-attribute

CloposAsyncRequest = CloposClientClass(sync=False)
Note

These are already create class objects, considered for direct use. Otherwise, you should create instance at every call, such as: CloposClientClass().auth()

integrify.clopos.client.CloposClientClass

CloposClientClass(name='Clopos', base_url=BASE_URL, default_handler=None, sync=True, dry=False)

Bases: APIClient

Base class for CloposClient

auth

auth(client_id=UNSET, client_secret=UNSET, brand=UNSET, venue_id=UNSET)

Exchange your client credentials for a short-lived access token that authorizes all other API requests.

Endpoint: POST /open-api/auth

Example:

from integrify.clopos import CloposClient

CloposClient.auth(
    client_id='eNUKI04aYJRU6TBhh5bwUrvmEORgQoxM',
    client_secret='dqYkWUpDjzvKOgbP3ar8tSNKJbwMyYe1V5R7DHClfSNYkap5C5XxRA6PmzoPv1I2',
    brand='openapitest',
    venue_id='1'
)

# Or if you have set the environment variables
CloposClient.auth(headers={'x-token': 'token'})

Response format: AuthResponse

This request returns you a token for subsequent API calls which is valid for one hour.

PARAMETER DESCRIPTION
client_id

Client ID provided by Clopos. Can be set in environment variable CLOPOS_CLIENT_ID

TYPE: Unset[str] DEFAULT: UNSET

client_secret

Client secret provided by Clopos. Can be set in environment variable CLOPOS_CLIENT_SECRET

TYPE: Unset[str] DEFAULT: UNSET

brand

Brand you want to authenticate. Can be set in environment variable CLOPOS_BRAND

TYPE: Unset[str] DEFAULT: UNSET

venue_id

Venue ID you want to authenticate. Can be set in environment variable CLOPOS_VENUE_ID

TYPE: Unset[str] DEFAULT: UNSET

get_venues

get_venues(page=UNSET, limit=UNSET, *, headers=UNSET)

Allows you to quickly retrieve active branches connected to your brand to initiate location-based operations.

Endpoint: GET /open-api/venues

Example:

from integrify.clopos import CloposClient

CloposClient.get_venues(headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.get_venues(headers={'x-token': 'token'})

Response format: ObjectListResponse[Venue]

PARAMETER DESCRIPTION
page

Page number for pagination (starts at 1)

TYPE: Unset[int] DEFAULT: UNSET

limit

Maximum number of objects to return (1-100)

TYPE: Unset[int] DEFAULT: UNSET

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

get_users

get_users(page=UNSET, limit=UNSET, *, headers=UNSET)

Use this endpoint to inspect staff accounts, roles, and access levels across your venues.

Endpoint: GET /open-api/users

Example:

from integrify.clopos import CloposClient

CloposClient.get_users(headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.get_users(headers={'x-token': 'token'})

Response format: ObjectListResponse[User]

PARAMETER DESCRIPTION
page

Page number for pagination (starts at 1)

TYPE: Unset[int] DEFAULT: UNSET

limit

Maximum number of objects to return (1-100)

TYPE: Unset[int] DEFAULT: UNSET

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

get_user_by_id

get_user_by_id(id, *, headers=UNSET)

Retrieve a specific user by their unique identifier.

Endpoint: GET /open-api/users/{id}

Example:

from integrify.clopos import CloposClient

CloposClient.get_user_by_id(1, headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.get_user_by_id(id=1, headers={'x-token': 'token'})

Response format: ObjectResponse[User]

PARAMETER DESCRIPTION
id

User ID

TYPE: int

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

get_customers

get_customers(page=1, limit=20, with_=UNSET, filter_bys=UNSET, filter_values=UNSET, *, headers=UNSET)

Retrieve all customers with optional search, pagination, filtering, and relationship inclusion

Endpoint: GET /open-api/customers

Example:

from integrify.clopos import CloposClient

CloposClient.get_customers(headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.get_customers(headers={'x-token': 'token'})

Response format: ObjectListResponse[Customer]

PARAMETER DESCRIPTION
page

Page number for pagination (starts at 1)

TYPE: Unset[int] DEFAULT: 1

limit

Maximum number of objects to return (1-100)

TYPE: Unset[int] DEFAULT: 20

with_

Include related data in the response. Supported values: group, balance, cashback_balance. You can include multiple with parameters.

TYPE: Unset[list[str]] DEFAULT: UNSET

filter_bys

Filter by specific fields. Supported values: name (partial match), phones, group_id.

TYPE: Unset[list[str]] DEFAULT: UNSET

filter_values

Filter values matching the filter_bys

TYPE: Unset[list[str]] DEFAULT: UNSET

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

get_customer_by_id

get_customer_by_id(id, *, headers=UNSET)

Retrieve a specific customer by their unique identifier.

Endpoint: GET /open-api/customers/{id}

Example:

from integrify.clopos import CloposClient

CloposClient.get_customer_by_id(1, headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.get_customer_by_id(id=1, headers={'x-token': 'token'})

Response format: ObjectResponse[Customer]

PARAMETER DESCRIPTION
id

Customer ID

TYPE: int

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

get_customer_groups

get_customer_groups(page=UNSET, limit=UNSET, *, headers=UNSET)

Retrieve a list of all customer groups with pagination support.

Endpoint: GET /open-api/customer-groups

Example:

from integrify.clopos import CloposClient

CloposClient.get_customer_groups(headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.get_customer_groups(headers={'x-token': 'token'})

Response format: ObjectListResponse[Group]

PARAMETER DESCRIPTION
page

Page number for pagination (starts at 1)

TYPE: Unset[int] DEFAULT: UNSET

limit

Maximum number of objects to return (1-100)

TYPE: Unset[int] DEFAULT: UNSET

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

get_categories

get_categories(page=1, limit=50, parent_id=UNSET, type=UNSET, include_children=True, include_inactive=False, *, headers=UNSET)

Retrieve product categories along with their hierarchical structure

Endpoint: GET /open-api/categories

Example:

from integrify.clopos import CloposClient

CloposClient.get_categories(headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.get_categories(headers={'x-token': 'token'})

Response format: ObjectListResponse[Category]

PARAMETER DESCRIPTION
page

Page number for pagination (starts at 1)

TYPE: Unset[int] DEFAULT: 1

limit

Number of categories to return (1-999)

TYPE: Unset[int] DEFAULT: 50

parent_id

Filters records under a specific parent category

TYPE: Unset[int] DEFAULT: UNSET

type

Category type; PRODUCT, INGREDIENT, ACCOUNTING

TYPE: Unset[CategoryType] DEFAULT: UNSET

include_children

Include child categories in the response

TYPE: Unset[bool] DEFAULT: True

include_inactive

Include inactive categories

TYPE: Unset[bool] DEFAULT: False

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

get_category_by_id

get_category_by_id(id, *, headers=UNSET)

Retrieve a specific menu category with its hierarchical details

Endpoint: GET /open-api/categories/{id}

Example:

from integrify.clopos import CloposClient

CloposClient.get_category_by_id(1, headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.get_category_by_id(id=1, headers={'x-token': 'token'})

Response format: ObjectResponse[Category]

PARAMETER DESCRIPTION
id

Category ID

TYPE: int

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

get_stations

get_stations(page=1, limit=50, status=UNSET, can_print=UNSET, *, headers=UNSET)

Retrieve all preparation and service stations

Endpoint: GET /open-api/stations

Example:

from integrify.clopos import CloposClient

CloposClient.get_stations(headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.get_stations(headers={'x-token': 'token'})

Response format: ObjectListResponse[Station]

PARAMETER DESCRIPTION
page

Page number for pagination (starts at 1)

TYPE: Unset[int] DEFAULT: 1

limit

Maximum number of objects to return (1-200)

TYPE: Unset[int] DEFAULT: 50

status

Filter by station status (1 = active, 0 = inactive)

TYPE: Unset[int] DEFAULT: UNSET

can_print

Filter stations that can redirect to a printer.

TYPE: Unset[bool] DEFAULT: UNSET

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

get_station_by_id

get_station_by_id(id, *, headers=UNSET)

Retrieve a specific preparation or service station

Endpoint: GET /open-api/stations/{id}

Example:

from integrify.clopos import CloposClient

CloposClient.get_station_by_id(1, headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.get_station_by_id(id=1, headers={'x-token': 'token'})

Response format: ObjectResponse[Station]

PARAMETER DESCRIPTION
id

Station ID

TYPE: int

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

get_products

get_products(page=1, limit=50, selects=UNSET, filters=UNSET, *, headers=UNSET)

Get the product catalog with advanced filtering and pagination.

Endpoint: GET /open-api/products

Example:

from integrify.clopos import CloposClient

CloposClient.get_products(headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.get_products(headers={'x-token': 'token'})

Response format: ObjectListResponse[Product]

PARAMETER DESCRIPTION
page

Page number for pagination (starts at 1)

TYPE: Unset[int] DEFAULT: 1

limit

Maximum number of objects to return (1-100)

TYPE: Unset[int] DEFAULT: 50

selects

Comma-separated string OR list of fields to include in the response. The fields id, name, and type are always included regardless of this parameter. Example: selects=id,name,type,price,image

TYPE: Unset[Union[str, list[str]]] DEFAULT: UNSET

filters
  • type: Filters by product type. Possible values: GOODS, DISH, TIMER, PREPARATION, INGREDIENT
  • category_id: Lists products belonging to the specified category IDs
  • station_id: Retrieves products assigned to the specified station IDs
  • tags: Filters for products with the specified tag IDs
  • giftable: Filters for products that are ("1") or are not giftable. Possible values: 1, 0, true, false
  • discountable: Filters for products that are ("1") or are not discountable. Possible values: 1, 0, true, false
  • inventory_behavior: Filters by inventory behavior mode (e.g., "3")
  • have_ingredients: Retrieves products that have a recipe/ingredients ("1"). Possible values: 1, 0, true, false
  • sold_by_portion: Lists products sold by portion ("1"). Possible values: 1, 0, true, false
  • has_variants: Lists products that have variants (modifications) ("1"). Possible values: 1, 0, true, false
  • has_modifiers: Retrieves products that have a modifier group (modificator_groups) ("1"). Possible values: 1, 0, true, false
  • has_barcode: Retrieves products that have a barcode ("1"). Possible values: 1, 0, true, false
  • has_service_charge: Lists products to which a service charge applies ("1"). Possible values: 1, 0, true, false

TYPE: Unset[GetProducstRequestFilter] DEFAULT: UNSET

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

get_product_by_id

get_product_by_id(id, with_=UNSET, *, headers=UNSET)

Retrieve a single product with type-specific details.

Endpoint: GET /open-api/products/{id}

Example:

from integrify.clopos import CloposClient

CloposClient.get_product_by_id(1, headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.get_product_by_id(id=1, headers={'x-token': 'token'})

Response format: ObjectResponse[Product]

PARAMETER DESCRIPTION
id

Product ID

TYPE: int

with_

Related data selector. Example: taxes, unit, modifications, modificator_groups, recipe, packages, media, tags, setting. You can include multiple with parameters

TYPE: Unset[list[str]] DEFAULT: UNSET

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

get_sale_types

get_sale_types(page=1, limit=20, *, headers=UNSET)

Retrieve a list of all available sale types.

Endpoint: GET /open-api/sale-types

Example:

from integrify.clopos import CloposClient

CloposClient.get_sale_types(headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.get_sale_types(headers={'x-token': 'token'})

Used by

Create Order: provide payload.service.sale_type_id and payload.service.venue_id Create Receipt: optionally include sale_type_id or meta.sale_type

Response format: ObjectListResponse[SaleType]

PARAMETER DESCRIPTION
page

Page number for pagination (starts at 1)

TYPE: Unset[int] DEFAULT: 1

limit

Maximum number of objects to return (1-100)

TYPE: Unset[int] DEFAULT: 20

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

get_payment_methods

get_payment_methods(page=1, limit=20, *, headers=UNSET)

Retrieve a list of all configured payment methods.

Endpoint: GET /open-api/payment-methods

Example:

from integrify.clopos import CloposClient

CloposClient.get_payment_methods(headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.get_payment_methods(headers={'x-token': 'token'})

Response format: ObjectListResponse[PaymentMethod]

PARAMETER DESCRIPTION
page

Page number for pagination (starts at 1)

TYPE: Unset[int] DEFAULT: 1

limit

Maximum number of objects to return (1-100)

TYPE: Unset[int] DEFAULT: 20

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

get_stop_list

get_stop_list(filter_bys=[], filter_froms=[], filter_tos=[], *, headers=UNSET)

Get stop list data for specific products.

You can filter by multiple parameters at once. For that have order of your lists in check.

Endpoint: GET /open-api/products/stop-list

Example:

from integrify.clopos import CloposClient

CloposClient.get_stop_list(headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.get_stop_list(
    filter_bys=['id', 'limit'],
    filter_froms=[1, 0],
    filter_tos=[100, 10],
    headers={'x-token': token},
))  # Filter by id from 0 to 100 AND limit from 1 to 10

Response format: ObjectListResponse[StopList]

PARAMETER DESCRIPTION
filter_bys

Filter by: id, limit, timestamp

TYPE: list[Literal['id', 'limit', 'timestamp']] DEFAULT: []

filter_froms

Filter from values

TYPE: list[int] DEFAULT: []

filter_tos

Filter to values

TYPE: list[int] DEFAULT: []

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

get_orders

get_orders(page=1, limit=20, status=UNSET, *, headers=UNSET)

Retrieve orders with replicable filters and status-based searches

Endpoint: GET /open-api/orders

Example:

from integrify.clopos import CloposClient

CloposClient.get_orders(headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.get_orders(headers={'x-token': 'token'})

Response format: ObjectListResponse[Order]

PARAMETER DESCRIPTION
page

Page number for pagination (starts at 1)

TYPE: Unset[int] DEFAULT: 1

limit

Maximum number of objects to return (1-100)

TYPE: Unset[int] DEFAULT: 20

status

Filter by order status

TYPE: Unset[OrderStatus] DEFAULT: UNSET

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

get_order_by_id

get_order_by_id(id, with_=UNSET, *, headers=UNSET)

Retrieve a single order with status, customer, and line item details.

Endpoint: GET /open-api/orders/{id}

Example:

from integrify.clopos import CloposClient

CloposClient.get_order_by_id(1, headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.get_order_by_id(id=1, headers={'x-token': 'token'})

Response format: ObjectResponse[Order]

PARAMETER DESCRIPTION
id

Order ID

TYPE: int

with_

Include related resources in the response. Currently supported: receipt:id,service_notification_id,status. When included, the data.receipt field will be present in the response (or null if no receipt exists for the order).

TYPE: Unset[Literal['receipt:id', 'service_notification_id', 'status']] DEFAULT: UNSET

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

create_order

create_order(customer_id, payload, meta=UNSET, *, headers=UNSET)

Create a new order with product line items and customer information

Endpoint: POST /open-api/orders

Example:

from integrify.clopos import CloposClient

data = {
        'customer_id': 1,
        'payload': {
            'service': {
                'sale_type_id': 2,
                'sale_type_name': 'Delivery',
                'venue_id': 1,
                'venue_name': 'Main',
            },
            'customer': {
                'id': 9,
                'name': 'Rahid Akhundzada',
                'customer_discount_type': 1,
                'phone': '+994705401040',
            },
            'products': [
                {
                    'product_id': 1,
                    'count': 1,
                    'product_modificators': [
                        {'modificator_id': 187, 'count': 1},
                        {'modificator_id': 201, 'count': 1},
                    ],
                    'meta': {
                        'price': 0,
                        'order_product': {
                            'product': {
                                'id': 1,
                                'name': 'Mega Dürüm Menü Alana Çiğ Köfte Dürüm',
                                'category_id': 1,
                                'station_id': 1,
                                'price': 0,
                            },
                            'count': 1,
                            'status': 'completed',
                            'product_modificators': [
                                {'modificator_id': 187, 'count': 1},
                                {'modificator_id': 201, 'count': 1},
                            ],
                            'product_hash': 'MTExODcsMTEyMDE=',
                        },
                    },
                }
            ],
        },
        'meta': {
            'comment': '',
            'discount': {'discount_type': 1, 'discount_value': 10},
            'orderTotal': '16.2000',
            'apply_service_charge': True,
            'customer_discount_type': 1,
            'service_charge_value': 0,
        },
    }

CloposClient.create_order(**data, headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.create_order(**data, headers={'x-token': 'token'})

Response format: ObjectResponse[Order]

Prerequisites
  • The top-level customer_id must be provided.
  • Service context is required in payload.service:
  • sale_type_id — a valid sale type ID from List Sale Types
  • sale_type_name — human-readable sale type name
  • venue_id and venue_name — the venue where the order will be fulfilled
  • Product and modifier identifiers must exist in the POS catalog. Include the meta.order_product data returned by catalog APIs for accurate reconciliation.
  • Totals and discounts are recalculated by the platform; send the raw values shown to operators.
PARAMETER DESCRIPTION
customer_id

Customer ID

TYPE: int

payload

Order payload

TYPE: OrderPayloadIn

meta

Meta object

TYPE: Unset[dict] DEFAULT: UNSET

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

update_order

update_order(id, status, *, headers=UNSET)

Update the status of an existing order

Endpoint: PUT /open-api/orders/{id}

Example:

from integrify.clopos import CloposClient
from integrify.clopos.schemas.enums import OrderStatus

CloposClient.update_order(id=1, OrderStatus.IGNORE, headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.update_order(id=1, status=OrderStatus.IGNORE)

Response format: ObjectResponse[Order]

PARAMETER DESCRIPTION
id

Order ID

TYPE: int

status

Order status to update

TYPE: OrderStatus

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

get_receipts

get_receipts(page=1, limit=50, sort_by='created_at', sort_order=-1, date_from=UNSET, date_to=UNSET, *, headers=UNSET)

Retrieve all receipts with support for filters and sorting

Endpoint: GET /open-api/receipts

Example:

from integrify.clopos import CloposClient

CloposClient.get_receipts(headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.get_receipts(headers={'x-token': 'token'})

Response format: ObjectListResponse[Receipt]

PARAMETER DESCRIPTION
page

Page number for pagination (starts at 1)

TYPE: Unset[int] DEFAULT: 1

limit

Maximum number of objects to return (1-200)

TYPE: Unset[int] DEFAULT: 50

sort_by

Primary sort field

TYPE: Unset[str] DEFAULT: 'created_at'

sort_order

Primary sort direction (1 = ascending, -1 = descending)

TYPE: Unset[int] DEFAULT: -1

date_from

Start date (inclusive) in YYYY-MM-DD format

TYPE: Unset[Union[str, datetime]] DEFAULT: UNSET

date_to

End date (inclusive) in YYYY-MM-DD format

TYPE: Unset[Union[str, datetime]] DEFAULT: UNSET

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

get_receipt_by_id

get_receipt_by_id(id, *, headers=UNSET)

Retrieve the full details of a specific receipt

Endpoint: GET /open-api/receipts/{id}

Example:

from integrify.clopos import CloposClient

CloposClient.get_receipt_by_id(1, headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.get_receipt_by_id(id=1, headers={'x-token': 'token'})

Response format: ObjectResponse[Receipt]

PARAMETER DESCRIPTION
id

Receipt ID

TYPE: int

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

create_receipt

create_receipt(cid, payment_methods, user_id, by_cash=UNSET, by_card=UNSET, customer_discount_type=UNSET, discount_rate=UNSET, discount_type=UNSET, discount_value=UNSET, delivery_fee=UNSET, gift_total=UNSET, guests=UNSET, original_subtotal=UNSET, printed=UNSET, receipt_products=UNSET, remaining=UNSET, rps_discount=UNSET, sale_type_id=UNSET, service_charge=UNSET, service_charge_value=UNSET, status=UNSET, subtotal=UNSET, terminal_id=UNSET, total=UNSET, total_tax=UNSET, created_at=UNSET, closed_at=UNSET, address=UNSET, courier_id=UNSET, meta=UNSET, *, headers=UNSET, **kwargs)

Create a new receipt with payment amounts and methods

Endpoint: POST /open-api/receipts

Example:

from integrify.clopos import CloposClient

CloposClient.create_receipt(cid='uuid', payment_methods=[{'id': 1, 'name': 'cash', 'amount': 100}], user_id=1, headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.create_receipt(cid='uuid', payment_methods=[{'id': 1, 'name': 'cash', 'amount': 100}], user_id=1, headers={'x-token': 'token'})

Notes
  • cid must be unique; if you send the same value again, you will get a 409.
  • The sum of amounts in payment_methods[] should equal the total (it may differ from by_cash + by_card when you track tenders only via payment_methods).
  • All time fields are strings and may represent Unix milliseconds in certain integrations.
  • Creating a receipt through this endpoint stores it as a closed record and does not notify POS terminals or other systems.
  • Read the Retry-After header before retrying if you encounter rate limits or transient errors.

Response format: ObjectResponse[Receipt]

PARAMETER DESCRIPTION
cid

Transaction UUID

TYPE: str

payment_methods

List of payment methods

TYPE: list[PaymentMethodIn]

user_id

User ID

TYPE: int

by_cash

Cash total

TYPE: Unset[Decimal] DEFAULT: UNSET

by_card

Card total

TYPE: Unset[Decimal] DEFAULT: UNSET

customer_discount_type

Customer discount type.

TYPE: Unset[DiscountType] DEFAULT: UNSET

discount_rate

Percentage discount

TYPE: Unset[Decimal] DEFAULT: UNSET

discount_type

Discount type

TYPE: Unset[DiscountType] DEFAULT: UNSET

discount_value

Amount-based discount

TYPE: Unset[Decimal] DEFAULT: UNSET

delivery_fee

Delivery fee

TYPE: Unset[Decimal] DEFAULT: UNSET

gift_total

Gift total

TYPE: Unset[Decimal] DEFAULT: UNSET

guests

Number of guests

TYPE: Unset[int] DEFAULT: UNSET

original_subtotal

Original subtotal

TYPE: Unset[Decimal] DEFAULT: UNSET

printed

If receipt is printed

TYPE: Unset[bool] DEFAULT: UNSET

receipt_products

List of receipt products

TYPE: Unset[list[ReceiptProductIn]] DEFAULT: UNSET

remaining

Remaining amount

TYPE: Unset[Decimal] DEFAULT: UNSET

rps_discount

RPS discount

TYPE: Unset[Decimal] DEFAULT: UNSET

sale_type_id

Sale type ID

TYPE: Unset[int] DEFAULT: UNSET

service_charge

Service charge

TYPE: Unset[Decimal] DEFAULT: UNSET

service_charge_value

Service charge value

TYPE: Unset[Decimal] DEFAULT: UNSET

status

Status

TYPE: Unset[int] DEFAULT: UNSET

subtotal

Subtotal

TYPE: Unset[Decimal] DEFAULT: UNSET

terminal_id

Terminal ID

TYPE: Unset[int] DEFAULT: UNSET

total

Total

TYPE: Unset[Decimal] DEFAULT: UNSET

total_tax

Total tax

TYPE: Unset[Decimal] DEFAULT: UNSET

created_at

Creation time (Unix ms)

TYPE: Unset[int] DEFAULT: UNSET

closed_at

Closing time (Unix ms)

TYPE: Unset[int] DEFAULT: UNSET

address

Customer address

TYPE: Unset[str] DEFAULT: UNSET

courier_id

Courier user ID; can be any user ID

TYPE: UnsetOrNone[int] DEFAULT: UNSET

meta

Metadata

TYPE: Unset[dict] DEFAULT: UNSET

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```

update_closed_receipt

update_closed_receipt(id, order_status=UNSET, order_number=UNSET, fiscal_id=UNSET, lock=UNSET, *, headers=UNSET)

Update specific fields of a receipt using the PATCH method. Only the provided fields will be updated; all other fields remain unchanged.

Endpoint: PATCH /open-api/receipts/{id}

Example:

from integrify.clopos import CloposClient

CloposClient.update_closed_receipt(1, order_status='NEW', headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.update_closed_receipt(id=1, order_status='NEW', headers={'x-token': 'token'})

Response format: ObjectResponse[Receipt]

PARAMETER DESCRIPTION
id

Receipt ID

TYPE: int

order_status

New order status. Valid values: "NEW", "SCHEDULED", "IN_PROGRESS", "READY", "PICKED_UP", "COMPLETED", "CANCELLED"

TYPE: Unset[OrderStatus] DEFAULT: UNSET

order_number

Order number identifier (e.g., "RPO-00001")

TYPE: Unset[str] DEFAULT: UNSET

fiscal_id

Fiscal receipt identifier

TYPE: Unset[str] DEFAULT: UNSET

lock

Lock status of the receipt

TYPE: Unset[bool] DEFAULT: UNSET

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

update_receipt

update_receipt(id, cid, delivery_fee, description, order_number, order_status, guests, discount_rate, discount_type, discount_value, customer_id, closed_at, meta_customer, *, headers=UNSET)

Comprehensively update a receipt using the PUT method. This method allows you to update multiple fields at once and can also be used to close receipts.

Critical Requirements
  • The cid and id fields must not change. If different values are sent, the system will treat it as a new receipt and return an error.
  • All fields in the request body must be provided (full receipt object update).

Endpoint: PUT /open-api/receipts/{id}

Example:

from integrify.clopos import CloposClient
from integrify.clopos.schemas.enums import DiscountType

CloposClient.update_receipt(
    id=1,
    cid='1',
    delivery_fee=100,
    description='Receipt description',
    order_number='002',
    order_status='NEW',
    guests=2,
    discount_rate=0,
    discount_type=0,
    discount_value=None,
    customer_id=1,
    closed_at='',
    meta_customer={
        "name": "Rahid Akhundzada",
        "bonus": 0,
        "cashback": 54.69,
        "balance": -108,
        "desc": null,
        "code": null,
        "phone": "+994 70 540 10 40",
        "group_name": "My Customers",
        "group_id": 1
    },
    headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'}
)

# Or if you have set the environment variables
CloposClient.update_receipt(
    id= 1,
    cid'= 'a7890398-d8ae-41cb-b95f-4d21458d72cf',
    delivery_fee=5,
    description='Updated receipt description',
    order_number='002',
    order_status='IN_PROGRESS',
    guests=2,
    discount_rate=10,
    discount_type=DiscountType.PERCENTAGE,
    discount_value=0,
    customer_id=123,
    closed_at='',
    meta_customer={
        'name': 'Rahid Akhundzada',
        'bonus': 0,
        'cashback': 54.69,
        'balance': -108,
        'desc': null,
        'code': null,
        'phone': '+994 70 540 10 40',
        'group_name': 'My Customers',
        'group_id': 1
    },
    headers={'x-token': 'token'}
)

Response format: ObjectResponse[Receipt]

PARAMETER DESCRIPTION
id

Receipt ID. Must match the path parameter - cannot be changed.

TYPE: int

cid

Client identifier. Must match the existing receipt's CID - cannot be changed.

TYPE: str

delivery_fee

Delivery fee amount.

TYPE: int

description

Receipt description. Maximum 500 characters.

TYPE: str

order_number

Order number identifier (e.g., "002").

TYPE: str

order_status

Order status. Valid values: "NEW", "SCHEDULED", "IN_PROGRESS", "READY", "PICKED_UP", "COMPLETED", "CANCELLED".

TYPE: OrderStatus

guests

Number of guests

TYPE: int

discount_rate

Discount rate

TYPE: int

discount_type

Discount type. Valid values: 1 (percent), 2 (amount).

TYPE: DiscountType

discount_value

Discount value. Required when discount_type is 2 (amount).

TYPE: Optional[Decimal]

customer_id

Customer identifier. When adding or changing a customer, you must also provide the meta.customer data structure.

TYPE: int

closed_at

Timestamp when the receipt was closed. Can be set to close the receipt. Format: "YYYY-MM-DD HH:MM:SS" or empty string "" to keep open.

TYPE: str

meta_customer

Customer metadata object. Required when customer_id is provided.

TYPE: UpdateReceiptMetaData

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

close_receipt

close_receipt(id, cid, payment_methods, closed_at, *, headers=UNSET)

Comprehensively update a receipt using the PUT method. This method allows you to update multiple fields at once and can also be used to close receipts.

Critical Requirements
  • The cid and id fields must not change. If different values are sent, the system will treat it as a new receipt and return an error.
  • All fields in the request body must be provided (full receipt object update).

Endpoint: PUT /open-api/receipts/{id}

Example:

from integrify.clopos import CloposClient

CloposClient.update_closed_receipt(1, order_status='NEW', headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.update_closed_receipt(id=1, order_status='NEW', headers={'x-token': 'token'})

Response format: ObjectResponse[Receipt]

PARAMETER DESCRIPTION
id

Receipt ID. Must match the path parameter - cannot be changed.

TYPE: int

cid

Client identifier. Must match the existing receipt's CID - cannot be changed.

TYPE: str

payment_methods

List of payment methods with amounts

TYPE: list[PaymentMethodIn]

closed_at

Closing timestamp in format "YYYY-MM-DD HH🇲🇲ss". Must be greater than created_at.

TYPE: str

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

delete_receipt

delete_receipt(id, *, headers=UNSET)

Permanently remove a receipt by its identifier

Endpoint: DELETE /open-api/receipts/{id}

Example:

from integrify.clopos import CloposClient

CloposClient.delete_receipt(1, headers={'x-brand': 'openapitest', 'x-venue': '1', 'x-token': 'token'})

# Or if you have set the environment variables
CloposClient.delete_receipt(id=1, headers={'x-token': 'token'})

Response format: BaseResponse

PARAMETER DESCRIPTION
id

Receipt ID

TYPE: int

headers

Headers for request

TYPE: Unset[dict[str, str]] DEFAULT: UNSET

```