# Nyala Customer API

NYALA's tokenization API allows you to issue tokens on Polygon & Stellar. It allows you to create and manage tokens - including tokenized securities that have an ISIN - and to manage customer data. Interactions such as creating a new customer entity, request a wallet opening, creating a token and distributing a token to a customer are covered in this document.  During the onboarding process, an institution entity will be created for you.


Version: v1

## Servers

Production Environment
```
https://api.nyala.de
```

UAT / Sandbox Environment
```
https://uat.api.nyala.de
```

## Download OpenAPI description

[Nyala Customer API](https://nyala-docs.redocly.app/_bundle/apis/index.yaml)

## Customer

The first step in the tokenization lifecycle is to create a Customer that will receive the token.

### Getting a list of customers from institution.

 - [GET /api/external/v1/customers](https://nyala-docs.redocly.app/apis/customer/getcustomers.md)

### Creates a new customer inside the institution.

 - [POST /api/external/v1/customers](https://nyala-docs.redocly.app/apis/customer/createcustomer.md)

### Getting a customer by Id.

 - [GET /api/external/v1/customers/{customer-id}](https://nyala-docs.redocly.app/apis/customer/getcustomer.md)

### Searches for a customer by firstname lastname or email.

 - [GET /api/external/v1/search](https://nyala-docs.redocly.app/apis/customer/querycustomers.md)

### Saving KYC data for custodying customer wallets.

 - [POST /api/external/v1/customers/{customer-id}/kyc](https://nyala-docs.redocly.app/apis/customer/submitcustomerkycdata.md)

## Retail Wallet

The second step in the tokenization lifecycle is to request a retail wallet for the Customer newly created. The tokens will be sent to that wallet, and the private key to the wallet will be custodied using our technology.

### Returns a list of retail wallet object associated with the given customer id.

 - [GET /api/external/v1/customers/{customer-id}/retail-wallets](https://nyala-docs.redocly.app/apis/retail-wallet/getretailwalletsdetails.md)

### Request a new wallet for a customer from the selected custodian.

 - [POST /api/external/v1/customers/{customer-id}/retail-wallets](https://nyala-docs.redocly.app/apis/retail-wallet/initiateretailwallet.md)

### Approves the customer for Monerium.
Requests Ibans for all customer wallets from Monerium.

 - [POST /api/external/v1/customers/{customer-id}/approve-for-monerium](https://nyala-docs.redocly.app/apis/retail-wallet/approveformonerium.md)

### Request to whitelist a retail wallet for an asset class.

 - [POST /api/external/v1/customers/{customer-id}/asset-class-opt-in](https://nyala-docs.redocly.app/apis/retail-wallet/assetclassoptin.md)

### Update asset class optin.

 - [PATCH /api/external/v1/customers/{customer-id}/asset-class-opt-in](https://nyala-docs.redocly.app/apis/retail-wallet/updateassetclassoptin.md)

### Monerium Redeem.
Place Order on Monerium to Redeem.

 - [POST /api/external/v1/customers/{customer-id}/monerium-redeem](https://nyala-docs.redocly.app/apis/retail-wallet/moneriumredeem.md)

## External Retail Wallet

### List of external wallets.

 - [GET /api/external/v1/retail-wallets/external](https://nyala-docs.redocly.app/apis/external-retail-wallet/getexternalretailwallet.md)

### Import external wallets into the system.

 - [POST /api/external/v1/retail-wallets/external](https://nyala-docs.redocly.app/apis/external-retail-wallet/createexternalretailwallet.md)

### Request to whitelist an external retail wallet for an asset class.

 - [POST /api/external/v1/customers/{customer-id}/retail-wallets/{external-retail-wallet-id}/external-asset-class-opt-in](https://nyala-docs.redocly.app/apis/external-retail-wallet/externalassetclassoptin.md)

## Status

### Get status of API.

 - [GET /api/external/v1/status](https://nyala-docs.redocly.app/apis/status/get.md)

### Returns the Users identity, if HMAC authentication worked.

 - [GET /api/external/v1/status/auth](https://nyala-docs.redocly.app/apis/status/getauth.md)

