Internal reference for request/response contracts. Keep this page updated as endpoints evolve.
Endpoints
POST /api/entries/update-draft
Updates draft entry fields. Returns 200 OK.
Only draft entries can be patched.
{
"entryId": "347ba86a-5716-4d6d-95af-298995661152",
"reportingDate": "2026-03-31",
"transactionTypeId": "feae48bc-9a62-4b43-9e60-bb8bc181daf3",
"subEntries": [
{
"subEntryTypeId": "3cf4f3e3-115f-44c8-a49a-de9977a8336c",
"baseAmount": 1500,
"localAmount": 1500
}
]
}POST /api/entries/create-draft
Creates a draft entry (does not book). Returns 201 Created.
Required fields: dealId, projectId, entryTypeId, allocationRuleId, effectiveDate, reportingDate.
{
"dealId": "9dbfb820-ee2f-4f50-a4a0-5c300b92e67c",
"projectId": "496d37b9-4d65-46e9-a09e-2c8b0f0c4700",
"entryTypeId": "7e12ae10-2f87-4d92-8218-4a1f3f707163",
"allocationRuleId": "f19dc8ee-798b-4298-944a-32293ff4997e",
"effectiveDate": "2026-02-28",
"reportingDate": "2026-02-28",
"transactionTypeId": "feae48bc-9a62-4b43-9e60-bb8bc181daf3",
"isForecast": false,
"subEntries": [
{
"subEntryTypeId": "3cf4f3e3-115f-44c8-a49a-de9977a8336c",
"baseAmount": 1000,
"localAmount": 1000
}
]
}POST /api/entries/create-and-book
Creates an entry, writes sub-entries, and books transactionally. Returns 201 Created.
Required fields: dealId, projectId, entryTypeId, allocationRuleId, effectiveDate, reportingDate.
Recommended: provide transactionTypeId (server maps code into transaction_type).
{
"dealId": "9dbfb820-ee2f-4f50-a4a0-5c300b92e67c",
"projectId": "496d37b9-4d65-46e9-a09e-2c8b0f0c4700",
"entryTypeId": "7e12ae10-2f87-4d92-8218-4a1f3f707163",
"allocationRuleId": "f19dc8ee-798b-4298-944a-32293ff4997e",
"effectiveDate": "2026-02-28",
"reportingDate": "2026-02-28",
"transactionTypeId": "feae48bc-9a62-4b43-9e60-bb8bc181daf3",
"isForecast": false,
"subEntries": [
{
"subEntryTypeId": "3cf4f3e3-115f-44c8-a49a-de9977a8336c",
"baseAmount": 1000,
"localAmount": 1000
}
]
}POST /api/entries/revise-booked
Revises an existing booked entry by creating a replacement booked entry and superseding the source entry. Returns 201 Created.
Required fields: sourceEntryId, projectId, entryTypeId, allocationRuleId, effectiveDate, reportingDate.
{
"sourceEntryId": "347ba86a-5716-4d6d-95af-298995661152",
"projectId": "496d37b9-4d65-46e9-a09e-2c8b0f0c4700",
"entryTypeId": "7e12ae10-2f87-4d92-8218-4a1f3f707163",
"allocationRuleId": "f19dc8ee-798b-4298-944a-32293ff4997e",
"effectiveDate": "2026-03-31",
"reportingDate": "2026-03-31",
"transactionTypeId": "feae48bc-9a62-4b43-9e60-bb8bc181daf3",
"isForecast": false,
"subEntries": [
{
"subEntryTypeId": "3cf4f3e3-115f-44c8-a49a-de9977a8336c",
"baseAmount": 1200,
"localAmount": 1200
}
]
}POST /api/entries/book
Books an existing draft entry. Returns 200 OK.
{
"entryId": "347ba86a-5716-4d6d-95af-298995661152",
"expectedEntryTypeId": "7e12ae10-2f87-4d92-8218-4a1f3f707163",
"effectiveDate": "2026-02-28",
"reportingDate": "2026-02-28"
}POST /api/entries/validate-roc
Validates ROC amount for a deal without booking. Returns 200 OK.
{
"dealId": "9dbfb820-ee2f-4f50-a4a0-5c300b92e67c",
"rocBaseAmount": 500
}POST /api/allocation-rules/validate
Validates allocation split payloads. Returns 200 OK.
{
"fundSplits": [
{ "fundFamilyId": "fund_1", "percentage": 60 },
{ "fundFamilyId": "fund_2", "percentage": 40 }
],
"legalEntitySplits": [
{ "fundFamilyId": "fund_1", "legalEntityId": "le_1", "percentage": 60 },
{ "fundFamilyId": "fund_2", "legalEntityId": "le_2", "percentage": 40 }
]
}