Customer Verification

To prevent fraud on our platform, all merchants must verify that a customer owns the bank account that they're trying to pay with. We do this by sending a verification code to the phone number linked to the customer's BVN or an encrypted phone number that you pass to us.

Step 1: Starting the verification flow

Request

mutation {
startBankAccountVerification(
username: "1234567890"
slug: gtbank
)
}
Field
Scalar
Required
Description
username
String
Yes
The user's username which is used to login on to the user's bank account internet banking service.
slug
BankType
Yes
The slug ID for the bank.
verificationPhoneNumber
String
No
The public-key encrypted phone number that the user's verificiation OTP will be sent to.

Response

{
"data": {
"startBankAccountVerification": "+2349034123456"
}
}
If this step was successful, you will receive the phone number that the user's verification OTP has been sent to.

Step 2: Finishing the verification flow

Request

mutation {
finaliseBankAccountVerification(
otp: "123456"
username: "1234567890"
slug: gtbank
)
}
Field
Scalar
Required
Description
otp
String
Yes
The OTP that was sent to the phone number returned in the previous step.
username
String
Yes
The user's username which is used to login on to the user's bank account internet banking service.
slug
BankType
Yes
The slug ID for the bank.

Response

{
"data": {
"finaliseBankAccountVerification": true
}
}
If this step was successful, you will receive true, and the customer will be verified and permitted to make payments from their bank account. If this step failed, you will receive false, and an error.