> For the complete documentation index, see [llms.txt](https://docs.udara360.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.udara360.io/udara360-docs-1/pos-instant-settlement/pos-instant-settlement/create-terminal.md).

# Create Terminal

The "Create Terminal" endpoint allows customers to register a new payment terminal, configuring its settlement account and fee structure.

<mark style="color:yellow;">`POST`</mark> `/api/terminal/v1/Create`

To create a terminal, provide the `terminalID`, the `settlementAccountNumber` and `settlementAccountName` funds should settle to, and the terminal's fee configuration (`useFlatFee`, `flatFee`, `percFee`, `percFeeCap`), along with any override flags (`overrideParentAccount`, `overrideParentFee`).

**Headers**

| Name                                            | Value                |
| ----------------------------------------------- | -------------------- |
| Content-Type<mark style="color:red;">\*</mark>  | `application/json`   |
| Authorization<mark style="color:red;">\*</mark> | `bearer {token}`     |
| Request-Reference                               | `{unique_reference}` |

**Params**

<table><thead><tr><th>Name</th><th>Data Type</th><th data-type="checkbox">Required/Optional</th><th>Description</th></tr></thead><tbody><tr><td><code>terminalID</code></td><td>string</td><td>true</td><td>The ID of the terminal being created.</td></tr><tr><td><code>serialNumber</code></td><td>string</td><td>false</td><td>The terminal's serial number, where available.</td></tr><tr><td><code>settlementAccountNumber</code></td><td>string</td><td>true</td><td>The account number funds should settle to.</td></tr><tr><td><code>settlementAccountName</code></td><td>string</td><td>true</td><td>The name on the settlement account.</td></tr><tr><td><code>overrideParentAccount</code></td><td>boolean</td><td>false</td><td>Whether to override the terminal's parent account.</td></tr><tr><td><code>overrideParentFee</code></td><td>boolean</td><td>false</td><td>Whether to override the terminal's parent fee configuration.</td></tr><tr><td><code>useFlatFee</code></td><td>boolean</td><td>false</td><td>Whether to charge a flat fee instead of a percentage fee.</td></tr><tr><td><code>flatFee</code></td><td>number</td><td>false</td><td>The flat fee amount, used when <code>useFlatFee</code> is true.</td></tr><tr><td><code>percFee</code></td><td>number</td><td>false</td><td>The percentage fee, used when <code>useFlatFee</code> is false.</td></tr><tr><td><code>percFeeCap</code></td><td>number</td><td>false</td><td>The maximum fee amount a percentage-based fee can reach.</td></tr></tbody></table>

Here is an example request and response with a sample payload sent to the endpoint in Curl format.

<details>

<summary>Sample Request</summary>

```json
curl --location -g '{{baseurl}}/api/terminal/v1/Create' \
--header 'Authorization: bearer {token}' \
--header 'request-reference: {unique_reference}' \
--header 'Content-Type: application/json' \
--data '{
  "terminalID": "TIDSXCWY",
  "serialNumber": null,
  "settlementAccountNumber": "123456781",
  "settlementAccountName": "Test Name",
  "overrideParentAccount": false,
  "overrideParentFee": false,
  "useFlatFee": true,
  "flatFee": 20,
  "percFee": 10,
  "percFeeCap": 200
}'
```

</details>

<details>

<summary>Response: <code>200</code></summary>

```json
{
  "status": true,
  "message": "string"
}
```

</details>
