API Documentation
API ReferenceCalculation

Generate CPF projection

Generate multi-year CPF contribution projection with cumulative totals.

POST
/projection

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://loading/api/cpf/projection" \  -H "Content-Type: application/json" \  -d '{    "income": 5000,    "age": 30,    "years": 5  }'
{
  "input": {
    "income": 0,
    "age": 0,
    "years": 1
  },
  "projections": [
    {
      "year": 0,
      "age": 0,
      "ageGroup": "string",
      "contribution": {
        "totalContribution": 0,
        "employer": 0,
        "employee": 0
      },
      "cumulative": {
        "totalContribution": 0,
        "employer": 0,
        "employee": 0
      }
    }
  ],
  "projectionInput": {
    "monthlyIncome": 0,
    "birthDate": "2019-08-24",
    "startAge": 0,
    "endAge": 1,
    "housingWithdrawal": 0,
    "citizenship": "citizen",
    "voluntaryTopUp": {
      "amount": 0,
      "account": "SA",
      "frequency": "monthly"
    },
    "oaToSaTransfer": {
      "amount": 0,
      "timing": "now"
    }
  },
  "yearlyBalances": [
    {
      "year": 0,
      "age": 0,
      "ageGroup": "string",
      "balances": {
        "oa": 0,
        "sa": 0,
        "ma": 0,
        "ra": 0
      },
      "contributions": {
        "employee": 0,
        "employer": 0,
        "total": 0
      },
      "distribution": {
        "oa": 0,
        "sa": 0,
        "ma": 0,
        "ra": 0
      },
      "interestEarned": {
        "oa": 0,
        "sa": 0,
        "ma": 0,
        "ra": 0,
        "extraInterest": 0
      },
      "housingWithdrawal": 0,
      "voluntaryTopUp": 0
    }
  ],
  "milestones": {
    "age55": {
      "oa": 0,
      "sa": 0,
      "ma": 0,
      "ra": 0
    },
    "age65": {
      "oa": 0,
      "sa": 0,
      "ma": 0,
      "ra": 0
    },
    "age70": {
      "oa": 0,
      "sa": 0,
      "ma": 0,
      "ra": 0
    }
  },
  "cpfLifeEstimate": {
    "standardMonthly": 0,
    "escalatingStartMonthly": 0,
    "basicMonthly": 0,
    "deferredTo70Monthly": 0
  },
  "totalContributed": 0,
  "totalInterestEarned": 0
}
{
  "error": "string"
}
{
  "error": "Rate limit exceeded"
}