Skip to main content

Name Enquiry

Resolves a beneficiary so you can show your customer who they are about to pay. Read-only, no side effects. Requires inbound:read.

Supply exactly one of account_number, msisdn or card_serial.

Request
cURL
curl -X POST https://api.smartpay.sl/api/v1/inbound/name-enquiry \
-H "Content-Type: application/json" \
-H "X-API-Key-ID: $SMARTPAY_API_KEY_ID" \
-H "X-Timestamp: $TS" \
-H "X-Nonce: $NONCE" \
-H "X-Signature: $SIG" \
-d '{"msisdn": "+23276123456", "currency": "SLE"}'
Response
200 Resolved
{
"success": true,
"code": "OK",
"message": "Beneficiary resolved",
"data": {
"account_number": "0012345678",
"account_name": "MOHAMED K.",
"beneficiary_ref": "BEN_U1VCXzEyMy4xNzcx.9f2a4c7e1b3d5a80",
"status": "active",
"kyc_level": 2,
"currency": "SLE",
"can_credit": true,
"max_creditable": 250000000
}
}
404 Not found
{
"success": false,
"code": "BENEFICIARY_NOT_FOUND",
"message": "No subscriber with that phone number"
}

Reading the response

account_namestring

Masked — first name plus last initial. Full legal names are never returned to a partner, because an unmasked lookup endpoint is an identity-harvesting oracle. There is enough here for your customer to recognise the recipient.

max_creditableinteger

How much this wallet can still receive, given the customer's KYC ceiling and per-transaction limit. Check your amount against it and you avoid most 422 refusals — without us disclosing the balance.

can_creditboolean

Whether a credit would be accepted right now. If false, do not debit your customer.

beneficiary_refstring

A short-lived token, valid 15 minutes. Pass it to Credit and the credit is refused unless it names the same beneficiary — so the account cannot change between the enquiry your customer approved and the transfer you post.

Tip

Show account_name to your customer and make them confirm it before you debit. It is the single most effective control against a mistyped number, and it is why this endpoint exists.