Skip to main content
This changelog records every release of the UBN BaaS API. Entries are listed newest first. Each entry shows the version, release date, and a complete list of what changed. We follow semantic versioning:
  • Major version (v1 → v2): breaking changes — you will need to update your integration.
  • Minor version (v1.0 → v1.1): new features added in a backwards-compatible way.
  • Patch version (v1.0.0 → v1.0.1): bug fixes that do not affect your integration’s behaviour.
Breaking changes are announced with a minimum 90-day deprecation notice before the old behaviour is removed. Deprecation notices are sent by email to the technical contact on your partner account and posted here.

v1.0.0 — 25 March 2026

Initial public release of the UBN BaaS platform.

New Features

Partners can now register, verify their email, and complete Know Your Business (KYB) review entirely through the API and portal.
  • POST /api/Auth/register — create a partner account with company name, email, and contact details.
  • POST /api/Auth/verifyEmailCode — verify your email address with the OTP sent at registration.
  • POST /api/Auth/resendVerificationEmail — request a new OTP if yours expired.
  • KYB document submission: upload Certificate of Incorporation, Director ID, and Utility Bill for compliance review.
  • Production access request workflow: once sandbox testing is complete, submit a go-live request for review.
Automated identity verification for individuals and businesses, with PII masking on all responses.
  • POST /api/v1/kyc/bvn/verify — verify a Bank Verification Number (BVN) against the central bank registry. Returns name match and masked identity fields.
  • POST /api/v1/kyc/nin/verify — verify a National Identification Number (NIN) against the NIMC database. Returns name match and masked identity fields.
  • POST /api/v1/kyc/cac/lookup — look up a company by its Corporate Affairs Commission (CAC) registration number. Returns company status, registered address, and director information.
All three endpoints mask PII in responses: BVN, NIN, date of birth, and phone numbers are never returned in full.
Full lifecycle management for API credentials.
  • Generate API keys (sandbox and production, scoped separately).
  • Rotate keys — generate a new key while the old one remains active for a grace period.
  • Revoke keys — immediately invalidate a key. Revocation is instant and irreversible.
  • Key hashing: raw keys are never stored; only Argon2id hashes are retained.
Create and manage virtual bank accounts issued under Union Bank’s licence.
  • POST /api/v1/accounts — create a virtual account. Two types supported:
    • STATIC: a permanent account number assigned to a customer. Suitable for wallets, savings products, and any use case where the customer has a stable account identity.
    • DYNAMIC: a single-use account number generated for a specific expected payment. Expires after the payment is received or after a configurable timeout.
  • GET /api/v1/accounts/{accountNumber} — retrieve account details and current balance.
  • GET /api/v1/accounts/{accountNumber}/transactions — list transaction history with pagination.
Initiate outbound transfers through the Nigerian interbank payment networks.
  • POST /api/v1/payments/account-enquiry — look up an account at any Nigerian bank before sending a transfer. Returns account name for confirmation.
  • POST /api/v1/payments/transfer — initiate an outbound transfer. Two schemes supported:
    • NIP (NIBSS Instant Payment): real-time, 24/7, settles in seconds. Maximum ₦10,000,000 per transaction.
    • NEFT (Nigeria Electronic Funds Transfer): scheduled batch, settles same day or next day. No maximum limit.
  • Idempotency keys supported on all transfer requests — duplicate requests with the same key return the original response without creating a second transaction.
  • GET /api/v1/payments/{reference} — query the status of a payment by its reference number.
Receive inbound payments from customers into your virtual accounts.
  • Virtual collection accounts: each virtual account can receive inbound NIP transfers from any Nigerian bank.
  • Real-time webhook notifications on every incoming credit — your system is notified the moment funds arrive.
  • GET /api/v1/accounts/{accountNumber}/transactions — query received payments with full metadata including the sender’s name, bank, and narration.
Event-driven notifications for asynchronous operations.
  • POST /api/v1/webhooks — register a webhook endpoint URL for your partner account.
  • GET /api/v1/webhooks — list all registered webhook endpoints.
  • DELETE /api/v1/webhooks/{webhookId} — remove a webhook endpoint.
  • GET /api/v1/webhooks/deliveries — view delivery history including HTTP status codes, response times, and retry attempts.
  • Automatic retry with exponential backoff: failed deliveries are retried up to 5 times over 24 hours.
  • HMAC-SHA256 signatures on every delivery: verify the X-UBN-Signature header to confirm authenticity.
Events supported at launch:
EventTrigger
payment.transfer.successOutbound transfer completed
payment.transfer.failedOutbound transfer failed
collection.receivedInbound credit to a virtual account
kyc.verification.completedKYC check returned a result
account.createdNew virtual account provisioned
Full production-equivalent testing environment.
  • Sandbox base URL: https://sandbox.api.unionbank.ng
  • Pre-configured test data for BVN, NIN, CAC, and account number verification.
  • GET /dev/outbox-preview — inspect the last 50 emails and SMS messages that would have been sent in production.
  • Identical rate limits to production — backoff logic tested in sandbox works correctly in production.
  • Instant transfer settlement — no need to wait for batch windows during development.

Security

The following security controls are active at launch across all environments:
ControlDetail
API key hashingArgon2id — raw keys are never stored
Document encryption at restAES-256 for all uploaded KYB documents
Encryption in transitTLS 1.3 on all API endpoints
Mutual TLS (mTLS)Required for production payment and KYC calls
Request signingHMAC-SHA256 for all payment and KYC requests
Environment isolationSandbox and production share no data or infrastructure
WORM audit loggingImmutable record of every API call and data access event
Circuit breaker protectionAutomatic failure isolation for upstream payment network dependencies
SAST/DAST scanningRun on every code change before deployment

Standards and Compliance

StandardStatus
OpenAPI 3.1.0 specificationFull spec published at /api-reference/openapi.yaml
RFC 7807 Problem DetailsAll error responses use the standard type, title, status, detail format
NDPR compliancePII minimisation, consent capture, immutable audit trail
CBN KYC guidelinesBVN/NIN verification aligned to current CBN KYC circular