{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"LOC migration special cases and configuration","siteUrl":"https://docs.peachfinance.com","description":"API and product documentation for Peach Finance, a lending-as-a-service platform.","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"loc-migration-special-cases-and-configuration","__idx":0},"children":["LOC migration special cases and configuration"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"origination-and-draw-fees","__idx":1},"children":["Origination and draw fees"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If the LOC charges origination fees or draw fees that are expected to be paid after the migration cutoff date, configure them during loan and draw creation."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"origination-fees","__idx":2},"children":["Origination fees"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Pass the origination fee amount in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["atOrigination.fees"]}," object when creating the loan:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"atOrigination\": {\n    \"fees\": {\n      \"originationFeeAmount\": 150.00\n    }\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Then include the remaining origination fee balance in the migration period LOC data under ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nonDueBalances.nonDueOriginationFeesAmount"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["dueBalances.dueOriginationFeesAmount"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["overdueBalances.overdueOriginationFeesAmount"]}," depending on the fee's current status."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"draw-fees","__idx":3},"children":["Draw fees"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Pass the draw fee amount in the draw's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["atOrigination.fees"]}," object:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"atOrigination\": {\n    \"fees\": {\n      \"drawFeeAmount\": 50.00\n    }\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Include the remaining draw fee balance in the migration period draw data under the appropriate ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nonDueDrawFeesAmount"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["dueDrawFeesAmount"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["overdueDrawFeesAmount"]}," field."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"statement-and-due-date-configuration","__idx":4},"children":["Statement and due date configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Peach supports three options for statement and due date scheduling on LOCs. The option you choose affects how you set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["specificDays"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["statementDate"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["dueDate"]}," across all periods."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Option"},"children":["Option"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"How it works"},"children":["How it works"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Configuration"},"children":["Configuration"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Fixed due date"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Due date is fixed; statement date is calculated based on grace period days."]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["specificDays"]}," to the due date day (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[22]"]},"). Statement date is auto-calculated."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Fixed statement date"]}," (LOC only)"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Statement date is fixed; due date is calculated based on grace period days."]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["specificDays"]}," to the statement date day. Due date is auto-calculated."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Fixed both"]}," (LOC only, monthly only)"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Both statement date and due date are fixed."]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["specificDays"]}," to both days (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[1, 22]"]}," where 1 is statement date, 22 is due date). Only works with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["paymentFrequency: \"monthly\""]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ensure that the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["specificDays"]}," in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["atOrigination"]}," align with the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["dueDate"]}," (or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["statementDate"]},", depending on your configuration) in the migration period data."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"migrating-special-loan-states","__idx":5},"children":["Migrating special loan states"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Not all loans are current when they migrate. Peach supports migrating loans that are delinquent, accelerated, or charged off."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"delinquent-loans","__idx":6},"children":["Delinquent loans"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For loans that are past due at the time of migration, set the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["migratedDaysOverdue"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["migratedOverdueFromDate"]}," fields in the migration period obligation data."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After migration, Peach dynamically prorates the migrated days overdue as the borrower makes payments:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"Effective DPD = migratedDaysOverdue × (1 - min(fulfilledAmount / migratedOverdueAmount, 1))\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This means that as the borrower pays down the overdue balance, the effective days past due decreases proportionally."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This prorating formula operates continuously across the total overdue amount and does not distinguish between overdue amounts from different periods. See the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/loan-lifecycle/loc-migration/after-migration#dpd-calculation-for-migrated-loans"},"children":["DPD prorating known limitation"]}," in the system design constraints section for a detailed example of how this can produce unexpected results with multi-period overdue balances."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"accelerated-and-charged-off-loans","__idx":7},"children":["Accelerated and charged-off loans"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To migrate a loan directly into an accelerated or charged-off state, set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["postMigrationLoanStatus"]}," in the migration period LOC data:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"postMigrationLoanStatus\": \"accelerated\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Or for charged-off:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"postMigrationLoanStatus\": \"chargedOff\",\n  \"chargedOffReason\": \"term\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Accepted ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["chargedOffReason"]}," values:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["term"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fraudulent"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bankruptcy"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["legal"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The effective date for the acceleration or charge-off is the migration cutoff date."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Special state migrations"]}," are most commonly used when onboarding a portfolio of delinquent loans onto Peach — for example, to leverage Peach's collections features for a portfolio where all loans are already past due. Ensure the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["chargedOffReason"]}," matches the reason from your legacy system."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"see-also","__idx":8},"children":["See also"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/loan-lifecycle/loc-migration/migration-procedure"},"children":["LOC migration procedure"]}," — The base procedure these special cases extend."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/loan-lifecycle/loc-migration/after-migration"},"children":["After LOC migration"]}," — DPD proration and other post-migration behaviors."]}]}]},"headings":[{"value":"LOC migration special cases and configuration","id":"loc-migration-special-cases-and-configuration","depth":1},{"value":"Origination and draw fees","id":"origination-and-draw-fees","depth":2},{"value":"Origination fees","id":"origination-fees","depth":3},{"value":"Draw fees","id":"draw-fees","depth":3},{"value":"Statement and due date configuration","id":"statement-and-due-date-configuration","depth":2},{"value":"Migrating special loan states","id":"migrating-special-loan-states","depth":2},{"value":"Delinquent loans","id":"delinquent-loans","depth":3},{"value":"Accelerated and charged-off loans","id":"accelerated-and-charged-off-loans","depth":3},{"value":"See also","id":"see-also","depth":2}],"frontmatter":{"title":"LOC migration special cases and configuration","description":"Configure origination and draw fees, statement and due-date scheduling, and migrate delinquent, accelerated, or charged-off lines of credit.","verifiedDate":"2026-06-10T00:00:00.000Z","verifiedSpec":"loc-migration.yml","verifiedRef":"peach@41d1f8a","seo":{"title":"LOC migration special cases and configuration"}},"lastModified":"2026-06-10T22:51:20.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/loan-lifecycle/loc-migration/special-cases-and-configuration","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}