Customers

A customer is an entity (individual or business) created by an institution. Customers represent the institution's end-users who will transact using the platform. Each customer has a profile containing identification details and can own multiple sub-accounts across currencies.

The Create Customer API allows institutions to create Individuals or Business Customers

Request Parameters

The request must include the following parameters in JSON format:

ParameterTypeRequiredDescription
currencystring✅The currency of the sub-account (e.g., USD, NGN, EUR).
client_referencestring❌Optional Institution-generated reference
emailstring❌The email address of the customer.
typestring❌The type of customer (BUSINESS or INDIVIDUAL).
individualobject❌Required if type is INDIVIDUAL
businessobject❌Required if type is BUSINESS
country_dataobject❌Optional object containing country specific data

Country Data

ParameterTypeRequiredDescription
ng.bvnstring❌11 chars Nigerian BVN
ng.ninstring❌11 chars Nigerian NIN

Individual

ParameterTypeRequiredDescription
first_namestring✅First name of Individual customer
last_namestring✅Last name of Individual customer
other_namestring❌Other names
date_of_birthstring❌Date of birth in ISO 8601 format (YYYY-MM-DD)
residential_addressobject❌See Address below
phone_numberstring❌Phone number in E.164, e.g. (+234XXXXXXXX).

Business

ParameterTypeRequiredDescription
namestring✅The name of the business
phone_numberstring❌Phone number in E.164, e.g. (+234XXXXXXXX).
incorporation_numberstring❌Business registration or incorporation number
incorporation_datestring❌Date of incorporation in ISO 8601 format (YYYY-MM-DD)
incorporation_countrystring❌Two-letter country code where business is incorporated. This must always exist with incorporation_number
registered_addressobject❌See the Address object below
tax_idstring❌Business tax identification number
business_typestring❌The legal structure of the business (CORPORATION, LLC, PARTNERSHIP, SOLE_PROPRIETORSHIP)
websitestring❌Business website URL
contact_personobject❌Details of contact person for the business
contact_person.first_namestring✅First name of the business contact person
contact_person.last_namestring✅Last name of the business contact person
contact_person.emailstring❌Last name of the business contact person
contact_person.phone_numberstring❌Phone number of business contact in E.164 format
contact_person.positionstring❌Job title or position of contact within the business

Address

ParameterTypeRequiredDescription
line_1string✅First line of address (street number and name)
line_2string❌Second line of address (apartment, suite, etc.)
citystring❌City name
statestring❌State, province, or region
postal_codestring❌Postal or ZIP code
countrystring✅Two-letter country code

Example Request

curl --location -g '{{LYNC_BASE_URL}}/banking/v2/customers' \
--header 'x-waza-api-key: your_api_key_here' \
--data-raw '{
  "type": "BUSINESS",
  "email": "[email protected]",
  "client_reference": "CUST-BUS-789012",
  "business": {
    "name": "Acme Corporation",
    "phone_number": "+12025550179",
    "incorporation_number": "BUS12345",
    "incorporation_date": "2010-05-20",
    "incorporation_country": "US",
    "tax_id": "12-3456789",
    "business_type": "CORPORATION",
    "website": "https://www.acmecorp.com",
    "registered_address": {
      "line_1": "100 Corporate Way",
      "line_2": "Suite 300",
      "city": "San Francisco",
      "state": "CA",
      "postal_code": "94107",
      "country": "US"
    },
    "contact_person": {
      "first_name": "Jane",
      "last_name": "Smith",
      "email": "[email protected]",
      "phone_number": "+12025550180",
      "position": "Chief Financial Officer"
    }
  }
}'
curl --location -g '{{LYNC_BASE_URL}}/banking/v1/customers' \
--header 'x-waza-api-key: your_api_key_here' \
--data-raw '{
    "type": "INDIVIDUAL",
    "client_reference": "individual-cust-3",
    "individual": {
        "first_name": "John",
        "last_name": "Doe",
        "date_of_birth": "2022-02-28",
        "residential_address": {
            "line_1": "Some address",
            "line_2": "",
            "city": "Lagos",
            "state": "Lagos",
            "postal_code": "333443",
            "country": "NG"
        }
    },
    "country_data": {
        "ng": {
            "bvn": "33332232354",
            "nin": "77467634657"
        }
    }
}'

Example Response: 201 Created

Upon successful creation, the API will respond with details of the created subaccount.

{
  "data": {
    "id": "0195b6f7-2056-8b11-c26d-51ec96c7f413",
    "type": "BUSINESS",
    "email": "[email protected]",
    "client_reference": "CUST-BUS-789012",
    "state": "CREATED",
    "verification_status": "UNVERIFIED",
    "created_date": "2025-03-17T21:20:36.122Z",
    "updated_date": "2025-03-17T21:20:36.122Z",
    "business": {
      "name": "Acme Corporation",
      "phone_number": "+12025550179",
      "incorporation_number": "BUS12345",
      "incorporation_date": "2010-05-20",
      "incorporation_country": "US",
      "tax_id": "12-3456789",
      "business_type": "CORPORATION",
      "website": "https://www.acmecorp.com",
      "registered_address": {
        "line_1": "100 Corporate Way",
        "line_2": "Suite 300",
        "city": "San Francisco",
        "state": "CA",
        "postal_code": "94107",
        "country": "US"
      },
      "contact_person": {
        "first_name": "Jane",
        "last_name": "Smith",
        "email": "[email protected]",
        "phone_number": "+12025550180",
        "position": "Chief Financial Officer"
      }
    }
  }
}
{
    "data": {
        "id": "0196251d-6dd8-76bb-bcc4-2e0dd127baea",
        "state": "ACTIVE",
        "created_date": "2025-04-11T13:50:07.838Z",
        "updated_date": "2025-04-11T13:50:07.838Z",
        "version": 0,
        "type": "INDIVIDUAL",
        "client_reference": "individual-cust-3",
        "verification_status": "UNVERIFIED",
        "individual": {
            "first_name": "John",
            "last_name": "Doe",
            "date_of_birth": "2022-02-28",
            "residential_address": {
                "line_1": "Some address",
                "line_2": "",
                "city": "Lagos",
                "state": "Lagos",
                "postal_code": "333443",
                "country": "NG"
            }
        },
        "country_data": {
            "ng": {
                "bvn": "33332232354",
                "nin": "77467634657"
            }
        }
    }
}

Additional Response Fields

ParameterTypeRequiredDescription
verification_statusstring✅Indicates KYC/KYB verification state of the customer. Can be VERIFIED or UNVERIFIED
statestring✅ACTIVE, INACTIVE, BLOCKED

🚧

Customers must be in ACTIVE state before accounts can be created for them

📘

Some account types may be unavailable to some customers depending on the verification_status


Customer Updates

Updates can be made to customers by calling the appropriate patch endpoint for the field that needs an update. Properties can be removed by setting them explicitly to null as far as they are optional fields.

Update Endpoints

EndpointHTTP MethodDescription
/customer/{id}/individualPATCHUpdate individual customer details
/customer/{id}/businessPATCHUpdate business customer details
/customer/{id}/country_dataPATCHUpdate country-specific data

Update Rules

  1. Partial Updates: Only include fields you want to update
  2. Required Fields: Cannot be set to null (e.g., first_name, last_name for individuals; name for businesses)
  3. Optional Fields: Can be set to null to remove the value
  4. At Least One Field: Each update request must include at least one field
  5. Address Updates: Address fields must be updated as a complete object - partial address updates are not supported

Update Individual Customer

Request Parameters

Include any individual customer fields you want to update.

ParameterTypeDescriptionNullable
first_namestringFirst name of Individual customerNo
last_namestringLast name of Individual customerNo
other_namestringOther namesYes
date_of_birthstringDate of birth (YYYY-MM-DD)Yes
residential_addressobjectComplete address objectYes
phone_numberstringPhone number in E.164 formatYes
curl --location -g '{{LYNC_BASE_URL}}/banking/v2/customer/0196251d-6dd8-76bb-bcc4-2e0dd127baea/individual' \
--header 'x-waza-api-key: your_api_key_here' \
--data-raw '{
    "first_name": "Johnny",
    "other_name": null,
    "residential_address": {
        "line_1": "123 New Street",
        "line_2": "",
        "city": "New City",
        "state": "Lagos",
        "postal_code": "333443",
        "country": "NG"
    }
}'

This request:

  • Updates first_name to "Johnny"
  • Removes other_name by setting it to null
  • Updates the entire residential_address object (must include all required address fields)

Update Business Customer

Request Parameters

Include any business customer fields you want to update.

ParameterTypeDescriptionNullable
namestringThe name of the businessNo
phone_numberstringPhone number in E.164 formatYes
incorporation_numberstringBusiness registration numberYes
incorporation_datestringDate of incorporation (YYYY-MM-DD)Yes
incorporation_countrystringTwo-letter country codeYes
registered_addressobjectComplete address objectYes
tax_idstringBusiness tax identification numberYes
business_typestringLegal structure of the businessYes
websitestringBusiness website URLYes
contact_personobjectComplete contact person objectYes

⚠️ Note: incorporation_country and incorporation_number must be provided together when updating either one.

curl --location -g '{{LYNC_BASE_URL}}/banking/v2/customer/0195b6f7-2056-8b11-c26d-51ec96c7f413/business' \
--header 'x-waza-api-key: your_api_key_here' \
--data-raw '{
    "name": "Acme Corporation International",
    "website": "https://www.acmecorp-international.com",
    "tax_id": null,
    "registered_address": {
        "line_1": "200 Business Blvd",
        "line_2": "Floor 12",
        "city": "San Francisco",
        "state": "CA",
        "postal_code": "94107",
        "country": "US"
    },
    "contact_person": {
        "first_name": "Jane",
        "last_name": "Smith",
        "email": "[email protected]",
        "phone_number": "+12025550180", 
        "position": "Chief Executive Officer"
    }
}'

This request:

  • Updates name to "Acme Corporation International"
  • Updates website to a new URL
  • Removes tax_id by setting it to null
  • Updates the entire registered_address object
  • Updates the entire contact_person object

Update Country-Specific Data

Request Parameters

Include any country-specific data fields you want to update.

ParameterTypeDescriptionNullable
ngobjectNigeria-specific dataYes
curl --location -g '{{LYNC_BASE_URL}}/banking/v2/customer/0196251d-6dd8-76bb-bcc4-2e0dd127baea/country_data' \
--header 'x-waza-api-key: your_api_key_here' \
--data-raw '{
    "ng": {
        "bvn": "22233344455",
        "nin": null
    }
}'

This request:

  • Updates the entire ng object
  • Sets ng.bvn to a new value
  • Removes ng.nin by setting it to null


Address Object

When updating address fields, you must provide a complete address object with all required fields. Partial address updates are not supported.

ParameterTypeRequiredDescription
line_1string✓First line of address
line_2stringSecond line of address
citystringCity name
statestringState, province, or region
postal_codestringPostal or ZIP code
countrystring✓Two-letter country code

Contact Person Object

When updating the contact person, you must provide a complete contact person object with all required fields. Partial contact person updates are not supported.

ParameterTypeRequiredDescription
first_namestring✓First name of contact person
last_namestring✓Last name of contact person
emailstringEmail address of contact person
phone_numberstringPhone number in E.164 format
positionstringJob title or position

Customer Response Schema Definitions

Common Fields (Always Present)

FieldData TypeDescription
data.typestringType of customer ("INDIVIDUAL" or "BUSINESS")
data.client_referencestringClient's custom identifier
data.emailstringCustomer's email address
data.idstringUnique identifier for the customer (UUID format)
data.created_datestringISO timestamp of when the customer record was created
data.updated_datestringISO timestamp of when the customer record was last updated
data.statestringCurrent state of the customer record (e.g., "CREATED")
data.verification_statusstringStatus of customer verification (e.g., "VERIFIED")
data.country_dataobjectCountry-specific identification information

Conditional Fields

When data.type = "INDIVIDUAL"
FieldData TypeDescription
data.individualobjectInformation for individual customer
data.individual.first_namestringIndividual's first name
data.individual.last_namestringIndividual's last name
data.individual.other_namestringIndividual's middle or other names
data.individual.date_of_birthstringDate of birth in YYYY-MM-DD format
data.individual.phone_numberstringPhone number with country code
data.individual.residential_addressobjectIndividual's residential address details
data.individual.residential_address.line_1stringFirst line of residential address
data.individual.residential_address.line_2stringSecond line of residential address
data.individual.residential_address.citystringCity of residence
data.individual.residential_address.statestringState or province of residence
data.individual.residential_address.postal_codestringPostal or ZIP code
data.individual.residential_address.countrystringCountry code for the address

When data.type = "BUSINESS"
FieldData TypeDescription
data.businessobjectInformation for business customer
data.business.namestringBusiness name
data.business.phone_numberstringBusiness Phone number with country code
data.business.incorporation_numberstringBusiness registration/incorporation number
data.business.incorporation_datestringDate of incorporation in YYYY-MM-DD format
data.business.incorporation_countrystringCountry code where business is incorporated
data.business.registered_addressobjectBusiness's registered address details
data.business.registered_address.line_1stringFirst line of registered address
data.business.registered_address.line_2stringSecond line of registered address
data.business.registered_address.citystringCity of registered address
data.business.registered_address.statestringState or province of registered address
data.business.registered_address.postal_codestringPostal or ZIP code
data.business.registered_address.countrystringCountry code for the registered address
data.business.tax_idstringBusiness tax identification number
data.business.business_typestringType of business entity (e.g., "CORPORATION")
data.business.websitestringBusiness website URL
data.business.contact_personobjectPrimary contact person details
data.business.contact_person.first_namestringContact person's first name
data.business.contact_person.last_namestringContact person's last name
data.business.contact_person.emailstringContact person's email address
data.business.contact_person.phone_numberstringContact person's phone number
data.business.contact_person.positionstringContact person's position in the business

What’s Next

Did this page help you?