PaymentFilterDTO
Payment filter request body. Every field is optional; all of them are combined with AND, and a list filter is ignored when empty.
Several fields were renamed when the filter was extended. The old names still work and are marked deprecated below; when an old and a new name are sent together they are merged — lists are unioned, and for a time bound the narrower value wins (the greater lower bound, the smaller upper bound).
Page number, 1-based.
Possible values: >= 1
11Page size (min 1, max 100).
Possible values: >= 1 and <= 100
1020orders object
Sort order. Each key is a sort field — ID, NUMBER, AMOUNT, TIMESTAMP,
CREATED_TIMESTAMP, CANCELED_TIMESTAMP, TYPE or BASE (see
PaymentOrderField) — and each value a direction. Keys are applied in the order
they appear in the JSON object. Unless ID is one of the keys, a trailing
ID DESC tie-breaker is appended so paging stays stable. Omit (or send {}) to
sort by ID DESC only.
Possible values: [ASC, DESC]
Case-insensitive partial match on the payment number or its note.
PAY-2024Filter by payment IDs — useful for bulk re-sync.
[10001,10002]Filter by payment source (optional).
Possible values: [CONTRACT, SURCHARGE, CLIENT, BOOKING, CASHBACK]
["CONTRACT","BOOKING"]Filter by payment method (optional).
Possible values: [CARD, CASH, TRANSFER, BALANCE, BANK, PAYME, MY_UZCARD, UZUM, PAYLOV, UYSOT_PAY, ATMOS, OTHERS, CUSTOM, CASHBACK, CLICK]
["CASH","CARD"]Filter by direction — income or outcome. Replaces the single-valued debit.
Possible values: [INCOME, OUTCOME]
["INCOME"]Minimum payment amount (inclusive, optional).
Possible values: >= 0
1000000Maximum payment amount (inclusive, optional).
Possible values: >= 0
50000000Payment date lower bound (inclusive), epoch seconds. Replaces start.
1700000000Payment date upper bound (inclusive), epoch seconds. Replaces finish.
1750000000System-entry date lower bound (inclusive), epoch seconds — the cursor to continue
from when syncing incrementally. Replaces createdStart.
1700000000System-entry date upper bound (inclusive), epoch seconds. Replaces createdFinish.
1750000000Filter by currency IDs (optional).
[1,2]Filter by contract IDs — for CONTRACT / SURCHARGE payments. Replaces contractId.
[1409]Filter by payer client IDs (the response's payerId). Replaces clientId.
[3001]Filter by booking IDs — for BOOKING payments. Replaces bookingId.
[512]Filter by the employee who created the payment.
[42]Filter by the employee who cancelled the payment.
[5]Filter by branch IDs (optional).
[1,2]Filter by house (residential complex) IDs (optional).
[1,2]Filter by building IDs (optional).
[10,11]true — only mortgage payments, false — only non-mortgage ones. null (omit) — don't filter.
truePayment visibility filter for POST /v1/open-api/payment/filter.
ALL— All payments (default)ACTIVE— Only active (non-cancelled) paymentsCANCELLED— Only cancelled payments
Possible values: [ALL, ACTIVE, CANCELLED]
ALLcustomFields object[]
Conditions on the payment's custom fields — see GET /v1/open-api/payment-field
for the company's field definitions. Each entry becomes its own condition
(AND between entries), while the values inside one entry are OR-ed.
CRM custom field ID to filter on. Required.
42Field type, decides how the condition is interpreted. Defaults to TEXT.
Possible values: [TEXT, EXTENDED_TEXT, DATE, SELECT, MULTI_SELECT, RADIO, TOGGLE_SWITCH, URL, TAG, LOCATION, COUNTER, ADDRESS, EMPLOYEE, FILE, NUMBER]
TEXTSELECTValues to match (OR between them). Used for every type except NUMBER, and
ignored when hasValue is sent. For ADDRESS send comma-separated Uzbek
place names (see the description above).
["VIP"]Lower bound for NUMBER fields (inclusive). Defaults to 0 when omitted.
1000Upper bound for NUMBER fields (inclusive). Unbounded when omitted.
5000Restrict a NUMBER condition to one currency (optional). When omitted, any currency matches.
24Presence check. true → the lead has any value for this field, false → it has
none. Overrides values / numberStart / numberFinish / currencyId.
trueSingle-valued direction filter. Use debits instead; if both are sent they are merged.
Possible values: [INCOME, OUTCOME]
INCOMEPayment date lower bound (epoch seconds). Use timestampFrom instead.
1700000000Payment date upper bound (epoch seconds). Use timestampTo instead.
1750000000System-entry date lower bound (epoch seconds). Use createdTimestampFrom instead.
1700000000System-entry date upper bound (epoch seconds). Use createdTimestampTo instead.
1750000000Filter by a single contract ID. Use contractIds instead.
1409Filter by a single client ID. Use clientIds instead.
3001Filter by a single booking ID. Use bookingIds instead.
512fields objectdeprecated
Plain custom-field equality filter: each key is a payment custom field ID and each
value the exact value it must have; all pairs are combined with AND. Use
customFields instead — it covers ranges, presence checks and address matching.
{
"page": 1,
"size": 20,
"orders": {
"TIMESTAMP": "DESC"
},
"search": "PAY-2024",
"ids": [
10001,
10002
],
"bases": [
"CONTRACT",
"BOOKING"
],
"types": [
"CASH",
"CARD"
],
"debits": [
"INCOME"
],
"amountFrom": 1000000,
"amountTo": 50000000,
"timestampFrom": 1700000000,
"timestampTo": 1750000000,
"createdTimestampFrom": 1700000000,
"createdTimestampTo": 1750000000,
"currencyIds": [
1,
2
],
"contractIds": [
1409
],
"clientIds": [
3001
],
"bookingIds": [
512
],
"createdByIds": [
42
],
"canceledByIds": [
5
],
"branchIds": [
1,
2
],
"houseIds": [
1,
2
],
"buildingIds": [
10,
11
],
"mortgage": true,
"paymentView": "ALL",
"customFields": [
{
"customFieldId": 42,
"type": "SELECT",
"values": [
"VIP"
],
"numberStart": 1000,
"numberFinish": 5000,
"currencyId": 24,
"hasValue": true
}
]
}