Post a batched daily interest accrual for a program
Posts one journal entry with N per-loan debit lines to Interest
Receivable and one aggregated credit line to Interest Income.
Idempotency key SHOULD be accrual:{program_id}:{YYYY-MM-DD}.
POST
/
accruals
/
batch
Post a batched daily interest accrual for a program
OAuth2 JWT bearer tokens. Tokens are validated at API Gateway via a
Lambda Authorizer that verifies signature against the issuer's JWKS,
checks iss, aud, exp, nbf, and the tenant_id custom claim.
Granular scopes are required per operation.
Required on every POST. Must be a deterministic, client-chosen
identifier unique per tenant. Recommended format:
<event_type>:<resource_id>:<natural_key>.
Retained for 24h minimum.
Deprecated — use traceparent instead (ADR-0011).
Client-supplied correlation ID. Accepted until 2026-10-01 for
backward compatibility; will be removed after that date.
W3C Trace Context traceparent header for distributed tracing (RFC 7230).
When present, the service extracts the parent span context and creates
child spans under it, enabling end-to-end trace correlation across
API Gateway, the service, and the database.
Format: 00-<trace-id>-<parent-id>-<flags>
Non-negative integer amount in the currency's minor unit, serialized
as a string to preserve precision (JS numbers cannot safely represent
values above 2^53). BIGINT on the wire, BIGINT in the database.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Clarivo","colors":{"primary":"#3656FF","light":"#3656FF","dark":"#0D1B4A"},"logo":{"light":"https://mintcdn.com/ernestova/-pN-cwd52UwuGXwf/logo/light.png?fit=max\u0026auto=format\u0026n=-pN-cwd52UwuGXwf\u0026q=85\u0026s=07db77b0fdcb82f7d6b8a0b1b851fbcd","dark":"https://mintcdn.com/ernestova/2tfxeYsa0xd8zPya/logo/dark.svg?fit=max\u0026auto=format\u0026n=2tfxeYsa0xd8zPya\u0026q=85\u0026s=15255839f268b64ae0daecf3e12a141b"},"favicon":"https://mintcdn.com/ernestova/2tfxeYsa0xd8zPya/favicon.svg?fit=max\u0026auto=format\u0026n=2tfxeYsa0xd8zPya\u0026q=85\u0026s=8cd2a3b2d07d87e76e2f77fecd4b0d62","navbar":{"links":[{"href":"mailto:[email protected]","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.clarivo.co"}},"footer":{"socials":{"linkedin":"https://linkedin.com/company/clarivo"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Website","icon":"globe","href":"https://clarivo.co"},{"anchor":"Support","icon":"envelope","href":"mailto:[email protected]"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ernestova","hasAudioNarration":false,"actualSubdomain":"ernestova","customDomains":["docs.clarivo.co"],"gitSource":{"type":"github","owner":"ernestova","repo":"docs.clarivo.co","deployBranch":"main","isPrivate":true,"contentDirectory":"","mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a20d8f020d2facfe30018f2","collectionId":"0de2cfa5-1f08-4691-9286-c83cfbe7e607","schemaVersion":"v2"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6a20d8f020d2facfe30018f2:success","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"API reference","count":13},{"language":"default","tag":"Guides","count":12},{"language":"default","tag":"Endpoints","count":12},{"language":"default","tag":"Writing content","count":4},{"language":"default","tag":"AI tools","count":3},{"language":"default","tag":"Getting started","count":3},{"language":"default","tag":"Customization","count":2},{"language":"default","tag":"balances","count":2},{"language":"default","tag":"health","count":2},{"language":"default","tag":"journal","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/accruals/post-a-batched-daily-interest-accrual-for-a-program","slug":"/api-reference/accruals/post-a-batched-daily-interest-accrual-for-a-program","pageMetadata":{"title":"Post a batched daily interest accrual for a program","description":"Posts one journal entry with N per-loan debit lines to Interest\nReceivable and one aggregated credit line to Interest Income.\nIdempotency key SHOULD be `accrual:{program_id}:{YYYY-MM-DD}`.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /accruals/batch","href":"/api-reference/accruals/post-a-batched-daily-interest-accrual-for-a-program","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Posts one journal entry with N per-loan debit lines to Interest\\nReceivable and one aggregated credit line to Interest Income.\\nIdempotency key SHOULD be \", _jsx(_components.code, {\n children: \"accrual:{program_id}:{YYYY-MM-DD}\"\n }), \".\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Post a batched daily interest accrual for a program","description":"Posts one journal entry with N per-loan debit lines to Interest\nReceivable and one aggregated credit line to Interest Income.\nIdempotency key SHOULD be `accrual:{program_id}:{YYYY-MM-DD}`.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /accruals/batch","href":"/api-reference/accruals/post-a-batched-daily-interest-accrual-for-a-program","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["accruals"],"operationId":"postAccrualBatch","summary":"Post a batched daily interest accrual for a program","description":"Posts one journal entry with N per-loan debit lines to Interest\nReceivable and one aggregated credit line to Interest Income.\nIdempotency key SHOULD be `accrual:{program_id}:{YYYY-MM-DD}`.\n","security":["6883e993-b020-47f6-9462-49a1ca812ee5"],"parameters":["f0e26f80-5e0e-4a9c-80fa-382f1abb2b9a","3f74b614-07b9-4d16-9e71-9a1aa5476315","de0b3da7-d716-40ad-9720-a74c7a5912d0","9ea2b8a2-c516-420f-a398-b6c185656149"],"requestBody":"986a77b6-6803-4a52-883c-3ceec4027f2a","responses":{"200":"b0dad56a-b894-446b-b97c-7abe8c5af9d2","201":"be343703-5aca-49a8-9a3e-3f17b3f2f5ca","400":"61b32bca-56a6-4193-ba29-06d9e0a08298","401":"4386c7f4-2628-40e7-b44a-30cc6276db40","403":"da889685-ed88-440f-b5b3-c3f1fa6c240c","409":"38c34815-5b10-416d-88f7-f13a94ec7a82","422":"d95e5c5c-43d8-4531-b545-16d47fa986cf"},"method":"post","type":"path","servers":["e731acad-b03e-44e4-a100-eb93147f0325","2813c222-aadd-4611-bdc7-49cf940cf5fd","f769c33e-7e3e-4801-a152-bf26a8f377df","31944ad7-e0d6-42ce-b3b7-1a9f0c7995d6","38f0ca98-ba0e-4617-b137-275552dc1925","9bac47f9-a24d-49e8-a311-b715f6daa259"],"path":"/accruals/batch","baseUrlOptions":["https://ledger.clarivo.co/v1","https://ledger.staging.clarivo.co/v1","https://ledger.dev.clarivo.co/v1","https://partner.hpts.example.com/v1","http://localhost:3000/v1","http://localhost:4010/v1"],"title":"Post a batched daily interest accrual for a program","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"f0e26f80-5e0e-4a9c-80fa-382f1abb2b9a":{"name":"Idempotency-Key","in":"header","required":true,"description":"Required on every POST. Must be a deterministic, client-chosen\nidentifier unique per tenant. Recommended format:\n`\u003cevent_type>:\u003cresource_id>:\u003cnatural_key>`.\nRetained for 24h minimum.\n","schema":{"type":"string","minLength":8,"maxLength":255,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:\\-]{7,254}$","examples":["payment:loan_42:proc_txn_abc123"],"isRequired":true,"description":"Required on every POST. Must be a deterministic, client-chosen\nidentifier unique per tenant. Recommended format:\n`\u003cevent_type>:\u003cresource_id>:\u003cnatural_key>`.\nRetained for 24h minimum.\n","uniqueKey":"","typeLabel":"string"}},"3f74b614-07b9-4d16-9e71-9a1aa5476315":{"name":"X-Trace-Id","in":"header","required":false,"deprecated":true,"description":"**Deprecated — use `traceparent` instead (ADR-0011).**\nClient-supplied correlation ID. Accepted until 2026-10-01 for\nbackward compatibility; will be removed after that date.\n","schema":{"type":"string","pattern":"^[A-Za-z0-9\\-]{8,128}$","isRequired":false,"description":"**Deprecated — use `traceparent` instead (ADR-0011).**\nClient-supplied correlation ID. Accepted until 2026-10-01 for\nbackward compatibility; will be removed after that date.\n","uniqueKey":"","typeLabel":"string"}},"de0b3da7-d716-40ad-9720-a74c7a5912d0":{"name":"traceparent","in":"header","required":false,"description":"W3C Trace Context `traceparent` header for distributed tracing (RFC 7230).\nWhen present, the service extracts the parent span context and creates\nchild spans under it, enabling end-to-end trace correlation across\nAPI Gateway, the service, and the database.\nFormat: `00-\u003ctrace-id>-\u003cparent-id>-\u003cflags>`\n","schema":{"type":"string","pattern":"^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$","example":"00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01","isRequired":false,"description":"W3C Trace Context `traceparent` header for distributed tracing (RFC 7230).\nWhen present, the service extracts the parent span context and creates\nchild spans under it, enabling end-to-end trace correlation across\nAPI Gateway, the service, and the database.\nFormat: `00-\u003ctrace-id>-\u003cparent-id>-\u003cflags>`\n","uniqueKey":"","typeLabel":"string"}},"9ea2b8a2-c516-420f-a398-b6c185656149":{"name":"tracestate","in":"header","required":false,"description":"W3C Trace Context `tracestate` header. Carries vendor-specific trace\nmetadata (e.g. AWS X-Ray sampling decision). Passed through unchanged.\n","schema":{"type":"string","isRequired":false,"description":"W3C Trace Context `tracestate` header. Carries vendor-specific trace\nmetadata (e.g. AWS X-Ray sampling decision). Passed through unchanged.\n","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["program_id","accrual_date","day_count_convention","loans"],"properties":{"program_id":{"type":"string","format":"uuid","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","examples":["11111111-1111-1111-1111-111111111111"],"isRequired":true,"uniqueKey":"program_id","typeLabel":"string\u003cuuid>"},"accrual_date":{"type":"string","format":"date","isRequired":true,"uniqueKey":"accrual_date","typeLabel":"string\u003cdate>"},"day_count_convention":{"type":"string","enum":["ACT_365","ACT_360","30_360"],"isRequired":true,"uniqueKey":"day_count_convention","typeLabel":"enum\u003cstring>"},"loans":{"type":"array","minItems":1,"maxItems":100000,"items":{"type":"object","required":["loan_id","outstanding_principal_minor","interest_minor"],"additionalProperties":false,"properties":{"loan_id":{"type":"string","format":"uuid","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","examples":["11111111-1111-1111-1111-111111111111"],"isRequired":true,"uniqueKey":"loans.items.[INDEX].loan_id","typeLabel":"string\u003cuuid>"},"outstanding_principal_minor":{"type":"string","description":"Non-negative integer amount in the currency's minor unit, serialized\nas a string to preserve precision (JS numbers cannot safely represent\nvalues above 2^53). BIGINT on the wire, BIGINT in the database.\n","pattern":"^(0|[1-9][0-9]{0,18})$","minLength":1,"maxLength":19,"examples":["88849","10000000"],"isRequired":true,"uniqueKey":"loans.items.[INDEX].outstanding_principal_minor","typeLabel":"string"},"interest_minor":{"type":"string","description":"Non-negative integer amount in the currency's minor unit, serialized\nas a string to preserve precision (JS numbers cannot safely represent\nvalues above 2^53). BIGINT on the wire, BIGINT in the database.\n","pattern":"^(0|[1-9][0-9]{0,18})$","minLength":1,"maxLength":19,"examples":["88849","10000000"],"isRequired":true,"uniqueKey":"loans.items.[INDEX].interest_minor","typeLabel":"string"}},"uniqueKey":"loans.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"loans","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"program_id":"11111111-1111-1111-1111-111111111111","accrual_date":"2023-12-25","loans":[{"loan_id":"11111111-1111-1111-1111-111111111111","outstanding_principal_minor":"88849","interest_minor":"88849"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"b0dad56a-b894-446b-b97c-7abe8c5af9d2":{"description":"Idempotency replay.","headers":{"Idempotency-Replay":{"schema":{"type":"string","enum":[true]}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["accrual_event_id","journal_entry_id","loan_count","total_accrued_minor","posted_at"],"properties":{"accrual_event_id":{"type":"string","format":"uuid","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","examples":["11111111-1111-1111-1111-111111111111"],"isRequired":true,"uniqueKey":"accrual_event_id","typeLabel":"string\u003cuuid>"},"journal_entry_id":{"type":"string","format":"uuid","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","examples":["11111111-1111-1111-1111-111111111111"],"isRequired":true,"uniqueKey":"journal_entry_id","typeLabel":"string\u003cuuid>"},"loan_count":{"type":"integer","minimum":1,"isRequired":true,"uniqueKey":"loan_count","typeLabel":"integer"},"total_accrued_minor":{"type":"string","description":"Non-negative integer amount in the currency's minor unit, serialized\nas a string to preserve precision (JS numbers cannot safely represent\nvalues above 2^53). BIGINT on the wire, BIGINT in the database.\n","pattern":"^(0|[1-9][0-9]{0,18})$","minLength":1,"maxLength":19,"examples":["88849","10000000"],"isRequired":true,"uniqueKey":"total_accrued_minor","typeLabel":"string"},"posted_at":{"type":"string","format":"date-time","description":"RFC 3339 timestamp, UTC.","isRequired":true,"uniqueKey":"posted_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"accrual_event_id":"11111111-1111-1111-1111-111111111111","journal_entry_id":"11111111-1111-1111-1111-111111111111","loan_count":2,"total_accrued_minor":"88849","posted_at":"2023-11-07T05:31:56Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"be343703-5aca-49a8-9a3e-3f17b3f2f5ca":{"description":"Accrual batch posted.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["accrual_event_id","journal_entry_id","loan_count","total_accrued_minor","posted_at"],"properties":{"accrual_event_id":{"type":"string","format":"uuid","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","examples":["11111111-1111-1111-1111-111111111111"],"isRequired":true,"uniqueKey":"accrual_event_id","typeLabel":"string\u003cuuid>"},"journal_entry_id":{"type":"string","format":"uuid","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","examples":["11111111-1111-1111-1111-111111111111"],"isRequired":true,"uniqueKey":"journal_entry_id","typeLabel":"string\u003cuuid>"},"loan_count":{"type":"integer","minimum":1,"isRequired":true,"uniqueKey":"loan_count","typeLabel":"integer"},"total_accrued_minor":{"type":"string","description":"Non-negative integer amount in the currency's minor unit, serialized\nas a string to preserve precision (JS numbers cannot safely represent\nvalues above 2^53). BIGINT on the wire, BIGINT in the database.\n","pattern":"^(0|[1-9][0-9]{0,18})$","minLength":1,"maxLength":19,"examples":["88849","10000000"],"isRequired":true,"uniqueKey":"total_accrued_minor","typeLabel":"string"},"posted_at":{"type":"string","format":"date-time","description":"RFC 3339 timestamp, UTC.","isRequired":true,"uniqueKey":"posted_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"accrual_event_id":"11111111-1111-1111-1111-111111111111","journal_entry_id":"11111111-1111-1111-1111-111111111111","loan_count":2,"total_accrued_minor":"88849","posted_at":"2023-11-07T05:31:56Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"61b32bca-56a6-4193-ba29-06d9e0a08298":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status"],"additionalProperties":true,"properties":{"type":{"type":"string","format":"uri","description":"URI identifying the problem type.","examples":["https://errors.hpts.example.com/bad_request"],"isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Human-readable summary, same across occurrences.","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"Human-readable explanation specific to this occurrence.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri","description":"URI identifying this specific occurrence.","uniqueKey":"instance","typeLabel":"string\u003curi>"},"trace_id":{"type":"string","description":"Distributed-trace ID for cross-system correlation.","uniqueKey":"trace_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://errors.hpts.example.com/bad_request","title":"\u003cstring>","status":499,"detail":"\u003cstring>","instance":"\u003cstring>","trace_id":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"4386c7f4-2628-40e7-b44a-30cc6276db40":{"description":"Missing or invalid credentials","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status"],"additionalProperties":true,"properties":{"type":{"type":"string","format":"uri","description":"URI identifying the problem type.","examples":["https://errors.hpts.example.com/bad_request"],"isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Human-readable summary, same across occurrences.","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"Human-readable explanation specific to this occurrence.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri","description":"URI identifying this specific occurrence.","uniqueKey":"instance","typeLabel":"string\u003curi>"},"trace_id":{"type":"string","description":"Distributed-trace ID for cross-system correlation.","uniqueKey":"trace_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://errors.hpts.example.com/bad_request","title":"\u003cstring>","status":499,"detail":"\u003cstring>","instance":"\u003cstring>","trace_id":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"da889685-ed88-440f-b5b3-c3f1fa6c240c":{"description":"Authenticated but not authorized for this scope/tenant","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status"],"additionalProperties":true,"properties":{"type":{"type":"string","format":"uri","description":"URI identifying the problem type.","examples":["https://errors.hpts.example.com/bad_request"],"isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Human-readable summary, same across occurrences.","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"Human-readable explanation specific to this occurrence.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri","description":"URI identifying this specific occurrence.","uniqueKey":"instance","typeLabel":"string\u003curi>"},"trace_id":{"type":"string","description":"Distributed-trace ID for cross-system correlation.","uniqueKey":"trace_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://errors.hpts.example.com/bad_request","title":"\u003cstring>","status":499,"detail":"\u003cstring>","instance":"\u003cstring>","trace_id":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"38c34815-5b10-416d-88f7-f13a94ec7a82":{"description":"A request with this Idempotency-Key is currently in flight.\nThe client must back off and retry; do not change the payload.\n","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1,"maximum":30},"description":"Seconds to wait before retry"}},"content":{"application/problem+json":{"schema":{"type":"object","required":["conflict_kind","type","title","status"],"properties":{"type":{"type":"string","format":"uri","description":"URI identifying the problem type.","examples":["https://errors.hpts.example.com/bad_request"],"isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Human-readable summary, same across occurrences.","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"conflict_kind":{"type":"string","enum":["idempotency_in_progress","idempotency_mismatch"],"description":"- `idempotency_in_progress`: another request with this key is\n currently executing. Retry after Retry-After seconds.\n- `idempotency_mismatch`: this key was previously used with a\n different payload. The key may not be reused with a new\n payload within its retention window.\n","isRequired":true,"uniqueKey":"conflict_kind","typeLabel":"enum\u003cstring>"},"detail":{"type":"string","description":"Human-readable explanation specific to this occurrence.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri","description":"URI identifying this specific occurrence.","uniqueKey":"instance","typeLabel":"string\u003curi>"},"trace_id":{"type":"string","description":"Distributed-trace ID for cross-system correlation.","uniqueKey":"trace_id","typeLabel":"string"},"original_request_fingerprint":{"type":"string","description":"SHA-256 hex of the original request body.","pattern":"^[0-9a-f]{64}$","uniqueKey":"original_request_fingerprint","typeLabel":"string"},"received_request_fingerprint":{"type":"string","description":"SHA-256 hex of the current request body.","pattern":"^[0-9a-f]{64}$","uniqueKey":"received_request_fingerprint","typeLabel":"string"},"original_journal_entry_id":{"type":"string","format":"uuid","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","examples":["11111111-1111-1111-1111-111111111111"],"uniqueKey":"original_journal_entry_id","typeLabel":"string\u003cuuid>"}},"additionalProperties":true,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://errors.hpts.example.com/bad_request","title":"\u003cstring>","status":499,"conflict_kind":"idempotency_in_progress","detail":"\u003cstring>","instance":"\u003cstring>","trace_id":"\u003cstring>","original_request_fingerprint":"\u003cstring>","received_request_fingerprint":"\u003cstring>","original_journal_entry_id":"11111111-1111-1111-1111-111111111111"}}},"exampleType":"generated"}},"exampleType":"generated"},"d95e5c5c-43d8-4531-b545-16d47fa986cf":{"description":"Semantic validation failure. For idempotency, a replay with a\n*different payload* than the original returns this with type\n`idempotency_mismatch`.\n","content":{"application/problem+json":{"schema":{"type":"object","required":["type","title","status"],"properties":{"type":{"type":"string","format":"uri","description":"URI identifying the problem type.","examples":["https://errors.hpts.example.com/bad_request"],"isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Human-readable summary, same across occurrences.","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"Human-readable explanation specific to this occurrence.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri","description":"URI identifying this specific occurrence.","uniqueKey":"instance","typeLabel":"string\u003curi>"},"trace_id":{"type":"string","description":"Distributed-trace ID for cross-system correlation.","uniqueKey":"trace_id","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","required":["field","code","message"],"properties":{"field":{"type":"string","description":"JSON pointer to the offending field.","examples":["/amount_minor","/loans/3/interest_minor"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","pattern":"^[a-z_]+$","examples":["required","pattern_mismatch","out_of_range"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"additionalProperties":true,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://errors.hpts.example.com/bad_request","title":"\u003cstring>","status":499,"detail":"\u003cstring>","instance":"\u003cstring>","trace_id":"\u003cstring>","errors":[{"field":"/amount_minor","code":"required","message":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"6883e993-b020-47f6-9462-49a1ca812ee5":{"bearerAuth":{"type":"oauth2","description":"OAuth2 JWT bearer tokens. Tokens are validated at API Gateway via a\nLambda Authorizer that verifies signature against the issuer's JWKS,\nchecks `iss`, `aud`, `exp`, `nbf`, and the `tenant_id` custom claim.\nGranular scopes are required per operation.\n","flows":{"clientCredentials":{"tokenUrl":"https://auth.example.com/oauth2/token","scopes":{"hpts:payments:write":"Post payment events","hpts:disbursements:write":"Post disbursement events","hpts:accruals:write":"Post batch accruals","hpts:reversals:write":"Post reversals (privileged; audited)","hpts:ledger:read":"Read journal entries","hpts:balances:read":"Read balances","hpts:loans:read":"Read loan metadata","hpts:reconciliation:read":"Read reconciliation reports","hpts:admin:*":"Administrative operations"}},"authorizationCode":{"authorizationUrl":"https://auth.example.com/oauth2/authorize","tokenUrl":"https://auth.example.com/oauth2/token","refreshUrl":"https://auth.example.com/oauth2/token","scopes":{"hpts:balances:read":"Read balances","hpts:ledger:read":"Read journal entries"}}},"scopes":["hpts:accruals:write"]}}},"servers":{"e731acad-b03e-44e4-a100-eb93147f0325":{"url":"https://ledger.clarivo.co/v1","description":"Production"},"2813c222-aadd-4611-bdc7-49cf940cf5fd":{"url":"https://ledger.staging.clarivo.co/v1","description":"Staging"},"f769c33e-7e3e-4801-a152-bf26a8f377df":{"url":"https://ledger.dev.clarivo.co/v1","description":"Development"},"31944ad7-e0d6-42ce-b3b7-1a9f0c7995d6":{"url":"https://partner.hpts.example.com/v1","description":"B2B partner endpoint (mTLS required)"},"38f0ca98-ba0e-4617-b137-275552dc1925":{"url":"http://localhost:3000/v1","description":"Local (cmd/server)"},"9bac47f9-a24d-49e8-a311-b715f6daa259":{"url":"http://localhost:4010/v1","description":"Local Prism mock"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"oauth2","description":"OAuth2 JWT bearer tokens. Tokens are validated at API Gateway via a\nLambda Authorizer that verifies signature against the issuer's JWKS,\nchecks `iss`, `aud`, `exp`, `nbf`, and the `tenant_id` custom claim.\nGranular scopes are required per operation.\n","flows":{"clientCredentials":{"tokenUrl":"https://auth.example.com/oauth2/token","scopes":{"hpts:payments:write":"Post payment events","hpts:disbursements:write":"Post disbursement events","hpts:accruals:write":"Post batch accruals","hpts:reversals:write":"Post reversals (privileged; audited)","hpts:ledger:read":"Read journal entries","hpts:balances:read":"Read balances","hpts:loans:read":"Read loan metadata","hpts:reconciliation:read":"Read reconciliation reports","hpts:admin:*":"Administrative operations"}},"authorizationCode":{"authorizationUrl":"https://auth.example.com/oauth2/authorize","tokenUrl":"https://auth.example.com/oauth2/token","refreshUrl":"https://auth.example.com/oauth2/token","scopes":{"hpts:balances:read":"Read balances","hpts:ledger:read":"Read journal entries"}}},"scopes":["hpts:accruals:write"]},"schema":{"title":"OAuth2 Auth","type":"string","isRequired":true,"description":"OAuth2 JWT bearer tokens. Tokens are validated at API Gateway via a\nLambda Authorizer that verifies signature against the issuer's JWKS,\nchecks `iss`, `aud`, `exp`, `nbf`, and the `tenant_id` custom claim.\nGranular scopes are required per operation.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"ernestova","siteName":"Clarivo","title":"Post a batched daily interest accrual for a program - Clarivo","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-05-01T23:06:24.625Z","originalFileLocation":"api-reference/accruals/post-a-batched-daily-interest-accrual-for-a-program.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Posts one journal entry with N per-loan debit lines to Interest Receivable and one aggregated credit line to Interest Income. Idempotency key SHOULD be accrual:{program_id}:{YYYY-MM-DD}.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Clarivo\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ernestova/hQJxd9lKbBwLpjSM/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/ernestova/hQJxd9lKbBwLpjSM/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ernestova/hQJxd9lKbBwLpjSM/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ernestova/hQJxd9lKbBwLpjSM/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ernestova/hQJxd9lKbBwLpjSM/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ernestova/hQJxd9lKbBwLpjSM/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ernestova/hQJxd9lKbBwLpjSM/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ernestova/hQJxd9lKbBwLpjSM/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ernestova/hQJxd9lKbBwLpjSM/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Post a batched daily interest accrual for a program - Clarivo\">\u003cmeta data-mint-head property=\"og:description\" content=\"Posts one journal entry with N per-loan debit lines to Interest Receivable and one aggregated credit line to Interest Income. Idempotency key SHOULD be accrual:{program_id}:{YYYY-MM-DD}.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Clarivo\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.clarivo.co/api-reference/accruals/post-a-batched-daily-interest-accrual-for-a-program\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ernestova.mintlify.app/_mintlify/api/og/v2?division=accruals\u0026amp;title=Post+a+batched+daily+interest+accrual+for+a+program\u0026amp;description=Posts+one+journal+entry+with+N+per-loan+debit+lines+to+Interest%0AReceivable+and+one+aggregated+credit+line+to+Interest+Income.%0AIdempotency+key+SHOULD+be+%60accrual\u0026amp;theme=727e387f59ed6cd9c522712f\u0026amp;signature=12644bc4b1cb47b1c163073c2456f31559660505947e05716d5b93e0b5cc9bf2\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Post a batched daily interest accrual for a program - Clarivo\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Posts one journal entry with N per-loan debit lines to Interest Receivable and one aggregated credit line to Interest Income. Idempotency key SHOULD be accrual:{program_id}:{YYYY-MM-DD}.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ernestova.mintlify.app/_mintlify/api/og/v2?division=accruals\u0026amp;title=Post+a+batched+daily+interest+accrual+for+a+program\u0026amp;description=Posts+one+journal+entry+with+N+per-loan+debit+lines+to+Interest%0AReceivable+and+one+aggregated+credit+line+to+Interest+Income.%0AIdempotency+key+SHOULD+be+%60accrual\u0026amp;theme=727e387f59ed6cd9c522712f\u0026amp;signature=12644bc4b1cb47b1c163073c2456f31559660505947e05716d5b93e0b5cc9bf2\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/ernestova/hQJxd9lKbBwLpjSM/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Clarivo\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3656FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.clarivo.co/api-reference/accruals/post-a-batched-daily-interest-accrual-for-a-program\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/accruals/post-a-batched-daily-interest-accrual-for-a-program.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.clarivo.co/#organization\",\"name\":\"Clarivo\",\"url\":\"https://docs.clarivo.co\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/ernestova/-pN-cwd52UwuGXwf/logo/light.png?fit=max\u0026auto=format\u0026n=-pN-cwd52UwuGXwf\u0026q=85\u0026s=07db77b0fdcb82f7d6b8a0b1b851fbcd\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.clarivo.co#website\",\"name\":\"Clarivo\",\"url\":\"https://docs.clarivo.co\",\"publisher\":{\"@id\":\"https://docs.clarivo.co/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.clarivo.co/api-reference/accruals/post-a-batched-daily-interest-accrual-for-a-program#webpage\",\"url\":\"https://docs.clarivo.co/api-reference/accruals/post-a-batched-daily-interest-accrual-for-a-program\",\"name\":\"Post a batched daily interest accrual for a program\",\"description\":\"Posts one journal entry with N per-loan debit lines to Interest Receivable and one aggregated credit line to Interest Income. Idempotency key SHOULD be accrual:{program_id}:{YYYY-MM-DD}.\",\"dateModified\":\"2026-05-01T23:06:24.625Z\",\"isPartOf\":{\"@id\":\"https://docs.clarivo.co#website\"},\"breadcrumb\":{\"@id\":\"https://docs.clarivo.co/api-reference/accruals/post-a-batched-daily-interest-accrual-for-a-program#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.clarivo.co/api-reference/accruals/post-a-batched-daily-interest-accrual-for-a-program#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.clarivo.co/api-reference/health/liveness-probe\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Post a batched daily interest accrual for a program\",\"item\":\"https://docs.clarivo.co/api-reference/accruals/post-a-batched-daily-interest-accrual-for-a-program\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.clarivo.co/api-reference/accruals/post-a-batched-daily-interest-accrual-for-a-program#apireference\",\"headline\":\"Post a batched daily interest accrual for a program\",\"name\":\"Post a batched daily interest accrual for a program\",\"description\":\"Posts one journal entry with N per-loan debit lines to Interest Receivable and one aggregated credit line to Interest Income. Idempotency key SHOULD be accrual:{program_id}:{YYYY-MM-DD}.\",\"url\":\"https://docs.clarivo.co/api-reference/accruals/post-a-batched-daily-interest-accrual-for-a-program\",\"mainEntityOfPage\":{\"@id\":\"https://docs.clarivo.co/api-reference/accruals/post-a-batched-daily-interest-accrual-for-a-program#webpage\"},\"dateModified\":\"2026-05-01T23:06:24.625Z\",\"publisher\":{\"@id\":\"https://docs.clarivo.co/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.clarivo.co#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Clarivo\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Clarivo","nav":{"global":{"anchors":[{"anchor":"Website","icon":"globe","href":"https://clarivo.co"},{"anchor":"Support","icon":"envelope","href":"mailto:[email protected]"}]},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API reference","groups":[{"group":"API documentation","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"group":"Endpoints","pages":[{"group":"health","pages":[{"title":"Liveness probe","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /health/live","href":"/api-reference/health/liveness-probe"},{"title":"Readiness probe (checks DB connectivity)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /health/ready","href":"/api-reference/health/readiness-probe-checks-db-connectivity"}]},{"group":"payments","pages":[{"title":"Record a loan payment and post to ledger","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /payments","href":"/api-reference/payments/record-a-loan-payment-and-post-to-ledger"}]},{"group":"disbursements","pages":[{"title":"Record a loan disbursement","description":"Debits Principal Receivable, credits the disbursement clearing account.\nRequires `hpts:disbursements:write` scope.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /disbursements","href":"/api-reference/disbursements/record-a-loan-disbursement"}]},{"group":"accruals","pages":[{"title":"Post a batched daily interest accrual for a program","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /accruals/batch","href":"/api-reference/accruals/post-a-batched-daily-interest-accrual-for-a-program"}]},{"group":"reversals","pages":[{"title":"Post a reversal of an existing journal entry","description":"Creates a new journal entry whose lines are the direction-flipped\ncounterparts of the original. Requires the `hpts:reversals:write`\nscope, which is granted only to privileged roles and audited.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /reversals","href":"/api-reference/reversals/post-a-reversal-of-an-existing-journal-entry"}]},{"group":"balances","pages":[{"title":"Current balance for a loan (all sub-accounts)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /loans/{loan_id}/balance","href":"/api-reference/balances/current-balance-for-a-loan-all-sub-accounts"},{"title":"General-ledger account balance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /accounts/{account_code}/balance","href":"/api-reference/balances/general-ledger-account-balance"}]},{"group":"journal","pages":[{"title":"Fetch a journal entry with its lines","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /journal-entries/{journal_entry_id}","href":"/api-reference/journal/fetch-a-journal-entry-with-its-lines"},{"title":"Paginated journal history for a loan","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /loans/{loan_id}/journal-entries","href":"/api-reference/journal/paginated-journal-history-for-a-loan"}]},{"group":"reconciliation","pages":[{"title":"Latest reconciliation check results","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /reconciliation/status","href":"/api-reference/reconciliation/latest-reconciliation-check-results"}]},{"group":"API Reference","pages":[{"title":"Fires when a journal entry is posted","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook journalEntryPosted","href":"/api-reference/fires-when-a-journal-entry-is-posted"}]}]}]}]},"title":"Post a batched daily interest accrual for a program - Clarivo","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-WRhTSUDL.js","utils-ChMov4Kr.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-_REmC2bI.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp6nVRCu.js","snippetPresets-DZadmXoU.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CY2WdoTl.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DwYG-Q4l.js","shallow-BXQIGwv4.js","getApiPlaygroundDisplay-CK5nK5B9.js","CodeSnippet-TH4a2aGW.js","CodeSnippets-DwsQiOFS.js","Page-R3M_BF4L.js","getPastedJson-DD7kUzi_.js","icon-holE3QoJ.js","MethodPill-DUW0T8us.js","DuplicateIcon-CI_p4be-.js","createIcon-BdbRvavb.js","DynamicMarkdown-DN96a4Ur.js","SectionHeading-SCu36A9d.js","axios-vUo_bRtp.js","Markdown-CCeGv-zI.js","clsx-BGBGWFTt.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-Cv_O2fky.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-2C5OB2eV.js"]}