FinanceFinance operations

Finance operations

Finance · 4 операції

GET

List finance operations

/api/finance-operation

Income and expense operations with filters: date range, type, account, article, payment type, amount range, students, manager. Paginated.

list_finance_operations

Параметри запиту · 27

pagenumberмін. 1 · за замовчуванням 1
pageSizenumber1–250 · за замовчуванням 20
sortBystringОдне з: financeOperationId typeOfOperation typeOfCategory account amount customer dateOfOperation createdAt
sortOrderstringОдне з: ASC DESC
typeOfOperationstringобовʼязковийОдне з: INCOME TRANSFER ADJUSTMENT EXPENSES REFUND ACCOUNT_TRANSFER
typesOfOperationstring[]Одне з: INCOME TRANSFER ADJUSTMENT EXPENSES REFUND ACCOUNT_TRANSFER
typeOfCategorystringобовʼязковийОдне з: SUBSCRIPTION WAGE OTHER
typesOfCategorystring[]Одне з: SUBSCRIPTION WAGE OTHER
Показати ще 19
accountIdnumberобовʼязковий—
accountIdsnumber[]—
articleIdnumberобовʼязковий—
articleIdsnumber[]—
typeOfPaymentIdnumberобовʼязковий—
typeOfPaymentIdsnumber[]—
amountnumberобовʼязковий—
amountFromnumberобовʼязковий—
amountTonumberобовʼязковий—
notestringобовʼязковий—
managerIdnumberобовʼязковий—
managerIdsnumber[]—
studentIdsnumber[]—
subscriptionIdsnumber[]—
wageIdsnumber[]—
leadIdnumber—
dateStartstring—
dateEndstring—
cfstring[]—

Відповідь · 200

application/json

statusCodenumberобовʼязковийприклад 200
messagestringобовʼязковий—
dataobject4 поля
totalnumberобовʼязковий—
totalPagesnumberобовʼязковий—
currentPagenumberобовʼязковий—
financeOperationsobject[]обовʼязковий27 полів
financeOperationIdnumberобовʼязковий—
typeOfOperationstringобовʼязковийОдне з: INCOME TRANSFER ADJUSTMENT EXPENSES REFUND ACCOUNT_TRANSFER
typeOfCategorystringобовʼязковийОдне з: SUBSCRIPTION WAGE OTHER
accountIdnumberобовʼязковийможе бути null—
accountToIdnumberобовʼязковийможе бути null—
articleIdnumberобовʼязковийможе бути null—
dateOfOperationstringобовʼязковийможе бути nullформат YYYY-MM-DDTHH:mm:ss
accrualPeriodFromstringобовʼязковийможе бути nullформат YYYY-MM-DDTHH:mm:ss
accrualPeriodTostringобовʼязковийможе бути nullформат YYYY-MM-DDTHH:mm:ss
subscriptionAllocationsobject[]обовʼязковий5 полів
amountnumberобовʼязковий—
allocationIdnumberобовʼязковий—
studentSubscriptionIdnumberобовʼязковий—
typeOfPaymentIdnumberобовʼязковийможе бути null—
leadIdnumberобовʼязковийможе бути null—
wageAllocationsobject[]обовʼязковий4 поля
amountnumberобовʼязковий—
allocationIdnumberобовʼязковий—
wageIdnumberобовʼязковий—
typeOfPaymentIdnumberобовʼязковийможе бути null—
bonusAllocationsobject[]обовʼязковий4 поля
amountnumberобовʼязковий—
allocationIdnumberобовʼязковий—
bonusIdnumberобовʼязковий—
typeOfPaymentIdnumberобовʼязковийможе бути null—
otherAllocationsobject[]обовʼязковий2 поля
amountnumberобовʼязковий—
allocationIdnumberобовʼязковий—
customerIdnumberобовʼязковийможе бути null—
studentIdnumberобовʼязковийможе бути null—
categoryIdnumberобовʼязковийможе бути null—
counterpartyIdnumberобовʼязковийможе бути null—
projectIdnumberобовʼязковийможе бути null—
managerIdnumberобовʼязковийможе бути null—
createdByUserIdnumberобовʼязковийможе бути null—
isVerifiedbooleanобовʼязковий—
verifiedByUserIdnumberобовʼязковийможе бути null—
fileobjectобовʼязковий4 поля
storageFileIdnumberобовʼязковий—
keystringобовʼязковий—
namestringобовʼязковий—
mimeTypestringобовʼязковийможе бути null—
notestringобовʼязковийможе бути null—
updatedAtstringобовʼязковийформат YYYY-MM-DDTHH:mm:ss
createdAtstringобовʼязковийформат YYYY-MM-DDTHH:mm:ss
customFieldsobjectдовільні ключі
Помилки400401403429500
curl "https://your-school.rist.pro/api/finance-operation" \
  -H "Authorization: Bearer $RIST_API_KEY"
Приклад відповіді · 200
{
  "statusCode": 200,
  "message": "Operation completed successfully",
  "data": {
    "total": 0,
    "totalPages": 0,
    "currentPage": 0,
    "financeOperations": [
      {
        "financeOperationId": 1,
        "typeOfOperation": "INCOME",
        "typeOfCategory": "SUBSCRIPTION",
        "accountId": 1,
        "accountToId": 1,
        "articleId": 1,
        "dateOfOperation": "2026-11-09T14:30:00",
        "accrualPeriodFrom": "2026-11-09T14:30:00",
        "accrualPeriodTo": "2026-11-09T14:30:00",
        "subscriptionAllocations": [
          {
            "amount": 0,
            "allocationId": 1,
            "studentSubscriptionId": 1,
            "typeOfPaymentId": 1,
            "leadId": 1
          }
        ],
        "wageAllocations": [
          {
            "amount": 0,
            "allocationId": 1,
            "wageId": 1,
            "typeOfPaymentId": 1
          }
        ],
        "bonusAllocations": [
          {
            "amount": 0,
            "allocationId": 1,
            "bonusId": 1,
            "typeOfPaymentId": 1
          }
        ],
        "otherAllocations": [
          {
            "amount": 0,
            "allocationId": 1
          }
        ],
        "customerId": 1,
        "studentId": 1,
        "categoryId": 1,
        "counterpartyId": 1,
        "projectId": 1,
        "managerId": 1,
        "createdByUserId": 1,
        "isVerified": false,
        "verifiedByUserId": 1,
        "file": {
          "storageFileId": 1,
          "key": "string",
          "name": "string",
          "mimeType": "string"
        },
        "note": "string",
        "updatedAt": "2026-11-09T14:30:00",
        "createdAt": "2026-11-09T14:30:00",
        "customFields": {}
      }
    ]
  }
}
GET

Get finance operation

/api/finance-operation/{id}

One finance operation with its account, article, payer and allocations.

get_finance_operation

Параметри шляху · 1

idnumberобовʼязковий—

Відповідь · 200

application/json

statusCodenumberобовʼязковийприклад 200
messagestringобовʼязковий—
dataobject27 полів
financeOperationIdnumberобовʼязковий—
typeOfOperationstringобовʼязковийОдне з: INCOME TRANSFER ADJUSTMENT EXPENSES REFUND ACCOUNT_TRANSFER
typeOfCategorystringобовʼязковийОдне з: SUBSCRIPTION WAGE OTHER
accountIdnumberобовʼязковийможе бути null—
accountToIdnumberобовʼязковийможе бути null—
articleIdnumberобовʼязковийможе бути null—
dateOfOperationstringобовʼязковийможе бути nullформат YYYY-MM-DDTHH:mm:ss
accrualPeriodFromstringобовʼязковийможе бути nullформат YYYY-MM-DDTHH:mm:ss
accrualPeriodTostringобовʼязковийможе бути nullформат YYYY-MM-DDTHH:mm:ss
subscriptionAllocationsobject[]обовʼязковий5 полів
amountnumberобовʼязковий—
allocationIdnumberобовʼязковий—
studentSubscriptionIdnumberобовʼязковий—
typeOfPaymentIdnumberобовʼязковийможе бути null—
leadIdnumberобовʼязковийможе бути null—
wageAllocationsobject[]обовʼязковий4 поля
amountnumberобовʼязковий—
allocationIdnumberобовʼязковий—
wageIdnumberобовʼязковий—
typeOfPaymentIdnumberобовʼязковийможе бути null—
bonusAllocationsobject[]обовʼязковий4 поля
amountnumberобовʼязковий—
allocationIdnumberобовʼязковий—
bonusIdnumberобовʼязковий—
typeOfPaymentIdnumberобовʼязковийможе бути null—
otherAllocationsobject[]обовʼязковий2 поля
amountnumberобовʼязковий—
allocationIdnumberобовʼязковий—
customerIdnumberобовʼязковийможе бути null—
studentIdnumberобовʼязковийможе бути null—
categoryIdnumberобовʼязковийможе бути null—
counterpartyIdnumberобовʼязковийможе бути null—
projectIdnumberобовʼязковийможе бути null—
managerIdnumberобовʼязковийможе бути null—
createdByUserIdnumberобовʼязковийможе бути null—
isVerifiedbooleanобовʼязковий—
verifiedByUserIdnumberобовʼязковийможе бути null—
fileobjectобовʼязковий4 поля
storageFileIdnumberобовʼязковий—
keystringобовʼязковий—
namestringобовʼязковий—
mimeTypestringобовʼязковийможе бути null—
notestringобовʼязковийможе бути null—
updatedAtstringобовʼязковийформат YYYY-MM-DDTHH:mm:ss
createdAtstringобовʼязковийформат YYYY-MM-DDTHH:mm:ss
customFieldsobjectдовільні ключі
Помилки400401403429500
curl "https://your-school.rist.pro/api/finance-operation/1" \
  -H "Authorization: Bearer $RIST_API_KEY"
Приклад відповіді · 200
{
  "statusCode": 200,
  "message": "Operation completed successfully",
  "data": {
    "financeOperationId": 1,
    "typeOfOperation": "INCOME",
    "typeOfCategory": "SUBSCRIPTION",
    "accountId": 1,
    "accountToId": 1,
    "articleId": 1,
    "dateOfOperation": "2026-11-09T14:30:00",
    "accrualPeriodFrom": "2026-11-09T14:30:00",
    "accrualPeriodTo": "2026-11-09T14:30:00",
    "subscriptionAllocations": [
      {
        "amount": 0,
        "allocationId": 1,
        "studentSubscriptionId": 1,
        "typeOfPaymentId": 1,
        "leadId": 1
      }
    ],
    "wageAllocations": [
      {
        "amount": 0,
        "allocationId": 1,
        "wageId": 1,
        "typeOfPaymentId": 1
      }
    ],
    "bonusAllocations": [
      {
        "amount": 0,
        "allocationId": 1,
        "bonusId": 1,
        "typeOfPaymentId": 1
      }
    ],
    "otherAllocations": [
      {
        "amount": 0,
        "allocationId": 1
      }
    ],
    "customerId": 1,
    "studentId": 1,
    "categoryId": 1,
    "counterpartyId": 1,
    "projectId": 1,
    "managerId": 1,
    "createdByUserId": 1,
    "isVerified": false,
    "verifiedByUserId": 1,
    "file": {
      "storageFileId": 1,
      "key": "string",
      "name": "string",
      "mimeType": "string"
    },
    "note": "string",
    "updatedAt": "2026-11-09T14:30:00",
    "createdAt": "2026-11-09T14:30:00",
    "customFields": {}
  }
}
POST

Record payment or expense

/api/finance-operation

Record an income (e.g. a student payment that tops up a subscription) or an expense. Moves real money balances; confirm amount, payer and account with the user first.

create_finance_operation

Тіло запиту

application/json · object

typeOfOperationstringобовʼязковийОдне з: INCOME TRANSFER ADJUSTMENT EXPENSES REFUND ACCOUNT_TRANSFER
typeOfCategorystringобовʼязковийОдне з: SUBSCRIPTION WAGE OTHER
accountIdnumberобовʼязковийможе бути nullмін. 1
accountToIdnumberможе бути nullмін. 1
articleIdnumberобовʼязковийможе бути nullмін. 1
dateOfOperationstringобовʼязковийможе бути null—
accrualPeriodFromstringможе бути null—
accrualPeriodTostringможе бути null—
subscriptionAllocationsobject[]елементів мін. 14 поля
studentSubscriptionIdnumberобовʼязковиймін. 1
amountnumberобовʼязковий—
typeOfPaymentIdnumberможе бути nullмін. 1
leadIdnumberможе бути nullмін. 1
wageAllocationsobject[]елементів мін. 13 поля
wageIdnumberобовʼязковиймін. 1
amountnumberобовʼязковий—
typeOfPaymentIdnumberможе бути nullмін. 1
bonusAllocationsobject[]елементів мін. 13 поля
bonusIdnumberобовʼязковиймін. 1
amountnumberобовʼязковий—
typeOfPaymentIdnumberможе бути nullмін. 1
otherAllocationsobject[]елементів мін. 11 поле
amountnumberобовʼязковий—
customerIdnumberобовʼязковийможе бути nullмін. 1
studentIdnumberобовʼязковийможе бути nullмін. 1
categoryIdnumberобовʼязковийможе бути nullмін. 1
counterpartyIdnumberобовʼязковийможе бути nullмін. 1
projectIdnumberможе бути nullмін. 1
createdByUserIdnumberобовʼязковийможе бути nullмін. 1
managerIdnumberобовʼязковийможе бути nullмін. 1
notestringобовʼязковийможе бути nullдовжина макс. 1500
isVerifiedboolean—
verifiedByUserIdnumberможе бути nullмін. 1
customFieldsobjectдовільні ключі

Відповідь · 201

application/json

statusCodenumberобовʼязковийприклад 201
messagestringобовʼязковий—
dataobject27 полів
financeOperationIdnumberобовʼязковий—
typeOfOperationstringобовʼязковийОдне з: INCOME TRANSFER ADJUSTMENT EXPENSES REFUND ACCOUNT_TRANSFER
typeOfCategorystringобовʼязковийОдне з: SUBSCRIPTION WAGE OTHER
accountIdnumberобовʼязковийможе бути null—
accountToIdnumberобовʼязковийможе бути null—
articleIdnumberобовʼязковийможе бути null—
dateOfOperationstringобовʼязковийможе бути nullформат YYYY-MM-DDTHH:mm:ss
accrualPeriodFromstringобовʼязковийможе бути nullформат YYYY-MM-DDTHH:mm:ss
accrualPeriodTostringобовʼязковийможе бути nullформат YYYY-MM-DDTHH:mm:ss
subscriptionAllocationsobject[]обовʼязковий5 полів
amountnumberобовʼязковий—
allocationIdnumberобовʼязковий—
studentSubscriptionIdnumberобовʼязковий—
typeOfPaymentIdnumberобовʼязковийможе бути null—
leadIdnumberобовʼязковийможе бути null—
wageAllocationsobject[]обовʼязковий4 поля
amountnumberобовʼязковий—
allocationIdnumberобовʼязковий—
wageIdnumberобовʼязковий—
typeOfPaymentIdnumberобовʼязковийможе бути null—
bonusAllocationsobject[]обовʼязковий4 поля
amountnumberобовʼязковий—
allocationIdnumberобовʼязковий—
bonusIdnumberобовʼязковий—
typeOfPaymentIdnumberобовʼязковийможе бути null—
otherAllocationsobject[]обовʼязковий2 поля
amountnumberобовʼязковий—
allocationIdnumberобовʼязковий—
customerIdnumberобовʼязковийможе бути null—
studentIdnumberобовʼязковийможе бути null—
categoryIdnumberобовʼязковийможе бути null—
counterpartyIdnumberобовʼязковийможе бути null—
projectIdnumberобовʼязковийможе бути null—
managerIdnumberобовʼязковийможе бути null—
createdByUserIdnumberобовʼязковийможе бути null—
isVerifiedbooleanобовʼязковий—
verifiedByUserIdnumberобовʼязковийможе бути null—
fileobjectобовʼязковий4 поля
storageFileIdnumberобовʼязковий—
keystringобовʼязковий—
namestringобовʼязковий—
mimeTypestringобовʼязковийможе бути null—
notestringобовʼязковийможе бути null—
updatedAtstringобовʼязковийформат YYYY-MM-DDTHH:mm:ss
createdAtstringобовʼязковийформат YYYY-MM-DDTHH:mm:ss
customFieldsobjectдовільні ключі
Помилки400401403429500
curl -X POST "https://your-school.rist.pro/api/finance-operation" \
  -H "Authorization: Bearer $RIST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "typeOfOperation": "INCOME",
    "typeOfCategory": "SUBSCRIPTION",
    "accountId": 1,
    "accountToId": 1,
    "articleId": 1,
    "dateOfOperation": "string",
    "accrualPeriodFrom": "string",
    "accrualPeriodTo": "string",
    "subscriptionAllocations": [
      {
        "studentSubscriptionId": 1,
        "amount": 0,
        "typeOfPaymentId": 1,
        "leadId": 1
      }
    ],
    "wageAllocations": [
      {
        "wageId": 1,
        "amount": 0,
        "typeOfPaymentId": 1
      }
    ],
    "bonusAllocations": [
      {
        "bonusId": 1,
        "amount": 0,
        "typeOfPaymentId": 1
      }
    ],
    "otherAllocations": [
      {
        "amount": 0
      }
    ],
    "customerId": 1,
    "studentId": 1,
    "categoryId": 1,
    "counterpartyId": 1,
    "projectId": 1,
    "createdByUserId": 1,
    "managerId": 1,
    "note": "string",
    "isVerified": false,
    "verifiedByUserId": 1,
    "customFields": {}
  }'
Приклад відповіді · 201
{
  "statusCode": 201,
  "message": "Operation completed successfully",
  "data": {
    "financeOperationId": 1,
    "typeOfOperation": "INCOME",
    "typeOfCategory": "SUBSCRIPTION",
    "accountId": 1,
    "accountToId": 1,
    "articleId": 1,
    "dateOfOperation": "2026-11-09T14:30:00",
    "accrualPeriodFrom": "2026-11-09T14:30:00",
    "accrualPeriodTo": "2026-11-09T14:30:00",
    "subscriptionAllocations": [
      {
        "amount": 0,
        "allocationId": 1,
        "studentSubscriptionId": 1,
        "typeOfPaymentId": 1,
        "leadId": 1
      }
    ],
    "wageAllocations": [
      {
        "amount": 0,
        "allocationId": 1,
        "wageId": 1,
        "typeOfPaymentId": 1
      }
    ],
    "bonusAllocations": [
      {
        "amount": 0,
        "allocationId": 1,
        "bonusId": 1,
        "typeOfPaymentId": 1
      }
    ],
    "otherAllocations": [
      {
        "amount": 0,
        "allocationId": 1
      }
    ],
    "customerId": 1,
    "studentId": 1,
    "categoryId": 1,
    "counterpartyId": 1,
    "projectId": 1,
    "managerId": 1,
    "createdByUserId": 1,
    "isVerified": false,
    "verifiedByUserId": 1,
    "file": {
      "storageFileId": 1,
      "key": "string",
      "name": "string",
      "mimeType": "string"
    },
    "note": "string",
    "updatedAt": "2026-11-09T14:30:00",
    "createdAt": "2026-11-09T14:30:00",
    "customFields": {}
  }
}
PATCH

Edit finance operation

/api/finance-operation/{id}

Rewrite a finance operation. Send the full operation as in POST /api/finance-operation, not only changed fields: allocations sent replace the old ones and balances are recalculated. Confirm with the user first.

update_finance_operation

Параметри шляху · 1

idnumberобовʼязковий—

Тіло запиту

application/json · object

typeOfOperationstringобовʼязковийОдне з: INCOME TRANSFER ADJUSTMENT EXPENSES REFUND ACCOUNT_TRANSFER
typeOfCategorystringобовʼязковийОдне з: SUBSCRIPTION WAGE OTHER
accountIdnumberобовʼязковийможе бути nullмін. 1
accountToIdnumberможе бути nullмін. 1
articleIdnumberобовʼязковийможе бути nullмін. 1
dateOfOperationstringобовʼязковийможе бути null—
accrualPeriodFromstringможе бути null—
accrualPeriodTostringможе бути null—
subscriptionAllocationsobject[]елементів мін. 14 поля
studentSubscriptionIdnumberобовʼязковиймін. 1
amountnumberобовʼязковий—
typeOfPaymentIdnumberможе бути nullмін. 1
leadIdnumberможе бути nullмін. 1
wageAllocationsobject[]елементів мін. 13 поля
wageIdnumberобовʼязковиймін. 1
amountnumberобовʼязковий—
typeOfPaymentIdnumberможе бути nullмін. 1
bonusAllocationsobject[]елементів мін. 13 поля
bonusIdnumberобовʼязковиймін. 1
amountnumberобовʼязковий—
typeOfPaymentIdnumberможе бути nullмін. 1
otherAllocationsobject[]елементів мін. 11 поле
amountnumberобовʼязковий—
customerIdnumberобовʼязковийможе бути nullмін. 1
studentIdnumberобовʼязковийможе бути nullмін. 1
categoryIdnumberобовʼязковийможе бути nullмін. 1
counterpartyIdnumberобовʼязковийможе бути nullмін. 1
projectIdnumberможе бути nullмін. 1
createdByUserIdnumberобовʼязковийможе бути nullмін. 1
managerIdnumberобовʼязковийможе бути nullмін. 1
notestringобовʼязковийможе бути nullдовжина макс. 1500
isVerifiedboolean—
verifiedByUserIdnumberможе бути nullмін. 1
customFieldsobjectдовільні ключі

Відповідь · 200

application/json

statusCodenumberобовʼязковийприклад 200
messagestringобовʼязковий—
dataobject27 полів
financeOperationIdnumberобовʼязковий—
typeOfOperationstringобовʼязковийОдне з: INCOME TRANSFER ADJUSTMENT EXPENSES REFUND ACCOUNT_TRANSFER
typeOfCategorystringобовʼязковийОдне з: SUBSCRIPTION WAGE OTHER
accountIdnumberобовʼязковийможе бути null—
accountToIdnumberобовʼязковийможе бути null—
articleIdnumberобовʼязковийможе бути null—
dateOfOperationstringобовʼязковийможе бути nullформат YYYY-MM-DDTHH:mm:ss
accrualPeriodFromstringобовʼязковийможе бути nullформат YYYY-MM-DDTHH:mm:ss
accrualPeriodTostringобовʼязковийможе бути nullформат YYYY-MM-DDTHH:mm:ss
subscriptionAllocationsobject[]обовʼязковий5 полів
amountnumberобовʼязковий—
allocationIdnumberобовʼязковий—
studentSubscriptionIdnumberобовʼязковий—
typeOfPaymentIdnumberобовʼязковийможе бути null—
leadIdnumberобовʼязковийможе бути null—
wageAllocationsobject[]обовʼязковий4 поля
amountnumberобовʼязковий—
allocationIdnumberобовʼязковий—
wageIdnumberобовʼязковий—
typeOfPaymentIdnumberобовʼязковийможе бути null—
bonusAllocationsobject[]обовʼязковий4 поля
amountnumberобовʼязковий—
allocationIdnumberобовʼязковий—
bonusIdnumberобовʼязковий—
typeOfPaymentIdnumberобовʼязковийможе бути null—
otherAllocationsobject[]обовʼязковий2 поля
amountnumberобовʼязковий—
allocationIdnumberобовʼязковий—
customerIdnumberобовʼязковийможе бути null—
studentIdnumberобовʼязковийможе бути null—
categoryIdnumberобовʼязковийможе бути null—
counterpartyIdnumberобовʼязковийможе бути null—
projectIdnumberобовʼязковийможе бути null—
managerIdnumberобовʼязковийможе бути null—
createdByUserIdnumberобовʼязковийможе бути null—
isVerifiedbooleanобовʼязковий—
verifiedByUserIdnumberобовʼязковийможе бути null—
fileobjectобовʼязковий4 поля
storageFileIdnumberобовʼязковий—
keystringобовʼязковий—
namestringобовʼязковий—
mimeTypestringобовʼязковийможе бути null—
notestringобовʼязковийможе бути null—
updatedAtstringобовʼязковийформат YYYY-MM-DDTHH:mm:ss
createdAtstringобовʼязковийформат YYYY-MM-DDTHH:mm:ss
customFieldsobjectдовільні ключі
Помилки400401403429500
curl -X PATCH "https://your-school.rist.pro/api/finance-operation/1" \
  -H "Authorization: Bearer $RIST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "typeOfOperation": "INCOME",
    "typeOfCategory": "SUBSCRIPTION",
    "accountId": 1,
    "accountToId": 1,
    "articleId": 1,
    "dateOfOperation": "string",
    "accrualPeriodFrom": "string",
    "accrualPeriodTo": "string",
    "subscriptionAllocations": [
      {
        "studentSubscriptionId": 1,
        "amount": 0,
        "typeOfPaymentId": 1,
        "leadId": 1
      }
    ],
    "wageAllocations": [
      {
        "wageId": 1,
        "amount": 0,
        "typeOfPaymentId": 1
      }
    ],
    "bonusAllocations": [
      {
        "bonusId": 1,
        "amount": 0,
        "typeOfPaymentId": 1
      }
    ],
    "otherAllocations": [
      {
        "amount": 0
      }
    ],
    "customerId": 1,
    "studentId": 1,
    "categoryId": 1,
    "counterpartyId": 1,
    "projectId": 1,
    "createdByUserId": 1,
    "managerId": 1,
    "note": "string",
    "isVerified": false,
    "verifiedByUserId": 1,
    "customFields": {}
  }'
Приклад відповіді · 200
{
  "statusCode": 200,
  "message": "Operation completed successfully",
  "data": {
    "financeOperationId": 1,
    "typeOfOperation": "INCOME",
    "typeOfCategory": "SUBSCRIPTION",
    "accountId": 1,
    "accountToId": 1,
    "articleId": 1,
    "dateOfOperation": "2026-11-09T14:30:00",
    "accrualPeriodFrom": "2026-11-09T14:30:00",
    "accrualPeriodTo": "2026-11-09T14:30:00",
    "subscriptionAllocations": [
      {
        "amount": 0,
        "allocationId": 1,
        "studentSubscriptionId": 1,
        "typeOfPaymentId": 1,
        "leadId": 1
      }
    ],
    "wageAllocations": [
      {
        "amount": 0,
        "allocationId": 1,
        "wageId": 1,
        "typeOfPaymentId": 1
      }
    ],
    "bonusAllocations": [
      {
        "amount": 0,
        "allocationId": 1,
        "bonusId": 1,
        "typeOfPaymentId": 1
      }
    ],
    "otherAllocations": [
      {
        "amount": 0,
        "allocationId": 1
      }
    ],
    "customerId": 1,
    "studentId": 1,
    "categoryId": 1,
    "counterpartyId": 1,
    "projectId": 1,
    "managerId": 1,
    "createdByUserId": 1,
    "isVerified": false,
    "verifiedByUserId": 1,
    "file": {
      "storageFileId": 1,
      "key": "string",
      "name": "string",
      "mimeType": "string"
    },
    "note": "string",
    "updatedAt": "2026-11-09T14:30:00",
    "createdAt": "2026-11-09T14:30:00",
    "customFields": {}
  }
}