This is Step 6 of 6 in the onboarding journey. View the full onboarding overview →
What production access means
Production is the live banking environment. When you are live:- Virtual accounts you create are real bank accounts backed by Union Bank, with real NUBAN (Nigerian Uniform Bank Account Number) account numbers that can receive deposits from any Nigerian bank
- Payments you initiate are real money transfers over the NIP (Nigeria Instant Payment) network — they cannot be reversed once they clear
- Customers who use your product are real people whose money you are responsible for
Prerequisites: complete this checklist before applying
Do not submit your production access request until every item on this list is complete. Our review team will check for evidence of each item.Integration completeness
Integration completeness
Completed at least one full end-to-end test for each product you are requesting access to. For example, if you want access to both Payments and Virtual Accounts, you should have tested the full flow for each: creating an account, funding it (in sandbox), initiating a payment, and handling the resulting webhooks — all the way through to your own application’s response.
Set up HTTPS-only webhook endpoints. A webhook endpoint is a URL on your server that we send notifications to when events happen (for example, “a payment was received” or “a transfer completed”). Webhooks must be served over HTTPS — HTTP is not accepted in production. Your endpoint must return a
200 OK status within 30 seconds of receiving a notification. See the Webhooks product guide for implementation details.Tested your webhook handler. Use the sandbox webhook simulation tool to send test events to your endpoint and confirm your handler processes them correctly, including failure scenarios (duplicate events, out-of-order delivery, malformed payloads).
Security
Security
Stored your API keys in environment variables or a secret manager — not in code or in Git. See Step 5: API Keys for guidance on secure key storage.
Implemented idempotency keys on all write operations. An idempotency key is a unique string you include in the header of every request that creates or modifies data (
POST, PUT, DELETE). If your network drops and you retry a request, the idempotency key tells our system “this is the same request you already processed — do not do it again.” Without idempotency keys, a network retry can create duplicate payments or accounts. Use a UUID (a randomly generated unique identifier — most programming languages have a library for this) as the idempotency key for each unique operation.Implemented retry logic with exponential backoff. If an API request fails with a
5xx error (a server-side error), your code should automatically retry the request after a short delay. Exponential backoff means each retry waits longer than the previous one — for example, wait 1 second, then 2, then 4, then 8. This prevents your system from overwhelming ours during an incident and improves your resilience to transient failures.Know your server’s outbound IP addresses. When your production access is approved, we add your server’s IP addresses to our allowlist — a list of addresses permitted to make production API calls. You need to provide these addresses in your application. If your IP addresses change (for example, if you move hosting providers), contact us to update the allowlist.
Operational readiness
Operational readiness
Set up monitoring and alerts for your integration. You should have dashboards or alerts that notify you if your API error rate increases, your webhook handler fails, or your response times degrade. The sandbox is the time to set this up — do not figure it out after go-live.
Defined your incident response process. Know what you will do if something goes wrong in production. Who gets paged? What is the escalation path? How do you reach UBN BaaS support? Our support email is baas-support@unionbank.ng.
Reviewed the rate limits for your production tier. Production rate limits differ from sandbox limits. Confirm your expected peak request volume fits within your approved production tier. See Rate Limits for details.
How to submit your production access request
Endpoint:POST /api/v1/partners/{partnerId}/production-access-request
Base URL: https://sandbox.api.unionbank.ng
Replace {partnerId} in the URL with your actual partner ID (from the registration response in Step 1).
| Field | Type | Required | Description |
|---|---|---|---|
products | array of strings | Yes | The API products you are requesting production access to. Valid values: accounts, payments, collections, kyc. Only request products you have actually tested in sandbox. |
businessJustification | string | Yes | A description of your use case in at least 50 words. Explain what your product does, who your customers are, why you need each product you are requesting, and your expected transaction volumes. More detail here reduces back-and-forth and speeds up approval. |
serverIpAddresses | array of strings | Yes | The outbound IP addresses of your production servers. These are added to the production API allowlist. All production API calls must originate from these IPs. |
webhookUrls | array of strings | Yes | The HTTPS URLs where you want to receive production webhook notifications. Must be reachable from the public internet and must return 200 OK. |
vpnConnectionFormReference | string | Conditional | The reference number of your completed VPN Connection Form. Required if your use case involves high-volume payments or you have been advised by your UBN relationship manager to set up a VPN connection. |
What is the VPN Connection Form?
A VPN (Virtual Private Network) Connection Form is a document provided by your UBN relationship manager that sets up a secure, encrypted private network connection between your servers and UBN’s infrastructure. A standard HTTPS API connection over the public internet is secure for most use cases. A VPN connection goes further — it routes your API traffic through a private, dedicated network channel that bypasses the public internet entirely. This is required for partners with very high transaction volumes, partners handling particularly sensitive data, or partners whose risk profile or use case warrants the additional security layer. Your UBN relationship manager will tell you whether you need a VPN connection. If you have not been assigned a relationship manager, email baas-support@unionbank.ng with yourpartnerId and “VPN Connection” in the subject line.
What happens during the review
After you submit your request, your application goes through a structured review process. Target review time is 2–5 business days.Initial screening (Day 1)
Our team confirms your application is complete: all required fields are present, your IP addresses are valid, your webhook URLs are reachable, and your business justification meets the minimum detail requirement.If anything is missing or incomplete, you receive an email within 24 hours asking for the specific information needed. Responding promptly keeps the process moving.
Integration review (Days 1–3)
A technical reviewer examines your sandbox activity to confirm:
- You have actually tested the products you are requesting access to
- Your integration handles error cases correctly (not just happy paths)
- Your webhook handler has been exercised with various event types
- Your usage patterns do not suggest incomplete or unstable implementation
Security review (Days 2–4)
Our security team reviews your server IP addresses, webhook URLs, and any information provided about your security setup. They may ask follow-up questions about your infrastructure, key management, or data handling practices.
Final approval and provisioning (Day 4–5)
When the review is complete and approved, our team:
- Issues your production API key
- Adds your server IP addresses to the production allowlist
- Configures your VPN connection (if applicable)
- Activates your production webhook endpoints
- Sends you a confirmation email with your production key and go-live instructions
What happens when you are approved
You will receive an email fromnoreply@unionbank.ng with the subject “UBN BaaS — Production access approved”. The email contains:
- Your production API key (shown once — save it immediately)
- Confirmation of which products are enabled
- Your production rate limits
- The UBN BaaS support contacts for production issues
- A link to the Incident Response page
https://api.unionbank.ng.
What happens if more information is needed
If our team needs clarification or additional information, you will receive an email with specific questions. Common examples:- “Please describe your expected peak daily payment volume”
- “Please confirm how you will handle customer disputes for payments”
- “Your webhook URL returned a 404 during our test — please confirm it is live”
Post-go-live: staying healthy in production
Going live is not the end — it is the beginning. Here are the most important things to do in the days and weeks after your launch.Monitor your error rates
Monitor your error rates
Set up a dashboard or alert that fires if your API error rate (HTTP
4xx or 5xx responses) rises above your baseline. A sudden increase in errors is usually the first signal of a problem — catching it early prevents it from affecting many customers.Key metrics to track:- API error rate (percentage of requests returning errors)
- Webhook delivery failure rate
- Payment failure rate (separate from API errors — a payment can succeed at the API level and fail at the banking network level)
- Response time (latency above 5 seconds on synchronous endpoints usually indicates a problem)
Handle webhook failures properly
Handle webhook failures properly
UBN BaaS retries failed webhook deliveries up to 5 times with exponential backoff. But if your webhook endpoint is down for an extended period, you may miss events.Best practices:
- Queue incoming webhook events rather than processing them synchronously — this prevents your webhook handler from timing out
- Store raw webhook payloads before processing — if your processing logic has a bug, you can replay the stored payloads after fixing it
- Alert yourself if your webhook endpoint returns non-
200responses more than a handful of times per hour
Know when and how to contact support
Know when and how to contact support
For production incidents (live transactions failing, unexpected API behaviour, suspected security issues):
- Email: baas-support@unionbank.ng — include your
partnerId, the affected endpoint, a sample request ID, and the time the issue started - Subject line format:
[PROD INCIDENT] Brief description— this flags the email for priority handling
[PROD INCIDENT] prefix.Rotate your production keys regularly
Rotate your production keys regularly
Production API keys should be rotated at least every 90 days. See Step 5: API Keys for the rotation process. The 72-hour grace period makes this straightforward to do without any downtime.Set a calendar reminder now, before you forget.
Keep your IP allowlist up to date
Keep your IP allowlist up to date
If you change hosting providers, add new servers, or move to a different cloud region, your outbound IP addresses will change. Contact baas-support@unionbank.ng before making infrastructure changes to update your allowlist. API calls from unlisted IP addresses are blocked.
You have completed the full UBN BaaS onboarding journey. Welcome to production. If you have not already, explore the product guides to get the most out of your integration:
Virtual Accounts
Create and manage real Nigerian bank accounts programmatically.
Payments
Send money to any Nigerian bank account over the NIP network.
Collections
Receive money from customers with unique collection accounts.
Webhooks
Get real-time notifications for every event in your integration.