> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nuvera.global/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Your First Customer

> Create a customer with basic company details and understand what happens next

Customer creation is basics-only. The first request registers the company with a small set of core fields and returns a `DRAFT` customer. Everything else — the full KYB questionnaire, associates, and documents — is collected and verified by our verification partner AiPrise during onboarding, not through the Partner REST API.

You need `CUSTOMERS_WRITE` to create a customer. Add `CUSTOMERS_READ` if your integration reads the customer back after creation.

<Steps>
  <Step title="Prepare the create payload">
    Only `companyName` is required. Country IDs are alpha-2 codes that must be accepted by Nuvera; the Partner REST API does not expose a country lookup endpoint.

    ```json theme={null}
    {
      "companyName": "Acme Imports GmbH",
      "registrationNumber": "ACME-123",
      "countryOfIncorporationId": "<country-alpha-2>"
    }
    ```
  </Step>

  <Step title="Create the customer">
    Generate the signed JWT with `method` set to `POST`, `uri` set to `/api/v1/customers`, and `bodyHash` set to the SHA-256 hash of the exact JSON bytes sent as `BODY`.

    ```bash theme={null}
    BODY='{"companyName":"Acme Imports GmbH","registrationNumber":"ACME-123","countryOfIncorporationId":"<country-alpha-2>"}'
    TOKEN="<signed-request-jwt>"

    curl https://rest-api.nuvera.global/api/v1/customers \
      -H "x-api-key: $NUVERA_API_KEY" \
      -H "Authorization: Bearer $TOKEN" \
      -H "content-type: application/json" \
      --data "$BODY"
    ```

    The response is the customer's basic details and `status`, which starts as `DRAFT`.
  </Step>
</Steps>

## Optional fields

These fields are optional. Add them when they help your workflow; AiPrise collects and may overwrite the remaining company profile during onboarding.

| Field                      | Required? | Use                                   |
| -------------------------- | --------- | ------------------------------------- |
| `registrationNumber`       | Optional  | Company registration number.          |
| `countryOfIncorporationId` | Optional  | Country of incorporation (alpha-2).   |
| `addressLine1`             | Optional  | Registered address line 1.            |
| `addressLine2`             | Optional  | Registered address line 2.            |
| `city`                     | Optional  | Registered address city.              |
| `stateProvinceRegion`      | Optional  | Registered address state/province.    |
| `postalCode`               | Optional  | Registered address postal code.       |
| `addressCountryId`         | Optional  | Registered address country (alpha-2). |

## What happens after creation

A new customer is `DRAFT`. Verification is completed through AiPrise:

1. The customer opens their verification session and submits the full KYB details and documents to AiPrise.
2. AiPrise and Nuvera compliance review the submission; the customer moves to `PENDING_REVIEW`, then `APPROVED`, `CORRECTION_REQUESTED`, `REJECTED`, or `SUSPENDED`.
3. Track the customer with `GET /api/v1/customers/{id}` and `GET /api/v1/customers/{id}/activity`. When corrections are requested, see [Handle Corrections](/get-started/partner-api/handle-corrections).

For the complete customer schema, open the [API Reference](/api-reference/introduction).
