---
title: "Onboard your first customer"
---
In this guide, you will learn how to onboard your first customer with our API. A customer can be either a business or an individual.

By the end of this guide, you will know how to:

* [Create an account on Gravv](/getting-started/onboard-your-first-customer#create-an-account-on-gravv)
* [Obtain your Api Key](/getting-started/onboard-your-first-customer#obtain-your-api-key)
* [Make your first request](/getting-started/onboard-your-first-customer#make-your-first-request)

## Create an account on Gravv

You need a [Gravv account](https://app.gravv.xyz) to use the API. If you don't have an account, follow these steps:

1. Visit the [registration page](https://app.gravv.xyz/auth/register).
2. Enter your `First name`, `Last name`, `Email address`, and `Business name` in the appropriate fields.

> 📘 Note
>
> You can only create an account with a business email address.

3. Check the box to agree to the **Terms of use** and **Privacy policy**.
4. Click **Sign up**.

![The register page of Gravv](/images/readme/8902b98f9873569f6e99613c1d177ef27901e45b8d537f3f47567da9c9b77b52-create-account.png)

5. Check your email for a verification message and visit the link to complete your registration.

## Obtain your Api Key

Every request to the Gravv API requires an `Api-Key`. After creating a Gravv account, we generate two pairs of API keys for you: a publishable `Public Key` and a server-side `Secret Key`, for both [Sandbox and Live](/getting-started/environments) modes.

To obtain your `Api-Key`, follow these steps:

1. Sign in to your Gravv Dashboard with your registered business email address.
2. Click `Manage` in the side navigation.

![Gravv dashboard with the Manage button highlighted in the side navigation.](/images/readme/2696978047de1055957f7a91e3ffe36fef5520e5fd2041b0c083f7c927db95ab-manage-button.png)

3. Click `Configure` under the `Manage` section.

![Gravv dashboard with the Configure button highlighted under the Manage section.](/images/readme/dac55e888cc69b0afe493e9c4edac6f6c4682a09eb4f6f0580e2859bec8d8062-configure-button.png)

4. Now click `API keys`, then click the copy button under `Secret Key` to copy your Secret Key.

![Gravv dashboard Configure page with the API Keys button, Secret Key heading, and copy button highlighted.](/images/readme/f6fe73a6060f4152b95e714c0dc6f671c0cfedf748b878e289ad96bb78f0e784-configure-page.png)

## Make your first request

Now that you have obtained your `Secret key`, you can make your first request. In the following example, you will learn how to call the Gravv API to [Add a customer](/api-reference/customers/post-v1-customers) and confirm a successful response.

### Before you begin

To complete this tutorial, you will need the following:

* Your `Secret Key` before making requests. If you haven't obtained it yet, follow the steps in the [Obtain your API key](/getting-started/onboard-your-first-customer#obtain-your-api-key) section.
* Basic understanding of REST APIs and [cURL](https://curl.se/)

### Create an individual customer

Individual customers are persons who will use your platform for personal transactions.

#### Create and send a request

Make a `POST` request to the Gravv API. Replace the values in angle brackets `<...>` with your actual details before running the request:

```bash title="create an individual customer request"
curl -X POST https://api.gravv.xyz/v1/customers \
  -H "Api-Key: <API_KEY>" \
  -H 'Idempotency-Key: 979879887678789_attempt_1' \
  -H "Content-Type: application/json" \
  -d '{
    "first_name": "<your first name>",
    "last_name": "<your last name>",
    "middle_name": "<your middle name>",
    "email": "<your email>",
    "phone": "<your phone number>",
    "type": "individual",
    "gender": "<your gender>",
    "date_of_birth": "<your date of birth in yyyy-mm-dd format>",
    "address": {
      "address_line1": "<your address line1>",
      "city": "<your city>",
      "country": "<your country code>",
      "postal_code": "<your postal code>",
      "state": "<your state code>"
    }
  }'
```

> 📘 Note
>
> `first_name` and `last_name` are required fields. `middle_name` is optional and should only be provided if it appears on the customer's ID.

#### Confirm response

A successful response will return the details from your request body, similar to this:

```json title="create an individual customer response"
{
  "data": {
    "address": {
      "address_line1": "Same Global Housing Estate",
      "city": "Lokogoma",
      "country": "NG",
      "postal_code": "900107",
      "state": "NG-FC"
    },
    "date_of_birth": "2024-04-16",
    "email": "jane.doe@example.com",
    "first_name": "Jane",
    "gender": "female",
    "id": "0d3c3c62-95ca-4ca9-a8ac-a262e597ba99",
    "last_name": "Doe",
    "middle_name": "Sample",
    "phone": "+15555550100",
    "status": "active",
    "type": "individual"
  },
  "error": null
}
```

### Create a business customer

Business customers are companies or organizations that will use your platform for business transactions. Business customers must include at least one associated person, such as a director or beneficial owner.

#### Supported business industries

When creating a business customer, the `business_industry` field must be one of the following:

* Retail & E-commerce
* Information, Software & Technology
* Corporate & Legal Services
* Foundations & Nonprofit Organizations
* Marketing & Advertising
* Financial Services (Fintech and related)
* Investment Services
* Insurance Services
* Entertainment & Media
* Hiring & HR Platforms
* Crypto & Blockchains
* Supply Chain & Logistics
* Health & Medical Services
* Regulated Financial Institutions (Banks, Security Brokers)
* Gaming & Betting Platforms (Licensed).

#### Create and send a request

Make a `POST` request to the Gravv API. Replace the values in angle brackets `<...>` with your actual details before running the request:

```bash title="create a business customer request"
curl -X POST https://api.gravv.xyz/v1/customers \
  -H "Api-Key: <API_KEY>" \
  -H 'Idempotency-Key: 979879887678789_attempt_1' \
  -H "Content-Type: application/json" \
  -d '{
    "type": "business",
    "email": "<business email>",
    "phone": "<business phone number>",
    "business_name": "<registered business name>",
    "business_description": "<business description>",
    "business_type": "<business type>",
    "business_industry": "<business industry>",
    "registration_number": "<business registration number>",
    "address": {
      "address_line1": "<business address line1>",
      "address_line2": "<business address line2>",
      "city": "<city>",
      "postal_code": "<postal code>",
      "state": "<state code>",
      "country": "<country code>"
    },
    "associated_persons": [
      {
        "first_name": "<person first name>",
        "last_name": "<person last name>",
        "email": "<person email>",
        "phone": "<person phone number>",
        "gender": "<person gender>",
        "date_of_birth": "<date of birth in yyyy-mm-dd format>",
        "address": {
          "address_line1": "<person address line1>",
          "city": "<city>",
          "postal_code": "<postal code>",
          "state": "<state code>",
          "country": "<country code>"
        }
      }
    ]
  }'
```

> 📘 Note
>
> All fields shown above are required for business customers. You must include at least one associated person with their complete details.

#### Confirm response

A successful response will return the details from your request body, similar to this:

```json title="create a business customer response"
{
  "data": {
    "id": "d7052709-dc3f-4fa4-9173-164a4879b71f",
    "type": "business",
    "email": "contact@acmecorp.com",
    "phone": "+12025550173",
    "business_name": "Acme Corporation",
    "business_description": "Technology and software development",
    "business_type": "private_limited",
    "business_industry": "Technology",
    "registration_number": "RC-987654",
    "status": "active",
    "date_added": "2025-11-10T12:34:38.007951727+01:00",
    "address": {
      "address_line1": "1800 N Pole St",
      "address_line2": "Suite 202",
      "city": "Orlando",
      "postal_code": "32801",
      "state": "US-FL",
      "country": "US"
    },
    "associated_persons": [
      {
        "id": "7635ef7a-4b79-4bc5-b120-5ba03c2314a8",
        "first_name": "Jane",
        "last_name": "Doe",
        "email": "jane.doe@acmecorp.com",
        "phone": "+15555550102",
        "date_of_birth": "1990-06-15",
        "gender": "female",
        "type": "ubo",
        "status": "active",
        "date_added": "2025-11-10T12:34:38.124730478+01:00",
        "address": {
          "address_line1": "1800 N Pole St",
          "address_line2": "Suite 202",
          "city": "Orlando",
          "postal_code": "32801",
          "state": "US-FL",
          "country": "US"
        }
      }
    ]
  },
  "error": null
}
```

## What next?

Now that you’ve onboarded your first customer, you’re ready to build a full integration. Continue with [Your first Gravv integration](/getting-started/your-first-gravv-integration) to learn how to:

* Onboard multiple customers
* Verify customers with KYC
* Fund accounts
* Transfer funds between accounts

