> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orum.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Persons

> Understand statuses, required verification, and possible errors for Persons.

## Persons Statuses

In the Deliver API, a person can have one of the following statuses, indicated by the status field.

<Tabs>
  <Tab title="Created">
    A person was created to represent an individual or a person’s record was updated in a way that requires identity re-verification.
  </Tab>

  <Tab title="Verified">
    A person passed identity verification. The person can send or receive funds with all transfer use cases.
  </Tab>

  <Tab title="Rejected">
    A person did not pass identity verification. The person cannot send or receive funds.
  </Tab>

  <Tab title="Restricted">
    A person matched a sanctions list during watchlist screening. The person cannot send or receive funds.
  </Tab>

  <Tab title="Closed">
    A person has been soft-deleted in Orum’s platform (this action can only be completed by the Orum team). The person cannot send or receive funds.
  </Tab>
</Tabs>

<Note>
  Regardless of whether you are using Orum's customer identification provider (Orum-KYC) or your own customer identification provider (BYO-KYC), all persons you create will always move from a Created to a Verified status. The POST API response will return the person with a `status` of `created`.
</Note>

A majority of use cases require that persons have a status of `verified` in order to send or receive funds. However, some use cases allow a person to have a status of `created.` Your use case will be determined during onboarding and will dictate which Persons Status is required to transact. The respective data requirements are listed below:

**Created Person**

* Customer reference ID
* First name
* Last name

**Verified Person**

* Customer reference ID
* First Name
* Last Name
* SSN
* DOB
* Address
* *\*Phone Number - only required for persons transacting with a card*

### Diagram

The below example shows how a person can move through the above statuses. A person can move from "verified" to "restricted" if they match a sanctions list anytime after their initial customer identification. To learn more about why a person is in the "rejected" or "restricted" state, refer to the `status_reason` field in the API response.

If a person fails customer identification and is set to the rejected status, Orum will automatically kick off a manual review and attempt to retry the customer identification workflow to resolve the issue.

## <img src="https://mintcdn.com/orum/ecbhl-TyW6xIdXPn/images/guides/person_status.png?fit=max&auto=format&n=ecbhl-TyW6xIdXPn&q=85&s=0dc62359267a09ab118c2569f57d2d16" alt="Persons statuses diagram" width="1652" height="638" data-path="images/guides/person_status.png" />

## Persons Verification

Orum maintains a comprehensive Customer Due Diligence (CDD) program.

KYC involves identity verification of a person in addition to ensuring that customers are not on any government-sanctioned lists. We provide two options for verification:

* BYO-KYC (bring your own)
* Orum-KYC

### BYO-KYC

BYO-KYC (bring your own-KYC) allows you to conduct your own KYC process. To utilize this option, you must provide Orum with your BSA/AML Policy and procedures detailing your internal KYC process, in addition to a virtual walkthrough of the process with our compliance team. Orum reviews and verifies the adequacy of your KYC process in conjunction with our financial partner agreements and Federal Financial Institutions Examination Council (FFIEC) compliance.

For BYO-KYC, you need to conduct adequate identity verification on your individual customers. At a minimum, you must verify the following information:

* Full legal name
* Physical address
* Tax ID (SSN)
* Date of birth

<Note>
  Orum performs watchlist screening on all individuals during onboarding and on an ongoing basis. Orum reserves the right to reject or restrict any customer from utilizing our services.
</Note>

### Orum-KYC

Orum-KYC is an additional service we provide if you don't have a Customer Identification Program (CIP) established and don't plan to set one up for your platform. This option manages the complexities of creating and maintaining your own CIP in-house. We use third-party vendors to perform KYC verification on all Orum customers to verify their true identity before transacting with our product.

For Orum-KYC, we obtain and screen the following information through our third-party vendor at onboarding and on an ongoing basis.

* Full legal name
* Physical address
* Tax ID (SSN)
* Date of birth

<Note>
  All individuals in Orum-KYC undergo watchlist screening, which provides constant monitoring and updates to various sanctioned lists (OFAC-SDN, OFAC NON-SDN, etc.).
</Note>

## Persons Reason Codes

### Status Reasons

If a person fails customer identification, Orum sends a `person_rejected` or `person_restricted` webhook. The person object in the webhook will have a status of `rejected` or `restricted` and a status\_reasons array that explains why the person failed customer identification.

**Status Reasons contain:**

* `reason_code`: a word-based code that describes the customer identification failure
* `reason_code_message`: a friendly description of the reason code that can be surfaced directly to your end users

To reattempt customer identification, you can use the [PATCH /persons](/api-reference/deliver/persons/patch-person) endpoint to update any invalid or missing information.

`status_reasons` will also be present in the GET /persons and GET /persons/id API responses.

| **reason\_code**       | **reason\_code\_message**                                        |
| :--------------------- | :--------------------------------------------------------------- |
| deceased\_person       | User is reported as deceased                                     |
| incomplete\_address    | Address submitted is missing some or all required elements       |
| incomplete\_dob        | Date of birth submitted is missing some or all required elements |
| incomplete\_ssn        | SSN submitted is missing some or all required elements           |
| ineligible\_age        | Age submitted is under 18 and not eligible for this product      |
| invalid\_address\_type | Address submitted is a non-supported address type                |
| invalid\_dob           | Date of birth is invalid                                         |
| invalid\_name          | Name is invalid                                                  |
| invalid\_ssn           | SSN is invalid                                                   |
| matched\_alertlist     | Matched a list of known fraudulent users                         |
| matched\_watchlist     | Matched one or multiple sanctions lists                          |

## Webhook Example

Deliver sends webhooks to notify you of changes to a person’s status.

```json theme={null}
{
    "event_id": "0p0aw9a4-d9ab-49d1-97da-7253ea40wd09",
    "event_type": "person_rejected",
    "created_at": "2022-08-26T18:40:31.775Z",
    "event_data": {
        "person": {
            "id": "b4c780fd-cn90-427f-a12d-60d4709410d7",
            "customer_reference_id": "4m70-da8pv1-3md086",
            "first_name": "Jane",
            "last_name": "Tester",
            "date_of_birth": "2010-01-01",
            "status": "rejected",
            "status_reasons": [
                {
                    "reason_code": "invalid_address_type",
                    "reason_code_message": "Address submitted is a non-supported address type"
                },
                {
                    "reason_code": "ineligible_age",
                    "reason_code_message": "Age submitted is under 18 and not eligible for this product"
                }
            ],
            "addresses": [
                {
                    "id": "pw9ad970-637f-4e4a-b808-917efce373dn",
                    "address1": "PO Box 100",
                    "city": "New York",
                    "state": "NY",
                    "country": "US",
                    "zip5": "10001",
                    "created_at": "2022-08-26T18:28:50.569975Z",
                    "updated_at": "2022-08-26T18:28:50.569975Z"
                }
            ],
            "contacts": [
                {
                    "id": "pr8d8aa5-cdcf-4e31-82b4-c438e786e5w7",
                    "value": "test@gmail.com",
                    "created_at": "2022-08-26T18:28:50.569975Z",
                    "updated_at": "2022-08-26T18:28:50.569975Z"
                },
                {
                    "id": "c8479dd1-2d98-4967-a4f8-18d9e1e9a8bv",
                    "value": "+15552346789",
                    "created_at": "2022-08-26T18:28:50.569975Z",
                    "updated_at": "2022-08-26T18:28:50.569975Z"
                }
            ],
            "created_at": "2022-08-26T18:28:50.569975Z",
            "updated_at": "2022-08-26T18:29:12.052262Z"
        }
    }
}
```
