Risk & compliance
Consent you can prove
Capture category-scoped, revocable consent through NIBSS Consent Hub, a hosted page, an email link or USSD, timestamped in the audit log.
What it does
Consent, in detail.
Category-scoped requests
Three channels
Gated until granted
Revocable, with a trail
How it works
From request to decision.
- 1
POST /v1/consents
Choose the identifier, categories, channel and purpose.
- 2
The subject approves
On the hosted page with an OTP, by email or by USSD.
- 3
Verify with consent_id
On the consent.updated webhook, run the gated check.
Routing and providers
Live BVN consent requests are registered with NIBSS Consent Hub; USSD consent uses NIBSS iGree.
Use it
One request. One normalized response.
Call POST /v1/consents through @speedmap/node, speedmap for Python, or the request_consent tool in Speedmap Connect.
curl -X POST http://localhost:4000/v1/consents \
-H "Authorization: Bearer sk_test_..." \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"identifier_type": "bvn",
"identifier": "22222222221",
"categories": "YYNN",
"channel": "ussd",
"reason": "financialProducts"
}'{
"id": "cns_b5ef3585cb6565a42fe0dc423cd83de9",
"object": "consent",
"identifier_type": "bvn",
"subject": "*******2221",
"categories": "YYNN",
"category_labels": [
"Personal identification",
"Contact information"
],
"channel": "ussd",
"status": "pending",
"reason": "financialProducts",
"authorization_url": "https://speedmap.ng/consent/cns_b5ef3585cb6565a42fe0dc423cd83de9",
"ussd_code": "*565*1*7*45425859#",
"granted_at": null,
"expires_at": "2026-10-21T12:50:54.042Z",
"mode": "sandbox"
}Use cases
Where Nigerian teams use it.
Full BVN records
Satisfy the consent requirement for BVN core lookups.
Remote lending onboarding
Email consent links to absent applicants, then verify in batch once they approve.
Feature-phone customers
Reach customers without smartphones through USSD.
Agent-assisted onboarding
The agent starts the request; the customer approves on their own phone.
What you get back
The fields you will read.
| Field | Meaning |
|---|---|
| id / status | pending, granted, denied, revoked or expired |
| categories / category_labels | What was asked for |
| authorization_url / ussd_code | Where the subject approves |
| expires_at | Pending requests expire after 24 hours |
id / status
- Meaning
- pending, granted, denied, revoked or expired
categories / category_labels
- Meaning
- What was asked for
authorization_url / ussd_code
- Meaning
- Where the subject approves
expires_at
- Meaning
- Pending requests expire after 24 hours
Assertion tier
Consent objects never contain the subject’s record.
Full tier
No additional fields.
- How long does a consent last?
- Pending requests expire after 24 hours. A granted consent is valid for 24 hours of use unless revoked earlier.
Start verifying in minutes. Go live when you’re ready.
Create your account in under a minute and explore the full dashboard. We switch your workspace live after a short compliance review.