Installment Sale

installment-sale@2.0.0 Contract ^0.20.0 7ca2a6ccf9ca25f3483778bed76ff0a9358dd60353f66ffbd971130aeb73055d

This is a clause for a simple installment sale.

Download Archive Open in Template Studio

Installment Sale

A simple clause for a sale paid in installments.

Template Text

Grammar

{{BUYER}} agrees to pay to {{SELLER}} the total sum {{INITIAL_DUE}}, in the manner following:

{{DUE_AT_CLOSING}} is to be paid at closing, and the remaining balance of {{TOTAL_DUE_BEFORE_CLOSING}} shall be paid as follows:

{{MIN_PAYMENT}} or more per month on the first day of each and every month, and continuing until the entire balance, including both principal and interest, shall be paid in full -- provided, however, that the entire balance due plus accrued interest and any other amounts due here-under shall be paid in full on or before 24 months.

Monthly payments, which shall start on month {{FIRST_MONTH}}, include both principal and interest with interest at the rate of {{INTEREST_RATE}}%, computed monthly on the remaining balance from time to time unpaid.

Sample

"Dan" agrees to pay to "Ned" the total sum 10000 EUR, in the manner following:

500 EUR is to be paid at closing, and the remaining balance of 9500 EUR shall be paid as follows:

500 EUR or more per month on the first day of each and every month, and continuing until the entire balance, including both principal and interest, shall be paid in full -- provided, however, that the entire balance due plus accrued interest and any other amounts due here-under shall be paid in full on or before 24 months.

Monthly payments, which shall start on month 3, include both principal and interest with interest at the rate of 1.5%, computed monthly on the remaining balance from time to time unpaid.

Sample Data

{
    "$class": "org.accordproject.installmentsale.InstallmentSaleContract",
    "contractId": "8b27296b-111f-4768-b829-8bbde9b5049f",
    "BUYER": {
        "$class": "org.accordproject.cicero.contract.AccordParty",
        "partyId": "Dan"
    },
    "SELLER": {
        "$class": "org.accordproject.cicero.contract.AccordParty",
        "partyId": "Ned"
    },
    "INITIAL_DUE": {
        "$class": "org.accordproject.money.MonetaryAmount",
        "doubleValue": 10000,
        "currencyCode": "EUR"
    },
    "INTEREST_RATE": 1.5,
    "TOTAL_DUE_BEFORE_CLOSING": {
        "$class": "org.accordproject.money.MonetaryAmount",
        "doubleValue": 9500,
        "currencyCode": "EUR"
    },
    "MIN_PAYMENT": {
        "$class": "org.accordproject.money.MonetaryAmount",
        "doubleValue": 500,
        "currencyCode": "EUR"
    },
    "DUE_AT_CLOSING": {
        "$class": "org.accordproject.money.MonetaryAmount",
        "doubleValue": 500,
        "currencyCode": "EUR"
    },
    "FIRST_MONTH": 3
}

Template Model

Model Dependencies

Template Logic

Find the full logic for this template on on GitHub.

State Types

Type Sample JSON
org.accordproject.installmentsale.InstallmentSaleState
{
    "$class": "org.accordproject.installmentsale.InstallmentSaleState",
    "status": "Fulfilled",
    "balance_remaining": {
        "$class": "org.accordproject.money.MonetaryAmount",
        "doubleValue": 219.623,
        "currencyCode": "CDF"
    },
    "next_payment_month": 20852,
    "total_paid": {
        "$class": "org.accordproject.money.MonetaryAmount",
        "doubleValue": 7.644,
        "currencyCode": "PHP"
    },
    "stateId": "f342b042-ff3e-11e9-b361-efc0ae54bdd6"
}

Request Types

Type Sample JSON
org.accordproject.installmentsale.ClosingPayment
{
    "$class": "org.accordproject.installmentsale.ClosingPayment",
    "amount": {
        "$class": "org.accordproject.money.MonetaryAmount",
        "doubleValue": 37.164,
        "currencyCode": "MRU"
    },
    "transactionId": "f3428931-ff3e-11e9-b361-efc0ae54bdd6",
    "timestamp": "2019-11-04T15:09:04.579-05:00"
}
org.accordproject.installmentsale.Installment
{
    "$class": "org.accordproject.installmentsale.Installment",
    "amount": {
        "$class": "org.accordproject.money.MonetaryAmount",
        "doubleValue": 200.32,
        "currencyCode": "IDR"
    },
    "transactionId": "f3428930-ff3e-11e9-b361-efc0ae54bdd6",
    "timestamp": "2019-11-04T15:09:04.579-05:00"
}

Response Types

Type Sample JSON
org.accordproject.installmentsale.Balance
{
    "$class": "org.accordproject.installmentsale.Balance",
    "balance": {
        "$class": "org.accordproject.money.MonetaryAmount",
        "doubleValue": 188.077,
        "currencyCode": "CLP"
    },
    "total_paid": {
        "$class": "org.accordproject.money.MonetaryAmount",
        "doubleValue": 237.803,
        "currencyCode": "AMD"
    },
    "transactionId": "f342b040-ff3e-11e9-b361-efc0ae54bdd6",
    "timestamp": "2019-11-04T15:09:04.580-05:00"
}

Events Types

Type Sample JSON
org.accordproject.cicero.runtime.PaymentObligation
{
    "$class": "org.accordproject.cicero.runtime.PaymentObligation",
    "amount": {
        "$class": "org.accordproject.money.MonetaryAmount",
        "doubleValue": 79.333,
        "currencyCode": "KWD"
    },
    "description": "Eu Lorem.",
    "contract": "resource:org.accordproject.installmentsale.InstallmentSaleContract#9788",
    "promisor": "resource:org.accordproject.cicero.contract.AccordParty#1029",
    "promisee": "resource:org.accordproject.cicero.contract.AccordParty#9246",
    "deadline": "2019-11-04T15:09:04.581-05:00",
    "eventId": "f342d751-ff3e-11e9-b361-efc0ae54bdd6",
    "timestamp": "2019-11-04T15:09:04.581-05:00"
}

Technical Integration

Please refer to the Cicero documentation for details and examples of how to integrate a call to a Cicero template into your application.

View the Latest code for this template on GitHub.