Shika Creators

Lookup

Resolve account holder names before sending money.

Lookup API

The Lookup API lets you resolve the account holder name behind a mobile money number or bank account before initiating a payout, disbursement, or transfer. Use it to show recipients in your checkout or back-office flow before the user confirms the transfer.

Lookups are read-only — no money moves and no OTP is issued.

Verify a mobile money wallet

POST /v1/lookup/wallet

Returns the account holder name registered against a Ghana mobile money number.

Request

ParameterTypeRequiredDescription
phone_numberstringYes10-digit Ghana phone number (e.g. 0241234567)
providerstringNomtn, telecel, or airteltigo. Auto-detected from the phone prefix if omitted.
curl -X POST https://api.shikacreators.com/v1/lookup/wallet \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "phone_number": "0241234567"
  }'
const res = await fetch('https://api.shikacreators.com/v1/lookup/wallet', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.SHIKA_SECRET_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    phone_number: '0241234567',
  }),
});
const wallet = await res.json();
import requests

response = requests.post(
    'https://api.shikacreators.com/v1/lookup/wallet',
    headers={'Authorization': f'Bearer {SECRET_KEY}'},
    json={'phone_number': '0241234567'},
)
wallet = response.json()

Response

{
  "object": "wallet_verification",
  "verified": true,
  "account_name": "JOHN DOE",
  "phone_number": "0241234567",
  "provider": "mtn"
}

Verify a bank account

POST /v1/lookup/bank-account

Returns the account holder name registered against a Ghana bank account. Use GET /v1/lookup/banks to find the right bank_code.

Request

ParameterTypeRequiredDescription
account_numberstringYesBank account number
bank_codestringYesBank code from /v1/lookup/banks
curl -X POST https://api.shikacreators.com/v1/lookup/bank-account \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "account_number": "1234567890",
    "bank_code": "030100"
  }'
const res = await fetch('https://api.shikacreators.com/v1/lookup/bank-account', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.SHIKA_SECRET_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    account_number: '1234567890',
    bank_code: '030100',
  }),
});
const account = await res.json();

Response

{
  "object": "bank_account_verification",
  "verified": true,
  "account_name": "JOHN DOE",
  "account_number": "1234567890",
  "bank_code": "030100"
}

List supported banks

GET /v1/lookup/banks

Returns the list of banks supported for bank transfers and bank-account verification.

The bank_code values are specific to your account. Accounts are routed to one of several banking partners, and each partner identifies banks with its own codes. Read this list rather than hardcoding codes, and re-read it if bank transfers start being rejected. Caching it for a day is fine.

curl https://api.shikacreators.com/v1/lookup/banks \
  -H "Authorization: Bearer sk_live_..."
const res = await fetch('https://api.shikacreators.com/v1/lookup/banks', {
  headers: { 'Authorization': `Bearer ${process.env.SHIKA_SECRET_KEY}` },
});
const { data: banks } = await res.json();

Response

{
  "object": "list",
  "data": [
    {
      "bank_name": "Access Bank",
      "short_name": "ACCESS",
      "bank_code": "030100",
      "sort_code": "030100"
    }
  ],
  "total": 1
}

Errors

CodeDescription
invalid_phone_numberPhone number is not a valid Ghana mobile number, or doesn't match the provider you supplied.
wallet_verification_failedThe provider could not resolve the wallet (number not registered, network unreachable, etc.).
bank_verification_failedThe bank could not resolve the account number (wrong bank code, account doesn't exist, etc.).
validation_errorRequest body failed schema validation.