General

Customers

 

Manage customer records including personal details, billing and shipping addresses, ID verification, and metadata. Create, update, retrieve, and delete customer profiles for collection processing and mandate management.

Used to create, edit and archive customers.

When creating collections you can either submit a collection record with the customer details or create a customer here and then assign a customer_id to a collection record.

Create

API call to create new customer(s) as single or batch records.

WARNING

ABSA (provider bank) Registered Mandate (RM) payment methods support the company registration number ID type. You can create ABSA RM collections for companies but you can not create DebiCheck collections for companies.

Nedbank (provider bank) RM payment methods do not support company registration numbers yet.

Path

POST /customers/create

Request Body

{
  "records": [{
    "reference": "CLN240919000001",
    "company_name": null,
    "person_name": "John",
    "person_surname": "Doe",
    "client_type": "RESIDENT_INDIVIDUAL",
    "id_type": "SOUTH_AFRICAN_ID",
    "id_number": "8007014800087",
    "email": "johndoe@mail.com",
    "contact_number": "+27831234567",
    "customer_status": "ACTIVE",

    "is_tax": true,
    "tax_number": "9560164031",

    "billing_address_line_1": "145 Superior Complex",
    "billing_address_line_2": "541 New River Road",
    "city_or_town": "Pretoria",
    "postal_code": 1285,
    "billing_province_or_state": "Gauteng",
    "billing_country": "ZA",
    "billing_email": "james.may@example.com",

    "shipping_contact_name": "James May",
    "shipping_contact_number": "+27712345678",
    "shipping_address_line_1": "145 Superior Complex",
    "shipping_address_line_2": "541 New River Road",
    "shipping_city_or_town": "Pretoria",
    "shipping_postal_code": 1285,
    "shipping_province_or_state": "Gauteng",
    "shipping_country": "ZA",

    "metadata": {
      "custom_field_1": "custom data 1",
      "custom_field_2": "custom data 2",
      ...
    },
  }]
}

Response Body

The response follows the same format as the list response

{
    "status": true,
    "results": [{
        "id": "cus_9F3jl6zuRAJxuBmiN3H4D",
        "customer_status": "ACTIVE",
        ...
    }, ...]
}

Parameters

Field
RequiredType
Description
Example
idn/aString(32)Record id returnedcus_9F3jl6zuRAJxuBmiN3H4D
customer_statusn/aENUM(ACTIVE,ARCHIVED,DISABLED)ACTIVE
deleted_atn/aDatetimeDate and time record was deleted2024-02-28 12:15:15
updated_atn/aDatetimeDate and time record was updated2024-02-27 16:25:39
created_atn/aDatetimeDate and time record was created2024-02-27 09:11:23
referenceYString(35)Reference to identify a specific customerCLN240919000001
company_nameCString(64)Either a company name OR person name and surname must be provided. Company name is used when collection is made from a specific company. DebiCheck only works with individuals, not companies.Superior Meteor Corp
person_nameCString(32)Name of the person to be collected from. Required for DebiCheck mandates.John
person_surnameCString(32)Surname of the person to be collected from. Required for DebiCheck mandates.Doe
client_typeNENUMFor use with Nedbank payment methods (payment_methods.provider_bank is Nedbank). Defaults to Resident individual / Domestic company. (DOMESTIC_COMPANY,FINANCIAL_INSTITUTION,FOREIGN_COMPANY,NONRESIDENT_INDIVIDUAL,RESIDENT_INDIVIDUAL)RESIDENT_INDIVIDUAL
id_typeCENUMRequired field for DebiCheck. Note: Company Registration Number type lookup only applies to ABSA Registered Mandates. (COMPANY_REGISTRATION_NUMBER,PASSPORT_NUMBER,SOUTH_AFRICAN_ID,TEMPORARY_RESIDENCE)SOUTH_AFRICAN_ID
id_numberCString(14)Required field for DebiCheck. ID number relating to the ID type8007014800087
emailYString(128)Valid email address of the person to be collected fromjohndoe@mail.com
contact_numberCString(16)Mobile contact number of the person to be collected from. Must include the area code. Required for DebiCheck mandates+27831234567
is_taxNBooleantrue - Customer is taxedtrue
tax_numberNString(64)Customer tax number9560164031
billing_address_line_1NString(128)First line of address for the person to be collected from. Should be the street address if no complex number is applicable.145 Superior Complex
billing_address_line_2NString(128)Second line of address for the person to be collected from. Should be the street address if a complex was used on line 1.541 New River Road
city_or_townNString(64)City/Town where billing address is located in.Pretoria
postal_codeNIntegerPostal code related to the billing address.1285
billing_province_or_stateNString(64)Province/State where billing address is located in.Gauteng
billing_countryNENUMCountry where billing address is located in. (ZA, AU, GB, US, etc.)ZA
billing_emailNString(128)Email related to the billing addressjames.may@example.com
shipping_contact_nameNString(128)Shipping contact nameJames May
shipping_contact_numberNString(16)Shipping contact person's cellphone/telephone number.+27712345678
shipping_address_line_1NString(128)First line of address for the person to be shipped to. Should be the street address if no complex number is applicable.145 Superior Complex
shipping_address_line_2NString(128)Second line of address for the person to be shipped to. Should be the street address if a complex was used on line 1.541 New River Road
shipping_city_or_townNString(64)City/Town where shipping address is located in.Pretoria
shipping_postal_codeNIntegerPostal code related to the shipping address.1285
shipping_province_or_stateNString(64)Province/State where billing shipping is located in.Gauteng
shipping_countryNENUMCountry where shipping address is located in. (ZA, AU, GB, US, etc.)ZA
metadataNJSONAny additional meta data{}

Update

API call to update existing customer(s) as single or batch records. Records can not be deleted, only archived.

Path

POST /customers/update

WARNING

Updating customer details here will not update a DebiCheck mandate / Registered Mandate, to update DebiCheck mandates / Registered mandates check the mandates update section.

Likewise customer updates will only update the connected collections if those collections are running EFT debit orders and not DebiCheck / Registered Mandates. For DebiCheck / RM it is best to pause the old collections and create a new collection once the mandate changes have been approved.

If you archive/disable a customer then it will not cancel a DebiCheck mandate / Registered Mandate. A customer can not be archived/disabled if you have running collections for the customer you need to stop the related collections first.

Request Body

Only include fields you wish to change (besides id used to find the record). Setting a column to null e.g. city_or_town = null will clear that fields' value if allowed

{
  "records": [{
    "id": "cus_9F3jl6zuRAJxuBmiN3H4D",
    "reference": "CLN240919000001",
    "company_name": null,
    "person_name": "John",
    "person_surname": "Doe",
    "client_type": "RESIDENT_INDIVIDUAL",
    "id_type": "SOUTH_AFRICAN_ID",
    "id_number": "8007014800087",
    "email": "johndoe@mail.com",
    "contact_number": "+27831234567",
    "customer_status": "ACTIVE",

    "is_tax": true,
    "tax_number": "9560164031",

    "billing_address_line_1": "145 Superior Complex",
    "billing_address_line_2": "541 New River Road",
    "city_or_town": "Pretoria",
    "postal_code": 1285,
    "billing_province_or_state": "Gauteng",
    "billing_country": "ZA",
    "billing_email": "james.may@example.com",

    "shipping_contact_name": "James May",
    "shipping_contact_number": "+27712345678",
    "shipping_address_line_1": "145 Superior Complex",
    "shipping_address_line_2": "541 New River Road",
    "shipping_city_or_town": "Pretoria",
    "shipping_postal_code": 1285,
    "shipping_province_or_state": "Gauteng",
    "shipping_country": "ZA",

    "metadata": {
      "custom_field_1": "custom data 1",
      "custom_field_2": "custom data 2",
      ...
    }
  }]
}

Response Body

The response follows the same format as the list response

{
    "status": true,
    "results": [{
        "id": "cus_9F3jl6zuRAJxuBmiN3H4D",
        "customer_status": "ACTIVE",
        ...
    }, ...]
}

Parameters

Field
RequiredType
Description
Example
idYString(32)Record id to updatecus_9F3jl6zuRAJxuBmiN3H4D
referenceYString(35)Reference to identify a specific customerCLN240919000001
company_nameCString(64)Either a company name OR person name and surname must be provided. Company name is used when collection is made from a specific company. DebiCheck only works with individuals, not companies. Only applies to EFT DO payment methods and RM payment methods provided by ABSA.Superior Meteor Corp
person_nameCString(32)Name of the person to be collected from. Required for DebiCheck mandates.John
person_surnameCString(32)Surname of the person to be collected from. Required for DebiCheck mandates.Doe
client_typeNENUMFor use with Nedbank payment methods (payment_methods.provider_bank is Nedbank). Defaults to Resident individual / Domestic company. (DOMESTIC_COMPANY,FINANCIAL_INSTITUTION,FOREIGN_COMPANY,NONRESIDENT_INDIVIDUAL,RESIDENT_INDIVIDUAL)RESIDENT_INDIVIDUAL
id_typeCENUMRequired field for DebiCheck. Note: Company Registration Number type lookup only applies to ABSA Registered Mandates. (COMPANY_REGISTRATION_NUMBER,PASSPORT_NUMBER,SOUTH_AFRICAN_ID,TEMPORARY_RESIDENCE)SOUTH_AFRICAN_ID
id_numberCString(14)Required field for DebiCheck. ID number relating to the ID type8007014800087
emailNString(128)Valid email address of the person to be collected fromjohndoe@mail.com
contact_numberCString(16)Mobile contact number of the person to be collected from. Must include the area code. Required for DebiCheck mandates+27831234567
customer_statusn/aENUM(ACTIVE,ARCHIVED,DISABLED)ACTIVE
is_taxNBooleantrue - Customer is taxedtrue
tax_numberNString(64)Customer tax number9560164031
billing_address_line_1NString(128)First line of address for the person to be collected from. Should be the street address if no complex number is applicable.145 Superior Complex
billing_address_line_2NString(128)Second line of address for the person to be collected from. Should be the street address if a complex was used on line 1.541 New River Road
city_or_townNString(64)City/Town where address lines 1 and 2 are located in.Pretoria
postal_codeNIntegerPostal code related to address lines 1 and 2.1285
billing_province_or_stateNString(64)Province/State where billing address is located in.Gauteng
billing_countryNENUMCountry where billing address is located in. (ZA, AU, GB, US, etc.)ZA
billing_emailNString(128)Email related to the billing addressjames.may@example.com
shipping_contact_nameNString(128)Shipping contact nameJames May
shipping_contact_numberNString(16)Shipping contact person's cellphone/telephone number.+27712345678
shipping_address_line_1NString(128)First line of address for the person to be shipped to. Should be the street address if no complex number is applicable.145 Superior Complex
shipping_address_line_2NString(128)Second line of address for the person to be shipped to. Should be the street address if a complex was used on line 1.541 New River Road
shipping_city_or_townNString(64)City/Town where shipping address is located in.Pretoria
shipping_postal_codeNIntegerPostal code related to the shipping address.1285
shipping_province_or_stateNString(64)Province/State where billing shipping is located in.Gauteng
shipping_countryNENUMCountry where shipping address is located in. (ZA, AU, GB, US, etc.)ZA
metadataNJSONAny additional meta data{}

List

List customers loaded on the platform.

Path

GET /customers/list?{params}

Query Parameters

Field
Type
RequiredDescription
Example
customer_statusENUMNFilter for a specific customer status. (ACTIVE,ARCHIVED,DISABLED).ACTIVE
date_startDate(YYYY-MM-DD)NFilter for records that have a created date after this date specified.2024-09-13
date_endDate(YYYY-MM-DD)NFilter for records that have an created date before this specified date2025-04-24
customer_idString(32)NFilter for a specific customer id.cus_9F3jl6zuRAJxuBmiN3H4D
customer_referenceString(35)NFilter for a specific customer reference.CLN240919000001
customer_company_nameString(64)NFilter for a specific customer company names.Fast Corp LTD
customer_person_nameString(32)NFilter for a specific customer name.John
customer_person_surnameString(32)NFilter for a specific customer surname.Doe
customer_id_numberString(32)NFilter for a specific customer ID Number.7807085800085
customer_emailString(128)NFilter for a specific customer email.johndoe@mail.com
customer_contact_numberString(19)NFilter for a specific customer contact number.27831234567

Response Body

{
  "status": true,
  "results": [{
    "id": "cus_9F3jl6zuRAJxuBmiN3H4D",
    "customer_status": "ACTIVE",
    "deleted_at": null,
    "updated_at": null,
    "created_at": "2024-02-27 09:11:23",
    "reference": "CLN240919000001",
    "company_name": null,
    "person_name": "John",
    "person_surname": "Doe",
    "client_type": "RESIDENT_INDIVIDUAL",
    "id_type": "SOUTH_AFRICAN_ID",
    "id_number": "8007014800087",
    "email": "johndoe@mail.com",
    "contact_number": "+27831234567",
    "is_tax": true,
    "tax_number": "9560164031",
    "billing_address_line_1": "145 Superior Complex",
    "billing_address_line_2": "541 New River Road",
    "city_or_town": "Pretoria",
    "postal_code": 1285,
    "billing_province_or_state": "Gauteng",
    "billing_country": "ZA",
    "billing_email": "james.may@example.com",
    "shipping_contact_name": "James May",
    "shipping_contact_number": "+27712345678",
    "shipping_address_line_1": "145 Superior Complex",
    "shipping_address_line_2": "541 New River Road",
    "shipping_city_or_town": "Pretoria",
    "shipping_postal_code": 1285,
    "shipping_province_or_state": "Gauteng",
    "shipping_country": "ZA",
    "metadata": {
      "custom_field_1": "custom data 1",
      "custom_field_2": "custom data 2",
      ...
    }
  }, ...]
}