Name enquiry
Name enquiry confirms who holds an account before you pay it. For an account at the bank it is a local lookup; for an account anywhere else it is a NIBSS name enquiry sent under the bank’s institution code. Both come back in the same shape, and the fields on a NIBSS answer are meant to be echoed on the interbank transfer that follows.
Request
Section titled “Request”| Field | Type | Required | Description |
|---|---|---|---|
accountNumber |
string | Yes | The 10-digit NUBAN to resolve. |
bankCode |
string | Yes | 311 for an account at the bank; otherwise the destination bank’s code from the institutions list. |
curl -X POST https://api.bankcore.ng/api/legacy/provider/wallets/transactions/name_enquiry \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "accountNumber": "0123456789", "bankCode": "058" }'{ "accountNumber": "6020012345", "bankCode": "311" }Response
Section titled “Response”{ "code": "0000", "desc": "ADEBAYO OGUNDIMU", "bvn": "22222222222", "kycTier": "2", "accountDesignation": "1", "idType": "1", "nameEnquirySessionId": "100003260401143000000001"}| Field | Description |
|---|---|
desc |
The account name. Pass it as toAccountName on the transfer. |
bvn |
The holder’s BVN as the bank or NIBSS reports it. Do not store it. |
kycTier, accountDesignation, idType |
NIBSS beneficiary attributes. Echo them on the transfer as beneficiaryKycTier, beneficiaryAccountDesignation and beneficiaryIdType. |
nameEnquirySessionId |
NIBSS’s session id for this enquiry. Present only for an enquiry at another bank. Echo it as nameEnquirySessionId on the transfer. |
Local versus NIBSS
Section titled “Local versus NIBSS”bankCode = 311 |
Any other code | |
|---|---|---|
| Where it looks | The bank’s own accounts, in your tenant. | NIBSS, under the bank’s institution code. |
| Ownership | Not restricted to accounts you own; any account at the bank resolves. | n/a |
nameEnquirySessionId |
Absent. | Present. |
| Time | Milliseconds. | Up to about 20 seconds; NIBSS can be slow. Set your HTTP timeout accordingly. |
Reusing the enquiry on the transfer
Section titled “Reusing the enquiry on the transfer”Send the values back on POST /wallets/transactions/banktransfer:
{ "fromAccountNumber": "6020012345", "toAccountNumber": "0123456789", "toAccountName": "ADEBAYO OGUNDIMU", "destinationBankCode": "058", "amount": 25000.00, "beneficiaryBvn": "22222222222", "beneficiaryKycTier": "2", "beneficiaryAccountDesignation": "1", "beneficiaryIdType": "1", "nameEnquirySessionId": "100003260401143000000001", "transactionRef": "PAY-20260401-001"}The transfer carries these to NIBSS as the creditor details. Values you supply always win over anything the platform cached from the enquiry; omit them and the platform fills what it can.
Errors
Section titled “Errors”| Code | When |
|---|---|
0012 |
Local: no such account. NIBSS: the enquiry was declined, with NIBSS’s description in desc (invalid account, closed account, and so on). |
0096 |
The NIBSS call failed or timed out. Retry after a pause; a name enquiry has no side effects. |
Agent twin
Section titled “Agent twin”Identical request and response. The X-Agent-Account header is not read by this call.
In the portal
Section titled “In the portal”Name enquiries are not recorded as transactions and do not appear in the portal. The name you confirm is shown on the Interbank transfers page as the beneficiary of the transfer you then send.