Keepable docs
Recipient surface

Account profile

GET /recipient/account returns the recipient's profile, the masked NIN, legal name, email, verification flags, and the assurance level they were onboarded at.

GET /recipient/account returns the signed-in recipient's profile: who they are, the contact details on file, and the identity-assurance tier they hold. The inbox apps use it to render the account screen and to decide what the recipient can do.

The call

curl https://api.keepable.co/recipient/account \
  -H "Authorization: Bearer $RECIPIENT_TOKEN" \
  -H "Keepable-Version: 2026-05-24"
const res = await fetch("https://api.keepable.co/recipient/account", {
  headers: {
    Authorization: `Bearer ${token}`,
    "Keepable-Version": "2026-05-24",
  },
});

const profile = await res.json();
200 OK
{
  "nin": "*******8901",
  "legal_name": "Ada Eze",
  "email": "ada@example.ng",
  "phone": "+2348012345678",
  "email_verified": true,
  "phone_verified": false,
  "assurance_level": "id_verified"
}

The fields

FieldAlways presentMeaning
ninyesThe recipient's national identification number, already masked by the backend (for example *******8901). The raw NIN is never stored or returned.
legal_namenoThe recipient's legal name from the consent-scoped profile store. Omitted when no name is on file.
emailnoThe email currently on the profile. May be present but unverified (see email_verified).
phonenoThe phone number on file, if any.
email_verifiedyesTrue only when the profile has a recorded email-verification timestamp. It is derived, never assumed: a brand-new profile reads false until the recipient completes the verification flow.
phone_verifiedyesWhether the phone number has been verified.
assurance_levelnoThe identity-assurance tier the recipient was onboarded at, one of email or id_verified. See Assurance levels. Omitted when no profile is on file.

email_verified and the presence of email are independent. A recipient can have an email on file that they have not yet verified. Treat email_verified as the source of truth for whether the address may receive notifications or drive account recovery.

A profile with no row yet

A recipient who has just completed identity onboarding may not have a profile row yet. The surface degrades gracefully rather than failing: it returns the masked nin it can read from the session, with email_verified set to false and legal_name / assurance_level omitted. The apps render an account screen from that minimal view and prompt the recipient to add and verify an email.