# Onboarding

There are three types of partners for different purposes. And the respective onboarding process is kind of different.

* `Public Partner`
  * For those who'd like trials or building MVPs;
  * No KYB or certification process;
  * Lightning fast integration;
* `Basic Partner`
  * For those who need to customize widget/interface;
* `Premium Partner`
  * For those who need to call FaTPay APIs for sophisticated scenarios;
  * Unlock the full list of features;

## Partner Types

Please apply the most suitable partner type for your business according to the supported features illustrated in below table.

<table><thead><tr><th width="387">Features</th><th data-type="checkbox">Public</th><th width="120" data-type="checkbox">Basic</th><th data-type="checkbox">Premium</th></tr></thead><tbody><tr><td><strong>Widget:</strong> specify cryptocurrency and amount</td><td>true</td><td>true</td><td>true</td></tr><tr><td><strong>Widget:</strong> specify fiat currency</td><td>true</td><td>true</td><td>true</td></tr><tr><td><strong>Widget:</strong> set default email address (editable by user)</td><td>true</td><td>true</td><td>true</td></tr><tr><td><strong>Widget:</strong> NFT Checkout</td><td>false</td><td>false</td><td>true</td></tr><tr><td><strong>Visual:</strong> choose interface theme</td><td>true</td><td>true</td><td>true</td></tr><tr><td><strong>Widget:</strong> set default wallet address (editable by user)</td><td>false</td><td>true</td><td>true</td></tr><tr><td><strong>Visual:</strong> customize interface theme</td><td>false</td><td>true</td><td>true</td></tr><tr><td><strong>Visual:</strong> display partner's logo </td><td>false</td><td>true</td><td>true</td></tr><tr><td><strong>Cryptocurrency:</strong> add unlisted cryptocurrency for crypto projects</td><td>false</td><td>true</td><td>true</td></tr><tr><td><strong>Widget:</strong> set default wallet address (uneditable by user)</td><td>false</td><td>false</td><td>true</td></tr><tr><td><strong>Widget:</strong> set default wallet address (invisible to user)</td><td>false</td><td>false</td><td>true</td></tr><tr><td><strong>API:</strong> list all supported cryptocurrencies</td><td>false</td><td>false</td><td>true</td></tr><tr><td><strong>API:</strong> list all supported fiat currencies</td><td>false</td><td>false</td><td>true</td></tr><tr><td><strong>API:</strong> retrieve quoted prices</td><td>false</td><td>false</td><td>true</td></tr><tr><td><strong>API:</strong> webhook for orders</td><td>false</td><td>false</td><td>true</td></tr><tr><td><strong>API:</strong> list orders</td><td>false</td><td>false</td><td>true</td></tr></tbody></table>

{% hint style="info" %}
The full list of supported fiat currencies, cryptocurrencies and payment methods are available for all partners.
{% endhint %}

## Onboarding Process

### `Public Partner`

No need to apply. You could use `public` as partner ID to access to FaTPay service.

### `Basic Partner`

If the customization is a must feature for your business, such as adding new issued cryptocurrency. Please leave a message at <operations@fatpay.xyz> and apply the  Basic Partner account.

After passing KYB and all certifications with the help of your dedicated assistant, you will get your own partner ID.

### `Premium Partner`

API capability is only available for Premium Partners. Please reach us at <operations@fatpay.xyz> to apply.

After passing KYB and all certifications with the help of your dedicated assistant, you will get:

* Unique partner ID for your business;
* `APIPrivateKey`: Generated by the partner for computing the [signature](/reference/api-reference/verification.md#signature-for-api-request) of API request;
* `APIPublicKey`: Generated by the partner and submitted to FaTPay for API request validation;
* `SecretKey`: Provided by FaTPay for computing the [signature](/reference/integration-tutorial/widget-signature.md) of widget URL;
* `WebhookPublicKey`: Provided by FaTPay to the partner for [validating](/reference/api-reference/verification.md#webhook-validation) the signature of webhook notification;
* `Webhook endpoint`: Provided by the partner to FaTPay for receiving webhook notification;

<details>

<summary>Generating <code>APIPrivateKey</code>/<code>APIPublicKey</code> key pair</summary>

There are many ways to generate ***RSA public and private(2048 bits) key pairs in PKCS#8 format***.

Here we just provide an example for MacOS/Linux users via [OpenSSL](https://www.openssl.org/).

{% code overflow="wrap" %}

```shell
# generate private key in PKCS#8 formati
openssl genpkey -out APIPrivateKey.pem -algorithm RSA -pkeyopt rsa_keygen_bits:2048

# extract public key from private key
openssl rsa -pubout -in APIPrivateKey.pem -out APIPublicKey.pem
```

{% endcode %}

</details>

{% hint style="warning" %}
Please make sure you **NEVER** disclose the ***`APIPrivateKey`*** and ***`SecretKey`***.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dev.fatpay.org/get-started/onboarding.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
