Lifecycle

Embarc moves every loan through predictable lifecycle stages. This section details each stage, the REST commands that trigger transitions, and special considerations when you integrate servicing, accounting, or reporting workflows.


Lifecycle Flow

 flowchart TD
     A[Submitted] -->|approve| B[Approved]
     A -->|reject| C[Rejected]
     A -->|withdraw| D[Closed – Withdrawn]
     B -->|undo approval| A
     B -->|disburse| E[Active]
     E -->|repay to zero| F[Closed – Obligations Met]
     E -->|charge off / write off| H[Charged-off]
     E -->|contract termination| I[Contract Terminated]
     E -->|undo disburse| B
     H -->|undo| E
     I -->|undo| E

Core Lifecycle Stages

1. Submitted

  • Meaning: Application captured; underwriting not yet complete.
  • Common commands:
    • Approve → POST /api/v1/loans/{loanId}?command=approve
    • Reject → POST /api/v1/loans/{loanId}?command=reject
    • Withdraw → POST /api/v1/loans/{loanId}?command=withdraw

2. Approved

  • Meaning: Loan approved but no funds released.
  • Common commands:
    • Disburse (single or tranche) → POST /api/v1/loans/{loanId}? command=disburse
    • Undo approval → POST /api/v1/loans/{loanId}?command=undoApproval

3. Active

  • Meaning: One or more disbursements posted; the loan is billing and accruing.
  • Servicing commands:
    • Repayments, waivers, refunds via /api/v1/loans/{loanId}/transactions
    • Close as rescheduled → POST /api/v1/loans/{loanId}?command=close- rescheduled
    • Charge-off / write-off → POST /api/v1/loans/{loanId}/transactions? command=charge-off or ...?command=writeoff
    • Undo latest disbursement → POST /api/v1/loans/{loanId}? command=undoDisbursal
    • Contract termination (dynamic schedule products) → POST /api/v1/loans/ {loanId}?command=contractTermination

4. Closed – Obligations Met

  • Meaning: Balance reaches zero through repayments or adjustments.
  • How it happens: No additional command; Embarc sets this automatically when principal and charges clear.

5. Closed – Withdrawn

  • Meaning: Borrower withdrew before approval or disbursement.
  • Command: POST /api/v1/loans/{loanId}?command=withdraw

7. Rejected

  • Meaning: Underwriting denied the application.
  • Command: POST /api/v1/loans/{loanId}?command=reject

8. Charged-off

  • Meaning: Loan written off or classified as charged-off; balance frozen according to product policy.
  • Commands:
    • Charge-off → POST /api/v1/loans/{loanId}/transactions?command=charge-off
    • Write-off → POST /api/v1/loans/{loanId}/transactions?command=writeoff
    • Undo charge-off / write-off using the corresponding undo endpoints.

9. Overpaid

  • Meaning: Customer has a credit balance.
  • Command: Refund the excess via POST /api/v1/loans/{loanId}/ transactions?command=creditBalanceRefund.

10. Contract Terminated (Dynamic Schedule Products)

  • Meaning: BNPL or promotional contract ended without payoff.
  • Commands:
    • Terminate → POST /api/v1/loans/{loanId}?command=contractTermination
    • Undo termination → POST /api/v1/loans/{loanId}? command=undoContractTermination