{"info":{"_postman_id":"d569160f-4d33-4258-82e3-020c0f27c05f","name":"Brassica Merchant API v1","description":"<html><head></head><body><p>This collection covers the core merchant-facing operations of the Brassica BBus Gateway API (v1). It provides a structured set of endpoints for integrating payment and money-movement functionality into merchant systems.</p>\n<p><strong>Included endpoints:</strong></p>\n<ul>\n<li><strong>Authenticate</strong> – Obtain an authentication token required to authorize subsequent API calls.</li>\n<li><strong>DebitMoney</strong> – Initiate a debit transaction against a customer's account.</li>\n<li><strong>Send Money</strong> – Transfer funds to a specified recipient.</li>\n<li><strong>Get Balance</strong> – Retrieve the available balance for the merchant account.</li>\n<li><strong>Name Enquiry</strong> – Look up and verify an account holder's name before initiating a transfer.</li>\n<li><strong>TransStatusQuery</strong> – Query the status of a previously submitted transaction.</li>\n</ul>\n<p><strong>Typical workflow:</strong> Authenticate first to obtain a session token, then use that token to perform balance checks, name enquiries, and money movement operations. Use TransStatusQuery to confirm the outcome of any transaction.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"39813232","collectionId":"d569160f-4d33-4258-82e3-020c0f27c05f","publishedId":"2sBXqNoK3y","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-05-12T09:03:05.000Z"},"item":[{"name":"Authenticate","event":[{"listen":"test","script":{"id":"e0a67a41-62d1-49f1-beac-10d467454675","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"85b41ee8-3db1-4ec2-b45a-5acc79b91b44","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"userName\": \"{{UserName}}\",\r\n    \"password\": \"{{Password}}\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://bbusmockserver.azurewebsites.net/Authenticate","description":"<h2 id=\"authenticate\">Authenticate</h2>\n<p>Generates a Bearer Token used to authorize access to all protected endpoints.</p>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>Endpoint:</strong> <code>https://bbusmockserver.azurewebsites.net/Authenticate</code></p>\n<p>baseURL : <a href=\"https://bbusmockserver.azurewebsites.net\">https://bbusmockserver.azurewebsites.net</a></p>\n<hr />\n<h3 id=\"request-body\">Request Body</h3>\n<p>Send a JSON payload with the following fields:</p>\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>userName</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The account username</td>\n</tr>\n<tr>\n<td><code>password</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The account password</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"userName\": \"Brassica\",\n    \"password\": \"Brassica_pwd\"  //use this Credentials to test on your local or postman\n}\n\n</code></pre>\n<hr />\n<h3 id=\"response\">Response</h3>\n<p>On success, the API returns a <code>200 OK</code> with a JSON body containing:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data.resp1</code></td>\n<td>The JWT Bearer Token to use in subsequent requests</td>\n</tr>\n<tr>\n<td><code>data.resp2</code></td>\n<td>Your server IP address</td>\n</tr>\n<tr>\n<td><code>response</code></td>\n<td>Response code (<code>\"000\"</code> indicates success)</td>\n</tr>\n<tr>\n<td><code>responseMesg</code></td>\n<td>Human-readable status message (e.g. <code>\"Token Generated\"</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"data\": {\n        \"resp1\": \"&lt;JWT_TOKEN&gt;\",\n        \"resp2\": \"169.254.132.3\"\n    },\n    \"response\": \"000\",\n    \"responseMesg\": \"Token Generated\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"using-the-token\">Using the Token</h3>\n<p>All protected endpoints require a Bearer Token. Tokens are <strong>short-lived (1 hour)</strong>. You should obtain a fresh token after each hour of authentication.</p>\n<p>Include the token in the <code>Authorization</code> header of every subsequent request:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer &lt;token&gt;\n\n</code></pre>","urlObject":{"path":["Authenticate"],"host":["https://bbusmockserver.azurewebsites.net"],"query":[],"variable":[]}},"response":[{"id":"86e83063-a3fd-4846-9249-0e8e9cd06303","name":"Accepted","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"userName\": \"Brassica\",\r\n    \"password\": \"Brassica_pwd\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://bbusmockserver.azurewebsites.net/Authenticate"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"response\": \"000\",\n    \"responseMesg\": \"Token Generated\",\n    \"data\": {\n        \"resp1\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bm4xdWVfbmFtZSI6IkJSQTIzMDgxO9Y14jciLCJVc2VySUQiOiJCUkEyMzA4MTg2NTI3IiwibmJmIjoxNzM4MjQ33DMwLCJleHAiOjE3MzgyNTA2MzAsImlhdCI6MTczODI0NzA0MH0.vK1YVwmFnCoEHzaQNYjBuJgkypnIVp8dxvnLjJz4sUg\",\n        \"resp2\": \"41.76.295.105\"\n    }\n}"},{"id":"f9b2207c-f017-46d4-bf02-e97f28d9b371","name":"Failed","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"text/plain","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"text"}}},"url":"https://bbusmockserver.azurewebsites.net/Authenticate"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"response\": \"001\",\n    \"responseMesg\": \"Wrong UserName or Password\"\n}"}],"_postman_id":"85b41ee8-3db1-4ec2-b45a-5acc79b91b44"},{"name":"DebitMoney","id":"2f16a531-651b-4944-9076-be083f3aa0b5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":""},"url":"https://bbusmockserver.azurewebsites.net/DebitMoney","description":"<h2 id=\"debitmoney\">DebitMoney</h2>\n<p>Initiates a debit (collection) from a mobile money wallet.</p>\n<blockquote>\n<p>ℹ <strong>NOTE</strong><br />This is a mock server — it has no real-world effect. It is intended to demonstrate the correct request and response to pass when sending a request.<br /><strong>ℹ NOTE</strong><br />Debit operations against mobile money accounts are subject to the customer approving a USSD prompt on their handset. Note that this will not work as this is just a playground for API testing </p>\n</blockquote>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>Endpoint:</strong> <code>https://bbusmockserver.azurewebsites.net/debitMoney</code><br /><strong>Auth:</strong> Bearer Token</p>\n<hr />\n<h3 id=\"authentication\">Authentication</h3>\n<p>All requests must include a Bearer Token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer &lt;token&gt;\n\n</code></pre><hr />\n<h3 id=\"request-body\">Request Body</h3>\n<p>Send a JSON payload with the following fields:</p>\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>channel</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Must be <code>\"mno\"</code> for debit (mobile money only)</td>\n</tr>\n<tr>\n<td><code>institutionCode</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Code identifying the financial institution  <br />300592- AT  <br />300591-MTN  <br />300594-TELECEL</td>\n</tr>\n<tr>\n<td><code>accountNumber</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The mobile money wallet number to debit</td>\n</tr>\n<tr>\n<td><code>accountName</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Name of the account holder</td>\n</tr>\n<tr>\n<td><code>amount</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Amount to debit (as a string, e.g. <code>\"1.00\"</code>)</td>\n</tr>\n<tr>\n<td><code>debitNaration</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Description or reference for the transaction</td>\n</tr>\n<tr>\n<td><code>transactionId</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Unique identifier for the transaction</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"channel\": \"mno\",\n    \"institutionCode\": \"300592\",\n    \"accountNumber\": \"23312345678\",\n    \"accountName\": \"Jonathan Amponsah\",\n    \"amount\": \"1.00\",\n    \"debitNaration\": \"Testing Debit\",\n    \"transactionId\": \"5365tet2555205\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"initial-response--callback\">Initial Response &amp; Callback</h3>\n<p>The initial response (HTTP <code>202 Accepted</code>) confirms that your request has passed validation. The final transaction outcome (<code>SUCCESSFUL</code> or <code>FAILED</code>) is delivered via a check Status</p>\n<hr />\n<h3 id=\"responses\">Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>202 Accepted</code></td>\n<td>The debit request passed validation and is being processed</td>\n</tr>\n<tr>\n<td><code>400 Request Not Accepted</code></td>\n<td>The request was rejected due to invalid or missing parameters</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"key-differences-from-send-money\">Key Differences from Send Money</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Send Money</th>\n<th>Debit Money</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>channel</code></td>\n<td><code>\"mno\"</code></td>\n<td><code>\"mno\"</code> only (mobile money accounts)</td>\n</tr>\n<tr>\n<td>Narration field</td>\n<td><code>creditNaration</code></td>\n<td><code>debitNaration</code></td>\n</tr>\n<tr>\n<td>Direction</td>\n<td>Credit (funds out to recipient)</td>\n<td>Debit (funds pulled from account)</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Tokens are short-lived (1 hour). Obtain a fresh token before making requests if the previous token has expired.</p>\n</li>\n<li><p>Ensure <code>transactionId</code> is unique per transaction to avoid duplicate processing.</p>\n</li>\n<li><p>The <code>channel</code> field must always be <code>\"mno\"</code> — debit is only supported for mobile money wallets.</p>\n</li>\n</ul>\n","urlObject":{"path":["DebitMoney"],"host":["https://bbusmockserver.azurewebsites.net"],"query":[],"variable":[]}},"response":[{"id":"63e2f07c-5bd0-486a-ac90-4782077cbe34","name":"Accepted","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"transactionId\": \"123456789ABCD\",\r\n    \"institutionCode\": \"300591\",\r\n    \"accountNumber\": \"2335912345678\",\r\n    \"accountName\": \"Jonathan Amponsah\",\r\n    \"amount\": \"2.00\",\r\n    \"debitNaration\": \"test\",\r\n    \"serviceType\": \"test\",\r\n     \"channel\": \"mno\"\r\n}   ","options":{"raw":{"language":"json"}}},"url":"https://bbusmockserver.azurewebsites.net/DebitMoney"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": \"202\",\n    \"status\": \"ACCEPTED\",\n    \"message\": \"Request is being processed.\",\n    \"extralTransactionId\": null,\n    \"transactionId\": \"123456789ABCD\",\n    \"paymentURL\": null\n}"},{"id":"707462e0-d1b2-497f-bd64-770237bcbd93","name":"Request Not Accepted","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":""},"url":"https://bbusmockserver.azurewebsites.net/DebitMoney"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": \"406\",\n    \"status\": \"REQUEST_NOT_ACCEPTED\",\n    \"message\": \"Request not accepted for one or more reasons.\",\n    \"extralTransactionId\": \"ba745c3797d740dabd0d053f8ca1c372\",\n    \"transactionId\": \"123456789ABCD\",\n    \"paymentURL\": null\n}"}],"_postman_id":"2f16a531-651b-4944-9076-be083f3aa0b5"},{"name":"TransStatusQuery","id":"73508a70-da75-45dd-bb25-213a70f34ceb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"transactionType\": \"debit\",\r\n    \"transactionId\": \"94044444788894882r3\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://bbusmockserver.azurewebsites.net/transStatusQuery","description":"<h2 id=\"transaction-status-query\">Transaction Status Query</h2>\n<p>The Transaction Status Query endpoint allows you to actively poll for the status of a previously submitted credit or debit transaction. While outcome is delivered through callbacks, you should use this endpoint to handle cases where your callback was not received, to reconcile pending transactions, or to obtain live status updates to your transaction.</p>\n<blockquote>\n<p><strong>ℹ NOTE</strong><br />This is a mock server — it has no real-world effect. It is intended to demonstrate the correct request and response format when sending a request. </p>\n</blockquote>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>Endpoint:</strong> <code>https://bbusmockserver.azurewebsites.net/transStatusQuery</code><br /><strong>Auth:</strong> Bearer Token</p>\n<hr />\n<h3 id=\"authentication\">Authentication</h3>\n<p>All requests must include a Bearer Token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer &lt;token&gt;\n\n</code></pre><hr />\n<h3 id=\"request-body\">Request Body</h3>\n<p>Send a JSON payload with the following fields:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Values</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>transactionType</code></td>\n<td><code>\"credit\"</code> or <code>\"debit\"</code></td>\n<td>Specify whether the original transaction was a Send Money (credit) or a Debit Money (debit) operation.</td>\n</tr>\n<tr>\n<td><code>transactionId</code></td>\n<td>Your original reference</td>\n<td>The same <code>transactionId</code> you provided when the transaction was submitted.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transactionType\": \"credit\",\n  \"transactionId\": \"5365tet2555127\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"response-body\">Response Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\": \"200\",\n  \"status\": \"SUCCESSFUL\",\n  \"message\": \"Request processed successfully.\",\n  \"institutionApprovalCode\": \"25809613539\",\n  \"transactionId\": \"e-55bg6-736627-63524\",\n  \"extralTransactionId\": \"1e96398f-7da3-474d-a85d-a26aa6e76b93\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"responses\">Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>200 OK</code></td>\n<td>Request accepted — transaction status returned successfully</td>\n</tr>\n<tr>\n<td><code>404 Not Found</code></td>\n<td>Transaction not found for the given <code>transactionId</code></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["transStatusQuery"],"host":["https://bbusmockserver.azurewebsites.net"],"query":[],"variable":[]}},"response":[{"id":"a58827a4-1ff8-4a89-a64f-7a6f38cc948b","name":"Successful","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"transactionType\": \"debit\",\r\n    \"transactionId\": \"123456789ABCD\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://bbusmockserver.azurewebsites.net/transStatusQuery"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": \"200\",\n    \"status\": \"SUCCESSFUL\",\n    \"message\": \"Request processed successfully.\",\n    \"institutionApprovalCode\": \"A06594\",\n    \"transactionId\": \"123456789ABCD\",\n    \"extralTransactionId\": \"241220356229\",\n    \"reason\": null\n}"},{"id":"597d6c0a-4943-4750-9fb3-237b16e33599","name":"Transaction Not Found","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://bbusmockserver.azurewebsites.net/transStatusQuery"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\r\n    \"statusCode\": \"404\",\r\n    \"status\": \"TRANSACTION_NOT_FOUND\",\r\n    \"message\": \"Transaction not found.\",\r\n    \"institutionApprovalCode\": \"000000000000\",\r\n    \"transactionId\": \"123456789ABCD\",\r\n    \"extralTransactionId\": null,\r\n    \"reason\": null"}],"_postman_id":"73508a70-da75-45dd-bb25-213a70f34ceb"},{"name":"Get balance","id":"154db5d6-ca47-452d-bf85-63bc1187722e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://bbusmockserver.azurewebsites.net/GetAvailableBalance","description":"<h2 id=\"get-balance\">Get Balance</h2>\n<p>The Get Balance endpoint retrieves the current available float balance on your account. Use this to display your real-time balance.</p>\n<blockquote>\n<p><strong>ℹ NOTE</strong>\nThis is a mock server — it has no real-world effect. It is intended to demonstrate the correct request and response to pass when sending a request.</p>\n</blockquote>\n<p><strong>Method:</strong> <code>POST</code>\n<strong>Endpoint:</strong> <code>/GetAvailableBalance</code>\n<strong>Auth:</strong> Bearer Token</p>\n<hr />\n<h3 id=\"request-body\">Request Body</h3>\n<p>This endpoint requires no request body. Simply send an authenticated POST request to the endpoint.</p>\n<hr />\n<h3 id=\"authentication\">Authentication</h3>\n<p>All requests must include a Bearer Token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer &lt;token&gt;\n</code></pre><hr />\n<h3 id=\"response-body\">Response Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"accountBalance\": \"74.1985\",\n  \"dateTime\": \"23-08-2023 10:59:25\"\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>accountBalance</code></td>\n<td>Your available float balance in GHS. This reflects the amount currently available to fund outgoing credit transfers.</td>\n</tr>\n<tr>\n<td><code>dateTime</code></td>\n<td>The server timestamp at which the balance was read, in <code>DD-MM-YYYY HH:MM:SS</code> format.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["GetAvailableBalance"],"host":["https://bbusmockserver.azurewebsites.net"],"query":[],"variable":[]}},"response":[{"id":"8948dfff-f05c-4969-9f63-3b64a8ea27fa","name":"Balance","originalRequest":{"method":"POST","header":[],"url":"https://bbusmockserver.azurewebsites.net/GetAvailableBalance"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"accountBalance\": \"74.1985\",\n    \"dateTime\": \"23-08-2024 10:59:25\"\n}"}],"_postman_id":"154db5d6-ca47-452d-bf85-63bc1187722e"},{"name":"Name Enquiry","id":"2ced74da-4855-45f7-a41e-a22048ef9cb3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"channel\": \"mno\",\r\n    \"institutionCode\": \"300594\",\r\n    \"accountNumber\": \"2332012345678\",\r\n    \"transactionId\": \"5365tet2555127\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://bbusmockserver.azurewebsites.net/nameEnquiry","description":"<h2 id=\"name-enquiry\">Name Enquiry</h2>\n<p>The Name Enquiry endpoint allows you to verify that a given mobile money wallet or bank account number is valid and retrieve the registered account holder's name.</p>\n<blockquote>\n<p><strong>ℹ NOTE</strong><br />This is a mock server — it has no real-world effect. It is intended to demonstrate the correct request and response to pass when sending a request. </p>\n</blockquote>\n<blockquote>\n<p>⚠ <strong>IMPORTANT</strong><br />It is important to perform a Name Enquiry before executing a Send Money transaction to validate the destination account and give users a chance to confirm the recipient's name. </p>\n</blockquote>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>Endpoint:</strong> <code>/nameEnquiry</code><br /><strong>Auth:</strong> Bearer Token</p>\n<hr />\n<h3 id=\"request-body\">Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"channel\":         \"mno\",            // \"mno\" or \"interbank\"\n  \"institutionCode\": \"300594\",         // Destination institution code\n  \"accountNumber\":   \"2332012345678\",   // 12-digit international format\n  \"transactionId\":   \"5365tet2555127\"  // Unique reference for this enquiry\n}\n\n</code></pre>\n<hr />\n<h3 id=\"response-body\">Response Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\":              \"200\",\n  \"status\":                  \"SUCCESSFUL\",\n  \"message\":                 \"Request processed successfully\",\n  \"accountName\":             \"Jonathan Amponsah\",\n  \"accountNumber\":           \"020412345678\",\n  \"transactionId\":           \"5365tet2555127\",\n  \"institutionApprovalCode\": \"000000\",\n  \"extralTransactionId\":     \"0000000000\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>accountName</code></td>\n<td>The registered name of the account holder. Display this to the user for explicit confirmation before proceeding with the transfer.</td>\n</tr>\n<tr>\n<td><code>accountNumber</code></td>\n<td>The account number returned (may be in local format, without country prefix).</td>\n</tr>\n<tr>\n<td><code>statusCode</code></td>\n<td><code>200</code> indicates the account was found and validated. Any other code indicates a problem — do not proceed with the transfer.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["nameEnquiry"],"host":["https://bbusmockserver.azurewebsites.net"],"query":[],"variable":[]}},"response":[{"id":"e4a2e84c-64d7-46e0-82cb-5485ca71f939","name":"Successful","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"channel\": \"mno\",\r\n    \"institutionCode\": \"300594\",\r\n    \"accountNumber\": \"23312345678\",\r\n    \"transactionId\": \"123456789ABCD\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://bbusmockserver.azurewebsites.net/nameEnquiry"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\r\n    \"statusCode\": \"200\",\r\n    \"status\": \"SUCCESSFUL\",\r\n    \"message\": \"Request processed successfully\",\r\n    \"accountName\": \"JONATHAN AMPONSAH\",\r\n    \"accountNumber\": \"233591234567\",\r\n    \"transactionId\": \"C3531946\",\r\n    \"institutionApprovalCode\": \"0000000\",\r\n    \"extralTransactionId\": \"00000000000000000\"\r\n}"},{"id":"2f520919-ea2c-4db3-9907-c99ea7a72ca7","name":"Account Not Found","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://bbusmockserver.azurewebsites.net/nameEnquiry"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": \"419\",\n    \"status\": \"ACCOUNT_NOT_FOUND\",\n    \"message\": \"Account not found.\",\n    \"accountName\": \"\",\n    \"accountNumber\": \"\",\n    \"transactionId\": \"\",\n    \"institutionApprovalCode\": null,\n    \"extralTransactionId\": \"250130145322\"\n}"}],"_postman_id":"2ced74da-4855-45f7-a41e-a22048ef9cb3"},{"name":"Send Money","event":[{"listen":"prerequest","script":{"id":"fd757114-f76c-4051-9c19-f629e00cf162","exec":["// Function to generate a random hexadecimal string of a given length\r","function generateRandomHex(length) {\r","    const characters = '0123456789ABCDEF';\r","    let result = '';\r","    for (let i = 0; i < length; i++) {\r","        result += characters.charAt(Math.floor(Math.random() * characters.length));\r","    }\r","    return result;\r","}\r","\r","// Generate an 8-digit hexadecimal string\r","const randomHex = generateRandomHex(8);\r","\r","// Log the generated hex for debugging\r","console.log(\"Generated Hex: \" + randomHex);\r","\r","// Set the hex value in an environment or collection variable\r","pm.environment.set(\"randomHex\", randomHex);"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"af6530fc-2665-4ca2-b2aa-f79edc0009ee","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"channel\": \"mno\",\r\n    \"institutionCode\": \"300594\",\r\n    \"accountNumber\": \"2335012345678\",\r\n    \"accountName\": \"Jonathan Amponsah\",\r\n    \"amount\": \"2.00\",\r\n    \"creditNaration\": \"Testing Credit\",\r\n    \"transactionId\": \"ertyuidfghj567\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{baseURL}}/sendMoney","description":"<h2 id=\"send-money\">Send Money</h2>\n<p>The Send Money endpoint initiates a credit transfer to a recipient's mobile money wallet (MNO) or bank account (interbank). Because transfers are processed asynchronously by the underlying payment networks, the initial API response is an acknowledgement.</p>\n<blockquote>\n<p><strong>ℹ NOTE</strong><br />This is a mock server — it has no real-world effect. It is intended to demonstrate the correct request and response to pass when sending a request. </p>\n</blockquote>\n<p><strong>Method:</strong> <code>POST</code> <strong>Endpoint:</strong> <code>/sendMoney</code> <strong>Auth:</strong> Bearer Token</p>\n<hr />\n<h3 id=\"request-body\">Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"channel\":         \"interbank\",      // \"mno\" or \"interbank\"\n  \"institutionCode\": \"300592\",         // 6-digit institution code\n  \"accountNumber\":   \"2332012345678\",   // 12-digit for wallet or bank account digits\n  \"accountName\":     \"Jonathan Amponsah\", // Recipient's name\n  \"amount\":          \"1.00\",           // Two-decimal string\n  \"creditNaration\":  \"Testing Credit\", // Max 50 characters\n  \"transactionId\":   \"5365tet2555205\"  // Your unique transaction reference\n}\n\n</code></pre>\n<h3 id=\"initial-response-http-202--accepted\">Initial Response (HTTP 202 — Accepted)</h3>\n<p>The API immediately returns a <code>202 Accepted</code> response to confirm your request has passed validation and is being processed.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusCode\":          \"202\",\n  \"status\":              \"ACCEPTED\",\n  \"message\":             \"Request is being processed\",\n  \"extralTransactionId\": \"73662553837\",    // Brassica internal reference\n  \"transactionId\":       \"5365tet2555205\"  // Your original reference echoed back\n}\n\n</code></pre>\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>Parameter</th>\n<th>Type</th>\n<th>Max Length</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>channel</td>\n<td>String</td>\n<td>10</td>\n<td>Transfer channel. Use <code>\"mno\"</code> for mobile money networks; <code>\"interbank\"</code> for bank-to-bank transfers.</td>\n</tr>\n<tr>\n<td>institutionCode</td>\n<td>String</td>\n<td>6 digits</td>\n<td>Unique code identifying the destination institution (see Institution Codes section).  <br />300952 - AT  <br />300951-MTN  <br />300954-TELECEL</td>\n</tr>\n<tr>\n<td>accountNumber</td>\n<td>Numbers</td>\n<td>10–15 digits</td>\n<td>Recipient's mobile or bank account number in international format (e.g., <code>233XXXXXXXXX</code>).</td>\n</tr>\n<tr>\n<td>accountName</td>\n<td>String</td>\n<td>50 chars</td>\n<td>Name of the account holder.</td>\n</tr>\n<tr>\n<td>amount</td>\n<td>String</td>\n<td>Decimal</td>\n<td>Transfer amount in GHS, formatted as a two-decimal string (e.g., <code>\"100.00\"</code>).</td>\n</tr>\n<tr>\n<td>creditNaration</td>\n<td>String</td>\n<td>50 chars</td>\n<td>A human-readable description of the transfer.</td>\n</tr>\n<tr>\n<td>transactionId</td>\n<td>Alphanumeric</td>\n<td>40 chars</td>\n<td>Your unique reference for this transaction. Must be unique per request.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n","urlObject":{"path":["sendMoney"],"host":["{{baseURL}}"],"query":[],"variable":[]}},"response":[{"id":"84eff95a-7ea5-40f5-b47d-6bd2ca328a31","name":"Accepted","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"channel\": \"mno\",\r\n    \"institutionCode\": \"300594\",\r\n    \"accountNumber\": \"2335012345678\",\r\n    \"accountName\": \"Jonathan Amponsah\",\r\n    \"amount\": \"2.00\",\r\n    \"creditNaration\": \"Testing Credit\",\r\n    \"transactionId\": \"123456789ABCD\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://bbusmockserver.azurewebsites.net/SendMoney"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": \"202\",\n    \"status\": \"ACCEPTED\",\n    \"message\": \"Request is being processed.\",\n    \"extralTransactionId\": null,\n    \"transactionId\": \"123456789ABCD\",\n    \"paymentURL\": null\n}"}],"_postman_id":"af6530fc-2665-4ca2-b2aa-f79edc0009ee"}],"event":[{"listen":"prerequest","script":{"id":"87d50f2c-3efd-421c-8616-189361ad06e2","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"0a6c4f87-a45e-4a65-a8b0-503d489ae4aa","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}],"variable":[{"key":"BaseURL","value":"https://bbusmockserver.azurewebsites.net"}]}