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
    )
}
FieldScalarRequiredDescription

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
    )
}
FieldScalarRequiredDescription

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.

Last updated