# Creating an entity

This endpoint allows you to create an entity using a chosen flow that you've created within the platform.&#x20;

Flows allow you to choose what you'd like to screen an entity for, which documents you'd like to request, and whether to verify Ultimate Beneficial Owners (UBOs). For example, a Know Your Business flow you've created may require the entity to provide a certificate of incorporation document and send UBOs a verification link.

If you haven't created a Flow yet, create one by going to <https://enterprise.personr.co/dashboard/flows>  and selecting from one of our templates before proceeding.&#x20;

To enable entity verification on your account and custom entity flows, please contact your Account Manager.&#x20;

<figure><img src="https://2927352434-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyAmEVMxhOOdXgxn7sjnz%2Fuploads%2FRh7yGNaF6xQNyK97SWCo%2FScreenshot%202024-02-27%20at%208.23.14%E2%80%AFpm.png?alt=media&#x26;token=53be0794-e396-4c98-8aff-bc95fc3aa102" alt=""><figcaption></figcaption></figure>

***

## Create an Entity

<mark style="color:green;">`POST`</mark> `/api-entity-create`

Create an entity, ready to be verified.

| Name          | Value                 |
| ------------- | --------------------- |
| Content-Type  | `multipart/form-data` |
| Authorization | `Bearer YOUR_TOKEN`   |

**Body**

<table><thead><tr><th>Name</th><th width="165">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>companyName</code></td><td>string</td><td>The entity's legal name <mark style="color:red;">(required)</mark></td></tr><tr><td><code>registrationNumber</code></td><td>string</td><td>The entity's registration, or company number. e.g ACN/ABN for AUS <mark style="color:red;">(required)</mark></td></tr><tr><td><code>country</code> </td><td>string</td><td>The entity's country of incorporation. (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3">ISO-3166 3 char</a>)  <mark style="color:red;">(required).</mark> </td></tr><tr><td><code>flowName</code></td><td>string</td><td><p>The name of the flow you'd like the entity to go through. This is what dictates a registry lookup or UBO details will be searched for.</p><p><mark style="color:red;">(required)</mark></p></td></tr><tr><td><code>uboFlow</code></td><td>string</td><td>The name of the flow you'd like KYC UBOs to be verified on <mark style="color:orange;">(optional)</mark></td></tr><tr><td><code>sourceKey</code></td><td>string</td><td>An internal unique identifier, or source, that you can use to identify where the entity came from, which is returned in all responses <mark style="color:orange;">(optional)</mark> </td></tr><tr><td><code>externalUserId</code></td><td>list</td><td>External identifiers that are returned in all responses <mark style="color:orange;">(optional)</mark> </td></tr><tr><td><code>createApplicant</code></td><td>boolean</td><td>Where applicable, automatically create applicants of identified ownership. Default <code>false</code> <mark style="color:orange;">(optional)</mark></td></tr><tr><td><code>applicantFlow</code></td><td>string</td><td>The name of the KYC flow you'd like automatically-created applicants to be created with <mark style="color:orange;">(optional)</mark></td></tr></tbody></table>

{% hint style="info" %}
`uboFlow` is the name of a KYC (Applicant) flow on your account. If you don't want to verify UBOs, leave this blank.
{% endhint %}

#### Request

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

```sh
curl --location 'https://enterprise.personr.co/api/1.1/wf/api-entity-create' \
--form 'companyName="Acme Pty Ltd"' \
--form 'registrationNumber="123456789"' \
--form 'country="AUS"' \
--form 'flowName="Know Your Business"' \
--form 'uboFlow="Basic KYC"' \
--form 'sourceKey="Example Source Key"' \
--form 'externalUserId=["UUID1","UUID2"]'
```

{% endtab %}

{% tab title="Node.js" %}

```javascript
var axios = require('axios');
var FormData = require('form-data');
var data = new FormData();
data.append('companyName', 'Acme Pty Ltd');
data.append('registrationNumber', '123456789');
data.append('country', 'AUS');
data.append('flowName', 'Know Your Business');
data.append('uboFlow', 'Basic KYC');

var config = {
  method: 'post',
maxBodyLength: Infinity,
  url: 'https://enterprise.personr.co/api/1.1/wf/api-entity-create',
  headers: { 
    ...data.getHeaders()
  },
  data : data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});
```

{% endtab %}

{% tab title="Javascript" %}

```javascript
var form = new FormData();
form.append("companyName", "Acme Pty Ltd");
form.append("registrationNumber", "123456789");
form.append("country", "AUS");
form.append("flowName", "Know Your Business");
form.append("uboFlow", "Basic KYC");

var settings = {
  "url": "https://enterprise.personr.co/api/1.1/wf/api-enity-create",
  "method": "POST",
  "timeout": 0,
  "processData": false,
  "mimeType": "multipart/form-data",
  "contentType": false,
  "data": form
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
```

{% endtab %}

{% tab title="Ruby" %}

```ruby
require "uri"
require "net/http"

url = URI("https://enterprise.personr.co/api/1.1/wf/api-entity-create")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Post.new(url)
form_data = [['companyName', 'Acme Pty Ltd'],['registrationNumber', '123456789'],['country', 'AUS'],['flowName', 'Know Your Business'], ['uboFlow', 'Basic KYC']]
request.set_form form_data, 'multipart/form-data'
response = https.request(request)
puts response.read_body
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://enterprise.personr.co/api/1.1/wf/api-entity-create"

payload={'companyName': 'Acme Pty Ltd',
'registrationNumber': '123456789',
'country': 'AUS',
'flowName': 'Know Your Business',
'uboFlow': 'Basic KYC'}

files=[

]
headers = {}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Remember to input the flow name exactly as you created it. Don't use the template name.
{% endhint %}

**Response**

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

```json
{
  "status": "success",
  "response": {
    "applicantId": "4242424242424x424242424242424242",
    "companyName": "Acme Pty Ltd",
    "registrationNumber": "123456789",
    "country": "AUS",
    "flowName": "Know Your Business",
    "applicantStatus": "Created"
  }
}
```

{% endtab %}

{% tab title="400" %}

```json
{
    "statusCode": 400,
    "message": "Error: Cannot read docSets - incorrect flow name"
}
```

{% endtab %}
{% endtabs %}
