Swipelux

Create individual customer

Create individual customers with optional KYC information

Unified Endpoint: This endpoint creates both individual and business customers. Use the type parameter to specify customer type (defaults to "individual").

Quick Example

POST
/v1/customers

Authorization

X-API-Key<token>

Your Swipelux API key. Obtain this from the Swipelux Dashboard.

In: header

Request Body

application/jsonOptional
typeunknown

The type of customer: individual (default) or business

Value in: "individual" | "business"
firstNamestring

The first name of the customer

Minimum length: 1Maximum length: 1024
middleNamestring

The middle name of the customer

Minimum length: 1Maximum length: 1024
lastNamestring

The last name of the customer

Minimum length: 1Maximum length: 1024
legalNamestring

The legal name of the business (required when type is 'business')

Minimum length: 1Maximum length: 1024
websitestring

The website URL of the business (required when type is 'business')

Minimum length: 1Maximum length: 2048
emailstring

The primary email address of the customer

Format: "email"
phonestring

The primary phone number of the customer in E.164 format (e.g., +1234567890) - optional during creation

Minimum length: 1Maximum length: 32
metadataobject

The provided metadata of the customer

birthDatestring

The date of birth of the customer in ISO 8601 format (YYYY-MM-DD)

Format: "date"
residentialAddressobject

The residential address of the customer

identifyingInformationarray<object>

An array of identifying information for the customer

shareTokenstring

A SumSub share token for importing existing KYC verification data

Minimum length: 1

Response Body

The customer was created successfully

idRequiredstring

A unique identifier for the customer

typeRequiredunknown

The type of customer: individual or business

Value in: "individual" | "business"
firstNamestring | null

The first name of the customer

middleNamestring | null

The middle name of the customer

lastNamestring | null

The last name of the customer

legalNamestring | null

The legal name of the business (for business customers)

websitestring | null

The website URL of the business (for business customers)

emailRequiredstring

The primary email address of the customer

Format: "email"
phoneRequiredstring

The primary phone number of the customer in E.164 format (e.g., +1234567890)

Minimum length: 1Maximum length: 32
birthDatestring | null

The date of birth of the customer in ISO 8601 format (YYYY-MM-DD)

countrystring | null

The country of the customer (ISO 3166-1 alpha-2 or alpha-3 code)

statusRequiredunknown

The KYC verification status of the customer

Value in: "not_started" | "incomplete" | "under_review" | "approved" | "rejected" | "pending_verification"
metadataobject | null

The provided metadata of the customer

walletAddressesarray<string>

Array of customer wallet addresses (only present in legacy mode)

balanceRequirednumber

The total balance of the customer in USD

createdAtRequiredstring

The date and time the customer was created

updatedAtRequiredstring

The date and time the customer was last updated

export interface Response {
  /**
   * A unique identifier for the customer
   */
  id: string;
  /**
   * The type of customer: individual or business
   */
  type: "individual" | "business";
  /**
   * The first name of the customer
   */
  firstName?: string | null;
  /**
   * The middle name of the customer
   */
  middleName?: string | null;
  /**
   * The last name of the customer
   */
  lastName?: string | null;
  /**
   * The legal name of the business (for business customers)
   */
  legalName?: string | null;
  /**
   * The website URL of the business (for business customers)
   */
  website?: string | null;
  /**
   * The primary email address of the customer
   */
  email: string;
  /**
   * The primary phone number of the customer in E.164 format (e.g., +1234567890)
   */
  phone: string;
  /**
   * The date of birth of the customer in ISO 8601 format (YYYY-MM-DD)
   */
  birthDate?: string | null;
  /**
   * The country of the customer (ISO 3166-1 alpha-2 or alpha-3 code)
   */
  country?: string | null;
  /**
   * The KYC verification status of the customer
   */
  status: "not_started" | "incomplete" | "under_review" | "approved" | "rejected" | "pending_verification";
  /**
   * The provided metadata of the customer
   */
  metadata?: {
    [k: string]: string | number | boolean;
  } | null;
  /**
   * Array of customer wallet addresses (only present in legacy mode)
   */
  walletAddresses?: string[];
  /**
   * The total balance of the customer in USD
   */
  balance: number;
  /**
   * The date and time the customer was created
   */
  createdAt: string;
  /**
   * The date and time the customer was last updated
   */
  updatedAt: string;
}
 
curl -X POST "https://wallet.swipelux.com/v1/customers" \
  -H "X-API-Key: <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "individual",
    "firstName": "string",
    "middleName": "string",
    "lastName": "string",
    "legalName": "string",
    "website": "string",
    "email": "user@example.com",
    "phone": "string",
    "metadata": {
      "property1": "string",
      "property2": "string"
    },
    "birthDate": "2019-08-24",
    "residentialAddress": {
      "streetLine1": "string",
      "streetLine2": "string",
      "city": "string",
      "state": "string",
      "postalCode": "string",
      "country": "str"
    },
    "identifyingInformation": [
      {
        "type": "drivers_license",
        "issuingCountry": "str",
        "frontSideImage": "string",
        "backSideImage": "string"
      }
    ],
    "shareToken": "string"
  }'
{
  "id": "string",
  "type": "individual",
  "firstName": "string",
  "middleName": "string",
  "lastName": "string",
  "legalName": "string",
  "website": "string",
  "email": "user@example.com",
  "phone": "string",
  "birthDate": "2019-08-24",
  "country": "str",
  "status": "not_started",
  "metadata": {
    "property1": "string",
    "property2": "string"
  },
  "walletAddresses": [
    "string"
  ],
  "balance": 0,
  "createdAt": "string",
  "updatedAt": "string"
}

Customer Types

type (optional)

Type: string

Values: "individual" (default) | "business"

Description: Specifies whether to create an individual or business customer.

  • "individual" (default): Creates a personal customer account with cus_ prefix
  • "business": Creates a business customer account with biz_ prefix

Example: Individual Customer (Default)

Request:

POST https://wallet.swipelux.com/v1/customers
Content-Type: application/json
X-API-Key: YOUR_SECRET_API_KEY
 
{}

Response:

{
  "id": "cus_abc123",
  "status": "approved"
}

Example: Business Customer

Request:

POST https://wallet.swipelux.com/v1/customers
Content-Type: application/json
X-API-Key: YOUR_SECRET_API_KEY
 
{
  "type": "business",
  "legalName": "Acme Corporation",
  "website": "https://acme.com"
}

Response:

{
  "id": "biz_def456",
  "status": "pending_verification",
  "legalName": "Acme Corporation"
}

Additional Parameters

shareToken (optional)

Type: string

Description: A SumSub share token that allows importing existing KYC verification data for seamless customer onboarding.

When you create a customer with a shareToken from SumSub, their KYC data will be automatically fetched and imported for onramp when creating transfers. This significantly improves the user experience by:

  • Eliminating redundant verification: Customers don't need to re-verify their identity
  • Faster onramp processing: KYC status is immediately available for transfer creation
  • Higher conversion rates: Reduced friction leads to better completion rates

Example Request with ShareToken

POST https://wallet.swipelux.com/v1/customers
Content-Type: application/json
X-API-Key: YOUR_SECRET_API_KEY
 
{
  "firstName": "John",
  "lastName": "Doe",
  "email": "john.doe@example.com",
  "phone": "+1234567890",
  "birthDate": "1990-01-01",
  "residentialAddress": {
    "streetLine1": "123 Main St",
    "city": "San Francisco",
    "state": "CA",
    "postalCode": "94101",
    "country": "US"
  },
  "shareToken": "sumsub_share_token_xyz789"
}

Integration Notes

  • Generate the shareToken from your SumSub integration before making the customer creation request
  • The shareToken must be valid and associated with completed KYC verification data
  • Learn more about SumSub integration in our Advanced Features guide