User Registration API

Quick Integration Guide

Version 1.0 | Last Updated: November 2024
POST /bank/api_general/register_submit_external_api.php

Option 1: Register with BVN or NIN

cURL Request
curl -X POST https://techvibs.com/bank/api_general/register_submit_external_api.php \
  -H "Content-Type: application/json" \
  -d '{
    "fintech-token": "your_token_here",
    "first_name": "John",
    "last_name": "Doe",
    "other_names": "Michael",
    "account_name": "John  Michael ",
    "phone": "08012345678",
    "dob": "1990-05-15",
    "address": "123 Main Street, Lagos",
    "gender": "0",
    "username": "johndoe",
    "email": "johndoe@gmail.com",
    "password": "SecurePass123",
    "pin": "1234",
    "nationalIdentityNo": "12345678901",
    "ninUserId": "ABC123-4567",
    "bvn": "12345678901",
    "placeOfBirth": "",
    "nextOfKinPhoneNo": "",
    "nextOfKinName": "",
    "referralPhoneNo": "",
    "referralName": "",
    "otherAccountInformationSource": "",
    "customerImage": "",
    "customerSignature": "",
    "transactionTrackingRef": "TXN-'$(date +%s)'000-'$RANDOM'",
    "device_fingerprint": "curl_test_'$(date +%s)'"
  }'


  }'
Important Notes:
  • Gender values: Use "0" for Male, "1" for Female
  • NIN Registration: When using NIN instead of BVN, both nationalIdentityNo and ninUserId are required.

Success Response 200 OK

JSON Response
{
  "status": "success",
  "message": "WAAS API Response",
  "waas_http_code": 200,
  "waas_response": {
    "status": "SUCCESS",
    "message": "Account created successfully",
    "data": {
      "accountNumber": "1234567890",
      "customerID": "CUST123456",
      "responseCode": "00"
    }
  },
  "debug": {
    "payload_sent": {
      "transactionTrackingRef": "TXN-1763314220-9553",
      "lastName": "Doe",
      "otherNames": "Michael",
      "phoneNo": "08012345678",
      "gender": 0,
      "dateOfBirth": "15/05/1990",
      "address": "123 Main Street, Lagos",
      "bvn": "12345678901",
      "email": "john.doe@example.com",
      "accountName": "John Doe"
    },
    "endpoint": "https://middleware.9psb.com.ng/waas/api/v1/open_wallet",
    "fintech": "GALAD FIN",
    "token_type": "live"
  }
}

Error Responses

Validation Error 400 Bad Request

JSON Response
{
  "status": "error",
  "message": "Phone Number must be 11 digits."
}
Common Error Messages:
  • Validation Errors (400):
    • Missing or empty required field: [field_name]
    • Invalid email format
    • Phone Number must be 11 digits
    • Password must be at least 8 characters long, contain at least one letter and one number
    • PIN must be exactly 4 digits
    • Either National Identity Number or BVN must be provided
    • Gender must be '0' for Male or '1' for Female
    • Address must not exceed 100 characters
  • Authentication Errors (400):
    • Fintech token is required for registration
    • Invalid fintech token
    • Failed to verify fintech token: HTTP [code]
  • WAAS API Errors (200 with FAILED status):
    • Bvn Validation Not successful (BVN details retrieval failure) - Code: 96
    • NIN Validation failed - Code: 96
    • Duplicate account - Code: varies

Required Fields

fintech-token string (required) - Your API authentication token
first_name string (required) - User's first name
last_name string (required) - User's last name
other_names string (required) - User's middle/other names
phone string (required) - 11-digit phone number (e.g., 08012345678)
email string (required) - Valid email address
dob string (required) - Date of birth (YYYY-MM-DD format)
address string (required) - Residential address (max 100 characters)
gender string (required) - "0" for Male, "1" for Female
username string (required) - Unique username
password string (required) - Min 8 chars, must contain at least one letter and one number
pin string (required) - Exactly 4 digits
bvn OR nationalIdentityNo string (required) - 11-digit BVN or NIN (one is required)
ninUserId string (required if using NIN) - Format: ABC123-4567 (6 alphanumeric, hyphen, 4 digits)

Optional Fields

account_name string (optional) - Custom account name (defaults to first_name + last_name)
placeOfBirth string (optional) - User's place of birth
nextOfKinPhoneNo string (optional) - 11-digit phone number
nextOfKinName string (optional) - Next of kin's full name
referralPhoneNo string (optional) - 11-digit phone number
referralName string (optional) - Referrer's full name
otherAccountInformationSource string (optional) - Additional account information
customerImage string (optional) - Base64 encoded image or URL
customerSignature string (optional) - Base64 encoded signature or URL
transactionTrackingRef string (optional) - Custom tracking reference (auto-generated if not provided)
device_fingerprint string (optional) - Device identification fingerprint

File Upload Fields (Multipart/Form-Data)

Note: When uploading files, use multipart/form-data instead of JSON. Max file size: 5MB. Allowed formats: JPG, JPEG, PNG.
id_front file (optional) - Front side of ID card
id_back file (optional) - Back side of ID card
proof_address file (optional) - Proof of address document
profile_picture file (optional) - User's profile picture
cURL with File Upload
curl -X POST https://techvibs.com/bank/api_general/register_submit_external_api.php \
  -F "fintech-token=your_token_here" \
  -F "first_name=John" \
  -F "last_name=Doe" \
  -F "other_names=Michael" \
  -F "account_name=John Michael" \
  -F "phone=08012345678" \
  -F "dob=1990-05-15" \
  -F "address=123 Main Street, Lagos" \
  -F "gender=0" \
  -F "username=johndoe" \
  -F "email=johndoe@gmail.com" \
  -F "password=SecurePass123" \
  -F "pin=1234" \
  -F "nationalIdentityNo=12345678901" \
  -F "ninUserId=ABC123-4567" \
  -F "bvn=12345678901" \
  -F "placeOfBirth=" \
  -F "nextOfKinPhoneNo=" \
  -F "nextOfKinName=" \
  -F "referralPhoneNo=" \
  -F "referralName=" \
  -F "otherAccountInformationSource=" \
  -F "customerImage=" \
  -F "customerSignature=" \
  -F "transactionTrackingRef=TXN-$(date +%s)000-$RANDOM" \
  -F "device_fingerprint=curl_test_$(date +%s)" \
  -F "id_front=@/path/to/id_front.jpg" \
  -F "id_back=@/path/to/id_back.jpg" \
  -F "profile_picture=@/path/to/photo.jpg"

HTTP Response Codes

200 OK Request processed successfully (check waas_response.status for actual result)
400 Bad Request Validation error or invalid input data
405 Method Not Allowed Only POST requests are accepted
500 Internal Server Error Server-side error occurred
Important: A 200 OK response doesn't always mean success. Always check the waas_response.status field. It can be "SUCCESS" or "FAILED".

Testing Guide

Step 1: Verify Token

Token Verification
curl -X POST https://techvibs.com/bank/api_general/verify_fintech_token.php \
  -H "Content-Type: application/json" \
  -d '{"token": "your_actual_token_here"}'

Step 2: Test Registration

Tips:
  • Use valid test BVN/NIN data for testing
  • Ensure phone numbers are unique for each test
  • Check the debug section in responses to see what was sent to WAAS
  • Monitor application logs for detailed error information

Integration Checklist

  • โœ… Obtain and verify your fintech token
  • โœ… Implement proper error handling for all response types
  • โœ… Validate user input on client-side before API call
  • โœ… Handle both SUCCESS and FAILED statuses in waas_response
  • โœ… Store the returned accountNumber and customerID
  • โœ… Implement retry logic for network failures
  • โœ… Log all API interactions for debugging
  • โœ… Test with both BVN and NIN registration flows
  • โœ… Test file upload functionality if needed
  • โœ… Implement proper security measures (HTTPS, input sanitization)

Support & Resources

API Endpoint https://techvibs.com/bank/api_general/register_submit_external_api.php
Token Verification https://techvibs.com/bank/api_general/verify_fintech_token.php
Need Help?
Contact your technical support team with:
  • The full error response
  • Your fintech token (first 10 characters only)
  • Timestamp of the request
  • The debug section from the response