{"info":{"_postman_id":"7e1f7326-12aa-4efa-9983-031ba436cd67","name":"Finecore Partners BAAS Documentation","description":"<html><head></head><body><h1 id=\"finecore-baas-api-documentation\">Finecore BAAS API Documentation</h1>\n<p>Welcome to the official API documentation for Finecore Partners' Backend-as-a-Service (BAAS) platform. This collection includes endpoints for managing wallets and accounts, including both static and dynamic account generation.</p>\n<p>Available Services</p>\n<ul>\n<li><p>Wallet Management</p>\n<ul>\n<li><p>Create and retrieve wallet details</p>\n</li>\n<li><p>Check balances</p>\n</li>\n<li><p>View transaction history</p>\n</li>\n</ul>\n</li>\n<li><p>Account Management</p>\n<ul>\n<li><p>Generate static accounts for users or organizations</p>\n</li>\n<li><p>Create dynamic virtual accounts for one-time or scoped use</p>\n</li>\n<li><p>Link accounts to wallets</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>For questions or technical support, contact our team at <a href=\"https://mailto:tech@finecore.co\">tech@finecore.co</a>.</p>\n<p>Getting Started</p>\n<ol>\n<li><p>Set up your environment variables (e.g. <a href=\"https://api.finecore.co/v1\">https://api.finecore.co/v1</a>, {{API_KEY}})</p>\n</li>\n<li><p>Use your API key in the X-API-Key header:</p>\n<p> X-API-Key: {{API_KEY}}</p>\n</li>\n<li><p>Explore the endpoints organized by service in this collection</p>\n</li>\n<li><p>Review the example requests and responses for correct formatting</p>\n</li>\n</ol>\n<p>Notes</p>\n<ul>\n<li><p>This is the v1 version of the Finecore BAAS API.</p>\n</li>\n<li><p>All responses are returned in JSON format.</p>\n</li>\n<li><p>Ensure your API key is kept secure and not exposed in public environments.</p>\n</li>\n<li><p>Error responses will contain helpful messages and status codes.</p>\n</li>\n</ul>\n<h2 id=\"web-hook-events\">Web Hook Events</h2>\n<p>This document outlines the webhook event types and their associated data structures.</p>\n<h4 id=\"webhook-event-types\">Webhook Event Types</h4>\n<ul>\n<li><p><code>customer_bank_transfer</code>: Represents a customer bank transfer event.</p>\n</li>\n<li><p><code>bank_transfer</code>: Represents a merchant bank transfer event.</p>\n</li>\n<li><p><code>customer_wallet_debited</code>: Represents an event where a customer's wallet is debited.</p>\n</li>\n<li><p><code>customer_wallet_credited</code>: Represents an event where a customer's wallet is credited.</p>\n</li>\n<li><p><code>wallet_to_wallet_transfer</code>: Represents a wallet-to-wallet transfer event.</p>\n</li>\n<li><p><code>batch_bank_transfer</code>: Represents a batch bank transfer event.</p>\n</li>\n<li><p><code>account_funded</code>: Represents an event where an account is funded.</p>\n</li>\n</ul>\n<h2 id=\"🔔-webhook-response\">🔔 Webhook Response</h2>\n<p>When an event occurs, a webhook will be sent with the following JSON structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n\"event\": \"customer_bank_transfer\",\n\"data\":{\n  \"id\": \"5a8d6c3e-bbf4-4f4b-80b9-8f2877363eae\",\n  \"user_id\": \"2c8e91cd-7ae4-4b34-bc9f-39e72b2dd9c4\",\n  \"merchant_id\": \"77b2d420-531c-44e7-a0fd-3d7e87b264dc\",\n  \"reference\": \"TXN-239487293847\",\n  \"amount\": 1500.75,\n  \"currency\": \"NGN\",\n  \"status\": \"COMPLETED\",\n  \"balance_before\": 3500.00,\n  \"balance_after\": 2000.25,\n  \"environment\": \"SANDBOX\",\n  \"type\": \"DEBIT\",\n  \"category\": \"BANK_TRANSFER\",\n  \"source\": \"wallet\",\n  \"destination\": \"merchant_account\",\n  \"description\": \"Payment for Order #12345\",\n  \"metadata\": {\n    \"order_id\": \"12345\",\n    \"channel\": \"web\"\n  },\n  \"created_at\": \"2025-05-01T13:25:43Z\"\n}\n}\n\n</code></pre>\n<hr>\n<h2 id=\"📝-field-descriptions\">📝 Field Descriptions</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>UUID</td>\n<td>Unique identifier for the webhook event</td>\n</tr>\n<tr>\n<td><code>user_id</code></td>\n<td>UUID</td>\n<td>The user associated with the transaction</td>\n</tr>\n<tr>\n<td><code>merchant_id</code></td>\n<td>UUID</td>\n<td>The merchant involved in the transaction</td>\n</tr>\n<tr>\n<td><code>reference</code></td>\n<td>String</td>\n<td>Unique transaction reference</td>\n</tr>\n<tr>\n<td><code>amount</code></td>\n<td>Float</td>\n<td>Transaction amount</td>\n</tr>\n<tr>\n<td><code>currency</code></td>\n<td>String</td>\n<td>ISO currency code (e.g., NGN, USD)</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>String</td>\n<td>Status of the transaction (COMPLETED, FAILED, etc.)</td>\n</tr>\n<tr>\n<td><code>balance_before</code></td>\n<td>Float</td>\n<td>Balance before the transaction</td>\n</tr>\n<tr>\n<td><code>balance_after</code></td>\n<td>Float</td>\n<td>Balance after the transaction</td>\n</tr>\n<tr>\n<td><code>environment</code></td>\n<td>String</td>\n<td>Environment (LIVE, SANDBOX)</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>String</td>\n<td>Type of transaction (CREDIT, DEBIT)</td>\n</tr>\n<tr>\n<td><code>category</code></td>\n<td>String</td>\n<td>Category of transaction (e.g., BANK_TRANSFER, CREDIT_CUSTOMER_WALLET, etc)</td>\n</tr>\n<tr>\n<td><code>source</code></td>\n<td>String</td>\n<td>Origin of funds (e.g., WALLET, CARD)</td>\n</tr>\n<tr>\n<td><code>destination</code></td>\n<td>String</td>\n<td>Destination of funds</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>String</td>\n<td>Description of the transaction</td>\n</tr>\n<tr>\n<td><code>metadata</code></td>\n<td>Object</td>\n<td>Custom metadata (key-value pairs)</td>\n</tr>\n<tr>\n<td><code>created_at</code></td>\n<td>Timestamp</td>\n<td>ISO 8601 timestamp when the webhook event was triggered</td>\n</tr>\n</tbody>\n</table>\n</div><hr>\n<h2 id=\"webhook-documentation\">Webhook Documentation</h2>\n<p>This webhook system allows Finecore to send event notifications to your server in real-time. The webhook delivers a JSON payload via an HTTP POST request to your specified webhook URL.</p>\n<hr>\n<p>How It Works:</p>\n<ul>\n<li><p>The server sends a <code>POST</code> request to your webhook<code>Url</code> with a JSON payload.</p>\n</li>\n<li><p>The payload is signed using an HMAC-SHA256 signature generated with your <code>secretKey</code>.</p>\n</li>\n<li><p>The request includes headers to help you verify authenticity and ensure security.</p>\n</li>\n</ul>\n<hr>\n<p>Headers:</p>\n<ul>\n<li><p>Content-Type: application/json</p>\n</li>\n<li><p>X-Webhook-Signature: {HMAC_SHA256_SIGNATURE}</p>\n</li>\n<li><p>X-Webhook-Timestamp: {ISO_8601_UTC_TIMESTAMP}</p>\n</li>\n</ul>\n<p>Example:</p>\n<p>X-Webhook-Signature: b1946ac92492d2347c6235b4d2611184<br>X-Webhook-Timestamp: 2025-05-08T12:34:56.789Z</p>\n<hr>\n<p>Payload:</p>\n<p>The payload is a JSON object that contains the data relevant to the event. The structure will vary based on the event type.</p>\n<p>Example payload:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n\"event\": \"customer_bank_transfer\",\n\"data\":{\n  \"id\": \"5a8d6c3e-bbf4-4f4b-80b9-8f2877363eae\",\n  \"user_id\": \"2c8e91cd-7ae4-4b34-bc9f-39e72b2dd9c4\",\n  \"merchant_id\": \"77b2d420-531c-44e7-a0fd-3d7e87b264dc\",\n  \"reference\": \"TXN-239487293847\",\n  \"amount\": 1500.75,\n  \"currency\": \"NGN\",\n  \"status\": \"COMPLETED\",\n  \"balance_before\": 3500.00,\n  \"balance_after\": 2000.25,\n  \"environment\": \"SANDBOX\",\n  \"type\": \"DEBIT\",\n  \"category\": \"BANK_TRANSFER\",\n  \"source\": \"wallet\",\n  \"destination\": \"merchant_account\",\n  \"description\": \"Payment for Order #12345\",\n  \"metadata\": {\n    \"order_id\": \"12345\",\n    \"channel\": \"web\"\n  },\n  \"created_at\": \"2025-05-01T13:25:43Z\"\n}\n}\n\n</code></pre>\n<hr>\n<p>Verifying the Webhook:</p>\n<ol>\n<li><p>Compute an HMAC-SHA256 hash of the <strong>raw request body</strong> using your <code>secretKey</code>.</p>\n</li>\n<li><p>Compare your computed hash with the value in the <code>X-Webhook-Signature</code> header.</p>\n</li>\n<li><p>Check that the <code>X-Webhook-Timestamp</code> is recent (recommended within 5 minutes) to prevent replay attacks.</p>\n</li>\n</ol>\n<p>Example verification steps:</p>\n<ul>\n<li><p>Extract <code>X-Webhook-Signature</code> and <code>X-Webhook-Timestamp</code> from the headers.</p>\n</li>\n<li><p>Compute:</p>\n<p>  signature = HMAC_SHA256(secretKey, rawBody)</p>\n</li>\n<li><p>Compare:</p>\n<p>  If signature === X-Webhook-Signature → ✅ valid.</p>\n</li>\n</ul>\n<hr>\n<p>Webhook Retry Policy</p>\n<p>To ensure reliable delivery, Finecore’s webhook system implements an automatic retry mechanism when delivering webhook events to your endpoint.</p>\n<p>Behavior:</p>\n<ul>\n<li><p><strong>Number of retries:</strong> 3 attempts in total (1 initial + 2 retries).</p>\n</li>\n<li><p><strong>Retry interval:</strong> Exponential backoff starting at 100 milliseconds:</p>\n<ul>\n<li><p>1st attempt: immediately.</p>\n</li>\n<li><p>2nd attempt: after 5 seconds.</p>\n</li>\n<li><p>3rd attempt: after 10 seconds.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Timeout:</strong> Each webhook request will timeout after 30 seconds if your server does not respond.</p>\n</li>\n<li><p><strong>Retry triggers:</strong> Retries occur if:</p>\n<ul>\n<li><p>Your server is unreachable (network error).</p>\n</li>\n<li><p>Your server responds with a <strong>non-2xx HTTP status code</strong>.</p>\n</li>\n<li><p>Your server takes too long to respond (exceeds 30 seconds).</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>Stopping Condition:</p>\n<ul>\n<li>If your server responds with a <strong>2xx HTTP status code</strong>, the webhook is considered delivered and no further retries are attempted.</li>\n</ul>\n<hr>\n<p>Best Practices for Your Endpoint:</p>\n<ul>\n<li><p>Always respond with a <strong>2xx HTTP status code</strong> to acknowledge successful receipt.</p>\n</li>\n<li><p>Validate the <code>X-Webhook-Signature</code> header to ensure the request’s authenticity.</p>\n</li>\n<li><p>Process webhook payloads <strong>idempotently</strong> to avoid duplicate side effects in case of retries.</p>\n</li>\n</ul>\n<p>Example Retry Flow:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Attempt</th>\n<th>Wait before retry</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1st</td>\n<td>Immediate</td>\n<td>Initial delivery attempt</td>\n</tr>\n<tr>\n<td>2nd</td>\n<td>5s</td>\n<td>First retry if needed</td>\n</tr>\n<tr>\n<td>3rd</td>\n<td>10s</td>\n<td>Second retry if needed</td>\n</tr>\n</tbody>\n</table>\n</div><hr>\n<p>Important Notes:</p>\n<ul>\n<li><p>Always acknowledge receipt with a <code>200 OK</code> HTTP status code.</p>\n</li>\n<li><p>Make sure your endpoint is secure and can handle requests at scale.</p>\n</li>\n<li><p>Your server should verify the signature and timestamp before processing the webhook payload.</p>\n</li>\n</ul>\n<hr>\n<p>For technical support or questions, contact <a href=\"https://mailto:tech@finecore.co\">tech@finecore.co</a>.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Finecore BAAS API Documentation","slug":"finecore-baas-api-documentation"}],"owner":"38720320","collectionId":"7e1f7326-12aa-4efa-9983-031ba436cd67","publishedId":"2sB2j4eW8P","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2025-07-25T22:18:46.000Z"},"item":[{"name":"Wallet","item":[{"name":"Transaction","item":[{"name":"Fetch customer transaction","id":"0777b6a9-66af-4478-9d9d-6d5429335ed9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":"{{BASE_URL}}/transactions/customer/:customer_id/:reference","description":"<p>Fetch Transaction by Customer ID and Reference</p>\n<p>Endpoint: <code>GET /v1/transactions/customer/:customer_id/:reference</code></p>\n<p>Description:<br />This endpoint retrieves a specific transaction for a given customer based on their unique <code>customer_id</code> and a unique transaction <code>reference</code>.</p>\n<p>Parameters:</p>\n<ul>\n<li><p><code>customer_id</code> (path parameter): The unique identifier for the customer whose transaction is being fetched.</p>\n</li>\n<li><p><code>reference</code> (path parameter): The unique reference code of the transaction you want to retrieve.</p>\n</li>\n</ul>\n<p>Response:</p>\n<ul>\n<li><p>On success, returns the transaction details including:</p>\n<ul>\n<li><p>Amount</p>\n</li>\n<li><p>Status (e.g., FAILED, COMPLETE, PENDING)</p>\n</li>\n<li><p>Date of transaction</p>\n</li>\n<li><p>Transaction type (CREDIT or DEBIT)</p>\n</li>\n<li><p>Metadata (optional)</p>\n</li>\n</ul>\n</li>\n<li><p>Error Handling:</p>\n<ul>\n<li><p>If the transaction is not found, a <code>404 Not Found</code> response is returned.</p>\n</li>\n<li><p>If an error occurs, a relevant error message with status code is returned.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>Example Request:</p>\n<p>Notes:</p>\n<ul>\n<li><p>Ensure that the <code>customer_id</code> and <code>reference</code> are correctly passed as path parameters.</p>\n</li>\n<li><p>Include the <code>X-API-Key</code> header for authentication:</p>\n<p>  X-API-Key: {{API_KEY}}</p>\n</li>\n</ul>\n","urlObject":{"path":["transactions","customer",":customer_id",":reference"],"host":["{{BASE_URL}}"],"query":[],"variable":[{"type":"any","value":"7d2efa20-bb75-4425-8342-2a68eba6191a","key":"customer_id"},{"type":"any","value":"TXN-1746014787-16c444e2f2af52ea","key":"reference"}]}},"response":[{"id":"b6883068-6762-451b-95e6-58ea981c8b1c","name":"New Request","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://api.finecore.co/v1/transactions/customer/:customer_id/:reference","protocol":"http","host":["api","finecore","co"],"path":["v1","transactions","customer",":customer_id",":reference"],"variable":[{"key":"customer_id","value":"2da3424b-1d1e-4155-a65e-d2347c37a73c"},{"key":"reference","value":"TXN-1736445726-87dc1349d8f78a0a"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Origin"},{"key":"Date","value":"Thu, 09 Jan 2025 18:57:54 GMT"},{"key":"Content-Length","value":"350"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"status\": \"success\",\n    \"data\": {\n        \"id\": \"509eae9c-9373-486d-b25d-0c46994b66f9\",\n        \"user_id\": \"2da3424b-1d1e-4155-a65e-d2347c37a73c\",\n        \"reference\": \"TXN-1736445726-87dc1349d8f78a0a\",\n        \"currency\": \"NGN\",\n        \"environment\": \"SANDBOX\",\n        \"status\": null,\n        \"balance_after\": 600,\n        \"balance_before\": 400,\n        \"metadata\": null,\n        \"type\": \"CREDIT\",\n        \"category\": \"CREDIT_CUSTOMER_WALLET\"\n    }\n}"}],"_postman_id":"0777b6a9-66af-4478-9d9d-6d5429335ed9"},{"name":"Fetch customer transactions","id":"4cbdd5ed-bd11-4733-94e1-19a411f407be","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":"{{BASE_URL}}/transactions/customer/:customer_id","description":"<p>Fetch All Transactions by Customer ID</p>\n<p>Endpoint: <code>GET /v1/transactions/customer/:customer_id</code></p>\n<p>Description:<br />This endpoint retrieves all transactions associated with a specific customer identified by their unique <code>customer_id</code>. Use this to view the complete transaction history for a customer.</p>\n<p>Parameters:</p>\n<ul>\n<li><code>customer_id</code> (path parameter): The unique identifier for the customer whose transactions are being fetched.</li>\n</ul>\n<p>Response:</p>\n<ul>\n<li><p>On success, returns a list of transactions with details including:</p>\n<ul>\n<li><p>Amount</p>\n</li>\n<li><p>Status (e.g., successful, failed)</p>\n</li>\n<li><p>Date of transaction</p>\n</li>\n<li><p>Transaction type (credit or debit)</p>\n</li>\n<li><p>Metadata (optional)</p>\n</li>\n</ul>\n</li>\n<li><p>Error Handling:</p>\n<ul>\n<li><p>If no transactions are found for the given customer, returns an empty list.</p>\n</li>\n<li><p>If the customer ID is invalid, a <code>404 Not Found</code> response is returned.</p>\n</li>\n<li><p>Any other errors will return a relevant error message with a corresponding status code.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>Notes:</p>\n<ul>\n<li><p>Ensure that the <code>customer_id</code> is passed correctly as a path parameter.</p>\n</li>\n<li><p>Include the <code>X-API-Key</code> header for authentication:</p>\n<p>  X-API-Key: {{API_KEY}}</p>\n</li>\n</ul>\n","urlObject":{"path":["transactions","customer",":customer_id"],"host":["{{BASE_URL}}"],"query":[],"variable":[{"type":"any","value":"6e042473-0f89-4697-a1f8-3772f123590c","key":"customer_id"}]}},"response":[{"id":"ca71e5a8-2802-46c9-b324-8733e58a6372","name":"Fetch customer transactions","originalRequest":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":{"raw":"http://api.finecore.co/v1/transactions/customer/:customer_id","protocol":"http","host":["api","finecore","co"],"path":["v1","transactions","customer",":customer_id"],"variable":[{"key":"customer_id","value":"2da3424b-1d1e-4155-a65e-d2347c37a73c"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Origin"},{"key":"Date","value":"Wed, 12 Feb 2025 14:00:09 GMT"},{"key":"Content-Length","value":"1149"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"status\": \"success\",\n    \"data\": [\n        {\n            \"id\": \"a0d95df4-b004-4c38-95b8-b9308d0340c1\",\n            \"user_id\": \"2da3424b-1d1e-4155-a65e-d2347c37a73c\",\n            \"reference\": \"TXN-1736446870-9572309761397768\",\n            \"currency\": \"NGN\",\n            \"environment\": \"SANDBOX\",\n            \"status\": null,\n            \"amount\": 200,\n            \"balance_after\": 1000,\n            \"balance_before\": 800,\n            \"metadata\": \"eyJyZWFzb24iOiAiZm9yIGNvbXBsZXRpb24gb2YgdGFzayJ9\",\n            \"type\": \"CREDIT\",\n            \"category\": \"CREDIT_CUSTOMER_WALLET\",\n            \"total_items\": 3\n        },\n        {\n            \"id\": \"f94d933c-75c3-42c5-8f6c-ceb7e64f8d80\",\n            \"user_id\": \"2da3424b-1d1e-4155-a65e-d2347c37a73c\",\n            \"reference\": \"TXN-1736445802-9e8bc1decbdc2178\",\n            \"currency\": \"NGN\",\n            \"environment\": \"SANDBOX\",\n            \"status\": null,\n            \"amount\": 0,\n            \"balance_after\": 800,\n            \"balance_before\": 600,\n            \"metadata\": null,\n            \"type\": \"CREDIT\",\n            \"category\": \"CREDIT_CUSTOMER_WALLET\",\n            \"total_items\": 3\n        },\n        {\n            \"id\": \"509eae9c-9373-486d-b25d-0c46994b66f9\",\n            \"user_id\": \"2da3424b-1d1e-4155-a65e-d2347c37a73c\",\n            \"reference\": \"TXN-1736445726-87dc1349d8f78a0a\",\n            \"currency\": \"NGN\",\n            \"environment\": \"SANDBOX\",\n            \"status\": null,\n            \"amount\": 0,\n            \"balance_after\": 600,\n            \"balance_before\": 400,\n            \"metadata\": null,\n            \"type\": \"CREDIT\",\n            \"category\": \"CREDIT_CUSTOMER_WALLET\",\n            \"total_items\": 3\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"limit\": 10,\n        \"totalItems\": 3,\n        \"totalPages\": 1\n    }\n}"}],"_postman_id":"4cbdd5ed-bd11-4733-94e1-19a411f407be"}],"id":"52473f67-4bb6-4402-881d-1f84a97e4609","description":"<p>Transaction Endpoints (Wallet)</p>\n<p>This folder contains endpoints for fetching transaction details related to wallets in the Finecore BAAS platform.</p>\n<p>Available Actions:</p>\n<ul>\n<li><p><strong>Fetch Transaction by Customer ID and Reference</strong></p>\n<ul>\n<li><p>Retrieve a specific transaction using the customer ID and transaction reference.</p>\n</li>\n<li><p>Use this endpoint to get detailed information about a single transaction.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Fetch All Transactions by Customer ID</strong></p>\n<ul>\n<li><p>Retrieve all transactions associated with a specific customer ID.</p>\n</li>\n<li><p>This can be used to view the complete transaction history for a customer.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Fetch Transaction by Reference</strong></p>\n<ul>\n<li><p>Retrieve a transaction based on the transaction reference.</p>\n</li>\n<li><p>Use this endpoint to find a specific transaction using its unique reference code.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>Notes:</p>\n<ul>\n<li><p>The <code>customer_id</code> and <code>reference</code> parameters are essential for fetching specific transactions.</p>\n</li>\n<li><p>Transactions are returned with details such as amount, status, date, and type (credit/debit).</p>\n</li>\n<li><p>Make sure to include the required <code>X-API-Key</code> in the header:</p>\n<p>  X-API-Key: {{API_KEY}}</p>\n</li>\n</ul>\n","_postman_id":"52473f67-4bb6-4402-881d-1f84a97e4609"},{"name":"Create customer wallet","id":"1296c154-0786-4669-b2d4-96700e3299f1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"bvn\": \"31034529415\",\r\n    \"first_name\": \"Leo\",\r\n    \"last_name\": \"Doe\",\r\n    \"date_of_birth\": \"20-09-2000\",\r\n    \"phone_number\": \"03013452943\",\r\n    \"email\": \"igbayomarvelous02@gmail.com\",\r\n    \"address\": \"No 12, Rahama Road, Kaduna\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/wallets","description":"<p>Create Wallet</p>\n<p>Endpoint: <code>POST /v1/wallets</code></p>\n<p>Description:<br />This endpoint allows the creation of a new wallet for a customer. You need to provide the customer's personal information, such as BVN, name, date of birth, phone number, email, and address. A wallet will be created and linked to the provided customer details.</p>\n<p>Request Body:<br />The request body must contain the following fields:</p>\n<ul>\n<li><p><code>bvn</code> (string): The customer's Bank Verification Number (BVN) for identity verification.</p>\n</li>\n<li><p><code>first_name</code> (string): The first name of the customer, default is John/Doe for sandbox environment.</p>\n</li>\n<li><p><code>last_name</code> (string): The last name of the customer.</p>\n</li>\n<li><p><code>date_of_birth</code> (string): The customer's date of birth in <code>DD-MM-YYYY(15-01-1990)</code> format.</p>\n</li>\n<li><p><code>phone_number</code> (string): The customer's phone number.</p>\n</li>\n<li><p><code>email</code> (string): The customer's email address.</p>\n</li>\n<li><p><code>address</code> (string): The customer's residential address.</p>\n</li>\n<li><p>On success, returns the details of the created wallet, including:</p>\n<ul>\n<li><p>Wallet ID</p>\n</li>\n<li><p>Customer details (name, email, etc.)</p>\n</li>\n<li><p>Wallet balance (initially 0)</p>\n</li>\n</ul>\n</li>\n<li><p>Error Handling:</p>\n<ul>\n<li><p>If required fields are missing or invalid, a <code>400 Bad Request</code> response is returned.</p>\n</li>\n<li><p>If there are issues with the provided BVN, a <code>422 Unprocessable Entity</code> response is returned.</p>\n</li>\n<li><p>Other errors will return a relevant error message with the corresponding status code.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>Notes:</p>\n<ul>\n<li><p>Ensure that all required fields are included in the request body.</p>\n</li>\n<li><p>Include the <code>X-API-Key</code> header for authentication:</p>\n<p>  X-API-Key: {{API_KEY}}</p>\n</li>\n</ul>\n","urlObject":{"path":["wallets"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"62cd3e94-6e62-4b5b-87d2-501ce2a91f13","name":"Create customer wallet","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"bvn\": \"21616301079\",\r\n    \"first_name\": \"Salu\",\r\n    \"last_name\": \"Belben\",\r\n    \"date_of_birth\": \"12-11-1997\",\r\n    \"phone_number\": \"09063054331\",\r\n    \"email\": \"salu@gmail.com\",\r\n    \"address\": \"No 10, Adewale Ajasin University\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/wallets"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 04 Apr 2025 08:58:31 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Content-Length","value":"555"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=MCBXGzK5pYn8RvLPa1i7lNfemrw0t6ZBkU5j%2BvmqRfyZpk7LbdLYrld5niictW5oOruFE2JrVPOKzh27RMDI8SP9AU47QZyPTKJwnMbci%2F8bzcQzpd%2FTnvpoOAPGyVeO73I%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"92af9aa96e599535-LHR"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=135698&min_rtt=135698&rtt_var=67849&sent=3&recv=5&lost=0&retrans=0&sent_bytes=0&recv_bytes=591&delivery_rate=0&cwnd=249&unsent_bytes=0&cid=0000000000000000&ts=0&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Customer wallet created successfully\",\n    \"data\": {\n        \"id\": \"964aaac3-2db7-4f88-809e-23d8c3667dd2\",\n        \"merchant_id\": \"c0f0faec-5f1a-450f-84c7-20c7a18d1249\",\n        \"environment\": \"SANDBOX\",\n        \"currency\": \"NGN\",\n        \"bank_name\": \"Xpresswallet\",\n        \"bank_code\": \"100040\",\n        \"account_name\": \"Salu Belben\",\n        \"account_number\": \"4401630673\",\n        \"updated_at\": \"2025-04-04T08:58:29.638524Z\",\n        \"created_at\": \"2025-04-04T08:58:29.638524Z\",\n        \"booked_balance\": 0,\n        \"available_balance\": 0,\n        \"status\": \"ACTIVE\",\n        \"updated\": false,\n        \"wallet_type\": \"Customer\",\n        \"user_id\": \"ed382df0-b6f6-4210-bc8b-5dd7d6721caa\"\n    }\n}"}],"_postman_id":"1296c154-0786-4669-b2d4-96700e3299f1"},{"name":"Fetch Customer Wallets","id":"97e5ba3c-fe29-4d24-915d-0f39e6328096","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":"{{BASE_URL}}/wallets?page_number=1&page_size=5","description":"<p>Fetch Wallets (Paginated)</p>\n<p>Endpoint: <code>GET /v1/wallets</code></p>\n<p>Description:<br />This endpoint allows you to fetch a list of customer wallets with pagination. You can specify the page number and limit to control how many wallets are returned per request. This is useful when you need to retrieve a large set of wallets in chunks.</p>\n<p>Query Parameters:</p>\n<ul>\n<li><p><code>page</code> (integer): The page number to retrieve. Defaults to 1 if not provided.</p>\n</li>\n<li><p><code>limit</code> (integer): The number of wallets to return per page. Defaults to 10 if not provided. The maximum allowed value is 100.</p>\n</li>\n</ul>\n<p>Response:</p>\n<ul>\n<li><p>On success, returns a paginated list of wallets with the following details:</p>\n<ul>\n<li><p>Customer information (e.g., name, email, etc.)</p>\n</li>\n<li><p>Wallet balance</p>\n</li>\n<li><p>Pagination details (e.g., current page, total pages, etc.)</p>\n</li>\n</ul>\n</li>\n<li><p>Error Handling:</p>\n<ul>\n<li><p>If the <code>page</code> or <code>limit</code> parameters are invalid (e.g., negative numbers or non-integer values), a <code>400 Bad Request</code> response is returned.</p>\n</li>\n<li><p>Any other errors will return a relevant error message with the corresponding status code.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>Notes:</p>\n<ul>\n<li><p>Ensure that the <code>page</code> and <code>limit</code> query parameters are provided for pagination.</p>\n</li>\n<li><p>Include the <code>X-API-Key</code> header for authentication:</p>\n<p>  X-API-Key: {{API_KEY}}</p>\n</li>\n</ul>\n","urlObject":{"path":["wallets"],"host":["{{BASE_URL}}"],"query":[{"key":"page_number","value":"1"},{"key":"page_size","value":"5"}],"variable":[]}},"response":[{"id":"de5d45a5-4996-4683-aad0-9e2553e3b782","name":"Fetch Customer Wallets","originalRequest":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":"{{BASE_URL}}/wallets"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin"},{"key":"Date","value":"Fri, 04 Apr 2025 11:36:02 GMT"},{"key":"Content-Length","value":"553"},{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Successfully fetched wallets\",\n    \"data\": [\n        {\n            \"id\": \"964aaac3-2db7-4f88-809e-23d8c3667dd2\",\n            \"merchant_id\": \"c0f0faec-5f1a-450f-84c7-20c7a18d1249\",\n            \"environment\": \"SANDBOX\",\n            \"currency\": \"NGN\",\n            \"bank_name\": \"Xpresswallet\",\n            \"bank_code\": \"100040\",\n            \"account_name\": \"Salu Belben\",\n            \"account_number\": \"4401630673\",\n            \"updated_at\": \"2025-04-04T08:58:29.638524Z\",\n            \"created_at\": \"2025-04-04T08:58:29.638524Z\",\n            \"booked_balance\": 100,\n            \"available_balance\": 100,\n            \"status\": \"ACTIVE\",\n            \"updated\": false,\n            \"wallet_type\": \"Customer\",\n            \"user_id\": \"ed382df0-b6f6-4210-bc8b-5dd7d6721caa\"\n        }\n    ]\n}"}],"_postman_id":"97e5ba3c-fe29-4d24-915d-0f39e6328096"},{"name":"Fetch wallet","id":"8ad4adb2-4d24-4f1a-a582-b5bf56cf3fe5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":"{{BASE_URL}}/wallets/:customer_id","description":"<p>Fetch Customer Wallet</p>\n<p>Endpoint: <code>GET /v1/wallets/:customer_id</code></p>\n<p>Description:<br />This endpoint allows you to fetch the details of a customer's wallet using their unique <code>customer_id</code>. The response will contain the wallet information such as the current balance and other associated customer details.</p>\n<p>Parameters:</p>\n<ul>\n<li><code>customer_id</code> (path parameter): The unique identifier of the customer whose wallet is being fetched.</li>\n</ul>\n<p>Response:</p>\n<ul>\n<li><p>On success, returns the wallet details, including:</p>\n<ul>\n<li><p>Customer information (e.g., name, email, etc.)</p>\n</li>\n<li><p>Wallet balance</p>\n</li>\n<li><p>Additional metadata (if available)</p>\n</li>\n</ul>\n</li>\n<li><p>Error Handling:</p>\n<ul>\n<li><p>If the customer wallet does not exist, a <code>404 Not Found</code> response is returned.</p>\n</li>\n<li><p>If the <code>customer_id</code> is invalid, a <code>400 Bad Request</code> response is returned.</p>\n</li>\n<li><p>Any other errors will return a relevant error message with the corresponding status code.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>Notes:</p>\n<ul>\n<li><p>Ensure that the <code>customer_id</code> is passed correctly as a path parameter.</p>\n</li>\n<li><p>Include the <code>X-API-Key</code> header for authentication:</p>\n<p>  X-API-Key: {{API_KEY}}</p>\n</li>\n</ul>\n","urlObject":{"path":["wallets",":customer_id"],"host":["{{BASE_URL}}"],"query":[],"variable":[{"type":"any","value":"7d2efa20-bb75-4425-8342-2a68eba6191a","key":"customer_id"}]}},"response":[{"id":"c5e4b648-37a5-4676-87f2-2a06e031adc6","name":"Fetch wallet","originalRequest":{"method":"GET","header":[{"key":"X-API-Key","value":"ftk_3a2bd23ad130b5167035e92566d515eb_564794739","type":"text"}],"url":{"raw":"{{BASE_URL}}wallets/:customer_id","host":["{{BASE_URL}}wallets"],"path":[":customer_id"],"variable":[{"key":"customer_id","value":"{{X-API-Key}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin"},{"key":"Date","value":"Fri, 04 Apr 2025 11:38:28 GMT"},{"key":"Content-Length","value":"550"},{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Successfully fetched wallet\",\n    \"data\": {\n        \"id\": \"964aaac3-2db7-4f88-809e-23d8c3667dd2\",\n        \"merchant_id\": \"c0f0faec-5f1a-450f-84c7-20c7a18d1249\",\n        \"environment\": \"SANDBOX\",\n        \"currency\": \"NGN\",\n        \"bank_name\": \"Xpresswallet\",\n        \"bank_code\": \"100040\",\n        \"account_name\": \"Salu Belben\",\n        \"account_number\": \"4401630673\",\n        \"updated_at\": \"2025-04-04T08:58:29.638524Z\",\n        \"created_at\": \"2025-04-04T08:58:29.638524Z\",\n        \"booked_balance\": 100,\n        \"available_balance\": 100,\n        \"status\": \"ACTIVE\",\n        \"updated\": false,\n        \"wallet_type\": \"Customer\",\n        \"user_id\": \"ed382df0-b6f6-4210-bc8b-5dd7d6721caa\"\n    }\n}"}],"_postman_id":"8ad4adb2-4d24-4f1a-a582-b5bf56cf3fe5"},{"name":"Credit customer","id":"61c279b0-7348-4d46-9daf-efb228a6a67f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"amount\": 15,\r\n    \"customer_id\": \"5939b1f5-0590-480a-bd4a-d77c19cd0ded\",\r\n    \"reference\": \"38bDlOwxUmrDv3yzP46mZyiEaZWpYVcxMHLd\",\r\n    \"metadata\": {\r\n        \"reason\": \"for completion of task\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/wallets/credit","description":"<p>Credit Customer Wallet</p>\n<p>Endpoint: <code>POST /v1/wallets/credit</code></p>\n<p>Description:<br />This endpoint allows you to credit a customer's wallet with a specified amount. You need to provide the <code>customer_id</code>, <code>amount</code>, and optional <code>reference</code>. If a reference is provided by the client, it will be used; otherwise, a reference will be automatically generated.</p>\n<p>Request Body:<br />The request body must contain the following fields:</p>\n<ul>\n<li><p><code>amount</code> (float): The amount to credit to the customer's wallet.</p>\n</li>\n<li><p><code>customer_id</code> (string): The unique identifier of the customer whose wallet is being credited.</p>\n</li>\n<li><p><code>reference</code> (string, optional): The unique reference for the transaction. If not provided, a reference will be automatically generated for you.</p>\n</li>\n<li><p><code>metadata</code> (object, optional): Additional information regarding the transaction. In this case, a <code>reason</code> field can be included, such as the purpose for the credit.  </p>\n<p>  If no reference is provided, the system will generate one.</p>\n</li>\n</ul>\n<p>Response:</p>\n<ul>\n<li><p>On success, returns a confirmation of the credited amount along with the transaction details:</p>\n<ul>\n<li><p>Amount credited</p>\n</li>\n<li><p>Customer wallet balance (updated)</p>\n</li>\n<li><p>Transaction reference</p>\n</li>\n<li><p>Metadata (if included)</p>\n</li>\n</ul>\n</li>\n<li><p>Error Handling:</p>\n<ul>\n<li><p>If any required fields are missing or invalid, a <code>400 Bad Request</code> response is returned.</p>\n</li>\n<li><p>If the <code>customer_id</code> does not exist, a <code>404 Not Found</code> response is returned.</p>\n</li>\n<li><p>If the amount is negative or invalid, a <code>400 Bad Request</code> response is returned.</p>\n</li>\n<li><p>Any other errors will return a relevant error message with the corresponding status code.</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"path":["wallets","credit"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"e483ee30-abfc-46d2-9cae-8522facdd0b6","name":"Credit customer","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"amount\": 50,\r\n    \"customer_id\": \"ed382df0-b6f6-4210-bc8b-5dd7d6721caa\",\r\n    \"reference\": \"38bDlOwxUmrDv3yzP46mZyiEaZWpYVcxMHLd\",\r\n    \"metadata\": {\r\n        \"reason\": \"for completion of task\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"http://api.finecore.co/v1/wallets/credit"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin","uuid":"363b784c-3f5f-4262-92ee-f28193ce3773"},{"key":"Date","value":"Fri, 04 Apr 2025 11:28:25 GMT","uuid":"d7f924ee-a3a2-4b06-b908-322614d6911c"},{"key":"Content-Length","value":"483","uuid":"3512f701-273e-4d21-a8df-43ea58a30073"},{"key":"Content-Type","value":"application/json","description":"","type":"text","uuid":"09f94923-80f3-464a-b23b-21ae03603031"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Successfully credit customer wallet\",\n    \"data\": {\n        \"id\": \"f92abf64-ca8a-44f5-b633-bdbf1f202546\",\n        \"reference\": \"TXN-1743766099-328df4d3f44bcafc\",\n        \"currency\": \"NGN\",\n        \"environment\": \"SANDBOX\",\n        \"balance_after\": 100,\n        \"balance_before\": 50,\n        \"merchant_id\": \"c0f0faec-5f1a-450f-84c7-20c7a18d1249\",\n        \"metadata\": \"eyJyZWFzb24iOiAiZm9yIGNvbXBsZXRpb24gb2YgdGFzayJ9\",\n        \"amount\": 50,\n        \"status\": \"COMPLETED\",\n        \"destination\": null,\n        \"description\": null,\n        \"type\": \"CREDIT\",\n        \"category\": \"CREDIT_CUSTOMER_WALLET\"\n    }\n}"}],"_postman_id":"61c279b0-7348-4d46-9daf-efb228a6a67f"},{"name":"Fetch transaction by reference","id":"e3c66b1c-ac82-4b6b-a6f4-4b7430e25b48","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":"{{BASE_URL}}/transactions/TXN-1746091774-9a097fcb63592df3","description":"<p>Fetch Transaction by Reference</p>\n<p>Endpoint: <code>GET /v1/transactions/:reference</code></p>\n<p>Description:<br />This endpoint retrieves a specific transaction using its unique transaction reference. The reference is typically a code generated for each transaction to track it in the system.</p>\n<p>Parameters:</p>\n<ul>\n<li><code>reference</code> (path parameter): The unique reference code of the transaction you want to retrieve. This reference is assigned to each transaction at the time of creation.</li>\n</ul>\n<p>Response:</p>\n<ul>\n<li><p>On success, returns the transaction details including:</p>\n<ul>\n<li><p>Amount</p>\n</li>\n<li><p>Status (e.g., successful, failed)</p>\n</li>\n<li><p>Date of transaction</p>\n</li>\n<li><p>Transaction type (credit or debit)</p>\n</li>\n<li><p>Metadata (optional)</p>\n</li>\n</ul>\n</li>\n<li><p>Error Handling:</p>\n<ul>\n<li><p>If the transaction is not found, a <code>404 Not Found</code> response is returned.</p>\n</li>\n<li><p>If an invalid reference is provided, a <code>400 Bad Request</code> response is returned.</p>\n</li>\n<li><p>Any other errors will return a relevant error message with status code.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>Notes:</p>\n<ul>\n<li><p>Ensure that the <code>reference</code> is passed correctly as a path parameter.</p>\n</li>\n<li><p>Include the <code>X-API-Key</code> header for authentication:</p>\n<p>  X-API-Key: {{API_KEY}}</p>\n</li>\n</ul>\n","urlObject":{"path":["transactions","TXN-1746091774-9a097fcb63592df3"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"0e72e936-e51a-4b41-9d70-c8ae8edad036","name":"Fetch transaction by reference","originalRequest":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":"{{BASE_URL}}/transactions/TXN-1745837500-8d8c8442b1ed68e7"},"status":"OK","code":200,"_postman_previewlanguage":"plain","header":[{"key":"Vary","value":"Origin","uuid":"6f594550-6bf8-4e37-af11-eae4e48de43f"},{"key":"Date","value":"Wed, 30 Apr 2025 08:58:15 GMT","uuid":"b56c7651-0e3c-4e20-bac2-bd6c87696333"},{"key":"Content-Length","value":"602","uuid":"d59b9528-e67c-49b4-b1b5-360863ab038f"},{"key":"Content-Type","value":"text/plain; charset=utf-8","uuid":"60f5ca57-66fe-4dee-b820-49d85219dfbf"}],"cookie":[],"responseTime":null,"body":"{\"success\":true,\"message\":\"Successfully fetched transactions\",\"data\":{\"id\":\"4b74a5b6-6419-4621-9bfd-0b20da820748\",\"user_id\":\"38d48e8a-6bb4-4565-b67a-a5dbb51fb755\",\"merchant_id\":\"cf07ad9f-35c1-4036-9f01-9e03f6c2f22b\",\"reference\":\"TXN-1745837500-8d8c8442b1ed68e7\",\"currency\":\"NGN\",\"environment\":\"SANDBOX\",\"from_wallet_id\":\"33218f41-4067-4bb4-b3d4-1bc32f202583\",\"to_wallet_id\":\"d7d68f02-82cb-455d-805f-7613246ab67b\",\"amount\":100,\"status\":\"COMPLETED\",\"balance_after\":100,\"balance_before\":0,\"metadata\":\"eyJyZWFzb24iOiAiZm9yIGNvbXBsZXRpb24gb2YgdGFzayJ9\",\"type\":\"CREDIT\",\"category\":\"CREDIT_CUSTOMER_WALLET\"}}\n"}],"_postman_id":"e3c66b1c-ac82-4b6b-a6f4-4b7430e25b48"},{"name":"Wallet to wallet transfer","event":[{"listen":"prerequest","script":{"id":"a8f8a8e0-6cbf-48da-a54b-0a612e2d6788","exec":["const ref = \"SAAR_\" + pm.variables.replaceIn(\"6554d786-b854-42b8-85ca-90027c7a1fbc\");\r","\r","pm.environment.set(\"REFERENCE\", ref);"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"c50370e5-1ef7-4376-8c03-2593488fc17e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"amount\": 100000,\r\n    \"from_wallet_id\": \"a0459ee4-fe84-4de6-9470-50e729162c23\",\r\n    \"to_wallet_id\": \"698f491c-438b-4e89-9232-e04a1e29a341\",\r\n    \"narration\": \"Customer transfer\",\r\n    \"reference\": \"\",\r\n    \"metadata\": {\r\n        \"reason\": \"for completion of task\"\r\n    }\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/wallets/transfer/bank","urlObject":{"path":["wallets","transfer","bank"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"0cf05b06-6814-4ba6-9f70-464286f029eb","name":"Wallet to wallet transfer","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"amount\": 1000,\r\n    \"from_wallet_id\": \"23f59762-8dea-4eca-908e-4e57df125527\",\r\n    \"to_wallet_id\": \"517aef2c-1a35-4166-b77f-33fc7d2d97a7\",\r\n    \"narration\": \"Customer transfer\",\r\n    \"reference\": \"0briwiiipkpiVcxMLd\",\r\n    \"metadata\": {\r\n        \"reason\": \"for completion of task\"\r\n    }\r\n}\r\n\r\n//23f59762-8dea-4eca-908e-4e57df125527","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/wallets/transfer/bank"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"You have successfully make a transfer\",\n    \"data\": {\n        \"reference\": \"TXN-1743150834-d528cb706bcd4a68\",\n        \"status\": \"PENDING\"\n    }\n}"}],"_postman_id":"c50370e5-1ef7-4376-8c03-2593488fc17e"},{"name":"Upgrade To Tier Two Wallet","id":"9a70cbe8-f8b7-473f-a78d-d96bb3febf5c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"nin\": \"31034529415\",\r\n    \"account_number\": \"4000033892\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/wallets/upgrade-tier-2","description":"<p>Create Wallet</p>\n<p>Endpoint: <code>POST /v1/wallets</code></p>\n<p>Description:<br />This endpoint allows the creation of a new wallet for a customer. You need to provide the customer's personal information, such as BVN, name, date of birth, phone number, email, and address. A wallet will be created and linked to the provided customer details.</p>\n<p>Request Body:<br />The request body must contain the following fields:</p>\n<ul>\n<li><p><code>bvn</code> (string): The customer's Bank Verification Number (BVN) for identity verification.</p>\n</li>\n<li><p><code>first_name</code> (string): The first name of the customer, default is John/Doe for sandbox environment.</p>\n</li>\n<li><p><code>last_name</code> (string): The last name of the customer.</p>\n</li>\n<li><p><code>date_of_birth</code> (string): The customer's date of birth in <code>DD-MM-YYYY(15-01-1990)</code> format.</p>\n</li>\n<li><p><code>phone_number</code> (string): The customer's phone number.</p>\n</li>\n<li><p><code>email</code> (string): The customer's email address.</p>\n</li>\n<li><p><code>address</code> (string): The customer's residential address.</p>\n</li>\n<li><p>On success, returns the details of the created wallet, including:</p>\n<ul>\n<li><p>Wallet ID</p>\n</li>\n<li><p>Customer details (name, email, etc.)</p>\n</li>\n<li><p>Wallet balance (initially 0)</p>\n</li>\n</ul>\n</li>\n<li><p>Error Handling:</p>\n<ul>\n<li><p>If required fields are missing or invalid, a <code>400 Bad Request</code> response is returned.</p>\n</li>\n<li><p>If there are issues with the provided BVN, a <code>422 Unprocessable Entity</code> response is returned.</p>\n</li>\n<li><p>Other errors will return a relevant error message with the corresponding status code.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>Notes:</p>\n<ul>\n<li><p>Ensure that all required fields are included in the request body.</p>\n</li>\n<li><p>Include the <code>X-API-Key</code> header for authentication:</p>\n<p>  X-API-Key: {{API_KEY}}</p>\n</li>\n</ul>\n","urlObject":{"path":["wallets","upgrade-tier-2"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"87282918-72e7-48e9-b2d5-9f30f52d88e1","name":"Create customer wallet","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"bvn\": \"21616301079\",\r\n    \"first_name\": \"Salu\",\r\n    \"last_name\": \"Belben\",\r\n    \"date_of_birth\": \"12-11-1997\",\r\n    \"phone_number\": \"09063054331\",\r\n    \"email\": \"salu@gmail.com\",\r\n    \"address\": \"No 10, Adewale Ajasin University\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/wallets"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 04 Apr 2025 08:58:31 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Content-Length","value":"555"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=MCBXGzK5pYn8RvLPa1i7lNfemrw0t6ZBkU5j%2BvmqRfyZpk7LbdLYrld5niictW5oOruFE2JrVPOKzh27RMDI8SP9AU47QZyPTKJwnMbci%2F8bzcQzpd%2FTnvpoOAPGyVeO73I%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"92af9aa96e599535-LHR"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=135698&min_rtt=135698&rtt_var=67849&sent=3&recv=5&lost=0&retrans=0&sent_bytes=0&recv_bytes=591&delivery_rate=0&cwnd=249&unsent_bytes=0&cid=0000000000000000&ts=0&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Customer wallet created successfully\",\n    \"data\": {\n        \"id\": \"964aaac3-2db7-4f88-809e-23d8c3667dd2\",\n        \"merchant_id\": \"c0f0faec-5f1a-450f-84c7-20c7a18d1249\",\n        \"environment\": \"SANDBOX\",\n        \"currency\": \"NGN\",\n        \"bank_name\": \"Xpresswallet\",\n        \"bank_code\": \"100040\",\n        \"account_name\": \"Salu Belben\",\n        \"account_number\": \"4401630673\",\n        \"updated_at\": \"2025-04-04T08:58:29.638524Z\",\n        \"created_at\": \"2025-04-04T08:58:29.638524Z\",\n        \"booked_balance\": 0,\n        \"available_balance\": 0,\n        \"status\": \"ACTIVE\",\n        \"updated\": false,\n        \"wallet_type\": \"Customer\",\n        \"user_id\": \"ed382df0-b6f6-4210-bc8b-5dd7d6721caa\"\n    }\n}"}],"_postman_id":"9a70cbe8-f8b7-473f-a78d-d96bb3febf5c"},{"name":"Create Tier Two Wallet","id":"0aed3640-0d72-4fdf-87ce-64587e0f0cd5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"bvn\": \"31034529411\",\r\n    \"nin\": \"53230490802\",\r\n    \"first_name\": \"Leo\",\r\n    \"last_name\": \"Doe\",\r\n    \"date_of_birth\": \"15-01-1990\",\r\n    \"phone_number\": \"09013452943\",\r\n    \"email\": \"igbayomarvelous02@gmail.com\",\r\n    \"address\": \"No 12, Rahama Road, Kaduna\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/wallets/tier-2","description":"<p>Create Wallet</p>\n<p>Endpoint: <code>POST /v1/wallets</code></p>\n<p>Description:<br />This endpoint allows the creation of a new wallet for a customer. You need to provide the customer's personal information, such as BVN, name, date of birth, phone number, email, and address. A wallet will be created and linked to the provided customer details.</p>\n<p>Request Body:<br />The request body must contain the following fields:</p>\n<ul>\n<li><p><code>bvn</code> (string): The customer's Bank Verification Number (BVN) for identity verification.</p>\n</li>\n<li><p><code>first_name</code> (string): The first name of the customer, default is John/Doe for sandbox environment.</p>\n</li>\n<li><p><code>last_name</code> (string): The last name of the customer.</p>\n</li>\n<li><p><code>date_of_birth</code> (string): The customer's date of birth in <code>DD-MM-YYYY(15-01-1990)</code> format.</p>\n</li>\n<li><p><code>phone_number</code> (string): The customer's phone number.</p>\n</li>\n<li><p><code>email</code> (string): The customer's email address.</p>\n</li>\n<li><p><code>address</code> (string): The customer's residential address.</p>\n</li>\n<li><p>On success, returns the details of the created wallet, including:</p>\n<ul>\n<li><p>Wallet ID</p>\n</li>\n<li><p>Customer details (name, email, etc.)</p>\n</li>\n<li><p>Wallet balance (initially 0)</p>\n</li>\n</ul>\n</li>\n<li><p>Error Handling:</p>\n<ul>\n<li><p>If required fields are missing or invalid, a <code>400 Bad Request</code> response is returned.</p>\n</li>\n<li><p>If there are issues with the provided BVN, a <code>422 Unprocessable Entity</code> response is returned.</p>\n</li>\n<li><p>Other errors will return a relevant error message with the corresponding status code.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>Notes:</p>\n<ul>\n<li><p>Ensure that all required fields are included in the request body.</p>\n</li>\n<li><p>Include the <code>X-API-Key</code> header for authentication:</p>\n<p>  X-API-Key: {{API_KEY}}</p>\n</li>\n</ul>\n","urlObject":{"path":["wallets","tier-2"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"c62c4ebe-5f35-4b49-bdbf-6faab633d379","name":"Create customer wallet","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"bvn\": \"21616301079\",\r\n    \"first_name\": \"Salu\",\r\n    \"last_name\": \"Belben\",\r\n    \"date_of_birth\": \"12-11-1997\",\r\n    \"phone_number\": \"09063054331\",\r\n    \"email\": \"salu@gmail.com\",\r\n    \"address\": \"No 10, Adewale Ajasin University\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/wallets"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 04 Apr 2025 08:58:31 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Content-Length","value":"555"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=MCBXGzK5pYn8RvLPa1i7lNfemrw0t6ZBkU5j%2BvmqRfyZpk7LbdLYrld5niictW5oOruFE2JrVPOKzh27RMDI8SP9AU47QZyPTKJwnMbci%2F8bzcQzpd%2FTnvpoOAPGyVeO73I%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"92af9aa96e599535-LHR"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=135698&min_rtt=135698&rtt_var=67849&sent=3&recv=5&lost=0&retrans=0&sent_bytes=0&recv_bytes=591&delivery_rate=0&cwnd=249&unsent_bytes=0&cid=0000000000000000&ts=0&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Customer wallet created successfully\",\n    \"data\": {\n        \"id\": \"964aaac3-2db7-4f88-809e-23d8c3667dd2\",\n        \"merchant_id\": \"c0f0faec-5f1a-450f-84c7-20c7a18d1249\",\n        \"environment\": \"SANDBOX\",\n        \"currency\": \"NGN\",\n        \"bank_name\": \"Xpresswallet\",\n        \"bank_code\": \"100040\",\n        \"account_name\": \"Salu Belben\",\n        \"account_number\": \"4401630673\",\n        \"updated_at\": \"2025-04-04T08:58:29.638524Z\",\n        \"created_at\": \"2025-04-04T08:58:29.638524Z\",\n        \"booked_balance\": 0,\n        \"available_balance\": 0,\n        \"status\": \"ACTIVE\",\n        \"updated\": false,\n        \"wallet_type\": \"Customer\",\n        \"user_id\": \"ed382df0-b6f6-4210-bc8b-5dd7d6721caa\"\n    }\n}"}],"_postman_id":"0aed3640-0d72-4fdf-87ce-64587e0f0cd5"},{"name":"Create Tier Three Wallet","id":"1635401a-4c04-4cac-b8e2-f3a938c7ea43","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"utility_bill_image","type":"file","uuid":"eca63794-a1c6-4a29-9d05-a09ddaa2da78","src":"/C:/Users/USER/Downloads/ChatGPT Image Oct 3, 2025, 03_57_11 PM.png"},{"key":"address","value":"49 MODUPE STREET FOLA AGORO, LAGOS","type":"text","uuid":"315dac84-3c18-4f35-ba0f-78cca3c915d6"},{"key":"bvn","value":"00000000000","type":"text"},{"key":"postal_ccode","value":"20832","type":"text"},{"key":"country","value":"Nigeria","type":"text"},{"key":"state","value":"LAGOS","type":"text"},{"key":"nin","value":"00000000000","type":"text"},{"key":"lga","value":"Ikeja","type":"text"},{"key":"first_name","value":"John","type":"text"},{"key":"last_name","value":"Doe","type":"text"},{"key":"city","value":"Lagos","type":"text"},{"key":"phone","value":"1234567895","type":"text"},{"key":"email","value":"gla6@gmail.com","type":"text","uuid":"9fb8c6cc-da35-465a-9c77-4518687716cb"},{"key":"dob","value":"1990-01-15","type":"text","uuid":"aa227579-6636-4b3a-aaa6-fe99854ab21e"}]},"url":"{{BASE_URL}}/wallets/tier-3","urlObject":{"path":["wallets","tier-3"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"3b83b11b-9c13-42ac-b6db-9751d5a5ce0d","name":"Create Tier Three Wallet","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"utility_bill_image","type":"file","uuid":"eca63794-a1c6-4a29-9d05-a09ddaa2da78","src":"/C:/Users/USER/Downloads/Screenshot 2025-08-15 at 11.11.06 AM.png"},{"key":"address","value":"49 MODUPE STREET FOLA AGORO, LAGOS","type":"text","uuid":"315dac84-3c18-4f35-ba0f-78cca3c915d6"},{"key":"bvn","value":"00000000000","type":"text"},{"key":"postal_code","value":"20832","type":"text"},{"key":"country","value":"Nigeria","type":"text"},{"key":"state","value":"LAGOS","type":"text"},{"key":"nin","value":"00000000000","type":"text"},{"key":"lga","value":"Ikeja","type":"text"},{"key":"first_name","value":"John","type":"text"},{"key":"last_name","value":"Doe","type":"text"},{"key":"city","value":"Lagos","type":"text"},{"key":"phone","value":"1234567895","type":"text"},{"key":"email","value":"vee@gmail.com","type":"text","uuid":"9fb8c6cc-da35-465a-9c77-4518687716cb"},{"key":"dob","value":"1990-01-15","type":"text","uuid":"aa227579-6636-4b3a-aaa6-fe99854ab21e"}],"options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/wallets/tier-3"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Security-Policy","value":"default-src 'self';script-src 'self' 'unsafe-inline' https://cdn.example.com;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;img-src 'self' data: https://*.example.com;font-src 'self' https://fonts.gstatic.com;connect-src 'self' https://api.example.com;frame-ancestors 'none';"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Fri, 05 Sep 2025 11:13:13 GMT"},{"key":"Content-Length","value":"602"},{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Wallet created successfully\",\n    \"data\": {\n        \"id\": \"b07ac185-5b9d-44a6-bdca-88c40941e86a\",\n        \"merchant_id\": \"d0c70a28-1023-484e-849f-3fb41cee743b\",\n        \"environment\": \"SANDBOX\",\n        \"currency\": \"NGN\",\n        \"bank_name\": \"FCMB MFB\",\n        \"bank_code\": \"090409\",\n        \"account_name\": \"John Doe\",\n        \"account_number\": null,\n        \"updated_at\": \"2025-09-05T11:13:14.884459Z\",\n        \"created_at\": \"2025-09-05T11:13:14.884459Z\",\n        \"booked_balance\": 0,\n        \"available_balance\": 0,\n        \"status\": \"IN_ACTIVE\",\n        \"updated\": false,\n        \"user_id\": \"03e08fe0-c341-45fb-bfda-60777df710c1\",\n        \"account_type\": \"WALLET\",\n        \"expiry_time\": null,\n        \"account_category\": \"CUSTOMER\",\n        \"tier\": \"TIER_THREE\"\n    }\n}"}],"_postman_id":"1635401a-4c04-4cac-b8e2-f3a938c7ea43"},{"name":"Freeze Wallet","id":"157eeeb1-e2e4-4e74-9c34-3cdcca956cc6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{BEARER_TOKEN}}"}]},"isInherited":false},"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"account_number\": \"4000033892\",\r\n  \"reason\": \"i dont want to bank with you\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/wallets/freeze","urlObject":{"path":["wallets","freeze"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"157eeeb1-e2e4-4e74-9c34-3cdcca956cc6"},{"name":"UnFreeze Wallet","id":"345d48ae-b9c8-4cac-a7f9-83929c0e4e04","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{BEARER_TOKEN}}"}]},"isInherited":false},"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"account_number\": \"4000033892\",\r\n  \"reason\": \"i dont want to bank with you\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/wallets/freeze","urlObject":{"path":["wallets","freeze"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"345d48ae-b9c8-4cac-a7f9-83929c0e4e04"},{"name":"Get Tier Three Wallet Status","id":"55e6b34b-070f-49b7-861e-82cea3b69530","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://baas.dev.getrova.co.uk/wallet/tier-3-status?reference=b07ac185-5b9d-44a6-bdca-88c40941e86a","urlObject":{"protocol":"https","path":["wallet","tier-3-status"],"host":["baas","dev","getrova","co","uk"],"query":[{"key":"reference","value":"b07ac185-5b9d-44a6-bdca-88c40941e86a"}],"variable":[]}},"response":[],"_postman_id":"55e6b34b-070f-49b7-861e-82cea3b69530"},{"name":"Fetch Merchant Collection Account","id":"2f71e3ef-a6d7-4a69-acd1-58cd9f154801","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"urlObject":{"query":[],"variable":[]},"url":""},"response":[{"id":"8e085ca9-db8c-4f43-93f0-b4a295761fd9","name":"Fetch Merchant Wallet Details","originalRequest":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":"{{BASE_URL}}/wallets/merchants"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Fri, 09 Jan 2026 13:17:13 GMT"},{"key":"Content-Length","value":"568"},{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"wallet detail retrieved successfully\",\n    \"data\": {\n        \"id\": \"2bc8d899-c2a2-44d6-7960-55117e4a9462\",\n        \"merchant_id\": \"d0c70a82-1023-484e-849f-3fb41cee743b\",\n        \"environment\": \"SANDBOX\",\n        \"currency\": \"NGN\",\n        \"bank_name\": \"Bank name\",\n        \"bank_code\": \"Bank code\",\n        \"account_name\": \"Account name\",\n        \"account_number\": \"9900981701\",\n        \"updated_at\": \"2025-05-01T19:11:11.020038Z\",\n        \"created_at\": \"2025-05-01T19:11:11.020038Z\",\n        \"booked_balance\": 0,\n        \"available_balance\": 55349,\n        \"status\": \"ACTIVE\",\n        \"updated\": false,\n        \"user_id\": null,\n        \"account_type\": \"WALLET\",\n        \"expiry_time\": null,\n        \"account_category\": \"MERCHANT\"\n    }\n}"}],"_postman_id":"2f71e3ef-a6d7-4a69-acd1-58cd9f154801"},{"name":"New Request","id":"262fc354-9d5f-43a2-83af-d8a02e49b260","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"262fc354-9d5f-43a2-83af-d8a02e49b260"}],"id":"8cf6783c-6f4e-472f-af38-9fce067de1cd","description":"<p>Wallet Endpoints</p>\n<p>This folder contains all endpoints related to wallet operations in the Finecore BAAS platform.</p>\n<p>Available Actions:</p>\n<ul>\n<li><p>Create a new wallet for a user or organization</p>\n</li>\n<li><p>Retrieve wallet details by ID or user reference</p>\n</li>\n<li><p>Check current wallet balance</p>\n</li>\n<li><p>View wallet transaction history</p>\n</li>\n</ul>\n<p>Notes:</p>\n<ul>\n<li><p>Wallets are linked to users or organizations by unique identifiers</p>\n</li>\n<li><p>All balances are returned in the default system currency</p>\n</li>\n<li><p>Transactions include metadata such as type (credit/debit), source, and timestamp</p>\n</li>\n</ul>\n<p>Ensure your requests include the required headers, especially:</p>\n<p>X-API-Key: {{API_KEY}}</p>\n","_postman_id":"8cf6783c-6f4e-472f-af38-9fce067de1cd"},{"name":"Bank Transfer","item":[{"name":"Merchant Transfer to bank account","id":"158e4df1-bd11-4787-b15d-5c3739c4dc14","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"amount\": 6000,\r\n    \"reference\": \"t68bay1ootinzPZiaZpVxMHd\",\r\n    \"sort_code\": \"090405\",\r\n    \"narration\": \"Testing41330324\",\r\n    \"account_number\": \"8034074748\",\r\n    \"account_name\": \"Obagunwa Emmanuel\",\r\n    \"metadata\": {\r\n        \"reason\": \"testing\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/transfers/bank","description":"<p>Merchant Bank Transfer</p>\n<p>Endpoint: <code>POST /v1/transfers/bank</code></p>\n<p>Description:<br />This endpoint allows merchants to initiate a bank transfer by providing the required transfer details. An optional <code>reference</code> can be provided by the merchant. If not provided, a new reference will be generated automatically.</p>\n<p>Request Body:</p>\n<ul>\n<li><p><code>amount</code> (float): The amount to be transferred.</p>\n</li>\n<li><p><code>reference</code> (string, optional): A unique reference for the transaction. If not provided, a new reference will be generated.</p>\n</li>\n<li><p><code>sortCode</code> (string): The sort code of the recipient's bank.</p>\n</li>\n<li><p><code>narration</code> (string): A short description or message about the transfer.</p>\n</li>\n<li><p><code>accountNumber</code> (string): The account number of the recipient.</p>\n</li>\n<li><p><code>accountName</code> (string): The name of the account holder.</p>\n</li>\n<li><p><code>metadata</code> (object, optional): Additional information about the transfer (e.g., reason).</p>\n<ul>\n<li><code>reason</code> (string, optional): The reason for the transfer.</li>\n</ul>\n</li>\n</ul>\n<p>Response:</p>\n<ul>\n<li><p>On success, returns the details of the initiated bank transfer, including the transaction status and the reference used.</p>\n</li>\n<li><p>If the <code>reference</code> is provided and a transaction already exists with that reference, an error will be returned.</p>\n</li>\n</ul>\n<p>Error Handling:</p>\n<ul>\n<li><p>If the provided <code>reference</code> already exists, a <code>409 Conflict</code> error will be returned.</p>\n</li>\n<li><p>If any required parameter is missing or invalid, a <code>400 Bad Request</code> error will be returned.</p>\n</li>\n</ul>\n<p>Notes:</p>\n<ul>\n<li><p>Ensure that the <code>X-API-Key</code> header is included for authentication:</p>\n<p>  X-API-Key: {{API_KEY}}</p>\n</li>\n</ul>\n","urlObject":{"path":["transfers","bank"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"1cc308bf-922c-4fc9-945b-c8cee640a4cc","name":"Merchant Transfer to bank account","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"},{"key":"","value":"","type":"text","disabled":true}],"body":{"mode":"raw","raw":"{\r\n    \"amount\": 100,\r\n    \"sortCode\": \"000013\",\r\n    \"narration\": \"Testing\",\r\n    \"accountNumber\": \"1700263070\",\r\n    \"accountName\": \"Obagunwa Emmanuel\",\r\n    \"metadata\": {\r\n        \"reason\": \"testing\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/transfers/bank"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 04 Apr 2025 11:40:25 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Content-Length","value":"949"},{"key":"Connection","value":"keep-alive"},{"key":"Cf-Ray","value":"92b087d1eca7a49a-LHR"},{"key":"Server","value":"cloudflare"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=tuOOWmA9ty4BK9eK6%2FrLCY9PrNXwFi2Jha8xJOaW9KnePxhy2qZnEtbEKgZ58x5uycwalqeySk2tF03wOlav0aPOmTuohTJFqdstOrHC8BHj56G7FEmTj1idE1ZYEL%2BjiY8%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"Nel","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=169673&min_rtt=142809&rtt_var=64283&sent=5&recv=6&lost=0&retrans=0&sent_bytes=2811&recv_bytes=913&delivery_rate=29407&cwnd=252&unsent_bytes=0&cid=01cf9e0f6c0a1fa3&ts=3270&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"You have successfully make a transfer\",\n    \"data\": {\n        \"id\": \"c4726646-5719-411f-a621-68e8d019c42f\",\n        \"reference\": \"TXN-1743766824-92b964421e1f5ba1\",\n        \"currency\": \"NGN\",\n        \"environment\": \"SANDBOX\",\n        \"balance_after\": 1000050,\n        \"balance_before\": 1000150,\n        \"merchant_id\": \"c0f0faec-5f1a-450f-84c7-20c7a18d1249\",\n        \"metadata\": \"eyJ2YXQiOiAwLjc1LCAiYW1vdW50IjogMTAwLCAiY2hhcmdlcyI6IDEwLCAiYmFua05hbWUiOiAiR1RCQU5LIFBMQyIsICJzb3J0Q29kZSI6ICIwMDAwMTMiLCAibmFycmF0aW9uIjogIlRlc3RpbmciLCAiYWNjb3VudE5hbWUiOiAiT2JhZ3Vud2EgRW1tYW51ZWwiLCAidG90YWxBbW91bnQiOiAxMTAuNzUsICJhY2NvdW50TnVtYmVyIjogIjE3MDAyNjMwNzAiLCAid2FsbGV0QWNjb3VudE5hbWUiOiAiRmluZWNvcmUgVGVjaG5vbG9neSBMaW1pdGVkIiwgImFkZGl0aW9uYWxNZXRhZGF0YSI6IHsicmVhc29uIjogInRlc3RpbmcifX0=\",\n        \"amount\": 100,\n        \"status\": \"success\",\n        \"destination\": \"1700263070/000013\",\n        \"description\": \"Transfer of NGN100.00 to Obagunwa Emmanuel (1700263070/GTBANK PLC)/100040250404114025015956728192\",\n        \"type\": \"DEBIT\",\n        \"category\": \"BANK_TRANSFER\"\n    }\n}"}],"_postman_id":"158e4df1-bd11-4787-b15d-5c3739c4dc14"},{"name":"Bank List","id":"df80688e-b0ae-4fa0-a3f1-e907b069a222","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":"{{BASE_URL}}/transfers/banks","description":"<p>List of Banks</p>\n<p>Endpoint: <code>GET /v1/transfers/banks</code></p>\n<p>Description:<br />This endpoint retrieves a list of banks available for transfers. The list contains details about each bank, including the bank name, code, and other relevant information. This can be used to view all supported banks for transfer operations.</p>\n<p>Response:</p>\n<ul>\n<li><p>On success, returns a list of banks, including their details such as bank name, code, and any other relevant information.</p>\n</li>\n<li><p>If no banks are available, an empty list is returned.</p>\n</li>\n</ul>\n<p>Error Handling:</p>\n<ul>\n<li>If there is an issue fetching the list of banks, a <code>500 Internal Server Error</code> will be returned.</li>\n</ul>\n<p>Notes:</p>\n<ul>\n<li><p>Ensure that the <code>X-API-Key</code> header is included for authentication:</p>\n<p>  X-API-Key: {{API_KEY}}</p>\n</li>\n</ul>\n","urlObject":{"path":["transfers","banks"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"c2c577c5-edbc-4424-86ac-0203ae7ab0b9","name":"Success Response","originalRequest":{"method":"GET","header":[],"url":"{{BASE_URL}}/transfers/banks"},"status":"OK","code":200,"_postman_previewlanguage":"plain","header":[{"key":"Vary","value":"Origin"},{"key":"Date","value":"Thu, 13 Mar 2025 12:39:15 GMT"},{"key":"Content-Type","value":"text/plain; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\"success\":true,\"message\":\"Successfully fetch list of banks\",\"data\":[{\"code\":\"110005\",\"name\":\"3LINE CARD MANAGEMENT LIMITED\"},{\"code\":\"110072\",\"name\":\"78 FINANCE COMPANY LIMITED\"},{\"code\":\"090629\",\"name\":\"9JAPAY MICROFINANCE BANK\"},{\"code\":\"120001\",\"name\":\"9 PAYMENT SERVICE BANK\"},{\"code\":\"050005\",\"name\":\"AAA FINANCE AND INVESTMENT COMPANY LIMITED\"},{\"code\":\"070010\",\"name\":\"ABBEY MORTGAGE BANK\"},{\"code\":\"090270\",\"name\":\"AB MICROFINANCE BANK\"},{\"code\":\"090260\",\"name\":\"ABOVE ONLY MICROFINANCE BANK\"},{\"code\":\"288037\",\"name\":\"ABSA BANK GHANA LIMITED\"},{\"code\":\"090640\",\"name\":\"ABSU MICROFINANCE BANK\"},{\"code\":\"090424\",\"name\":\"ABUCOOP MFB\"},{\"code\":\"090545\",\"name\":\"ABULESORO MICROFINANCE BANK\"},{\"code\":\"090197\",\"name\":\"ABU MICROFINANCE BANK\"},{\"code\":\"090202\",\"name\":\"ACCELEREX NETWORK LIMITED\"},{\"code\":\"000014\",\"name\":\"ACCESS BANK\"},{\"code\":\"000005\",\"name\":\"ACCESS(DIAMOND) BANK\"},{\"code\":\"100013\",\"name\":\"ACCESS MONEY\"},{\"code\":\"100052\",\"name\":\"ACCESS YELLO \\u0026 BETA\"},{\"code\":\"090134\",\"name\":\"ACCION MICROFINANCE BANK\"},{\"code\":\"090483\",\"name\":\"ADA MFB\"},{\"code\":\"090160\",\"name\":\"ADDOSSER MICROFINANCE BANK\"},{\"code\":\"090268\",\"name\":\"ADEYEMI COLLEGE STAFF MICROFINANCE BANK\"},{\"code\":\"090155\",\"name\":\"ADVANS LA FAYETTE  MICROFINANCE BANK\"},{\"code\":\"090614\",\"name\":\"AELLA MICROFINANCE BANK\"},{\"code\":\"090292\",\"name\":\"AFEKHAFE MICROFINANCE BANK\"},{\"code\":\"090518\",\"name\":\"AFEMAI MFB\"},{\"code\":\"100028\",\"name\":\"AG MORTGAGE BANK\"},{\"code\":\"090371\",\"name\":\"AGOSASA MICROFINANCE BANK\"},{\"code\":\"090698\",\"name\":\"AKALABO MFB\"},{\"code\":\"090608\",\"name\":\"AKPO MICROFINANCE BANK\"},{\"code\":\"090561\",\"name\":\"AKUCHUKWU MICROFINANCE BANK\"},{\"code\":\"090531\",\"name\":\"AKU MICROFINANCE BANK\"},{\"code\":\"090133\",\"name\":\"AL-BARAKAH MICROFINANCE BANK\"},{\"code\":\"090259\",\"name\":\"ALEKUN MICROFINANCE BANK\"},{\"code\":\"090297\",\"name\":\"ALERT MICROFINANCE BANK\"},{\"code\":\"090277\",\"name\":\"AL-HAYAT MICROFINANCE BANK\"},{\"code\":\"090131\",\"name\":\"ALLWORKERS MICROFINANCE BANK\"},{\"code\":\"090548\",\"name\":\"ALLY MICROFINANCE BANK\"},{\"code\":\"090169\",\"name\":\"ALPHA KAPITAL MICROFINANCE BANK\"},{\"code\":\"000037\",\"name\":\"ALTERNATIVE BANK LIMITED\"},{\"code\":\"090394\",\"name\":\"AMAC MICROFINANCE BANK\"},{\"code\":\"090180\",\"name\":\"AMJU UNIQUE MICROFINANCE BANK\"},{\"code\":\"090116\",\"name\":\"AMML MICROFINANCE BANK\"},{\"code\":\"090610\",\"name\":\"AMOYE MICROFINANCE BANK\"},{\"code\":\"090645\",\"name\":\"AMUCHA MICROFINANCE BANK\"},{\"code\":\"090143\",\"name\":\"APEKS MICROFINANCE BANK\"},{\"code\":\"090737\",\"name\":\"APEX TRUST MFB\"},{\"code\":\"090376\",\"name\":\"APPLE MICROFINANCE BANK\"},{\"code\":\"090282\",\"name\":\"ARISE MICROFINANCE BANK\"},{\"code\":\"090001\",\"name\":\"ASO SAVINGS\"},{\"code\":\"090544\",\"name\":\"ASPIRE MICROFINANCE BANK\"},{\"code\":\"090287\",\"name\":\"ASSET MATRIX MICROFINANCE BANK\"},{\"code\":\"090473\",\"name\":\"ASSETS MICROFINANCE BANK\"},{\"code\":\"090172\",\"name\":\"ASTRAPOLARIS MICROFINANCE BANK\"},{\"code\":\"090264\",\"name\":\"AUCHI MICROFINANCE BANK\"},{\"code\":\"090633\",\"name\":\"AWACASH MICROFINANCE BANK\"},{\"code\":\"090729\",\"name\":\"BABCOCK MFB\"},{\"code\":\"090625\",\"name\":\"BABURA MICROFINANCE BANK\"},{\"code\":\"090188\",\"name\":\"BAINES CREDIT MICROFINANCE BANK\"},{\"code\":\"090563\",\"name\":\"BALERA MICROFINANCE BANK\"},{\"code\":\"090326\",\"name\":\"BALOGUN GAMBARI MICROFINANCE BANK\"},{\"code\":\"090651\",\"name\":\"BAM MICROFINANCE BANK\"},{\"code\":\"090581\",\"name\":\"BANC CORP MICROFINANCE BANK\"},{\"code\":\"090275\",\"name\":\"BANKIT MICROFINANCE BANK\"},{\"code\":\"090529\",\"name\":\"BANKLY(AMPERSAND) MICROFINANCE BANK\"},{\"code\":\"288028\",\"name\":\"BANK OF AFRICA GHANA LTD\"},{\"code\":\"288001\",\"name\":\"BANK OF GHANA\"},{\"code\":\"694001\",\"name\":\"BANK OF SIERRA LEONE\"},{\"code\":\"324001\",\"name\":\"BANQUE CENTRALE DE LA RÉPUBLIQUE DE GUINÉE\"},{\"code\":\"090136\",\"name\":\"BAOBAB MICROFINANCE BANK\"},{\"code\":\"090316\",\"name\":\"BAYERO UNIVERSITY MICROFINANCE BANK\"},{\"code\":\"090127\",\"name\":\"BC KASH MICROFINANCE BANK\"},{\"code\":\"090672\",\"name\":\"BELLBANK MFB\"},{\"code\":\"090618\",\"name\":\"BERACHAH MICROFINANCE BANK\"},{\"code\":\"090615\",\"name\":\"BESTSTAR MICROFINANCE BANK\"},{\"code\":\"090683\",\"name\":\"BETHEL MICROFINANCE BANK\"},{\"code\":\"090336\",\"name\":\"BIPC MICROFINANCE BANK\"},{\"code\":\"090555\",\"name\":\"BISHOPGATE MICROFINANCE BANK\"},{\"code\":\"270014\",\"name\":\"BLOOM BANK AFRICA GAMBIA LIMITED\"},{\"code\":\"090431\",\"name\":\"BLUEWHALES MICROFINANCE BANK\"},{\"code\":\"090117\",\"name\":\"BOCTRUST MICROFINANCE BANK LIMITED\"},{\"code\":\"090703\",\"name\":\"BOKKOS MICROFINANCE BANK\"},{\"code\":\"090395\",\"name\":\"BORGU  MICROFINANCE BANK\"},{\"code\":\"090176\",\"name\":\"BOSAK MICROFINANCE BANK\"},{\"code\":\"090148\",\"name\":\"BOWEN MICROFINANCE BANK\"},{\"code\":\"050006\",\"name\":\"BRANCH INTERNATIONAL FINANCIAL SERVICES\"},{\"code\":\"070015\",\"name\":\"BRENT MORTGAGE BANK\"},{\"code\":\"090293\",\"name\":\"BRETHREN MICROFINANCE BANK\"},{\"code\":\"090393\",\"name\":\"BRIDGEWAY MICROFINANACE BANK\"},{\"code\":\"090308\",\"name\":\"BRIGHTWAY MICROFINANCE BANK\"},{\"code\":\"090636\",\"name\":\"BRIYTH-COVENANT MICROFINANCE BANK\"},{\"code\":\"090568\",\"name\":\"BROADVIEW MICROFINANCE BANK\"},{\"code\":\"090613\",\"name\":\"BUILD MICROFINANCE BANK\"},{\"code\":\"090661\",\"name\":\"BUNDI MICROFINANCE BANK\"},{\"code\":\"090655\",\"name\":\"BUNKURE MICROFINANCE BANK\"},{\"code\":\"090406\",\"name\":\"BUSINESS SUPPORT MICROFINANCE BANK\"},{\"code\":\"090682\",\"name\":\"BUYPOWER MICROFINANACE BANK\"},{\"code\":\"288036\",\"name\":\"CALBANK PLC\"},{\"code\":\"090647\",\"name\":\"CANAAN MICROFINANCE BANK\"},{\"code\":\"090445\",\"name\":\"CAPSTONE MICROFINANCE BANK\"},{\"code\":\"100026\",\"name\":\"CARBON\"},{\"code\":\"050017\",\"name\":\"CARDINALSTONE FINANCE\"},{\"code\":\"090634\",\"name\":\"CASHBRIDGE MICROFINANCE BANK\"},{\"code\":\"090360\",\"name\":\"CASHCONNECT MICROFINANCE BANK\"},{\"code\":\"090649\",\"name\":\"CASHRITE MICROFINANCE BANK\"},{\"code\":\"090498\",\"name\":\"CATLAND MICROFINANCE BANK\"},{\"code\":\"000028\",\"name\":\"CBN\"},{\"code\":\"090562\",\"name\":\"CEDAR MICROFINANCE BANK\"},{\"code\":\"100005\",\"name\":\"CELLULANT\"},{\"code\":\"090154\",\"name\":\"CEMCS MICROFINANCE BANK\"},{\"code\":\"270013\",\"name\":\"CENTRAL BANK OF GAMBIA\"},{\"code\":\"430049\",\"name\":\"CENTRAL BANK OF LIBERIA\"},{\"code\":\"090397\",\"name\":\"CHANELLE MICROFINANCE BANK\"},{\"code\":\"090141\",\"name\":\"CHIKUM MICROFINANCE BANK\"},{\"code\":\"000009\",\"name\":\"CITI BANK\"},{\"code\":\"090144\",\"name\":\"CIT MICROFINANCE BANK\"},{\"code\":\"070027\",\"name\":\"CITYCODE MORTGAGE BANK\"},{\"code\":\"090482\",\"name\":\"CLEARPAY MICROFINANCE BANK\"},{\"code\":\"090374\",\"name\":\"COASTLINE MICROFINANCE BANK\"},{\"code\":\"090530\",\"name\":\"CONFIDENCE MICROFINANCE BANK\"},{\"code\":\"090553\",\"name\":\"CONSISTENT TRUST MICROFINANCE BANK\"},{\"code\":\"288027\",\"name\":\"CONSOLIDATED BANK GHANA LIMITED\"},{\"code\":\"090130\",\"name\":\"CONSUMER MICROFINANCE BANK\"},{\"code\":\"090717\",\"name\":\"COOPFUND MFB\"},{\"code\":\"070021\",\"name\":\"COOP MORTGAGE BANK\"},{\"code\":\"090365\",\"name\":\"CORESTEP MICROFINANCE BANK\"},{\"code\":\"060001\",\"name\":\"CORONATION MERCHANT BANK\"},{\"code\":\"050001\",\"name\":\"COUNTY FINANCE LIMITED\"},{\"code\":\"070006\",\"name\":\"COVENANT MICROFINANCE BANK\"},{\"code\":\"090159\",\"name\":\"CREDIT AFRIQUE MICROFINANCE BANK\"},{\"code\":\"110049\",\"name\":\"CREDIT DIRECT LIMITED\"},{\"code\":\"090611\",\"name\":\"CREDITVILLE MICROFINANCE BANK\"},{\"code\":\"090526\",\"name\":\"CRESCENT MICROFINANCE BANK\"},{\"code\":\"090560\",\"name\":\"CRUST MICROFINANCE BANK\"},{\"code\":\"050029\",\"name\":\"CRYSTAL FINANCE COMPANY LIMITED\"},{\"code\":\"090686\",\"name\":\"CSD MICROFINANCE BANK\"},{\"code\":\"110014\",\"name\":\"CYBERSPACE LIMITED\"},{\"code\":\"090705\",\"name\":\"DAILY TRUST MFB\"},{\"code\":\"090596\",\"name\":\"DAL MICROFINANCE BANK\"},{\"code\":\"090673\",\"name\":\"DAVENPORT MICROFINANCE BANK\"},{\"code\":\"090391\",\"name\":\"DAVODANI  MICROFINANCE BANK\"},{\"code\":\"090167\",\"name\":\"DAYLIGHT MICROFINANCE BANK\"},{\"code\":\"090723\",\"name\":\"DESTINY MFB\"},{\"code\":\"090745\",\"name\":\"DIGITVANT MFB\"},{\"code\":\"050013\",\"name\":\"DIGNITY FINANCE AND INVESTMENT LIMITED\"},{\"code\":\"090643\",\"name\":\"DIOBU MICROFINANCE BANK\"},{\"code\":\"090470\",\"name\":\"DOT MICROFINANCE BANK\"},{\"code\":\"090721\",\"name\":\"DW MFB\"},{\"code\":\"090294\",\"name\":\"EAGLE FLIGHT MICROFINANCE BANK\"},{\"code\":\"090674\",\"name\":\"EARNWELL MICROFINANCE BANK\"},{\"code\":\"100021\",\"name\":\"EARTHOLEUM\"},{\"code\":\"090156\",\"name\":\"E-BARCS MICROFINANCE BANK\"},{\"code\":\"000010\",\"name\":\"ECOBANK\"},{\"code\":\"430004\",\"name\":\"ECOBANK LIBERIA LIMITED\"},{\"code\":\"100008\",\"name\":\"ECOBANK XPRESS ACCOUNT\"},{\"code\":\"100030\",\"name\":\"ECOMOBILE\"},{\"code\":\"090310\",\"name\":\"EDFIN MICROFINANCE BANK\"},{\"code\":\"050016\",\"name\":\"E-FINANCE\"},{\"code\":\"090694\",\"name\":\"EJINDU MICROFINANCE BANK\"},{\"code\":\"090097\",\"name\":\"EKONDO MICROFINANCE BANK\"},{\"code\":\"090389\",\"name\":\"EK-RELIABLE MICROFINANCE BANK\"},{\"code\":\"090712\",\"name\":\"EMAAR MFB\"},{\"code\":\"090273\",\"name\":\"EMERALD MICROFINANCE BANK\"},{\"code\":\"090114\",\"name\":\"EMPIRE TRUST MICROFINANCE BANK\"},{\"code\":\"050012\",\"name\":\"ENCO FINANCE COMPANY LTD\"},{\"code\":\"000019\",\"name\":\"ENTERPRISE BANK\"},{\"code\":\"090656\",\"name\":\"ENTITY MICROFINANCE BANK\"},{\"code\":\"090189\",\"name\":\"ESAN MICROFINANCE BANK\"},{\"code\":\"090166\",\"name\":\"ESO-E MICROFINANCE BANK\"},{\"code\":\"100006\",\"name\":\"ETRANZACT\"},{\"code\":\"090304\",\"name\":\"EVANGEL MICROFINANCE BANK\"},{\"code\":\"090332\",\"name\":\"EVERGREEN MICROFINANCE BANK\"},{\"code\":\"090572\",\"name\":\"EWT MICROFINANCE BANK\"},{\"code\":\"090541\",\"name\":\"EXCELLENT MICROFINANCE BANK\"},{\"code\":\"090678\",\"name\":\"EXCEL MICROFINANCE BANK\"},{\"code\":\"090328\",\"name\":\"EYOWO\"},{\"code\":\"090551\",\"name\":\"FAIRMONEY\"},{\"code\":\"050009\",\"name\":\"FAST CREDIT LIMITED\"},{\"code\":\"090179\",\"name\":\"FAST MICROFINANCE BANK\"},{\"code\":\"288032\",\"name\":\"FBNBANK GHANA LIMITED\"},{\"code\":\"060002\",\"name\":\"FBNQUEST MERCHANT BANK\"},{\"code\":\"090409\",\"name\":\"FCMB MFB\"},{\"code\":\"100031\",\"name\":\"FCMB MOBILE\"},{\"code\":\"090290\",\"name\":\"FCT MICROFINANCE BANK\"},{\"code\":\"090398\",\"name\":\"FEDERAL POLYTECHNIC NEKEDE MICROFINANCE BANK\"},{\"code\":\"090318\",\"name\":\"FEDERAL UNIVERSITY DUTSE MICROFINANCE BANK\"},{\"code\":\"090298\",\"name\":\"FEDPOLY NASARAWA MICROFINANCE BANK\"},{\"code\":\"100001\",\"name\":\"FETS\"},{\"code\":\"050002\",\"name\":\"FEWCHORE FINANCE COMPANY LIMITED\"},{\"code\":\"090153\",\"name\":\"FFS MICROFINANCE BANK\"},{\"code\":\"000007\",\"name\":\"FIDELITY BANK\"},{\"code\":\"100019\",\"name\":\"FIDELITY MOBILE\"},{\"code\":\"090126\",\"name\":\"FIDFUND MICROFINANCE BANK\"},{\"code\":\"090111\",\"name\":\"FINATRUST MICROFINANCE BANK\"},{\"code\":\"090400\",\"name\":\"FINCA MICROFINANCE BANK\"},{\"code\":\"090366\",\"name\":\"FIRMUS MICROFINANCE BANK\"},{\"code\":\"110004\",\"name\":\"FIRST APPLE LIMITED\"},{\"code\":\"288035\",\"name\":\"FIRST ATLANTIC BANK GHANA LIMITED\"},{\"code\":\"000016\",\"name\":\"FIRST BANK OF NIGERIA\"},{\"code\":\"000003\",\"name\":\"FIRST CITY MONUMENT BANK\"},{\"code\":\"070014\",\"name\":\"FIRST GENERATION MORTGAGE BANK\"},{\"code\":\"100014\",\"name\":\"FIRSTMONIE WALLET\"},{\"code\":\"090285\",\"name\":\"FIRST OPTION MICROFINANCE BANK\"},{\"code\":\"090164\",\"name\":\"FIRST ROYAL MICROFINANCE BANK\"},{\"code\":\"090107\",\"name\":\"FIRST TRUST MORTGAGE BANK PLC\"},{\"code\":\"110002\",\"name\":\"FLUTTERWAVE TECHNOLOGY SOLUTIONS LIMITED\"},{\"code\":\"090709\",\"name\":\"FOCUS MFB\"},{\"code\":\"090521\",\"name\":\"FORESIGHT MICROFINANCE BANK\"},{\"code\":\"070002\",\"name\":\"FORTIS MICROFINANCE BANK\"},{\"code\":\"100016\",\"name\":\"FORTIS MOBILE\"},{\"code\":\"090486\",\"name\":\"FORTRESS MICROFINANCE BANK\"},{\"code\":\"400001\",\"name\":\"FSDH\"},{\"code\":\"090145\",\"name\":\"FULLRANGE MICROFINANCE BANK\"},{\"code\":\"090158\",\"name\":\"FUTO MICROFINANCE BANK\"},{\"code\":\"090582\",\"name\":\"GABASAWA MICROFINANCE BANK\"},{\"code\":\"090591\",\"name\":\"GABSYN MICROFINANCE BANK\"},{\"code\":\"090691\",\"name\":\"GARUN MALLAM MFB\"},{\"code\":\"090168\",\"name\":\"GASHUA MICROFINANCE BANK\"},{\"code\":\"070009\",\"name\":\"GATEWAY MORTGAGE BANK\"},{\"code\":\"288025\",\"name\":\"GCB BANK PLC\"},{\"code\":\"050026\",\"name\":\"GDL FINANCE\"},{\"code\":\"090621\",\"name\":\"GIDAUNIYAR ALHERI MICROFINANCE BANK\"},{\"code\":\"090186\",\"name\":\"GIREI MICROFINANACE BANK\"},{\"code\":\"090639\",\"name\":\"GLOBAL INITIATIVE MICROFINANCE BANK\"},{\"code\":\"000027\",\"name\":\"GLOBUS BANK\"},{\"code\":\"090278\",\"name\":\"GLORY MICROFINANCE BANK\"},{\"code\":\"090408\",\"name\":\"GMB MICROFINANCE BANK\"},{\"code\":\"090586\",\"name\":\"GOMBE MICROFINANCE BANK LIMITED\"},{\"code\":\"090664\",\"name\":\"GOOD SHEPHERD MICROFINANCE BANK\"},{\"code\":\"090687\",\"name\":\"GOSIFECHUKWU MICROFINANCE BANK\"},{\"code\":\"090122\",\"name\":\"GOWANS MICROFINANCE BANK\"},{\"code\":\"090335\",\"name\":\"GRANTS MICROFINANCE BANK\"},{\"code\":\"090599\",\"name\":\"GREENACRES MICROFINANCE BANK LTD\"},{\"code\":\"090178\",\"name\":\"GREENBANK MICROFINANCE BANK\"},{\"code\":\"090550\",\"name\":\"GREEN ENERGY MICROFINANCE BANK\"},{\"code\":\"090269\",\"name\":\"GREENVILLE MICROFINANCE BANK\"},{\"code\":\"060004\",\"name\":\"GREENWICH MERCHANT BANK\"},{\"code\":\"090195\",\"name\":\"GROOMING MICROFINANCE BANK\"},{\"code\":\"000013\",\"name\":\"GTBANK PLC\"},{\"code\":\"090385\",\"name\":\"GTI MICROFINANCE BANK\"},{\"code\":\"100009\",\"name\":\"GT MOBILE\"},{\"code\":\"288031\",\"name\":\"GUARANTY TRUST BANK (GHANA) LTD\"},{\"code\":\"090500\",\"name\":\"GWONG MICROFINANCE BANK\"},{\"code\":\"090147\",\"name\":\"HACKMAN MICROFINANCE BANK\"},{\"code\":\"070017\",\"name\":\"HAGGAI MORTGAGE BANK LIMITED\"},{\"code\":\"090291\",\"name\":\"HALALCREDIT MICROFINANCE BANK\"},{\"code\":\"090539\",\"name\":\"HALO MICROFINANCE BANK\"},{\"code\":\"090121\",\"name\":\"HASAL MICROFINANCE BANK\"},{\"code\":\"090363\",\"name\":\"HEADWAY MICROFINANCE BANK\"},{\"code\":\"100017\",\"name\":\"HEDONMARK\"},{\"code\":\"000020\",\"name\":\"HERITAGE BANK\"},{\"code\":\"0070024\",\"name\":\"HOMEBASE MORTGAGE BANK\"},{\"code\":\"120002\",\"name\":\"HOPEPSB\"},{\"code\":\"090115\",\"name\":\"IBANK MICROFINANCE BANK\"},{\"code\":\"090697\",\"name\":\"IBBU MFB\"},{\"code\":\"090118\",\"name\":\"IBILE MICROFINANCE BANK\"},{\"code\":\"090532\",\"name\":\"IBOLO MICROFINANCE BANK\"},{\"code\":\"090519\",\"name\":\"IBOM FADAMA MICROFINANCE BANK\"},{\"code\":\"090520\",\"name\":\"IC GLOBAL MICROFINANCE BANK\"},{\"code\":\"090725\",\"name\":\"IHIALA MFB\"},{\"code\":\"090730\",\"name\":\"IJARE MFB\"},{\"code\":\"090546\",\"name\":\"IJEBU-IFE MICROFINANCE BANK\"},{\"code\":\"090324\",\"name\":\"IKENNE MICROFINANCE BANK\"},{\"code\":\"090279\",\"name\":\"IKIRE MICROFINANCE BANK\"},{\"code\":\"090681\",\"name\":\"IKOYI ILE MICROFINANCEBANK\"},{\"code\":\"090571\",\"name\":\"ILARO POLY MICROFINANCE BANK\"},{\"code\":\"090710\",\"name\":\"ILE-OLUJI MFB\"},{\"code\":\"090370\",\"name\":\"ILISAN MICROFINANCE BANK\"},{\"code\":\"090430\",\"name\":\"ILORA MICROFINANCE BANK\"},{\"code\":\"090258\",\"name\":\"IMO STATE MICROFINANCE BANK\"},{\"code\":\"100024\",\"name\":\"IMPERIAL HOMES MORTGAGE BANK\"},{\"code\":\"090670\",\"name\":\"IMSU MICROFINANCE BANK\"},{\"code\":\"090157\",\"name\":\"INFINITY MICROFINANCE BANK\"},{\"code\":\"070016\",\"name\":\"INFINITY TRUST MORTGAGE BANK\"},{\"code\":\"100029\",\"name\":\"INNOVECTIVES KESH\"},{\"code\":\"100027\",\"name\":\"INTELLIFIN\"},{\"code\":\"090386\",\"name\":\"INTERLAND MICROFINANCE BANK\"},{\"code\":\"423003\",\"name\":\"INTERNATIONAL BANK (LIBERIA) LIMITED\"},{\"code\":\"110003\",\"name\":\"INTERSWITCH LIMITED\"},{\"code\":\"090149\",\"name\":\"IRL MICROFINANCE BANK\"},{\"code\":\"090377\",\"name\":\"ISALEOYO MICROFINANCE BANK\"},{\"code\":\"090584\",\"name\":\"ISLAND MICROFINANCE BANK\"},{\"code\":\"090701\",\"name\":\"ISUA MICROFINANCE BANK\"},{\"code\":\"090543\",\"name\":\"IWOAMA MICROFINANCE BANK\"},{\"code\":\"090337\",\"name\":\"IYE OKIN MICROFINANCE BANK LTD\"},{\"code\":\"000006\",\"name\":\"JAIZ BANK\"},{\"code\":\"070029\",\"name\":\"JIGAWA SAVINGS AND LOANS\"},{\"code\":\"090003\",\"name\":\"JUBILEE LIFE\"},{\"code\":\"090320\",\"name\":\"KADPOLY MICROFINANCE BANK\"},{\"code\":\"090669\",\"name\":\"KADUPE MICROFINANCE BANK\"},{\"code\":\"090684\",\"name\":\"KATAGUM MFB\"},{\"code\":\"090667\",\"name\":\"KAYI MICROFINANCE BANK\"},{\"code\":\"090554\",\"name\":\"KAYVEE MICROFINANCE BANK\"},{\"code\":\"090191\",\"name\":\"KCMB MICROFINANCE BANK\"},{\"code\":\"090549\",\"name\":\"KC MICROFINANCE BANK\"},{\"code\":\"100036\",\"name\":\"KEGOW(CHAMSMOBILE)\"},{\"code\":\"000002\",\"name\":\"KEYSTONE BANK\"},{\"code\":\"090606\",\"name\":\"KKU MICROFINANCE BANK\"},{\"code\":\"090480\",\"name\":\"KOLOMONI MICROFINANCE BANK\"},{\"code\":\"100025\",\"name\":\"KONGAPAY\"},{\"code\":\"090299\",\"name\":\"KONTAGORA MICROFINANCE BANK\"},{\"code\":\"090617\",\"name\":\"KOPO KOPE MICROFINANCE BANK\"},{\"code\":\"090380\",\"name\":\"KREDI MONEY MICROFINANCE BANK\"},{\"code\":\"090267\",\"name\":\"KUDA MICROFINANCE BANK\"},{\"code\":\"070012\",\"name\":\"LAGOS BUILDING AND INVESTMENT COMPANY\"},{\"code\":\"090177\",\"name\":\"LAPO MICROFINANCE BANK\"},{\"code\":\"090271\",\"name\":\"LAVENDER MICROFINANCE BANK\"},{\"code\":\"090724\",\"name\":\"LAWYERS MFB\"},{\"code\":\"090650\",\"name\":\"LEADCITY MICROFINANCE BANK\"},{\"code\":\"110044\",\"name\":\"LEADREMIT LIMITED\"},{\"code\":\"090372\",\"name\":\"LEGEND MICROFINANCE BANK\"},{\"code\":\"090420\",\"name\":\"LETSHEGO MICROFI\"},{\"code\":\"090731\",\"name\":\"LEVITE MFB\"},{\"code\":\"090557\",\"name\":\"LIFEGATE MICROFINANCE BANK\"},{\"code\":\"090435\",\"name\":\"LINKS MICROFINANCE BANK\"},{\"code\":\"070007\",\"name\":\"LIVINGTRUST MORTGAGE BANK PLC\"},{\"code\":\"090620\",\"name\":\"LOMA MFB\"},{\"code\":\"000029\",\"name\":\"LOTUS BANK\"},{\"code\":\"090265\",\"name\":\"LOVONUS MICROFINANCE BANK\"},{\"code\":\"050015\",\"name\":\"LUKEFIELD FINANCE COMPANY LIMITED\"},{\"code\":\"100035\",\"name\":\"M36\"},{\"code\":\"090623\",\"name\":\"MAB ALLIANZ MICROFINANCE BANK\"},{\"code\":\"090630\",\"name\":\"MABINAS MICROFINANCE BANK\"},{\"code\":\"090603\",\"name\":\"MACROD MICROFINANCE BANK LIMITED\"},{\"code\":\"090605\",\"name\":\"MADOBI MICROFINANCE BANK\"},{\"code\":\"090746\",\"name\":\"MAESTRO MFB\"},{\"code\":\"090323\",\"name\":\"MAINLAND MICROFINANCE BANK\"},{\"code\":\"090171\",\"name\":\"MAINSTREET MICROFINANCE BANK\"},{\"code\":\"090174\",\"name\":\"MALACHY MICROFINANCE BANK\"},{\"code\":\"090383\",\"name\":\"MANNY MICROFINANCE BANK\"},{\"code\":\"090410\",\"name\":\"MARITIME MICROFINANCE BANK\"},{\"code\":\"090321\",\"name\":\"MAYFAIR MICROFINANCE BANK\"},{\"code\":\"070019\",\"name\":\"MAYFRESH MORTGAGE BANK\"},{\"code\":\"090612\",\"name\":\"MEDEF MICROFINANCE BANK\"},{\"code\":\"090280\",\"name\":\"MEGAPRAISE MICROFINANCE BANK\"},{\"code\":\"090589\",\"name\":\"MERCURY MICROFINANCE BANK\"},{\"code\":\"090659\",\"name\":\"MICHAEL OKPARA UNIAGRIC UNIVERSITY MFB\"},{\"code\":\"090587\",\"name\":\"MICROBIZ MICROFINANCE BANK\"},{\"code\":\"090113\",\"name\":\"MICROVIS MICROFINANCE BANK\"},{\"code\":\"090192\",\"name\":\"MIDLAND MICROFINANCE BANK\"},{\"code\":\"090607\",\"name\":\"MINJIBIR MICROFINANCE BANK\"},{\"code\":\"090281\",\"name\":\"MINT-FINEX MFB\"},{\"code\":\"090455\",\"name\":\"MKOBO MFB\"},{\"code\":\"100011\",\"name\":\"MKUDI\"},{\"code\":\"090685\",\"name\":\"M\\u0026M MICROFINANCE BANK\"},{\"code\":\"090362\",\"name\":\"MOLUSI MICROFINANCE BANK\"},{\"code\":\"120003\",\"name\":\"MOMO PAYMENT SERVICE BANK\"},{\"code\":\"100020\",\"name\":\"MONEY BOX\"},{\"code\":\"120005\",\"name\":\"MONEY MASTER PSB\"},{\"code\":\"090129\",\"name\":\"MONEY TRUST MICROFINANCE BANK\"},{\"code\":\"090405\",\"name\":\"MONIEPOINT MICROFINANCE BANK\"},{\"code\":\"090392\",\"name\":\"MOZFIN MICROFINANCE BANK\"},{\"code\":\"070028\",\"name\":\"MUTUAL ALLIANCE MORTGAGE BANK\"},{\"code\":\"090190\",\"name\":\"MUTUAL BENEFITS MICROFINANCE BANK\"},{\"code\":\"090151\",\"name\":\"MUTUAL TRUST MICROFINANCE BANK\"},{\"code\":\"090740\",\"name\":\"NAF MFB\"},{\"code\":\"090152\",\"name\":\"NAGARTA MICROFINANCE BANK\"},{\"code\":\"090679\",\"name\":\"NDDC MICROFINANCE BANK\"},{\"code\":\"090128\",\"name\":\"NDIORAH MICROFINANCE BANK\"},{\"code\":\"090329\",\"name\":\"NEPTUNE MICROFINANCE BANK\"},{\"code\":\"090675\",\"name\":\"NET MICROFINANCE BANK\"},{\"code\":\"090205\",\"name\":\"NEW DAWN MICROFINANCE BANK\"},{\"code\":\"090378\",\"name\":\"NEW GOLDEN PASTURES MICROFINANCE BANK\"},{\"code\":\"090108\",\"name\":\"NEW PRUDENTIAL BANK\"},{\"code\":\"030001\",\"name\":\"NEXIM BANK\"},{\"code\":\"090263\",\"name\":\"NIGERIAN NAVY MICROFINANCE BANK\"},{\"code\":\"090505\",\"name\":\"NIGERIA PRISONS MICROFINANCE BANK\"},{\"code\":\"999999\",\"name\":\"NIP VIRTUAL BANK\"},{\"code\":\"090194\",\"name\":\"NIRSAL NATIONAL MICROFINANCE BANK\"},{\"code\":\"090283\",\"name\":\"NNEW WOMEN MICROFINANCE BANK\"},{\"code\":\"090736\",\"name\":\"NOMASE MFB\"},{\"code\":\"060003\",\"name\":\"NOVA BANK\"},{\"code\":\"090734\",\"name\":\"NOVUS MFB\"},{\"code\":\"100032\",\"name\":\"NOWNOW DIGITAL SYSTEMS LIMITED\"},{\"code\":\"070001\",\"name\":\"NPF MICROFINANCE BANK\"},{\"code\":\"090628\",\"name\":\"NSEHE MICROFINANCE BANK\"},{\"code\":\"090676\",\"name\":\"NUGGETS MICROFINANCE BANK\"},{\"code\":\"090364\",\"name\":\"NUTURE MICROFINANCE BANK\"},{\"code\":\"090399\",\"name\":\"NWANNEGADI MICROFINANCE BANK\"},{\"code\":\"090333\",\"name\":\"OCHE MICROFINANCE BANK\"},{\"code\":\"090654\",\"name\":\"ODOAKPU MICROFINANCE BANK\"},{\"code\":\"090738\",\"name\":\"OGBERURU MFB\"},{\"code\":\"090739\",\"name\":\"OGIGE MFB\"},{\"code\":\"090119\",\"name\":\"OHAFIA MICROFINANCE BANK\"},{\"code\":\"090626\",\"name\":\"OHHA MICROFINANCE BANK\"},{\"code\":\"090527\",\"name\":\"OJOKORO MICROFINANCE BANK\"},{\"code\":\"090565\",\"name\":\"OKE-ARO OREDEGBE MFB\"},{\"code\":\"090646\",\"name\":\"OKENGWE MICROFINANCE BANK\"},{\"code\":\"090161\",\"name\":\"OKPOGA MICROFINANCE BANK\"},{\"code\":\"090566\",\"name\":\"OKUKU MICROFINANCE BANK\"},{\"code\":\"090272\",\"name\":\"OLABISI ONABANJO UNIVERSITY MICROFINANCE\"},{\"code\":\"090696\",\"name\":\"OLIVE MFB\"},{\"code\":\"090404\",\"name\":\"OLOWOLAGBA MICROFINANCE BANK\"},{\"code\":\"090404\",\"name\":\"OLOWOLAGBA MICROFINANCE BANK LIMITED\"},{\"code\":\"090700\",\"name\":\"OMAK MICROFINANCE BANK\"},{\"code\":\"090295\",\"name\":\"OMIYE MICROFINANCE BANK\"},{\"code\":\"288033\",\"name\":\"OMNIBSIC BANK GHANA LTD\"},{\"code\":\"100004\",\"name\":\"OPAY\"},{\"code\":\"000036\",\"name\":\"OPTIMUS BANK\"},{\"code\":\"090567\",\"name\":\"OROKAM MICROFINANCE BANK\"},{\"code\":\"090396\",\"name\":\"OSCOTECH MICROFINANCE BANK\"},{\"code\":\"090715\",\"name\":\"OSOMHE MFB\"},{\"code\":\"090580\",\"name\":\"OTECH MICROFINANCE BANK\"},{\"code\":\"090542\",\"name\":\"OTUO MICROFINANCE BANK\"},{\"code\":\"090635\",\"name\":\"OYAN MICROFINANCE BANK\"},{\"code\":\"100002\",\"name\":\"PAGA\"},{\"code\":\"070008\",\"name\":\"PAGE MFBANK\"},{\"code\":\"100033\",\"name\":\"PALMPAY\"},{\"code\":\"000030\",\"name\":\"PARALLEX BANK\"},{\"code\":\"100003\",\"name\":\"PARKWAY-READYCASH\"},{\"code\":\"090680\",\"name\":\"PATHFINDER MICROFINANACE BANK LIMITED\"},{\"code\":\"090317\",\"name\":\"PATRICKGOLD MICROFINANCE BANK\"},{\"code\":\"110001\",\"name\":\"PAYATTITUDE ONLINE\"},{\"code\":\"110006\",\"name\":\"PAYSTACK PAYMENT LIMITED\"},{\"code\":\"090402\",\"name\":\"PEACE MICROFINANCE BANK\"},{\"code\":\"090137\",\"name\":\"PECANTRUST MICROFINANCE BANK\"},{\"code\":\"090196\",\"name\":\"PENNYWISE MICROFINANCE BANK\"},{\"code\":\"090135\",\"name\":\"PERSONAL TRUST MICROFINANCE BANK\"},{\"code\":\"090165\",\"name\":\"PETRA MICROFINANCE BANK\"},{\"code\":\"050021\",\"name\":\"PFI FINANCE COMPANY LIMITED\"},{\"code\":\"090289\",\"name\":\"PILLAR MICROFINANCE BANK\"},{\"code\":\"070013\",\"name\":\"PLATINUM MORTGAGE BANK\"},{\"code\":\"000008\",\"name\":\"POLARIS BANK\"},{\"code\":\"090296\",\"name\":\"POLYUNWANA MICROFINANCE BANK\"},{\"code\":\"000031\",\"name\":\"PREMIUM TRUST  BANK\"},{\"code\":\"090274\",\"name\":\"PRESTIGE MICROFINANCE BANK\"},{\"code\":\"090495\",\"name\":\"PROSPA CAPITAL MICROFINANCE BANK\"},{\"code\":\"090689\",\"name\":\"PROSPECTS MICROFINANCE BANK\"},{\"code\":\"050023\",\"name\":\"PROSPERIS FINANCE LIMITED\"},{\"code\":\"090642\",\"name\":\"PROSPERITY MICROFINANCE BANK\"},{\"code\":\"000023\",\"name\":\"PROVIDUS BANK\"},{\"code\":\"288026\",\"name\":\"PRUDENTIAL BANK LIMITED\"},{\"code\":\"090690\",\"name\":\"PRUDENT MICROFINANCE BANK\"},{\"code\":\"090303\",\"name\":\"PURPLEMONEY MICROFINANCE BANK\"},{\"code\":\"090657\",\"name\":\"PYRAMID MICROFINANCE BANK\"},{\"code\":\"090261\",\"name\":\"QUICKFUND MICROFINANCE BANK\"},{\"code\":\"000024\",\"name\":\"RAND MERCHANT BANK\"},{\"code\":\"090616\",\"name\":\"RAYYAN MICROFINANCE BANK\"},{\"code\":\"070011\",\"name\":\"REFUGE MORTGAGE BANK\"},{\"code\":\"090125\",\"name\":\"REGENT MICROFINANCE BANK\"},{\"code\":\"090463\",\"name\":\"REHOBOTH MICROFINANCE BANK\"},{\"code\":\"090173\",\"name\":\"RELIANCE MICROFINANCE BANK\"},{\"code\":\"090198\",\"name\":\"RENMONEY MICROFINANCE BANK\"},{\"code\":\"090322\",\"name\":\"REPHIDIM MICROFINANCE BANK\"},{\"code\":\"090666\",\"name\":\"REVELATION MICROFINANCE BANK\"},{\"code\":\"090449\",\"name\":\"REX MICROFINANCE BANK\"},{\"code\":\"090132\",\"name\":\"RICHWAY MICROFINANCE BANK\"},{\"code\":\"090720\",\"name\":\"RIC MFB\"},{\"code\":\"090433\",\"name\":\"RIGO MICROFINANCE BANK\"},{\"code\":\"090515\",\"name\":\"RIMA GROWTH PATHWAY MICROFINANCE BANK\"},{\"code\":\"090547\",\"name\":\"ROCKSHIELD MICROFINANCE BANK\"},{\"code\":\"090622\",\"name\":\"ROYAL BLUE MICROFINANCE BANK\"},{\"code\":\"090138\",\"name\":\"ROYAL EXCHANGE MICROFINANCE BANK\"},{\"code\":\"090175\",\"name\":\"RUBIES MICROFINANCE BANK\"},{\"code\":\"090727\",\"name\":\"SABI MFB\"},{\"code\":\"090485\",\"name\":\"SAFEGATE MICROFINANCE BANK\"},{\"code\":\"090286\",\"name\":\"SAFE HAVEN MICROFINANCE BANK\"},{\"code\":\"090006\",\"name\":\"SAFETRUST\"},{\"code\":\"090140\",\"name\":\"SAGAMU MICROFINANCE BANK\"},{\"code\":\"050003\",\"name\":\"SAGE GREY FINANCE LIMITED\"},{\"code\":\"430050\",\"name\":\"SAPELLE INTERNATIONAL BANK LIBERIA LIMITED\"},{\"code\":\"090513\",\"name\":\"SEAP MICROFINANCE BANK\"},{\"code\":\"090112\",\"name\":\"SEED CAPITAL MICROFINANCE BANK\"},{\"code\":\"090369\",\"name\":\"SEEDVEST MICROFINANCE BANK\"},{\"code\":\"090502\",\"name\":\"SHALOM MICROFINANCE BANK\"},{\"code\":\"090401\",\"name\":\"SHERPERD TRUST MICROFINANCE BANK\"},{\"code\":\"090559\",\"name\":\"SHIELD MICROFINANCE BANK\"},{\"code\":\"090558\",\"name\":\"SHONGOM MICROFINANCE BANK\"},{\"code\":\"000034\",\"name\":\"SIGNATURE BANK\"},{\"code\":\"050008\",\"name\":\"SIMPLE FINANCE LIMITED\"},{\"code\":\"090339\",\"name\":\"SINCERE MFB\"},{\"code\":\"120004\",\"name\":\"SMARTCASH PAYMENT SERVICE BANK\"},{\"code\":\"090506\",\"name\":\"SOLID ALLIANZE MICROFINANCE BANK\"},{\"code\":\"090524\",\"name\":\"SOLIDROCK MICROFINANCE BANK\"},{\"code\":\"090641\",\"name\":\"SOURCE MICROFINANCE BANK\"},{\"code\":\"090325\",\"name\":\"SPARKLE\"},{\"code\":\"090436\",\"name\":\"SPECTRUM MICROFINANCE BANK\"},{\"code\":\"288030\",\"name\":\"STANBIC BANK GHANA LTD\"},{\"code\":\"000012\",\"name\":\"STANBIC IBTC BANK\"},{\"code\":\"100007\",\"name\":\"STANBIC IBTC @EASE WALLET\"},{\"code\":\"000021\",\"name\":\"STANDARD CHARTERED BANK\"},{\"code\":\"090162\",\"name\":\"STANFORD MICROFINANCE BANK\"},{\"code\":\"090583\",\"name\":\"STATESIDE MFB\"},{\"code\":\"070022\",\"name\":\"STB MORTGAGE BANK\"},{\"code\":\"090262\",\"name\":\"STELLAS MICROFINANCE BANK\"},{\"code\":\"000001\",\"name\":\"STERLING BANK\"},{\"code\":\"100022\",\"name\":\"STERLING MOBILE\"},{\"code\":\"090305\",\"name\":\"SULSPAP MICROFINANCE BANK\"},{\"code\":\"090644\",\"name\":\"SUNTOP MICROFINANCE\"},{\"code\":\"000022\",\"name\":\"SUNTRUST BANK\"},{\"code\":\"090446\",\"name\":\"SUPPORT MICROFINANCE BANK\"},{\"code\":\"090564\",\"name\":\"SUPREME MICROFINANCE BANK\"},{\"code\":\"090728\",\"name\":\"SURE ANCHOR MFB\"},{\"code\":\"100023\",\"name\":\"TAGPAY\"},{\"code\":\"000026\",\"name\":\"TAJ BANK\"},{\"code\":\"090638\",\"name\":\"TANGALE MICROFINANCE BANK\"},{\"code\":\"090426\",\"name\":\"TANGERINE MONEY\"},{\"code\":\"110007\",\"name\":\"TEAMAPT LIMITED\"},{\"code\":\"100010\",\"name\":\"TEASY MOBILE\"},{\"code\":\"050007\",\"name\":\"TEKLA FACTORING AND FINANCE LIMITED\"},{\"code\":\"090716\",\"name\":\"TENN MFB\"},{\"code\":\"090711\",\"name\":\"THE MILLENNIUM MFB\"},{\"code\":\"090373\",\"name\":\"THINK FINANCE MICROFINANCE BANK\"},{\"code\":\"100039\",\"name\":\"TITAN-PAYSTACK\"},{\"code\":\"000025\",\"name\":\"TITAN TRUST BANK\"},{\"code\":\"090714\",\"name\":\"TOFA MFB\"},{\"code\":\"090613\",\"name\":\"TOTAL TRUST MICROFINANCE BANK\"},{\"code\":\"090708\",\"name\":\"TRANSPAY MFB\"},{\"code\":\"090663\",\"name\":\"TREASURES MICROFINANCE BANK\"},{\"code\":\"090146\",\"name\":\"TRIDENT MICROFINANCE BANK\"},{\"code\":\"050014\",\"name\":\"TRINITY FINANCE\"},{\"code\":\"090525\",\"name\":\"TRIPLEA MICROFINANCE BANK\"},{\"code\":\"050023\",\"name\":\"TRIVES FINANCE COMPANY LTD\"},{\"code\":\"090123\",\"name\":\"TRUSTBANC J6 MICROFINANCE BANK LIMITED\"},{\"code\":\"090005\",\"name\":\"TRUSTBOND MORTGAGE BANK\"},{\"code\":\"090276\",\"name\":\"TRUSTFUND MICROFINANCE BANK\"},{\"code\":\"090327\",\"name\":\"TRUST MICROFINANCE BANK\"},{\"code\":\"000040\",\"name\":\"UBA MONI\"},{\"code\":\"090706\",\"name\":\"UCEE MICROFINANCE BANK\"},{\"code\":\"090315\",\"name\":\"U \\u0026 C MICROFINANCE BANK\"},{\"code\":\"090403\",\"name\":\"UDA MICROFINANCE BANK\"},{\"code\":\"090517\",\"name\":\"UHURU MICROFINANCE BANK\"},{\"code\":\"090609\",\"name\":\"UMMAH MICROFINANCE BANK\"},{\"code\":\"090514\",\"name\":\"UMUCHINEMERE PROCREDIT MICROFINANCE BANK\"},{\"code\":\"090652\",\"name\":\"UMUCHUKWU MICROFINANCE BANK\"},{\"code\":\"090331\",\"name\":\"UNAAB MICROFINANCE BANK\"},{\"code\":\"090266\",\"name\":\"UNIBEN MICROFINANCE BANK\"},{\"code\":\"090193\",\"name\":\"UNICAL MICROFINANCE BANK\"},{\"code\":\"090637\",\"name\":\"UNIFUND MICROFINANCE BANK LIMITED\"},{\"code\":\"090341\",\"name\":\"UNILORIN MICROFINANCE BANK\"},{\"code\":\"000018\",\"name\":\"UNION BANK\"},{\"code\":\"000004\",\"name\":\"UNITED BANK FOR AFRICA\"},{\"code\":\"288002\",\"name\":\"UNITED BANK FOR AFRICA (GHANA) LIMITED\"},{\"code\":\"324002\",\"name\":\"UNITED BANK FOR AFRICA GUINEA SA\"},{\"code\":\"430002\",\"name\":\"UNITED BANK FOR AFRICA LIBERIA LTD\"},{\"code\":\"694002\",\"name\":\"UNITED BANK FOR AFRICA (SL) LIMITED\"},{\"code\":\"000011\",\"name\":\"UNITY BANK\"},{\"code\":\"090338\",\"name\":\"UNIUYO MFB\"},{\"code\":\"288029\",\"name\":\"UNIVERSAL MERCHANT BANK\"},{\"code\":\"090251\",\"name\":\"UNIVERSITY OF NIGERIA, NSUKKA MICROFINANCE BANK\"},{\"code\":\"090719\",\"name\":\"UNUBI MFB\"},{\"code\":\"090619\",\"name\":\"URE MICROFINANCE BANK\"},{\"code\":\"090453\",\"name\":\"UZONDU MICROFINANCE BANK\"},{\"code\":\"050020\",\"name\":\"VALE FINANCE LIMITED\"},{\"code\":\"110009\",\"name\":\"VENTURE GARDEN NIGERIA LIMITED\"},{\"code\":\"090474\",\"name\":\"VERDANT MICROFINANCE BANK\"},{\"code\":\"090110\",\"name\":\"VFD MFB\"},{\"code\":\"090150\",\"name\":\"VIRTUE MICROFINANCE BANK\"},{\"code\":\"090139\",\"name\":\"VISA MICROFINANCE BANK\"},{\"code\":\"100012\",\"name\":\"VT NETWORKS\"},{\"code\":\"090590\",\"name\":\"WAYA MICROFINANCE BANK\"},{\"code\":\"000017\",\"name\":\"WEMA BANK\"},{\"code\":\"090699\",\"name\":\"WESLEY MICROFINANCE BANK\"},{\"code\":\"090741\",\"name\":\"WESTON-CHARIS MFB\"},{\"code\":\"090120\",\"name\":\"WETLAND  MICROFINANCE BANK\"},{\"code\":\"090631\",\"name\":\"WRA MFB\"},{\"code\":\"100040\",\"name\":\"XPRESS WALLET\"},{\"code\":\"090124\",\"name\":\"XSLNCE MICROFINANCE BANK\"},{\"code\":\"090466\",\"name\":\"YCT MICROFINANCE BANK\"},{\"code\":\"090142\",\"name\":\"YES MICROFINANCE BANK\"},{\"code\":\"090252\",\"name\":\"YOBE MICROFINANCE  BANK\"},{\"code\":\"050019\",\"name\":\"ZEDVANCE FINANCE LIMITED\"},{\"code\":\"090747\",\"name\":\"ZEFA MFB\"},{\"code\":\"000015\",\"name\":\"ZENITH BANK\"},{\"code\":\"288034\",\"name\":\"ZENITH BANK GHANA LIMITED\"},{\"code\":\"100034\",\"name\":\"ZENITH EASY WALLET\"},{\"code\":\"100018\",\"name\":\"ZENITH MOBILE\"},{\"code\":\"090504\",\"name\":\"ZIKORA MICROFINANCE BANK\"},{\"code\":\"090718\",\"name\":\"ZITRA MFB\"}]}\n"}],"_postman_id":"df80688e-b0ae-4fa0-a3f1-e907b069a222"},{"name":"Customer Transfer to Bank Account","id":"ce776329-e1a4-4940-87b9-b2e370aa809d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n\t\"amount\": 50,\r\n    // \"reference\": \"38bDlOwxUmrDv3yzP46mZyiEaZWpYVcxMHLd\",\r\n\t\"sort_code\": \"000013\",\r\n    \"narration\": \"Customer transfer\",\r\n\t\"account_number\": \"0167421242\",\r\n    \"account_name\": \"Emmanuel Obagunwa\",\r\n    \"customer_id\": \"7dfa317d-f2ba-4e27-b928-2825bf82087e\",\r\n    \"metadata\": {\"key\": \"value\"}\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/transfers/bank/customer","description":"<p>Customer Bank Transfer</p>\n<p>Endpoint: <code>POST /v1/transfers/bank/customer</code></p>\n<p>Description:<br />This endpoint allows a customer to initiate a transfer to a bank account. The customer can provide an optional <code>reference</code>. If the <code>reference</code> is not provided, a unique reference will be generated.</p>\n<p>Request Body:</p>\n<ul>\n<li><p><code>amount</code> (float): The amount to be transferred.</p>\n</li>\n<li><p><code>reference</code> (string, optional): A unique reference for the transaction. If not provided, a new reference will be generated.</p>\n</li>\n<li><p><code>sortCode</code> (string): The sort code of the recipient's bank.</p>\n</li>\n<li><p><code>narration</code> (string): A brief description or message about the transfer.</p>\n</li>\n<li><p><code>accountNumber</code> (string): The bank account number of the recipient.</p>\n</li>\n<li><p><code>accountName</code> (string): The name of the account holder.</p>\n</li>\n<li><p><code>customerId</code> (string): The ID of the customer initiating the transfer.</p>\n</li>\n<li><p><code>metadata</code> (object, optional): Additional information regarding the transfer (e.g., custom key-value pairs).</p>\n<ul>\n<li><p><code>key</code> (string): A key for storing additional information.</p>\n</li>\n<li><p><code>value</code> (string): The value associated with the key.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>Response:</p>\n<ul>\n<li><p>On success, returns a confirmation of the transfer with the transaction details and the reference.</p>\n</li>\n<li><p>If the <code>reference</code> is provided and a transaction already exists with that reference, an error will be returned.</p>\n</li>\n</ul>\n<p>Error Handling:</p>\n<ul>\n<li><p>If the provided <code>reference</code> already exists, a <code>409 Conflict</code> error will be returned.</p>\n</li>\n<li><p>If any required parameter is missing or invalid, a <code>400 Bad Request</code> error will be returned.</p>\n</li>\n</ul>\n<p>Notes:</p>\n<ul>\n<li><p>Ensure that the <code>X-API-Key</code> header is included for authentication:</p>\n<p>  X-API-Key: {{API_KEY}}</p>\n</li>\n</ul>\n","urlObject":{"path":["transfers","bank","customer"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"45429de3-bc71-48ef-8f4f-a46970d5fe16","name":"Success Response","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n\t\"amount\": 50,\r\n    // \"reference\": \"38bDlOwxUmrDv3yzP46mZyiEaZWpYVcxMHLd\",\r\n\t\"sortCode\": \"000013\",\r\n    \"narration\": \"Customer transfer\",\r\n\t\"accountNumber\": \"0167421242\",\r\n    \"accountName\": \"Emmanuel Obagunwa\",\r\n    \"customerId\": \"0e72df4b-c0c1-4874-8f3d-d35ae5a6a60c\",\r\n    \"metadata\": {\"key\": \"value\"}\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/transfers/bank/customer"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin"},{"key":"Date","value":"Fri, 28 Mar 2025 08:33:56 GMT"},{"key":"Content-Length","value":"923"},{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"You have successfully make a transfer\",\n    \"data\": {\n        \"id\": \"40cd2b51-e26d-42a7-b347-f9d181df58e2\",\n        \"reference\": \"TXN-1743150834-d528cb706bcd4a68\",\n        \"currency\": \"NGN\",\n        \"environment\": \"SANDBOX\",\n        \"balance_after\": 550,\n        \"balance_before\": 600,\n        \"merchant_id\": \"6f5c63ce-f525-4442-be11-a401658396d7\",\n        \"metadata\": \"eyJ2YXQiOiAwLjc1LCAiYW1vdW50IjogNTAsICJjaGFyZ2VzIjogMTAsICJiYW5rTmFtZSI6ICJHVEJBTksgUExDIiwgInNvcnRDb2RlIjogIjAwMDAxMyIsICJuYXJyYXRpb24iOiAiQ3VzdG9tZXIgdHJhbnNmZXIiLCAiYWNjb3VudE5hbWUiOiAiRW1tYW51ZWwgT2JhZ3Vud2EiLCAidG90YWxBbW91bnQiOiA2MC43NSwgImFjY291bnROdW1iZXIiOiAiMDE2NzQyMTI0MiIsICJ3YWxsZXRBY2NvdW50TmFtZSI6ICJTYW1zb24gRWRpZSIsICJhZGRpdGlvbmFsTWV0YWRhdGEiOiB7ImtleSI6ICJ2YWx1ZSJ9fQ==\",\n        \"amount\": 50,\n        \"status\": \"success\",\n        \"destination\": \"0167421242/000013\",\n        \"description\": \"Transfer of NGN50.00 to Emmanuel Obagunwa (0167421242/GTBANK PLC)/100040250328083356422632670862\",\n        \"type\": \"DEBIT\",\n        \"category\": \"BANK_TRANSFER\"\n    }\n}"}],"_postman_id":"ce776329-e1a4-4940-87b9-b2e370aa809d"},{"name":"Get Bank Account Details","id":"129fe090-1bbe-47dc-9292-19a6d7b79e9c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"account_number\": \"0218827273\",\r\n    \"bank_code\": \"000013\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/transfers/account","urlObject":{"path":["transfers","account"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"bbe1914c-8ded-4b96-a27e-01ebf977c43e","name":"Success Response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"account_number\": \"1234567890\",\r\n    \"sort_code\": \"000013\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://api.finecore.co/v1/transfers/account"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin","uuid":"10017e41-5966-4179-b4e3-855098913aee"},{"key":"Date","value":"Thu, 13 Mar 2025 12:51:36 GMT","uuid":"95c1f0c9-b74a-40b1-b1af-bd995f2e977f"},{"key":"Content-Length","value":"160","uuid":"9c808a47-d6e0-43d7-8169-5272c581e8bf"},{"key":"Content-Type","value":"application/json","description":"","type":"text","uuid":"a711c5d8-60e0-4f7b-bc89-4c7c0085de03"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Successfully fetch account detail\",\n    \"data\": {\n        \"bankCode\": \"000013\",\n        \"accountName\": \"USMAN  JIBRIL MOHAMMED\",\n        \"accountNumber\": \"1234567890\"\n    }\n}"},{"id":"d989126b-bbbb-457a-a15b-3aa8a0e724e1","name":"Error Response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"account_number\": \"1234567890\",\r\n    \"sort_code\": \"000013\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/transfers/account"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin","uuid":"22ecd0b2-1525-47a3-bca8-b71c5bfe25bf"},{"key":"Date","value":"Thu, 13 Mar 2025 12:53:04 GMT","uuid":"3a750407-b09d-479b-936b-2a8c6b257dca"},{"key":"Content-Length","value":"69","uuid":"0db4f855-fd05-4441-9735-06c55892fe1f"},{"key":"Content-Type","value":"application/json","description":"","type":"text","uuid":"f85d19ba-89ea-4acb-917d-a90b4b7d9a0f"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": false,\n    \"message\": \"Unable to resolve account information.\"\n}"}],"_postman_id":"129fe090-1bbe-47dc-9292-19a6d7b79e9c"}],"id":"08608662-317a-4659-a05d-3b3a0a53d598","description":"<p>Bank Transfer API</p>\n<p>Description:<br />This folder contains endpoints for handling bank transfers. It provides functionality for merchant and customer bank transfers, as well as retrieving a list of available banks and checking bank account details.</p>\n<p>Endpoints:</p>\n<ol>\n<li><p><strong>Merchant Bank Transfer</strong></p>\n<ul>\n<li><p>URL: <code>{{BASE_URL}}/transfers/bank</code></p>\n</li>\n<li><p>Description: This endpoint is used by merchants to initiate a bank transfer.</p>\n</li>\n<li><p>Method: <code>POST</code></p>\n</li>\n<li><p>Request Body:</p>\n<ul>\n<li>Includes the necessary details to initiate a bank transfer (e.g., amount, account details, reference).</li>\n</ul>\n</li>\n<li><p>Response:</p>\n<ul>\n<li>On success, returns the transaction details and status of the bank transfer.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong>List of Banks</strong></p>\n<ul>\n<li><p>URL: <code>{{BASE_URL}}/transfers/banks</code></p>\n</li>\n<li><p>Description: This endpoint returns a list of available banks for transfer purposes.</p>\n</li>\n<li><p>Method: <code>GET</code></p>\n</li>\n<li><p>Response:</p>\n<ul>\n<li>A list of banks that can be used for transfers, including their names and details.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong>Get Bank Detail</strong></p>\n<ul>\n<li><p>URL: <code>{{BASE_URL}}/transfers/account</code></p>\n</li>\n<li><p>Description: This endpoint allows you to retrieve details of a bank account, given the account number and other necessary details.</p>\n</li>\n<li><p>Method: <code>GET</code></p>\n</li>\n<li><p>Request Parameters:</p>\n<ul>\n<li><code>account_number</code> (string): The account number for which details are to be fetched.</li>\n</ul>\n</li>\n<li><p>Response:</p>\n<ul>\n<li>Returns the details of the bank account, including the bank name, account type, and more.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong>Customer Bank Transfer</strong></p>\n<ul>\n<li><p>URL: <code>{{BASE_URL}}/transfers/bank/customer</code></p>\n</li>\n<li><p>Description: This endpoint is used by customers to initiate a bank transfer.</p>\n</li>\n<li><p>Method: <code>POST</code></p>\n</li>\n<li><p>Request Body:</p>\n<ul>\n<li>Includes the necessary details to initiate the bank transfer (e.g., amount, account details, reference).</li>\n</ul>\n</li>\n<li><p>Response:</p>\n<ul>\n<li>On success, returns the transaction details and status of the customer bank transfer.</li>\n</ul>\n</li>\n</ul>\n</li>\n</ol>\n<p>Common Request Headers:</p>\n<ul>\n<li><code>X-API-Key</code>: Authentication key to access the API.</li>\n</ul>\n","_postman_id":"08608662-317a-4659-a05d-3b3a0a53d598"},{"name":"Account","item":[{"name":"Create dynamic virtual account","id":"03c2df2d-fad7-4642-b496-ba6557409ddb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"amount\": 100.00,\r\n    \"reference\": \"yofddearndcdss\",\r\n    \"duration_in_minutes\": 30\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/accounts/dynamic","description":"<p>Create Dynamic Account</p>\n<ul>\n<li><p><strong>Endpoint:</strong> POST /v1/accounts/dynamic</p>\n</li>\n<li><p><strong>Description:</strong><br />  This endpoint generates a <strong>dynamic virtual account</strong> tied to a specific transaction. The account is temporary and will expire after the specified duration. It is primarily used for one-time payments.</p>\n</li>\n<li><p><strong>Request Headers:</strong></p>\n<ul>\n<li>X-API-Key: Your API key for authentication.</li>\n</ul>\n</li>\n<li><p><strong>Request Body:</strong><br />  {<br />  \"amount\": 100.00,<br />  \"reference\": \"yofddearndcdss\",<br />  \"duration_in_minutes\": 30<br />  }</p>\n</li>\n<li><p><strong>Body Parameters:</strong></p>\n<ul>\n<li><p>amount (number, required): The expected amount to be paid into the dynamic account.</p>\n</li>\n<li><p>reference (string, optional): A unique identifier for the transaction. If not provided, one will be auto-generated.</p>\n</li>\n<li><p>duration_in_minutes (integer, required): How long the account should stay active before expiration.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Response:</strong></p>\n<ul>\n<li><p>Returns the dynamic account details including:</p>\n<ul>\n<li><p>account_number</p>\n</li>\n<li><p>account_name</p>\n</li>\n<li><p>bank_name</p>\n</li>\n<li><p>expiration_time</p>\n</li>\n<li><p>reference</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong>Possible Status Codes:</strong></p>\n<ul>\n<li><p>201 Created: Dynamic account successfully generated.</p>\n</li>\n<li><p>400 Bad Request: Invalid or missing input fields.</p>\n</li>\n<li><p>409 Conflict: Reference already exists.</p>\n</li>\n<li><p>500 Internal Server Error: An error occurred during account generation.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Note:</strong></p>\n<ul>\n<li><p>This account is valid for a limited time only.</p>\n</li>\n<li><p>It is recommended to monitor the expiration timestamp to ensure payment is received within the valid window.</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"path":["accounts","dynamic"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"4758499d-d9a8-4f97-bc6d-a117ced1979c","name":"Create dynamic virtual account","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"amount\": 100.00,\r\n    \"reference\": \"yofddeuyiarndcdss\",\r\n    \"duration_in_minutes\": 30\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/accounts/dynamic"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';script-src 'self' 'unsafe-inline' https://cdn.example.com;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;img-src 'self' data: https://*.example.com;font-src 'self' https://fonts.gstatic.com;connect-src 'self' https://api.example.com;frame-ancestors 'none';"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Fri, 26 Sep 2025 10:24:13 GMT"},{"key":"Content-Length","value":"281"},{"key":"Content-Type","value":"text/plain; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\"success\":true,\"message\":\"Virtual account created successfully\",\"data\":{\"amount\":100,\"reference\":\"yofddeuyiarndcdss\",\"expiration_time\":\"2025-09-26T10:54:11.7017025Z\",\"account_name\":\"Dynamic Test Account\",\"account_number\":\"4097553750\",\"bank_name\":\"FCMB MFB\",\"bank_code\":\"090409\"}}\n"}],"_postman_id":"03c2df2d-fad7-4642-b496-ba6557409ddb"},{"name":"Create static account","id":"3fa70879-389f-4bbd-8bfd-5fafc97f85fa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"email_address\": \"gwanja@gmail.com\",\r\n    \"first_name\": \"Liman\",\r\n    \"last_name\": \"Dauda\",\r\n    \"phone_number\": \"08092717412\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/accounts/static","description":"<p>Create Static Account</p>\n<ul>\n<li><p><strong>Endpoint:</strong> <code>POST /v1/accounts/static</code></p>\n</li>\n<li><p><strong>Description:</strong><br />  This endpoint is used to create a <strong>static virtual account</strong> for a user. A static account is permanently associated with the user and can be used for receiving payments multiple times.</p>\n</li>\n<li><p><strong>Request Headers:</strong></p>\n<ul>\n<li><code>X-API-Key</code>: Your API key for authentication.</li>\n</ul>\n</li>\n<li><p><strong>Body Parameters:</strong></p>\n</li>\n<li><p><code>email_address</code> (string, required): The email of the user to whom the static account will be linked.</p>\n</li>\n<li><p><code>first_name</code> (string, required): The first name of the user.</p>\n</li>\n<li><p><code>last_name</code> (string, required): The last name of the user.</p>\n</li>\n<li><p><code>phone_number</code> (string, required): The user’s phone number.</p>\n</li>\n<li><p><strong>Response:</strong></p>\n</li>\n<li><p>Returns the details of the created static account including the account number, account name, and bank name.</p>\n</li>\n<li><p><strong>Possible Status Codes:</strong></p>\n</li>\n<li><p><code>201 Created</code>: Static account successfully created.</p>\n</li>\n<li><p><code>400 Bad Request</code>: Missing or invalid fields in the request.</p>\n</li>\n<li><p><code>409 Conflict</code>: Account already exists with the provided email or phone number.</p>\n</li>\n<li><p><code>500 Internal Server Error</code>: A problem occurred while processing the request.</p>\n</li>\n<li><p><strong>Note:</strong><br />  The static account created can be used by the customer to receive funds repeatedly. It is uniquely tied to the user profile.</p>\n</li>\n</ul>\n","urlObject":{"path":["accounts","static"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"92744979-2743-4f63-96fe-23260ac64b56","name":"Create static account","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"email_address\": \"fablecore.exe+1@gmail.com\",\r\n    \"first_name\": \"Jibril\",\r\n    \"last_name\": \"Mohammed\",\r\n    \"phone_number\": \"08034074748\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/accounts/static"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';script-src 'self' 'unsafe-inline' https://cdn.example.com;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;img-src 'self' data: https://*.example.com;font-src 'self' https://fonts.gstatic.com;connect-src 'self' https://api.example.com;frame-ancestors 'none';"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Fri, 26 Sep 2025 10:25:40 GMT"},{"key":"Content-Length","value":"199"},{"key":"Content-Type","value":"text/plain; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\"success\":true,\"message\":\"Virtual account created successfully\",\"data\":{\"account_name\":\"Jibril Mohammed\",\"account_number\":\"7582757982\",\"bank_name\":\"FCMB MFB\",\"bank_code\":\"090409\",\"currency\":\"NGN\"}}\n"}],"_postman_id":"3fa70879-389f-4bbd-8bfd-5fafc97f85fa"},{"name":"Get static virtual account details","id":"8ac7e266-340c-43a4-abe7-c5ddeabbce48","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":"{{BASE_URL}}/accounts/static/:account_number","description":"<p>Get Static Virtual Account Detail</p>\n<ul>\n<li><p><strong>Endpoint:</strong> GET /v1/accounts/static/:account_number</p>\n</li>\n<li><p><strong>Description:</strong><br />  Retrieves the details of a static virtual account using the account number. Useful for verifying the owner or status of a static account.</p>\n</li>\n<li><p><strong>Request Headers:</strong></p>\n<ul>\n<li>X-API-Key: Your API key for authentication.</li>\n</ul>\n</li>\n<li><p><strong>Path Parameter:</strong></p>\n<ul>\n<li>account_number (string, required): The static virtual account number to look up.</li>\n</ul>\n</li>\n<li><p><strong>Response:</strong></p>\n<ul>\n<li><p>Returns the static account details including:</p>\n<ul>\n<li><p>account_number</p>\n</li>\n<li><p>account_name</p>\n</li>\n<li><p>bank_name</p>\n</li>\n<li><p>associated user information (e.g., email, phone number)</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong>Possible Status Codes:</strong></p>\n<ul>\n<li><p>200 OK: Account details retrieved successfully.</p>\n</li>\n<li><p>404 Not Found: No static account found with the provided account number.</p>\n</li>\n<li><p>500 Internal Server Error: An error occurred while fetching the account details.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Note:</strong></p>\n<ul>\n<li>This endpoint is read-only and can be used to verify existing virtual accounts by third-party systems or for customer service operations.</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"path":["accounts","static",":account_number"],"host":["{{BASE_URL}}"],"query":[{"disabled":true,"key":"","value":null}],"variable":[{"type":"any","value":"","key":"account_number"}]}},"response":[{"id":"7ad77aba-3efa-4bd1-841d-596fe8b58fa8","name":"Get static virtual account details","originalRequest":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":{"raw":"{{BASE_URL}}/accounts/static/:account_number","host":["{{BASE_URL}}"],"path":["accounts","static",":account_number"],"query":[{"key":"","value":null,"type":"text","disabled":true}],"variable":[{"key":"account_number","value":"7582757982"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';script-src 'self' 'unsafe-inline' https://cdn.example.com;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;img-src 'self' data: https://*.example.com;font-src 'self' https://fonts.gstatic.com;connect-src 'self' https://api.example.com;frame-ancestors 'none';"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Fri, 26 Sep 2025 10:27:36 GMT"},{"key":"Content-Length","value":"621"},{"key":"Content-Type","value":"text/plain; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\"success\":true,\"message\":\"Virtual account details retrieved successfully\",\"data\":{\"id\":\"7bf97187-104c-45f6-8245-5dd30fd9529b\",\"merchant_id\":\"1ed909ea-f561-4166-a8d8-50589e40ecc0\",\"environment\":\"SANDBOX\",\"currency\":\"NGN\",\"bank_name\":\"FCMB MFB\",\"bank_code\":\"090409\",\"account_name\":\"Jibril Mohammed\",\"account_number\":\"7582757982\",\"updated_at\":\"2025-09-26T10:25:38.53272Z\",\"created_at\":\"2025-09-26T10:25:38.53272Z\",\"booked_balance\":0,\"available_balance\":0,\"status\":\"ACTIVE\",\"updated\":false,\"user_id\":\"e4a36dcc-38d9-4973-9457-5db8cc126e0e\",\"account_type\":\"STATIC\",\"expiry_time\":null,\"account_category\":\"CUSTOMER\",\"tier\":\"\"}}\n"},{"id":"be5652e3-8ba6-428f-905b-bab7ae1c1579","name":"Get static virtual account details","originalRequest":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":{"raw":"{{BASE_URL}}/accounts/static/:account_number","host":["{{BASE_URL}}"],"path":["accounts","static",":account_number"],"query":[{"key":"","value":null,"type":"text","disabled":true}],"variable":[{"key":"account_number","value":"7582757982"}]}},"status":"Forbidden","code":403,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';script-src 'self' 'unsafe-inline' https://cdn.example.com;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;img-src 'self' data: https://*.example.com;font-src 'self' https://fonts.gstatic.com;connect-src 'self' https://api.example.com;frame-ancestors 'none';"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Fri, 26 Sep 2025 10:33:29 GMT"},{"key":"Content-Length","value":"101"},{"key":"Content-Type","value":"text/plain; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\"success\":false,\"message\":\"account is closed - no operations can be performed on a closed account\"}\n"}],"_postman_id":"8ac7e266-340c-43a4-abe7-c5ddeabbce48"},{"name":"Get dynamic virtual account details","id":"29563fc2-a53f-4af3-8f2b-b7f0803c6891","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":"{{BASE_URL}}/accounts/dynamic/:account_number","description":"<p>Get Dynamic Virtual Account Detail</p>\n<ul>\n<li><p><strong>Endpoint:</strong> GET /v1/accounts/dynamic/:account_number</p>\n</li>\n<li><p><strong>Description:</strong><br />  Retrieves the details of a dynamic virtual account using the account number. This is useful for validating a temporary account created for one-time payments.</p>\n</li>\n<li><p><strong>Request Headers:</strong></p>\n<ul>\n<li>X-API-Key: Your API key for authentication.</li>\n</ul>\n</li>\n<li><p><strong>Path Parameter:</strong></p>\n<ul>\n<li>account_number (string, required): The dynamic virtual account number to retrieve.</li>\n</ul>\n</li>\n<li><p><strong>Response:</strong></p>\n<ul>\n<li><p>Returns details of the dynamic account including:</p>\n<ul>\n<li><p>account_number</p>\n</li>\n<li><p>account_name</p>\n</li>\n<li><p>bank_name</p>\n</li>\n<li><p>expiration_time</p>\n</li>\n<li><p>reference</p>\n</li>\n<li><p>amount</p>\n</li>\n<li><p>status</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong>Possible Status Codes:</strong></p>\n<ul>\n<li><p>200 OK: Account details successfully retrieved.</p>\n</li>\n<li><p>404 Not Found: No dynamic account exists with the provided account number.</p>\n</li>\n<li><p>410 Gone: Account has expired and is no longer active.</p>\n</li>\n<li><p>500 Internal Server Error: An unexpected error occurred while retrieving the account details.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Note:</strong></p>\n<ul>\n<li>Dynamic accounts are time-bound. If the account has expired, the system may respond with a <code>410 Gone</code> status.</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"path":["accounts","dynamic",":account_number"],"host":["{{BASE_URL}}"],"query":[{"disabled":true,"key":"","value":null}],"variable":[{"id":"3e7dbcb4-0a49-4c25-97b9-473bd7d54f0b","type":"any","value":"","key":"account_number"}]}},"response":[{"id":"2912d581-4fea-45a4-9d17-3eec0d053450","name":"Get dynamic virtual account details","originalRequest":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":{"raw":"{{BASE_URL}}/accounts/dynamic/:account_number","host":["{{BASE_URL}}"],"path":["accounts","dynamic",":account_number"],"query":[{"key":"","value":null,"type":"text","disabled":true}],"variable":[{"key":"account_number","value":"4097553750"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';script-src 'self' 'unsafe-inline' https://cdn.example.com;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;img-src 'self' data: https://*.example.com;font-src 'self' https://fonts.gstatic.com;connect-src 'self' https://api.example.com;frame-ancestors 'none';"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Fri, 26 Sep 2025 10:28:25 GMT"},{"key":"Content-Length","value":"620"},{"key":"Content-Type","value":"text/plain; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\"success\":true,\"message\":\"Virtual account details retrieved successfully\",\"data\":{\"id\":\"fbe211ec-90e1-4b8b-ab7f-81e56fe6d2e9\",\"merchant_id\":\"1ed909ea-f561-4166-a8d8-50589e40ecc0\",\"environment\":\"SANDBOX\",\"currency\":\"NGN\",\"bank_name\":\"FCMB MFB\",\"bank_code\":\"090409\",\"account_name\":\"Dynamic Test Account\",\"account_number\":\"4097553750\",\"updated_at\":\"2025-09-26T10:24:12.562202Z\",\"created_at\":\"2025-09-26T10:24:12.562202Z\",\"booked_balance\":0,\"available_balance\":0,\"status\":\"ACTIVE\",\"updated\":false,\"user_id\":null,\"account_type\":\"DYNAMIC\",\"expiry_time\":\"2025-09-26T10:54:11.701702Z\",\"account_category\":\"CUSTOMER\",\"tier\":\"\"}}\n"}],"_postman_id":"29563fc2-a53f-4af3-8f2b-b7f0803c6891"},{"name":"Close static virtual account","id":"5364f498-fb06-48ab-87be-63d1482cb4c6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"DELETE","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"account_number\": 7000026062,\r\n    \"note\": \"for testing\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/accounts/static/close","description":"<p>Close Static Virtual Account</p>\n<ul>\n<li><p><strong>Endpoint:</strong> POST /v1/accounts/static/close</p>\n</li>\n<li><p><strong>Description:</strong><br />  Closes a static virtual account. This action disables the account, preventing any further transactions. Typically used when an account is no longer needed or needs to be deactivated for security reasons.</p>\n</li>\n<li><p><strong>Request Headers:</strong></p>\n<ul>\n<li>X-API-Key: Your API key for authentication.</li>\n</ul>\n</li>\n<li><p><strong>Request Body:</strong></p>\n<ul>\n<li><p>account_number (number, required): The static account number to be closed.</p>\n</li>\n<li><p>note (string, optional): A remark or reason for closing the account.</p>\n</li>\n</ul>\n</li>\n<li><p>{ \"account_number\": 7000026062, \"note\": \"for testing\"}</p>\n</li>\n</ul>\n","urlObject":{"path":["accounts","static","close"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"8782c2c8-08bc-4186-8128-ffea3096ab39","name":"Close static virtual account","originalRequest":{"method":"DELETE","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"account_number\": 7582757982,\r\n    \"note\": \"for testing\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/accounts/static/close"},"status":"Forbidden","code":403,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';script-src 'self' 'unsafe-inline' https://cdn.example.com;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;img-src 'self' data: https://*.example.com;font-src 'self' https://fonts.gstatic.com;connect-src 'self' https://api.example.com;frame-ancestors 'none';"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Fri, 26 Sep 2025 10:33:54 GMT"},{"key":"Content-Length","value":"101"},{"key":"Content-Type","value":"text/plain; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\"success\":false,\"message\":\"account is closed - no operations can be performed on a closed account\"}\n"}],"_postman_id":"5364f498-fb06-48ab-87be-63d1482cb4c6"},{"name":"List accounts","id":"8ee5ebdb-5419-4641-b090-9730ca71888f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":"{{BASE_URL}}/accounts","description":"<p>List Virtual Accounts</p>\n<ul>\n<li><p><strong>Endpoint:</strong> GET /v1/accounts</p>\n</li>\n<li><p><strong>Description:</strong><br />  Retrieves a list of all virtual accounts (static and/or dynamic) associated with your API key. You can optionally filter the results by account type.</p>\n</li>\n<li><p><strong>Request Headers:</strong></p>\n<ul>\n<li>X-API-Key: Your API key for authentication.</li>\n</ul>\n</li>\n<li><p><strong>Query Parameters:</strong></p>\n<ul>\n<li>account_type (string, optional): Use <code>STATIC</code> to list only static accounts, or <code>DYNAMIC</code> to list only dynamic accounts.</li>\n</ul>\n</li>\n<li><p><strong>Examples:</strong></p>\n<ul>\n<li><p>List all accounts: <code>GET /v1/accounts</code></p>\n</li>\n<li><p>List only static accounts: <code>GET /v1/accounts?account_type=STATIC</code></p>\n</li>\n<li><p>List only dynamic accounts: <code>GET /v1/accounts?account_type=DYNAMIC</code></p>\n</li>\n</ul>\n</li>\n<li><p><strong>Response:</strong></p>\n<ul>\n<li><p>An array of account objects, each containing:</p>\n<ul>\n<li><p>account_number</p>\n</li>\n<li><p>account_name</p>\n</li>\n<li><p>account_type (STATIC or DYNAMIC)</p>\n</li>\n<li><p>bank_name</p>\n</li>\n<li><p>status</p>\n</li>\n<li><p>reference (for dynamic accounts)</p>\n</li>\n<li><p>expiration_time (if applicable)</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong>Possible Status Codes:</strong></p>\n<ul>\n<li><p>200 OK: Accounts retrieved successfully.</p>\n</li>\n<li><p>400 Bad Request: Invalid account_type parameter.</p>\n</li>\n<li><p>500 Internal Server Error: Failed to retrieve accounts.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Note:</strong></p>\n<ul>\n<li>Pagination may be available depending on implementation. Consider checking for <code>page</code> and <code>limit</code> query parameters if supported.</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"path":["accounts"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"75b1bab3-789a-4232-811d-c9f0b2793c0b","name":"Dynamic accounts success response","originalRequest":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":{"raw":"{{BASE_URL}}/accounts?account_type=DYNAMIC","host":["{{BASE_URL}}"],"path":["accounts"],"query":[{"key":"account_type","value":"DYNAMIC"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin"},{"key":"Date","value":"Sun, 27 Apr 2025 10:32:05 GMT"},{"key":"Content-Length","value":"563"},{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Accounts retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": \"6bcdc009-dbee-4000-b893-e4b2e7b9162a\",\n            \"merchant_id\": \"d0c70a28-1023-484e-849f-3fb41cee743b\",\n            \"environment\": \"SANDBOX\",\n            \"currency\": \"NGN\",\n            \"bank_name\": \"First City Monument Bank (FCMB)\",\n            \"account_name\": \"Sandbox Account ONHKMF\",\n            \"account_number\": \"9990012793\",\n            \"account_type\": \"DYNAMIC\",\n            \"account_category\": \"CUSTOMER\",\n            \"status\": \"ACTIVE\",\n            \"created_at\": \"2025-04-26T13:12:19.333674Z\",\n            \"expiry_time\": \"2025-04-26T13:42:18.342752Z\",\n            \"is_expired\": true\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"limit\": 10,\n        \"totalItems\": 1,\n        \"totalPages\": 1\n    }\n}"},{"id":"28ba64fd-f59b-4f41-bb10-475c74c63a94","name":"Static account success response","originalRequest":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":{"raw":"{{BASE_URL}}/accounts?account_type=STATIC","host":["{{BASE_URL}}"],"path":["accounts"],"query":[{"key":"account_type","value":"STATIC"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin"},{"key":"Date","value":"Sun, 27 Apr 2025 10:33:21 GMT"},{"key":"Content-Length","value":"925"},{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Accounts retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": \"76e9142c-12a1-4fdc-be18-80b4ff6a716a\",\n            \"merchant_id\": \"d0c70a28-1023-484e-849f-3fb41cee743b\",\n            \"environment\": \"SANDBOX\",\n            \"currency\": \"NGN\",\n            \"bank_name\": \"First City Monument Bank (FCMB)\",\n            \"account_name\": \"Hassan Last\",\n            \"account_number\": \"7000026062\",\n            \"account_type\": \"STATIC\",\n            \"account_category\": \"CUSTOMER\",\n            \"status\": \"CLOSED\",\n            \"created_at\": \"2025-04-26T14:36:45.015319Z\",\n            \"expiry_time\": null,\n            \"is_expired\": false\n        },\n        {\n            \"id\": \"3be51c39-222d-433e-b35a-ade426f55b00\",\n            \"merchant_id\": \"d0c70a28-1023-484e-849f-3fb41cee743b\",\n            \"environment\": \"SANDBOX\",\n            \"currency\": \"NGN\",\n            \"bank_name\": \"First City Monument Bank (FCMB)\",\n            \"account_name\": \"Hassan Last\",\n            \"account_number\": \"7000025993\",\n            \"account_type\": \"STATIC\",\n            \"account_category\": \"CUSTOMER\",\n            \"status\": \"ACTIVE\",\n            \"created_at\": \"2025-04-26T13:45:26.211718Z\",\n            \"expiry_time\": null,\n            \"is_expired\": false\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"limit\": 10,\n        \"totalItems\": 2,\n        \"totalPages\": 1\n    }\n}"},{"id":"d26a5534-ba5f-4b39-950f-681008c2c666","name":"All account type success response","originalRequest":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":"{{BASE_URL}}/accounts"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin"},{"key":"Date","value":"Sun, 27 Apr 2025 10:35:12 GMT"},{"key":"Content-Length","value":"1359"},{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Accounts retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": \"76e9142c-12a1-4fdc-be18-80b4ff6a716a\",\n            \"merchant_id\": \"d0c70a28-1023-484e-849f-3fb41cee743b\",\n            \"environment\": \"SANDBOX\",\n            \"currency\": \"NGN\",\n            \"bank_name\": \"First City Monument Bank (FCMB)\",\n            \"account_name\": \"Hassan Last\",\n            \"account_number\": \"7000026062\",\n            \"account_type\": \"STATIC\",\n            \"account_category\": \"CUSTOMER\",\n            \"status\": \"CLOSED\",\n            \"created_at\": \"2025-04-26T14:36:45.015319Z\",\n            \"expiry_time\": null,\n            \"is_expired\": false\n        },\n        {\n            \"id\": \"3be51c39-222d-433e-b35a-ade426f55b00\",\n            \"merchant_id\": \"d0c70a28-1023-484e-849f-3fb41cee743b\",\n            \"environment\": \"SANDBOX\",\n            \"currency\": \"NGN\",\n            \"bank_name\": \"First City Monument Bank (FCMB)\",\n            \"account_name\": \"Hassan Last\",\n            \"account_number\": \"7000025993\",\n            \"account_type\": \"STATIC\",\n            \"account_category\": \"CUSTOMER\",\n            \"status\": \"ACTIVE\",\n            \"created_at\": \"2025-04-26T13:45:26.211718Z\",\n            \"expiry_time\": null,\n            \"is_expired\": false\n        },\n        {\n            \"id\": \"6bcdc009-dbee-4000-b893-e4b2e7b9162a\",\n            \"merchant_id\": \"d0c70a28-1023-484e-849f-3fb41cee743b\",\n            \"environment\": \"SANDBOX\",\n            \"currency\": \"NGN\",\n            \"bank_name\": \"First City Monument Bank (FCMB)\",\n            \"account_name\": \"Sandbox Account ONHKMF\",\n            \"account_number\": \"9990012793\",\n            \"account_type\": \"DYNAMIC\",\n            \"account_category\": \"CUSTOMER\",\n            \"status\": \"ACTIVE\",\n            \"created_at\": \"2025-04-26T13:12:19.333674Z\",\n            \"expiry_time\": \"2025-04-26T13:42:18.342752Z\",\n            \"is_expired\": true\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"limit\": 10,\n        \"totalItems\": 3,\n        \"totalPages\": 1\n    }\n}"}],"_postman_id":"8ee5ebdb-5419-4641-b090-9730ca71888f"}],"id":"4b73018b-0e13-47f3-9bc5-2bd518b290cd","description":"<p>Account Folder</p>\n<p>This folder contains endpoints related to managing accounts. It includes functionality for creating accounts, fetching account details, updating account information, and performing other operations related to customer accounts. Below are the key endpoints available in this folder:</p>\n<ol>\n<li><p><strong>Create Account</strong></p>\n<ul>\n<li><p>Endpoint: <code>POST /v1/accounts</code></p>\n</li>\n<li><p>Description: This endpoint is used to create a new account for a customer.</p>\n</li>\n<li><p>Request Body:</p>\n<ul>\n<li><p><code>bvn</code> (string): The customer's BVN (Bank Verification Number).</p>\n</li>\n<li><p><code>first_name</code> (string): The first name of the customer.</p>\n</li>\n<li><p><code>last_name</code> (string): The last name of the customer.</p>\n</li>\n<li><p><code>date_of_birth</code> (string): The customer's date of birth (in the format <code>DD-MM-YYYY</code>).</p>\n</li>\n<li><p><code>phone_number</code> (string): The customer's phone number.</p>\n</li>\n<li><p><code>email</code> (string): The customer's email address.</p>\n</li>\n<li><p><code>address</code> (string): The customer's physical address.</p>\n</li>\n</ul>\n</li>\n<li><p>Response:</p>\n<ul>\n<li>Returns a success message with the account details.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong>Fetch Static Account Details</strong></p>\n<ul>\n<li><p>Endpoint: <code>GET /v1/accounts/static/:account_number</code></p>\n</li>\n<li><p>Description: This endpoint fetches the account details for a specific customer.</p>\n</li>\n<li><p>Path Parameters:</p>\n<ul>\n<li>account_number (string): The account number of the customer whose account details are being fetched.</li>\n</ul>\n</li>\n<li><p>Response:</p>\n<ul>\n<li>Returns the account details of the specified customer.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong>Fetch Dynamic Account Details</strong></p>\n<ul>\n<li><p>Endpoint: <code>GET /v1/accounts/dynamic/:account_number</code></p>\n</li>\n<li><p>Description: This endpoint fetches the account details for a specific customer.</p>\n</li>\n<li><p>Path Parameters:</p>\n<ul>\n<li>account_number (string): The account number of the customer whose account details are being fetched.</li>\n</ul>\n</li>\n<li><p>Response:</p>\n<ul>\n<li>Returns the account details of the specified customer.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong>Close Account</strong></p>\n<ul>\n<li><p>Endpoint: <code>DELETE /v1/accounts/:account_number</code></p>\n</li>\n<li><p>Description: This endpoint is used to delete a customer account.</p>\n</li>\n<li><p>Path Parameters:</p>\n<ul>\n<li>account_number (string): The account number of the customer whose account is to be deleted.</li>\n</ul>\n</li>\n<li><p>Response:</p>\n<ul>\n<li>Returns a success message confirming that the account has been deleted.</li>\n</ul>\n</li>\n</ul>\n</li>\n</ol>\n<h3 id=\"error-handling\">Error Handling:</h3>\n<ul>\n<li><p>For all endpoints, appropriate HTTP status codes will be returned for different scenarios, such as:</p>\n<ul>\n<li><p><code>400 Bad Request</code>: Missing or invalid parameters.</p>\n</li>\n<li><p><code>404 Not Found</code>: The specified account does not exist.</p>\n</li>\n<li><p><code>500 Internal Server Error</code>: A problem occurred on the server.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"notes\">Notes:</h3>\n<ul>\n<li><p>Ensure that the <code>X-API-Key</code> header is included for authentication:</p>\n<p>  X-API-Key: {{API_KEY}}</p>\n</li>\n</ul>\n","_postman_id":"4b73018b-0e13-47f3-9bc5-2bd518b290cd"},{"name":"Simulation","item":[{"name":"Simulate account and wallet","id":"64623549-12b2-4835-81bc-b4db6525d3ba","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"amount\": 10000.00,\r\n    \"account_number\": \"4000034404\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/simulate","urlObject":{"path":["simulate"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"c0b15dfe-86e7-4da0-929b-4df9f1456026","name":"Simulate account and wallet","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"amount\": 10000.00,\r\n    \"account_number\": \"4000034404\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/simulate"},"status":"OK","code":200,"_postman_previewlanguage":"plain","header":[{"key":"Content-Security-Policy","value":"default-src 'self';script-src 'self' 'unsafe-inline' https://cdn.example.com;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;img-src 'self' data: https://*.example.com;font-src 'self' https://fonts.gstatic.com;connect-src 'self' https://api.example.com;frame-ancestors 'none';"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Fri, 25 Jul 2025 22:40:31 GMT"},{"key":"Content-Length","value":"59"},{"key":"Content-Type","value":"text/plain; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\"success\":true,\"message\":\"Payment simulation successful\"}\n"}],"_postman_id":"64623549-12b2-4835-81bc-b4db6525d3ba"}],"id":"96ba224c-271f-4a46-9351-3bbc73335280","_postman_id":"96ba224c-271f-4a46-9351-3bbc73335280","description":""},{"name":"Payment Gateway","item":[{"name":"Card","item":[{"name":"Initiate Payment with card","event":[{"listen":"prerequest","script":{"id":"3f3e2341-b39f-4ec4-8ed5-02c3dc5285dc","exec":["// Fetch node-forge from a CDN\r","pm.sendRequest(\"https://cdnjs.cloudflare.com/ajax/libs/forge/1.3.1/forge.min.js\", (err, res) => {\r","    if (err) {\r","        console.error(\"Failed to load node-forge:\", err);\r","        return;\r","    }\r","    \r","    // Load the library into Postman's memory\r","    eval(res.text());\r","\r","    // 1. The fake card details you want to test\r","    const cardDetails = JSON.stringify({\r","     \"pan\": \"5060990580000217499\",\r","        \"expiry_date\": \"5003\", // Y/M\r","        \"cvv\": \"111\",\r","        \"pin\": \"1111\"\r","});\r","\r","    // 2. PASTE YOUR PUBLIC KEY DIRECTLY HERE (make sure you use the backticks ` `)\r","    const publicKeyPem =`-----BEGIN PUBLIC KEY-----\r","MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3GMi77UKMRj2+b3jGbol\r","KYAnWsQxggS5b1d092UOIS9w31+4Bzq8GtS4W0jTPmakKDCx32k1ADenZxYpJDmc\r","Qn9jW4tz0a7jjTSD+5TmEhhLU/g2dkjfNiRBYOP7d0Ur05KamMYy3P6TVSYyV4Wm\r","KwnmZIDjtHmEXcIOLUqYc9+ZCcyb4T48X4kpcRXq7uT7gzJF5iCM5kvgHpM9wb2O\r","QmEGqhLqc7uUSiDj4JQ1g4fGzrU1trovfJ8Vr5pJ/ivtYS32YsAzSLoAgo8B1zrK\r","F0+yftr+hi+trd3gR5JMQ7iVTNp1w/wKH4cNLKtuM7H8QMYiMfH14rFiBvnZlHRH\r","jwIDAQAB\r","-----END PUBLIC KEY-----`;\r","    \r","    const publicKey = forge.pki.publicKeyFromPem(publicKeyPem);\r","\r","    // 3. Encrypt the data using RSA-OAEP with SHA-256\r","    const encryptedBuffer = publicKey.encrypt(cardDetails, 'RSA-OAEP', {\r","        md: forge.md.sha256.create(),\r","        mgf1: {\r","            md: forge.md.sha256.create()\r","        }\r","    });\r","\r","    // 4. Base64 encode the result\r","    const encryptedBase64 = forge.util.encode64(encryptedBuffer);\r","\r","    // 5. Save it to a temporary variable so we can use it in the JSON body\r","    pm.environment.set(\"ENCRYPTED_CARD\", encryptedBase64);\r","});\r",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"53d8f0e3-d8d1-4126-800b-0d299201bc8f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"amount\": 100.00,\r\n    \"currency\": \"NGN\",\r\n    \"reference\": \"T53X1128090\",\r\n    \"metadata\": {\r\n        \"someData\": \"someData\"\r\n    },\r\n    \"device_information\": {\r\n        \"httpBrowserLanguage\": \"en-US\",\r\n        \"httpBrowserJavaEnabled\": true,\r\n        \"httpBrowserJavaScriptEnabled\": true,\r\n        \"httpBrowserColorDepth\": 24,\r\n        \"httpBrowserScreenHeight\": 1203,\r\n        \"httpBrowserScreenWidth\": 2138,\r\n        \"httpBrowserTimeDifference\": \"\",\r\n        \"userAgentBrowserValue\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\"\r\n    },\r\n    \"encrypted_card\":\"{{my_encrypted_card}}\"\r\n    // \"card_details\": {\r\n    //     \"pan\": \"5060990580000217499\",\r\n    //     \"expiry_date\": \"5003\", // Y/M\r\n    //     \"cvv\": \"111\",\r\n    //     \"pin\": \"1111\"\r\n    // }\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/payments/card","description":"<p>Starts a card payment. Depending on the card type, the transaction may require OTP or 3DS authentication.</p>\n","urlObject":{"path":["payments","card"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"c5bfd64c-02f1-401e-bc0d-d328ab2b6612","name":"Payment with card","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"amount\": 10000.00,\r\n    \"currency\": \"NGN\",\r\n    \"reference\": \"txn_20231201_0015\",\r\n    \"metadata\":{\r\n        \"someData\": \"someData\"\r\n    },\r\n    \"card_details\": {\r\n        \"pan\": \"5123450000000008\",\r\n        \"expiry_date\": \"3901\",\r\n        \"cvv\": \"100\",\r\n        \"pin\": \"1111\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/payments/card"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';script-src 'self' 'unsafe-inline' https://cdn.example.com;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;img-src 'self' data: https://*.example.com;font-src 'self' https://fonts.gstatic.com;connect-src 'self' https://api.example.com;frame-ancestors 'none';"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Thu, 11 Sep 2025 14:54:15 GMT"},{"key":"Content-Length","value":"332"},{"key":"Content-Type","value":"text/plain; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\"success\":true,\"message\":\"A verification code has been sent to your registered mobile number:234805***1111\",\"data\":{\"transaction_reference\":\"txn_20231201_0015\",\"requires_authentication\":true,\"auth_type\":\"OTP\",\"message\":\"A verification code has been sent to your registered mobile number:234805***1111\",\"next_action\":\"submit_otp\"}}\n"},{"id":"6429c909-e2c7-4c96-9a67-fe29d3e9415f","name":"Payment with card (3D)","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"amount\": 10000.00,\r\n    \"currency\": \"NGN\",\r\n    \"reference\": \"txn_20231201_0029\",\r\n    \"metadata\":{\r\n        \"someData\": \"someData\"\r\n    },\r\n    \"device_information\": { \r\n        \"httpBrowserLanguage\": \"en-US\",\r\n        \"httpBrowserJavaEnabled\": true,\r\n        \"httpBrowserJavaScriptEnabled\": true,\r\n        \"httpBrowserColorDepth\": 24,\r\n        \"httpBrowserScreenHeight\": 1203,\r\n        \"httpBrowserScreenWidth\": 2138,\r\n        \"httpBrowserTimeDifference\": \"\",\r\n        \"userAgentBrowserValue\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\"\r\n    },\r\n    \"callback_url\": \"https://webhook.site/51db6bef-2c95-47ba-9612-fe9df449de46\",\r\n    \"card_details\": {\r\n        \"pan\": \"4000000000002503\",\r\n        \"expiry_date\": \"5003\",\r\n        \"cvv\": \"11\",\r\n        \"pin\": \"1111\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/payments/card"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';script-src 'self' 'unsafe-inline' https://cdn.example.com;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;img-src 'self' data: https://*.example.com;font-src 'self' https://fonts.gstatic.com;connect-src 'self' https://api.example.com;frame-ancestors 'none';"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Fri, 12 Sep 2025 13:43:08 GMT"},{"key":"Content-Length","value":"816"},{"key":"Content-Type","value":"text/plain; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\"success\":true,\"message\":\"Please complete the secure authentication process with your bank\",\"data\":{\"transaction_reference\":\"txn_20231201_0029\",\"requires_authentication\":true,\"auth_type\":\"3DS\",\"message\":\"Please complete the secure authentication process with your bank\",\"next_action\":\"redirect_3ds\",\"payment_id\":\"474982513\",\"bank_code\":\"058\",\"acs_url\":\"https://qa.interswitchng.com/collections/wibmosecure\",\"term_url\":\"http://localhost:6081/collections/api/v1/pay/wibmoCallBack\",\"md\":\"474982513\",\"jwt\":\"eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjRkMDVlYmY1LTJjYzMtNGIzNS05MDkyLWIyMmE0YzMxYTAxNyIsInRocmVlRFNNZXRob2ROb3RpZmljYXRpb25VUkwiOiJodHRwczovLzNkczItYXBpLTNkc3NlcnZlci1pbnRnLnBjLmVuc3RhZ2Utc2FzLmNvbS93cmFwcGVyYXBpL2Flcmlvbi8zZHNzL2VtdmNvL3BBcnEvMzg3MTQ1ZDQtMGM5MC00OTI0LWFiYTYtMmViMTMyNGZlOWE1In0=\",\"eci_flag\":\"07\"}}\n"}],"_postman_id":"53d8f0e3-d8d1-4126-800b-0d299201bc8f"},{"name":"Approve Card Payment","id":"25a60cd0-471a-4286-82cc-3505a697d165","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"otp\": \"123456\",\r\n    \"transaction_reference\": \"txn_20231201_0020\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/payments/card/approve","description":"<p>Approves card payment using OTP received.</p>\n","urlObject":{"path":["payments","card","approve"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"c58fa88a-ce78-4af3-8242-22abf197a7e2","name":"Approve Card Payment With OTP","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"otp\": \"123456\",\r\n    \"transaction_reference\": \"txn_20231201_0020\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/payments/card/approve"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Approved by Financial Institution\",\n    \"data\": {\n        \"transaction_reference\": \"txn_20231201_0020\",\n        \"message\": \"Approved by Financial Institution\",\n        \"status\": \"COMPLETED\",\n        \"amount\": \"10000.00\"\n    }\n}"},{"id":"fbb72ac3-fe83-44eb-94b1-28fbaedd7dd5","name":"Approve Card Payment With 3DS","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"transaction_reference\": \"txn_20231201_0032\",\r\n    \"eci_flag\": \"07\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/payments/card/approve"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\r\n    \"success\": true,\r\n    \"message\": \"Approved by Financial Institution\",\r\n    \"data\": {\r\n        \"transaction_reference\": \"txn_20231201_0020\",\r\n        \"message\": \"Approved by Financial Institution\",\r\n        \"status\": \"COMPLETED\",\r\n        \"amount\": \"10000.00\"\r\n    }"}],"_postman_id":"25a60cd0-471a-4286-82cc-3505a697d165"},{"name":"Resend OTP For Payment With Card","id":"92f6f021-8c7f-4fa9-843e-7baaab4771b5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"transaction_reference\": \"txn_20231201_0024\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/payments/card/resend-otp","description":"<p>Resends OTP if the user did not receive it.</p>\n","urlObject":{"path":["payments","card","resend-otp"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"cc4ed135-9944-40fe-8d19-de3327e00a6d","name":"New Request","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"transaction_reference\": \"txn_20231201_0024\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/payments/card/resend-otp"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';script-src 'self' 'unsafe-inline' https://cdn.example.com;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;img-src 'self' data: https://*.example.com;font-src 'self' https://fonts.gstatic.com;connect-src 'self' https://api.example.com;frame-ancestors 'none';"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Fri, 12 Sep 2025 08:18:53 GMT"},{"key":"Content-Length","value":"334"},{"key":"Content-Type","value":"text/plain; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\"success\":true,\"message\":\"A verification code has been sent to your registered mobile number: 234805***1111\",\"data\":{\"transaction_reference\":\"txn_20231201_0024\",\"requires_authentication\":true,\"auth_type\":\"OTP\",\"message\":\"A verification code has been sent to your registered mobile number: 234805***1111\",\"next_action\":\"submit_otp\"}}\n"}],"_postman_id":"92f6f021-8c7f-4fa9-843e-7baaab4771b5"}],"id":"903a9352-564f-4ed7-bab8-c83d1eba22dc","description":"<p>Handles payments using credit or debit cards. Supports <strong>normal OTP flow</strong> and <strong>3D Secure (3DS) flow</strong>.</p>\n","_postman_id":"903a9352-564f-4ed7-bab8-c83d1eba22dc"},{"name":"USSD","item":[{"name":"Initiate Payment With USSD","id":"9c6b0411-cafd-4073-9755-8aa373b79fb0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n     \"amount\": \"100\",\r\n     \"bank_code\": \"GTB\",\r\n     \"currency_code\": \"566\",\r\n     \"transaction_reference\": \"TX1R69HAAEAEYVTD1UEY93O4\",\r\n     \"sursurge\": 5,\r\n     \"metadata\": {\r\n        \"someData\": \"some kind of object\"\r\n     }\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/payments/ussd","description":"<p>Starts a USSD payment by generating a code for the user to dial.</p>\n","urlObject":{"path":["payments","ussd"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"32f6c6bc-d9c4-49fa-b9b8-464d6357278e","name":"Initiate Payment With USSD","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n     \"amount\": \"10000\",\r\n     \"bank_code\": \"GTB\",\r\n     \"currency_code\": \"566\",\r\n     \"transaction_reference\": \"bn12222z2aaz\",\r\n     \"metadata\": {\r\n        \"someData\": \"some kind of object\"\r\n     }\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/payments/ussd"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';script-src 'self' 'unsafe-inline' https://cdn.example.com;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;img-src 'self' data: https://*.example.com;font-src 'self' https://fonts.gstatic.com;connect-src 'self' https://api.example.com;frame-ancestors 'none';"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Tue, 16 Sep 2025 16:10:19 GMT"},{"key":"Content-Length","value":"223"},{"key":"Content-Type","value":"text/plain; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\"success\":true,\"message\":\"USSD payment initiated\",\"data\":{\"bank_short_code\":\"*737*000*3865#\",\"default_short_code\":\"*322*419*051691201*3865#\",\"reference\":\"3865\",\"response_code\":\"00\",\"transaction_reference\":\"bn12222z2aaz\"}}\n"}],"_postman_id":"9c6b0411-cafd-4073-9755-8aa373b79fb0"},{"name":"Get USSD Banks","id":"f0f127d0-565a-4249-af6a-77e0b000bf09","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"amount\": 10000.00,\r\n    \"currency\": \"NGN\",\r\n    \"reference\": \"txn_20231201_001\",\r\n    \"metadata\":{\r\n        \"someData\": \"someData\"\r\n    },\r\n    \"card_details\": {\r\n        \"pan\": \"5123450000000008\",\r\n        \"expiry_date\": \"3901\",\r\n        \"cvv\": \"100\",\r\n        \"pin\": \"1111\"\r\n    }\r\n}"},"url":"{{BASE_URL}}/payments/ussd/banks","urlObject":{"path":["payments","ussd","banks"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"9e2d7786-d016-4585-8b70-21b4da8b493b","name":"New Request","originalRequest":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"amount\": 10000.00,\r\n    \"currency\": \"NGN\",\r\n    \"reference\": \"txn_20231201_001\",\r\n    \"metadata\":{\r\n        \"someData\": \"someData\"\r\n    },\r\n    \"card_details\": {\r\n        \"pan\": \"5123450000000008\",\r\n        \"expiry_date\": \"3901\",\r\n        \"cvv\": \"100\",\r\n        \"pin\": \"1111\"\r\n    }\r\n}"},"url":"{{BASE_URL}}/payments/ussd/banks"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Security-Policy","value":"default-src 'self';script-src 'self' 'unsafe-inline' https://cdn.example.com;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;img-src 'self' data: https://*.example.com;font-src 'self' https://fonts.gstatic.com;connect-src 'self' https://api.example.com;frame-ancestors 'none';"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Tue, 16 Sep 2025 17:35:30 GMT"},{"key":"Content-Length","value":"1105"},{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"USSD Banks successfully retrieved\",\n    \"data\": [\n        {\n            \"cbn_code\": \"ABP\",\n            \"code\": \"ABP\",\n            \"name\": \"Access Bank\"\n        },\n        {\n            \"cbn_code\": \"DBP\",\n            \"code\": \"DBP\",\n            \"name\": \"Diamond Bank\"\n        },\n        {\n            \"cbn_code\": \"ECO\",\n            \"code\": \"ECO\",\n            \"name\": \"Ecobank\"\n        },\n        {\n            \"cbn_code\": \"FBP\",\n            \"code\": \"FBP\",\n            \"name\": \"Fidelity Bank\"\n        },\n        {\n            \"cbn_code\": \"SBP\",\n            \"code\": \"SBP\",\n            \"name\": \"First\"\n        },\n        {\n            \"cbn_code\": \"FBN\",\n            \"code\": \"FBN\",\n            \"name\": \"First Bank\"\n        },\n        {\n            \"cbn_code\": \"GTB\",\n            \"code\": \"GTB\",\n            \"name\": \"Guarantee Trust  Bank\"\n        },\n        {\n            \"cbn_code\": \"KSB\",\n            \"code\": \"KSB\",\n            \"name\": \"Keystone Bank\"\n        },\n        {\n            \"cbn_code\": \"QUICKTELLER\",\n            \"code\": \"QUICKTELLER\",\n            \"name\": \"QUICKTELLER\"\n        },\n        {\n            \"cbn_code\": \"SKYE\",\n            \"code\": \"SKYE\",\n            \"name\": \"Skye Bank\"\n        },\n        {\n            \"cbn_code\": \"JAIZ\",\n            \"code\": \"JAIZ\",\n            \"name\": \"Test Bank\"\n        },\n        {\n            \"cbn_code\": \"IBTC\",\n            \"code\": \"IBTC\",\n            \"name\": \"Test USSD\"\n        },\n        {\n            \"cbn_code\": \"UBP\",\n            \"code\": \"UBP\",\n            \"name\": \"Test USSD\"\n        },\n        {\n            \"cbn_code\": \"WEMA\",\n            \"code\": \"WEMA\",\n            \"name\": \"Test USSD\"\n        },\n        {\n            \"cbn_code\": \"HBP\",\n            \"code\": \"HBP\",\n            \"name\": \"Test USSD\"\n        },\n        {\n            \"cbn_code\": \"FCMB\",\n            \"code\": \"FCMB\",\n            \"name\": \"Test USSD\"\n        },\n        {\n            \"cbn_code\": \"UBN\",\n            \"code\": \"UBN\",\n            \"name\": \"Union Bank\"\n        },\n        {\n            \"cbn_code\": \"UBA\",\n            \"code\": \"UBA\",\n            \"name\": \"United Bank for Africa\"\n        },\n        {\n            \"cbn_code\": \"ZIB\",\n            \"code\": \"ZIB\",\n            \"name\": \"Zenith Bank\"\n        }\n    ]\n}"}],"_postman_id":"f0f127d0-565a-4249-af6a-77e0b000bf09"},{"name":"Get USSD Bank By Code","id":"194236d5-6f4f-4212-8d18-75b4fe75fede","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"x-api-key","value":"{{X-API-Key}}","type":"text"}],"url":"{{BASE_URL}}/payments/ussd/banks/:code","urlObject":{"path":["payments","ussd","banks",":code"],"host":["{{BASE_URL}}"],"query":[],"variable":[{"type":"any","value":"HBP","key":"code"}]}},"response":[{"id":"cdfe8838-48d8-47a9-b1b3-760c3e03f763","name":"Get USSD Bank By Code","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"{{X-API-Key}}","type":"text"}],"url":{"raw":"{{BASE_URL}}/payments/ussd/banks/:code","host":["{{BASE_URL}}"],"path":["payments","ussd","banks",":code"],"variable":[{"key":"code","value":"HBP"}]}},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';script-src 'self' 'unsafe-inline' https://cdn.example.com;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;img-src 'self' data: https://*.example.com;font-src 'self' https://fonts.gstatic.com;connect-src 'self' https://api.example.com;frame-ancestors 'none';"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Wed, 17 Sep 2025 08:49:15 GMT"},{"key":"Content-Length","value":"124"},{"key":"Content-Type","value":"text/plain; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\"success\":true,\"message\":\"USSD Bank successfully retrieved\",\"data\":{\"name\":\"Heritage Bank\",\"code\":\"HBP\",\"cbn_code\":\"HBP\"}}\n"}],"_postman_id":"194236d5-6f4f-4212-8d18-75b4fe75fede"}],"id":"5fe97991-757e-46dc-a26a-65435f9b78cd","description":"<p>Handles payments via USSD codes. This method allows users to pay without using cards, typically on mobile phones that support USSD.</p>\n","_postman_id":"5fe97991-757e-46dc-a26a-65435f9b78cd"},{"name":"Bank Transfer (dynamic virtual account)","item":[{"name":"Generate Virtual Account (Dynamic)","id":"33bc77a6-b4e1-4127-9dc9-1a8d497dc14c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n     \"amount\": \"100\",\r\n     \"currency_code\": \"566\",\r\n     \"provider\": \"WEMA\", \r\n     \"transaction_reference\": \"TX3XIW7WYY11QQQP97UJ22IJO270\",\r\n     \"metadata\": {\r\n        \"someData\": \"some kind of object\"\r\n     }\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/payments/virtual-account/generate","description":"<p>Generates a unique account number for a user to receive payments.</p>\n","urlObject":{"path":["payments","virtual-account","generate"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"0e1509af-9e89-41ac-887f-750b9da26336","name":"New Request","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n     \"amount\": \"10000\",\r\n     \"currency_code\": \"566\",\r\n     \"provider\": \"WEMA\", // OPTIONAL\r\n     \"transaction_reference\": \"bn1yy2222z2aAaz\",\r\n     \"metadata\": {\r\n        \"someData\": \"some kind of object\"\r\n     }\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/payments/vitual-acccount/generate"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';script-src 'self' 'unsafe-inline' https://cdn.example.com;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;img-src 'self' data: https://*.example.com;font-src 'self' https://fonts.gstatic.com;connect-src 'self' https://api.example.com;frame-ancestors 'none';"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Thu, 18 Sep 2025 10:36:07 GMT"},{"key":"Content-Length","value":"284"},{"key":"Content-Type","value":"text/plain; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\"success\":true,\"message\":\"Virtual account created\",\"data\":{\"account_name\":\"Quickteller Business Payment\",\"account_number\":\"7610665773\",\"amount\":10000,\"bank_name\":\"Wema Bank\",\"provider\":\"WEMA\",\"response_code\":\"Z0\",\"transaction_reference\":\"bn1yy2222z2aAaz\",\"validity_period_mins\":30}}\n"}],"_postman_id":"33bc77a6-b4e1-4127-9dc9-1a8d497dc14c"}],"id":"58ceeeca-75e9-4115-b1f4-50cbe9281e7b","description":"<p>Handles <strong>bank transfer payments</strong> using dynamically generated account numbers. Each user gets a unique account to deposit funds.</p>\n","_postman_id":"58ceeeca-75e9-4115-b1f4-50cbe9281e7b"},{"name":"Initiate Payment Page","id":"84d50c8a-34c2-4d77-b46a-73ab8b482265","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"x-api-key","value":"ftsk_9f5854ee670011cc78d363d3d7781c2bb1051422b4fe9690024f8e6bde6287dc_2904748957","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"amount\": 5000,\n  \"currency\": \"NGN\",\n  \"reference\": \"order_12S3458SS9118701098990\",\n  \"allowed_methods\": [\"card\", \"ussd\", \"qrcode\", \"bank_transfer\"],\n  \"success_url\": \"https://yoursite.com/payment/success\",\n  \"cancel_url\": \"https://yoursite.com/payment/cancel\"\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/payments/checkout","urlObject":{"path":["payments","checkout"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"84d50c8a-34c2-4d77-b46a-73ab8b482265"}],"id":"21eb1361-bd62-4f25-a243-886b3580e1c8","description":"<p>This API allows processing of payments via <strong>Card</strong>, <strong>USSD</strong>, and <strong>Bank Transfer (Dynamic Account)</strong>. Each folder represents a payment method, with multiple endpoints for handling transactions, approvals, and verification.</p>\n<hr />\n<h2 id=\"finecore-checkout-integration-guide\">Finecore Checkout Integration Guide</h2>\n<h3 id=\"overview\">Overview</h3>\n<p>Finecore Checkout makes it easy for developers and businesses to accept payments through a simple, secure, and customizable modal — no complex setup required.</p>\n<p>You can integrate it in <strong>minutes</strong> by embedding a single script and initializing the payment modal with your API key and transaction details.</p>\n<hr />\n<h3 id=\"include-finecore-checkout-script\">Include Finecore Checkout Script</h3>\n<p>Copy and paste this script inside your HTML before the closing tag:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-html\">&lt;script src=\"https://checkout.finecore.co/finecore_pay.js\"&gt;&lt;/script&gt;\n\n</code></pre>\n<p>This script automatically attaches the <code>FinecorePay</code> object to your window.</p>\n<h3 id=\"initialize-and-open-the-payment-modal\">Initialize and Open the Payment Modal</h3>\n<p>Add the following JavaScript code to your site or app:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-html\">&lt;script&gt;\n  function payWithFinecore() {\n    window.FinecorePay.open({\n      key: \"flk_xxxxxxxxxxxxxx\", // Replace with your Finecore public key\n      amount: 5000, // Amount in kobo (₦50.00)\n      reference: \"FC_\" + new Date().getTime(), // Unique transaction reference\n      metadata: {\n        name: \"John Doe\",\n        phone: \"+2348012345678\",\n        email: \"customer@example.com\",\n      },\n      onSuccess: function (response) {\n        console.log(\"Payment successful:\", response);\n        alert(\"Payment successful! Reference: \" + response.reference);\n      },\n      onClose: function () {\n        console.log(\"Payment modal closed.\");\n      },\n    });\n  }\n&lt;/script&gt;\n\n</code></pre>\n<h3 id=\"add-a-payment-button\">Add a Payment Button</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-html\">&lt;button onclick=\"payWithFinecore()\"&gt;Pay Now&lt;/button&gt;\n\n</code></pre>\n<p>When the user clicks the <strong>Pay Now</strong> button, the Finecore Checkout modal opens, allowing them to complete payment using their preferred method.</p>\n<h3 id=\"how-it-works\">How It Works</h3>\n<ol>\n<li><p>The <code>FinecorePay</code> script securely loads your payment modal.</p>\n</li>\n<li><p>The modal connects to Finecore servers and processes payments via your provided <code>key</code> and <code>reference</code>.</p>\n</li>\n<li><p>Once payment is completed, the <code>onSuccess</code> callback returns the transaction details.</p>\n</li>\n<li><p>You can verify the payment on your backend using the reference ID.</p>\n</li>\n</ol>\n","_postman_id":"21eb1361-bd62-4f25-a243-886b3580e1c8"},{"name":"Identity","item":[{"name":"KYC","item":[{"name":"Virtual NIN","id":"20d4d2b4-3c3a-43b7-8876-68e616202d96","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"},{"key":"","value":"","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"vnin\": \"AB012345678910YZ\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyc/vnin","urlObject":{"path":["kyc","vnin"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"a38e578d-c9fa-43e7-9622-7921c7a5093f","name":"Virtual NIN","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"},{"key":"","value":"","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"id_number\": \"00000000000\",\r\n    \"first_name\": \"John\",\r\n    \"middle_name\": \"\",\r\n    \"last_name\": \"Leo\",\r\n    \"phone_number\": \"080624353539\",\r\n    \"gender\": \"M\", // M OR F\r\n    \"country\": \"NG\",\r\n    \"date_of_birth\": \"\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyc/nin-verification/match"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"VNIN verification details retrieved\",\n    \"data\": {\n        \"vnin\": \"AB012345678910YZ\",\n        \"firstname\": \"John\",\n        \"middlename\": \"Doe\",\n        \"lastname\": \"Alamutu\",\n        \"gender\": \"M\",\n        \"mobile\": \"08012345678\",\n        \"photo\": \"<base64-encoded-jpeg>\"\n    }\n}"}],"_postman_id":"20d4d2b4-3c3a-43b7-8876-68e616202d96"},{"name":"NIN Verification","id":"d9e4b81d-3987-4143-88d1-f226439a0820","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"id_number\": \"14625019521\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyc/nin","urlObject":{"path":["kyc","nin"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"d9e4b81d-3987-4143-88d1-f226439a0820"},{"name":"BVN Verification","id":"de115c48-9558-4ab2-abca-bf3b0bb87b53","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"id_number\": \"22347483927\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyc/bvn","urlObject":{"path":["kyc","bvn"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"e9b4ea3d-8091-44dd-80fc-6be668229828","name":"BVN Verification","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"id_number\": \"22347483927\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyc/bvn"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Wed, 08 Jul 2026 14:18:47 GMT"},{"key":"Content-Length","value":"201"},{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"BVN verification details retrieved\",\n    \"data\": {\n        \"date_of_birth\": \"05-Nov-1970\",\n        \"first_name\": \"JOHN\",\n        \"last_name\": \"DOE\",\n        \"middle_name\": \"DONG\",\n        \"phone_number_1\": \"08034074734\"\n    }\n}"}],"_postman_id":"de115c48-9558-4ab2-abca-bf3b0bb87b53"},{"name":"BVN Verification Advance","id":"49915cc0-6f55-4cc6-8803-6bb7b8be9e6e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"country\": \"NG\",\r\n    \"id_number\": \"00000000000\"\r\n}"},"url":"{{BASE_URL}}/kyc/bvn-verification/match","urlObject":{"path":["kyc","bvn-verification","match"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"60509516-95e8-4d12-9222-9a08ecc32922","name":"BVN Verification Advance","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"id_number\": \"22318307367\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyc/bvn/advanced"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Wed, 08 Jul 2026 14:24:08 GMT"},{"key":"Content-Length","value":"586"},{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"BVN advanced verification details retrieved\",\n    \"data\": {\n        \"bvn\": \"22347483927\",\n        \"date_of_birth\": \"05-Nov-1970\",\n        \"enrollment_bank\": \"\",\n        \"enrollment_branch\": \"\",\n        \"first_name\": \"JOHN\",\n        \"gender\": \"Male\",\n        \"image\": \"\",\n        \"last_name\": \"DOE\",\n        \"level_of_account\": \"\",\n        \"lga_of_origin\": \"Gwoza\",\n        \"lga_of_residence\": \"\",\n        \"marital_status\": \"Single\",\n        \"middle_name\": \"DONG\",\n        \"phone_number_1\": \"\",\n        \"phone_number_2\": \"\",\n        \"registration_date\": \"27-Jul-2015\",\n        \"residential_address\": \"HOUSE NO 22 NASSARAWA BACOCO ROAD\",\n        \"state_of_origin\": \"Borno State\",\n        \"state_of_residence\": \"\",\n        \"title\": \"\",\n        \"watch_listed\": \"False\"\n    }\n}"}],"_postman_id":"49915cc0-6f55-4cc6-8803-6bb7b8be9e6e"},{"name":"Voter ID Verification Match","id":"88b99109-7e87-4e7c-9154-4baf14879e94","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"},{"key":"","value":"","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"id_number\": \"0000000000000000000\",\r\n    \"first_name\": \"John\",\r\n    \"middle_name\": \"\",\r\n    \"last_name\": \"Leo\",\r\n    \"phone_number\": \"080624353539\",\r\n    \"gender\": \"M\", // M OR F\r\n    \"country\": \"NG\",\r\n    \"date_of_birth\": \"\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyc/voter-id-verification/match","urlObject":{"path":["kyc","voter-id-verification","match"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"ea5cbd7d-4049-41d7-b620-d3a2692f0935","name":"Voter ID Verification Match","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"},{"key":"","value":"","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"id_number\": \"0000000000000000000\",\r\n    \"first_name\": \"John\",\r\n    \"middle_name\": \"\",\r\n    \"last_name\": \"Leo\",\r\n    \"phone_number\": \"080624353539\",\r\n    \"gender\": \"M\", // M OR F\r\n    \"country\": \"NG\",\r\n    \"date_of_birth\": \"\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyc/voter-id-verification/match"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';script-src 'self' 'unsafe-inline' https://cdn.example.com;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;img-src 'self' data: https://*.example.com;font-src 'self' https://fonts.gstatic.com;connect-src 'self' https://api.example.com;frame-ancestors 'none';"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Wed, 20 Aug 2025 23:09:18 GMT"},{"key":"Content-Length","value":"385"},{"key":"Content-Type","value":"text/plain; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\"success\":true,\"message\":\"nin verification details retrieved\",\"data\":{\"dob_verified\":\"not_provided\",\"gender_verified\":\"exact_match\",\"id_number_verified\":\"exact_match\",\"id_type\":\"VOTERS_ID\",\"id_verified\":\"partial_match\",\"names_verified\":\"partial_match\",\"phone_number_verified\":\"no_match\",\"photo\":\"\",\"secondary_id_number_verified\":\"not_provided\",\"verification_status\":\"partial_match\"}}\n"}],"_postman_id":"88b99109-7e87-4e7c-9154-4baf14879e94"},{"name":"Voter ID Verification","id":"a446074a-3971-4342-b320-89d48e6decb2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"},{"key":"","value":"","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"id_number\": \"0000000000000000000\",\r\n    \"first_name\": \"John\",\r\n    \"middle_name\": \"\",\r\n    \"last_name\": \"Leo\",\r\n    \"phone_number\": \"080624353539\",\r\n    \"gender\": \"M\", // M OR F\r\n    \"country\": \"NG\",\r\n    \"date_of_birth\": \"\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyc/voter-id-verification","urlObject":{"path":["kyc","voter-id-verification"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"6489ce1c-baf9-40d6-b59a-dfb697396b9d","name":"Voter ID Verification","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"},{"key":"","value":"","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"id_number\": \"0000000000000000000\",\r\n    \"first_name\": \"John\",\r\n    \"middle_name\": \"\",\r\n    \"last_name\": \"Leo\",\r\n    \"phone_number\": \"080624353539\",\r\n    \"gender\": \"M\", // M OR F\r\n    \"country\": \"NG\",\r\n    \"date_of_birth\": \"\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyc/voter-id-verification"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';script-src 'self' 'unsafe-inline' https://cdn.example.com;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;img-src 'self' data: https://*.example.com;font-src 'self' https://fonts.gstatic.com;connect-src 'self' https://api.example.com;frame-ancestors 'none';"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Wed, 20 Aug 2025 23:13:09 GMT"},{"key":"Content-Type","value":"text/plain; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\"success\":true,\"message\":\"kyc verification details retrieved\",\"data\":{\"dob_verified\":\"\",\"gender_verified\":\"\",\"id_number_verified\":\"\",\"id_type\":\"VOTER_ID\",\"id_verified\":\"\",\"names_verified\":\"\",\"phone_number_verified\":\"\",\"photo\":\"/9j/2wBDAAsICAoIBwsKCQoNDAsNERwSEQ8PESIZGhQcKSQrKigkJyctMkA3LTA9MCcnOEw5PUNFSElIKzZPVU5GVEBHSEX/2wBDAQwNDREPESESEiFFLicuRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUX/wAARCAFAAeADASIAAhEBAxEB/8QAHAABAAIDAQEBAAAAAAAAAAAAAAECAwQFBgcI/8QAOBAAAgIBAgQEBAMHBAMBAAAAAAECAxEEIQUSMUEGE1FhIjJxgRSRwQcVI0JSobEkM5LRYuHx8P/EABoBAQEBAQEBAQAAAAAAAAAAAAABAgMEBQb/xAAmEQEBAAICAgIBBAMBAAAAAAAAAQIRAzESIQRBUSIyQmEFE3EU/9oADAMBAAIRAxEAPwD60ACoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASQAJAAAAAAAAAAAAgACQBAJIAkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASQAAAAAAAA3hZZihqabeby7IT5Xh8ss4fuBlBhs1MKouUnsuu3QrDWVWSxGXM2srlWdijYBg1Grr09ErZvEUc3QeItNrG4v+HPtFvfHuNDs5GTh6nxDpdPf5duohU9vmaR57ifj6vSRshp5xnb0i30+v+Qate6laotFFat8zTw+x844J44snr/K1s4pTeNtsZ6PHcycR8Vw4XRGdMXqbr5N115eMLq2F0+jwsU84z6Fz5Vw39oWp1GoVfEq4UxUudOD9F0+59H0HEqdZXFxksyipd+j6ENabwIyMhEgAAAAAAAAACASAIAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAACSCSAAAAAAAAAAAAESlhdMks0Nbb+HjGWHKUpYS64fqUavH+IKjhd04XKpfK7H2y8YXufM9P4xnwjW66mmmD5rE8ybfRYz7/wDs+gwjp7OG36ayKnRbKXMpy2w//h884z4Kqrs1Ou0OphXTB/7L3TeOz/LYf8Wf26T8fai+mrnoip9bHztRks+nY513iey7WTseovhVLDVdMnDDxhM8p5rpwpLL6GLz4x+FPffBNtaj2lnia+zQ2aC2dmoqkuauefj26pvusHJq8S6rRSXkPyoRk5KM1nmf/RxqtUoYklnH3K3amN9tll+YN79P8DZp6K7j71s7b7nFWWr/AIvHb2ODqLnJyw01ltPBq1ahVWwefMgsNr29DPOdeqtUopVLOMIiqU3OUuaO044w846G5xDVq6VVlLlGUMrKe2H12NKVTpjzYwlnLwYHastRe2+4RsQslK6E5brONl0Pa6HxffoH/Drj5W0W5b8v0fY8NTOEU4tpZ6nQhfGdHlwsXKnlZ2ywr7ZwvjL1/D1qOTy4ZST65/6N+nWVczj5kev8zxv6HzTT+NdNw3Swpqok5Rgk5N45n3ZyNR40s1Gpi+sfRvGTTGn2/K9Sx834T40v1bpUYJpJqSj1/I9/o7/xFELE21KKks9dyFmmyAAiASAIJAAgEkASCAABIwBAAAAAAAAAAAAAAAAABIEAAAAAAAAAAAAAAAAAAAAMgDBqOVQbksrDzktZZjCTw/c5HEuIumiadkMPZ77p9kWI+Z+J+Jc+ut0+msnVp4y3hGbw36nGlxXXR0f4WvUSjp+8VL+5n8Q1006yTrtU1J59/ucSNrVnR47ozd7dfWlLZWZy2m8dUYLL3zdn9jZnDzFtv3zjsaFzw3F7tPZhKvG74evfsXjm2TlY/h7JmrRHzblF/L3Nm/kr+V/FjswRndtbqVcsN5653NXMnOLjJrl7NmLzsrYxtvHUG3RnqXOT3Ti+3uadrxNvm2XRCtpRb74JVdlk2oN7eoQhPm3Xbcy1XZksZ37FfKnX2e/TYrU482YvOH3AzXWSzyvq+nuVSdj5t+ZbPJtKVN6XmxeUtmmZ41pKMYvmbeU/0C6et8B8PhOxu+cq+nLjG/bHsfW9LWqqYRjnCWNz45wTiGn0rrc5yjKvLjyxSzLphn1LhfG9HrKa/LtTm18S9GajNdog1JcQ01dsarL64WS6RckmzahOM4qUWmn3RESAAAAAAAAAABJAAkgkAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKW2Rqg5TeEjlW8e0lV8qrrlBrf4u50dXV51Eoep828X0WaWCtbk7ZNpv+n2XuUep1PiWjlt/k5Flc/d+n1PAeJ/EC1Xw6ST5Yy5nnrlrBx6uLyo0s4WWeYpLlw3nKwca7Vc83NdXu0S1qRj1Orssa5t0unsY4TecowXT5l8OxVWNLGdzMVu+fitxxhroal/xPOctsh2b4fciUkUZaoKCljv0KXbpZlkKxSj6NdzHJZ3/AECIVbfT/wCloVOe2H7GaiMn8qzntgtc2oKSi084afZg0qqlBvma7bYNuqyuvMm+r9DRVssLv2J51NZz07BY3vOisvbPRLJoaiK89+W8t9cepfz2lsa+JWTcnn6hGanMHmWcG0rl5aVXNj1zuaTyl8XX0MibXKuwVvVaxrlbypdE89TraHjGp0bfk3TjGXwyiu/2ONXUpxa2lk2qFKM44xtjAHXnxa7VcQrvnY3OMFBTe7WO/wBT7JwCmdPDKVY8y5c7Z77nxngvJZxihWVKeHlpdFh9z7FwfVK+qHl5cXHKljCa9ixMnYAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAJIJAgAAAAAAAAAAAAAAAAAAa+rt8qvm5lFZ3yfPfF/HKatVHTpVNtOMpZ6J9/rg91xiq2eim6Muai2ku+x8B4rbqbNXNamMvOjtLm65LtZDXV1O3FPy+qeTn2Q5Hhvrtku7WsxTx7Mx3TbX6mG2vOt5yn1MbgZ658yaayxKLcnnL+4RiS23Mc01kvKDxhJ49TJXV5mELTW2CCk+iyZPKnhZizr6Xh2V8p0I8NxH5TleWR3x4bY4lM5VrumuxjslKTk2sqW2Tr6nQNR2TWTEtM5JVpZbfTH9zUzlm0y47LpxIvE8PoZo0wnJb8rZtarhlkJZitzDXTZWm3HftsWZSsXCztrTqlXJqafXZmzV/DrUnFtd/YXQlNJyecPJk00uTmUs4aNbZ0wS+Nt4WVuRDZZXX3L3csGsPdp/c11J/n0Ky24Xcq2W/THqdHTW+dKPN8PZvG5yYe/8Ak2Kb2pJJb9mRqPYcJqja5/hpfx2sRUtsn1Dwvw+3Q8Hpr1GVNZaTecZZ8V02tdbjZFuLjJNNPofcOG8Vr1Oi0s5zirLYJ4z7Gozk6oITJDIAAAAAAAAAAAAAAAAAAAAAAACSCQAIBIEAkgAAAAAAAAAAAAAAAADHdJQrcn0R8h/aItA+KKzTxxqmv4zjJNe2V6nqv2kcav0PDY6TSXSquv68vVx7rPY+Pah2Ry7LHOXdt7ltWT7a1iw5YfUx2Sy/QWSz1Zhk2zDSObE13ybMJx23zF9TVa9Hky0187wsgjMq3bP4d8nY4dw3LTaM3DOGuaUmup6LS6VQxsefPP6j18fHO6pptAklsbi0Ca6G9RWksYN2Fax0OOne1w5cNUoYlHOepbS8Er58qvL9Wdz8Mm+htU0qK2RdJcnnL+CKS+XP2OXqOBPLi4HvXWsdDHLTVzW6NaZ8/wAvl1vBLOdqMXscbWaW3S3OMkz7L+7qk2+Vb+x5zjvAYahuUUsmplce2Mscc+nzO2T6t7GOprmyzr67hjoyn27ehx5R5crB6MctvLljcb7XlYtlH67maqzElypY74NWO7x2Nuh8r2z03Ky2LrE+VQk0sZ39Tp8O4txDRSreislzNrbrh/c5k69oy5s/CbWkt5d8brfbqNq+8+HrdZbwimXEXnUNZk/X0OoeX8FcdlxjhnLbWozoxDK/m98HqEbc6kAEAAAAAAAAAAAAAAAAAAAAABIIAAAASQSQBJAAAAAAAAAAAAACG8IkrNZi0UfJf2i0Rs4vZfDUrMYpOuUWsemH3R4K7Fkluljrh9T6v4z8LX652anSwWYVtzxJ5nj2PksqZ1yk28Lv7ErU6at0MSwluYnHD/8AZnskm8oxSkmyCqT6HX4Vo3du019jlQXM0ez4FpeSjLWMnPkuo68WO66mk06hCKwdKuKWEkY4KMKuaTUYrq2c+3xFo6ZuEcyfZrueeY29PXcpO3oKY+hu1V5PNaTxLp5NJ1zTPRaHX06uGamm/T0LcbO2fKXptcnQyQSCaXoItEGTl5kORoq7o1rLeDC+J6VPErq1v3kWMs7W+xrampTi20Zfx+jm0lfDPpktcvgbjiSx2LYS+3iuNcPjOTnyroeA1tPLbNdNz6pr685fXK/I+ccYo8nVSjnuXivvSc2Prbk1xjl7meCcJ7JP0MCxnqbFb3T9Oh6HlbKbVe669dzt8E4MtY/Msb5E90t216YRxXYnBY+ZHr/BdT1N2IT5LE3h+vsWFey8MUabh6ktPFwjssybeMvpk9nHdHI4fw5xpgrnFpYfKltk68VhG2FgQSZAAAAAAAAAAAAAAAAAAAAAAAAAAACSAAAAAAAAAAAAAAACrZLKso4Pi7WLRcEvti5K3lxBxWd+2T4Rq9ZZqJSduHKUs9Nz9DcV0NHENFZRqE3CSxs9z4Nx7RaejX306bPLCWF3JVxcGb39ijybEq0nv2MMkkzLTPoo8+ohDHVn0PTVRp06bXwpdEeD4RDm4jSv/I+m6HTqShKazGO+Pc8/L+6PTw+sbUR4ZLV0xepfJFratdvqP3LwuKx+Dqljvg3L7svZmk9VFSa86GfTmRzuV+nWYz7Yr+EaGXyU+W+zj2M/D9PHRW5hY2sYwzG9VF7KSl7p5Mc7XCxNbpmblk1MMXoVdzQ6llY4rJz9NNzUd+ptyTUMmdmmvxDm1NUq4yccr1POW+G5WzUp3xi/zwdu63FjMM74prmf5mscrOi4S9tKjwxSoJy1Nsn7bf2O9w3QPSxar1E2v6ZvKKaT+Ljlz9kzbw6n1NeeTFwnUaWphmUoSWGn0PnviWvlucsYbPp98PNhGeFzR9PQ+feM6HB82NmML+uLl7wrxi6m5poqTw0aKW/U6OkeIrbL6HseFksqeMY3SymjteC7bK+Oablk3Hnw1zYT+pyJWNwxvhvfJ0uA67938Qrv5FKMGm10bCvvVFkZxWPv7MzL0OXwbUx1ejhdCtw592mdRG3NJJAAkAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIZJBRBVvBLKsI1tW262k+ux8F4rXKriV9d0l5kLH8WPc++2rng13Z8Q8W6Oem43qKpPMlLKl6p7/qMumsXm9Tjm6Y9fc1uvbJe5yTxLsTplzT2W5zdO3W8NaZ38WhttFOTPovmR09K6nmPB2k/1Gota6RSPVyqU85OGd97ejjnrTzvEdfrZycdNonYs7ObxH8u5y7dR4iTe3JFdq4xSR6q/SdWk19Dn26XUvaE5Je6Mef8ATp4b+3CjZxOUrLLnJygk45r3l65aOtw7Xx1dL8xOFkNnFrDEeF3uWZWyz+RmjpJV2YU3bNrGX0RcspVxxsdfh9nNFL0O46VPTJ75OTodJ5NcU+vc9FRVGylR9jGM2Z3TyetitPCdtskoLLbb6HmLeJW6qVlmng3CC2ck1zeywj2/FNBLMoTWE3lPG33PPajh2sU8xk17djWNi3djk6HxBr6HzLh0bHn5MS5mvY7dPijzZRV+j1Olb/lsi5w/5dV/gaWOtjhOPTbPKdzRcPsm1O2dmfRbIXKX1pnxs92s+m1FWoqUq5RakvU8v410fmcOnZFbw3PXy0VdaeIrPXONzncT0q1WhuqazzRa/sY6sq9yx8Ww1PobVU+iykyfwk3bJejabIdflz5X/Y9u3i1W5HllXh7y6Lt1OjwnQ26i3yqq3bY4tpRjnD7ZOXTGLxlv6M9R4UUv3rGMYS+LZ46r0Kj6dwCyWnqr0VkHzqPMpL5Wvr6/9HfXRHO0FThFPPVHQRtzWJIJAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBDIJIKKspJlmyrKih43xr4b/eNH4vTR/wBRDd4/mR7MpJJhen5zvrl5jrcMSTxy43RteH+GfirrLLMquDx9WfdbOH6XnlatNSrWsc/Is/mfM+M6KzhOrvVMUoedNtJerz+pw5Zccdx6ODWWeq2/DNUanrYxTS5o4/uehhXlI4nAFF1wtili+Ly/dM78WkzjfcjvrV0eSsdCllEeXobHPEwXzWG0c7pubaFsIttZK11wraaWWabuep4nDTt4Te+GdeekilFReIrvkmo3ayUyTfqjraSScVg5dKhCO0l9EdOp0qhc7cZdpI1LpzyZ9TVXfBxfzLozRjooqOP/AMjYhGt/FbdKSfTl2wcbW8R/Ba/krlmON0W2dpjL1HQq03LLDisHVoriofKjjU8Q8xKXsbkNaJcYmWOVX1aXZHNtjmDRu22c/fY072o1yl7MzJur1Hy/8FJ23JLZzlj23OBdKT1DTk047M93OqnRWedal/Fyzzup4HqdfxOP7vr8x3/FGK+uMnbDLeWnPkx1htzanOeyeUfT/Anh3UUxes1NXIpx+CMl/f2/9keDv2f3aHULV8VUMweYUrff1Z9GhCMFhI9EjzWphFJdNyyJwSaYACQAAIAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhhgohsgMhhEMqyzKMogqyxVlGORxOJ8JjerLIwUm3lxxlvsdyRjy4zUl2M2TKaq4243ceJVC0Otrp5PLg5fDHp7M2pWbkeKbFXxKi/UWQhCOGpN4y+hqai3klL2Z4s8bjNPfhfL22XqDV1ut8qlpbylskac9U4mtqLH5XmSZxnbvpfTUPKuUn5ieeb3Ni22+U+f8VZB43hs4v7EaROVEX0zuTdCEtvNima1tGzRrLIxfNXzPs4Ge/iF1tSjUlDC+aS6fY51ddj+TUQ+6wbVOjbn8d8X7IaqWI0lWplf5ktTbOSXrt+Ri1+lcpSnKTc3vzZO3RGmqGOfd+uxzuI4hFt9H3FlhL7aPDtZONjqm94noFbHkynueVrkrYRtg/ii8G/TrZSSWcYM1q+3fjZlGLXNfh8Z+d42Nam2T3Mmrb8uvP1N4OWcee1vB7uL6pKFnJTS+VRa+Zd2bHhnTq7xWrKny0aaLrhv1SeM/d5PRcNq0ktNqrdZf5Nddb+PmS5duu5ofs3o/0l1so8z5sKb6tbHo4cf5Vw5s/4veJFkiF7lkeh5UokAASQSQAAAAAAEkAAAAAAAAAAAAAAAAAAAAAAAAAABkAQAUQAyABDJIZUVZVlmQBUq0WZDAxspLqZGUkgPP8AirgsuMcMlCqSV0N456P2PP287prlZFxm4rmT7Pue7ksrDPM8Z00a7Pg6SyzjzTeO3fgy1lp5yxZOXxvVvSaaO2dzr2RSeTR4ppFqo1prY8s1uPdd2em7wbS8Q4jSpOvlqwmn1z0/7OvZ4b1cb5Vw5G1Hmy4s5/BeOangmhem/By1ah8vJYovGNuvU9TpPGHD7pTlbXqdPyxj/u0vdvsuXJ08ZXK58mP05un8OamenlZzQbWdkmZYcD1qp51KuKSz0bOxV4m4RDS5V8s4f8NVScvphLqZK/EfD46Xm5NSkofI9PNP6bo1MZ+Wbycn4cWfh7iM7o1ynBRlHKe+xwuOabiHC9NK2XK6orP1y8Hta/EMdVKv8LoNVZBreySjCMfbd5f2PO8dr1nFNNDT6zyoxX+55afxYeVjJmydtTLPqx47gmpnqnZLk5VzZwdyqrEsmtoND+FnY8YTfQ6CW69Tjl27T1G1p1lo5XjXiWo4botN+Eko2zn1aT2+h2dNF9X9jZjpOFcV4h+F4hpoX21xTjzds+h14puuPNlqPnGlt13HLaoau92ylmMa1BYTfTC/U+x+G+ER4NwuvTJYfV567+pbRcB4fw+fNptNCDznZdNjqJHqk08Vu1kWRBJplIAIJACAkAAQCQBAAAAAAAAAAAAAAAAAAAAAABkAACAJIAKBAAEMABEAEFEMgllQIZDJZVgVZRl2VYGNo53EOHrVLMccyTxsdJooyX2surt891cHXY0+qeDFZh1L1R3vEWkhHUc8Os48zRw4x6Z+jPFljq6fRwz3JW7paozhFpLKXcvzVVz/AItTT9UYtNLk6Gy05+/1JcrGp2sr6uRpW28snlrme5swnTJ8yrc5+s3k01Wk0nFfY2KY9+noXy/pbr6bcb9RN4yq4eiK6jChlvLff1Ja+HBiubksb4M3Ks6aVyS6GGC+Izzi8PPUx1x3xuZ03tuUONcXOx4hFczfokcPwdq7eK+J79XGMvim2njpF+r+yPXcP4RHWaWcdVH+HYuVx6ZX/R1+HcK0nC6vL0dMa4vrg9XFjqPFy57um6uhZBbkpHdwWRYqixECSCQoESAgAAAAAEAkCAAAAAAAAAAAAAAAAACAAAKABAAZDIAAgASQMjJUGVJbK5AlsqAFQyrLMqyCrKsuVaKMbKsuykgPL+JJta2pLrGBxOZPddH29GdPxBZz8Umk/lSX9jktZW3U8XJlrKvfx4/ojdqeUjbrfTJyaNTyvEjdr1HxdDFsdJK6CrT3/sZIJR6mrC/mWcmVTT77jZpmlNNYXYxTkYnZ3Rr26mK2XUz9qyWNNrBvcK0cdRq4xs6dWvU5lcs7nf8AD8M32S9Im8LLlI58m5ja9BGKikksJdi6Kouj2vAlFiESgJRJBIEhABAkAAAAAAAgDuAAyMjAADAAAAAAAAAAAZIKAAAEAhsCSMgFAgAARkAACAAZUlkACACKgYAAqyGSyAKso0XZq66+Om0llsnjli8e77A08VxK3ztffNPKc2ajWMNFm222yVvt6nzs7u7fTxmox2VqyPMuqMHn2UbPde5tJ8q9zHZFTXQztqIhxOMdnCRL4lzPKUjXenTfoFQs9SbXTbrvtveM4XsbUNPy9epXR1KPY3J9m9iWoxwWGek8PLa5/RHnorff8j0fh/8A27n7o68H7nHn/Y7SLIqi6Pc8CUWRCJKJAAEgACQAEAAAAAAgkAQ0CQBGQAAAAAAAAABUAFAZBAAgkFEAEAMggjIE5IyMkASCAAIBDlFdWl9yWqkgxyvqj1mjXs18V8kc46tnDPn48JvKtzDK9RuGO22umDnbOMIpZcpPCRxXq7tRe25tQXRJ4R5TiXEreL6iyrGNHXJxUW8+Y13ft7Hnx+bOS6wjt/57O693+9tA6natZS4LvGaZyNZ4v0lOVp653S9X8KPKcmEkkkvYxSr3O15q1OCOpqfFvEtQ+Wjy6E/6Y5f5s1vxN9yctRdO2b6uUsmnTVjLZnRm8ls9tzjk6W2CyiOwyee13i7XMtijXqXisdDIopxMUaqi8l4R3M/l/kZI1LJF2tSsLbqZ21j3MaSitiyYRZM9D4ef8O76o87HdnX4Tq1pJyck3CWM46o78N1k5c03i9MXRgpurvhz1TUo+xmR7dvDpYsiqLIqJCYAEggkqJBGRkCQAEAAAAAAAAQCSAAAAAAAAAK5ABRAAAjIAZRDYyQABVtLq8IiyxQjlmhde5Prt6Hl5/k48M19umHHcm1PUwj03NWziEk2opI1J2ZMM5bnyeT53Ll1dPVjw4xtviFu/wAX9iHrrH/OzSbyGzhfk8t/lXT/AF4/hsS1M2t5t/cxytbe5iZGdzneTK91rxkZXNtbGOVj5Zf4GcP2wVx0z6r/ACZt21Ix6uxaLh91n80Y/wB+x57TUqNKXsdjxHNQ4co53ssjH9f0OXRLMEe/4uOsbUo61jBR05ZtNZKtem562dtXy1EjDyZpQKuLJVYmt/Yjo9zK45MbWOphpMepkTeDGljoZI+5FWTaxkyJlSMAZVIssGOOUjIll9QLwRu0ZNauO+5t1bbGsbqsZM1U7KLOeqTi/Y7Gk4sp4jqEoy/qXRnLjD1L+Xsd8c7HHLGV6SMk1nOV6oujyl0b+TFOotpkvllCXT7dy3AOPamfEZcM4jFu9Qc4W4XLNJ7m7zzG+56c7w3W5XqSSsZqXR7rqiTvLLNxw0kkhA0ie4IJCJBBJQ6gAIAAAMAACCSAAAAAAAAQ8gVABoCAABDAAgrJqMW30RY0dZf1insjhz8s4sPJvDHyumG+9zl7GtKTwQ54i5FOfmwz85yZ3O7r3446iJdCj3yyzexBydFA+occAB3K9C+CvX7BQZ+HPo8hBrdr1IOf4ljnhql/RZF/ocjTTTijvcVxPgt/MubMVH75R5iMJ1LK6H0viX9DNdWOMFms9Oho1arbc2YXJrrsetheUdinKi/PnAysZAxOO5SUdstYM7QcOZGLGttVLfZbehljDclwwzLCOUZa2xtbkpb7l2vYlLLAr9EZa4ZZaFXczwrxuEtRXX36+5tVLEkUimZ4QwakZtbEEZVExwMsTrHOodeTD5EYa7S3pLmjPlz7SWGbkUaHFL5ULTKrHmSvgl/yROWTwpj7unccnC6D9UzZhans9malrxdW+yTDlvjt2PBxfIy4rddOVx8pG+SjShc47Z6GaN67o+lx/L48+/TncLGckpGaktmix65Zfcc7EkkAqJABUAAAAAAgkAQAAAAAgkEdAKggGgIJIYDJGQ0QBS6fl1yl37HHusy2dDXTwlH03Zyn8TPif5Dk3n4z6ezgx1Nom/gX0MOnnzVfRtGW54T+hq6J5hNekj5V7euT9LZGdwtyUVFX1RGC+MrJGMAQQ18TLY3CiQVXVEtZ6E8u4isS9gKOqN1FlM1mMk0zg/h3Gc6Zpc0Hh+/uejaxhr7HJ43XKp1aytbfJZ+j/Q9PxeTxy8b1S+3Ono8b4MT08odMnQo1EbIoy8kZLKwfT/4xv8uZFTS3Rfml32N2VKX6FHTtjA9r6aycm+hmhlrdGaujGxtQ0yw3gns9Ofy77mSK2wZ7KMPoVVeBpNsTXsTCDZdx3LwwngljW1oQbRmjW/QyVR2MyivQ1IzaxQrfYzqHsSsIvskbkc7UpYLRklszG5tvEUIxefcuzTMpYb3e5groeq4lC2SzDT/El/5PoXUe7ZtcNWNPZOSx5k3JZ9OiOHyMv0a/Kde2d/FZ9I/5Kt9l2JT2cv6nko31fufJ2sieb80Sp4MeRnLG2tMysM9d8l3yaeS0ZYOuHNlhd41i4SulG2Ml6GTJz4z3Nmmzs2fW+P8AL8745vPlhrpnJK5JPoOSQAEACEBIBAAAAAAAZAAH/9k=\",\"secondary_id_number_verified\":\"\",\"verification_status\":\"exact_match\"}}\n"}],"_postman_id":"a446074a-3971-4342-b320-89d48e6decb2"},{"name":"Intl Passport Verification","id":"eff8126c-8434-4600-b031-140841d37888","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"},{"key":"","value":"","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"id_type\": \"INTERNATIONAL_PASSPORT\",\r\n  \"id_number\": \"A10000001\",\r\n  \"first_name\": \"John\",\r\n  \"last_name\": \"Doe\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyc/intl-passport","urlObject":{"path":["kyc","intl-passport"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"1eacb5de-05d0-4f35-8926-14a2169ebf45","name":"Intl Passport Verification","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"},{"key":"","value":"","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"passport_number\": \"Z18679232\",\r\n    \"surname\": \"John\",\r\n    \"date_of_birth\": \"1994-08-11\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyc/passport"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"passport verification details retrieved\",\n    \"data\": {\n        \"passport_number\": \"Z18679232\",\n        \"date_of_issue\": \"20/09/2023\",\n        \"expiry_date\": \"19/09/2028\",\n        \"documentType\": \"Standard Passport\",\n        \"issue_place\": \"OGUN STATE\",\n        \"last_name\": \"JOHN\",\n        \"first_name\": \"EMMANUEL\",\n        \"middle_name\": \"IFEANYI\",\n        \"date_of_birth\": \"10/04/2000\",\n        \"gender\": \"Male\",\n        \"image\": \"<base64-encoded-jpeg>\",\n        \"phone_number\": \"09011002200\"\n    }\n}"}],"_postman_id":"eff8126c-8434-4600-b031-140841d37888"},{"name":"Phone Number Verification","id":"a221e51d-3087-490e-9218-0a7ccb59eaf7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"a221e51d-3087-490e-9218-0a7ccb59eaf7"},{"name":"Drivers Licence Verification","id":"80de1d2a-d31d-4e85-816a-ffc5615186bd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"license_number\": \"ARR10892UU00\",\r\n    \"first_name\": \"EDIKAN\",\r\n    \"last_name\": \"EFE\",\r\n    \"date_of_birth\": \"1994-08-11\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyc/drivers-license","urlObject":{"path":["kyc","drivers-license"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"8a685dfa-7e64-4f88-9c6b-bc86b77f7211","name":"Drivers Licence Verification","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"license_number\": \"ARR10892UU00\",\r\n    \"first_name\": \"EDIKAN\",\r\n    \"last_name\": \"EFE\",\r\n    \"date_of_birth\": \"1994-08-11\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"driver's license verification details retrieved\",\n    \"data\": {\n        \"license_no\": \"ARR10892UU00\",\n        \"last_name\": \"EDIKAN\",\n        \"first_name\": \"EFE\",\n        \"middle_name\": \"MUNACHI\",\n        \"gender\": \"male\",\n        \"issued_date\": \"2013-10-28\",\n        \"expiry_date\": \"2018-11-28\",\n        \"state_of_issue\": \"OYO\",\n        \"date_of_birth\": \"1994-08-11\",\n        \"image\": \"<base64-encoded-jpeg>\"\n    }\n}"}],"_postman_id":"80de1d2a-d31d-4e85-816a-ffc5615186bd"},{"name":"Verify NUBAN","id":"922fe002-a091-4290-9ab9-6f56e4d6147c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"account_number\": \"0248827273\",\r\n    \"bank_code\": \"058\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyc/nuban","urlObject":{"path":["kyc","nuban"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"c0fef7d3-f365-4421-bf36-5529b3acee26","name":"Verify NUBAN","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"account_number\": \"0248827273\",\r\n    \"bank_code\": \"058\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyc/nuban"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Wed, 08 Jul 2026 15:00:02 GMT"},{"key":"Content-Length","value":"159"},{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"account verification details retrieved\",\n    \"data\": {\n        \"account_name\": \"SIMI MICHELLE\",\n        \"account_number\": \"0768540312\",\n        \"bank_code\": \"000035\"\n    }\n}"}],"_postman_id":"922fe002-a091-4290-9ab9-6f56e4d6147c"},{"name":"Verify NUBAN Advance","id":"db9a8a1d-1a4c-4dcc-9c1f-a23ec1a3cc94","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"account_number\": \"0248827273\",\r\n    \"bank_code\": \"058\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyc/nuban","urlObject":{"path":["kyc","nuban"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"c78d94b8-2849-4385-99df-364e3287363b","name":"Verify NUBAN","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"account_number\": \"0768540312\",\r\n    \"bank_code\": \"035\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyc/nuban"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Wed, 08 Jul 2026 15:00:02 GMT"},{"key":"Content-Length","value":"159"},{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"account verification details retrieved\",\n    \"data\": {\n        \"account_name\": \"SIMI MICHELLE\",\n        \"account_number\": \"0768540312\",\n        \"bank_code\": \"000035\"\n    }\n}"}],"_postman_id":"db9a8a1d-1a4c-4dcc-9c1f-a23ec1a3cc94"}],"id":"b9875a70-f3c3-4e91-b209-332483185059","_postman_id":"b9875a70-f3c3-4e91-b209-332483185059","description":""},{"name":"KYB","item":[{"name":"Verify Business","id":"8a372416-3292-4cbc-86b6-b846bc0ee351","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"registration_number\": \"0000000\",\r\n    \"registration_type\" : \"CORPORATE\" //Can only be one of CORPORATE,BUSINESS_NAME,TRUSTEES\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyb","urlObject":{"path":["kyb"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"65283134-131c-4305-a4c0-e3e16ac1a1e7","name":"New Request","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"registration_number\": \"0000000\",\r\n    \"registration_type\" : \"CORPORATE\" //Can only be one of CORPORATE,BUSINESS_NAME,TRUSTEES\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyb"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';script-src 'self' 'unsafe-inline' https://cdn.example.com;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;img-src 'self' data: https://*.example.com;font-src 'self' https://fonts.gstatic.com;connect-src 'self' https://api.example.com;frame-ancestors 'none';"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Wed, 20 Aug 2025 22:23:02 GMT"},{"key":"Content-Length","value":"578"},{"key":"Content-Type","value":"text/plain; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\"success\":true,\"message\":\"business verification details retrieved\",\"data\":{\"address\":\"10, Workbox, Ojora Close, Victoria Island, Lagos\",\"authorized_shared_capital\":\"smile@smileidentity.com\",\"business_status\":\"ACTIVE\",\"company_type\":\"PRIVATE_COMPANY_LIMITED_BY_SHARES\",\"country\":\"Nigeria\",\"id_number\":\"0000000\",\"id_type\":\"BUSINESS_VERIFICATION\",\"industry\":\"Technology Solutions Company\",\"name\":\"SMILE IDENTITY NIGERIA LIMITED\",\"phone_no\":\"08000000000\",\"registration_date\":\"2016-01-28T16:06:22.003Z\",\"state\":\"LAGOS\",\"tax_id\":\"not_available\",\"verification_status\":\"exact_match\"}}\n"}],"_postman_id":"8a372416-3292-4cbc-86b6-b846bc0ee351"},{"name":"Verify Tax Information","id":"1d13f011-6b1a-4a8a-9a72-575ed5155ef1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"tax_number\": \"00000000-0000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyb/tax","urlObject":{"path":["kyb","tax"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"c36eed95-df27-42ed-b39f-115013b8d53d","name":"New Request","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"tax_number\": \"00000000-0000\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/kyb/tax"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';script-src 'self' 'unsafe-inline' https://cdn.example.com;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;img-src 'self' data: https://*.example.com;font-src 'self' https://fonts.gstatic.com;connect-src 'self' https://api.example.com;frame-ancestors 'none';"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Wed, 20 Aug 2025 22:45:29 GMT"},{"key":"Content-Length","value":"444"},{"key":"Content-Type","value":"text/plain; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\"success\":true,\"message\":\"tax verification details retrieved\",\"data\":{\"address\":\"N/A\",\"authorized_shared_capital\":\"smile@smileidentity.com\",\"business_status\":\"N/A\",\"company_type\":\"N/A\",\"country\":\"Nigeria\",\"id_number\":\"0000000\",\"id_type\":\"TAX_VERIFICATION\",\"industry\":\"N/A\",\"name\":\"SMILE IDENTITY LIMITED\",\"phone_no\":\"08000000000\",\"registration_date\":\"N/A\",\"state\":\"not_available\",\"tax_id\":\"00000000-0000\",\"verification_status\":\"exact_match\"}}\n"}],"_postman_id":"1d13f011-6b1a-4a8a-9a72-575ed5155ef1"}],"id":"3c7efdab-adf0-4656-b518-7c1b4efb3199","_postman_id":"3c7efdab-adf0-4656-b518-7c1b4efb3199","description":""}],"id":"f44f3708-f79a-4a7c-9923-0b0ee195882e","_postman_id":"f44f3708-f79a-4a7c-9923-0b0ee195882e","description":""},{"name":"Stablecoin","item":[{"name":"Transfers","item":[{"name":"Get Transfer Quote Requirement","id":"8c35a902-8a87-4f48-96ce-027973757a76","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/stablecoin/requirements/USDC-USD","description":"<h2 id=\"get-quote-requirement\">Get Quote Requirement</h2>\n<p>The <strong>Get Quote Requirement</strong> defines the <strong>validation schema and rules</strong> for all quote requests before any pricing or exchange rate calculation is performed.</p>\n<p>It ensures that every request entering the quote system is structurally valid, complete, and allowed under system rules.</p>\n<hr />\n<h3 id=\"purpose\">Purpose</h3>\n<ul>\n<li><p>Define required and optional input fields for quote requests</p>\n</li>\n<li><p>Validate request structure before processing</p>\n</li>\n<li><p>Enforce business rules per transfer type</p>\n</li>\n<li><p>Prevent invalid or unsupported quote requests</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"core-responsibilities\">Core Responsibilities</h3>\n<h4 id=\"1-input-schema-definition\">1. Input Schema Definition</h4>\n<p>Defines the required fields based on transfer context:</p>\n<ul>\n<li><p>Source asset / currency</p>\n</li>\n<li><p>Destination asset / currency</p>\n</li>\n<li><p>Amount (source or destination-based)</p>\n</li>\n<li><p>Transfer type (fiat ↔ stablecoin combinations)</p>\n</li>\n<li><p>Destination method (bank, wallet, card)</p>\n</li>\n<li><p>Country or region (for fiat rails)</p>\n</li>\n<li><p>Customer and account identifiers (where required)</p>\n</li>\n</ul>\n<hr />\n<h4 id=\"2-validation-rules\">2. Validation Rules</h4>\n<ul>\n<li><p>Asset/currency must be supported</p>\n</li>\n<li><p>Required fields must be present per transfer type</p>\n</li>\n<li><p>Amount must respect min/max limits</p>\n</li>\n<li><p>Destination format must match method (bank, wallet, card, wallet address)</p>\n</li>\n<li><p>Region-specific restrictions must be enforced</p>\n</li>\n<li><p>Payment method must be valid for selected currency and rail</p>\n</li>\n</ul>\n<hr />\n<h4 id=\"3-transfer-type-rules\">3. Transfer-Type Rules</h4>\n<ul>\n<li><p><strong>Fiat → Fiat:</strong> requires currencies + bank/card method + country</p>\n</li>\n<li><p><strong>Fiat → Stablecoin:</strong> requires fiat currency + stablecoin asset + wallet address</p>\n</li>\n<li><p><strong>Stablecoin → Fiat:</strong> requires stablecoin asset + fiat currency + bank account</p>\n</li>\n<li><p><strong>Stablecoin → Stablecoin:</strong> requires source + destination wallet addresses</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"summary\">Summary</h3>\n<p>This layer acts as the <strong>strict validation contract</strong> for all quote requests before pricing begins.</p>\n","urlObject":{"path":["stablecoin","requirements","USDC-USD"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"8c35a902-8a87-4f48-96ce-027973757a76"},{"name":"Initiate Transfer","id":"7cfa5649-17f4-45d0-90f3-6dbcaae915ac","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"customer_id\": \"7dd66395-94e9-480f-b45e-16dd3a9a0714\",\r\n    \"destination\": {\r\n        \"beneficiary_info\": {\r\n            \"beneficiary_address\": {\r\n                \"city\": \"Abuja\",\r\n                \"country\": \"NG\",\r\n                \"postal_code\": \"900001\",\r\n                \"state_province\": \"FCT\",\r\n                \"street\": \"12 Ahmadu Bello Way\"\r\n            },\r\n            \"beneficiary_email\": \"jibrilmohammed39@gmail.com\",\r\n            \"beneficiary_name\": \"Jibril Mohammed\"\r\n        },\r\n        \"is_self_transfer\": false,\r\n        \"payout_instrument\": {\r\n            \"phone_number\": \"0208953433\",\r\n            \"network_provider\": \"VODAFONE\"\r\n            \r\n        },\r\n        \"transfer_purpose\": \"SALARY\"\r\n    },\r\n    \"quote_id\": \"141a4682-7a16-4ea4-a220-7343f71fcead\",\r\n    \"reference\": \"SALwQAqsqj1Y_qqNw0c1\",\r\n    \"source\": {\r\n        \"payment_instrument\": {\r\n            \"account_number\": \"8034074748\",\r\n            \"bank_code\": \"100004\"\r\n        }\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/stablecoin/transfers/initiate","description":"<h2 id=\"initiate-transfer\">Initiate Transfer</h2>\n<p>The <strong>Initiate Transfer</strong> service is responsible for executing transfers after a quote has been validated and accepted.</p>\n<p>It orchestrates the movement of funds across fiat rails, stablecoin networks, and internal ledger systems.</p>\n<hr />\n<h3 id=\"responsibilities\">Responsibilities</h3>\n<ul>\n<li><p>Validate quote and transfer eligibility</p>\n</li>\n<li><p>Initiate transfer processing</p>\n</li>\n<li><p>Coordinate with blockchain and fiat providers</p>\n</li>\n<li><p>Execute asset movement</p>\n</li>\n<li><p>Track transfer lifecycle and status</p>\n</li>\n<li><p>Handle retries and failure recovery</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"supported-transfer-types\">Supported Transfer Types</h3>\n<ul>\n<li><p>Stablecoin → Stablecoin</p>\n</li>\n<li><p>Stablecoin → Fiat</p>\n</li>\n<li><p>Fiat → Stablecoin</p>\n</li>\n<li><p>Fiat → Fiat</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"transfer-destinations\">Transfer Destinations</h3>\n<p>Supported destinations include:</p>\n<ul>\n<li><p>Blockchain wallet addresses</p>\n</li>\n<li><p>Local bank accounts</p>\n</li>\n<li><p>Foreign currency bank accounts (USD only)</p>\n</li>\n<li><p>Linked customer payment methods</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"supported-networks\">Supported Networks</h3>\n<p>Transfers may execute across supported blockchain networks such as:</p>\n<ul>\n<li><p>Solana</p>\n</li>\n<li><p>Ethereum</p>\n</li>\n<li><p>Tron</p>\n</li>\n</ul>\n<p>Availability depends on selected asset and provider support.</p>\n<hr />\n<h3 id=\"foreign-currency-support\">Foreign Currency Support</h3>\n<p>Foreign currency transfers currently support:</p>\n<ul>\n<li>USD on-ramp only</li>\n</ul>\n","urlObject":{"path":["stablecoin","transfers","initiate"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"7cfa5649-17f4-45d0-90f3-6dbcaae915ac"},{"name":"Get Transfer Purposes","id":"deaa615a-8fa5-4e7a-a608-c1f1600bfec5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<h2 id=\"get-transfer-purposes\">Get Transfer Purposes</h2>\n<p>The <strong>Get Transfer Purposes</strong> service retrieves the list of supported transfer reasons or purposes available for a transaction.</p>\n<p>These purposes are primarily used for compliance, regulatory reporting, and transaction classification.</p>\n<hr />\n<h3 id=\"responsibilities\">Responsibilities</h3>\n<ul>\n<li><p>Retrieve supported transfer purposes</p>\n</li>\n<li><p>Support compliance and AML workflows</p>\n</li>\n<li><p>Validate transfer-purpose eligibility for specific routes</p>\n</li>\n<li><p>Standardize transaction categorization</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"common-transfer-purposes\">Common Transfer Purposes</h3>\n<p>Examples may include:</p>\n<ul>\n<li><p>Family support</p>\n</li>\n<li><p>Salary payment</p>\n</li>\n<li><p>Business payment</p>\n</li>\n<li><p>Investment</p>\n</li>\n<li><p>Savings</p>\n</li>\n<li><p>Goods and services</p>\n</li>\n<li><p>Education</p>\n</li>\n<li><p>Medical expenses</p>\n</li>\n</ul>\n<p>Available options may vary depending on:</p>\n<ul>\n<li><p>Currency</p>\n</li>\n<li><p>Country</p>\n</li>\n<li><p>Transfer route</p>\n</li>\n<li><p>Payment provider requirements</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"usage\">Usage</h3>\n<p>Transfer purposes may be required for:</p>\n<ul>\n<li><p>Fiat transfers</p>\n</li>\n<li><p>Cross-border payments</p>\n</li>\n<li><p>Foreign currency transactions</p>\n</li>\n<li><p>Regulatory reporting flows</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"foreign-currency-support\">Foreign Currency Support</h3>\n<p>Foreign currency-related transfer purposes currently apply to:</p>\n<ul>\n<li>USD on-ramp flows only</li>\n</ul>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[{"id":"a873a75d-95ce-4de5-8ad5-a9ba378bc6a2","name":"Get Transfer Purposes","originalRequest":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":""},"url":"{{BASE_URL}}/stablecoin/transfers/transfer-purposes"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Tue, 26 May 2026 23:47:39 GMT"},{"key":"Content-Length","value":"1572"},{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"transfer purposes retrieved successfully\",\n    \"data\": [\n        {\n            \"value\": \"TRANSFER_TO_OWN_ACCOUNT\",\n            \"label\": \"Transfer to own account\"\n        },\n        {\n            \"value\": \"FAMILY_MAINTENANCE\",\n            \"label\": \"Family maintenance\"\n        },\n        {\n            \"value\": \"EDUCATION\",\n            \"label\": \"Education\"\n        },\n        {\n            \"value\": \"MEDICAL_TREATMENT\",\n            \"label\": \"Medical treatment\"\n        },\n        {\n            \"value\": \"HOTEL\",\n            \"label\": \"Hotel\"\n        },\n        {\n            \"value\": \"TRAVEL\",\n            \"label\": \"Travel\"\n        },\n        {\n            \"value\": \"REPAYMENT_OF_LOANS\",\n            \"label\": \"Loan repayment\"\n        },\n        {\n            \"value\": \"TAX_PAYMENT\",\n            \"label\": \"Tax payment\"\n        },\n        {\n            \"value\": \"PURCHASE_PROPERTY\",\n            \"label\": \"Purchase property\"\n        },\n        {\n            \"value\": \"PROPERTY_RENTAL\",\n            \"label\": \"Property rental\"\n        },\n        {\n            \"value\": \"INSURANCE_PREMIUM\",\n            \"label\": \"Insurance premium\"\n        },\n        {\n            \"value\": \"PRODUCT_INDEMNITY_INSURANCE\",\n            \"label\": \"Product indemnity insurance\"\n        },\n        {\n            \"value\": \"INSURANCE_CLAIMS\",\n            \"label\": \"Insurance claims\"\n        },\n        {\n            \"value\": \"MUTUAL_FUND_INVESTMENT\",\n            \"label\": \"Mutual fund investment\"\n        },\n        {\n            \"value\": \"INVESTMENT_SHARES\",\n            \"label\": \"Investment shares\"\n        },\n        {\n            \"value\": \"DONATIONS\",\n            \"label\": \"Donations\"\n        },\n        {\n            \"value\": \"SALARY\",\n            \"label\": \"Salary\"\n        },\n        {\n            \"value\": \"INFO_SERVICE\",\n            \"label\": \"Information service\"\n        },\n        {\n            \"value\": \"ADVERTISING\",\n            \"label\": \"Advertising\"\n        },\n        {\n            \"value\": \"ROYALTY_FEES\",\n            \"label\": \"Royalty fees\"\n        },\n        {\n            \"value\": \"BROKER_FEES\",\n            \"label\": \"Broker fees\"\n        },\n        {\n            \"value\": \"ADVISOR_FEES\",\n            \"label\": \"Advisor fees\"\n        },\n        {\n            \"value\": \"REPRESENTATIVE_EXPENSES\",\n            \"label\": \"Representative expenses\"\n        },\n        {\n            \"value\": \"CONSTRUCTION\",\n            \"label\": \"Construction\"\n        },\n        {\n            \"value\": \"TRANSPORTATION\",\n            \"label\": \"Transportation\"\n        },\n        {\n            \"value\": \"EXPORTED_GOODS\",\n            \"label\": \"Exported goods\"\n        },\n        {\n            \"value\": \"DELIVERY_FEES\",\n            \"label\": \"Delivery fees\"\n        },\n        {\n            \"value\": \"GENERAL_GOODS_OFFLINE\",\n            \"label\": \"General goods (offline)\"\n        }\n    ]\n}"}],"_postman_id":"deaa615a-8fa5-4e7a-a608-c1f1600bfec5"},{"name":"Get Transfer Quote","event":[{"listen":"test","script":{"id":"9eb2ee9c-1035-4a09-aee0-72524d486e77","exec":["pm.environment.set(\"QUOTE_ID\", pm.response.json().data.quote_id);"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"e7220052-cf4e-4e9f-ab76-9097a2eb5978","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"from_currency\": \"NGN\",\r\n  \"to_currency\": \"USD\",\r\n  \"from_amount\": 51000,\r\n  \"network\": \"solana\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/stablecoin/quotes","description":"<h2 id=\"get-quote\">Get Quote</h2>\n<p>The <strong>Get Quote</strong> service generates real-time pricing and conversion information for a validated transfer request.</p>\n<p>It calculates exchange rates, estimated destination amounts, and applicable fees across fiat and stablecoin rails.</p>\n<hr />\n<h3 id=\"responsibilities\">Responsibilities</h3>\n<ul>\n<li><p>Retrieve exchange rates</p>\n</li>\n<li><p>Calculate destination amounts</p>\n</li>\n<li><p>Apply FX spreads and fees</p>\n</li>\n<li><p>Estimate network and processing costs</p>\n</li>\n<li><p>Return time-bound pricing information</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"quote-information\">Quote Information</h3>\n<p>A generated quote may include:</p>\n<ul>\n<li><p>Source amount</p>\n</li>\n<li><p>Destination amount</p>\n</li>\n<li><p>Exchange rate</p>\n</li>\n<li><p>Fee breakdown</p>\n</li>\n<li><p>Transfer route</p>\n</li>\n<li><p>Quote expiry time</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"supported-flows\">Supported Flows</h3>\n<ul>\n<li><p>Stablecoin → Stablecoin</p>\n</li>\n<li><p>Stablecoin → Fiat</p>\n</li>\n<li><p>Fiat → Stablecoin</p>\n</li>\n<li><p>Fiat → Fiat</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"foreign-currency-support\">Foreign Currency Support</h3>\n<p>Foreign currency pricing currently supports:</p>\n<ul>\n<li>USD on-ramp only</li>\n</ul>\n","urlObject":{"path":["stablecoin","quotes"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"1cf9c460-e8c9-4f6c-9a5e-b95f6910d53b","name":"Get Transfer Quote","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"from_currency\": \"USDC\",\r\n  \"to_currency\": \"NGN\",\r\n  \"from_amount\": 10,\r\n  \"network\": \"solana\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/stablecoin/quotes"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()","uuid":"4918d5fc-ed16-4f04-8626-0a7d821eb0e5"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin","uuid":"ec1d61b2-7a29-44a0-9eb0-e036375da6e9"},{"key":"Vary","value":"Origin","uuid":"03a46ac1-0df0-45da-b029-0b586d5e9ab0"},{"key":"X-Content-Type-Options","value":"nosniff","uuid":"7d5df3d6-9879-40d5-8dfd-ad4cea8358f1"},{"key":"X-Frame-Options","value":"DENY","uuid":"4deec60c-08b2-4829-96ef-914e95f90884"},{"key":"X-Xss-Protection","value":"1; mode=block","uuid":"749252b8-cae5-4232-8ce3-079eb4cba18b"},{"key":"Date","value":"Wed, 27 May 2026 00:30:37 GMT","uuid":"562e1b7e-9884-4804-8dc7-5a226ff64f04"},{"key":"Content-Length","value":"312","uuid":"05d6b544-596e-4f68-9623-580b320f3f83"},{"key":"Content-Type","value":"application/json","description":"","type":"text","uuid":"1cb304c9-1dc0-4487-81fd-8f3884c0ed6a"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Quote retrieved successfully\",\n    \"data\": {\n        \"quote_id\": \"9d7e8b3e-7bb5-455a-bf1c-68474af3212c\",\n        \"from_currency\": \"USDC\",\n        \"to_currency\": \"NGN\",\n        \"from_amount\": \"10.00\",\n        \"to_amount\": \"13651.6\",\n        \"exchange_rate\": \"1365.16000000\",\n        \"fee\": \"50.0\",\n        \"corridor\": \"USDC-NGN\",\n        \"chain\": \"solana\",\n        \"expires_at\": 1779841867\n    }\n}"},{"id":"d9be2b29-a797-465b-97c3-4c1898554abc","name":"Get Transfer Quote","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"from_currency\": \"USDC\",\r\n  \"to_currency\": \"NGN\",\r\n  \"from_amount\": 10,\r\n  \"network\": \"solana\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/stablecoin/quotes"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Wed, 27 May 2026 00:30:37 GMT"},{"key":"Content-Length","value":"312"},{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Quote retrieved successfully\",\n    \"data\": {\n        \"quote_id\": \"9d7e8b3e-7bb5-455a-bf1c-68474af3212c\",\n        \"from_currency\": \"USDC\",\n        \"to_currency\": \"NGN\",\n        \"from_amount\": \"10.00\",\n        \"to_amount\": \"13651.6\",\n        \"exchange_rate\": \"1365.16000000\",\n        \"fee\": \"50.0\",\n        \"corridor\": \"USDC-NGN\",\n        \"chain\": \"solana\",\n        \"expires_at\": 1779841867\n    }\n}"}],"_postman_id":"e7220052-cf4e-4e9f-ab76-9097a2eb5978"},{"name":"Verify Mobile Money OTP","id":"ad2a9e89-1113-4358-9fe4-1294d05cbd76","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"reference\": \"onra145yyp_q1ngn7112re3e_1gq01\",\r\n    \"otp\": \"441d5109-c72b-4ff9-ba86-fe0d85803f03\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/stablecoin/transfers/ramp/verify-otp","description":"<h2 id=\"verify-mobile-money-transfer\">Verify Mobile Money Transfer</h2>\n<p>The <strong>Verify Mobile Money Transfer</strong> endpoint is used to complete a GHS Mobile Money on-ramp transfer after it has been initiated.</p>\n<p>It handles the final authorization step required by the mobile money provider, which may be either:</p>\n<ul>\n<li><p><strong>OTP verification</strong>, or</p>\n</li>\n<li><p><strong>PIN confirmation (prompted on the user’s mobile device, not submitted in the request body)</strong></p>\n</li>\n</ul>\n<hr />\n<h2 id=\"purpose\">Purpose</h2>\n<ul>\n<li><p>Complete a previously initiated Mobile Money transfer</p>\n</li>\n<li><p>Handle provider-based authentication flow</p>\n</li>\n<li><p>Finalize GHS on-ramp settlement</p>\n</li>\n<li><p>Confirm user authorization securely</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"flow-overview\">Flow Overview</h2>\n<ol>\n<li><p>User initiates a Mobile Money transfer (GHS on-ramp)</p>\n</li>\n<li><p>System returns:</p>\n<ul>\n<li><p><code>reference</code></p>\n</li>\n<li><p><code>next_step</code></p>\n</li>\n</ul>\n</li>\n<li><p>Provider determines verification method:</p>\n<ul>\n<li><p><code>OTP</code> → sent to user’s phone via SMS</p>\n</li>\n<li><p><code>PIN</code> → user is prompted on mobile device to enter PIN (not sent in API request)</p>\n</li>\n</ul>\n</li>\n<li><p>User completes verification using this endpoint</p>\n</li>\n<li><p>Transfer is finalized or rejected based on provider response</p>\n</li>\n</ol>\n<hr />\n<h2 id=\"request-parameters\">Request Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>reference</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Unique transaction reference returned during initiation</td>\n</tr>\n<tr>\n<td><code>otp</code></td>\n<td>string</td>\n<td>Conditional</td>\n<td>OTP sent to the user’s phone (required only if <code>next_step = OTP</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"important-behavior-pin-flow\">Important Behavior (PIN Flow)</h2>\n<p>If <code>next_step = PIN</code>:</p>\n<ul>\n<li><p>The user is prompted directly on their <strong>mobile money app/device</strong></p>\n</li>\n<li><p>The <strong>PIN is NOT included in the API request</strong></p>\n</li>\n<li><p>The system only waits for provider confirmation after user enters PIN on device</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"next-step-values\">Next Step Values</h2>\n<p>The initiation response defines how verification is handled:</p>\n<ul>\n<li><p><code>next_step = OTP</code></p>\n<ul>\n<li>User must submit OTP in the request</li>\n</ul>\n</li>\n<li><p><code>next_step = PIN</code></p>\n<ul>\n<li>User confirms PIN on mobile device (no API field required)</li>\n</ul>\n</li>\n</ul>\n<hr />\n<h2 id=\"example-request-otp-flow\">Example Request (OTP Flow)</h2>\n<p>```json<br />{<br />\"reference\": \"tx_ref_123456\",<br />\"otp\": \"839201\"<br />}</p>\n","urlObject":{"path":["stablecoin","transfers","ramp","verify-otp"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"ad2a9e89-1113-4358-9fe4-1294d05cbd76"},{"name":"Simulated Transfer","id":"7c66a258-b2c5-4c47-aff0-4e5876b42520","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"reference\": \"ac0q1QknKjF-20k26-0g0fe1\",\r\n  \"action\": \"PENDING\" // PENDING, PAID, COMPLETED, \r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/stablecoin/transfers/simulate","description":"<h2 id=\"simulate-transfer\">Simulate Transfer</h2>\n<p>The <strong>Simulate Transfer</strong> endpoint is used to mock or test the lifecycle state changes of a transfer for internal testing, sandbox environments, or provider simulation flows.</p>\n<p>It allows developers to manually trigger different transfer states using an existing transfer reference.</p>\n<hr />\n<h2 id=\"purpose\">Purpose</h2>\n<ul>\n<li><p>Simulate transfer state transitions in non-production environments</p>\n</li>\n<li><p>Test downstream systems (ledger, notifications, reconciliation)</p>\n</li>\n<li><p>Validate integration flows without real money movement</p>\n</li>\n<li><p>Support QA and development testing scenarios</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"request-parameters\">Request Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>reference</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Unique transfer reference to simulate</td>\n</tr>\n<tr>\n<td><code>action</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Desired simulated transfer state</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"supported-actions\">Supported Actions</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Action</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>PENDING</code></td>\n<td>Marks transfer as pending processing</td>\n</tr>\n<tr>\n<td><code>PAID</code></td>\n<td>Marks transfer as successfully paid by provider</td>\n</tr>\n<tr>\n<td><code>COMPLETED</code></td>\n<td>Marks transfer as fully completed and finalized</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"example-request\">Example Request</h2>\n<p>```json<br />{<br />\"reference\": \"SALARY_JAN_a20E2yqcqsq2qsucq\",<br />\"action\": \"PAID\"<br />}</p>\n","urlObject":{"path":["stablecoin","transfers","simulate"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"7c66a258-b2c5-4c47-aff0-4e5876b42520"}],"id":"d842dc82-70d9-4675-ab0e-fc6928cbef6e","description":"<h2 id=\"transfers-folder\">Transfers Folder</h2>\n<p>The <strong>Transfers</strong> folder contains the orchestration and execution layer for all fiat and stablecoin value movement within the platform.</p>\n<p>It coordinates transfers across supported blockchain networks, fiat payment rails, liquidity providers, and internal ledger systems while ensuring compliance, validation, and reliable settlement.</p>\n<p>The system supports:</p>\n<ul>\n<li><p>Fiat → Stablecoin (On-ramp)</p>\n</li>\n<li><p>Stablecoin → Fiat (Off-ramp)</p>\n</li>\n<li><p>Stablecoin → Stablecoin (On-chain)</p>\n</li>\n<li><p>Fiat → Fiat transfers</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"core-responsibilities\">Core Responsibilities</h3>\n<ul>\n<li><p>Quote validation and generation</p>\n</li>\n<li><p>Transfer initiation and execution</p>\n</li>\n<li><p>Stablecoin and fiat settlement coordination</p>\n</li>\n<li><p>FX conversion and pricing</p>\n</li>\n<li><p>Blockchain routing and confirmation tracking</p>\n</li>\n<li><p>Bank and wallet destination validation</p>\n</li>\n<li><p>Compliance and transfer-purpose enforcement</p>\n</li>\n<li><p>Integration with payment providers and blockchain networks</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"supported-stablecoin-assets\">Supported Stablecoin Assets</h3>\n<p>Currently supported stablecoin assets include:</p>\n<ul>\n<li><p>USDC</p>\n</li>\n<li><p>USDT</p>\n</li>\n<li><p>CNGN</p>\n</li>\n</ul>\n<p>Availability depends on:</p>\n<ul>\n<li><p>Selected blockchain network</p>\n</li>\n<li><p>Transfer type</p>\n</li>\n<li><p>Provider support</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"supported-fiat-currencies\">Supported Fiat Currencies</h3>\n<p>Supported fiat currencies currently include:</p>\n<ul>\n<li><p>NGN (Nigerian Naira)</p>\n</li>\n<li><p>GHS (Ghanaian Cedi)</p>\n</li>\n<li><p>USD</p>\n</li>\n<li><p>EUR</p>\n</li>\n<li><p>BRL</p>\n</li>\n<li><p>MXN</p>\n</li>\n<li><p>HKD</p>\n</li>\n<li><p>CNY</p>\n</li>\n<li><p>COP</p>\n</li>\n<li><p>INR</p>\n</li>\n<li><p>AED</p>\n</li>\n<li><p>SGD</p>\n</li>\n<li><p>JPY</p>\n</li>\n<li><p>PHP</p>\n</li>\n</ul>\n<p>Availability depends on:</p>\n<ul>\n<li><p>Payment rail support</p>\n</li>\n<li><p>Transfer route</p>\n</li>\n<li><p>Region and provider restrictions</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"supported-local-payment-channels\">Supported Local Payment Channels</h3>\n<p>Supported local fiat payment methods include:</p>\n<ul>\n<li><p>Bank Transfer</p>\n</li>\n<li><p>Mobile Money</p>\n</li>\n<li><p>ACH</p>\n</li>\n<li><p>Wire Transfer</p>\n</li>\n<li><p>SEPA</p>\n</li>\n<li><p>PIX</p>\n</li>\n<li><p>SPEI</p>\n</li>\n<li><p>CHATS</p>\n</li>\n<li><p>InstaPay</p>\n</li>\n<li><p>PesoNet</p>\n</li>\n<li><p>RTP</p>\n</li>\n<li><p>FedWire</p>\n</li>\n</ul>\n<p>Availability varies by country and currency.</p>\n<hr />\n<h3 id=\"supported-blockchain-networks\">Supported Blockchain Networks</h3>\n<p>Supported blockchain networks currently include:</p>\n<ul>\n<li><p>Ethereum</p>\n</li>\n<li><p>Solana</p>\n</li>\n<li><p>Polygon</p>\n</li>\n<li><p>Avalanche</p>\n</li>\n<li><p>Arbitrum</p>\n</li>\n<li><p>Optimism</p>\n</li>\n<li><p>Stellar</p>\n</li>\n<li><p>Tron</p>\n</li>\n<li><p>TON</p>\n</li>\n<li><p>Base</p>\n</li>\n<li><p>Celo</p>\n</li>\n<li><p>BEP20</p>\n</li>\n</ul>\n<p>Availability depends on the selected asset.</p>\n<hr />\n<h3 id=\"foreign-currency-support\">Foreign Currency Support</h3>\n<p>Foreign currency transfers currently support:</p>\n<ul>\n<li><p>USD on-ramp flows</p>\n</li>\n<li><p>USD wire payouts for selected regions</p>\n</li>\n</ul>\n<p>Additional foreign currency support may depend on provider availability and payment rail compatibility.</p>\n<hr />\n<h3 id=\"included-services\">Included Services</h3>\n<p>The Transfers folder includes:</p>\n<ul>\n<li><p>Get Quote Requirement</p>\n</li>\n<li><p>Get Quote</p>\n</li>\n<li><p>Initiate Transfer</p>\n</li>\n<li><p>Get Transfer Purposes</p>\n</li>\n<li><p>Supported Assets &amp; Currency Resolution</p>\n</li>\n<li><p>Supported Chain Resolution</p>\n</li>\n<li><p>Bank &amp; Payment Method Management</p>\n</li>\n</ul>\n","_postman_id":"d842dc82-70d9-4675-ab0e-fc6928cbef6e"},{"name":"Customer","item":[{"name":"Create Customer","id":"bf1c1f7e-0676-432a-bc6b-6987845cebf5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"first_name\": \"JB\",\r\n    \"last_name\": \"Wilcher\",\r\n    \"email\": \"jb@gmail.com\",\r\n    \"country_code\": \"US\",\r\n    \"phone_number\": \"708-916-8440\",\r\n    \"birth_date\": \"2002-06-30\",\r\n    \"kyc_description\": \"US stablecoin customer\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/stablecoin/users","description":"<h2 id=\"create-customer\">Create Customer</h2>\n<p>The <strong>Create Customer</strong> service is responsible for onboarding and registering a new customer within the platform.</p>\n<p>It creates a unique customer identity that can be used across transfers, wallets, payment methods, stablecoin operations, and compliance workflows.</p>\n<hr />\n<h3 id=\"responsibilities\">Responsibilities</h3>\n<ul>\n<li><p>Create a new customer profile</p>\n</li>\n<li><p>Validate customer information before creation</p>\n</li>\n<li><p>Enforce uniqueness constraints</p>\n</li>\n<li><p>Initialize customer identity for downstream financial services</p>\n</li>\n<li><p>Store KYC-related metadata for compliance workflows</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>first_name</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Customer's first name</td>\n</tr>\n<tr>\n<td><code>last_name</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Customer's last name</td>\n</tr>\n<tr>\n<td><code>email</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Customer email address</td>\n</tr>\n<tr>\n<td><code>country_code</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>ISO country code of the customer</td>\n</tr>\n<tr>\n<td><code>phone_number</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Customer phone number</td>\n</tr>\n<tr>\n<td><code>birth_date</code></td>\n<td>string (YYYY-MM-DD)</td>\n<td>Yes</td>\n<td>Customer date of birth</td>\n</tr>\n<tr>\n<td><code>kyc_description</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Description or purpose associated with customer KYC profile</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"example-request\">Example Request</h3>\n<p>```json<br />{<br />\"first_name\": \"Krystal\",<br />\"last_name\": \"Wilcher\",<br />\"email\": \"<a href=\"https://mailto:big@gmail.com\">big@gmail.com</a>\",<br />\"country_code\": \"US\",<br />\"phone_number\": \"708-916-8499\",<br />\"birth_date\": \"2002-06-30\",<br />\"kyc_description\": \"US stablecoin customer\"<br />}</p>\n","urlObject":{"path":["stablecoin","users"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"66d46177-17d4-4177-a016-5b8008a38d59","name":"Create Customer","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"first_name\": \"John\",\r\n    \"last_name\": \"Doe\",\r\n    \"email\": \"john.doe@email.com\",\r\n    \"country_code\": \"NG\",\r\n    \"phone_number\": \"07011218383\",\r\n    \"birth_date\": \"1990-01-01\",\r\n    \"kyc_description\": \"Nigerian stablecoin customer\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/stablecoin/users"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Mon, 04 May 2026 12:41:06 GMT"},{"key":"Content-Length","value":"368"},{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Customer created successfully\",\n    \"data\": {\n        \"id\": \"b5e19a50-6c47-4cad-803d-ac8db03c8c66\",\n        \"first_name\": \"John\",\n        \"last_name\": \"Doe\",\n        \"email\": \"some@email.co\",\n        \"phone_number\": \"07011218383\",\n        \"currency\": \"NGN\",\n        \"currency_code\": \"US\",\n        \"kyc_description\": \"\",\n        \"environment\": \"SANDBOX\",\n        \"created_at\": \"2026-05-04T13:41:04+01:00\",\n        \"updated_at\": \"2026-05-04T13:41:04+01:00\"\n    }\n}"},{"id":"548d60e0-cfe1-4a02-be83-6d45ae8016a1","name":"Create Customer","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"first_name\": \"Krystal\",\r\n    \"last_name\": \"Wilcher\",\r\n    \"email\": \"bigkr@gmail.com\",\r\n    \"country_code\": \"US\",\r\n    \"phone_number\": \"708-916-8499\",\r\n    \"birth_date\": \"2002-06-30\",\r\n    \"kyc_description\": \"US stablecoin customer\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/stablecoin/users"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Sun, 24 May 2026 19:38:13 GMT"},{"key":"Content-Length","value":"727"},{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Customer created successfully\",\n    \"data\": {\n        \"id\": \"84640f62-0ba7-41ec-9832-fd9f2d3c34e8\",\n        \"first_name\": \"Kstal\",\n        \"last_name\": \"Wilcr\",\n        \"email\": \"big@gmail.com\",\n        \"phone_number\": \"+17089166699\",\n        \"currency\": \"USD\",\n        \"currency_code\": \"US\",\n        \"kyc_description\": \"US stablecoin customer\",\n        \"environment\": \"SANDBOX\",\n        \"date_of_birth\": \"2002-06-30\",\n        \"has_signed_agreement\": false,\n        \"agreement_link\": \"https://harbor.owlpay.com/agreements?uuid=ag_Bi1vl2Gdf3u6X7wtuDlwRME1F73gjmSoHqsl1VHW\",\n        \"verification_link\": \"https://harbor.owlpay.com/gokyc?expires=1779652091&hash=7868d3dac4abed1cfa2ed9b7561eb71ed2252421c5635b84ab47450dd68953f\",\n        \"kyc_link\": \"\",\n        \"created_at\": \"2026-05-24T20:38:05+01:00\",\n        \"updated_at\": \"2026-05-24T20:38:05+01:00\"\n    }\n}"}],"_postman_id":"bf1c1f7e-0676-432a-bc6b-6987845cebf5"},{"name":"Fetch Customer","id":"94313df1-b03f-42bb-9586-285181a7ac7d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":"{{BASE_URL}}/stablecoin/users/:customer_id","urlObject":{"path":["stablecoin","users",":customer_id"],"host":["{{BASE_URL}}"],"query":[],"variable":[{"type":"any","value":"b5e19a50-6c47-4cad-803d-ac8db03c8c66","key":"customer_id"}]}},"response":[{"id":"6dd35864-ff28-4394-8d75-9aa71cb60897","name":"Fetch Customer","originalRequest":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":{"raw":"{{BASE_URL}}/stablecoin/users/:customer_id","host":["{{BASE_URL}}"],"path":["stablecoin","users",":customer_id"],"variable":[{"key":"customer_id","value":"b5e19a50-6c47-4cad-803d-ac8db03c8c66"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Thu, 28 May 2026 21:20:11 GMT"},{"key":"Content-Length","value":"339"},{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"customer retrieved successfully\",\n    \"data\": {\n        \"id\": \"b5e19a50-6c47-4cad-803d-ac8db03c8c66\",\n        \"first_name\": \"John\",\n        \"last_name\": \"Doe\",\n        \"email\": \"some@email.co\",\n        \"phone_number\": \"07011218383\",\n        \"environment\": \"SANDBOX\",\n        \"date_of_birth\": null,\n        \"country_code\": null,\n        \"currency\": \"NGN\",\n        \"kyc_description\": null,\n        \"has_signed_agreement\": false\n    }\n}"}],"_postman_id":"94313df1-b03f-42bb-9586-285181a7ac7d"}],"id":"3eca7229-c6d0-44ef-a2f2-33166c5256d9","description":"<h2 id=\"customer-folder\">Customer Folder</h2>\n<p>The <strong>Customer</strong> folder contains all services responsible for managing customer identity, onboarding, and profile data within the platform.</p>\n<p>It acts as the <strong>core identity and compliance layer</strong>, ensuring every user interacting with financial services is properly registered, validated, and linked to required regulatory workflows.</p>\n<hr />\n<h3 id=\"core-responsibilities\">Core Responsibilities</h3>\n<ul>\n<li><p>Customer onboarding and identity creation</p>\n</li>\n<li><p>Customer profile storage and retrieval</p>\n</li>\n<li><p>Extended customer details management</p>\n</li>\n<li><p>Compliance and KYC enforcement</p>\n</li>\n<li><p>Linking customers to financial services (transfers, wallets, cards, bank accounts)</p>\n</li>\n<li><p>Managing customer lifecycle and status</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"important-compliance-rule-foreign-currency-flow\">Important Compliance Rule (Foreign Currency Flow)</h3>\n<p>For <strong>foreign currency customers</strong>, the system enforces additional compliance requirements:</p>\n<ul>\n<li><p>The customer must undergo <strong>KYC verification</strong></p>\n</li>\n<li><p>The customer must <strong>accept a mandatory agreement</strong></p>\n</li>\n<li><p>The agreement URL is returned after customer creation</p>\n</li>\n<li><p>The customer must accept the agreement before being allowed to perform foreign currency operations (e.g. USD on-ramp/off-ramp flows)</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"included-services\">Included Services</h3>\n<p>The Customer folder includes:</p>\n<ul>\n<li><p>Create Customer</p>\n</li>\n<li><p>Fetch Customer</p>\n</li>\n<li><p>Fetch Customer Details</p>\n</li>\n<li><p>Customer validation utilities</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"behavior-notes\">Behavior Notes</h3>\n<ul>\n<li><p>If a customer is involved in <strong>foreign currency operations</strong>, the system automatically triggers KYC requirements</p>\n</li>\n<li><p>The <strong>agreement URL returned during creation is mandatory for onboarding completion</strong></p>\n</li>\n<li><p>Failure to accept the agreement blocks access to foreign currency transfer features</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"summary\">Summary</h3>\n<p>The Customer folder is the <strong>identity and compliance gateway</strong> for the platform.</p>\n<p>It ensures:</p>\n<ul>\n<li><p>Every user is properly registered</p>\n</li>\n<li><p>Foreign currency users complete KYC</p>\n</li>\n<li><p>Required agreements are accepted before enabling regulated financial operations</p>\n</li>\n</ul>\n","_postman_id":"3eca7229-c6d0-44ef-a2f2-33166c5256d9"},{"name":"Bank Accounts / Cards","item":[{"name":"Link Customer Card","id":"fe6c7389-7d7c-47a3-8a4f-21df7793c899","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"customer_id\": \"75c9a798-c6f3-4aa5-85db-81c42dace51c\",\r\n    \"redirect_url\": {\r\n        \"success\": \"https://success.com/card/success\",\r\n        \"failed\": \"https://failed.com/card/failed\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/stablecoin/cards/link","description":"<h2 id=\"link-card\">Link Card</h2>\n<p>The <strong>Link Card</strong> service allows customers to attach a debit or credit card to their profile for fiat funding and payment operations.</p>\n<p>It enables card-based deposits and, where supported, withdrawals through integrated payment providers.</p>\n<hr />\n<h3 id=\"responsibilities\">Responsibilities</h3>\n<ul>\n<li><p>Link customer card to account</p>\n</li>\n<li><p>Validate card details with payment provider</p>\n</li>\n<li><p>Tokenize and securely store card references</p>\n</li>\n<li><p>Enable card-based fiat transactions</p>\n</li>\n<li><p>Support recurring or one-time payments</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"required-inputs\">Required Inputs</h3>\n<ul>\n<li><p>Redirect URL</p>\n</li>\n<li><p>Customer ID</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"validation-rules\">Validation Rules</h3>\n<ul>\n<li><p>Card must pass provider validation (auth/tokenization)</p>\n</li>\n<li><p>Card must be supported in the customer’s region</p>\n</li>\n<li><p>Expiry date must be valid</p>\n</li>\n<li><p>Customer must be active and verified where required</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"supported-use-cases\">Supported Use Cases</h3>\n<ul>\n<li><p>Fiat deposits</p>\n</li>\n<li><p>Fiat on-ramp (where enabled)</p>\n</li>\n<li><p>Recurring payments</p>\n</li>\n<li><p>Wallet funding</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"summary\">Summary</h3>\n<p>This service securely links a customer’s card for use in fiat payment flows within the platform.</p>\n","urlObject":{"path":["stablecoin","cards","link"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"b09b4484-0356-4fd5-bb95-b7f6fbdf415f","name":"Link Customer Card","originalRequest":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"customer_id\": \"186f303f-ea47-468b-bb51-ed4f166160ee\",\r\n    \"redirect_url\": {\r\n        \"success\": \"https://yourapp.com/card/success\",\r\n        \"failed\": \"https://yourapp.com/card/failed\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/stablecoin/cards/link"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Sun, 24 May 2026 00:46:49 GMT"},{"key":"Content-Length","value":"849"},{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Card linked successfully\",\n    \"data\": {\n        \"card_id\": \"card_L6Gb43Wpjr7hwlUZL1y7lmqW2kTC5LqUvWlyVJW5\",\n        \"status\": \"PENDING\",\n        \"enabled\": false,\n        \"restricted\": false,\n        \"url\": \"https://link-sandbox.owlpay.com/crb/card/iframe?encoded=eyJpZnJhbWVfc3JjIjoiaHR0cHM6XC9cL3AycGNyZWRpdGNhcmRpZnJhbWVzYW5kYm94LmNyYmNvcy5jb21cLz9jcmVhdGVkQXQ9MjAyNi0wNS0yM1QyMDo0Njo0OS44Njc1NDY1WiZkb21haW49aHR0cHM6XC9cL2xpbmstc2FuZGJveC5vd2xwYXkuY29tJmV4cGlyZXNBdD0yMDI2LTA1LTIzVDIwOjUxOjQ5Ljg2NzU0NjVaJm90Y0lkPTliNzIxZGRmLTVmMGMtNGE2OC1hNWRiLTRlZDEwOWZiNWM1NiZ0ZW1wbGF0ZUlkPWMzMzYwYWJmLWY1N2EtNDk1Yy1kNGQzLTA4ZGU3YTg5ZDk0NSZmaXJzdEFuZExhc3ROYW1lUHJvdmlkZWQ9ZmFsc2UiLCJyZWRpcmVjdF9zdWNjZXNzIjoiaHR0cHM6XC9cL3lvdXJhcHAuY29tXC9jYXJkXC9zdWNjZXNzIiwicmVkaXJlY3RfZmFpbGVkIjoiaHR0cHM6XC9cL3lvdXJhcHAuY29tXC9jYXJkXC9mYWlsZWQifQ%3D%3D\",\n        \"created_at\": \"2026-05-24T00:46:49+00:00\"\n    }\n}"}],"_postman_id":"fe6c7389-7d7c-47a3-8a4f-21df7793c899"},{"name":"List Customer Card","id":"6196b5c9-dc65-43ae-ba5f-186e8ba9ef22","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<h2 id=\"list-customer-cards\">List Customer Cards</h2>\n<p>The <strong>List Customer Cards</strong> service retrieves all cards linked to a customer profile.</p>\n<p>It provides visibility into active, inactive, or restricted card payment methods associated with the customer.</p>\n<hr />\n<h3 id=\"responsibilities\">Responsibilities</h3>\n<ul>\n<li><p>Retrieve all cards linked to a customer</p>\n</li>\n<li><p>Provide card metadata for display and selection</p>\n</li>\n<li><p>Support payment method selection during transfers</p>\n</li>\n<li><p>Indicate card status (active, inactive, failed, restricted)</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"returned-information\">Returned Information</h3>\n<ul>\n<li><p>Card identifier (tokenized reference)</p>\n</li>\n<li><p>Card type (debit/credit)</p>\n</li>\n<li><p>Card brand (e.g. Visa, Mastercard)</p>\n</li>\n<li><p>Expiry date (masked)</p>\n</li>\n<li><p>Card status</p>\n</li>\n<li><p>Linked customer ID</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"validation-rules\">Validation Rules</h3>\n<ul>\n<li><p>Customer must exist</p>\n</li>\n<li><p>Customer must have linked cards</p>\n</li>\n<li><p>Access must be authorized</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"summary\">Summary</h3>\n<p>This service provides a list of all customer-linked cards for use in fiat payment flows.</p>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"6196b5c9-dc65-43ae-ba5f-186e8ba9ef22"},{"name":"Get List of Banks","id":"5efc4b91-88ec-4b6f-95a7-0d4110672e81","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":"{{BASE_URL}}/stablecoin/transfers/banks/list/:country","description":"<h2 id=\"get-list-of-banks-local-currency\">Get List of Banks (Local Currency)</h2>\n<p>The <strong>Get List of Banks</strong> service retrieves all supported banks for local fiat currency transactions.</p>\n<p>It is used to validate bank account details and enable payout routing within supported countries.</p>\n<hr />\n<h3 id=\"responsibilities\">Responsibilities</h3>\n<ul>\n<li><p>Retrieve list of supported banks per country or currency</p>\n</li>\n<li><p>Support bank selection during account linking</p>\n</li>\n<li><p>Enable validation of bank codes and names</p>\n</li>\n<li><p>Provide banking metadata for fiat transfer routing</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"supported-regions\">Supported Regions</h3>\n<ul>\n<li><p>Nigeria (NGN)</p>\n</li>\n<li><p>Ghana (GHS)</p>\n</li>\n</ul>\n<p>Additional regions may be supported depending on provider availability.</p>\n<hr />\n<h3 id=\"returned-information\">Returned Information</h3>\n<ul>\n<li><p>Bank name</p>\n</li>\n<li><p>Bank code</p>\n</li>\n<li><p>Country</p>\n</li>\n<li><p>Supported currency</p>\n</li>\n<li><p>Bank identifier for routing</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"usage\">Usage</h3>\n<p>Used for:</p>\n<ul>\n<li><p>Linking bank accounts</p>\n</li>\n<li><p>Validating beneficiary details</p>\n</li>\n<li><p>Fiat payout processing</p>\n</li>\n<li><p>Transfer routing selection</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"summary\">Summary</h3>\n<p>This service provides the authoritative list of supported banks for local currency fiat operations within the platform.</p>\n","urlObject":{"path":["stablecoin","transfers","banks","list",":country"],"host":["{{BASE_URL}}"],"query":[],"variable":[{"type":"any","value":"GH","key":"country"}]}},"response":[{"id":"07e75738-5f35-46fa-b231-13841bbcf112","name":"Get List of Banks (NG)","originalRequest":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"url":{"raw":"{{BASE_URL}}/stablecoin/transfers/banks/list/:country","host":["{{BASE_URL}}"],"path":["stablecoin","transfers","banks","list",":country"],"variable":[{"key":"country","value":"NG"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Vary","value":"Origin"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"Date","value":"Mon, 04 May 2026 13:50:51 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"banks retrieved successfully\",\n    \"data\": [\n        {\n            \"code\": \"120001\",\n            \"name\": \"9 Payment Service Bank\"\n        },\n        {\n            \"code\": \"090270\",\n            \"name\": \"AB Microfinance Bank\"\n        },\n        {\n            \"code\": \"070010\",\n            \"name\": \"Abbey Mortgage Bank\"\n        }\n    ]\n}"},{"id":"e9c60113-1eca-479e-b76b-33513580d89d","name":"Get List of Banks (GH)","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{BASE_URL}}/stablecoin/transfers/banks/list/:country","host":["{{BASE_URL}}"],"path":["stablecoin","transfers","banks","list",":country"],"variable":[{"key":"country","value":"GH"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"banks retrieved successfully\",\n    \"data\": [\n        {\n            \"code\": \"0009\",\n            \"name\": \"TIGO\"\n        },\n        {\n            \"code\": \"0006\",\n            \"name\": \"VODAFONE\"\n        },\n        {\n            \"code\": \"0004\",\n            \"name\": \"MTN\"\n        },\n        {\n            \"code\": \"0005\",\n            \"name\": \"AIRTEL\"\n        }\n    ]\n}"}],"_postman_id":"5efc4b91-88ec-4b6f-95a7-0d4110672e81"},{"name":"Link Bank Account","id":"bc07caf2-bf4a-43df-80f7-2ef362b801a2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"customer_id\": \"7dd66395-94e9-480f-b45e-16dd3a9a0714\",\r\n  \"redirect_url\": {\r\n    \"success\": \"https://yourapp.com/success\",\r\n    \"failed\": \"https://yourapp.com/failed\"\r\n  }\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/stablecoin/transfers/banks/link","description":"<h2 id=\"link-bank-account\">Link Bank Account</h2>\n<p>The <strong>Link Bank Account</strong> service allows customers to attach a bank account to their profile for fiat payouts and deposits.</p>\n<p>It enables the system to route funds directly to supported banking networks across local and international rails.</p>\n<hr />\n<h3 id=\"responsibilities\">Responsibilities</h3>\n<ul>\n<li><p>Link a bank account to a customer profile</p>\n</li>\n<li><p>Validate bank details before saving</p>\n</li>\n<li><p>Support local and foreign bank account linking</p>\n</li>\n<li><p>Enable payout routing for fiat transfers</p>\n</li>\n<li><p>Store bank metadata for future transactions</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"required-inputs\">Required Inputs</h3>\n<ul>\n<li><p>Redirect URL</p>\n</li>\n<li><p>Customer ID</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"validation-rules\">Validation Rules</h3>\n<ul>\n<li><p>Bank must be supported in the selected region</p>\n</li>\n<li><p>Account number must follow country-specific format rules</p>\n</li>\n<li><p>Account must be valid and reachable via provider rails</p>\n</li>\n<li><p>Customer must exist and be active</p>\n</li>\n<li><p>Currency must be supported for bank linkage</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"supported-currency-rules\">Supported Currency Rules</h3>\n<ul>\n<li><p>Local currencies (e.g. NGN, GHS) supported via local banks</p>\n</li>\n<li><p>Foreign currency support is limited to <strong>USD onboarding only</strong></p>\n</li>\n</ul>\n<hr />\n<h3 id=\"summary\">Summary</h3>\n<p>This service links a customer to a bank account, enabling fiat payouts and deposits through supported banking rails.</p>\n","urlObject":{"path":["stablecoin","transfers","banks","link"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"bc07caf2-bf4a-43df-80f7-2ef362b801a2"}],"id":"fe04643d-8f1a-4a02-abd6-4ccd222d5547","description":"<h2 id=\"bank-accounts--cards-folder\">Bank Accounts &amp; Cards Folder</h2>\n<p>The <strong>Bank Accounts &amp; Cards</strong> folder manages all customer-linked payment instruments used for fiat transactions within the platform.</p>\n<p>It provides the infrastructure for linking, retrieving, and managing bank accounts and cards, enabling seamless fiat deposits, payouts, and transfer operations.</p>\n<p>This folder primarily supports <strong>fiat rails</strong>, including local currency payments and foreign currency (USD) onboarding flows.</p>\n<hr />\n<h3 id=\"core-responsibilities\">Core Responsibilities</h3>\n<ul>\n<li><p>Linking customer bank accounts</p>\n</li>\n<li><p>Linking customer debit/credit cards</p>\n</li>\n<li><p>Managing and storing customer payment instruments</p>\n</li>\n<li><p>Retrieving linked payment methods for transactions</p>\n</li>\n<li><p>Fetching supported banks for local fiat rails</p>\n</li>\n<li><p>Enabling payout and deposit routing through fiat providers</p>\n</li>\n<li><p>Ensuring validation and compliance of payment methods</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"supported-use-cases\">Supported Use Cases</h3>\n<ul>\n<li><p>Fiat → Fiat transfers</p>\n</li>\n<li><p>Fiat → Stablecoin on-ramp</p>\n</li>\n<li><p>Stablecoin → Fiat off-ramp</p>\n</li>\n<li><p>Local currency payouts (NGN, GHS, etc.)</p>\n</li>\n<li><p>Foreign currency onboarding (USD only)</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"supported-rails\">Supported Rails</h3>\n<ul>\n<li><p>Local bank transfers (country-specific)</p>\n</li>\n<li><p>Card payments (where enabled)</p>\n</li>\n<li><p>USD bank onboarding (foreign currency support)</p>\n</li>\n<li><p>Provider-based fiat rails (ACH, SEPA, etc. depending on region)</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"summary\">Summary</h3>\n<p>The Bank Accounts &amp; Cards folder is the <strong>fiat payment instrument layer</strong>, responsible for managing all customer-linked funding and payout methods across supported fiat currencies and regions.</p>\n","_postman_id":"fe04643d-8f1a-4a02-abd6-4ccd222d5547"},{"name":"Wallet","item":[{"name":"Create Wallet","id":"581a504b-b5c3-47fa-b9df-fa706c53b801","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"chain\": \"solana\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/stablecoin/wallets","urlObject":{"path":["stablecoin","wallets"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"581a504b-b5c3-47fa-b9df-fa706c53b801"},{"name":"Get Wallet Balance","id":"a3007711-6984-4638-b8ce-13897ba621b3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-API-Key","value":"{{X-API-Key}}","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/stablecoin/wallets/balance/:chain","urlObject":{"path":["stablecoin","wallets","balance",":chain"],"host":["{{BASE_URL}}"],"query":[],"variable":[{"type":"any","value":"polygon","key":"chain"}]}},"response":[],"_postman_id":"a3007711-6984-4638-b8ce-13897ba621b3"},{"name":"Get Wallet By Address","id":"326abdc1-c8f3-422f-9cdc-4d9043a706d9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"326abdc1-c8f3-422f-9cdc-4d9043a706d9"}],"id":"9d30b0ee-9532-484e-92dd-49c90f5cb178","_postman_id":"9d30b0ee-9532-484e-92dd-49c90f5cb178","description":""}],"id":"d58784fe-e7e9-4cea-a8fe-4f2e64c91710","description":"<h1 id=\"stablecoin-apis\">Stablecoin APIs</h1>\n<p>This folder contains all endpoints related to stablecoin operations on the platform. It supports blockchain-based financial transactions, enabling users and merchants to send, receive, store, and manage stablecoin assets seamlessly.</p>\n<h2 id=\"what-is-included-in-this-folder\">What is included in this folder</h2>\n<ul>\n<li><p>Wallet creation and management</p>\n</li>\n<li><p>Stablecoin deposits and withdrawals</p>\n</li>\n<li><p>Internal and external transfers</p>\n</li>\n<li><p>Balance and transaction history retrieval</p>\n</li>\n<li><p>Blockchain transaction status tracking</p>\n</li>\n<li><p>Address generation and validation (where applicable)</p>\n</li>\n</ul>\n<h2 id=\"purpose\">Purpose</h2>\n<p>The Stablecoin module enables fast, secure, and programmable digital asset movement while maintaining a stable value equivalent to fiat currencies. It is designed for cross-border payments, treasury operations, and digital asset settlement flows.</p>\n<h2 id=\"key-use-cases\">Key Use Cases</h2>\n<ul>\n<li><p>Crypto-to-crypto transfers</p>\n</li>\n<li><p>Fiat-backed stablecoin settlements</p>\n</li>\n<li><p>Merchant payouts in stable assets</p>\n</li>\n<li><p>Cross-border remittances</p>\n</li>\n</ul>\n","_postman_id":"d58784fe-e7e9-4cea-a8fe-4f2e64c91710"},{"name":"Multicurrency","item":[{"name":"SME","item":[{"name":"KYB Media Upload","item":[{"name":"Upload SME media","id":"c607e543-c462-41c7-8cc9-5aeee2344cdb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"onboarding_request_id\": \"string\",\n  \"media_base64\": \"string\",\n  \"media_type\": \"string\",\n  \"content_type\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/sme/media/upload","description":"<h3 id=\"post-smemediaupload--upload-sme-document\">POST /sme/media/upload — Upload SME Document</h3>\n<p><strong>Description:</strong><br />Uploads a supporting document for the SME onboarding application — business certificate, operating licence, company logo, memorandum, or similar.</p>\n<p><strong>Important: All document must be Notarized by a Pulic Notary Officer</strong></p>\n<p>Encode the file as a base64 string in media_base64.<br />Common media_type values:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>INCORPORATION_CERTIFICATE</code></td>\n<td>A valid Certificate of Incorporation issued by the Corporate Affairs Commission (CAC), confirming that the business is legally registered in Nigeria.</td>\n</tr>\n<tr>\n<td><code>TAX_CERTIFICATE</code></td>\n<td>A valid Tax Clearance Certificate (TCC) or other applicable tax certificate issued by the relevant tax authority, confirming the business's tax compliance.</td>\n</tr>\n<tr>\n<td><code>CAC_STATUS_REPORT</code></td>\n<td>A current CAC Status Report showing the company's registration details, directors, shareholders, and current legal status.</td>\n</tr>\n<tr>\n<td><code>MEMORANDUM_OF_ASSOCIATION</code></td>\n<td>The Memorandum of Association (MOA) outlining the company's objectives, scope of business, and powers as registered with the CAC.</td>\n</tr>\n<tr>\n<td><code>BOARD_RESOLUTION</code></td>\n<td>A signed Board Resolution on the company's official letterhead authorizing the account opening or the designated representative to act on behalf of the company.</td>\n</tr>\n<tr>\n<td><code>ARTICLES_OF_ASSOCIATION</code></td>\n<td>The Articles of Association (AOA) defining the company's internal governance, management structure, and operating rules.</td>\n</tr>\n<tr>\n<td><code>ULTIMATE_BENEFICIARY_OWNERS</code></td>\n<td>Documentation identifying the company's Ultimate Beneficial Owner(s) (UBOs), including ownership and control information as required for KYC compliance.</td>\n</tr>\n<tr>\n<td><code>PROOF_OF_ADDRESS</code></td>\n<td>A recent document verifying the company's registered or operating address, such as a utility bill, bank statement, or government-issued document, typically issued within the last three months.</td>\n</tr>\n</tbody>\n</table>\n</div><p>What you get back:<br />file_id → save this in case you need to remove the document via DELETE /sme/media/remove</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"onboarding_request_id\": \"SME-20260628-DFT001\",\n  \"media_base64\": \"&lt;base64_encoded_pdf_or_image&gt;\",\n  \"media_type\": \"INCORPORATION_CERTIFICATE\",\n  \"content_type\": \"pdf\" // \"pdf\" or \"image\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"SME media uploaded successfully\",\n  \"data\": {\n    \"file_id\": \"FILE-001\"\n  }\n}\n\n</code></pre>\n","urlObject":{"path":["sme","media","upload"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"0a8b3b0c-b47b-434d-bbff-9d9380f35b6c","name":"Media uploaded.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"onboarding_request_id\": \"string\",\n  \"media_base64\": \"string\",\n  \"media_type\": \"string\",\n  \"content_type\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/sme/media/upload"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"file_id\": \"string\"\n  }\n}"}],"_postman_id":"c607e543-c462-41c7-8cc9-5aeee2344cdb"},{"name":"Remove SME media","id":"0c4a8696-c02e-4692-a4d0-9ad09ba83f53","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"onboarding_request_id\": \"string\",\n  \"file_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/sme/media/remove","description":"<h3 id=\"delete-smemediaremove--remove-sme-document\">DELETE /sme/media/remove — Remove SME Document</h3>\n<p><strong>Description:</strong></p>\n<p>Removes a previously uploaded document from an SME onboarding application. Use this if you uploaded the wrong file and need to replace it.  \n﻿</p>\n<p>The file_id comes from the POST /sme/media/upload response. You can also find all file IDs in the onboarding_media_infos array returned by GET /sme/onboarding/info.  \n﻿</p>\n<p>After removing, re-upload the correct file via POST /sme/media/upload.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"onboarding_request_id\": \"SME-20260628-DFT001\",\n  \"file_id\": \"FILE-001\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"SME media removed successfully\",\n  \"data\": null\n}\n\n</code></pre>\n","urlObject":{"path":["sme","media","remove"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"e5151107-b9b9-4744-be04-3dae055c9f7d","name":"Media removed.","originalRequest":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"onboarding_request_id\": \"string\",\n  \"file_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/sme/media/remove"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {}\n}"}],"_postman_id":"0c4a8696-c02e-4692-a4d0-9ad09ba83f53"}],"id":"5f0695b2-572f-4001-98ae-b0355bf17051","description":"<h2 id=\"sme-media-management\">SME Media Management</h2>\n<h3 id=\"post-smemediaupload--upload-sme-document\">POST /sme/media/upload — Upload SME Document</h3>\n<p><strong>Description:</strong><br />Uploads a supporting document for the SME onboarding application — business certificate, operating licence, company logo, memorandum, or similar.</p>\n<p><strong>Important: All document must be Notarized by a Pulic Notary Officer</strong></p>\n<p>Encode the file as a base64 string in media_base64.<br />Common media_type values:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>INCORPORATION_CERTIFICATE</code></td>\n<td>A valid Certificate of Incorporation issued by the Corporate Affairs Commission (CAC), confirming that the business is legally registered in Nigeria.</td>\n</tr>\n<tr>\n<td><code>TAX_CERTIFICATE</code></td>\n<td>A valid Tax Clearance Certificate (TCC) or other applicable tax certificate issued by the relevant tax authority, confirming the business's tax compliance.</td>\n</tr>\n<tr>\n<td><code>CAC_STATUS_REPORT</code></td>\n<td>A current CAC Status Report showing the company's registration details, directors, shareholders, and current legal status.</td>\n</tr>\n<tr>\n<td><code>MEMORANDUM_OF_ASSOCIATION</code></td>\n<td>The Memorandum of Association (MOA) outlining the company's objectives, scope of business, and powers as registered with the CAC.</td>\n</tr>\n<tr>\n<td><code>BOARD_RESOLUTION</code></td>\n<td>A signed Board Resolution on the company's official letterhead authorizing the account opening or the designated representative to act on behalf of the company.</td>\n</tr>\n<tr>\n<td><code>ARTICLES_OF_ASSOCIATION</code></td>\n<td>The Articles of Association (AOA) defining the company's internal governance, management structure, and operating rules.</td>\n</tr>\n<tr>\n<td><code>ULTIMATE_BENEFICIARY_OWNERS</code></td>\n<td>Documentation identifying the company's Ultimate Beneficial Owner(s) (UBOs), including ownership and control information as required for KYC compliance.</td>\n</tr>\n<tr>\n<td><code>PROOF_OF_ADDRESS</code></td>\n<td>A recent document verifying the company's registered or operating address, such as a utility bill, bank statement, or government-issued document, typically issued within the last three months.</td>\n</tr>\n</tbody>\n</table>\n</div><p>What you get back:<br />file_id → save this in case you need to remove the document via DELETE /sme/media/remove</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"onboarding_request_id\": \"SME-20260628-DFT001\",\n  \"media_base64\": \"&lt;base64_encoded_pdf_or_image&gt;\",\n  \"media_type\": \"INCORPORATION_CERTIFICATE\",\n  \"content_type\": \"pdf\" // \"pdf\" or \"image\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"SME media uploaded successfully\",\n  \"data\": {\n    \"file_id\": \"FILE-001\"\n  }\n}\n\n</code></pre>\n<h3 id=\"delete-smemediaremove--remove-sme-document\">DELETE /sme/media/remove — Remove SME Document</h3>\n<p><strong>Description:</strong></p>\n<p>Removes a previously uploaded document from an SME onboarding application. Use this if you uploaded the wrong file and need to replace it.  \n﻿</p>\n<p>The file_id comes from the POST /sme/media/upload response. You can also find all file IDs in the onboarding_media_infos array returned by GET /sme/onboarding/info.  \n﻿</p>\n<p>After removing, re-upload the correct file via POST /sme/media/upload.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"onboarding_request_id\": \"SME-20260628-DFT001\",\n  \"file_id\": \"FILE-001\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"SME media removed successfully\",\n  \"data\": null\n}\n\n</code></pre>\n","_postman_id":"5f0695b2-572f-4001-98ae-b0355bf17051","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","name":"Multicurrency","type":"folder"}}},{"name":"Shareholder","item":[{"name":"Add shareholder","id":"30de04a9-2ad0-4d9a-9d63-71b43ca67f39","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"onboarding_request_id\": \"SME-20260628-DFT001\",\n  \"Individual\": {\n    \"id_type\": \"NATIONAL_ID\",\n    \"id_number\": \"55544433321\",\n    \"gender\": 0,\n    \"email\": \"ngozi.okonkwo@example.ng\",\n    \"country_code\": \"234\",\n    \"mobile\": \"+2348099887766\",\n    \"first_name\": \"Ngozi\",\n    \"middle_name\": \"Chidinma\",\n    \"last_name\": \"Okonkwo\",\n    \"tin\": \"55544433-0001\",\n    \"id_front_side_file\": \"<base64_encoded_image>\",\n    \"id_front_side_file_type\": \"image\", // pdf or image\n    \"id_back_side_file\": \"<base64_encoded_image>\",\n    \"id_back_side_file_type\": \"image\", // pdf or image\n    \"selfie_file\": \"<base64_encoded_image>\",\n    \"selfie_file_type\": \"image\", // pdf or image\n    \"tin_file\": \"<base64_encoded_image>\",\n    \"tin_file_type\": \"image\" // pdf or image\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/sme/shareholder/add","description":"<h3 id=\"post-smeshareholderadd--add-sme-shareholder\">POST /sme/shareholder/add — Add SME Shareholder</h3>\n<p><strong>Description:</strong></p>\n<p>Adds a shareholder to an SME onboarding application. Required for LLCs, Partnerships, and NGOs (business types 2, 3, 4) before submitting for review. Not needed for Sole Proprietorships.  \n﻿</p>\n<p>Send EITHER the Individual object OR the Organisation object — never both in the same request.  \n﻿</p>\n<p>For Individual shareholders, provide:<br />id_type, id_number, gender, country_code, mobile, first_name, last_name, tin</p>\n<ul>\n<li><p>base64 document files: id_front_side_file, id_back_side_file, selfie_file, tin_file</p>\n</li>\n<li><p>corresponding MIME types for each file</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>﻿\n</code></pre><p>For Organisation shareholders, provide:<br />company_name, registration_file (base64), registration_file_type  \n﻿</p>\n<p>What you get back:<br />member_id → populated for individual shareholders<br />company_id → populated for organisation shareholders<br />Save these IDs to use with DELETE /sme/shareholder/remove.</p>\n<p><strong>Request Body (Individual shareholder):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"onboarding_request_id\": \"SME-20260628-DFT001\",\n  \"Individual\": {\n    \"id_type\": \"NATIONAL_ID\",\n    \"id_number\": \"55544433321\",\n    \"gender\": 0,\n    \"email\": \"ngozi.okonkwo@example.ng\",\n    \"country_code\": \"234\",\n    \"mobile\": \"+2348099887766\",\n    \"first_name\": \"Ngozi\",\n    \"middle_name\": \"Chidinma\",\n    \"last_name\": \"Okonkwo\",\n    \"tin\": \"55544433-0001\",\n    \"id_front_side_file\": \"&lt;base64_encoded_image&gt;\",\n    \"id_front_side_file_type\": \"image\", // pdf or image\n    \"id_back_side_file\": \"&lt;base64_encoded_image&gt;\",\n    \"id_back_side_file_type\": \"image\", // pdf or image\n    \"selfie_file\": \"&lt;base64_encoded_image&gt;\",\n    \"selfie_file_type\": \"image\", // pdf or image\n    \"tin_file\": \"&lt;base64_encoded_image&gt;\",\n    \"tin_file_type\": \"image\" // pdf or image\n  }\n}\n\n</code></pre>\n<p><strong>Request Body (Organisation shareholder):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"onboarding_request_id\": \"SME-20260628-DFT001\",\n  \"Organisation\": {\n    \"company_name\": \"Okonkwo Holdings Limited\",\n    \"registration_file\": \"&lt;base64_encoded_pdf&gt;\",\n    \"registration_file_type\": \"pdf\"\n  }\n}\n\n</code></pre>\n<p><strong>Success Response (201):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"Shareholder added successfully\",\n  \"data\": {\n    \"member_id\": \"M-001\",\n    \"company_id\": \"\"\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 400 — Neither provided\n{\n  \"success\": false,\n  \"message\": \"either Individual or Organisation shareholder info must be provided\",\n  \"data\": null\n}\n// 400 — Both provided\n{\n  \"success\": false,\n  \"message\": \"only one of Individual or Organisation shareholder info may be provided\",\n  \"data\": null\n}\n\n</code></pre>\n","urlObject":{"path":["sme","shareholder","add"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"8cfd7702-801e-43c9-98ce-7f1663fa772b","name":"Shareholder added.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"onboarding_request_id\": \"string\",\n  \"Individual\": {\n    \"id_type\": \"string\",\n    \"id_number\": \"string\",\n    \"gender\": 0,\n    \"country_code\": \"string\",\n    \"mobile\": \"string\",\n    \"first_name\": \"string\",\n    \"last_name\": \"string\",\n    \"kra_pin\": \"string\",\n    \"id_front_side_file\": \"string\",\n    \"id_front_side_file_type\": \"string\",\n    \"id_back_side_file\": \"string\",\n    \"id_back_side_file_type\": \"string\",\n    \"selfie_file\": \"string\",\n    \"selfie_file_type\": \"string\",\n    \"kra_pin_file\": \"string\",\n    \"kra_pin_file_type\": \"string\",\n    \"email\": \"C2UOr0@tkNIPQQPk.zl\",\n    \"middle_name\": \"string\"\n  },\n  \"Organisation\": {\n    \"company_name\": \"string\",\n    \"registration_file\": \"string\",\n    \"registration_file_type\": \"string\"\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/sme/shareholder/add"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"member_id\": \"string\",\n    \"company_id\": \"string\"\n  }\n}"},{"id":"f72b0e31-e7e4-423d-9dbd-06341eea8b3c","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"onboarding_request_id\": \"string\",\n  \"Individual\": {\n    \"id_type\": \"string\",\n    \"id_number\": \"string\",\n    \"gender\": 0,\n    \"country_code\": \"string\",\n    \"mobile\": \"string\",\n    \"first_name\": \"string\",\n    \"last_name\": \"string\",\n    \"kra_pin\": \"string\",\n    \"id_front_side_file\": \"string\",\n    \"id_front_side_file_type\": \"string\",\n    \"id_back_side_file\": \"string\",\n    \"id_back_side_file_type\": \"string\",\n    \"selfie_file\": \"string\",\n    \"selfie_file_type\": \"string\",\n    \"kra_pin_file\": \"string\",\n    \"kra_pin_file_type\": \"string\",\n    \"email\": \"C2UOr0@tkNIPQQPk.zl\",\n    \"middle_name\": \"string\"\n  },\n  \"Organisation\": {\n    \"company_name\": \"string\",\n    \"registration_file\": \"string\",\n    \"registration_file_type\": \"string\"\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/sme/shareholder/add"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"30de04a9-2ad0-4d9a-9d63-71b43ca67f39"},{"name":"Remove shareholder","id":"c105ea15-05cb-434b-b47e-1344eaa204b0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"onboarding_request_id\": \"SME-20260628-DFT001\",\n  \"member_id\": \"M-001\",\n  \"member_type\": 0\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/sme/shareholder/remove","description":"<h3 id=\"delete-smeshareholderremove--remove-sme-shareholder\">DELETE /sme/shareholder/remove — Remove SME Shareholder</h3>\n<p><strong>Description:</strong></p>\n<p>Removes a previously added shareholder from an SME onboarding application.  \n﻿</p>\n<p>member_id → the ID returned when the shareholder was added (member_id for individuals, company_id for organisations)  \n﻿</p>\n<p>member_type:<br />0 = Individual<br />1 = Organisation  \n﻿</p>\n<p>After removing, re-add the correct shareholder via POST /sme/shareholder/add.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"onboarding_request_id\": \"SME-20260628-DFT001\",\n  \"member_id\": \"M-001\",\n  \"member_type\": 0\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"Shareholder removed successfully\",\n  \"data\": null\n}\n\n</code></pre>\n","urlObject":{"path":["sme","shareholder","remove"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"5545bd2c-9152-4fd0-bb63-b3a365e666d3","name":"Shareholder removed.","originalRequest":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"onboarding_request_id\": \"string\",\n  \"member_id\": \"string\",\n  \"member_type\": 0\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/sme/shareholder/remove"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {}\n}"}],"_postman_id":"c105ea15-05cb-434b-b47e-1344eaa204b0"}],"id":"f851bcb5-caea-460a-ae02-44d44243bd41","description":"<h3 id=\"post-smeshareholderadd--add-sme-shareholder\">POST /sme/shareholder/add — Add SME Shareholder</h3>\n<p><strong>Description:</strong></p>\n<p>Adds a shareholder to an SME onboarding application. Required for LLCs, Partnerships, and NGOs (business types 2, 3, 4) before submitting for review. Not needed for Sole Proprietorships.  \n﻿</p>\n<p>Send EITHER the Individual object OR the Organisation object — never both in the same request.  \n﻿</p>\n<p>For Individual shareholders, provide:<br />id_type, id_number, gender, country_code, mobile, first_name, last_name, tin</p>\n<ul>\n<li><p>base64 document files: id_front_side_file, id_back_side_file, selfie_file, tin_file</p>\n</li>\n<li><p>corresponding MIME types for each file</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>﻿\n</code></pre><p>For Organisation shareholders, provide:<br />company_name, registration_file (base64), registration_file_type  \n﻿</p>\n<p>What you get back:<br />member_id → populated for individual shareholders<br />company_id → populated for organisation shareholders<br />Save these IDs to use with DELETE /sme/shareholder/remove.</p>\n<p><strong>Request Body (Individual shareholder):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"onboarding_request_id\": \"SME-20260628-DFT001\",\n  \"Individual\": {\n    \"id_type\": \"NATIONAL_ID\",\n    \"id_number\": \"55544433321\",\n    \"gender\": 0,\n    \"email\": \"ngozi.okonkwo@example.ng\",\n    \"country_code\": \"234\",\n    \"mobile\": \"+2348099887766\",\n    \"first_name\": \"Ngozi\",\n    \"middle_name\": \"Chidinma\",\n    \"last_name\": \"Okonkwo\",\n    \"tin\": \"55544433-0001\",\n    \"id_front_side_file\": \"&lt;base64_encoded_image&gt;\",\n    \"id_front_side_file_type\": \"image\", // pdf or image\n    \"id_back_side_file\": \"&lt;base64_encoded_image&gt;\",\n    \"id_back_side_file_type\": \"image\", // pdf or image\n    \"selfie_file\": \"&lt;base64_encoded_image&gt;\",\n    \"selfie_file_type\": \"image\", // pdf or image\n    \"tin_file\": \"&lt;base64_encoded_image&gt;\",\n    \"tin_file_type\": \"image\" // pdf or image\n  }\n}\n\n</code></pre>\n<p><strong>Request Body (Organisation shareholder):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"onboarding_request_id\": \"SME-20260628-DFT001\",\n  \"Organisation\": {\n    \"company_name\": \"Okonkwo Holdings Limited\",\n    \"registration_file\": \"&lt;base64_encoded_pdf&gt;\",\n    \"registration_file_type\": \"pdf\"\n  }\n}\n\n</code></pre>\n<p><strong>Success Response (201):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"Shareholder added successfully\",\n  \"data\": {\n    \"member_id\": \"M-001\",\n    \"company_id\": \"\"\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 400 — Neither provided\n{\n  \"success\": false,\n  \"message\": \"either Individual or Organisation shareholder info must be provided\",\n  \"data\": null\n}\n// 400 — Both provided\n{\n  \"success\": false,\n  \"message\": \"only one of Individual or Organisation shareholder info may be provided\",\n  \"data\": null\n}\n\n</code></pre>\n<h3 id=\"delete-smeshareholderremove--remove-sme-shareholder\">DELETE /sme/shareholder/remove — Remove SME Shareholder</h3>\n<p><strong>Description:</strong></p>\n<p>Removes a previously added shareholder from an SME onboarding application.  \n﻿</p>\n<p>member_id → the ID returned when the shareholder was added (member_id for individuals, company_id for organisations)  \n﻿</p>\n<p>member_type:<br />0 = Individual<br />1 = Organisation  \n﻿</p>\n<p>After removing, re-add the correct shareholder via POST /sme/shareholder/add.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"onboarding_request_id\": \"SME-20260628-DFT001\",\n  \"member_id\": \"M-001\",\n  \"member_type\": 0\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"Shareholder removed successfully\",\n  \"data\": null\n}\n\n</code></pre>\n","_postman_id":"f851bcb5-caea-460a-ae02-44d44243bd41","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","name":"Multicurrency","type":"folder"}}},{"name":"Apply for SME onboarding","id":"3cbc0385-2566-4439-8000-f69744ca70a2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"basicConfig":[]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"country_code\": \"234\",\n  \"mobile\": \"+2348055987654\",\n  \"email\": \"info@deltafortytechltd.ng\",\n  \"business_type\": 2,\n  \"otp_type\": \"EMAIL\"\n}\n","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/fx/sme/onboarding/apply","description":"<h3 id=\"post-smeonboardingapply--apply-for-sme-onboarding\">POST /sme/onboarding/apply — Apply for SME Onboarding</h3>\n<p><strong>Description:</strong></p>\n<p>Starts the SME onboarding process and sends an OTP to the business owner. Always the first call in the SME flow.</p>\n<p>business_type values:<br />1 = Sole Proprietorship (single owner — no shareholders needed)<br />2 = LLC / Limited Company<br />3 = Partnership<br />4 = NGO / CBO</p>\n<p>What you get back:<br />onboarding_request_id → your tracking ID for all subsequent SME steps. Save this.</p>\n<p>After this call, confirm OTP via POST /onboarding/otp/confirm, then submit business details via POST /sme/onboarding/submit.</p>\n<h4 id=\"request-body\">Request Body:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"country_code\": \"234\",\n  \"mobile\": \"+2348055987654\",\n  \"email\": \"info@deltafortytechltd.ng\",\n  \"business_type\": 2,\n  \"otp_type\": \"EMAIL\"\n}\n\n</code></pre>\n<h4 id=\"success-response-201\">Success Response (201):</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"SME onboarding application submitted successfully\",\n  \"data\": {\n    \"onboarding_request_id\": \"SME-20260628-DFT001\"\n  }\n}\n\n</code></pre>\n<h4 id=\"error-responses\">Error Responses:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 400 — Invalid business_type\n{\n  \"success\": false,\n  \"message\": \"invalid Business type — must be 1, 2, 3, or 4\",\n  \"data\": null\n}\n\n</code></pre>\n","urlObject":{"path":["fx","sme","onboarding","apply"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"bf628450-8d37-4eff-a3b5-e9fd4c5a73c7","name":"Application submitted.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"user_id\": \"string\",\n  \"country_code\": \"string\",\n  \"mobile\": \"string\",\n  \"business_type\": 2,\n  \"otp_type\": \"SMS\",\n  \"email\": \"syyF4u@Q.nrdk\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/sme/onboarding/apply"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"onboarding_request_id\": \"string\"\n  }\n}"},{"id":"35b68868-9787-4e25-afbf-9e1851911546","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"user_id\": \"string\",\n  \"country_code\": \"string\",\n  \"mobile\": \"string\",\n  \"business_type\": 2,\n  \"otp_type\": \"SMS\",\n  \"email\": \"syyF4u@Q.nrdk\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/sme/onboarding/apply"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"3cbc0385-2566-4439-8000-f69744ca70a2"},{"name":"Get SME onboarding status","id":"4a429a50-a81f-45ae-b5d7-24b759ec9fbf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/sme/onboarding/status?onboarding_request_id=string&business_cer_no=string","description":"<h3 id=\"get-smeonboardingstatus--get-sme-onboarding-status\">GET /sme/onboarding/status — Get SME Onboarding Status</h3>\n<p><strong>Description:</strong></p>\n<p>Checks the review status of a submitted SME application. Poll this after calling POST /sme/onboarding/action with action: \"SUBMIT\".</p>\n<p>The same status codes as individual onboarding apply (0–9).</p>\n<p>When approved, account_id is populated with the business's account number.</p>\n<p>If rejected, check reject_reason_msgs for details. Pull back, correct, and resubmit.</p>\n<p><strong>Query Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">onboarding_request_id=\"SME-20260628-DFT001\"\nbusiness_cer_no=\"RC347832\"\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"SME onboarding status retrieved successfully\",\n  \"data\": {\n    \"onboarding_request_id\": \"SME-20260628-DFT001\",\n    \"onboarding_status\": \"7\",\n    \"rejection_reason_ids\": [],\n    \"reject_reason_msgs\": [],\n    \"account_id\": \"3001122334\",\n    \"account_type\": \"B001\",\n    \"audit_time\": \"1751075200\"\n  }\n}\n\n</code></pre>\n","urlObject":{"path":["sme","onboarding","status"],"host":["{{baseUrl}}"],"query":[{"key":"onboarding_request_id","value":"string"},{"key":"business_cer_no","value":"string"}],"variable":[]}},"response":[{"id":"b181a0ae-6c3f-41ea-b933-84b2e994d90b","name":"Status retrieved.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"{{baseUrl}}/sme/onboarding/status?onboardingRequestId=string&businessCerNo=string","host":["{{baseUrl}}"],"path":["sme","onboarding","status"],"query":[{"key":"onboardingRequestId","value":"string"},{"key":"businessCerNo","value":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"onboarding_request_id\": \"string\",\n    \"onboarding_status\": \"string\",\n    \"rejection_reason_ids\": [\n      \"string\",\n      \"string\"\n    ],\n    \"reject_reason_msgs\": [\n      \"string\",\n      \"string\"\n    ],\n    \"account_id\": \"string\",\n    \"account_type\": \"string\",\n    \"audit_time\": \"string\"\n  }\n}"},{"id":"09a15f5f-88ea-4bd3-b2a3-6bf4fbe1e3a7","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"{{baseUrl}}/sme/onboarding/status?onboardingRequestId=string&businessCerNo=string","host":["{{baseUrl}}"],"path":["sme","onboarding","status"],"query":[{"key":"onboardingRequestId","value":"string"},{"key":"businessCerNo","value":"string"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"4a429a50-a81f-45ae-b5d7-24b759ec9fbf"},{"name":"Get SME onboarding info","id":"1bf17f8c-1dfd-4be2-ac59-63a889021e63","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/sme/onboarding/info?onboardingRequestId=string","description":"<h2 id=\"get-smeonboardinginfo--get-sme-onboarding-info\">GET /sme/onboarding/info — Get SME Onboarding Info</h2>\n<p><strong>Description:</strong></p>\n<p>Retrieves all information submitted so far for an SME onboarding request — business details, uploaded documents, shareholder list, and current status.</p>\n<p>Use this to:<br />→ Pre-populate an edit form before resubmission<br />→ Verify all required documents have been uploaded<br />→ Review the shareholders registered against the application</p>\n<p>onboarding_media_infos → documents uploaded so far (file_id, file_url, media_type)<br />shareholders_member_infos → individual shareholders added<br />shareholders_company_infos → company shareholders added</p>\n<p><strong>Query Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>onboarding_request_id=SME-20260628-DFT001\n\n</code></pre><p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"SME onboarding info retrieved successfully\",\n  \"data\": {\n    \"onboarding_request_id\": \"SME-20260628-DFT001\",\n    \"business_name\": \"Delta Forty Tech Limited\",\n    \"business_type\": 2,\n    \"business_certificate_number\": \"RC-1234567\",\n    \"tin\": \"23456789-0001\",\n    \"business_address\": \"Plot 14, Adeola Odeku Street, Victoria Island, Lagos\",\n    \"business_industry\": \"Technology\",\n    \"specify_industry\": \"Fintech Infrastructure\",\n    \"onboarding_media_infos\": [\n      {\n        \"file_id\": \"FILE-001\",\n        \"file_url\": \"https://cdn.choicebank.com/uploads/deltaforty-cert.pdf\",\n        \"media_type\": 0,\n        \"content_type\": \"application/pdf\"\n      }\n    ],\n    \"owner_full_name\": null,\n    \"owner_id_number\": null,\n    \"owner_id_type\": null,\n    \"owner_birth_day\": null,\n    \"kin_full_name\": null,kr\n    \"kin_country_code\": null,\n    \"kin_mobile\": null,\n    \"kin_relationship\": null,\n    \"shareholders_member_infos\": [\n      {\n        \"member_id\": \"M-001\",\n        \"full_name\": \"Ngozi Okonkwo\",\n        \"id_type\": \"NATIONAL_ID\",\n        \"id_number\": \"55544433321\",\n        \"tin\": \"55544433-0001\",\n        \"country_code\": \"NG\",\n        \"mobile\": \"+2348099887766\",\n        \"id_front_file_url\": \"https://cdn.choicebank.com/uploads/ngozi-id-front.jpg\",\n        \"id_back_file_url\": \"https://cdn.choicebank.com/uploads/ngozi-id-back.jpg\",\n        \"selfie_file_url\": \"https://cdn.choicebank.com/uploads/ngozi-selfie.jpg\",\n        \"kra_pin_file_url\": \"https://cdn.choicebank.com/uploads/ngozi-tin.jpg\"\n      }\n    ],\n    \"shareholders_company_infos\": [],\n    \"status\": 1,\n    \"reject_reason_ids\": [],\n    \"reject_reason_msgs\": [],\n    \"create_time\": 1751068800,\n    \"audit_time\": 0\n  }\n}\n\n</code></pre>\n","urlObject":{"path":["sme","onboarding","info"],"host":["{{baseUrl}}"],"query":[{"key":"onboardingRequestId","value":"string"}],"variable":[]}},"response":[{"id":"88667672-ac51-41a9-9803-d579fb9bf7c0","name":"Info retrieved.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"{{baseUrl}}/sme/onboarding/info?onboardingRequestId=string&business_type=8528","host":["{{baseUrl}}"],"path":["sme","onboarding","info"],"query":[{"key":"onboardingRequestId","value":"string"},{"key":"business_type","value":"8528"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"onboarding_request_id\": \"string\",\n    \"business_name\": \"string\",\n    \"business_type\": 2873,\n    \"business_certificate_number\": \"string\",\n    \"kra_pin\": \"string\",\n    \"business_address\": \"string\",\n    \"business_industry\": \"string\",\n    \"specify_industry\": \"string\",\n    \"onboarding_media_infos\": [\n      {\n        \"file_id\": \"string\",\n        \"file_url\": \"string\",\n        \"media_type\": 875,\n        \"content_type\": \"string\"\n      },\n      {\n        \"file_id\": \"string\",\n        \"file_url\": \"string\",\n        \"media_type\": 1524,\n        \"content_type\": \"string\"\n      }\n    ],\n    \"owner_full_name\": \"string\",\n    \"owner_id_number\": \"string\",\n    \"owner_id_type\": \"string\",\n    \"owner_birth_day\": \"string\",\n    \"kin_full_name\": \"string\",\n    \"kin_country_code\": \"string\",\n    \"kin_mobile\": \"string\",\n    \"kin_relationship\": \"string\",\n    \"shareholders_member_infos\": [\n      {\n        \"member_id\": \"string\",\n        \"full_name\": \"string\",\n        \"id_type\": \"string\",\n        \"id_number\": \"string\",\n        \"kra_pin\": \"string\",\n        \"country_code\": \"string\",\n        \"mobile\": \"string\",\n        \"id_front_file_url\": \"string\",\n        \"id_back_file_url\": \"string\",\n        \"selfie_file_url\": \"string\",\n        \"kra_pin_file_url\": \"string\"\n      },\n      {\n        \"member_id\": \"string\",\n        \"full_name\": \"string\",\n        \"id_type\": \"string\",\n        \"id_number\": \"string\",\n        \"kra_pin\": \"string\",\n        \"country_code\": \"string\",\n        \"mobile\": \"string\",\n        \"id_front_file_url\": \"string\",\n        \"id_back_file_url\": \"string\",\n        \"selfie_file_url\": \"string\",\n        \"kra_pin_file_url\": \"string\"\n      }\n    ],\n    \"shareholders_company_infos\": [\n      {\n        \"company_id\": \"string\",\n        \"company_name\": \"string\",\n        \"registration_file_url\": \"string\"\n      },\n      {\n        \"company_id\": \"string\",\n        \"company_name\": \"string\",\n        \"registration_file_url\": \"string\"\n      }\n    ],\n    \"status\": 8994,\n    \"reject_reason_ids\": [\n      \"string\",\n      \"string\"\n    ],\n    \"reject_reason_msgs\": [\n      \"string\",\n      \"string\"\n    ],\n    \"create_time\": 5396,\n    \"audit_time\": 2401\n  }\n}"},{"id":"97a73b0c-c2af-41fe-a5a4-7ca167072dd7","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"{{baseUrl}}/sme/onboarding/info?onboardingRequestId=string&business_type=8528","host":["{{baseUrl}}"],"path":["sme","onboarding","info"],"query":[{"key":"onboardingRequestId","value":"string"},{"key":"business_type","value":"8528"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"1bf17f8c-1dfd-4be2-ac59-63a889021e63"},{"name":"Submit SME onboarding info","id":"5a25791a-1173-47c8-bca0-243c87fe949d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"onboarding_request_id\": \"SME-20260628-SOL001\",\n  \"business_type\": 1,\n  \"business_name\": \"Tunde Ventures\",\n  \"business_cer_num\": \"BN-9876543\",\n  \"tin\": \"98765432-0001\",\n  \"business_address\": \"22 Allen Avenue, Ikeja, Lagos\",\n  \"business_industry\": \"Retail\",\n  \"specify_industry\": \"Electronics\",\n  \"first_name\": \"Babatunde\",\n  \"last_name\": \"Adeyemi\",\n  \"birthday\": \"1985-07-22\",\n  \"gender\": 1,\n  \"id_number\": \"98765432101\",\n  \"kin_full_name\": \"Folake Adeyemi\",\n  \"kin_relationship\": \"Spouse\",\n  \"kin_country_code\": \"NG\",\n  \"kin_mobile\": \"+2348022334455\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/sme/onboarding/submit","description":"<h3 id=\"post-smeonboardingsubmit--submit-sme-business-details\">POST /sme/onboarding/submit — Submit SME Business Details</h3>\n<p><strong>Description:</strong><br />ubmits detailed business information after OTP verification. Required fields vary by business_type.</p>\n<p>Always required (all types):<br />onboarding_request_id, business_type, business_name, business_cer_num,<br />kra_pin, business_address, business_industry</p>\n<p>Required for LLC / Partnership / NGO (types 2, 3, 4):<br />operating_mode:<br />1 = Singly (any one signatory can authorise)<br />2 = Either to Sign<br />3 = Any Two to Sign<br />4 = All of Us Jointly</p>\n<p>Required for Sole Proprietorship only (type 1):<br />first_name, last_name, birthday, gender, id_number,<br />kin_full_name, kin_relationship, kin_country_code, kin_mobile</p>\n<p>After submitting: upload documents → add shareholders (if applicable) → submit for review.</p>\n<h4 id=\"business-industry-codes\">Business Industry Codes</h4>\n<p>The <code>business_inductry</code> field accepts an integer corresponding to the applicant's primary business industry.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Business Sector</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1</td>\n<td>Agriculture and Agribusiness</td>\n</tr>\n<tr>\n<td>2</td>\n<td>Manufacturing and Processing</td>\n</tr>\n<tr>\n<td>3</td>\n<td>Construction and Engineering</td>\n</tr>\n<tr>\n<td>4</td>\n<td>Retail and Wholesale Trade</td>\n</tr>\n<tr>\n<td>5</td>\n<td>Information and Communication Technology</td>\n</tr>\n<tr>\n<td>6</td>\n<td>Tourism and Hospitality</td>\n</tr>\n<tr>\n<td>7</td>\n<td>Health and Wellness Services</td>\n</tr>\n<tr>\n<td>8</td>\n<td>Education and Training</td>\n</tr>\n<tr>\n<td>9</td>\n<td>Financial Services</td>\n</tr>\n<tr>\n<td>10</td>\n<td>Professional Services</td>\n</tr>\n<tr>\n<td>11</td>\n<td>Creative Industries</td>\n</tr>\n<tr>\n<td>12</td>\n<td>Renewable Energy and Environmental Conservation</td>\n</tr>\n<tr>\n<td>13</td>\n<td>Transport and Logistics</td>\n</tr>\n<tr>\n<td>14</td>\n<td>Food and Beverage</td>\n</tr>\n<tr>\n<td>15</td>\n<td>Textiles and Apparel</td>\n</tr>\n<tr>\n<td>16</td>\n<td>Automotive and Engineering Services</td>\n</tr>\n<tr>\n<td>17</td>\n<td>Beauty and Personal Care</td>\n</tr>\n<tr>\n<td>18</td>\n<td>Real Estate and Property Development</td>\n</tr>\n<tr>\n<td>19</td>\n<td>Consulting and Business Services</td>\n</tr>\n<tr>\n<td>20</td>\n<td>Social Enterprises and NGOs</td>\n</tr>\n<tr>\n<td>21</td>\n<td>Others (please specify)</td>\n</tr>\n</tbody>\n</table>\n</div><p>The above example indicates that the business sector is <strong>Information and Communication Technology</strong>.</p>\n<p><strong>Request Body (LLC example — business_type 2):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"onboarding_request_id\": \"SME-20260628-DFT001\",\n  \"business_type\": 2,\n  \"business_name\": \"Delta Forty Tech Limited\",\n  \"business_cer_num\": \"RC-1234567\",\n  \"tin\": \"23456789-0001\",\n  \"operating_mode\": 3,\n  \"business_address\": \"Plot 14, Adeola Odeku Street, Victoria Island, Lagos\",\n  \"business_industry\": 5,\n  \"specify_industry\": \"Fintech Infrastructure\"\n}\n\n</code></pre>\n<p><strong>Request Body (Sole Proprietorship example — business_type 1):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"onboarding_request_id\": \"SME-20260628-SOL001\",\n  \"business_type\": 1,\n  \"business_name\": \"Tunde Ventures\",\n  \"business_cer_num\": \"BN-9876543\",\n  \"tin\": \"98765432-0001\",\n  \"business_address\": \"22 Allen Avenue, Ikeja, Lagos\",\n  \"business_industry\": \"Retail\",\n  \"specify_industry\": \"Electronics\",\n  \"first_name\": \"Babatunde\",\n  \"last_name\": \"Adeyemi\",\n  \"birthday\": \"1985-07-22\",\n  \"gender\": 1,\n  \"id_number\": \"98765432101\",\n  \"kin_full_name\": \"Folake Adeyemi\",\n  \"kin_relationship\": \"Spouse\",\n  \"kin_country_code\": \"NG\",\n  \"kin_mobile\": \"+2348022334455\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"SME onboarding info submitted successfully\",\n  \"data\": null\n}\n\n</code></pre>\n","urlObject":{"path":["sme","onboarding","submit"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"2a44a195-97cf-497d-a7be-1b4280d4351b","name":"Info submitted.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"onboarding_request_id\": \"string\",\n  \"business_type\": 3,\n  \"business_name\": \"string\",\n  \"business_cer_num\": \"string\",\n  \"kra_pin\": \"string\",\n  \"business_address\": \"string\",\n  \"business_industry\": \"string\",\n  \"operating_mode\": 2,\n  \"specify_industry\": \"string\",\n  \"first_name\": \"string\",\n  \"middle_name\": \"string\",\n  \"last_name\": \"string\",\n  \"birthday\": \"2020-11-25\",\n  \"gender\": 0,\n  \"id_number\": \"string\",\n  \"kin_full_name\": \"string\",\n  \"kin_relationship\": \"string\",\n  \"kin_country_code\": \"string\",\n  \"kin_mobile\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/sme/onboarding/submit"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {}\n}"},{"id":"311753c8-d80b-41be-8ac8-82a33b5404b9","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"onboarding_request_id\": \"string\",\n  \"business_type\": 3,\n  \"business_name\": \"string\",\n  \"business_cer_num\": \"string\",\n  \"kra_pin\": \"string\",\n  \"business_address\": \"string\",\n  \"business_industry\": \"string\",\n  \"operating_mode\": 2,\n  \"specify_industry\": \"string\",\n  \"first_name\": \"string\",\n  \"middle_name\": \"string\",\n  \"last_name\": \"string\",\n  \"birthday\": \"2020-11-25\",\n  \"gender\": 0,\n  \"id_number\": \"string\",\n  \"kin_full_name\": \"string\",\n  \"kin_relationship\": \"string\",\n  \"kin_country_code\": \"string\",\n  \"kin_mobile\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/sme/onboarding/submit"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"5a25791a-1173-47c8-bca0-243c87fe949d"},{"name":"Submit or pull back SME onboarding","id":"ae23a470-f52e-44ee-aff1-7eacfe48e739","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"onboarding_request_id\": \"string\",\n  \"action\": \"PULL_BACK\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/sme/onboarding/action","description":"<h3 id=\"post-smeonboardingaction--submit--pull-back-sme-application\">POST /sme/onboarding/action — Submit / Pull Back SME Application</h3>\n<p><strong>Description:</strong></p>\n<p>Controls the final lifecycle stage of the SME onboarding. Use this to either submit the completed application for bank review, or withdraw it to make corrections.</p>\n<p>action values:<br />SUBMIT → sends the application to Choice Bank for review.<br />Only call this once all info is submitted, documents uploaded, and shareholders added.<br />PULL_BACK → withdraws a submitted application back to draft state for edits.</p>\n<p>After SUBMIT, poll GET /sme/onboarding/status until approved or rejected.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"onboarding_request_id\": \"SME-20260628-DFT001\",\n  \"action\": \"SUBMIT\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"SME onboarding request submitted successfully\",\n  \"data\": {\n    \"onboarding_request_id\": \"SME-20260628-DFT001\",\n    \"message\": \"Application submitted successfully\"\n  }\n}\n\n</code></pre>\n","urlObject":{"path":["sme","onboarding","action"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"31ea4e74-b33e-4a77-9f63-b116b8243170","name":"Action processed.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"onboarding_request_id\": \"string\",\n  \"user_id\": \"string\",\n  \"action\": \"PULL_BACK\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/sme/onboarding/action"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"onboarding_request_id\": \"string\",\n    \"message\": \"string\"\n  }\n}"},{"id":"c25b91e3-96ce-427f-bd6f-a02a6b82261a","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"onboarding_request_id\": \"string\",\n  \"user_id\": \"string\",\n  \"action\": \"PULL_BACK\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/sme/onboarding/action"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"ae23a470-f52e-44ee-aff1-7eacfe48e739"},{"name":"Cancel SME onboarding","id":"6d8766a8-6a62-4353-84e4-dcf438220509","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"onboarding_request_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/sme/onboarding/cancel","description":"<h3 id=\"delete-smeonboardingcancel--cancel-sme-onboarding\">DELETE /sme/onboarding/cancel — Cancel SME Onboarding</h3>\n<p><strong>Description:</strong></p>\n<p>Permanently cancels an SME onboarding request that has not yet been submitted for review. This action is irreversible.</p>\n<p>Use this only when abandoning an application entirely. To make edits to a submitted application instead, use <code>POST /sme/onboarding/action</code> with action: \"PULL_BACK\".</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"onboarding_request_id\": \"SME-20260628-DFT001\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"SME onboarding cancelled successfully\",\n  \"data\": null\n}\n\n</code></pre>\n","urlObject":{"path":["sme","onboarding","cancel"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"710a8db5-a3a7-4ec3-b7bf-3f9e59f046d2","name":"Onboarding cancelled.","originalRequest":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"onboarding_request_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/sme/onboarding/cancel"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {}\n}"}],"_postman_id":"6d8766a8-6a62-4353-84e4-dcf438220509"}],"id":"464f1dcb-54fe-44bf-8b81-09e76c786e6b","description":"<h2 id=\"sme-onboarding\">SME Onboarding</h2>\n<p>SME (Small and Medium Enterprise) onboarding registers a business entity, not an individual. Supported business types:<br />1 = Sole Proprietorship<br />2 = LLC / Limited Company<br />3 = Partnership<br />4 = NGO / CBO</p>\n<p>The SME flow is more involved than individual onboarding because it requires business registration documents, operating mandate details, and (for companies) shareholder information.</p>\n<p>Full SME flow:</p>\n<ol>\n<li><p>POST /sme/onboarding/apply — start onboarding, trigger OTP</p>\n</li>\n<li><p>POST /onboarding/otp/confirm — verify business owner's email</p>\n</li>\n<li><p>POST /sme/onboarding/submit — submit business details</p>\n</li>\n<li><p>POST /sme/media/upload — upload supporting documents</p>\n</li>\n<li><p>POST /sme/shareholder/add — add shareholders (not needed for sole prop)</p>\n</li>\n<li><p>POST /sme/onboarding/action — submit for bank review (action: \"0\")</p>\n</li>\n<li><p>GET /sme/onboarding/status — poll until approved</p>\n</li>\n</ol>\n<h3 id=\"post-smeonboardingapply--apply-for-sme-onboarding\">POST /sme/onboarding/apply — Apply for SME Onboarding</h3>\n<p><strong>Description:</strong></p>\n<p>Starts the SME onboarding process and sends an OTP to the business owner. Always the first call in the SME flow.</p>\n<p>business_type values:<br />1 = Sole Proprietorship (single owner — no shareholders needed)<br />2 = LLC / Limited Company<br />3 = Partnership<br />4 = NGO / CBO</p>\n<p>What you get back:<br />onboarding_request_id → your tracking ID for all subsequent SME steps. Save this.</p>\n<p>After this call, confirm OTP via POST /onboarding/otp/confirm, then submit business details via POST /sme/onboarding/submit.</p>\n<h4 id=\"request-body\">Request Body:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"user_id\": \"usr_ng_biz_9d4e1f2a\",\n  \"country_code\": \"234\",\n  \"mobile\": \"+2348055987654\",\n  \"email\": \"info@deltafortytechltd.ng\",\n  \"business_type\": 2,\n  \"otp_type\": \"EMAIL\"\n}\n\n</code></pre>\n<h4 id=\"success-response-201\">Success Response (201):</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"SME onboarding application submitted successfully\",\n  \"data\": {\n    \"onboarding_request_id\": \"SME-20260628-DFT001\"\n  }\n}\n\n</code></pre>\n<h4 id=\"error-responses\">Error Responses:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 400 — Invalid business_type\n{\n  \"success\": false,\n  \"message\": \"invalid Business type — must be 1, 2, 3, or 4\",\n  \"data\": null\n}\n\n</code></pre>\n<hr />\n<h3 id=\"post-smeonboardingsubmit--submit-sme-business-details\">POST /sme/onboarding/submit — Submit SME Business Details</h3>\n<p><strong>Description:</strong><br />ubmits detailed business information after OTP verification. Required fields vary by business_type.</p>\n<p>Always required (all types):<br />onboarding_request_id, business_type, business_name, business_cer_num,<br />kra_pin, business_address, business_industry</p>\n<p>Required for LLC / Partnership / NGO (types 2, 3, 4):<br />operating_mode:<br />1 = Singly (any one signatory can authorise)<br />2 = Either to Sign<br />3 = Any Two to Sign<br />4 = All of Us Jointly</p>\n<p>Required for Sole Proprietorship only (type 1):<br />first_name, last_name, birthday, gender, id_number,<br />kin_full_name, kin_relationship, kin_country_code, kin_mobile</p>\n<p>After submitting: upload documents → add shareholders (if applicable) → submit for review.</p>\n<h4 id=\"business-industry-codes\">Business Industry Codes</h4>\n<p>The <code>business_inductry</code> field accepts an integer corresponding to the applicant's primary business industry.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Business Sector</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1</td>\n<td>Agriculture and Agribusiness</td>\n</tr>\n<tr>\n<td>2</td>\n<td>Manufacturing and Processing</td>\n</tr>\n<tr>\n<td>3</td>\n<td>Construction and Engineering</td>\n</tr>\n<tr>\n<td>4</td>\n<td>Retail and Wholesale Trade</td>\n</tr>\n<tr>\n<td>5</td>\n<td>Information and Communication Technology</td>\n</tr>\n<tr>\n<td>6</td>\n<td>Tourism and Hospitality</td>\n</tr>\n<tr>\n<td>7</td>\n<td>Health and Wellness Services</td>\n</tr>\n<tr>\n<td>8</td>\n<td>Education and Training</td>\n</tr>\n<tr>\n<td>9</td>\n<td>Financial Services</td>\n</tr>\n<tr>\n<td>10</td>\n<td>Professional Services</td>\n</tr>\n<tr>\n<td>11</td>\n<td>Creative Industries</td>\n</tr>\n<tr>\n<td>12</td>\n<td>Renewable Energy and Environmental Conservation</td>\n</tr>\n<tr>\n<td>13</td>\n<td>Transport and Logistics</td>\n</tr>\n<tr>\n<td>14</td>\n<td>Food and Beverage</td>\n</tr>\n<tr>\n<td>15</td>\n<td>Textiles and Apparel</td>\n</tr>\n<tr>\n<td>16</td>\n<td>Automotive and Engineering Services</td>\n</tr>\n<tr>\n<td>17</td>\n<td>Beauty and Personal Care</td>\n</tr>\n<tr>\n<td>18</td>\n<td>Real Estate and Property Development</td>\n</tr>\n<tr>\n<td>19</td>\n<td>Consulting and Business Services</td>\n</tr>\n<tr>\n<td>20</td>\n<td>Social Enterprises and NGOs</td>\n</tr>\n<tr>\n<td>21</td>\n<td>Others (please specify)</td>\n</tr>\n</tbody>\n</table>\n</div><p>The above example indicates that the business sector is <strong>Information and Communication Technology</strong>.</p>\n<p><strong>Request Body (LLC example — business_type 2):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"onboarding_request_id\": \"SME-20260628-DFT001\",\n  \"business_type\": 2,\n  \"business_name\": \"Delta Forty Tech Limited\",\n  \"business_cer_num\": \"RC-1234567\",\n  \"tin\": \"23456789-0001\",\n  \"operating_mode\": 3,\n  \"business_address\": \"Plot 14, Adeola Odeku Street, Victoria Island, Lagos\",\n  \"business_industry\": 5,\n  \"specify_industry\": \"Fintech Infrastructure\"\n}\n\n</code></pre>\n<p><strong>Request Body (Sole Proprietorship example — business_type 1):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"onboarding_request_id\": \"SME-20260628-SOL001\",\n  \"business_type\": 1,\n  \"business_name\": \"Tunde Ventures\",\n  \"business_cer_num\": \"BN-9876543\",\n  \"tin\": \"98765432-0001\",\n  \"business_address\": \"22 Allen Avenue, Ikeja, Lagos\",\n  \"business_industry\": 5,\n  \"specify_industry\": \"Electronics\",\n  \"first_name\": \"Babatunde\",\n  \"last_name\": \"Adeyemi\",\n  \"birthday\": \"1985-07-22\",\n  \"gender\": 1,\n  \"id_number\": \"98765432101\",\n  \"kin_full_name\": \"Folake Adeyemi\",\n  \"kin_relationship\": \"Spouse\",\n  \"kin_country_code\": \"NG\",\n  \"kin_mobile\": \"+2348022334455\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"SME onboarding info submitted successfully\",\n  \"data\": null\n}\n\n</code></pre>\n<h2 id=\"get-smeonboardinginfo--get-sme-onboarding-info\">GET /sme/onboarding/info — Get SME Onboarding Info</h2>\n<p><strong>Description:</strong></p>\n<p>Retrieves all information submitted so far for an SME onboarding request — business details, uploaded documents, shareholder list, and current status.</p>\n<p>Use this to:<br />→ Pre-populate an edit form before resubmission<br />→ Verify all required documents have been uploaded<br />→ Review the shareholders registered against the application</p>\n<p>onboarding_media_infos → documents uploaded so far (file_id, file_url, media_type)<br />shareholders_member_infos → individual shareholders added<br />shareholders_company_infos → company shareholders added</p>\n<p><strong>Query Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">onboarding_request_id=\"SME-20260628-DFT001\"\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"SME onboarding info retrieved successfully\",\n  \"data\": {\n    \"onboarding_request_id\": \"SME-20260628-DFT001\",\n    \"business_name\": \"Delta Forty Tech Limited\",\n    \"business_type\": 2,\n    \"business_certificate_number\": \"RC-1234567\",\n    \"kra_pin\": \"23456789-0001\",\n    \"business_address\": \"Plot 14, Adeola Odeku Street, Victoria Island, Lagos\",\n    \"business_industry\": \"Technology\",\n    \"specify_industry\": \"Fintech Infrastructure\",\n    \"onboarding_media_infos\": [\n      {\n        \"file_id\": \"FILE-001\",\n        \"file_url\": \"https://cdn.choicebank.com/uploads/deltaforty-cert.pdf\",\n        \"media_type\": 0,\n        \"content_type\": \"application/pdf\"\n      }\n    ],\n    \"owner_full_name\": null,\n    \"owner_id_number\": null,\n    \"owner_id_type\": null,\n    \"owner_birth_day\": null,\n    \"kin_full_name\": null,\n    \"kin_country_code\": null,\n    \"kin_mobile\": null,\n    \"kin_relationship\": null,\n    \"shareholders_member_infos\": [\n      {\n        \"member_id\": \"M-001\",\n        \"full_name\": \"Ngozi Okonkwo\",\n        \"id_type\": \"NATIONAL_ID\",\n        \"id_number\": \"55544433321\",\n        \"tin\": \"55544433-0001\",\n        \"country_code\": \"NG\",\n        \"mobile\": \"+2348099887766\",\n        \"id_front_file_url\": \"https://cdn.choicebank.com/uploads/ngozi-id-front.jpg\",\n        \"id_back_file_url\": \"https://cdn.choicebank.com/uploads/ngozi-id-back.jpg\",\n        \"selfie_file_url\": \"https://cdn.choicebank.com/uploads/ngozi-selfie.jpg\",\n        \"kra_pin_file_url\": \"https://cdn.choicebank.com/uploads/ngozi-tin.jpg\"\n      }\n    ],\n    \"shareholders_company_infos\": [],\n    \"status\": 1,\n    \"reject_reason_ids\": [],\n    \"reject_reason_msgs\": [],\n    \"create_time\": 1751068800,\n    \"audit_time\": 0\n  }\n}\n\n</code></pre>\n<h3 id=\"get-smeonboardingstatus--get-sme-onboarding-status\">GET /sme/onboarding/status — Get SME Onboarding Status</h3>\n<p><strong>Description:</strong></p>\n<p>Checks the review status of a submitted SME application. Poll this after calling POST /sme/onboarding/action with action: \"SUBMIT\".</p>\n<p>The same status codes as individual onboarding apply (0–9).</p>\n<p>When approved, account_id is populated with the business's account number.</p>\n<p>If rejected, check reject_reason_msgs for details. Pull back, correct, and resubmit.</p>\n<p><strong>Query Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">onboarding_request_id=\"SME-20260628-DFT001\"\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"SME onboarding status retrieved successfully\",\n  \"data\": {\n    \"onboarding_request_id\": \"SME-20260628-DFT001\",\n    \"onboarding_status\": \"7\",\n    \"rejection_reason_ids\": [],\n    \"reject_reason_msgs\": [],\n    \"account_id\": \"3001122334\",\n    \"account_type\": \"B001\",\n    \"audit_time\": \"1751075200\"\n  }\n}\n\n</code></pre>\n<h3 id=\"post-smeonboardingaction--submit--pull-back-sme-application\">POST /sme/onboarding/action — Submit / Pull Back SME Application</h3>\n<p><strong>Description:</strong></p>\n<p>Controls the final lifecycle stage of the SME onboarding. Use this to either submit the completed application for bank review, or withdraw it to make corrections.</p>\n<p>action values:<br />SUBMIT → sends the application to Choice Bank for review.<br />Only call this once all info is submitted, documents uploaded, and shareholders added.<br />PULL_BACK → withdraws a submitted application back to draft state for edits.</p>\n<p>After SUBMIT, poll GET /sme/onboarding/status until approved or rejected.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"onboarding_request_id\": \"SME-20260628-DFT001\",\n  \"user_id\": \"usr_ng_biz_9d4e1f2a\",\n  \"action\": \"SUBMIT\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"SME onboarding request submitted successfully\",\n  \"data\": {\n    \"onboarding_request_id\": \"SME-20260628-DFT001\",\n    \"message\": \"Application submitted successfully\"\n  }\n}\n\n</code></pre>\n<h3 id=\"delete-smeonboardingcancel--cancel-sme-onboarding\">DELETE /sme/onboarding/cancel — Cancel SME Onboarding</h3>\n<p><strong>Description:</strong></p>\n<p>Permanently cancels an SME onboarding request that has not yet been submitted for review. This action is irreversible.</p>\n<p>Use this only when abandoning an application entirely. To make edits to a submitted application instead, use <code>POST /sme/onboarding/action</code> with action: \"PULL_BACK\".</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"onboarding_request_id\": \"SME-20260628-DFT001\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"SME onboarding cancelled successfully\",\n  \"data\": null\n}\n\n</code></pre>\n","_postman_id":"464f1dcb-54fe-44bf-8b81-09e76c786e6b","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","name":"Multicurrency","type":"folder"}}},{"name":"OTP","item":[{"name":"Send OTP","id":"b3c10746-624f-48d7-b970-f8069d99e08f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"request_id\": \"CB-20260628-EMK001\",\n  \"otp_type\": \"EMAIL\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/onboarding/otp/send","description":"<h3 id=\"post-onboardingotpsend--send-onboarding-otp\">POST /onboarding/otp/send — Send Onboarding OTP</h3>\n<p><strong>Description:</strong></p>\n<p>Sends a one-time password to verify the customer's phone number or email address. Call this after creating the onboarding request.<br />otp_type: \"EMAIL\" → delivers to the email address provided</p>\n<p>The request_id is the onboarding_request_id from POST /current-account/create.</p>\n<p>After this, prompt the customer to enter the code they received, then confirm via POST /onboarding/otp/confirm.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"request_id\": \"CB-20260628-EMK001\",\n  \"otp_type\": \"EMAIL\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"OTP Sent successfully\",\n  \"data\": {\n    \"application_id\": \"APP-20260628-OTP001\",\n    \"status\": \"SUCCESS\"\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 400 — Missing request_id\n{\n  \"success\": false,\n  \"message\": \"request_id is required\",\n  \"data\": null\n}\n// 400 — Missing otp_type\n{\n  \"success\": false,\n  \"message\": \"otp_type is required\",\n  \"data\": null\n}\n\n</code></pre>\n","urlObject":{"path":["onboarding","otp","send"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"b35d0efb-df13-4433-b9ad-40ba02169733","name":"OTP sent.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"request_id\": \"string\",\n  \"otp_type\": \"EMAIL\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/onboarding/otp/send"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"application_id\": \"string\",\n    \"status\": \"string\"\n  }\n}"},{"id":"8798829d-fdee-4fbc-9be8-fc5da0f2e735","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"request_id\": \"string\",\n  \"otp_type\": \"EMAIL\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/onboarding/otp/send"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"b3c10746-624f-48d7-b970-f8069d99e08f"},{"name":"Confirm OTP","id":"3b48f4a0-ee2b-4c53-8ad9-560262a9dc09","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"request_id\": \"CB-20260628-EMK001\",\n  \"otp_code\": \"847291\",\n  \"type\": \"EMAIL\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/onboarding/otp/confirm","description":"<h3 id=\"post-onboardingotpconfirm--confirm-onboarding-otp\">POST /onboarding/otp/confirm — Confirm Onboarding OTP</h3>\n<p><strong>Description:</strong></p>\n<p>Validates the OTP the customer received. Call this after the customer enters the code in your app.</p>\n<p>The type field must match the otp_type used when sending \"EMAIL\".</p>\n<p>On success, status returns \"VERIFIED\" and onboarding advances to the next stage. If the code is wrong or expired, you get a 400 — prompt the customer to request a new OTP via POST /onboarding/otp/resend.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"request_id\": \"CB-20260628-EMK001\",\n  \"otp_code\": \"847291\",\n  \"type\": \"EMAIL\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"OTP Confirm successfully\",\n  \"data\": {\n    \"application_id\": \"APP-20260628-OTP001\",\n    \"status\": \"VERIFIED\",\n    \"message\": \"OTP verified successfully\"\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 400 — Wrong or expired code\n{\n  \"success\": false,\n  \"message\": \"Invalid or expired OTP\",\n  \"data\": null\n}\n// 400 — Missing type\n{\n  \"success\": false,\n  \"message\": \"type is required\",\n  \"data\": null\n}\n\n</code></pre>\n","urlObject":{"path":["onboarding","otp","confirm"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"052ec247-124f-4e87-b719-36eb7c2bb0af","name":"OTP confirmed.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"request_id\": \"string\",\n  \"otp_code\": \"string\",\n  \"type\": \"EMAIL\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/onboarding/otp/confirm"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"application_id\": \"string\",\n    \"status\": \"string\",\n    \"message\": \"string\"\n  }\n}"},{"id":"6671725d-d9c3-46ab-b2ce-41612c828262","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"request_id\": \"string\",\n  \"otp_code\": \"string\",\n  \"type\": \"EMAIL\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/onboarding/otp/confirm"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"3b48f4a0-ee2b-4c53-8ad9-560262a9dc09"},{"name":"Resend OTP","id":"2ba6d519-4a09-48a4-ba2d-702096391dbd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"request_id\": \"string\",\n  \"otp_type\": \"EMAIL\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/onboarding/otp/resend","description":"<h3 id=\"post-onboardingotpresend--resend-onboarding-otp\">POST /onboarding/otp/resend — Resend Onboarding OTP</h3>\n<p><strong>Description:</strong></p>\n<p>Sends a fresh OTP if the customer didn't receive the previous one or if it expired. Identical to POST /onboarding/otp/send — same fields, same response shape.</p>\n<p>Use this any time the customer reports not receiving their code or says the code is no longer working.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"request_id\": \"CB-20260628-EMK001\",\n  \"otp_type\": \"EMAIL\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"OTP Sent successfully\",\n  \"data\": {\n    \"application_id\": \"APP-20260628-OTP002\",\n    \"status\": \"SUCCESS\"\n  }\n}\n\n</code></pre>\n","urlObject":{"path":["onboarding","otp","resend"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"8e37ece9-2f89-4891-a361-865df2eeb3be","name":"OTP resent.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"request_id\": \"string\",\n  \"otp_type\": \"EMAIL\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/onboarding/otp/resend"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"application_id\": \"string\",\n    \"status\": \"string\"\n  }\n}"},{"id":"5ff2c0ff-6054-415c-982d-7cece98bfe37","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"request_id\": \"string\",\n  \"otp_type\": \"EMAIL\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/onboarding/otp/resend"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"2ba6d519-4a09-48a4-ba2d-702096391dbd"}],"id":"47b6a57f-eb4e-4e58-beb3-0fac67f0ff4e","description":"<h3 id=\"post-onboardingotpsend--send-onboarding-otp\">POST /onboarding/otp/send — Send Onboarding OTP</h3>\n<p><strong>Description:</strong></p>\n<p>Sends a one-time password to verify the customer's phone number or email address. Call this after creating the onboarding request.<br />otp_type: \"EMAIL\" → delivers to the email address provided</p>\n<p>The request_id is the onboarding_request_id from POST /current-account/create.</p>\n<p>After this, prompt the customer to enter the code they received, then confirm via POST /onboarding/otp/confirm.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"request_id\": \"CB-20260628-EMK001\",\n  \"otp_type\": \"EMAIL\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"OTP Sent successfully\",\n  \"data\": {\n    \"application_id\": \"APP-20260628-OTP001\",\n    \"status\": \"SUCCESS\"\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 400 — Missing request_id\n{\n  \"success\": false,\n  \"message\": \"request_id is required\",\n  \"data\": null\n}\n// 400 — Missing otp_type\n{\n  \"success\": false,\n  \"message\": \"otp_type is required\",\n  \"data\": null\n}\n\n</code></pre>\n<h3 id=\"post-onboardingotpconfirm--confirm-onboarding-otp\">POST /onboarding/otp/confirm — Confirm Onboarding OTP</h3>\n<p><strong>Description:</strong></p>\n<p>Validates the OTP the customer received. Call this after the customer enters the code in your app.</p>\n<p>The type field must match the otp_type used when sending \"EMAIL\".</p>\n<p>On success, status returns \"VERIFIED\" and onboarding advances to the next stage. If the code is wrong or expired, you get a 400 — prompt the customer to request a new OTP via POST /onboarding/otp/resend.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"request_id\": \"CB-20260628-EMK001\",\n  \"otp_code\": \"847291\",\n  \"type\": \"SMS\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"OTP Confirm successfully\",\n  \"data\": {\n    \"application_id\": \"APP-20260628-OTP001\",\n    \"status\": \"VERIFIED\",\n    \"message\": \"OTP verified successfully\"\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 400 — Wrong or expired code\n{\n  \"success\": false,\n  \"message\": \"Invalid or expired OTP\",\n  \"data\": null\n}\n// 400 — Missing type\n{\n  \"success\": false,\n  \"message\": \"type is required\",\n  \"data\": null\n}\n\n</code></pre>\n<h3 id=\"post-onboardingotpresend--resend-onboarding-otp\">POST /onboarding/otp/resend — Resend Onboarding OTP</h3>\n<p><strong>Description:</strong></p>\n<p>Sends a fresh OTP if the customer didn't receive the previous one or if it expired. Identical to POST /onboarding/otp/send — same fields, same response shape.</p>\n<p>Use this any time the customer reports not receiving their code or says the code is no longer working.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"request_id\": \"CB-20260628-EMK001\",\n  \"otp_type\": \"SMS\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"OTP Sent successfully\",\n  \"data\": {\n    \"application_id\": \"APP-20260628-OTP002\",\n    \"status\": \"SUCCESS\"\n  }\n}\n\n</code></pre>\n","_postman_id":"47b6a57f-eb4e-4e58-beb3-0fac67f0ff4e","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","name":"Multicurrency","type":"folder"}}},{"name":"Individual","item":[{"name":"Curren Account","item":[{"name":"Initiate current account onboarding","id":"967670a4-2272-4e62-902c-20a4bf29e609","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"first_name\": \"Chukwuemeka\",\n  \"middle_name\": \"Obiora\",\n  \"last_name\": \"Nwosu\",\n  \"birthday\": \"1992-03-14\",\n  \"address\": \"12 Admiralty Way, Lekki Phase 1, Lagos\",\n  \"gender\": 1,\n  \"country\": \"Nigeria\",\n  \"country_code\": \"234\",\n  \"mobile\": \"+2348031234567\",\n  \"email\": \"emeka.nwosu@example.ng\",\n  \"id_type\": \"PASSPORT\",\n  \"id_number\": \"12345678901\",\n  \"tin\": \"A000000000B\",\n  \"employment_status\": \"EMPLOYED\",\n  \"monthly_income\": \"60000_TO_84999\",\n  \"business_industry\": \"Technology\",\n  \"specify_industry\": \"Fintech\",\n  \"document_front\": \"<base64_encoded_image>\",\n  \"document_back\": \"<base64_encoded_image>\",\n  \"selfie\": \"<base64_encoded_image>\",\n  \"document_type\": \"PASSPORT\",\n  \"document_content_type\": \"image\", // image pr pdf\n  \"selfie_content_type\": \"image\" // image or pdf\n}\n","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/current-account/create","description":"<h2 id=\"current-account-onboarding\">Current Account Onboarding</h2>\n<hr />\n<h3 id=\"post-current-accountcreate--create-current-account\">POST /current-account/create — Create Current Account</h3>\n<p><strong>Description:</strong></p>\n<p>Kicks off the onboarding journey for a new individual customer. Submit the customer's personal details, ID document scans (as base64 strings), and a live selfie. Choice Bank runs KYC checks and opens a multi-currency account in the background.</p>\n<p>This is always the first call in the individual onboarding flow. The merchant_id is derived automatically from your API key — do not send it.</p>\n<p>After this call:<br />→ Poll GET /onboarding/status until status changes from PROCESSING<br />→ Trigger OTP via POST /onboarding/otp/send<br />→ Confirm OTP via POST /onboarding/otp/confirm<br />→ Poll GET /onboarding/status until status = 7 (account opened)</p>\n<p>Field notes:<br />birthday → YYYY-MM-DD format only<br />gender → 0 = Female, 1 = Male, 2 = Other<br />id_type → PASSPORT<br />employment_status → EMPLOYED | SELF_EMPLOYED | UNEMPLOYED | STUDENT | RETIRED<br />document_front / document_back / selfie → base64-encoded image strings<br />document_type / selfie_content_type → MIME type e.g. \"image\" of \"pdf\"</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>LESS_THAN_15000</code></td>\n<td>Less than <strong>₦15,000</strong></td>\n</tr>\n<tr>\n<td><code>15000_TO_24999</code></td>\n<td><strong>₦150,000 - ₦249,999</strong></td>\n</tr>\n<tr>\n<td><code>25000_TO_39999</code></td>\n<td><strong>₦250,000 - ₦399,999</strong></td>\n</tr>\n<tr>\n<td><code>40000_TO_59999</code></td>\n<td><strong>₦400,000 - ₦599,999</strong></td>\n</tr>\n<tr>\n<td><code>60000_TO_84999</code></td>\n<td><strong>₦600,000 - ₦849,999</strong></td>\n</tr>\n<tr>\n<td><code>ABOVE_85000</code></td>\n<td>Above <strong>₦850,000</strong></td>\n</tr>\n</tbody>\n</table>\n</div><div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>EMPLOYEE</code></td>\n<td>An individual employed by a company, organization, or government and earning a salary or wages.</td>\n</tr>\n<tr>\n<td><code>SELF_EMPLOYED</code></td>\n<td>An individual who works for themselves, such as a freelancer, sole proprietor, or independent contractor.</td>\n</tr>\n<tr>\n<td><code>UNEMPLOYED</code></td>\n<td>An individual who is currently not employed or self-employed.</td>\n</tr>\n<tr>\n<td><code>EMPLOYER</code></td>\n<td>An individual who owns or operates a business and employs one or more people.</td>\n</tr>\n<tr>\n<td><code>STUDENT</code></td>\n<td>An individual primarily engaged in full-time or part-time education.</td>\n</tr>\n<tr>\n<td><code>OTHERS</code></td>\n<td>Any employment status not covered by the above categories.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"first_name\": \"Chukwuemeka\",\n  \"middle_name\": \"Obiora\",\n  \"last_name\": \"Nwosu\",\n  \"birthday\": \"1992-03-14\",\n  \"address\": \"12 Admiralty Way, Lekki Phase 1, Lagos\",\n  \"gender\": 1,\n  \"country\": \"Nigeria\",\n  \"country_code\": \"234\",\n  \"mobile\": \"+2348031234567\",\n  \"email\": \"emeka.nwosu@example.ng\",\n  \"id_type\": \"PASSPORT\",\n  \"id_number\": \"12345678901\",\n  \"tin\": \"A000000000B\",\n  \"employment_status\": \"EMPLOYED\",\n  \"monthly_income\": \"60000_TO_84999\",\n  \"business_industry\": \"Technology\",\n  \"specify_industry\": \"Fintech\",\n  \"document_front\": \"&lt;base64_encoded_image&gt;\",\n  \"document_back\": \"&lt;base64_encoded_image&gt;\",\n  \"selfie\": \"&lt;base64_encoded_image&gt;\",\n  \"document_type\": \"PASSPORT\",\n  \"document_content_type\": \"image\", // image pr pdf\n  \"selfie_content_type\": \"image\" // image or pdf\n}\n\n</code></pre>\n<p><strong>Success Response (201):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"Current account onboarding initiated successfully\",\n  \"data\": {\n    \"job_id\": \"CB-20260628-EMK001\",\n    \"status\": \"PROCESSING\"\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 400 — Missing or invalid field\n{\n  \"success\": false,\n  \"message\": \"invalid birthday date format — expected YYYY-MM-DD\",\n  \"data\": null\n}\n// 500 — Upstream error\n{\n  \"success\": false,\n  \"message\": \"An unexpected error occurred. Please retry.\",\n  \"data\": null\n}\n\n</code></pre>\n","urlObject":{"path":["current-account","create"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"aa44539a-48df-4284-80fa-14dbc9b50611","name":"Onboarding initiated successfully.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"user_id\": \"string\",\n  \"first_name\": \"string\",\n  \"last_name\": \"string\",\n  \"birthday\": \"2016-09-17\",\n  \"address\": \"string\",\n  \"gender\": 0,\n  \"country\": \"string\",\n  \"country_code\": \"string\",\n  \"mobile\": \"string\",\n  \"email\": \"0vH8XpmiLWD@JcODKnAVKfhRdFuwFGnfGiORDVNNyj.we\",\n  \"id_type\": \"NATIONAL_ID\",\n  \"id_number\": \"string\",\n  \"kra_pin\": \"string\",\n  \"employment_status\": \"SELF_EMPLOYED\",\n  \"monthly_income\": \"string\",\n  \"document_front\": \"string\",\n  \"selfie\": \"string\",\n  \"document_type\": \"string\",\n  \"document_content_type\": \"string\",\n  \"selfie_content_type\": \"string\",\n  \"middle_name\": \"string\",\n  \"business_industry\": \"string\",\n  \"specify_industry\": \"string\",\n  \"document_back\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/current-account/create"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"job_id\": \"CB-20260415-ABC123\",\n    \"status\": \"PROCESSING\"\n  }\n}"},{"id":"3f3f0e51-c990-43a1-a34a-471d788b2b94","name":"Invalid request or validation error.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"user_id\": \"string\",\n  \"first_name\": \"string\",\n  \"last_name\": \"string\",\n  \"birthday\": \"2016-09-17\",\n  \"address\": \"string\",\n  \"gender\": 0,\n  \"country\": \"string\",\n  \"country_code\": \"string\",\n  \"mobile\": \"string\",\n  \"email\": \"0vH8XpmiLWD@JcODKnAVKfhRdFuwFGnfGiORDVNNyj.we\",\n  \"id_type\": \"NATIONAL_ID\",\n  \"id_number\": \"string\",\n  \"kra_pin\": \"string\",\n  \"employment_status\": \"SELF_EMPLOYED\",\n  \"monthly_income\": \"string\",\n  \"document_front\": \"string\",\n  \"selfie\": \"string\",\n  \"document_type\": \"string\",\n  \"document_content_type\": \"string\",\n  \"selfie_content_type\": \"string\",\n  \"middle_name\": \"string\",\n  \"business_industry\": \"string\",\n  \"specify_industry\": \"string\",\n  \"document_back\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/current-account/create"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"967670a4-2272-4e62-902c-20a4bf29e609"},{"name":"Open individual multi-currency account","id":"72b3b952-7a67-4670-9e6d-ff0985d49382","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"customer_name\": \"string\",\n  \"identity_id\": \"string\",\n  \"id_type\": 101,\n  \"currency\": \"RWF\",\n  \"external_customer_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/account/individual/open","description":"<p>Open a new currency-specific account for an onboarded customer. Each account is tied to a single currency (KES, USD, EUR, etc.). A customer can have multiple accounts in different currencies.</p>\n<p>The customer must have passed onboarding (status 7 -- account opened) before calling this.</p>\n","urlObject":{"path":["account","individual","open"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"d95183f2-644a-492d-a774-732ca514429b","name":"Account opening initiated.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"customer_name\": \"string\",\n  \"identity_id\": \"string\",\n  \"id_type\": 101,\n  \"currency\": \"RWF\",\n  \"external_customer_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/account/individual/open"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"application_id\": \"string\"\n  }\n}"},{"id":"5ab6bf80-4bae-4e13-805c-b4039bcd64ed","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"customer_name\": \"string\",\n  \"identity_id\": \"string\",\n  \"id_type\": 101,\n  \"currency\": \"RWF\",\n  \"external_customer_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/account/individual/open"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"},{"id":"94ea9c73-a972-4697-9f3c-c00777804010","name":"Conflict -- duplicate reference.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"customer_name\": \"string\",\n  \"identity_id\": \"string\",\n  \"id_type\": 101,\n  \"currency\": \"RWF\",\n  \"external_customer_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/account/individual/open"},"status":"Conflict","code":409,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"72b3b952-7a67-4670-9e6d-ff0985d49382"}],"id":"f442d4dd-ad21-4fc4-bf08-7d68f1a48181","description":"<h2 id=\"current-account-onboarding\">Current Account Onboarding</h2>\n<hr />\n<h3 id=\"post-current-accountcreate--create-current-account\">POST /current-account/create — Create Current Account</h3>\n<p><strong>Description:</strong></p>\n<p>Kicks off the onboarding journey for a new individual customer. Submit the customer's personal details, ID document scans (as base64 strings), and a live selfie. Choice Bank runs KYC checks and opens a multi-currency account in the background.</p>\n<p>This is always the first call in the individual onboarding flow. The merchant_id is derived automatically from your API key — do not send it.</p>\n<p>After this call:<br />→ Poll GET /onboarding/status until status changes from PROCESSING<br />→ Trigger OTP via POST /onboarding/otp/send<br />→ Confirm OTP via POST /onboarding/otp/confirm<br />→ Poll GET /onboarding/status until status = 7 (account opened)</p>\n<p>Field notes:<br />birthday → YYYY-MM-DD format only<br />gender → 0 = Female, 1 = Male, 2 = Other<br />id_type → PASSPORT<br />employment_status → EMPLOYED | SELF_EMPLOYED | UNEMPLOYED | STUDENT | RETIRED<br />document_front / document_back / selfie → base64-encoded image strings<br />document_type / selfie_content_type → MIME type e.g. \"image\" of \"pdf\"</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>LESS_THAN_15000</code></td>\n<td>Less than <strong>₦15,000</strong></td>\n</tr>\n<tr>\n<td><code>15000_TO_24999</code></td>\n<td><strong>₦150,000 - ₦249,999</strong></td>\n</tr>\n<tr>\n<td><code>25000_TO_39999</code></td>\n<td><strong>₦250,000 - ₦399,999</strong></td>\n</tr>\n<tr>\n<td><code>40000_TO_59999</code></td>\n<td><strong>₦400,000 - ₦599,999</strong></td>\n</tr>\n<tr>\n<td><code>60000_TO_84999</code></td>\n<td><strong>₦600,000 - ₦849,999</strong></td>\n</tr>\n<tr>\n<td><code>ABOVE_85000</code></td>\n<td>Above <strong>₦850,000</strong></td>\n</tr>\n</tbody>\n</table>\n</div><div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>EMPLOYEE</code></td>\n<td>An individual employed by a company, organization, or government and earning a salary or wages.</td>\n</tr>\n<tr>\n<td><code>SELF_EMPLOYED</code></td>\n<td>An individual who works for themselves, such as a freelancer, sole proprietor, or independent contractor.</td>\n</tr>\n<tr>\n<td><code>UNEMPLOYED</code></td>\n<td>An individual who is currently not employed or self-employed.</td>\n</tr>\n<tr>\n<td><code>EMPLOYER</code></td>\n<td>An individual who owns or operates a business and employs one or more people.</td>\n</tr>\n<tr>\n<td><code>STUDENT</code></td>\n<td>An individual primarily engaged in full-time or part-time education.</td>\n</tr>\n<tr>\n<td><code>OTHERS</code></td>\n<td>Any employment status not covered by the above categories.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"user_id\": \"usr_ng_7f3a2b1c\",\n  \"first_name\": \"Chukwuemeka\",\n  \"middle_name\": \"Obiora\",\n  \"last_name\": \"Nwosu\",\n  \"birthday\": \"1992-03-14\",\n  \"address\": \"12 Admiralty Way, Lekki Phase 1, Lagos\",\n  \"gender\": 1,\n  \"country\": \"Nigeria\",\n  \"country_code\": \"234\",\n  \"mobile\": \"+2348031234567\",\n  \"email\": \"emeka.nwosu@example.ng\",\n  \"id_type\": \"NATIONAL_ID\",\n  \"id_number\": \"12345678901\",\n  \"tin\": \"A000000000B\",\n  \"employment_status\": \"EMPLOYED\",\n  \"monthly_income\": \"200001-500000\",\n  \"business_industry\": \"Technology\",\n  \"specify_industry\": \"Fintech\",\n  \"document_front\": \"&lt;base64_encoded_image&gt;\",\n  \"document_back\": \"&lt;base64_encoded_image&gt;\",\n  \"selfie\": \"&lt;base64_encoded_image&gt;\",\n  \"document_type\": \"image\",\n  \"document_content_type\": \"image/jpeg\",\n  \"selfie_content_type\": \"image/jpeg\"\n}\n\n</code></pre>\n<p><strong>Success Response (201):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"Current account onboarding initiated successfully\",\n  \"data\": {\n    \"job_id\": \"CB-20260628-EMK001\",\n    \"status\": \"PROCESSING\"\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 400 — Missing or invalid field\n{\n  \"success\": false,\n  \"message\": \"invalid birthday date format — expected YYYY-MM-DD\",\n  \"data\": null\n}\n// 500 — Upstream error\n{\n  \"success\": false,\n  \"message\": \"An unexpected error occurred. Please retry.\",\n  \"data\": null\n}\n\n</code></pre>\n","_postman_id":"f442d4dd-ad21-4fc4-bf08-7d68f1a48181","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","name":"Multicurrency","type":"folder"}}},{"name":"KYC","item":[{"name":"Get user KYC information","id":"846ce136-f698-4767-bd7b-97d917c238f8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/kyc/user?onboarding_request_id=string","description":"<h3 id=\"get-kycuser--get-kyc-user-details\">GET /kyc/user — Get KYC User Details</h3>\n<p><strong>Description:</strong></p>\n<p>Retrieves all KYC information submitted for a customer — personal details, document type, verification status, profile check result, and timestamps.</p>\n<p>Useful for compliance reviews, support queries, or confirming submitted data matches what's expected.</p>\n<p>status values:<br />PENDING → not yet reviewed<br />PROCESSING → being verified<br />VERIFIED → passed all checks<br />REJECTED → failed one or more checks<br />FAILED → system error during verification</p>\n<p>create_time and update_time are Unix timestamps in seconds.</p>\n<p><strong>Query Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>onboarding_request_id=CB-20260628-EMK001\n\n</code></pre><p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"User KYC retrieved successfully\",\n  \"data\": {\n    \"onboarding_request_id\": \"CB-20260628-EMK001\",\n    \"first_name\": \"Chukwuemeka\",\n    \"middle_name\": \"Obiora\",\n    \"last_name\": \"Nwosu\",\n    \"gender\": \"MALE\",\n    \"nationality\": \"Nigerian\",\n    \"id_type\": \"NATIONAL_ID\",\n    \"id_number\": \"12345678901\",\n    \"birthday\": \"1992-03-14\",\n    \"address\": \"12 Admiralty Way, Lekki Phase 1, Lagos\",\n    \"country_code\": \"NG\",\n    \"mobile\": \"+2348031234567\",\n    \"employment_status\": \"EMPLOYED\",\n    \"monthly_income\": \"200001-500000\",\n    \"tin\": \"A000000000B\",\n    \"business_industry\": \"Technology\",\n    \"specify_industry\": \"Fintech\",\n    \"profile_check\": \"1\",\n    \"profile_check_result_code\": \"PC-200\",\n    \"profile_check_result_text\": \"Profile check passed\",\n    \"create_time\": 1751068800,\n    \"update_time\": 1751072400,\n    \"status\": \"VERIFIED\"\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 400 — Missing ID\n{\n  \"success\": false,\n  \"message\": \"onboarding_request_id is required\",\n  \"data\": null\n}\n// 404 — Not found\n{\n  \"success\": false,\n  \"message\": \"KYC verification not found\",\n  \"data\": null\n}\n\n</code></pre>\n","urlObject":{"path":["kyc","user"],"host":["{{baseUrl}}"],"query":[{"key":"onboarding_request_id","value":"string"}],"variable":[]}},"response":[{"id":"8b272b6e-2438-4309-9f49-0f0f5327fb7f","name":"KYC info retrieved.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"{{baseUrl}}/kyc/user?onboarding_request_id=string","host":["{{baseUrl}}"],"path":["kyc","user"],"query":[{"key":"onboarding_request_id","value":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"onboarding_request_id\": \"string\",\n    \"baas_channel_id\": \"string\",\n    \"user_id\": \"string\",\n    \"first_name\": \"string\",\n    \"middle_name\": \"string\",\n    \"last_name\": \"string\",\n    \"gender\": \"string\",\n    \"nationality\": \"string\",\n    \"id_type\": \"string\",\n    \"id_number\": \"string\",\n    \"birthday\": \"string\",\n    \"address\": \"string\",\n    \"country_code\": \"string\",\n    \"mobile\": \"string\",\n    \"employment_status\": \"string\",\n    \"monthly_income\": \"string\",\n    \"kra_pin\": \"string\",\n    \"business_industry\": \"string\",\n    \"specify_industry\": \"string\",\n    \"profile_check\": \"string\",\n    \"profile_check_result_code\": \"string\",\n    \"profile_check_result_text\": \"string\",\n    \"create_time\": 5772,\n    \"update_time\": 1558,\n    \"status\": \"REJECTED\"\n  }\n}"},{"id":"d43a3716-171d-4ebd-b4c2-1d2461e5a335","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"{{baseUrl}}/kyc/user?onboarding_request_id=string","host":["{{baseUrl}}"],"path":["kyc","user"],"query":[{"key":"onboarding_request_id","value":"string"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"},{"id":"853f154f-7217-490b-be8f-76bda521871a","name":"Resource not found.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"{{baseUrl}}/kyc/user?onboarding_request_id=string","host":["{{baseUrl}}"],"path":["kyc","user"],"query":[{"key":"onboarding_request_id","value":"string"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"846ce136-f698-4767-bd7b-97d917c238f8"},{"name":"List KYC media","id":"562c2f89-c19e-4854-a591-24e5fcf04bdb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/kyc/media/list?onboardingRequestId=string","description":"<h3 id=\"get-kycmedialist--list-kyc-media-uploads\">GET /kyc/media/list — List KYC Media Uploads</h3>\n<p><strong>Description:</strong></p>\n<p>Returns all documents uploaded so far for a specific onboarding request. Use this to confirm that all required documents have been received before triggering verification.</p>\n<p>Pass onboarding_request_id as a query parameter.</p>\n<p><strong>Query Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>onboarding_request_id=CB-20260628-EMK001\n\n</code></pre><p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"KYC media list retrieved successfully\",\n  \"data\": {\n    \"media_list\": [\n      {\n        \"media_type\": \"ID_FRONT\",\n        \"file_type_id\": \"FT-001\",\n        \"media_url\": \"https://cdn.choicebank.com/uploads/emeka-id-front.jpg\"\n      },\n      {\n        \"media_type\": \"ID_BACK\",\n        \"file_type_id\": \"FT-002\",\n        \"media_url\": \"https://cdn.choicebank.com/uploads/emeka-id-back.jpg\"\n      },\n      {\n        \"media_type\": \"SELFIE\",\n        \"file_type_id\": \"FT-003\",\n        \"media_url\": \"https://cdn.choicebank.com/uploads/emeka-selfie.jpg\"\n      }\n    ]\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 400 — Missing identifier\n{\n  \"success\": false,\n  \"message\": \"onboardingRequestId is required\",\n  \"data\": null\n}\n\n</code></pre>\n","urlObject":{"path":["kyc","media","list"],"host":["{{baseUrl}}"],"query":[{"key":"onboardingRequestId","value":"string"}],"variable":[]}},"response":[{"id":"e90f1fe4-6c44-4e65-9cd1-eeaf6c6f56ba","name":"Media list retrieved.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"{{baseUrl}}/kyc/media/list?onboardingRequestId=string","host":["{{baseUrl}}"],"path":["kyc","media","list"],"query":[{"key":"onboardingRequestId","value":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"media_list\": [\n      {\n        \"media_type\": \"string\",\n        \"file_type_id\": \"string\",\n        \"media_url\": \"https://uorjacpUMclCV.oujcBOxnkrLEoJbp\"\n      },\n      {\n        \"media_type\": \"string\",\n        \"file_type_id\": \"string\",\n        \"media_url\": \"http://JHEzrhgIustYN.sgcnjMdcVuh0iC+oHVdhZYuSQ+BEVpz7eDEkwmmvErKJoXnATvMfb9vJk4iCRm07-v6XiD\"\n      }\n    ]\n  }\n}"},{"id":"27ab949a-265c-40df-9b47-f0e1a42a5359","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"{{baseUrl}}/kyc/media/list?onboardingRequestId=string","host":["{{baseUrl}}"],"path":["kyc","media","list"],"query":[{"key":"onboardingRequestId","value":"string"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"562c2f89-c19e-4854-a591-24e5fcf04bdb"},{"name":"Upload KYC media","id":"457be293-8785-43ae-acc6-d8e745e84712","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"onboarding_request_id\": \"CB-20260628-EMK001\",\n  \"media_type\": \"ID_FRONT\",\n  \"media_base64\": \"<base64_encoded_image_string>\",\n  \"content_type\": \"image\" //image or pdf\n}\n","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/kyc/media/upload","description":"<h3 id=\"post-kycmediaupload--upload-kyc-media\">POST /kyc/media/upload — Upload KYC Media</h3>\n<p><strong>Description:</strong></p>\n<p>Uploads a single identity document for a customer's onboarding — one call per document. Encode the file as a base64 string before sending.</p>\n<p>media_type values:<br />ID_FRONT → front of the ID card or passport<br />ID_BACK → reverse of the ID (skip if document has no reverse)<br />SELFIE → live selfie photo for facial comparison<br />KRAPIN → tax ID / KRA PIN certificate scan</p>\n<p>content_type is optional but recommended: \"image\" or \"pdf\"</p>\n<p>On success the response returns code: \"0000\". Any other code means the upload failed — check msg for details.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"onboarding_request_id\": \"CB-20260628-EMK001\",\n  \"media_type\": \"ID_FRONT\",\n  \"media_base64\": \"&lt;base64_encoded_image_string&gt;\",\n  \"content_type\": \"image\" //image or pdf\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"KYC media uploaded successfully\",\n  \"data\": {\n    \"code\": \"0000\",\n    \"msg\": \"SUCCESS\"\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 400 — Missing onboarding_request_id\n{\n  \"success\": false,\n  \"message\": \"onboarding_request_id is required\",\n  \"data\": null\n}\n// 400 — Missing media data\n{\n  \"success\": false,\n  \"message\": \"media_base64 is required\",\n  \"data\": null\n}\n\n</code></pre>\n","urlObject":{"path":["kyc","media","upload"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"be82190c-0106-41a3-9a38-33106dc11906","name":"Media uploaded.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"onboarding_request_id\": \"string\",\n  \"media_type\": \"string\",\n  \"media_base64\": \"string\",\n  \"content_type\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/kyc/media/upload"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"code\": \"0000\",\n    \"msg\": \"SUCCESS\"\n  }\n}"},{"id":"900dfe92-7247-459c-976a-d0c15fa0e563","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"onboarding_request_id\": \"string\",\n  \"media_type\": \"string\",\n  \"media_base64\": \"string\",\n  \"content_type\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/kyc/media/upload"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"457be293-8785-43ae-acc6-d8e745e84712"}],"id":"55dd2673-4388-44f9-a84c-3d520f00ae82","description":"<h2 id=\"kyc-verification\">KYC Verification</h2>\n<h3 id=\"post-kycmediaupload--upload-kyc-media\">POST /kyc/media/upload — Upload KYC Media</h3>\n<p><strong>Description:</strong></p>\n<p>Uploads a single identity document for a customer's onboarding — one call per document. Encode the file as a base64 string before sending.</p>\n<p>media_type values:<br />ID_FRONT → front of the ID card or passport<br />ID_BACK → reverse of the ID (skip if document has no reverse)<br />SELFIE → live selfie photo for facial comparison<br />KRAPIN → tax ID / KRA PIN certificate scan</p>\n<p>content_type is optional but recommended: \"image\" or \"pdf\"</p>\n<p>On success the response returns code: \"0000\". Any other code means the upload failed — check msg for details.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"onboarding_request_id\": \"CB-20260628-EMK001\",\n  \"media_type\": \"ID_FRONT\",\n  \"media_base64\": \"&lt;base64_encoded_image_string&gt;\",\n  \"content_type\": \"image\" // image or pdf\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"KYC media uploaded successfully\",\n  \"data\": {\n    \"code\": \"0000\",\n    \"msg\": \"SUCCESS\"\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 400 — Missing onboarding_request_id\n{\n  \"success\": false,\n  \"message\": \"onboarding_request_id is required\",\n  \"data\": null\n}\n// 400 — Missing media data\n{\n  \"success\": false,\n  \"message\": \"media_base64 is required\",\n  \"data\": null\n}\n\n</code></pre>\n","_postman_id":"55dd2673-4388-44f9-a84c-3d520f00ae82","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","name":"Multicurrency","type":"folder"}}},{"name":"Query onboarding status","id":"7816d849-2bbf-4096-b9ca-fa5513a927f7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/onboarding/status?onboarding_request_id=string&user_id=string&mobile=string","description":"<h3 id=\"get-onboardingstatus--get-onboarding-status\">GET /onboarding/status — Get Onboarding Status</h3>\n<p><strong>Description:</strong></p>\n<p>Check where a customer's onboarding application currently stands. Provide any one of: onboarding_request_id, user_id, or mobile as a query parameter.</p>\n<p>Poll this after submitting an onboarding request and after OTP confirmation. Keep polling until status reaches 7 (account opened) or 4 (rejected).</p>\n<p>Status codes:<br />0 = Not submitted<br />1 = Submitted<br />2 = Processing (bank reviewing documents)<br />3 = Passed (documents OK, account opening triggered)<br />4 = Rejected — read rejection_reason_msg for details<br />5 = Account closed<br />6 = Waiting for account to finalise<br />7 = Account opened — account_id is now the live account number<br />8 = Failed to open account<br />9 = Manual review in progress (a human is checking — takes longer)</p>\n<p><strong>Query Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>onboarding_request_id=CB-20260628-EMK001\n  OR\nuser_id=usr_ng_7f3a2b1c\n  OR\nmobile=+2348031234567\n\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"Onboarding status retrieved successfully\",\n  \"data\": {\n    \"onboarding_request_id\": \"CB-20260628-EMK001\",\n    \"onboarding_status\": \"7\",\n    \"rejection_reason_id\": \"\",\n    \"rejection_reason_msg\": \"\",\n    \"account_id\": \"1009876543\",\n    \"account_type\": \"C001\"\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 400 — No identifier provided\n{\n  \"success\": false,\n  \"message\": \"Provide at least one of: onboarding_request_id, user_id, or mobile\",\n  \"data\": null\n}\n// 404 — Not found\n{\n  \"success\": false,\n  \"message\": \"No onboarding record found for the provided identifier\",\n  \"data\": null\n}\n\n</code></pre>\n","urlObject":{"path":["onboarding","status"],"host":["{{baseUrl}}"],"query":[{"key":"onboarding_request_id","value":"string"},{"key":"user_id","value":"string"},{"key":"mobile","value":"string"}],"variable":[]}},"response":[{"id":"67f24a56-0310-48e9-92d9-5699be825cb4","name":"Onboarding status retrieved.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"{{baseUrl}}/onboarding/status?onboarding_request_id=string&user_id=string&mobile=string","host":["{{baseUrl}}"],"path":["onboarding","status"],"query":[{"key":"onboarding_request_id","value":"string"},{"key":"user_id","value":"string"},{"key":"mobile","value":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"onboarding_request_id\": \"string\",\n    \"onboarding_status\": \"string\",\n    \"rejection_reason_id\": \"string\",\n    \"rejection_reason_msg\": \"string\",\n    \"account_id\": \"string\",\n    \"account_type\": \"string\"\n  }\n}"},{"id":"01fb0f10-1f70-4114-bc76-d0b33a4b0e41","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"{{baseUrl}}/onboarding/status?onboarding_request_id=string&user_id=string&mobile=string","host":["{{baseUrl}}"],"path":["onboarding","status"],"query":[{"key":"onboarding_request_id","value":"string"},{"key":"user_id","value":"string"},{"key":"mobile","value":"string"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"7816d849-2bbf-4096-b9ca-fa5513a927f7"},{"name":"Get onboarding request ID","id":"140abbc8-6dd7-473e-b586-5b1d595ca7e8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/onboarding-request/id?user_id=string&mobile=string","description":"<h3 id=\"get-onboarding-requestid--get-onboarding-request-id\">GET /onboarding-request/id — Get Onboarding Request ID</h3>\n<p><strong>Description:</strong></p>\n<p>Retrieves the onboarding_request_id for a customer using their user_id or phone number. Use this if you didn't store the request ID after the initial onboarding call, or if a support agent needs to look up a case.</p>\n<p>Provide either user_id or mobile as a query parameter — only one is needed.</p>\n<p><strong>Query Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>user_id=usr_ng_7f3a2b1c\n  OR\nmobile=+2348031234567\n\n</code></pre><p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"Onboarding request ID retrieved successfully\",\n  \"data\": {\n    \"onboarding_request_id\": \"CB-20260628-EMK001\"\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<p>json</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 400 — No identifier provided\n{\n  \"success\": false,\n  \"message\": \"Provide at least one of: user_id or mobile\",\n  \"data\": null\n}\n// 404 — Not found\n{\n  \"success\": false,\n  \"message\": \"No onboarding record found for the provided user_id or mobile\",\n  \"data\": null\n}\n\n</code></pre>\n","urlObject":{"path":["onboarding-request","id"],"host":["{{baseUrl}}"],"query":[{"key":"user_id","value":"string"},{"key":"mobile","value":"string"}],"variable":[]}},"response":[{"id":"7ddd18a5-353e-4e9d-ba1e-bfcf94d661ae","name":"Onboarding request ID retrieved.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"{{baseUrl}}/onboarding-request/id?user_id=string&mobile=string","host":["{{baseUrl}}"],"path":["onboarding-request","id"],"query":[{"key":"user_id","value":"string"},{"key":"mobile","value":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"onboarding_request_id\": \"string\"\n  }\n}"},{"id":"7de88103-4f34-4717-9032-ceff1a61df62","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"{{baseUrl}}/onboarding-request/id?user_id=string&mobile=string","host":["{{baseUrl}}"],"path":["onboarding-request","id"],"query":[{"key":"user_id","value":"string"},{"key":"mobile","value":"string"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"140abbc8-6dd7-473e-b586-5b1d595ca7e8"}],"id":"10a24c03-3674-4b61-9846-9e828786e2a9","description":"<h2 id=\"current-account-onboarding\">Current Account Onboarding</h2>\n<hr />\n<h3 id=\"post-current-accountcreate--create-current-account\">POST /current-account/create — Create Current Account</h3>\n<p><strong>Description:</strong></p>\n<p>Kicks off the onboarding journey for a new individual customer. Submit the customer's personal details, ID document scans (as base64 strings), and a live selfie. Choice Bank runs KYC checks and opens a multi-currency account in the background.</p>\n<p>This is always the first call in the individual onboarding flow. The merchant_id is derived automatically from your API key — do not send it.</p>\n<p>After this call:<br />→ Poll GET /onboarding/status until status changes from PROCESSING<br />→ Trigger OTP via POST /onboarding/otp/send<br />→ Confirm OTP via POST /onboarding/otp/confirm<br />→ Poll GET /onboarding/status until status = 7 (account opened)</p>\n<p>Field notes:<br />birthday → YYYY-MM-DD format only<br />gender → 0 = Female, 1 = Male, 2 = Other<br />id_type → NATIONAL_ID | PASSPORT | DRIVERS_LICENSE | ALIEN_CARD<br />employment_status → EMPLOYED | SELF_EMPLOYED | UNEMPLOYED | STUDENT | RETIRED<br />document_front / document_back / selfie → base64-encoded image strings<br />document_type / selfie_content_type → MIME type e.g. \"image/jpeg\"</p>\n<h3 id=\"get-onboardingstatus--get-onboarding-status\">GET /onboarding/status — Get Onboarding Status</h3>\n<p><strong>Description:</strong></p>\n<p>Check where a customer's onboarding application currently stands. Provide any one of: onboarding_request_id, user_id, or mobile as a query parameter.</p>\n<p>Poll this after submitting an onboarding request and after OTP confirmation. Keep polling until status reaches 7 (account opened) or 4 (rejected).</p>\n<p>Status codes:<br />0 = Not submitted<br />1 = Submitted<br />2 = Processing (bank reviewing documents)<br />3 = Passed (documents OK, account opening triggered)<br />4 = Rejected — read rejection_reason_msg for details<br />5 = Account closed<br />6 = Waiting for account to finalise<br />7 = Account opened — account_id is now the live account number<br />8 = Failed to open account<br />9 = Manual review in progress (a human is checking — takes longer)</p>\n<p><strong>Query Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>onboarding_request_id=CB-20260628-EMK001\n  OR\nuser_id=usr_ng_7f3a2b1c\n  OR\nmobile=+2348031234567\n\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"Onboarding status retrieved successfully\",\n  \"data\": {\n    \"onboarding_request_id\": \"CB-20260628-EMK001\",\n    \"onboarding_status\": \"7\",\n    \"rejection_reason_id\": \"\",\n    \"rejection_reason_msg\": \"\",\n    \"account_id\": \"1009876543\",\n    \"account_type\": \"C001\"\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 400 — No identifier provided\n{\n  \"success\": false,\n  \"message\": \"Provide at least one of: onboarding_request_id, user_id, or mobile\",\n  \"data\": null\n}\n// 404 — Not found\n{\n  \"success\": false,\n  \"message\": \"No onboarding record found for the provided identifier\",\n  \"data\": null\n}\n\n</code></pre>\n<h3 id=\"get-onboarding-requestid--get-onboarding-request-id\">GET /onboarding-request/id — Get Onboarding Request ID</h3>\n<p><strong>Description:</strong></p>\n<p>Retrieves the onboarding_request_id for a customer using their user_id or phone number. Use this if you didn't store the request ID after the initial onboarding call, or if a support agent needs to look up a case.</p>\n<p>Provide either user_id or mobile as a query parameter — only one is needed.</p>\n<p><strong>Query Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>user_id=usr_ng_7f3a2b1c\n  OR\nmobile=+2348031234567\n\n</code></pre><p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"Onboarding request ID retrieved successfully\",\n  \"data\": {\n    \"onboarding_request_id\": \"CB-20260628-EMK001\"\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<p>json</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 400 — No identifier provided\n{\n  \"success\": false,\n  \"message\": \"Provide at least one of: user_id or mobile\",\n  \"data\": null\n}\n// 404 — Not found\n{\n  \"success\": false,\n  \"message\": \"No onboarding record found for the provided user_id or mobile\",\n  \"data\": null\n}\n\n</code></pre>\n","_postman_id":"10a24c03-3674-4b61-9846-9e828786e2a9","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","name":"Multicurrency","type":"folder"}}},{"name":"Transactions","item":[{"name":"Generate QR code for payment","id":"b0a95903-8200-4a86-a8b2-39b8fd7f5fe9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"account_id\": \"string\",\n  \"amount\": 6897,\n  \"environment\": \"production\",\n  \"reference\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/transfer/qrcode/generate","description":"<h3 id=\"post-transferqrcodegenerate--generate-payment-qr-code\">POST /transfer/qrcode/generate — Generate Payment QR Code</h3>\n<p><strong>Description:</strong></p>\n<p>Generates a QR code that a payer can scan with their M-PESA or banking app to send money directly into a specified FX account.  </p>\n<p>qr_code in the response is a base64-encoded PNG image. Decode it and display it in your app or on a payment screen for the customer to scan.  </p>\n<p>The reference field is your idempotency key — reusing the same reference returns the original QR code without generating a new one.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"account_id\": \"2001234567\",\n  \"amount\": 50000,\n  \"reference\": \"QR-20260628-001\",\n  \"environment\": \"production\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"QR code generated successfully\",\n  \"data\": {\n    \"reference\": \"QR-20260628-001\",\n    \"status\": 1,\n    \"qr_code\": \"/9j/4AAQSkZJRgABAQAAAQABAAD...base64encodedimage...\",\n    \"markup\": {\n      \"markup_rate\": 0.005,\n      \"markup_amount\": 250.0,\n      \"currency\": \"KES\",\n      \"total_with_markup\": 50250.0\n    }\n  }\n}\n\n</code></pre>\n","urlObject":{"path":["transfer","qrcode","generate"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"aca1a4be-ac3a-4172-adf8-a92d9c902b5a","name":"QR code generated.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"account_id\": \"string\",\n  \"amount\": 6897,\n  \"environment\": \"production\",\n  \"reference\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/transfer/qrcode/generate"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"reference\": \"string\",\n    \"status\": 8816,\n    \"qr_code\": \"string\",\n    \"markup\": {\n      \"markup_rate\": 0.005,\n      \"markup_amount\": 5,\n      \"currency\": \"KES\",\n      \"total_with_markup\": 1005\n    }\n  }\n}"},{"id":"4550fdc1-f001-4a63-9acc-20403befe3e6","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"account_id\": \"string\",\n  \"amount\": 6897,\n  \"environment\": \"production\",\n  \"reference\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/transfer/qrcode/generate"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"},{"id":"64428f0e-c9d7-469d-9c40-9360bd1f2e77","name":"Conflict -- duplicate reference.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"account_id\": \"string\",\n  \"amount\": 6897,\n  \"environment\": \"production\",\n  \"reference\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/transfer/qrcode/generate"},"status":"Conflict","code":409,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"b0a95903-8200-4a86-a8b2-39b8fd7f5fe9"},{"name":"Reverse a transaction","id":"6f1de79a-8ec1-424b-82dc-1ab9c8ce78e1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"original_reference\": \"string\",\n  \"reason\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/transfer/reversal","description":"<h3 id=\"post-transferreversal--reverse-a-transfer\">POST /transfer/reversal — Reverse a Transfer</h3>\n<p><strong>Description:</strong></p>\n<p>Initiates a reversal of a previously completed transfer. The original transaction must belong to your merchant account.  </p>\n<p>Reversals are not guaranteed — they depend on the receiving bank's ability to return the funds. The status in the response tells you whether the reversal was accepted.  </p>\n<p>original_reference → the reference of the transfer you want to reverse (the reference field from the original initiate response).  </p>\n<p>Always include a reason for audit trail purposes. The response gives you a new reversal reference — save it for tracking.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"original_reference\": \"TXN-20260628-001\",\n  \"reason\": \"Customer requested reversal — duplicate payment\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"Transaction reversal applied successfully\",\n  \"data\": {\n    \"reference\": \"REV-20260628-001\",\n    \"status\": 1,\n    \"status_desc\": \"SUCCESS\"\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 400 — Missing original_reference\n{\n  \"success\": false,\n  \"message\": \"original_reference is required\",\n  \"data\": null\n}\n// 403 — Not your transaction\n{\n  \"success\": false,\n  \"message\": \"transaction does not belong to your merchant\",\n  \"data\": null\n}\n// 404 — Reference not found\n{\n  \"success\": false,\n  \"message\": \"transaction not found with the given reference\",\n  \"data\": null\n}\n\n</code></pre>\n","urlObject":{"path":["transfer","reversal"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"95662810-8c37-4e50-b6b0-45eabe0e8a94","name":"Reversal applied.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"original_reference\": \"string\",\n  \"reason\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/transfer/reversal"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"reference\": \"string\",\n    \"status\": 7355,\n    \"status_desc\": \"string\"\n  }\n}"},{"id":"86373b40-8fe7-481d-9586-c2633b08488e","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"original_reference\": \"string\",\n  \"reason\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/transfer/reversal"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"},{"id":"f4c45238-9af1-40b5-ab48-aee7c91e5d4c","name":"Forbidden -- resource does not belong to merchant.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"original_reference\": \"string\",\n  \"reason\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/transfer/reversal"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"},{"id":"b0e6356e-b6f5-4b64-a26b-e183c6165a2d","name":"Resource not found.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"original_reference\": \"string\",\n  \"reason\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/transfer/reversal"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"6f1de79a-8ec1-424b-82dc-1ab9c8ce78e1"},{"name":"Initiate general transfer","id":"c66e472f-01c2-44df-a0af-b0e9466b8679","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"payer_account_id\": \"string\",\n  \"payee_bank_code\": \"str\",\n  \"payee_account_id\": \"string\",\n  \"currency\": \"str\",\n  \"amount\": 8135.925265757512,\n  \"payee_account_name\": \"string\",\n  \"payment_purpose\": \"string\",\n  \"remark\": \"string\",\n  \"payee_mobile_for_notification\": \"string\",\n  \"reference\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/transfer/initiate/general","description":"<h3 id=\"post-transferinitiategeneral--initiate-general-transfer\">POST /transfer/initiate/general — Initiate General Transfer</h3>\n<p><strong>Description:</strong></p>\n<p>Sends money from an FX account to another account — either an internal FX account or an external bank account via Pesalink or EFT. This is the standard transfer endpoint for most bank-to-bank payments.  </p>\n<p>Always call POST /transfer/hakikisha first to confirm the recipient.  </p>\n<p>Key fields:<br />payer_account_id → your FX account (source of funds)<br />payee_bank_code → recipient's bank code — use GET /lookup/bank-codes to find the right one<br />payee_account_id → recipient's account number<br />currency → 3-letter code (KES, USD, EUR, etc.)<br />amount → how much to send (minimum 1)<br />reference → your idempotency key (UUID recommended). Auto-generated if omitted.  </p>\n<p>If otp_status in the response is \"REQUIRED\", the transfer is pending OTP confirmation before it processes.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"payer_account_id\": \"1009876543\",\n  \"payee_bank_code\": \"011\",\n  \"payee_account_id\": \"0123456789\",\n  \"payee_account_name\": \"Adaeze Obi\",\n  \"currency\": \"NGN\",\n  \"payment_purpose\": \"Supplier payment — Invoice INV-2026-047\",\n  \"amount\": 250000,\n  \"remark\": \"INV-2026-047\",\n  \"payee_mobile_for_notification\": \"+2348044556677\",\n  \"reference\": \"TXN-20260628-001\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"Transfer initiated successfully\",\n  \"data\": {\n    \"reference\": \"TXN-20260628-001\",\n    \"status\": \"PROCESSING\",\n    \"otp_status\": \"NOT_REQUIRED\"\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 403 — Account doesn't belong to your merchant\n{\n  \"success\": false,\n  \"message\": \"account does not belong to your merchant\",\n  \"data\": null\n}\n// 409 — Duplicate reference\n{\n  \"success\": false,\n  \"message\": \"reference already exists\",\n  \"data\": null\n}\n\n</code></pre>\n","urlObject":{"path":["transfer","initiate","general"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"d2358edb-307f-4464-bd13-8b026a41a70e","name":"Transfer initiated.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"payer_account_id\": \"string\",\n  \"payee_bank_code\": \"str\",\n  \"payee_account_id\": \"string\",\n  \"currency\": \"str\",\n  \"amount\": 8135.925265757512,\n  \"payee_account_name\": \"string\",\n  \"payment_purpose\": \"string\",\n  \"remark\": \"string\",\n  \"payee_mobile_for_notification\": \"string\",\n  \"reference\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/transfer/initiate/general"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"reference\": \"string\",\n    \"status\": \"string\",\n    \"otp_status\": \"string\"\n  }\n}"},{"id":"872daab5-3b66-4f8e-a52c-e38fda9331f5","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"payer_account_id\": \"string\",\n  \"payee_bank_code\": \"str\",\n  \"payee_account_id\": \"string\",\n  \"currency\": \"str\",\n  \"amount\": 8135.925265757512,\n  \"payee_account_name\": \"string\",\n  \"payment_purpose\": \"string\",\n  \"remark\": \"string\",\n  \"payee_mobile_for_notification\": \"string\",\n  \"reference\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/transfer/initiate/general"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"},{"id":"253f33fb-e779-4cdd-a4bc-be4da68dfeca","name":"Forbidden -- resource does not belong to merchant.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"payer_account_id\": \"string\",\n  \"payee_bank_code\": \"str\",\n  \"payee_account_id\": \"string\",\n  \"currency\": \"str\",\n  \"amount\": 8135.925265757512,\n  \"payee_account_name\": \"string\",\n  \"payment_purpose\": \"string\",\n  \"remark\": \"string\",\n  \"payee_mobile_for_notification\": \"string\",\n  \"reference\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/transfer/initiate/general"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"},{"id":"c74ce43d-a9f4-4a4a-98ec-183729ccfa0a","name":"Resource not found.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"payer_account_id\": \"string\",\n  \"payee_bank_code\": \"str\",\n  \"payee_account_id\": \"string\",\n  \"currency\": \"str\",\n  \"amount\": 8135.925265757512,\n  \"payee_account_name\": \"string\",\n  \"payment_purpose\": \"string\",\n  \"remark\": \"string\",\n  \"payee_mobile_for_notification\": \"string\",\n  \"reference\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/transfer/initiate/general"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"},{"id":"03211fd9-da94-48c5-803b-37f382efbf0b","name":"Conflict -- duplicate reference.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"payer_account_id\": \"string\",\n  \"payee_bank_code\": \"str\",\n  \"payee_account_id\": \"string\",\n  \"currency\": \"str\",\n  \"amount\": 8135.925265757512,\n  \"payee_account_name\": \"string\",\n  \"payment_purpose\": \"string\",\n  \"remark\": \"string\",\n  \"payee_mobile_for_notification\": \"string\",\n  \"reference\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/transfer/initiate/general"},"status":"Conflict","code":409,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"c66e472f-01c2-44df-a0af-b0e9466b8679"},{"name":"Initiate inter-bank transfer (RTGS/EFT)","id":"9f5847ae-f3c9-4788-ba9c-44b28bd4e152","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"payer_account_id\": \"string\",\n  \"payee_account_no\": \"string\",\n  \"payee_bank_code\": \"string\",\n  \"amount\": \"string\",\n  \"currency\": \"string\",\n  \"payment_channel\": \"EFT\",\n  \"environment\": \"production\",\n  \"payee_account_name\": \"string\",\n  \"remark\": \"string\",\n  \"reference\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/transfer/initiate/bank","description":"<h3 id=\"post-transferinitiatebank--initiate-bank-transfer-rtgs--eft\">POST /transfer/initiate/bank — Initiate Bank Transfer (RTGS / EFT)</h3>\n<p><strong>Description:</strong></p>\n<p>Sends money via RTGS or EFT — typically used for higher-value inter-bank transfers or when the recipient's bank isn't on the Pesalink network.  </p>\n<p>payment_channel:<br />RTGS → Real-Time Gross Settlement. Immediate settlement, used for large high-priority transfers.<br />EFT → Electronic Funds Transfer. Batch-processed, usually settles overnight. Lower cost.  </p>\n<p>amount is a numeric string (e.g. \"250000.00\").</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"payer_account_id\": \"1009876543\",\n  \"payee_account_no\": \"0123456789\",\n  \"payee_bank_code\": \"058\",\n  \"amount\": \"1500000.00\",\n  \"currency\": \"NGN\",\n  \"payment_channel\": \"RTGS\",\n  \"payee_account_name\": \"Zenith Property Investments Ltd\",\n  \"remark\": \"Property acquisition deposit — Ref ZPI-2026-03\",\n  \"reference\": \"RTGS-20260628-001\",\n  \"environment\": \"production\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"Bank transfer initiated successfully\",\n  \"data\": {\n    \"reference\": \"RTGS-20260628-001\",\n    \"status\": 1,\n    \"status_desc\": \"SUBMITTED\",\n    \"markup\": {\n      \"markup_rate\": 0.005,\n      \"markup_amount\": 7500.0,\n      \"currency\": \"NGN\",\n      \"total_with_markup\": 1507500.0\n    }\n  }\n}\n\n</code></pre>\n","urlObject":{"path":["transfer","initiate","bank"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"87b92c45-3c07-40e5-b4e8-c588454b6f99","name":"Transfer initiated.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"payer_account_id\": \"string\",\n  \"payee_account_no\": \"string\",\n  \"payee_bank_code\": \"string\",\n  \"amount\": \"string\",\n  \"currency\": \"string\",\n  \"payment_channel\": \"EFT\",\n  \"environment\": \"production\",\n  \"payee_account_name\": \"string\",\n  \"remark\": \"string\",\n  \"reference\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/transfer/initiate/bank"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"reference\": \"string\",\n    \"status\": 4349,\n    \"status_desc\": \"string\",\n    \"markup\": {\n      \"markup_rate\": 0.005,\n      \"markup_amount\": 5,\n      \"currency\": \"KES\",\n      \"total_with_markup\": 1005\n    }\n  }\n}"},{"id":"99c4fc5f-d951-42d0-b5c8-a16930a4d1c7","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"payer_account_id\": \"string\",\n  \"payee_account_no\": \"string\",\n  \"payee_bank_code\": \"string\",\n  \"amount\": \"string\",\n  \"currency\": \"string\",\n  \"payment_channel\": \"EFT\",\n  \"environment\": \"production\",\n  \"payee_account_name\": \"string\",\n  \"remark\": \"string\",\n  \"reference\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/transfer/initiate/bank"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"},{"id":"2077add0-97bd-42e2-aa85-4d5cea0da426","name":"Conflict -- duplicate reference.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"payer_account_id\": \"string\",\n  \"payee_account_no\": \"string\",\n  \"payee_bank_code\": \"string\",\n  \"amount\": \"string\",\n  \"currency\": \"string\",\n  \"payment_channel\": \"EFT\",\n  \"environment\": \"production\",\n  \"payee_account_name\": \"string\",\n  \"remark\": \"string\",\n  \"reference\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/transfer/initiate/bank"},"status":"Conflict","code":409,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"9f5847ae-f3c9-4788-ba9c-44b28bd4e152"}],"id":"b6edc2dd-ae3f-4be4-b779-953ab8e421c5","_postman_id":"b6edc2dd-ae3f-4be4-b779-953ab8e421c5","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","name":"Multicurrency","type":"folder"}}},{"name":"Look Ups","item":[{"name":"List supported bank codes","id":"db89772e-feaa-466e-91e0-9cc5a8476486","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/lookup/bank-codes?user_id=string","description":"<h3 id=\"get-lookupbank-codes--get-bank-codes\">GET /lookup/bank-codes — Get Bank Codes</h3>\n<p><strong>Description:</strong></p>\n<p>Returns the full list of supported bank codes and their corresponding bank names. Use this to find the correct payee_bank_code value before initiating a general or bank transfer.</p>\n<p>Call this once and cache the result — the list changes infrequently.</p>\n<p><strong>Query Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>(none required — user_id is optional)\n\n</code></pre><p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"Bank codes list retrieved successfully\",\n  \"data\": {\n    \"items\": [\n      { \"bank_code\": \"011\", \"bank_name\": \"FIRST BANK OF NIGERIA\" },\n      { \"bank_code\": \"058\", \"bank_name\": \"GUARANTY TRUST BANK\" },\n      { \"bank_code\": \"033\", \"bank_name\": \"UNITED BANK FOR AFRICA\" },\n      { \"bank_code\": \"044\", \"bank_name\": \"ACCESS BANK\" },\n      { \"bank_code\": \"057\", \"bank_name\": \"ZENITH BANK\" },\n      { \"bank_code\": \"070\", \"bank_name\": \"FIDELITY BANK\" },\n      { \"bank_code\": \"221\", \"bank_name\": \"STANBIC IBTC BANK\" },\n      { \"bank_code\": \"035\", \"bank_name\": \"WEMA BANK\" }\n    ]\n  }\n}\n\n</code></pre>\n","urlObject":{"path":["lookup","bank-codes"],"host":["{{baseUrl}}"],"query":[{"key":"user_id","value":"string"}],"variable":[]}},"response":[{"id":"04308f06-3b51-4186-8673-f70f4e096e38","name":"Bank codes retrieved.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"{{baseUrl}}/lookup/bank-codes?user_id=string","host":["{{baseUrl}}"],"path":["lookup","bank-codes"],"query":[{"key":"user_id","value":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"items\": [\n      {\n        \"bank_code\": \"string\",\n        \"bank_name\": \"string\"\n      },\n      {\n        \"bank_code\": \"string\",\n        \"bank_name\": \"string\"\n      }\n    ]\n  }\n}"}],"_postman_id":"db89772e-feaa-466e-91e0-9cc5a8476486"}],"id":"d2f58025-bc40-474b-803b-a58e35c9d7fb","_postman_id":"d2f58025-bc40-474b-803b-a58e35c9d7fb","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","name":"Multicurrency","type":"folder"}}},{"name":"FX Rates & Exchange","item":[{"name":"Query current FX rate","id":"6e19866a-eaea-4f56-8f5a-69bc05da328f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"currency_pair\": \"KES/UGX\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/rates/query","description":"<h3 id=\"post-ratesquery--query-fx-rate\">POST /rates/query — Query FX Rate</h3>\n<p><strong>Description:</strong></p>\n<p>Returns the current buy and sell exchange rates for a currency pair — both Telegraphic Transfer (TT / electronic) and Cash rates.  </p>\n<p>Supported pairs:<br />USD/KES, EUR/KES, GBP/KES, KES/TZS, KES/UGX, KES/RWF,<br />GBP/USD, EUR/GBP, EUR/USD, USD/CNY  </p>\n<p>Rate interpretation:<br />tt.sell → rate at which Finecore/Choice Bank sells the base currency<br />(e.g. you're buying USD with KES → use this)<br />tt.buy → rate at which they buy the base currency<br />(e.g. you're selling USD for KES → use this)  </p>\n<p>Rates change throughout the trading day. Always query fresh rates immediately before initiating a conversion. 503 means rates are temporarily unavailable for that pair — retry after a short delay.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"currency_pair\": \"USD/KES\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"FX rate retrieved successfully\",\n  \"data\": {\n    \"unit_amount\": 1,\n    \"currency_pair\": \"USD/KES\",\n    \"tt\": {\n      \"sell\": \"131.50\",\n      \"buy\": \"129.00\"\n    },\n    \"cash\": {\n      \"sell\": \"133.00\",\n      \"buy\": \"127.50\"\n    },\n    \"timestamp\": \"2026-06-28T10:00:00Z\"\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// 400 — Missing pair\n{\n  \"success\": false,\n  \"message\": \"currency pair is required\",\n  \"data\": null\n}\n// 400 — Unsupported pair\n{\n  \"success\": false,\n  \"message\": \"invalid or unsupported currency pair\",\n  \"data\": null\n}\n// 400 — Rates unavailable\n{\n  \"success\": false,\n  \"message\": \"FX rate not available for the requested currency pair\",\n  \"data\": null\n}\n\n</code></pre>\n","urlObject":{"path":["rates","query"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"58d9c4e6-706a-4c85-9e8f-08f58d1d3ae9","name":"Rate retrieved.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"currency_pair\": \"KES/UGX\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/rates/query"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"unit_amount\": 8471,\n    \"currency_pair\": \"string\",\n    \"tt\": {\n      \"sell\": \"string\",\n      \"buy\": \"string\"\n    },\n    \"cash\": {\n      \"sell\": \"string\",\n      \"buy\": \"string\"\n    },\n    \"timestamp\": \"1996-05-15T03:04:40.939Z\"\n  }\n}"},{"id":"38d8779f-b66d-43bf-8a2c-c99695afa867","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"currency_pair\": \"KES/UGX\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/rates/query"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"},{"id":"46676505-5301-4618-8482-b801dc2bfc8d","name":"Service unavailable -- FX rate not available.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"currency_pair\": \"KES/UGX\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/rates/query"},"status":"Service Unavailable","code":503,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"6e19866a-eaea-4f56-8f5a-69bc05da328f"},{"name":"Get FX request status","id":"f6def253-57a5-4a27-8ae0-d64141439971","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/status?transactionId=string","description":"<h3 id=\"get-status--get-fx-conversion-status\">GET /status — Get FX Conversion Status</h3>\n<p><strong>Description:</strong></p>\n<p>Polls the current status of a foreign exchange conversion initiated via POST /initiate. Keep polling until status is COMPLETED or FAILED.  </p>\n<p>Pass transaction_id as a query parameter.  </p>\n<p>When COMPLETED:<br />source_amount / target_amount → actual amounts debited and credited<br />fx_rate → exact rate applied (may differ slightly from the quoted rate due to market movement)<br />out_tx_id / in_tx_id → debit and credit transaction IDs for reconciliation  </p>\n<p>If FAILED or REJECTED, check error_code and error_msg for the reason.</p>\n<p><strong>Query Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>transaction_id=FX-20260628-001\n\n</code></pre><p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"FX request status retrieved successfully\",\n  \"data\": {\n    \"transaction_id\": \"FX-20260628-001\",\n    \"source_account_id\": \"1009876543\",\n    \"target_account_id\": \"2001234567\",\n    \"source_currency\": \"KES\",\n    \"target_currency\": \"USD\",\n    \"source_amount\": 500000.0,\n    \"target_amount\": 3803.42,\n    \"out_tx_id\": \"OUT-TX-20260628-001\",\n    \"in_tx_id\": \"IN-TX-20260628-001\",\n    \"status\": \"COMPLETED\",\n    \"fx_rate\": \"0.007607\",\n    \"error_code\": \"\",\n    \"error_msg\": \"\"\n  }\n}\n\n</code></pre>\n","urlObject":{"path":["status"],"host":["{{baseUrl}}"],"query":[{"key":"transactionId","value":"string"}],"variable":[]}},"response":[{"id":"5f191ed3-9b7e-4d13-a8ea-5e9012927b5f","name":"Status retrieved.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"{{baseUrl}}/status?transactionId=string","host":["{{baseUrl}}"],"path":["status"],"query":[{"key":"transactionId","value":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"transaction_id\": \"string\",\n    \"source_account_id\": \"string\",\n    \"target_account_id\": \"string\",\n    \"source_currency\": \"string\",\n    \"target_currency\": \"string\",\n    \"source_amount\": 4039.467197035167,\n    \"target_amount\": 607.682584960858,\n    \"out_tx_id\": \"string\",\n    \"in_tx_id\": \"string\",\n    \"status\": \"string\",\n    \"fx_rate\": \"string\",\n    \"error_code\": \"string\",\n    \"error_msg\": \"string\"\n  }\n}"},{"id":"3b496cde-4fa8-43d4-8800-a542d4fe443c","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"{{baseUrl}}/status?transactionId=string","host":["{{baseUrl}}"],"path":["status"],"query":[{"key":"transactionId","value":"string"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"f6def253-57a5-4a27-8ae0-d64141439971"},{"name":"Initiate FX conversion","id":"540e8bf6-4a76-43cd-bd41-a4c126149458","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"source_currency\": \"str\",\n  \"target_currency\": \"str\",\n  \"source_account\": \"string\",\n  \"target_account\": \"string\",\n  \"reference\": \"string\",\n  \"environment\": \"sandbox\",\n  \"source_amount\": 5439.43937800426,\n  \"target_amount\": 5241.939653615304\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/initiate","description":"<h3 id=\"post-initiate--initiate-fx-conversion\">POST /initiate — Initiate FX Conversion</h3>\n<p><strong>Description:</strong></p>\n<p>Converts money from one currency account to another at the current exchange rate.  </p>\n<p>Specify either source_amount (how much to send) OR target_amount (how much to receive) — not both. The system calculates the other side.  </p>\n<p>Both accounts must already exist and belong to your merchant.  </p>\n<p>A 0.5% markup fee applies to all conversions — shown in the markup object of the response.  </p>\n<p>reference is required and must be unique — use a UUID or your internal transaction ID.  </p>\n<p>Conversion status lifecycle:<br />INIT → PROCESSING → APPROVED → COMPLETED<br />→ REJECTED<br />→ FAILED  </p>\n<p>After initiating, poll GET /status with the transaction_id until COMPLETED or FAILED.</p>\n<p><strong>Request Body (convert KES → USD by source amount):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"source_currency\": \"KES\",\n  \"target_currency\": \"USD\",\n  \"source_account\": \"1009876543\",\n  \"target_account\": \"2001234567\",\n  \"source_amount\": 500000,\n  \"reference\": \"FX-20260628-001\",\n  \"environment\": \"production\"\n}\n\n</code></pre>\n<p><strong>Request Body (receive exactly 1000 USD):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"source_currency\": \"KES\",\n  \"target_currency\": \"USD\",\n  \"source_account\": \"1009876543\",\n  \"target_account\": \"2001234567\",\n  \"target_amount\": 1000,\n  \"reference\": \"FX-20260628-002\",\n  \"environment\": \"production\"\n}\n\n</code></pre>\n<p><strong>Success Response (200):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"message\": \"FX exchange initiated successfully\",\n  \"data\": {\n    \"reference\": \"FX-20260628-001\",\n    \"status\": \"PROCESSING\",\n    \"markup\": {\n      \"markup_rate\": 0.005,\n      \"markup_amount\": 2500.0,\n      \"currency\": \"KES\",\n      \"total_with_markup\": 502500.0\n    }\n  }\n}\n\n</code></pre>\n","urlObject":{"path":["initiate"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"afc9abbc-d23e-419a-8422-30a5e72848ca","name":"FX initiated.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"source_currency\": \"str\",\n  \"target_currency\": \"str\",\n  \"source_account\": \"string\",\n  \"target_account\": \"string\",\n  \"reference\": \"string\",\n  \"environment\": \"sandbox\",\n  \"source_amount\": 5439.43937800426,\n  \"target_amount\": 5241.939653615304\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/initiate"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"message\": \"Operation completed successfully\",\n  \"data\": {\n    \"reference\": \"string\",\n    \"status\": \"string\",\n    \"markup\": {\n      \"markup_rate\": 0.005,\n      \"markup_amount\": 5,\n      \"currency\": \"KES\",\n      \"total_with_markup\": 1005\n    }\n  }\n}"},{"id":"f7b9541f-49de-4df3-8826-4574410d4721","name":"Bad request -- missing or invalid parameters.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"source_currency\": \"str\",\n  \"target_currency\": \"str\",\n  \"source_account\": \"string\",\n  \"target_account\": \"string\",\n  \"reference\": \"string\",\n  \"environment\": \"sandbox\",\n  \"source_amount\": 5439.43937800426,\n  \"target_amount\": 5241.939653615304\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/initiate"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"},{"id":"a1f0d7cc-5a8d-45d2-b7ae-ee3524318a31","name":"Conflict -- duplicate reference.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"source_currency\": \"str\",\n  \"target_currency\": \"str\",\n  \"source_account\": \"string\",\n  \"target_account\": \"string\",\n  \"reference\": \"string\",\n  \"environment\": \"sandbox\",\n  \"source_amount\": 5439.43937800426,\n  \"target_amount\": 5241.939653615304\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/initiate"},"status":"Conflict","code":409,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"},{"id":"94f5d61f-3d9c-4c9c-9b3b-4c45f97094c3","name":"Service unavailable -- FX rate not available.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"source_currency\": \"str\",\n  \"target_currency\": \"str\",\n  \"source_account\": \"string\",\n  \"target_account\": \"string\",\n  \"reference\": \"string\",\n  \"environment\": \"sandbox\",\n  \"source_amount\": 5439.43937800426,\n  \"target_amount\": 5241.939653615304\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"{{baseUrl}}/initiate"},"status":"Service Unavailable","code":503,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"data\": \"\"\n}"}],"_postman_id":"540e8bf6-4a76-43cd-bd41-a4c126149458"}],"id":"b0c79ea2-adfe-461e-81c6-c1ac7124c332","_postman_id":"b0c79ea2-adfe-461e-81c6-c1ac7124c332","description":"","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","name":"Multicurrency","type":"folder"}}}],"id":"28ae5a10-2d64-42a0-b8b6-a96884770b95","description":"<h2 id=\"finecore-multi-currency-fx-api\">Finecore Multi-Currency (FX) API</h2>\n<p>This collection covers the full lifecycle of Finecore's FX infrastructure. Use these endpoints to onboard individual customers and SME businesses, manage KYC verification, open multi-currency accounts, query live FX rates, convert between currencies, and initiate transfers via bank, M-PESA, or QR code.</p>\n<p>Base URL (Production): <a href=\"https://api.finecore.com/v1/fx\">https://api.finecore.com/v1/fx</a></p>\n<h4 id=\"idempotency\">Idempotency</h4>\n<p>Endpoints that trigger financial actions accept a reference field. Send the same reference twice and the API will return the original result instead of processing a duplicate — use a UUID or your internal transaction ID.</p>\n<hr />\n<h3 id=\"supported-account-currencies\">Supported Account Currencies</h3>\n<p>Individual and SME accounts can be opened in any of the following currencies:  </p>\n<p>KES Kenyan Shilling<br />USD US Dollar<br />GBP British Pound Sterling<br />EUR Euro<br />CNY Chinese Yuan (Renminbi)<br />TZS Tanzanian Shilling<br />UGX Ugandan Shilling<br />RWF Rwandan Franc  </p>\n<p>Supported FX Conversion Pairs<br />The following currency pairs are available for rate queries and FX conversions:  </p>\n<p>USD/KES US Dollars → Kenyan Shillings<br />EUR/KES Euros → Kenyan Shillings<br />GBP/KES British Pounds → Kenyan Shillings<br />KES/TZS Kenyan Shillings → Tanzanian Shillings<br />KES/UGX Kenyan Shillings → Ugandan Shillings<br />KES/RWF Kenyan Shillings → Rwandan Francs<br />GBP/USD British Pounds → US Dollars<br />EUR/GBP Euros → British Pounds<br />EUR/USD Euros → US Dollars<br />USD/CNY US Dollars → Chinese Yuan</p>\n<hr />\n<h3 id=\"whats-in-this-collection\">What's in this collection</h3>\n<ol>\n<li><p>Current Account Onboarding</p>\n<ol>\n<li><p>Create current account</p>\n<ol>\n<li>Open individual currency account</li>\n</ol>\n</li>\n<li><p>onboarding status</p>\n</li>\n<li><p>Send OTP</p>\n</li>\n<li><p>Confirm OTP</p>\n</li>\n<li><p>Resend OTP</p>\n</li>\n<li><p>Get onboarding request ID</p>\n</li>\n<li><p>Get account opening status</p>\n</li>\n</ol>\n</li>\n<li><p>KYC Verification (5 requests)</p>\n<ol>\n<li><p>Upload KYC media</p>\n</li>\n<li><p>List KYC media</p>\n</li>\n<li><p>Get KYC user details</p>\n</li>\n<li><p>Get KYC status</p>\n</li>\n</ol>\n</li>\n<li><p>SME Onboarding</p>\n<ol>\n<li><p>Apply for SME onboarding</p>\n</li>\n<li><p>Submit SME business details</p>\n</li>\n<li><p>Get SME onboarding info</p>\n</li>\n<li><p>Submit / pull back SME application</p>\n</li>\n<li><p>Get SME onboarding status</p>\n</li>\n<li><p>Cancel SME onboarding</p>\n</li>\n<li><p>Upload SME document</p>\n</li>\n<li><p>Remove SME document</p>\n</li>\n</ol>\n</li>\n<li><p>SME Shareholder Management</p>\n<ol>\n<li><p>Add shareholder (individual or organisation)</p>\n</li>\n<li><p>Remove shareholder</p>\n</li>\n</ol>\n</li>\n<li><p>Transfers</p>\n<ol>\n<li><p>Initiate general transfer</p>\n</li>\n<li><p>Initiate M-PESA B2B transfer</p>\n</li>\n<li><p>Initiate bank transfer (RTGS / EFT)</p>\n</li>\n<li><p>Generate payment QR code</p>\n</li>\n<li><p>Reverse a transfer</p>\n</li>\n</ol>\n</li>\n<li><p>Lookup</p>\n<ol>\n<li>Get bank codes</li>\n</ol>\n</li>\n<li><p>FX Rates &amp; Exchange</p>\n<ol>\n<li><p>Query FX rate</p>\n</li>\n<li><p>Initiate FX conversion</p>\n</li>\n<li><p>Get FX conversion status</p>\n</li>\n</ol>\n</li>\n</ol>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"<value>"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"type":"text/javascript","packages":{},"requests":{},"exec":[""],"id":"508c224c-1969-47a5-84af-575795580397"}},{"listen":"test","script":{"type":"text/javascript","packages":{},"requests":{},"exec":[""],"id":"c9b1599d-1c08-4c54-93a2-7802d74aa0bd"}}],"_postman_id":"28ae5a10-2d64-42a0-b8b6-a96884770b95"}]}