POST
https://api-sandbox.cscs.ng
/
v1
/
accounts
Create account
curl --request POST \
  --url https://api-sandbox.cscs.ng/v1/accounts \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: <idempotency-key>' \
  --data '
{
  "bvn": "12345678901",
  "accountType": "I",
  "email": "[email protected]",
  "phone1": "08030000000",
  "address1": "12 Marina Road",
  "city": "Lagos",
  "bankAccountNumber": "0123456789",
  "bankSortCode": "044150149",
  "memberCode": "ABC1234"
}
'
{
  "status": true,
  "investorId": "8a15d7c4-14b2-4f8c-aef3-12cfe4df1a60",
  "chn": "CA123456789X",
  "cscsNo": "0000000123",
  "isNew": false
}

Headers

Idempotency-Key
string
required

Reuse the same key when retrying the same idempotent request.

Example:

"3e9cb40d-87b8-4a60-bffe-bdb7b5e65e9c"

Body

application/json
bvn
string
required
Required string length: 11
Pattern: ^[0-9]{11}$
accountType
enum<string>
required
Available options:
I,
M,
C
email
string<email>
required
Maximum string length: 40
phone1
string
required

E.164 format or Nigerian local format.

Maximum string length: 16
Pattern: ^(?:\+[1-9][0-9]{1,14}|0[0-9]{10})$
address1
string
required
Maximum string length: 40
city
string
required
Maximum string length: 25
bankAccountNumber
string
required
Required string length: 10
Pattern: ^[0-9]{10}$
memberCode
string
required
Maximum string length: 7
bankSortCode
string
required
Maximum string length: 40
chn
string | null
Pattern: ^C(?:\d{9}[A-Z]{2}|[A-Z]\d{9}[A-Z])$
name
string

Required unless the request is for a non-exempt integrator creating an individual (I) account. Digits are rejected for individual and minor account names; corporate names may include digits. For non-exempt individual account creation, this value is optional, is forwarded to BVN/account validation when present, and the persisted name comes from the validation response. For corporate and minor requests, the submitted name remains unchanged.

Required string length: 2 - 70
nimcNo
string | null
Maximum string length: 15
rcNumber
string | null

Required for corporate accounts.

Maximum string length: 30
taxIdentificationNumber
string | null

Required for corporate accounts.

Maximum string length: 30
bvnHolderName
string | null

Required for minor accounts and cannot contain digits. Non-exempt minor requests require BVN/account validation, but this submitted value remains unchanged.

Maximum string length: 70
birthDate
string<date> | null

Required for individual and minor accounts. Individual accounts must be 18 years or older, minor accounts must be younger than 18, and birth date checks use the Africa/Lagos request date.

rcDate
string<date> | null

Required for corporate accounts.

gender
enum<string> | null

Required for individual and minor accounts.

Available options:
M,
F,
null
motherMaidenName
string | null

Required for individual and minor accounts and cannot contain digits.

Maximum string length: 40
phone2
string | null

E.164 format or Nigerian local format.

Maximum string length: 16
Pattern: ^(?:\+[1-9][0-9]{1,14}|0[0-9]{10})$
address2
string | null
Maximum string length: 40
address3
string | null
Maximum string length: 40
localGovt
string | null
Maximum string length: 25
country
string
default:NG
Maximum string length: 3
postal
string | null
Maximum string length: 10
nextOfKinName
string | null

Required for individual and minor accounts and cannot contain digits.

Maximum string length: 40
nextOfKinPhone
string | null

Required for individual and minor accounts. Must be E.164 format or Nigerian local format.

Maximum string length: 16
Pattern: ^(?:\+[1-9][0-9]{1,14}|0[0-9]{10})$
refNo
string | null
Maximum string length: 15
profileDcs
boolean | null
default:true

Optional. null is accepted and treated the same as omitting the field.

Response

Existing active investor returned and charged successfully without creating a new account

status
boolean
Example:

true

investorId
string<uuid>
chn
string | null
cscsNo
string | null
isNew
boolean