Skip to content

Loyalty and discounts

Endpoints of the Loyalty and discounts section of the iikoCloud API documentation.

Discounts and promotions

Loyalty systems API.

iiko.loyalty.calculate() async

calculate(
    *,
    order: Order | Mapping[str, Any],
    organization_id: str,
    coupon: str | None = None,
    referrer_id: str | None = None,
    terminal_group_id: str | None = None,
    available_payment_marketing_campaign_ids: Sequence[str]
    | None = None,
    applicable_manual_conditions: Sequence[str]
    | None = None,
    dynamic_discounts: Sequence[
        LoyaltyDynamicDiscount | Mapping[str, Any]
    ]
    | None = None,
    is_loyalty_trace_enabled: bool | None = None,
    timeout: float | None = None,
) -> CalculateCheckinResponse

Calculate checkin.

POST /api/1/loyalty/iiko/calculate

Calculate discounts and other loyalty items for an order.

Restriction group: Loyalty: order calculate.

Parameters:

Name Type Description Default
order Order | Mapping[str, Any]

Order.

required
organization_id str

Organization id.

required
coupon str | None

Obsolete field. Use Order.LoyaltyInfo.Coupon instead. Can be null.

None
referrer_id str | None

Referrer id.

None
terminal_group_id str | None

Identifier of a target terminal. Should be used only when auto distribution is off and no call center operator is available.

None
available_payment_marketing_campaign_ids Sequence[str] | None

List of identifiers of applied campaigns. Should be empty if no payment method is used.

None
applicable_manual_conditions Sequence[str] | None

Obsolete field. Use request.Order.LoyaltyInfo.ApplicableManualConditions instead.

None
dynamic_discounts Sequence[LoyaltyDynamicDiscount | Mapping[str, Any]] | None

Obsolete field. Use Order.LoyaltyInfo.DynamicDiscounts instead. Can be null..

None
is_loyalty_trace_enabled bool | None

Loyalty trace is enabled.

None
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
CalculateCheckinResponse

The CalculateCheckinResponse response.

iikoCloud API reference

iiko.loyalty.coupons.by_series() async

by_series(
    *,
    series: str,
    organization_id: str,
    page_size: int | None = None,
    page: int | None = None,
    timeout: float | None = None,
) -> NotActivatedCouponResponse

Get non-activated coupons.

POST /api/1/loyalty/iiko/coupons/by_series

Get list of non-activated coupons.

Restriction group: Loyalty: coupons.

Parameters:

Name Type Description Default
series str

Series. Can be null.

required
organization_id str

Organization id.

required
page_size int | None

Page size.

None
page int | None

Page.

None
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
NotActivatedCouponResponse

The NotActivatedCouponResponse response.

iikoCloud API reference

iiko.loyalty.coupons.info() async

info(
    *,
    number: str,
    organization_id: str,
    series: str | None = None,
    timeout: float | None = None,
) -> CouponInfoResponse

Get coupon info.

POST /api/1/loyalty/iiko/coupons/info

Get information about the specified coupon.

Restriction group: Loyalty: coupons.

Parameters:

Name Type Description Default
number str

Number. Can be null.

required
organization_id str

Organization id.

required
series str | None

Series. Can be null.

None
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
CouponInfoResponse

The CouponInfoResponse response.

iikoCloud API reference

iiko.loyalty.coupons.series() async

series(
    *, organization_id: str, timeout: float | None = None
) -> SeriesWithNotActivatedCouponsResponse

Get coupon series with non-activated coupons.

POST /api/1/loyalty/iiko/coupons/series

Get a list of coupon series in which there are not deleted and not activated coupons.

Restriction group: Loyalty: coupons.

Parameters:

Name Type Description Default
organization_id str

Organization id.

required
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
SeriesWithNotActivatedCouponsResponse

The SeriesWithNotActivatedCouponsResponse response.

iikoCloud API reference

iiko.loyalty.manual_condition() async

manual_condition(
    *,
    organization_id: str | None = None,
    timeout: float | None = None,
) -> GetManualConditionsResponse

Get manual conditions.

POST /api/1/loyalty/iiko/manual_condition

Get all organization's manual conditions.

Restriction group: Loyalty: dictionaries.

Parameters:

Name Type Description Default
organization_id str | None

Organization id.

None
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
GetManualConditionsResponse

The GetManualConditionsResponse response.

iikoCloud API reference

iiko.loyalty.program() async

program(
    *,
    organization_id: str,
    without_marketing_campaigns: bool | None = None,
    timeout: float | None = None,
) -> GetProgramsResponse

Get programs.

POST /api/1/loyalty/iiko/program

Get all loyalty programs for organization.

Restriction group: Loyalty: dictionaries.

Parameters:

Name Type Description Default
organization_id str

Organization id.

required
without_marketing_campaigns bool | None

Determines if marketing campaigns not required.

None
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
GetProgramsResponse

The GetProgramsResponse response.

iikoCloud API reference

Customer categories

Loyalty systems API.

iiko.loyalty.customer_category() async

__call__(
    *, organization_id: str, timeout: float | None = None
) -> GetCategoriesResponse

Get customer categories.

POST /api/1/loyalty/iiko/customer_category

Get all organization's customer categories.

Restriction group: Loyalty: dictionaries.

Parameters:

Name Type Description Default
organization_id str

Organization id.

required
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
GetCategoriesResponse

The GetCategoriesResponse response.

iikoCloud API reference

iiko.loyalty.customer_category.add() async

add(
    *,
    customer_id: str,
    category_id: str,
    organization_id: str,
    timeout: float | None = None,
) -> ChangeCategoryForCustomerResponse

Add category for customer.

POST /api/1/loyalty/iiko/customer_category/add

Add specified category for customer.

Restriction group: Guests: changing.

Parameters:

Name Type Description Default
customer_id str

Customer id.

required
category_id str

Guest category id.

required
organization_id str

Organization id.

required
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
ChangeCategoryForCustomerResponse

The ChangeCategoryForCustomerResponse response.

iikoCloud API reference

iiko.loyalty.customer_category.remove() async

remove(
    *,
    customer_id: str,
    category_id: str,
    organization_id: str,
    timeout: float | None = None,
) -> ChangeCategoryForCustomerResponse

Remove category for customer.

POST /api/1/loyalty/iiko/customer_category/remove

Remove specified category for customer.

Restriction group: Guests: changing.

Parameters:

Name Type Description Default
customer_id str

Customer id.

required
category_id str

Guest category id.

required
organization_id str

Organization id.

required
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
ChangeCategoryForCustomerResponse

The ChangeCategoryForCustomerResponse response.

iikoCloud API reference

Customers

Loyalty systems API.

iiko.loyalty.customer.card.add() async

add(
    *,
    customer_id: str,
    card_track: str,
    card_number: str,
    organization_id: str,
    timeout: float | None = None,
) -> AddMagnetCardResponse

Add card.

POST /api/1/loyalty/iiko/customer/card/add

Add new card for customer.

Restriction group: Guests: changing.

Parameters:

Name Type Description Default
customer_id str

Customer id.

required
card_track str

Card track. Can be null.

required
card_number str

Card number. Can be null.

required
organization_id str

Organization id.

required
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
AddMagnetCardResponse

The AddMagnetCardResponse response.

iikoCloud API reference

iiko.loyalty.customer.card.remove() async

remove(
    *,
    customer_id: str,
    card_track: str,
    organization_id: str,
    timeout: float | None = None,
) -> DeleteMagnetCardResponse

Delete card.

POST /api/1/loyalty/iiko/customer/card/remove

Delete existing card for customer.

Restriction group: Guests: changing.

Parameters:

Name Type Description Default
customer_id str

Customer id.

required
card_track str

Card track. Can be null.

required
organization_id str

Organization id.

required
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
DeleteMagnetCardResponse

The DeleteMagnetCardResponse response.

iikoCloud API reference

iiko.loyalty.customer.create_or_update() async

create_or_update(
    *,
    organization_id: str,
    id: str | None = None,
    phone: str | None = None,
    card_track: str | None = None,
    card_number: str | None = None,
    name: str | None = None,
    middle_name: str | None = None,
    sur_name: str | None = None,
    birthday: datetime | str | None = None,
    email: str | None = None,
    sex: IikoNetUserSex | None = None,
    consent_status: PersonalDataConsentStatus | None = None,
    should_receive_loyalty_info: bool | None = None,
    should_receive_promo_actions_info: bool | None = None,
    referrer_id: str | None = None,
    user_data: str | None = None,
    is_deleted: bool | None = None,
    employee_id: str | None = None,
    comment: str | None = None,
    nullify_empty_fields: bool | None = None,
    timeout: float | None = None,
) -> CreateOrUpdateCustomerResponse

Create or update customer.

POST /api/1/loyalty/iiko/customer/create_or_update

Create or update customer info by id or phone or card track.

Restriction group: Guests: creating.

Parameters:

Name Type Description Default
organization_id str

Customer organization id.

required
id str | None

Customer id.

None
phone str | None

Customer phone. Can be null.

None
card_track str | None

Card track. Required if cardNumber set. Can be null.

None
card_number str | None

Card number. Required if cardTrack set. Can be null.

None
name str | None

Customer name. Can be null.

None
middle_name str | None

Customer middle name. Can be null.

None
sur_name str | None

Customer surname. Can be null.

None
birthday datetime | str | None

Customer birthday.

None
email str | None

Customer email. Can be null.

None
sex IikoNetUserSex | None

Customer sex. 0 - not specified, 1 - male, 2 - female.

None
consent_status PersonalDataConsentStatus | None

Customer consent status. 0 - unknown, 1 - given, 2 - revoked.

None
should_receive_loyalty_info bool | None

Customer get loyalty messages (email, sms). If the parameter is not specified for new customers, the value 'true' is used.

None
should_receive_promo_actions_info bool | None

Customer get promo messages (email, sms). If the parameter is not specified for new customers, the value 'true' is used.

None
referrer_id str | None

Id for referrer guest. Null for old integrations, Guid.Empty - for referrer deletion. Can be null.

None
user_data str | None

Customer user data. Can be null.

None
is_deleted bool | None

Customer logical deletion flag.

None
employee_id str | None

Employee number or id. Can be null.

None
comment str | None

Customer description and additional data. Can be null.

None
nullify_empty_fields bool | None

If set to true, then empty string values (not null) will overwrite origin guest fields with nulls, otherwise empty fields are ignored.

None
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
CreateOrUpdateCustomerResponse

The CreateOrUpdateCustomerResponse response.

iikoCloud API reference

iiko.loyalty.customer.info() async

info(
    *,
    body: GetCustomerInfoRequest | Mapping[str, Any],
    timeout: float | None = None,
) -> GetCustomerInfoResponse

Get customer info.

POST /api/1/loyalty/iiko/customer/info

Get customer info by specified criterion.

Restriction group: Guests: info.

Parameters:

Name Type Description Default
body GetCustomerInfoRequest | Mapping[str, Any]

Request body.

required
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
GetCustomerInfoResponse

The GetCustomerInfoResponse response.

iikoCloud API reference

iiko.loyalty.customer.program.add() async

add(
    *,
    organization_id: str,
    customer_id: str | None = None,
    program_id: str | None = None,
    timeout: float | None = None,
) -> AddCustomerToProgramResponse

Add customer to program.

POST /api/1/loyalty/iiko/customer/program/add

Add new customer for program.

Restriction group: Guests: changing.

Parameters:

Name Type Description Default
organization_id str

Organization id.

required
customer_id str | None

Customer id.

None
program_id str | None

Program id.

None
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
AddCustomerToProgramResponse

The AddCustomerToProgramResponse response.

iikoCloud API reference

iiko.loyalty.customer.wallet.cancel_hold() async

cancel_hold(
    *,
    transaction_id: str,
    organization_id: str,
    timeout: float | None = None,
) -> CancelHoldMoneyResponse

Cancel hold money.

POST /api/1/loyalty/iiko/customer/wallet/cancel_hold

Cancel holding transaction that created earlier.

Restriction group: Loyalty: wallets.

Parameters:

Name Type Description Default
transaction_id str

Transaction id.

required
organization_id str

Organization id.

required
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
CancelHoldMoneyResponse

The CancelHoldMoneyResponse response.

iikoCloud API reference

iiko.loyalty.customer.wallet.chargeoff() async

chargeoff(
    *,
    organization_id: str,
    customer_id: str | None = None,
    wallet_id: str | None = None,
    sum: Decimal | float | None = None,
    comment: str | None = None,
    timeout: float | None = None,
) -> WithdrawUserBalanceResponse

Withdraw balance.

POST /api/1/loyalty/iiko/customer/wallet/chargeoff

Withdraw customer balance.

Restriction group: Loyalty: wallets.

Parameters:

Name Type Description Default
organization_id str

Organization id.

required
customer_id str | None

Customer id.

None
wallet_id str | None

Wallet id.

None
sum Decimal | float | None

Sum of balance change. Must be positive.

None
comment str | None

Comment. Can be null.

None
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
WithdrawUserBalanceResponse

The WithdrawUserBalanceResponse response.

iikoCloud API reference

iiko.loyalty.customer.wallet.hold() async

hold(
    *,
    customer_id: str,
    wallet_id: str,
    sum: Decimal | float,
    organization_id: str,
    transaction_id: str | None = None,
    comment: str | None = None,
    timeout: float | None = None,
) -> HoldMoneyResponse

Hold money.

POST /api/1/loyalty/iiko/customer/wallet/hold

Hold customer's money in loyalty program. Payment will be process on POS during processing of an order.

Restriction group: Loyalty: wallets.

Parameters:

Name Type Description Default
customer_id str

Customer id.

required
wallet_id str

Wallet id.

required
sum Decimal | float

Sum.

required
organization_id str

Organization id.

required
transaction_id str | None

Predefined transaction id. Random if empty.

None
comment str | None

Additional information about holding. Can be null.

None
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
HoldMoneyResponse

The HoldMoneyResponse response.

iikoCloud API reference

iiko.loyalty.customer.wallet.topup() async

topup(
    *,
    organization_id: str,
    customer_id: str | None = None,
    wallet_id: str | None = None,
    sum: Decimal | float | None = None,
    comment: str | None = None,
    timeout: float | None = None,
) -> RefillUserBalanceResponse

Refill balance.

POST /api/1/loyalty/iiko/customer/wallet/topup

Refill customer balance.

Restriction group: Loyalty: wallets.

Parameters:

Name Type Description Default
organization_id str

Organization id.

required
customer_id str | None

Customer id.

None
wallet_id str | None

Wallet id.

None
sum Decimal | float | None

Sum of balance change. Must be positive.

None
comment str | None

Comment. Can be null.

None
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
RefillUserBalanceResponse

The RefillUserBalanceResponse response.

iikoCloud API reference

iiko.loyalty.delete_customers() async

delete_customers(
    *,
    customer_ids: Sequence[str],
    organization_id: str,
    timeout: float | None = None,
) -> DeleteCustomersResponse

Logical deletion of customers.

POST /api/1/loyalty/iiko/delete_customers

Mark customers as deleted.

Parameters:

Name Type Description Default
customer_ids Sequence[str]

Customer IDs for logical deletion.

required
organization_id str

Organization id.

required
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
DeleteCustomersResponse

The DeleteCustomersResponse response.

iikoCloud API reference

iiko.loyalty.get_counters() async

get_counters(
    *,
    organization_id: str,
    guest_ids: Sequence[str] | None = None,
    periods: Sequence[CounterPeriod] | None = None,
    metrics: Sequence[CounterMetric] | None = None,
    timeout: float | None = None,
) -> GetCountersResponse

Get counters.

POST /api/1/loyalty/iiko/get_counters

Get customer orders count and sum for different period.

Parameters:

Name Type Description Default
organization_id str

Organization id.

required
guest_ids Sequence[str] | None

Guest ids.

None
periods Sequence[CounterPeriod] | None

Periods.

None
metrics Sequence[CounterMetric] | None

Metrics.

None
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
GetCountersResponse

The GetCountersResponse response.

iikoCloud API reference

iiko.loyalty.restore_customers() async

restore_customers(
    *,
    customer_ids: Sequence[str],
    organization_id: str,
    timeout: float | None = None,
) -> RestoreCustomersResponse

Logical recovery of customers.

POST /api/1/loyalty/iiko/restore_customers

Removing deletion flags for customers.

Parameters:

Name Type Description Default
customer_ids Sequence[str]

Customer IDs to recover.

required
organization_id str

Organization id.

required
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
RestoreCustomersResponse

The RestoreCustomersResponse response.

iikoCloud API reference

Messages

Loyalty systems API.

iiko.loyalty.check_sms_sending_possibility() async

check_sms_sending_possibility(
    *, organization_id: str, timeout: float | None = None
) -> SmsSendingPossibilityResponse

Check sms sending possibility.

POST /api/1/loyalty/iiko/check_sms_sending_possibility

Check sms sending possibility before send sms message.

Parameters:

Name Type Description Default
organization_id str

Organization id.

required
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
SmsSendingPossibilityResponse

The SmsSendingPossibilityResponse response.

iikoCloud API reference

iiko.loyalty.check_sms_status() async

check_sms_status(
    *,
    sms_ids: Sequence[str],
    organization_id: str,
    timeout: float | None = None,
) -> CheckSmsStatusResponse

Check SMS status.

POST /api/1/loyalty/iiko/check_sms_status

Check the status of sending SMS messages.

Parameters:

Name Type Description Default
sms_ids Sequence[str]

Sms IDs for checking.

required
organization_id str

Organization id.

required
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
CheckSmsStatusResponse

The CheckSmsStatusResponse response.

iikoCloud API reference

iiko.loyalty.message.send_email() async

send_email(
    *,
    receiver: str,
    subject: str,
    body: str,
    organization_id: str,
    timeout: float | None = None,
) -> SendEmailResponse

Send email.

POST /api/1/loyalty/iiko/message/send_email

Send email message to specified email address. Sending proceed according iikoCard organization's settings.

Restriction group: Loyalty: messages.

Parameters:

Name Type Description Default
receiver str

Email address. Can be null.

required
subject str

Message subject. Can be null.

required
body str

Message body. Can be null.

required
organization_id str

Organization id.

required
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
SendEmailResponse

The SendEmailResponse response.

iikoCloud API reference

iiko.loyalty.message.send_sms() async

send_sms(
    *,
    phone: str,
    text: str,
    organization_id: str,
    timeout: float | None = None,
) -> SendSmsResponse

Send sms.

POST /api/1/loyalty/iiko/message/send_sms

Send sms message to specified phone number. Sending proceed according iikoCard organization's settings.

Restriction group: Loyalty: messages.

Parameters:

Name Type Description Default
phone str

Customer's phone number. Can be null.

required
text str

Message text. Can be null.

required
organization_id str

Organization id.

required
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
SendSmsResponse

The SendSmsResponse response.

iikoCloud API reference

Report

Loyalty systems API.

iiko.loyalty.customer.transactions.by_date() async

by_date(
    *,
    customer_id: str,
    date_from: datetime | str,
    date_to: datetime | str,
    page_number: int,
    page_size: int,
    organization_id: str,
    timeout: float | None = None,
) -> GetTransactionsReportByPeriodResponse

Get transaction report by period.

POST /api/1/loyalty/iiko/customer/transactions/by_date

Get transaction report for specified customer by provided date range.

Restriction group: Guests: info.

Parameters:

Name Type Description Default
customer_id str

Customer id.

required
date_from datetime | str

Report since date in UTC. Included.

required
date_to datetime | str

Report till date in UTC. Included.

required
page_number int

Page number. Zero based. Previous pages will be skipped.

required
page_size int

Page size. Ignored if more than max page size on server.

required
organization_id str

Organization id.

required
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
GetTransactionsReportByPeriodResponse

The GetTransactionsReportByPeriodResponse response.

iikoCloud API reference

iiko.loyalty.customer.transactions.by_revision() async

by_revision(
    *,
    customer_id: str,
    page_size: int,
    organization_id: str,
    revision: int | None = None,
    last_transaction_id: str | None = None,
    timeout: float | None = None,
) -> GetTransactionsReportByRevisionResponse

Get transaction report by revision.

POST /api/1/loyalty/iiko/customer/transactions/by_revision

Get transaction report for specified customer by provided revision.

Restriction group: Guests: info.

Parameters:

Name Type Description Default
customer_id str

Customer id.

required
page_size int

Page size. Ignored if more than max size on server..

required
organization_id str

Organization id.

required
revision int | None

Report since revision. Included if LastTransactionId set..

None
last_transaction_id str | None

Report since transaction. Excluded. Can't be used without revision..

None
timeout float | None

Server-side timeout in seconds (Timeout header). Defaults to the client setting.

None

Returns:

Type Description
GetTransactionsReportByRevisionResponse

The GetTransactionsReportByRevisionResponse response.

iikoCloud API reference