BackstageClient.aiActionLimits
BackstageClient.aiActionLimits in @ticketlayer/backstage.
@ticketlayer/backstage / BackstageClient / aiActionLimits
aiActionLimits: {
list: (requestOptions?: RequestOptions) => Promise<{
accounts: (
| {
accountId: string | null;
settings: {
actionsEnabled: boolean | null;
dailyChannelMoneyCap: number | null;
dailyCustomerMoneyCap: number | null;
dailyOrgMoneyCap: number | null;
exchangeFeeCeiling: number | null;
nameChangeApproval: "staff" | "customer_confirm" | null;
refundAfterScan: "deny" | "staff_approval" | null;
refundMaxPerOrder: number | null;
refundsPerCustomer90d: number | null;
retainTransactionFeeOnCancellation: boolean | null;
};
updatedAt: string | null;
updatedBy: string | null;
}
| null)[];
defaults: {
actionsEnabled: boolean;
dailyChannelMoneyCap: number;
dailyCustomerMoneyCap: number;
dailyOrgMoneyCap: number;
exchangeFeeCeiling: number;
nameChangeApproval: "staff" | "customer_confirm";
refundAfterScan: "deny" | "staff_approval";
refundMaxPerOrder: number;
refundsPerCustomer90d: number;
retainTransactionFeeOnCancellation: boolean;
};
organisation: | {
accountId: string | null;
settings: {
actionsEnabled: boolean | null;
dailyChannelMoneyCap: number | null;
dailyCustomerMoneyCap: number | null;
dailyOrgMoneyCap: number | null;
exchangeFeeCeiling: number | null;
nameChangeApproval: "staff" | "customer_confirm" | null;
refundAfterScan: "deny" | "staff_approval" | null;
refundMaxPerOrder: number | null;
refundsPerCustomer90d: number | null;
retainTransactionFeeOnCancellation: boolean | null;
};
updatedAt: string | null;
updatedBy: string | null;
}
| null;
}>;
resolve: (options?: {
accountId?: string;
}, requestOptions?: RequestOptions) => Promise<{
accountId: string | null;
source: {
[key: string]: "account" | "organisation" | "default";
};
thresholds: {
actionsEnabled: boolean;
dailyChannelMoneyCap: number;
dailyCustomerMoneyCap: number;
dailyOrgMoneyCap: number;
exchangeFeeCeiling: number;
nameChangeApproval: "staff" | "customer_confirm";
refundAfterScan: "deny" | "staff_approval";
refundMaxPerOrder: number;
refundsPerCustomer90d: number;
retainTransactionFeeOnCancellation: boolean;
};
}>;
set: (request: {
accountId?: string | null;
actionsEnabled?: boolean | null;
dailyChannelMoneyCap?: number | null;
dailyCustomerMoneyCap?: number | null;
dailyOrgMoneyCap?: number | null;
exchangeFeeCeiling?: number | null;
nameChangeApproval?: "staff" | "customer_confirm" | null;
refundAfterScan?: "deny" | "staff_approval" | null;
refundMaxPerOrder?: number | null;
refundsPerCustomer90d?: number | null;
retainTransactionFeeOnCancellation?: boolean | null;
}, requestOptions?: RequestOptions) => Promise<
| {
accountId: string | null;
settings: {
actionsEnabled: boolean | null;
dailyChannelMoneyCap: number | null;
dailyCustomerMoneyCap: number | null;
dailyOrgMoneyCap: number | null;
exchangeFeeCeiling: number | null;
nameChangeApproval: "staff" | "customer_confirm" | null;
refundAfterScan: "deny" | "staff_approval" | null;
refundMaxPerOrder: number | null;
refundsPerCustomer90d: number | null;
retainTransactionFeeOnCancellation: boolean | null;
};
updatedAt: string | null;
updatedBy: string | null;
}
| null>;
};Defined in: client.ts:8208
AI Action Limits methods
list()#
list: (requestOptions?: RequestOptions) => Promise<{
accounts: (
| {
accountId: string | null;
settings: {
actionsEnabled: boolean | null;
dailyChannelMoneyCap: number | null;
dailyCustomerMoneyCap: number | null;
dailyOrgMoneyCap: number | null;
exchangeFeeCeiling: number | null;
nameChangeApproval: "staff" | "customer_confirm" | null;
refundAfterScan: "deny" | "staff_approval" | null;
refundMaxPerOrder: number | null;
refundsPerCustomer90d: number | null;
retainTransactionFeeOnCancellation: boolean | null;
};
updatedAt: string | null;
updatedBy: string | null;
}
| null)[];
defaults: {
actionsEnabled: boolean;
dailyChannelMoneyCap: number;
dailyCustomerMoneyCap: number;
dailyOrgMoneyCap: number;
exchangeFeeCeiling: number;
nameChangeApproval: "staff" | "customer_confirm";
refundAfterScan: "deny" | "staff_approval";
refundMaxPerOrder: number;
refundsPerCustomer90d: number;
retainTransactionFeeOnCancellation: boolean;
};
organisation: | {
accountId: string | null;
settings: {
actionsEnabled: boolean | null;
dailyChannelMoneyCap: number | null;
dailyCustomerMoneyCap: number | null;
dailyOrgMoneyCap: number | null;
exchangeFeeCeiling: number | null;
nameChangeApproval: "staff" | "customer_confirm" | null;
refundAfterScan: "deny" | "staff_approval" | null;
refundMaxPerOrder: number | null;
refundsPerCustomer90d: number | null;
retainTransactionFeeOnCancellation: boolean | null;
};
updatedAt: string | null;
updatedBy: string | null;
}
| null;
}>;List AI action limits What the Concierge AI may do without a person, as set by the organisation and by each account you can read, and the platform defaults. A null field is not set at that level. What applies to an event is the stricter of the organisation's and the event-owning account's (GET /ai-action-limits/resolved). Requires refundpolicies.read.
Parameters#
| Parameter | Type |
|---|---|
requestOptions? | RequestOptions |
Returns#
Promise<{
accounts: (
| {
accountId: string | null;
settings: {
actionsEnabled: boolean | null;
dailyChannelMoneyCap: number | null;
dailyCustomerMoneyCap: number | null;
dailyOrgMoneyCap: number | null;
exchangeFeeCeiling: number | null;
nameChangeApproval: "staff" | "customer_confirm" | null;
refundAfterScan: "deny" | "staff_approval" | null;
refundMaxPerOrder: number | null;
refundsPerCustomer90d: number | null;
retainTransactionFeeOnCancellation: boolean | null;
};
updatedAt: string | null;
updatedBy: string | null;
}
| null)[];
defaults: {
actionsEnabled: boolean;
dailyChannelMoneyCap: number;
dailyCustomerMoneyCap: number;
dailyOrgMoneyCap: number;
exchangeFeeCeiling: number;
nameChangeApproval: "staff" | "customer_confirm";
refundAfterScan: "deny" | "staff_approval";
refundMaxPerOrder: number;
refundsPerCustomer90d: number;
retainTransactionFeeOnCancellation: boolean;
};
organisation: | {
accountId: string | null;
settings: {
actionsEnabled: boolean | null;
dailyChannelMoneyCap: number | null;
dailyCustomerMoneyCap: number | null;
dailyOrgMoneyCap: number | null;
exchangeFeeCeiling: number | null;
nameChangeApproval: "staff" | "customer_confirm" | null;
refundAfterScan: "deny" | "staff_approval" | null;
refundMaxPerOrder: number | null;
refundsPerCustomer90d: number | null;
retainTransactionFeeOnCancellation: boolean | null;
};
updatedAt: string | null;
updatedBy: string | null;
}
| null;
}>
Operation Id#
listAiActionLimits
resolve()#
resolve: (options?: {
accountId?: string;
}, requestOptions?: RequestOptions) => Promise<{
accountId: string | null;
source: {
[key: string]: "account" | "organisation" | "default";
};
thresholds: {
actionsEnabled: boolean;
dailyChannelMoneyCap: number;
dailyCustomerMoneyCap: number;
dailyOrgMoneyCap: number;
exchangeFeeCeiling: number;
nameChangeApproval: "staff" | "customer_confirm";
refundAfterScan: "deny" | "staff_approval";
refundMaxPerOrder: number;
refundsPerCustomer90d: number;
retainTransactionFeeOnCancellation: boolean;
};
}>;Resolve the AI action limits for an account
The limits the policy engine applies to an event owned by accountId: field by field, the stricter of the organisation's and the account's, else the default, with where each came from. Without accountId, the organisation's alone. Requires refundpolicies.read for that account.
Parameters#
| Parameter | Type |
|---|---|
options? | { accountId?: string; } |
options.accountId? | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
accountId: string | null;
source: {
[key: string]: "account" | "organisation" | "default";
};
thresholds: {
actionsEnabled: boolean;
dailyChannelMoneyCap: number;
dailyCustomerMoneyCap: number;
dailyOrgMoneyCap: number;
exchangeFeeCeiling: number;
nameChangeApproval: "staff" | "customer_confirm";
refundAfterScan: "deny" | "staff_approval";
refundMaxPerOrder: number;
refundsPerCustomer90d: number;
retainTransactionFeeOnCancellation: boolean;
};
}>
Operation Id#
resolveAiActionLimits
set()#
set: (request: {
accountId?: string | null;
actionsEnabled?: boolean | null;
dailyChannelMoneyCap?: number | null;
dailyCustomerMoneyCap?: number | null;
dailyOrgMoneyCap?: number | null;
exchangeFeeCeiling?: number | null;
nameChangeApproval?: "staff" | "customer_confirm" | null;
refundAfterScan?: "deny" | "staff_approval" | null;
refundMaxPerOrder?: number | null;
refundsPerCustomer90d?: number | null;
retainTransactionFeeOnCancellation?: boolean | null;
}, requestOptions?: RequestOptions) => Promise<
| {
accountId: string | null;
settings: {
actionsEnabled: boolean | null;
dailyChannelMoneyCap: number | null;
dailyCustomerMoneyCap: number | null;
dailyOrgMoneyCap: number | null;
exchangeFeeCeiling: number | null;
nameChangeApproval: "staff" | "customer_confirm" | null;
refundAfterScan: "deny" | "staff_approval" | null;
refundMaxPerOrder: number | null;
refundsPerCustomer90d: number | null;
retainTransactionFeeOnCancellation: boolean | null;
};
updatedAt: string | null;
updatedBy: string | null;
}
| null>;Set AI action limits Set the organisation's limits (no accountId) or one account's. A field sent as null clears it at this level; a field left out is kept. Money is integer minor units of the order's currency. The stricter of the organisation's and the event-owning account's applies (decision 2); retainTransactionFeeOnCancellation is the organisation's alone (400 AI_ACTION_LIMIT_ORGANISATION_ONLY with an accountId). Needs refundpolicies.manage for the account, or on every account for the organisation's limits, as a person or an organisation API key, and the plan's Concierge AI (403 PLAN_ENTITLEMENT_REQUIRED).
Parameters#
| Parameter | Type | Description |
|---|---|---|
request | { accountId?: string | null; actionsEnabled?: boolean | null; dailyChannelMoneyCap?: number | null; dailyCustomerMoneyCap?: number | null; dailyOrgMoneyCap?: number | null; exchangeFeeCeiling?: number | null; nameChangeApproval?: "staff" | "customer_confirm" | null; refundAfterScan?: "deny" | "staff_approval" | null; refundMaxPerOrder?: number | null; refundsPerCustomer90d?: number | null; retainTransactionFeeOnCancellation?: boolean | null; } | - |
request.accountId? | string | null | Description The account to set; absent or null sets the organisation's own |
request.actionsEnabled? | boolean | null | Description The kill switch: false stops every AI action (verdict deny ACTIONS_PAUSED). Null: not set at this level. |
request.dailyChannelMoneyCap? | number | null | Description AI-initiated money per sales channel in 24 hours; above it, staff. Integer minor units of the order's currency. Null: not set at this level. |
request.dailyCustomerMoneyCap? | number | null | Description AI-initiated money per customer in 24 hours; above it, staff. Integer minor units of the order's currency. Null: not set at this level. |
request.dailyOrgMoneyCap? | number | null | Description AI-initiated money per organisation in 24 hours; above it, staff. Integer minor units of the order's currency. Null: not set at this level. |
request.exchangeFeeCeiling? | number | null | Description The most an exchange may charge (recorded; exchanges are staff-driven today). Integer minor units of the order's currency. Null: not set at this level. |
request.nameChangeApproval? | "staff" | "customer_confirm" | null | Description Who approves a name change once they exist: the customer confirming, or staff. Null: not set at this level. |
request.refundAfterScan? | "deny" | "staff_approval" | null | Description A refund of an order with a scanned ticket: deny, or staff_approval. Null: not set at this level. |
request.refundMaxPerOrder? | number | null | Description A refund above this goes to staff. Integer minor units of the order's currency. Null: not set at this level. |
request.refundsPerCustomer90d? | number | null | Description Refunds a customer may have had in 90 days before the next goes to staff. Null: not set at this level. |
request.retainTransactionFeeOnCancellation? | boolean | null | Description Organisation only (400 AI_ACTION_LIMIT_ORGANISATION_ONLY when sent with an accountId). A cancelled event is refunded in full, booking fees included, whatever the refund policy's retainFees says. True keeps back the order's per-order transaction fee (its fee lines charged once per order) on a cancellation; per-ticket booking fees are still refunded. Null: not set (false). |
requestOptions? | RequestOptions | - |
Returns#
Promise<
| {
accountId: string | null;
settings: {
actionsEnabled: boolean | null;
dailyChannelMoneyCap: number | null;
dailyCustomerMoneyCap: number | null;
dailyOrgMoneyCap: number | null;
exchangeFeeCeiling: number | null;
nameChangeApproval: "staff" | "customer_confirm" | null;
refundAfterScan: "deny" | "staff_approval" | null;
refundMaxPerOrder: number | null;
refundsPerCustomer90d: number | null;
retainTransactionFeeOnCancellation: boolean | null;
};
updatedAt: string | null;
updatedBy: string | null;
}
| null>
Operation Id#
setAiActionLimits