Skip to main content

Account Verification API

Endpoint: {server}/api/avs/v1/ — see Getting started for the server URL, authentication and JSON Web Tokens.

API Post Functions​

verifyAccount​

Endpoint: {server}/api/avs/v1/verifyAccount

verifyAccount: POST FIELDS

NameTypeRequiredDescription
tokenTextYThe signed JWT
testBooleanOSet to true if testing. This will bypass billing and will only validate test data
customerReferenceTextYYour unique customer reference identifier
accountTypeTextYThe account type. Either current or savings
accountNumberTextYThe account number
branchCodeTextYThe account branch code
identificationTypeTextYIdentification type. Possible values are: SID - South African ID SPP - Passport number SBR - Business registration number TRN - Trust number
identificationNumberTextYThe account holder's identity, passport, company registration or trust number
nameTextYThe accountholder last name or company/trust name
initialsTextCYThe account holder's initials. Needed for ID Types of SID or SPP
taxReferenceTextOThe account holder's tax reference. Nedbank Only.
emailAddressTextOThe account holders email address
cellNumberTextOThe account holders cell phone number

verifyAccount: RESPONSE FIELDS

NameTypeRequiredDescription
jtiTextYThe unique JWT ID
StatusTextYSuccess or Failed
messageTextOThe failure message
customerReferenceTextCYYour unique customer reference identifier
accountExistsTextCYF - Failed pre-validation N - No U - Unprocessed Y - Yes
identificationNumberMatchedTextCYN - No U - Unprocessed Y - Yes
initialsMatchedTextCYN - No U - Unprocessed Y - Yes
nameMatchedTextCYN - No U - Unprocessed Y - Yes
accountActiveTextCYN - No U - Unprocessed Y - Yes
accountDormantTextCYN - No U - Unprocessed Y - Yes
accountActive3MonthsTextCYN - No U - Unprocessed Y - Yes
canDebitAccountTextCYN - No U - Unprocessed Y - Yes
canCreditAccountTextCYN - No U - Unprocessed Y - Yes
taxReferenceMatchTextCYN - No U - Unprocessed Y - Yes
accountTypeMatchTextCYN - No U - Unprocessed Y - Yes
emailMatchedTextCYN - No U - Unprocessed Y - Yes
cellNumberMatchedTextCYN - No U - Unprocessed Y - Yes

Example verifyAccount Post:​

{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJ7UFJPVklERUQgQVBJIEtFWX0iLCJhY2Nlc3NUb2tlbiI6IntQUk9WSURFRCBBQ0NFU1MgVE9LRU59IiwianRpIjoie1VOSVFVRSBWQUxVRX0iLCJpYXQiOjE1ODk5OTA5MDIsImV4cCI6MTU4OTk5MTUwMn0._Lk6FPqYITrJIUztulif8MdvuOMAVBZXZJEiBpdSwkw ",
"customerReference": "Ref1",
"accountType": "current",
"accountNumber": "700000000",
"branchCode": "051001",
"identificationType": "SID",
"identificationNumber": "200802751907",
"name": "SOAP",
"initials": "J",
"emailAddress": "joesoap@somemail.com ",
"cellNumber": "0823456789"
}

Example verifyAccount JSON response:​

Example pending — this example could not be reconstructed reliably from the source document and is being prepared.

verifyAccounts​

Endpoint: {server}/api/avs/v1/verifyAccounts

verifyAccounts: POST FIELDS

NameTypeRequiredDescription
tokenTextYThe signed JWT
testBooleanOSet to true if testing. This will bypass billing and will only validate test data
accountArrayY1-n of account data

verifyAccounts: ACCOUNT DATA FIELDS

NameTypeRequiredDescription
customerReferenceTextYYour unique customer reference identifier
accountTypeTextYThe account type. Either current or savings
accountNumberTextYThe account number
branchCodeTextYThe account branch code
identificationTypeTextYIdentification type. Possible values are: SID – South African ID SPP – Passport number SBR – Business registration number TRN – Trust number
identificationNumberTextYThe account holder's identity, passport, company registration or trust number
nameTextYThe accountholder last name or company/trust name
initialsTextOThe account holder's initials
taxReferenceTextOThe account holder's tax reference. Nedbank Only.
emailAddressTextOThe account holders email address
cellNumberTextOThe account holders cell phone number

verifyAccounts: RESPONSE FIELDS

NameTypeRequiredDescription
JtiTextYThe unique JWT ID
statusTextYProcessed
accountsArrayY1-n of status fields

verifyAccounts: STATUS FIELDS

NameTypeRequiredDescription
customerReferenceTextYYour unique customer reference identifier
acceptedBooleanYTrue or False
reasonTextOFailure reason

NB: A post-back URL must be set in the console for the verification results to be sent to. This is set in Setup – General Settings – API Settings. You may have more than one Access Token so add to the correct one.

The receiving code for the post-back MUST return "Received" in plain text as part of the receiving process. If this is not returned the system will repost for up to 60 seconds before abandoning the post-back.

verifyAccounts: POST-BACK RESULTS FIELDS

NameTypeRequiredDescription
jtiTextYThe unique JWT ID
statusTextYSuccess or Failed
messageTextOThe failure message
customerReferenceTextCYYour unique customer reference identifier
accountExistsTextCYF - Failed pre-validation N - No U - Unprocessed Y - Yes
identificationNumberMatchedTextCYN - No U - Unprocessed Y - Yes
initialsMatchedTextCYN - No U - Unprocessed Y - Yes
nameMatchedTextCYN - No U - Unprocessed Y - Yes
accountActiveTextCYN - No U - Unprocessed Y - Yes
accountDormantTextCYN - No U - Unprocessed Y - Yes
accountActive3MonthsTextCYN - No U - Unprocessed Y - Yes
canDebitAccountTextCYN - No U - Unprocessed Y - Yes
canCreditAccountTextCYN - No U - Unprocessed Y - Yes
taxReferenceMatchTextCYN - No U - Unprocessed Y - Yes
accountTypeMatchTextCYN - No U - Unprocessed Y - Yes
emailMatchedTextCYN - No U - Unprocessed Y - Yes
cellNumberMatchedTextCYN - No U - Unprocessed Y - Yes
completeMatchTextCYN - No U - Unprocessed Y - Yes

Example verifyAccounts Post:​

:::warning Source conflict — confirm before use This example uses email and cellphone, while the ACCOUNT DATA FIELDS table above specifies emailAddress and cellNumber. The source document is inconsistent here and the correct field names have not been confirmed with the platform team. :::

{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJ7UFJPVklERUQgQVBJIEtFWX0iLCJhY2Nlc3NUb2tlbiI6IntQUk9WSURFRCBBQ0NFU1MgVE9LRU59IiwianRpIjoie1VOSVFVRSBWQUxVRX0iLCJpYXQiOjE1ODk5OTA5MDIsImV4cCI6MTU4OTk5MTUwMn0._Lk6FPqYITrJIUztulif8MdvuOMAVBZXZJEiBpdSwkw ",
"account": [
{
"customerReference": "Ref1",
"accountType": "current",
"accountNumber": "700000000",
"branchCode": "051001",
"identificationType": "SID",
"identificationNumber": "200802751907",
"name": "SOAP",
"initials": "J",
"email": "joesoap@somemail.com ",
"cellphone": "0823456789"
},
{
"customerReference": "Ref2",
"accountType": "current",
"accountNumber": "700000000",
"branchCode": "051001",
"identificationType": "SID",
"identificationNumber": "200703363307",
"name": "DoleIndustries PTY Ltd.",
"email": "bdole@somemail.com ",
"cellphone": "0723456789"
}
]
}

Example verifyAccounts JSON Response:​

{
"jti": "{UNIQUE VALUE}",
"status": "Processed",
"accounts": [
{
"customerReference":"Ref1", "accepted":true
},
{
"customerReference":"Ref2", "accepted":false,
"reason": " Check Digit Verification Failed"
}
]
}

Example verifyAccounts JSON post back:​

Example pending — this example could not be reconstructed reliably from the source document and is being prepared.

checkDigitVerification​

Endpoint: {server}/api/avs/v1/checkDigitVerification

This is a basic account data verification to verify that the account type, account number and branch code are structurally correct.

checkDigitVerification: POST FIELDS

NameTypeRequiredDescription
tokenTextYThe signed JWT
accountTypeTextYThe account type. Either current or savings
accountNumberTextYThe account number
branchCodeTextYThe account branch code

checkDigitVerification: RESPONSE FIELDS

NameTypeRequiredDescription
jtiTextYThe unique JWT ID
statusTextYSuccess or Failed
messageTextCOThe failure message if failed
bankTextCOThe bank name if successful

Example checkDigitVerification Post:​

Example pending — this example could not be reconstructed reliably from the source document and is being prepared.

Example checkDigitVerification JSON response:​

{
"jti": "{UNIQUE VALUE}",
"status": "Failed",
"message":" Check Digit Verification Failed"
}

Errors​

If there is any submission error relating to authentication or missing fields the response fields will be:

  1. status: The status will be Error
  2. error: The error message

Example Error Message:

{
"status": "Error",
"error": "Token secret verify fail"
}

Test Data​

For testing AVS, the following data may be used.

Defaults:

Account Type: current

Branch Code: 145710

Account NumberID TypeID NumberInitialsLast NameEmail AddressCell Number
1002301378SPPHG7072J76211MLATKINSONMEG@ROCKANDHERR.COM0997309627
1001014138SBR200802751907BROLL PROPERTY GROUP PTY LTD0993210934
1001036875SID8009130202081DEDOOLEYDANIELLEDOOLEY@GMAIL.COM0998155218

Participating Banks​

See Participating banks for the Real-time AVS participating bank list.