Skip to navigation

Generate Customer Account

View as Markdown

Completes BVN verification with the OTP the customer received, and creates a dedicated virtual bank account for them. A customer can only have one dedicated account — calling this twice for the same customer returns 400 An account generated already.

settlementId is optional: if provided, inbound credits to this customer’s dedicated account are swept into that settlement (wallet) account instead of your default one.

Body (JSON)

FieldTypeRequiredNotes
customerIdstringyesCustomer ID (or the customer’s email)
otpstringyesOTP the customer received after Create Customer / Resend Customer OTP
settlementIdintegernoOne of your settlement account IDs (from List Settlement Accounts). Must be a JSON number, not a string.

Behaviour notes

  • The success response contains no account details. Call Fetch Single Customer afterwards to get bankAccount.accountNumber.
  • Every failure returns HTTP 400 with { status: "error", message }, including “Customer not found.”. Provider failures come back as Failed to create account. <provider message>.
  • If the provider rejects the OTP, the customer is still marked BVN-verified internally, but no account is created. You can retry with a fresh OTP.

Authentication

AuthorizationBearer

Access token from Generate Access Token (valid 15 minutes).

Request

This endpoint expects an object.
customerIdstringOptional
otpstringOptional
settlementIdintegerOptional

Response

OK
statusstringOptional
messagestringOptional

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error