Back to neotek ↗Get Sandbox Access

GetCreditProfileReport

POSThttps://test.api.neotek.sa/credit-profile-assessment/v1/credit-profile/getCreditProfileReport

Sandbox URL · in Production call https://api.neotek.sa

Returns the assessment as structured data, so you can read the score and the individual factor results straight into your own decisioning.

Body:

  • psuId (required) — the Payment Service User id: the identifier you assign to the customer in your own system. Use the same id you sent when creating the accounts link, since that is how Neotek resolves which consented accounts to return
  • accountLinkId (required) – the consent id returned when creating the accounts link
  • accountId (required) – the account to assess, an AccountId from ListProfileAccounts
  • customerType (optional)RETAIL or CORPORATE. Defaults to RETAIL
  • purpose (optional)PERSONAL_FINANCE, CAR_LOAN, HOME_MORTGAGE, EDUCATION, MEDICAL, BUSINESS, DEBT_CONSOLIDATION, TRAVEL, WEDDING, HOME_IMPROVEMENT or OTHER
  • requestedAmount (optional) – the loan amount, in SAR
  • loanTermMonths (optional) – the term in months. Defaults to 60, or 240 when purpose is HOME_MORTGAGE
  • annualInterestRate (optional) – a percentage. Defaults to 3.0
  • age (optional)18 to 100. Sending it enables the AGE scoring factor
  • riskFactors (optional) – override the default scoring model, as an array. Every field within an entry is optional:
    • factorType – the factor to override; the valid values depend on customerType
    • weight0 to 200
    • enabled – defaults to true
    • ranges – the score bands, as an array of minValue, maxValue (exclusive), points (0 to 100) and label

Factor types — which values factorType accepts depends on customerType:

  • RETAILAGE, INCOME, LOAN_PAYMENT, SURPLUS_RATIO, SALARY_CATEGORY, CASH_FLOW, DEBT_BURDEN_RATIO
  • CORPORATEBUSINESS_AGE, REVENUE_STABILITY, REVENUE_TREND, OPERATING_EXPENSE_RATIO, SUPPLIER_PAYMENT_CONSISTENCY, CASH_BUFFER, CORPORATE_CASH_FLOW, PAYMENT_BEHAVIOR

Headers:

ParameterRequiredDescription
authorizationRequiredBearer <ACCESS_TOKEN>, with scope credit_profile_assessment
content-typeRequiredapplication/json
cURL
curl -X POST 'https://test.api.neotek.sa/credit-profile-assessment/v1/credit-profile/getCreditProfileReport' \  -H 'Authorization: Bearer <ACCESS_TOKEN>' \  -H 'Content-Type: application/json' \  -d '{  "psuId": "PTP100",  "accountLinkId": "2631",  "accountId": "ACC-999",  "customerType": "RETAIL",  "purpose": "PERSONAL_FINANCE",  "requestedAmount": 50000,  "loanTermMonths": 36,  "annualInterestRate": 3,  "age": 35}'

Response (trimmed to the key fields, one entry per list)

JSON
{  "reportId": "550e8400-e29b-41d4-a716-446655440000",  "psuId": "PTP100",  "accountId": "ACC-999",  "customerType": "RETAIL",  "totalScore": 643,  "maxPossibleScore": 1000,  "ratingClass": "AAA",  "ratingClassName": "Satisfactory",  "approvalRecommendation": "Moderate",  "factorScores": [    {      "factorName": "INCOME_STABILITY",      "displayName": "Income Stability",      "score": 75,      "maxScore": 100,      "weight": 0.2,      "weightedScore": 150,      "grade": "B",      "reasoning": "Strong income consistency with low volatility"    }  ],  "financialMetrics": {    "averageMonthlyIncome": 15000,    "averageMonthlyExpenses": 8500,    "averageMonthlyLoanPayment": 2500,    "monthlySurplus": 4000,    "debtToIncomeRatio": 0.167,    "averageBalance": 25000,    "monthsOfData": 6,    "monthlyBreakdowns": [      {        "month": "2026-01",        "income": 15500,        "expenses": 8200,        "loanPayment": 2500,        "surplus": 4800      }    ],    "strengths": [      "Consistent income pattern"    ],    "weaknesses": [      "High debt-to-income ratio"    ]  },  "recommendation": {    "decision": "CONDITIONAL_APPROVE",    "maxRecommendedAmount": 40000,    "suggestedInterestRate": 4.5,    "conditions": [      "Verify employment",      "Limit initial credit"    ],    "summary": "Applicant shows moderate creditworthiness. Recommend approval with conditions."  },  "purposeAssessment": {    "purpose": "PERSONAL_FINANCE",    "requestedAmount": 50000,    "isAffordable": false,    "estimatedMonthlyPayment": 1140.17,    "debtToIncomeAfterLoan": "25.5%",    "affordabilityAssessment": "May strain finances; consider lower amount",    "riskLevel": "High"  }}

Errors

CodeStatusCause and Action
400Bad RequestInvalid or missing request fields. Check the error Code and Path. Common: NTSP.ERROR.400.349 = PSUId is mandatory.
401UnauthorizedToken missing, expired, or invalid. Refresh the bearer token and retry.
403ForbiddenNo valid subscription or insufficient scope. Verify client credentials and that the correct scope is included for the service being called.
405Method Not AllowedWrong HTTP verb for this endpoint. Check the endpoint specification.
406Not AcceptableAccept header mismatch. Use application/json.
429Too Many RequestsRate limit exceeded. Wait the number of seconds in the Retry-After response header before retrying.
500Internal Server ErrorUnexpected server error. Retry with exponential backoff. Include x-request-id when raising a support ticket.