# Introduction

*This guide walks through how to use the Partner API to onboard non-business customers (if you are trying to onboard business customers onto your application, please read ["Onboarding Businesses"](/products/partner-api/guides/building/onboarding-businesses) instead).*

As a regulated financial institution, Jiko is required to perform Customer Identification Program (CIP), Know Your Customer (KYC), and Know Your Business (KYB) checks on all applicants. Therefore, customers cannot be created directly using the Partner API — they are created automatically when an application is approved. The application process described below collects the information needed for these checks and is the only way to create customers in the system.

# Onboard Individuals

The individual onboarding system is based on *Applications*, which spawn a *Customer* once approved. An Application must contain sensitive user data that undergoes KYC (Know Your Customer) verification.

Three prerequisites must be fulfilled **before** creating an application (see [Partner Obligations](/products/partner-api/partner-obligation)):

1. Verify ownership of the phone number used in the application (e.g. via confirmation code).
2. Verify ownership of the email address used in the application (e.g. via confirmation code).
3. Display [agreements provided by Jiko](/products/partner-api/reference/individuals/list_agreements_api_v1_agreements__get) to the user, note the version number, and get time-stamped consent. The version and timestamp must be attached to the application. Re-fetch agreements for every new application to ensure the latest version is presented.


## Create an Individual Application

### Business Goal

Initiate the onboarding process for a new individual customer by creating an Application. The application captures all required personal information — including name, date of birth, address, identification number, investment profile, and agreement consent — in a single request. Unlike business applications, all required fields must be provided at creation time.

### Business Workflow Example

Partner systems:

1. Complete the prerequisites above (phone/email verification, agreement consent).
2. Collect the individual's personal information (name, email, phone number, date of birth, identification number such as SSN, address, investment profile).
3. Call Jiko's create application endpoint with the complete set of information.
4. Receive the created application with its Jiko `id` and `status: "CREATED"`.
5. Store the application `id` in internal systems for subsequent tracking.


### Relevant API Endpoints

| Step | Purpose | Jiko API Endpoints |
|  --- | --- | --- |
| 1 | Create a new Individual Application with the applicant's personal details. | POST [`/api/v1/applications/`](/products/partner-api/reference/individuals/create_application_api_v1_applications__post) |


## Submit an Individual Application for Review

### Business Goal

Submit a completed Individual Application for KYC review. Once the application has been created with all required information, it is submitted for identity verification. Upon approval, a Customer is created with an account and a portal with routing and account numbers, ready to receive external ACH fund transfers.

After submission, the application may require identity verification documents. When `status` transitions to `"DOCUMENTS_NEEDED"`, the response flags indicate which documents must be uploaded.

### Application Statuses

| Status | Description |
|  --- | --- |
| `CREATED` | Initial state of all applications. Call [Apply](/products/partner-api/reference/individuals/apply_api_v1_applications__application_id__apply__post) to submit. |
| `SUBMITTED` | The application is being processed. Poll [Get Application](/products/partner-api/reference/individuals/get_application_api_v1_applications__application_id___get) or subscribe to [webhooks](/products/partner-api/guides/building/webhooks) to monitor status changes. |
| `DOCUMENTS_NEEDED` | Identity verification documents are required. Upload them based on the flags in the response (see [Uploading Documents](#uploading-documents) below). Once all flags are cleared, the status moves to `PENDING`. |
| `PENDING` | Required actions (e.g., document uploads) are complete. Apply again to re-submit for evaluation. |
| `MANUAL_REVIEW` | The application is being reviewed manually. |
| `APPROVED` | A Customer has been created. The `customer_id` field is populated. |
| `REJECTED` | Final state. The application cannot be revived. |


### Business Workflow Example

Partner systems:

1. Call Jiko's apply endpoint to submit the application for KYC review.
2. Once successfully submitted, the application `status` transitions to `"SUBMITTED"`.
3. Poll the application periodically or subscribe to [webhooks](/products/partner-api/guides/building/webhooks) (e.g. `application.approved`, `application.documents_needed`) to track review progress.
4. If `status` is `"DOCUMENTS_NEEDED"`, upload the required documents based on the verification flags (see below), then apply again once the status moves to `"PENDING"`.
5. When `status` is `"APPROVED"`, use the `customer_id` from the application to proceed with account setup.


### Relevant API Endpoints

| Step | Purpose | Jiko API Endpoints |
|  --- | --- | --- |
| 1 | Submit the application for KYC review. | POST [`/api/v1/applications/{application_id}/apply/`](/products/partner-api/reference/individuals/apply_api_v1_applications__application_id__apply__post) |
| 2 | Poll the application to track review progress and retrieve the `customer_id` upon approval. | GET [`/api/v1/applications/{application_id}/`](/products/partner-api/reference/individuals/get_application_api_v1_applications__application_id___get) |
| 3 | Upload a required identity verification document. | POST [`/api/v1/applications/{application_id}/documents/{document_type}/file/`](/products/partner-api/reference/individuals/upload_document_to_application_api_v1_applications__application_id__documents__document_type__file__post) |


## Uploading Documents

When an application reaches the `DOCUMENTS_NEEDED` status, you must upload identity verification documents. Which documents to upload is determined by the boolean flags in the application response:

- **`id_verification_documents_needed`**: Upload `ID_FRONT`, `ID_BACK`, and either `SELFIE` or `PASSPORT`.
- **`identification_number_verification_document_needed`**: Upload `IDENTIFICATION_NUMBER_VERIFICATION` (e.g., SSN card, W-2, tax return).
- **`address_verification_document_needed`**: Upload `ADDRESS_VERIFICATION` (e.g., recent utility bill, bank statement, lease agreement).


Partners implementing their own onboarding UX are required to perform proof of ownership — such as verifying government ID and a live photo match through a trusted vendor — to ensure the individual is the rightful owner of the submitted information (see [Partner Obligations](/products/partner-api/partner-obligation)).

Once all flags have been cleared, the application status automatically transitions to `PENDING`. Call the Apply endpoint again to re-submit for evaluation.

### Relevant API Endpoints

| Step | Purpose | Jiko API Endpoints |
|  --- | --- | --- |
| 1 | Upload a document for the application. | POST [`/api/v1/applications/{application_id}/documents/{document_type}/file/`](/products/partner-api/reference/individuals/upload_document_to_application_api_v1_applications__application_id__documents__document_type__file__post) |
| 2 | Re-submit the application after documents are uploaded. | POST [`/api/v1/applications/{application_id}/apply/`](/products/partner-api/reference/individuals/apply_api_v1_applications__application_id__apply__post) |


## Sandbox Testing

The sandbox environment lets you test all application statuses without going through real KYC review. The first digit(s) of the `identification_number` (e.g. SSN) control which status the application transitions to after calling Apply:

| Prefix | Result after Apply |
|  --- | --- |
| `2` | `DOCUMENTS_NEEDED` |
| `21` | `id_verification_documents_needed` set to `true` |
| `22` | `identification_number_verification_document_needed` set to `true` |
| `23` | `address_verification_document_needed` set to `true` |
| `24` | `id_verification_documents_needed` and `identification_number_verification_document_needed` set to `true` |
| `3` | `MANUAL_REVIEW` |
| `4` | `APPROVED` |
| `5` | `REJECTED` |
| Other | `MANUAL_REVIEW` |


For identification numbers starting with `2`, the third digit controls the transition after uploading documents and re-applying:

- Starts with `2*1`: Transitions to `MANUAL_REVIEW`
- Otherwise: Transitions to `APPROVED`


## Retrieve an Individual Application

### Business Goal

Retrieve the current state of an Individual Application at any point during the onboarding process. This supports tracking application progress, verifying submitted information, checking document request statuses, and determining when an application has been approved and a Customer has been created.

### Business Workflow Example

Partner systems:

1. Call Jiko's get application endpoint with the application `id`.
2. Review the `status` field to determine the current stage of the application.
3. If `status` is `"APPROVED"`, extract the `customer_id` to proceed with account operations.
4. If `status` is `"DOCUMENTS_NEEDED"`, review the `documents` array and upload any documents with `status: "PENDING_UPLOAD"`.
5. Propagate the application state to internal systems for tracking and reporting.


### Relevant API Endpoints

| Step | Purpose | Jiko API Endpoints |
|  --- | --- | --- |
| 1 | Retrieve the current state of an Individual Application. | GET [`/api/v1/applications/{application_id}/`](/products/partner-api/reference/individuals/get_application_api_v1_applications__application_id___get) |