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
currencystringThe currency of the sub-account (e.g., USD, NGN, EUR).
client_referencestringOptional Institution-generated reference
emailstringThe email address of the customer.
typestringThe type of customer (BUSINESS or INDIVIDUAL).
individualobjectRequired if type is INDIVIDUAL
businessobjectRequired if type is BUSINESS
country_dataobjectOptional object containing country specific data

Country Data

ParameterTypeRequiredDescription
ng.bvnstring11 chars Nigerian BVN
ng.ninstring11 chars Nigerian NIN

Individual

ParameterTypeRequiredDescription
first_namestringFirst name of Individual customer
last_namestringLast name of Individual customer
other_namestringOther names
date_of_birthstringDate of birth in ISO 8601 format (YYYY-MM-DD)
residential_addressobjectSee Address below
phone_numberstringPhone number in E.164, e.g. (+234XXXXXXXX).

Business

ParameterTypeRequiredDescription
namestringThe name of the business
phone_numberstringPhone number in E.164, e.g. (+234XXXXXXXX).
incorporation_numberstringBusiness registration or incorporation number
incorporation_datestringDate of incorporation in ISO 8601 format (YYYY-MM-DD)
incorporation_countrystringTwo-letter country code where business is incorporated. This must always exist with incorporation_number
registered_addressobjectSee the Address object below
tax_idstringBusiness tax identification number
business_typestringThe legal structure of the business (CORPORATION, LLC, PARTNERSHIP, SOLE_PROPRIETORSHIP)
websitestringBusiness website URL
contact_personobjectDetails of contact person for the business
contact_person.first_namestringFirst name of the business contact person
contact_person.last_namestringLast name of the business contact person
contact_person.emailstringLast name of the business contact person
contact_person.phone_numberstringPhone number of business contact in E.164 format
contact_person.positionstringJob title or position of contact within the business

Address

ParameterTypeRequiredDescription
line_1stringFirst line of address (street number and name)
line_2stringSecond line of address (apartment, suite, etc.)
citystringCity name
statestringState, province, or region
postal_codestringPostal or ZIP code
countrystringTwo-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_statusstringIndicates KYC/KYB verification state of the customer. Can be VERIFIED or UNVERIFIED
statestringACTIVE, 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_1stringFirst line of address
line_2stringSecond line of address
citystringCity name
statestringState, province, or region
postal_codestringPostal or ZIP code
countrystringTwo-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_namestringFirst name of contact person
last_namestringLast 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