CreditEstimate API v3.1.5

Overview

The CreditEstimate API provides a current and detailed credit report based on transaction data from up to 24 months ago. CreditEstimate uses Rabobank’s proprietary algorithms utilized for SME loan acceptance. This API enables any organization to integrate transaction data-based credit scoring into its acceptance process.

Features

  • Input: Transaction data from Rabobank, ING, ABN Amro, Volksbank, Knab, SNS, ASN Bank, Triodos, and bunq.
  • Output: A JSON-formatted report containing:
    • CreditScore
    • CashFlowAnalysis

Before You Begin

  1. Setup Requirements:
    • Ensure you have a working sandbox account in the Rabobank developer portal.
    • Read the Get Started guide to set up your account and register an application.
  2. TLS Certificate:
    • A valid TLS certificate is required to use these APIs.

Dataset

Sandbox Environment

  • You can use the provided examples or any valid subset in the Sandbox environment.
  • Generated reports use example data. Errors and warnings return hard-coded responses.

Using the API

Workflow Steps

  1. API-Consumer: Initiates and generates an invitation for the end-user (e.g., the company being assessed).
  2. End-user:
    • Gives consent.
    • Authorizes their bank to share transaction data with Rabobank CreditEstimate.
  3. Report Generation:
    • CreditEstimate creates a credit report based on retrieved transactions and Rabobank’s data.
  4. Sharing: The end-user decides whether to share the report with the API-Consumer.
  5. API-Consumer: Retrieves the report if the end-user shares it.

Post Invitation Generation

  • The API-consumer calls CreditEstimate to generate a unique link for each end-user. This link can be put in an email, placed behind a website button, or embedded in the flow.
  • The invitation link is generated only if the user is eligible to use CreditEstimate, e.g., the company should have an active registration in the Dutch Chamber of Commerce.
  • The default validity duration of the invite is set to 72 hours but can be customized on the API-consumer’s request.
  • After the end-user opens the invitation link, the user's email address and the company name are pre-filled.

Set up Callback Functionality

  • Set up the callback functionality for CE SME to receive instant status updates. The callBackSecret is a password that you can generate/hash yourself. It is sent back as a header for you to validate the request.
  • Add the callbackRegistration to the post-invitation request as shown below:

Example Request (POST)

{
  "organizationDetails": {
    "email": "test@test.nl",
    "kvkNumber": "123456789"
  },
  "callbackRegistration": {
    "callbackUrl": "https://ce.requestcatcher.com/",
    "callbackSecret": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
  },
  "requestedCreditReport": {
    "modules": [
      {
        "name": "CASH_FLOW_ANALYSIS",
        "requested": true
      },
      {
        "name": "CREDIT_SCORE",
        "requested": true
      }
    ]
  }
}

Examples

Create Invitation

Request POST /dls-credit-estimate-api/v1/invitations

{
  "organizationDetails": {
    "email": "fm.nl.its.chapter.bl.emailoutputdls@rabobank.nl",
    "kvkNumber": "TEST1001"
  },
  "requestedCreditReport": {
    "modules": [
      {
        "name": "CASH_FLOW_ANALYSIS",
        "requested": true
      },
      {
        "name": "CREDIT_SCORE",
        "requested": true
      }
    ]
  }
}

Response

{
  "invitationDetails": {
    "invitationCode": "o1ju2teg",
    "invitationUrl": "https://app.creditestimate.nl/?invitationCode=o1ju2teg",
    "organizationDetails": {
      "kvkNumber": "TEST0001",
      "organizationName": "Organization under test",
      "legalForm": "BESLOTEN_VENNOOTSCHAP"
    }
  },
  "modules": [
    {
      "name": "CASH_FLOW_ANALYSIS",
      "requested": true
    },
    {
      "name": "CREDIT_SCORE",
      "requested": true
    }
  ]
}

Additional Examples

Get Invitations

Request GET https://api-sandbox.rabobank.nl/openapi/sandbox/credit-estimate/v1/invitations

Response

[
  {
    "createdAt": "2024-08-15T13:56:11.564069929Z",
    "expiredAt": "2024-09-14T13:56:11.564070223Z",
    "createdBy": "a70a0545-ba48-1234-8945-4227798f3908",
    "invitationCode": "TESTAB01",
    "invitationUrl": "https://app.creditestimate.nl/?invitationCode=TESTAB01",
    "kvkNumber": "3456789",
    "organizationName": "Test Bakery",
    "organizationEmail": "john.doe@Bakkerij.nl",
    "status": {
      "invitationStatus": "USER_SET_REPORT_SHARED",
      "isCreditReportAvailable": true,
      "creditReportAvailableUntil": "2024-09-14T13:56:11.564073619Z"
    }
  }
]

Get Invitation Status

Request GET https://api-sandbox.rabobank.nl/openapi/sandbox/credit-estimate/v1/invitations/{invitation-code}/status

Response

{
  "invitationStatus": "INVITATION_INITIATED",
  "isCreditReportAvailable": false
}

Get Credit Report

Request GET https://api-sandbox.rabobank.nl/openapi/sandbox/credit-estimate/v1/invitations/{invitation-code}/credit-report

Response

{
"generic": {
    "generatedAt": "2024-08-15T14:03:44.414732276Z",
    "invitationCode": "TEST4001",
    "reportDateRange": {
        "fromDate": "2024-08-15",
        "toDate": "2023-08-15"
    },
    "organizationDetails": {
        "kvkNumber": "12345678",
        "organizationName": "Test Organization",
        "legalForm": "BESLOTEN_VENNOOTSCHAP",
        "foundationDate": "2022-08-15",
        "sbiCodes": [
            {
                "code": "12345",
                "main": true
            },
            {
                "code": "67890",
                "main": false
            }
        ],
        "bankAccounts": [
            {
                "iban": "NL12BANK0123456789"
            }
        ]
    }
},
"moduleResults": {
    "creditScore": {
        "creditScore": 8,
        "probabilityOfDefault": 0.6,
        "probabilityOfNonDefault": 99.4
    },
    "cashFlowAnalysis": {
        "moduleStatus": {
            "moduleStatus": "COMPLETE"
        }
    }
}
Type
REST
OAS2
Protocol
HTTPS
Endpoint
Production, Development:
https://api.rabobank.nl/openapi/credit-estimate
Security
Mutual TLS
Enabled
clientId
X-IBM-Client-Id
apiKey located in header

ClientId as provided by the Rabobank developer portal.