# Query Onboarding Info

## Query Status (Personal)

<mark style="color:green;">`POST`</mark> `/onboarding/getOnboardingStatus`

Once you have initiated the onboarding, you can call this endpoint at any point to query its status. See [rejection reason definition](/choice-bank/appendix/error-codes.md#personal-onboarding-failure-definition) for personal account onboardings.

{% hint style="info" %}
NOTE: You must pass a non-null value for **at least one** of these three parameters.&#x20;
{% endhint %}

<table data-full-width="false"><thead><tr><th width="191.800048828125">Parameters</th><th width="83">Type</th><th width="347.533447265625">Description</th><th>Required?</th></tr></thead><tbody><tr><td><code>userId</code></td><td>string</td><td>Unique string that identifies the user in your system</td><td>FALSE</td></tr><tr><td><code>onboardingRequestId</code></td><td>string</td><td>Unique onboarding request ID we assigned </td><td>FALSE</td></tr><tr><td><code>mobile</code></td><td>string</td><td>Mobile number end-user used to onboard</td><td>FALSE</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="00000" %}

```json
{
  "onboardingRequestId": "ONBOARD2309LKSD90432",
  "onboardingStatus": "Completed successfully", 
  "rejectionReasonId": "", 
  "rejectionReasonMsg": "", 
  "accountId": "", //account number assigned, if successful
  "accountType": "" //refer to Account Types in Type/Status ID section
}
```

{% endtab %}

{% tab title="Others" %}

```json
{
 "code": "12005",
 "msg": "Invalid signature"
}
```

{% endtab %}
{% endtabs %}

### Query Personal KYC Info

<mark style="color:green;">`POST`</mark> `/onboarding/getUserKyc`

Use this endpoint to get the KYC information/details you submitted as well the onboarding status.&#x20;

**Parameters**

<table data-full-width="false"><thead><tr><th width="186.4666748046875">Parameters</th><th width="83">Type</th><th width="307">Description</th><th>Is Required</th></tr></thead><tbody><tr><td><code>onboardingRequestId</code></td><td>string</td><td>Unique onboarding request ID we assigned </td><td>TRUE</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="00000" %}

```json
{
  "onboardingRequestId": "ONBOARD2309LKSD90432",
  "baasChannelId": "", //This is your channel ID
  "userId": "", //The unique user identifier in your system
  "firstName": "Lily",
  "middleName": "IMISA",
  "lastName": "WAMBUI",
  "gender": "0", //0-Female; 1-Male;
  "nationality": "Kenya",
  "idType": "", //101-(Kenya) National ID; 102-(Kenya) Alien ID; 103-Passport
  "idNumber": "",
  "birthday": "",
  "address": "",
  "countryCode": "", //country code for mobile number
  "mobile": "",
  "employmentStatus": "", //Please refer to Employment Status Enumeration
  "monthlyIncome": "", //Please refer to Monthly Income Enumeration
  "kraPin": "", //Kenya KRA PIN code or tax number from other countries
  "businessIndustry": "",
  "specifyIndustry": "",
  "profileCheck": "", //0-Not Checked; 1-Submitted; 2-Validated; 3-Declined; 4-Processing;
  "profileCheckResultCode": "",
  "profileCheckResultText": "",
  "createTime": "",
  "updateTime": "",
  "status": "", //1-Submitted; 2-Processing; 3-Passed; 4-Rejected; 
  //5-Account Closed; 9-Manual Reviewing
  
}
```

{% endtab %}

{% tab title="Others" %}

```json
{
 "code": "12005",
 "msg": "Invalid signature"
}
```

{% endtab %}
{% endtabs %}

### Query Personal KYC Media

<mark style="color:green;">`POST`</mark> `/onboarding/personal/getKycMediaList`

Use this endpoint to get a list of the KYC media files you uploaded. &#x20;

<table data-full-width="false"><thead><tr><th width="195">Parameters</th><th width="83">Type</th><th width="358.2000732421875">Description</th><th>Required?</th></tr></thead><tbody><tr><td><code>onboardingRequestId</code></td><td>string</td><td>Unique onboarding request ID we assigned </td><td>TRUE</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="00000" %}

```json
{
    "mediaList": [
        {    
            "mediaType": "",
            "fileTypeId": "",
            "mediaUrl": "",
        }, {}    
    ]
}
```

{% endtab %}

{% tab title="Others" %}

```json
{
 "code": "12005",
 "msg": "Invalid signature"
}
```

{% endtab %}
{% endtabs %}

### Query Personal Request ID

<mark style="color:green;">`POST`</mark> `/onboarding/getOnboardingRequestId`

Use this endpoint to get the end-user's `onboardingRequestId` using either the `userId` (if unique) or `mobile` you passed.&#x20;

<table data-full-width="false"><thead><tr><th width="152.333251953125">Parameters</th><th width="83">Type</th><th width="387.000244140625">Description</th><th>Required?</th></tr></thead><tbody><tr><td><code>userId</code></td><td>string</td><td>Unique string which identifies the user in your system</td><td>FALSE</td></tr><tr><td><code>mobile</code></td><td>string</td><td>Mobile number end-user used to onboard</td><td>FALSE</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="00000" %}

```json
{
  "onboardingRequestId": ""
}
```

{% endtab %}

{% tab title="Others" %}

```json
{
 "code": "12005",
 "msg": "Invalid signature"
}
```

{% endtab %}
{% endtabs %}

## Query Status (SME)

<mark style="color:green;">`POST`</mark> `/onboarding/business/getBusinessOnboardingStatus`

Once you have initiated the SME onboarding, you can call this endpoint at any point to query its status. See [rejection reason definition](/choice-bank/appendix/error-codes.md#business-onboarding-failure-definition) for SME account onboardings.

{% hint style="info" %}
NOTE: You must pass at a valid non-empty value for **at least one** of these two parameters.&#x20;
{% endhint %}

<table data-full-width="false"><thead><tr><th width="193.93328857421875">Parameters</th><th width="85.13330078125">Type</th><th width="363.5330810546875">Description</th><th>Required?</th></tr></thead><tbody><tr><td><code>onboardingRequestId</code></td><td>string</td><td>Unique onboarding request ID we assigned </td><td>FALSE</td></tr><tr><td><code>businessCerNo</code></td><td>string</td><td>Incorporation certificate number</td><td>FALSE</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="00000" %}

```json
{
  "onboardingRequestId": "SHBIS175005164710666240",
  "onboardingStatus": "", //integer
  "rejectionReasonId": "", //refer to Onboarding Failure Definition
  "rejectionReasonMsg": "", //refer to Onboarding Failure Definition
  "accountId": "", //account number
  "accountType": "", //refer to Account Type definition
}
```

{% endtab %}
{% endtabs %}

### Query Request ID

<mark style="color:green;">`POST`</mark> `/onboarding/business/getOnboardingRequestId`\
\
Use the business certification/incorporation number you submitted to return the associated `onboardingRequestId` we assigned to it.&#x20;

<table><thead><tr><th>Fields</th><th width="127.2666015625">Type</th><th width="260.4000244140625">Description</th><th>Required?</th></tr></thead><tbody><tr><td><code>businessCerNo</code></td><td>String</td><td>Business Certificate Number</td><td>Mandatory</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="00000" %}

```json
{
  "onboardingRequestId": ""
}
```

{% endtab %}
{% endtabs %}

### Query Info (Sole Proprietorship)

<mark style="color:green;">`POST`</mark> `/onboarding/business/getStoreOnboardingInfo`

Use this endpoint to query the information & materials submitted for your sole proprietorship onboarding.&#x20;

**Parameters**

<table data-full-width="false"><thead><tr><th width="201">Parameters</th><th width="85">Type</th><th width="331">Description</th><th>Required?</th></tr></thead><tbody><tr><td><code>onboardingRequestId</code></td><td>String</td><td>A unique string generated by Choice to identify a certain onboarding request</td><td>TRUE</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="00000" %}

```json
{
    "onboardingRequestId": "00000",
    "smeName": "",
    "businessType": "", //1-Sole Proprietorship; 2-LLC; 3-Partnership; 5-NGO/CBO
    "countryCode": "",
    "mobile": "",
    "email": "",
    "krapin": "",
    "businessCertificateNumber": "",
    "channel": "",
    "channelUserId": "",
    "ownerFullName": "",
    "ownerIdNumber": "",
    "ownerIdType": "",
    "ownerBirthDay": "",
    "kinFullName": "",
    "kinCountryCode": "",
    "kinMobile": "",
    "kinRelationship": "",
    "onboardingMediaInfos": [
        {
            "fileUrl": "",
            "mediaType": "",
            "contentType": "",
            "fileTypeId": "",
            "fileKey": "",
            "fileId": "",
        }
    ],
    "status": "",
    "rejectReasonIds": [
    ],
    "rejectReasonMsgs": [
    ],
    "createTime": "",
    "auditTime": "",
    "businessIndustry": "",
    "specifyIndustry": "",
    "businessAddress": "",
}
```

{% endtab %}
{% endtabs %}

### Query Info (LLC)

<mark style="color:green;">`POST`</mark> `/onboarding/business/getCompanyOnboardingInfo`

Use this endpoint to get the onboarding information & media already submitted for the LLC type of SME.&#x20;

<table data-full-width="false"><thead><tr><th width="200">Parameters</th><th width="85">Type</th><th width="331">Description</th><th>Required?</th></tr></thead><tbody><tr><td><code>onboardingRequestId</code></td><td>String</td><td>A unique string generated by Choice to identify a certain onboarding request</td><td>TRUE</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="00000" %}

```json
{
    "onboardingRequestId": "00000",
    "smeName": "",
    "businessType": "", //1-Sole Proprietorship; 2-LLC; 3-Partnership; 5-NGO/CBO
    "countryCode": "",
    "mobile": "",
    "email": "",
    "krapin": "",
    "businessCertificateNumber": "",
    "channel": "",
    "channelUserId": "",
    "onboardingMediaInfos": [
        {
            "fileUrl": "",
            "mediaType": "",
            "contentType": "",
            "fileTypeId": "",
            "fileKey": "",
            "fileId": "",
        }
    ],
    "shareholdersMemberInfos": [
        {
            "memberId": "",
            "countryCode": "",
            "mobile": "",
            "idType": "",
            "idNumber": "",
            "firstName": "",
            "middleName": "",
            "lastName": "",
            "fullName": "",
            "kraPin": "",
            "idFrontFileUrl": "",
            "idFrontFileType": "",
            "selfieFileUrl": "",
            "selfieFileType": "",
            "idBackFileUrl": "",
            "idBackFileType": "",
            "kraPinFileUrl": "",
            "kraPinFileType": "",
        }
    ],
    "shareholdersCompanyInfos": [
        {
            "companyId": "",
            "companyName": "",
            "registrationFileKey": "",
            "registrationFileUrl": "",
            "registrationFileType": "",
        }
    ],
    "status": "",
    "rejectReasonIds": [
    ],
    "rejectReasonMsgs": [
    ],
    "createTime": "",
    "auditTime": "",
    "businessIndustry": "",
    "specifyIndustry": "",
    "businessAddress": "",
}
```

{% endtab %}
{% endtabs %}

### Query Info (NGO/CBO)

<mark style="color:green;">`POST`</mark> `/onboarding/business/getOrganisationOnboardingInfo`

\<Use this endpoint to query the onboarding information & materials for NGO/CBO type of SME>

**Parameters**

<table data-full-width="false"><thead><tr><th width="200">Parameters</th><th width="85">Type</th><th width="331">Description</th><th>Required?</th></tr></thead><tbody><tr><td><code>onboardingRequestId</code></td><td>String</td><td>A unique string generated by Choice to identify a certain onboarding request</td><td>TRUE</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="00000" %}

```json
{
    "onboardingRequestId": "00000",
    "smeName": "",
    "businessType": "", //1-Sole Proprietorship; 2-LLC; 3-Partnership; 5-NGO/CBO
    "countryCode": "",
    "mobile": "",
    "email": "",
    "krapin": "",
    "businessCertificateNumber": "",
    "channel": "",
    "channelUserId": "",
    "onboardingMediaInfos": [
        {
            "fileUrl": "",
            "mediaType": "",
            "contentType": "",
            "fileTypeId": "",
            "fileKey": "",
            "fileId": "",
        }
    ],
    "shareholdersMemberInfos": [
        {
            "memberId": "",
            "countryCode": "",
            "mobile": "",
            "idType": "",
            "idNumber": "",
            "firstName": "",
            "middleName": "",
            "lastName": "",
            "fullName": "",
            "kraPin": "",
            "idFrontFileUrl": "",
            "idFrontFileType": "",
            "selfieFileUrl": "",
            "selfieFileType": "",
            "idBackFileUrl": "",
            "idBackFileType": "",
            "kraPinFileUrl": "",
            "kraPinFileType": "",
        }
    ],
    "shareholdersCompanyInfos": [
        {
            "companyId": "",
            "companyName": "",
            "registrationFileKey": "",
            "registrationFileUrl": "",
            "registrationFileType": "",
        }
    ],
    "status": "",
    "rejectReasonIds": [
    ],
    "rejectReasonMsgs": [
    ],
    "createTime": "",
    "auditTime": "",
    "businessIndustry": "",
    "specifyIndustry": "",
    "businessAddress": "",
}
```

{% endtab %}
{% endtabs %}

### Query Info (Partnership)

<mark style="color:green;">`POST`</mark> `/onboarding/business/getPartnershipOnboardingInfo`

Use this endpoint to get the onboarding information & media uploaded for the partnership type of SME onboarding.&#x20;

<table data-full-width="false"><thead><tr><th width="201">Parameters</th><th width="85">Type</th><th width="331">Description</th><th>Required?</th></tr></thead><tbody><tr><td><code>onboardingRequestId</code></td><td>String</td><td>Unique Choice-generated string that identifies a particular onboarding.</td><td>TRUE</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="00000" %}

```json
{
    "onboardingRequestId": "00000",
    "smeName": "",
    "businessType": "", //1-Sole Proprietorship; 2-LLC; 3-Partnership; 5-NGO/CBO
    "countryCode": "",
    "mobile": "",
    "email": "",
    "krapin": "",
    "businessCertificateNumber": "",
    "channel": "",
    "channelUserId": "",
    "onboardingMediaInfos": [
        {
            "fileUrl": "",
            "mediaType": "",
            "contentType": "",
            "fileTypeId": "",
            "fileKey": "",
            "fileId": "",
        }
    ],
    "shareholdersMemberInfos": [
        {
            "memberId": "",
            "countryCode": "",
            "mobile": "",
            "idType": "",
            "idNumber": "",
            "firstName": "",
            "middleName": "",
            "lastName": "",
            "fullName": "",
            "kraPin": "",
            "idFrontFileUrl": "",
            "idFrontFileType": "",
            "selfieFileUrl": "",
            "selfieFileType": "",
            "idBackFileUrl": "",
            "idBackFileType": "",
            "kraPinFileUrl": "",
            "kraPinFileType": "",
        }
    ],
    "shareholdersCompanyInfos": [
        {
            "companyId": "",
            "companyName": "",
            "registrationFileKey": "",
            "registrationFileUrl": "",
            "registrationFileType": "",
        }
    ],
    "status": "",
    "rejectReasonIds": [
    ],
    "rejectReasonMsgs": [
    ],
    "createTime": "",
    "auditTime": "",
    "businessIndustry": "",
    "specifyIndustry": "",
    "businessAddress": "",
}
```

{% endtab %}
{% endtabs %}

**Response**

{% tabs %}
{% tab title="00000" %}

```json
{
  "onboardingRequestId": "ONBOARD2309LKSD90432",
  "onboardingStatus": "Completed successfully",
  "rejectionReasonIds": [
  ],
  "rejectReasonMsgs": [
  ],
  "accountId": "46013xxxxxxxxx", 
  "accountType": "",
  "auditTime": "",
}
```

{% endtab %}

{% tab title="Others" %}

```json
{
 "code": "12005",
 "msg": "Invalid signature"
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://choice-bank.gitbook.io/choice-bank/account/query-onboarding-info.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
