Before you start
Please download the suggested API integration process flow document and use it as a reference when developing.
Kindly adhere to the Netcash brand guidelines when developing.
Programmers Guide
Refer to our Programmers guide for more detail on how to apply the required methodology in this document.
Ensure that the settings for developers are adhered to before you proceed with your implementation.
Web Service Methods
The list of Netcash web service methods can be found here.
Quick Start Guides
Quick Start Guides will help you understand this service and get you started.
Overview
Bank Account Validation is a web service that uses an algorithm to validate the bank account number, branch code, and account type combination. Any software that allows for the capture of bank account details this web service as it ensures valid data is sent to Netcash will enhance the success of transactions processed. This service does not verify that the account is active or belongs to the individual or company (Bank Account Verification).
We recommend that Universal Branch Codes are used for the validation to be optimized.
A CDV validation is performed using a combination of the bank account number, account type, and branch code.
It is an algorithm supplied to Netcash -and continuously updated by the banking system.
This does not guarantee the validity or existence of the account number at any bank or branch, the account holder -or if the account is active.
Technical Information
NIWS_Validation is an online, synchronous web service that allows an external system to request validation and receive an immediate response.
NB! This service permits a single request per web service call. For bulk file requests click here
From your application call:
Method: GetBankListWithDefaultBranchCode
Service key: Account Service Key
Web service: https://ws.netcash.co.za/NIWS/niws_validation.svc
Method: ValidateBankAccount
Service key: Account Service Key
Participating Banks and Universal Branch Codes
Most banks make use of Universal Branch Codes (UBC) also known as Central Branch Codes (CBC)
It is always advisable to use the UBC when storing data unless a bank does not offer UBC
Bank Name | Central Branch Code (CBC) |
Absa Bank | 632005 |
Capitec Bank | 470010 |
First National Bank (South Africa) | 250655 |
Investec Bank | 580105 |
Nedbank (South Africa) | 198765 |
Nedbank Corporate Saver Account | 720026 |
Postbank | 460005 |
Standard Bank (South Africa) | 051001 |
Access Bank | 410105 |
African Bank | 430000 |
Albaraka Bank | 800000 |
Bank of Namibia | 980172 |
Bidvest Bank | 462005 |
Capitec Business (Mercantile Bank) | 450105 |
Central Bank of Lesotho | 586611 |
Citi Bank | 350005 |
Discovery Bank | 679000 |
Finbond Mutual Bank | 589000 |
First National Bank Lesotho | 280061 |
First National Bank Namibia | 282672 |
First National Bank Swaziland | 287364 |
Grinrod Bank | 584000 |
HSBC Bank | 587000 |
JP Morgan Chase Bank | 432000 |
Meeg Bank | 470010 |
MTN Banking | 490991 |
Sasfin | 683000 |
Standard Bank Namibia | 087373 |
State Bank of India | 801000 |
Ubank | 431010 |
Unibank | 790005 |
VBS Mutual Bank | 588000 |
Olympus Mobile Bank | 585001 |
Tyme Bank | 678910 |
Recommended User Experience
- Call the web service with method GetBankListWithDefaultBranchCode
or - Manually create a table in the application database with the bank branches and codes as indicated above.
The suggested method is to create a user experience whereby the user will
- Select a bank in a “Drop down” menu and prefill branch code text box and
- Manually enter a branch code that is not a CBC.
- If the bank required is not in the dropdown – user to select “other bank” and type the six (6) digit numeric branch code in the text box. Left-pad the input with “0” where data entered is less than 6 chars.
- For all items above default account type in the database to 1 (cheque/current) except
- for Nedbank
- If a Nedbank account number starts with ‘2’ make type 2 (savings) else
- If Nedbank account number starts with ‘1’ leave type 1 and
- If a Nedbank account number starts with ‘9’/or is a Corporate Saver Account; make the account type 2 (savings) and only use branch code 720026.
- for Postbank / Capitec / TymeBank
- Always use account type “2” (savings) for all Postbank, Capitec and TymeBank transactions
- for Nedbank
All non-listed (above) banks – user to select the actual account type (1 = Current/Cheque, 2 = Savings)
NIWS_Validation is an online, synchronous web service that allows an external system to request validation and receive an immediate response. This service permits only a single request per web service call.
The Service
Object | Name | Description |
method | GetBankListWithDefaultBranchCode |
Parameter:
|
method | ValidateBankAccount |
Parameters:
|
Examples
Validating Bank Account Information
public ValidateBankAccount(string ServiceKey, string AccountNumber, string BranchCode, string AccountType) { // initialise client NIWS_Validation.NIWS_ValidationClient client = new NIWS_Validation.NIWS_ValidationClient(); // call the ValidateBankAccount method equal to a string variable string Request = client.ValidateBankAccount(ServiceKey, AccountNumber, BranchCode, AccountType); // close client after response is received client.Close(); // convert response received for request int response = Convert.ToInt32(Request); // if 0 save to system or do something else switch (response) { case 0: // do something break; case 1: // do something break; case 2: // do something break; case 3: // do something break; case 4: // do something break; case 100: // do something break; default: Web service error contact support @netcash.co.za "; break; } }
Getting Bank with Branch Code
private void GetBankListWithDefaultBranchCode(string ServiceKey) { // initialise client NIWS_Validation.NIWS_ValidationClient client = new NIWS_Validation.NIWS_ValidationClient(); // call the GetBankListWithDefaultBranchCode method equal to a string variable string BankListResult = client.GetBankListWithDefaultBranchCode(ServiceKey); // do something with xml file // for example File.WriteAllText("BankList.xml", BankListResult); XmlDocument XmlDoc = new XmlDocument(); XmlDoc.Load("BankList.xml"); XmlElement XmlEl = XmlDoc.DocumentElement; XmlNodeList XmlNode = XmlEl.SelectNodes("/BankListResponse/BankList/Bank"); foreach (XmlNode node in XmlNode) { // loop through file } }
Output
You will receive the following numeric code which you need to replace with the description in your application.
Numeric Response | Description |
0 | Bank account details valid |
1 | Invalid branch code |
2 | Account number failed check digit validation |
3 | Invalid account type |
4 | Input data incorrect |
100 | Authentication failed |
200 | Web service error contact support@netcash.co.za |
Netcash brand guidelines
Please refer to the Netcash brand guidelines here when using any logos, images, icons, labels, descriptions, and references to Netcash in your software.
Testing
See Testing section for more details. If you require any integration assistance contact our technical support team