{"info":{"_postman_id":"9b805cd2-376f-4922-8070-2b2ac8568dda","name":"Monfi B2B API's v1","description":"<html><head></head><body><p>This document lists the API's been consumed by third-party entities to avail our services from Onboarding to services management. Before you integrate with us, we will provide you with the user credentials along with <code>api_client_id</code> and <code>client_secret</code>. You will get started by using these details to get your <code>access_token</code>.</p>\n<p>You can consume these API's using the <code>access_token</code>.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Environment</strong></th>\n<th><strong>Endpoint</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>stage (base_url)</td>\n<td><a href=\"https://stage-b2b-api.monfibank.com/api/v1/\">https://stage-b2b-api.monfibank.com/api/v1/</a></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"🔴-important-note\">🔴 <strong>Important Note:</strong></h3>\n<p>The <code>Idempotency-Key</code> has a 24hrs lifetime. After 24hrs the request with the same <code>Idempotency-Key</code> will be treated as a new request.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"32417476","collectionId":"9b805cd2-376f-4922-8070-2b2ac8568dda","publishedId":"2sB3WsPKeT","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2025-12-17T08:25:03.000Z"},"item":[{"name":"🔴 Change Logs","item":[],"id":"2b012e52-753b-430f-8844-668ebd2f78e3","description":"<h4 id=\"v124-november-03-2025\">v1.2.4 (November 03, 2025)</h4>\n<ul>\n<li><p>Removed <code>have_portal_access</code> parameter from the following endpoints' request payloads;</p>\n<ul>\n<li><p><code>api/v1/register/individual</code> (Post/Put)</p>\n</li>\n<li><p><code>api/v1/register/company</code> (Post/Put)</p>\n</li>\n</ul>\n</li>\n<li><p>A <strong>User</strong> will be automatically created, which can be used to login to Monfi's Client Portal, for the onboarded members. Also, welcome email and login credentials email will be sent on member's email.</p>\n</li>\n<li><p>Changed <code>account_number</code> parameter to <code>internal_account_number</code> and added the IBAN and other details inside <code>other_details</code> parameter in the following endpoints' responses</p>\n<ul>\n<li><p><code>api/v1/clients/accounts/{{client_id}}</code></p>\n</li>\n<li><p><code>api/v1/clients/accounts/details/{{account_id}}</code></p>\n</li>\n</ul>\n</li>\n<li><p>The <code>api/v1/clients/accounts/deposit</code> endpoint will return the IBAN and other associated details for the following currency accounts, if the IBAN is generated;</p>\n<ul>\n<li><p>EUR</p>\n</li>\n<li><p>GBP</p>\n</li>\n</ul>\n</li>\n<li><p>The following parameters are no more required, for the <code>api/v1/clients/accounts/deposit</code> endpoint's request payload, in case of <strong>EUR</strong> and <strong>GBP</strong>.</p>\n<ul>\n<li><p><code>amount</code></p>\n</li>\n<li><p><code>transaction_date</code></p>\n</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"v123-october-29-2025\">v1.2.3 (October 29, 2025)</h4>\n<ul>\n<li><p>The <code>api/v1/clients/accounts/deposit</code> endpoint will return an IBAN for the following currency accounts, if the IBAN is generated;</p>\n<ul>\n<li><p>EUR</p>\n</li>\n<li><p>GBP</p>\n</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"v122-october-28-2025\">v1.2.2 (October 28, 2025)</h4>\n<ul>\n<li>Added <code>redirect_deep_link</code> required field in <code>api/v1/register/individual</code> and <code>api/v1/register/company</code>endpoint.</li>\n</ul>\n<h4 id=\"v121-october-22-2025\">v1.2.1 (October 22, 2025)</h4>\n<ul>\n<li>Added <code>residence_city</code> required field in <code>api/v1/register/individual</code> endpoint.</li>\n</ul>\n<h4 id=\"v120-october-15-2025\">v1.2.0 (October 15, 2025)</h4>\n<ul>\n<li><p>Changed KYC flow; <code>KYC URL</code> will be returned in the response of <code>api/v1/register/individual</code> endpoint.</p>\n</li>\n<li><p>Removed <code>api/v1/register/upload-kyc-files</code> endpoint.</p>\n</li>\n</ul>\n<h4 id=\"v110-march-11-2025\">v1.1.0 (March 11, 2025)</h4>\n<ul>\n<li><p>Added <code>Signature</code> and <code>Tonce</code> headers to all of the <code>POST</code> and <code>PUT</code> requests, except <code>api/v1/oauth/token</code>. Mechanism and Components for <code>Signature</code> generation are supposed to be shared privately.</p>\n</li>\n<li><p>Changed base endpoint <code>api/v1/client</code> to <strong><code>api/v1/clients</code></strong> for all of the endpoints in Client section</p>\n</li>\n<li><p>Changed base endpoint <code>api/v1/client/account</code>, in the endpoints inside Account section, to <strong><code>api/v1/clients/accounts</code></strong></p>\n</li>\n<li><p>Changed base endpoint <code>api/v1/client/beneficiary</code>, in the endpoints inside Beneficiary section, to <strong><code>api/v1/clients/beneficiaries</code></strong></p>\n</li>\n<li><p>Changed endpoint <code>api/v1/register/update/individual</code> to <strong><code>api/v1/register/individual</code></strong></p>\n</li>\n<li><p>Changed endpoint <code>api/v1/register/update/company</code> to <strong><code>api/v1/register/company</code></strong></p>\n</li>\n<li><p>Changed endpoint <code>api/v1/client/accounts</code> to <strong><code>api/v1/clients/accounts/{{client_id}}</code></strong> and changed it's Request method from <code>POST</code> to <code>GET</code></p>\n</li>\n<li><p>Changed endpoint <code>api/v1/client/account/check</code> to <strong><code>api/v1/clients/accounts/check/{{account_number}}</code></strong> and changed it's Request method from <code>POST</code> to <code>GET</code></p>\n</li>\n<li><p>Changed endpoint <code>api/v1/client/account/details</code> to <strong><code>api/v1/clients/accounts/details/{{account_id}}</code></strong> and changed it's Request method from <code>POST</code> to <code>GET</code></p>\n</li>\n<li><p>Changed endpoint <code>api/v1/client/account/transactions</code> to <strong><code>api/v1/clients/accounts/transactions/{{transaction_id}}</code></strong> and changed it's Request method from <code>POST</code> to <code>GET</code></p>\n</li>\n<li><p>Changed endpoint <code>api/v1/client/account/statement/pdf</code> to <strong><code>api/v1/clients/accounts/statement/pdf/{{account_id}}/{{period}}</code></strong> and changed it's Request method from <code>POST</code> to <code>GET</code></p>\n</li>\n<li><p>Changed endpoint <code>api/v1/client/beneficiaries/delete/{{beneficiary_id}}/{{client_id}}</code> to <strong><code>api/v1/clients/beneficiaries/{{beneficiary_id}}/{{client_id}}</code></strong></p>\n</li>\n<li><p>Changed endpoint <code>api/v1/client/beneficiary/get</code> to <strong><code>api/v1/clients/beneficiaries/{{beneficiary_id}}/{{client_id}}</code></strong> and changed it's Request method from <code>POST</code> to <code>GET</code></p>\n</li>\n<li><p>Changed endpoint <code>api/v1/client/beneficiary/update</code> to <strong><code>api/v1/clients/beneficiaries</code></strong></p>\n</li>\n<li><p>Changed endpoint <code>api/v1/client/cards</code> to <strong><code>api/v1/clients/cards/{{client_id}}</code></strong></p>\n</li>\n<li><p>Changed endpoint <code>api/v1/client/card-balance</code> to <strong><code>api/v1/clients/cards/balance/{{card_id}}</code></strong> and changed it's Request method from <code>POST</code> to <code>GET</code></p>\n</li>\n<li><p>Changed endpoint <code>api/v1/client/card-set-pin</code> to <strong><code>api/v1/clients/cards/set-pin</code></strong></p>\n</li>\n<li><p>Changed endpoint <code>api/v1/client/card-top-up</code> to <strong><code>api/v1/clients/cards/top-up</code></strong></p>\n</li>\n<li><p>Changed endpoint <code>api/v1/client/block-card</code> to <strong><code>api/v1/clients/cards/block</code></strong></p>\n</li>\n<li><p>Changed endpoint <code>api/v1/client/unblock-card</code> to <strong><code>api/v1/clients/cards/unblock</code></strong></p>\n</li>\n<li><p>Changed endpoint <code>api/v1/client/card-statement/pdf</code> to <strong><code>api/v1/clients/cards/statement/pdf/{{card_id}}</code></strong> and changed it's Request method from <code>POST</code> to <code>GET</code></p>\n</li>\n<li><p>Changed endpoint <code>api/v1/lookups/client/onboarding-files</code> to <strong><code>api/v1/lookups/client-onboarding-files/{{type}}</code></strong> and changed it's Request method from <code>POST</code> to <code>GET</code></p>\n</li>\n<li><p>Changed endpoint <code>api/v1/user/notifications/delete/{{nid}}</code> to <strong><code>api/v1/user/notifications/{{nid}}</code></strong></p>\n</li>\n<li><p>Changed endpoint <code>api/v1/user/notifications/delete-all</code> to <strong><code>api/v1/user/notifications</code></strong></p>\n</li>\n</ul>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"2a7df75b-d200-4bc6-ab41-8e869a345563"}},{"listen":"test","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"f2bdfa4e-6f67-4996-9acc-c0cd6857a383"}}],"_postman_id":"2b012e52-753b-430f-8844-668ebd2f78e3"},{"name":"Auth","item":[{"name":"Get Access Token","event":[{"listen":"test","script":{"id":"1d936902-c4f2-4869-abca-3a66018d52ac","exec":["if (pm.response.json().access_token) {","    pm.environment.set('token', pm.response.json().access_token)","}"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"3dd8e73d-31ee-4c99-906a-d32ebc5d8aab","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"grant_type","value":"password","type":"text"},{"key":"api_client_id","value":"{{api_client_id}}","type":"text"},{"key":"client_secret","value":"{{client_secret}}","type":"text"},{"key":"username","value":"{{api_user_username}}","type":"text"},{"key":"password","value":"{{api_user_password}}","type":"text"}]},"url":"https://stage-b2b-api.monfibank.com/api/v1/oauth/token","description":"<p>This is the Login API for getting <code>access_token</code>, which can be used with each API request for authorization.</p>\n<p>🔴 <em>Please note that all fields are mandatory.</em></p>\n","auth":{"type":"noauth","isInherited":true,"source":{"_postman_id":"5ba466a6-7979-41e3-beb4-0e60a21c7aa2","id":"5ba466a6-7979-41e3-beb4-0e60a21c7aa2","name":"Auth","type":"folder"}},"urlObject":{"path":["token"],"host":["https://stage-b2b-api.monfibank.com/api/v1/oauth"],"query":[],"variable":[]}},"response":[],"_postman_id":"3dd8e73d-31ee-4c99-906a-d32ebc5d8aab"}],"id":"5ba466a6-7979-41e3-beb4-0e60a21c7aa2","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"0323c429-3fe5-432a-8615-619eefd9da18"}},{"listen":"test","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"fc89f74b-ac38-4e3b-8c9d-6620b2453684"}}],"_postman_id":"5ba466a6-7979-41e3-beb4-0e60a21c7aa2","description":""},{"name":"Register","item":[{"name":"Individual","event":[{"listen":"prerequest","script":{"id":"75bbb117-a93e-4c9d-9586-ab3eefb5074a","exec":["var CryptoJS = require('crypto-js');\r","\r","const tonce = generateTonce();\r","const path = '/api/v1/register/individual';\r","const secret = pm.variables.get('client_secret');\r","\r","// CHANGE PAYLOAD BELOW\r","var formdata = pm.request.body.formdata.all()\r","var requestBodyObj = {} \r","\r","formdata.forEach(item => {\r","    let key = normalizeKey(item.key)\r","\r","    if (item.type === 'file' && !item.src || (Array.isArray(item.src) && item.src.length === 0)) {\r","        return\r","    }\r","\r","    if (item.type === 'file' && !requestBodyObj[key]) {\r","        requestBodyObj[key] = [{}]\r","    } else {\r","        requestBodyObj[key] = item.value\r","    }\r","})\r","\r","requestBodyObj.tonce = tonce\r","console.log('Request Payload', requestBodyObj);\r","\r","var requestBodyString = JSON.stringify(requestBodyObj);\r","console.log('Request Payload stringify', requestBodyString);\r","\r","var encrypted = CryptoJS.HmacSHA512(path + '\\0' + requestBodyString, secret);\r","var signature = CryptoJS.enc.Base64.stringify(encrypted);\r","\r","pm.variables.set('Signature', signature);\r","pm.variables.set('Tonce', tonce)\r","\r","function normalizeKey(key) {\r","    return key.replace(/\\[\\]$/, '')\r","}\r","\r","function generateTonce() {\r","    return Math.floor(Date.now() * 1000)\r","}\r","\r","let idempotencyKey = pm.variables.replaceIn(\"ace47ba0-f737-4b84-884a-cbd373a6106d\");\r","pm.environment.set('idempotencyKey', idempotencyKey);"],"type":"text/javascript","packages":{},"requests":{}}},{"listen":"test","script":{"id":"f09a8f1f-b86b-4d86-814e-e099c5f75e77","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"ef7ce99a-ef6f-4602-8439-76e072c0342e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Idempotency-Key","value":"{{idempotencyKey}}","description":"<p>🔴 Required | A 36 characters unique key. Here we have used a <code>UUID</code> as an example.</p>\n","type":"text"},{"key":"Signature","value":"{{Signature}}","type":"text"},{"key":"Tonce","value":"{{Tonce}}","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"name","value":"John Doe 311","type":"text"},{"key":"email_address","value":"john.doe+311@example.com","type":"text"},{"key":"phone_country_code","value":"+971","type":"text"},{"key":"mobile_number","value":"123456789","type":"text"},{"key":"date_of_birth","value":"1990-01-01","type":"text"},{"key":"nationality","value":"1","type":"text"},{"key":"residence_country","value":"2","type":"text"},{"key":"residence_city","value":"Dubai","type":"text","uuid":"30ff8e96-f697-4fe5-9780-c54b907b275e"},{"key":"passport_number","value":"A12345678","type":"text"},{"key":"passport_expiry_date","value":"1990-01-01","type":"text"},{"key":"mailing_address","value":"123 Main St","type":"text"},{"key":"gender","value":"male","type":"text"},{"key":"occupation_business","value":"Software Developer","type":"text"},{"key":"job_title","value":"Senior Developer","type":"text"},{"key":"employer_business_name","value":"Tech Solutions Inc.","type":"text"},{"key":"employer_address","value":"456 Tech Ave","type":"text"},{"key":"applicant_annual_income_usd","value":"75000","type":"text"},{"key":"agree_declaration","value":"1","type":"text"},{"key":"account_currencies","value":"19,22,24,25","type":"text"},{"key":"redirect_deep_link","value":"","type":"text","uuid":"1bcd17ad-3f8b-4477-bda1-bc963f2cd202"}]},"url":"https://stage-b2b-api.monfibank.com/api/v1/register/individual","description":"<p>This endpoint is for registering an Individual Client. It returns the newly registered <code>client_id</code>, which is used in the subsequent request, i.e., upload the Onboarding Documents <code>register/upload-files</code>. We have used some identifiers in request payload which are described as below.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Identifier</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>nationality</td>\n<td>You will need to use the country ID from the endpoint <code>lookups/countries</code> and use the corresponding country ID.</td>\n</tr>\n<tr>\n<td>residence_country</td>\n<td>You will need to use the country ID from the endpoint <code>lookups/countries</code> and use the corresponding country ID.</td>\n</tr>\n<tr>\n<td>account_currencies</td>\n<td>These are comma separated currency ids, which can be referenced from <code>lookups/currencies</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><p>🔴 <em>Please note that all fields are mandatory except the following.</em></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Optional Fields</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>gender</td>\n</tr>\n<tr>\n<td>occupation_business</td>\n</tr>\n<tr>\n<td>job_title</td>\n</tr>\n<tr>\n<td>employer_business_name</td>\n</tr>\n<tr>\n<td>employer_address</td>\n</tr>\n<tr>\n<td>applicant_annual_income_usd</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["individual"],"host":["https://stage-b2b-api.monfibank.com/api/v1/register"],"query":[],"variable":[]}},"response":[],"_postman_id":"ef7ce99a-ef6f-4602-8439-76e072c0342e"},{"name":"Company","event":[{"listen":"prerequest","script":{"id":"8cee2713-a98d-4eb0-bd6f-91ff6ded596d","exec":["let idempotencyKey = pm.variables.replaceIn(\"2d8d6558-4b69-41df-9180-52f9fb31ce59\");","pm.environment.set(\"idempotencyKey\", idempotencyKey);"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"b4080848-b757-4633-b08d-11c0e5e3f54a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Idempotency-Key","value":"{{idempotencyKey}}","description":"<p>🔴 Required | A 36 characters unique key. Here we have used a <code>UUID</code> as an example.</p>\n","type":"text"},{"key":"Signature","value":"{{Signature}}","type":"text"},{"key":"Tonce","value":"{{Tonce}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"company\": {\n        \"name\": \"Test Company J\",\n        \"registration_date\": \"2023-07-30\",\n        \"expiry_date\": \"2025-07-30\",\n        \"company_place\": \"123 Business St, Business City\",\n        \"company_type\": \"1\",\n        \"business_reg_number\": \"TEST-DUP12345789\",\n        \"business_reg_address\": \"123 Business St, Business City\",\n        \"nature_of_business\": \"Software Development\",\n        \"directors\": [\n            {\n                \"name\": \"John Doe\",\n                \"email\": \"john.doe+7@example.com\",\n                \"passport_number\": \"P123456791\",\n                \"passport_expiry_date\": \"2026-07-30\",\n                \"gender\": \"male\",\n                \"nationality\": \"1\",\n                \"residence_country\": \"2\",\n                \"dob\": \"1990-07-30\"\n            },\n            {\n                \"name\": \"Jane Smith\",\n                \"email\": \"jane.smith+7@example.com\",\n                \"passport_number\": \"P12345679\",\n                \"passport_expiry_date\": \"2026-07-30\",\n                \"gender\": \"male\",\n                \"nationality\": \"1\",\n                \"residence_country\": \"2\",\n                \"dob\": \"1990-07-30\"\n            },\n            {\n                \"name\": \"Jane Smith\",\n                \"email\": \"jane.smith+7@example.com\",\n                \"passport_number\": \"P12345679\",\n                \"passport_expiry_date\": \"2026-07-30\",\n                \"gender\": \"male\",\n                \"nationality\": \"1\",\n                \"residence_country\": \"2\",\n                \"dob\": \"1990-07-30\"\n            }\n        ],\n        \"agree_declaration\": true\n    },\n    \"contact\": {\n        \"phone_country_code\": \"971\",\n        \"mobile_number\": \"1234567890\",\n        \"email_address\": \"contact+7@example.com\",\n        \"contact_person_name\": \"Alice Johnson 4\",\n        \"passport_number\": \"P12345679\",\n        \"passport_expiry_date\": \"2026-07-30\",\n        \"gender\": \"male\",\n        \"nationality\": \"1\",\n        \"residence_country\": \"2\",\n        \"dob\": \"1990-07-30\",\n        \"contact_person_designation\": \"Manager\"\n    },\n    \"account_currencies\": \"1,2,4\",\n    \"redirect_deep_link\": \"https://stage.monfibank.com/signin\"\n}\n","options":{"raw":{"language":"json"}}},"url":"https://stage-b2b-api.monfibank.com/api/v1/register/company","description":"<p>This endpoint is for registering an Company Client. It returns the newly registered <code>client_id</code> and <code>directors_ids Array</code>, which can be used in the subsequent request, i.e., upload the Onboarding Documents <code>register/upload-files</code>. We have used some identifiers in request payload which are described as below.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Identifier</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>company_type</td>\n<td>You will need to use the country ID from the endpoint <code>lookups/company-types</code> and use the corresponding country ID.</td>\n</tr>\n<tr>\n<td>nationality</td>\n<td>You will need to use the country ID from the endpoint <code>lookups/countries</code> and use the corresponding country ID.</td>\n</tr>\n<tr>\n<td>residence_country</td>\n<td>You will need to use the country ID from the endpoint <code>lookups/countries</code> and use the corresponding country ID.</td>\n</tr>\n<tr>\n<td>account_currencies</td>\n<td>These are comma separated currency ids, which can be referenced from <code>lookups/currencies</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><p>🔴 <em>Please note that all fields are mandatory.</em></p>\n","urlObject":{"path":["company"],"host":["https://stage-b2b-api.monfibank.com/api/v1/register"],"query":[],"variable":[]}},"response":[],"_postman_id":"b4080848-b757-4633-b08d-11c0e5e3f54a"},{"name":"Update Individual","event":[{"listen":"prerequest","script":{"id":"7117be1d-f1b5-44d9-b9fc-3c5d5a4da648","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"827bcf56-61c9-4c5d-b536-275196234125","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Signature","value":"{{Signature}}","type":"text"},{"key":"Tonce","value":"{{Tonce}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"client_id\": 703,\n    \"name\": \"John Doe 3\",\n    \"phone_country_code\": \"+971\",\n    \"mobile_number\": \"123456789\",\n    \"date_of_birth\": \"1990-01-01\",\n    \"nationality\": \"1\",\n    \"residence_country\": \"2\",\n    \"passport_number\": \"A123456789\",\n    \"passport_expiry_date\": \"2025-01-01\",\n    \"mailing_address\": \"123 Main St\",\n    \"gender\": \"male\",\n    \"occupation_business\": \"Software Developer 1\",\n    \"job_title\": \"Senior Developer\",\n    \"employer_business_name\": \"Tech Solutions Inc. 1\",\n    \"employer_address\": \"456 Tech Ave\",\n    \"applicant_annual_income_usd\": 75000,\n    \"agree_declaration\": true,\n    \"account_currencies\": \"1,2,3,4\",\n}","options":{"raw":{"language":"json"}}},"url":"https://stage-b2b-api.monfibank.com/api/v1/register/individual","description":"<p>This endpoint is used to update the client onboarding data, when a client is declined/rejected due to insufficient/wrong data or documents been submitted. We have used some identifiers in request payload which are described as below.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Identifier</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>client_id</td>\n<td>You will need to use the Client ID got from the endpoint <code>register/individual</code>.</td>\n</tr>\n<tr>\n<td>nationality</td>\n<td>You will need to use the country ID from the endpoint <code>lookups/countries</code> and use the corresponding country ID.</td>\n</tr>\n<tr>\n<td>residence_country</td>\n<td>You will need to use the country ID from the endpoint <code>lookups/countries</code> and use the corresponding country ID.</td>\n</tr>\n<tr>\n<td>account_currencies</td>\n<td>These are comma separated currency ids, which can be referenced from <code>lookups/currencies</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><p>🔴 <em>Please note that all fields are mandatory except the following.</em></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Optional Fields</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>gender</td>\n</tr>\n<tr>\n<td>occupation_business</td>\n</tr>\n<tr>\n<td>job_title</td>\n</tr>\n<tr>\n<td>employer_business_name</td>\n</tr>\n<tr>\n<td>employer_address</td>\n</tr>\n<tr>\n<td>applicant_annual_income_usd</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["individual"],"host":["https://stage-b2b-api.monfibank.com/api/v1/register"],"query":[],"variable":[]}},"response":[],"_postman_id":"827bcf56-61c9-4c5d-b536-275196234125"},{"name":"Update Company","event":[{"listen":"prerequest","script":{"id":"7e9a4d8e-94af-421f-9bf3-8a2d1d8f303c","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"a5f45da2-bba5-44b0-b261-e156f43791aa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Signature","value":"{{Signature}}","type":"text"},{"key":"Tonce","value":"{{Tonce}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"client_id\": 711,\n    \"company\": {\n        \"name\": \"Test Company C\",\n        \"registration_date\": \"2023-07-30\",\n        \"expiry_date\": \"2024-07-30\",\n        \"company_place\": \"123 Business St, Business City\",\n        \"company_type\": \"3\",\n        \"business_reg_address\": \"123 Business St, Business City\",\n        \"nature_of_business\": \"Software Development\",\n        \"directors\": [\n            {\n                \"director_id\": 30, // 🔴 Required | ID of the director you want to update. This `ID` can be obtained from the endpoint `register/company`.\n                \"name\": \"John Doe\",\n                \"email\": \"john.doe+9@example.com\",\n                \"passport_number\": \"P123456791\",\n                \"passport_expiry_date\": \"2026-07-30\",\n                \"gender\": \"male\",\n                \"nationality\": \"1\",\n                \"residence_country\": \"2\",\n                \"dob\": \"1990-07-30\"\n            },\n            {\n                \"director_id\": 31,\n                \"name\": \"Jane Smith00000\",\n                \"email\": \"jane.smith+10@example.com\",\n                \"passport_number\": \"P12345679\",\n                \"passport_expiry_date\": \"2026-07-30\",\n                \"gender\": \"male\",\n                \"nationality\": \"1\",\n                \"residence_country\": \"2\",\n                \"dob\": \"1990-07-30\"\n            },\n            { // 🔴 In case if you want to add new director during the update.\n                \"name\": \"Jane Smith\",\n                \"email\": \"jane.smith+12@example.com\",\n                \"passport_number\": \"P12345679\",\n                \"passport_expiry_date\": \"2026-07-30\",\n                \"gender\": \"male\",\n                \"nationality\": \"1\",\n                \"residence_country\": \"2\",\n                \"dob\": \"1990-07-30\"\n            }\n        ],\n        \"agree_declaration\": true\n    },\n    \"contact\": {\n        \"phone_country_code\": \"+971\",\n        \"mobile_number\": \"1234567890\",\n        \"contact_person_name\": \"Alice Johnson 3\",\n        \"passport_number\": \"P12345678\",\n        \"passport_expiry_date\": \"2025-07-30\",\n        \"gender\": \"male\",\n        \"nationality\": \"1\",\n        \"residence_country\": \"2\",\n        \"dob\": \"1990-07-30\",\n        \"contact_person_designation\": \"Manager\"\n    },\n    \"account_currencies\": \"1,2,3\"\n}\n","options":{"raw":{"language":"json"}}},"url":"https://stage-b2b-api.monfibank.com/api/v1/register/company","description":"<p>This endpoint is used to update the client onboarding data, when a client is declined/rejected due to insufficient/wrong data or documents been submitted. This endpoint will return <code>client_id</code> and <code>directors_ids Array</code>, which can be used in the</p>\n<p>We have used some identifiers in request payload which are described as below.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Identifier</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>client_id</td>\n<td>You will need to use the Client ID got from the endpoint <code>register/company</code>.</td>\n</tr>\n<tr>\n<td>company_type</td>\n<td>You will need to use the country ID from the endpoint <code>lookups/company-types</code> and use the corresponding country ID.</td>\n</tr>\n<tr>\n<td>nationality</td>\n<td>You will need to use the country ID from the endpoint <code>lookups/countries</code> and use the corresponding country ID.</td>\n</tr>\n<tr>\n<td>residence_country</td>\n<td>You will need to use the country ID from the endpoint <code>lookups/countries</code> and use the corresponding country ID.</td>\n</tr>\n<tr>\n<td>account_currencies</td>\n<td>These are comma separated currency ids, which can be referenced from <code>lookups/currencies</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><p>🔴 <em>Please note that all fields are mandatory.</em></p>\n","urlObject":{"path":["company"],"host":["https://stage-b2b-api.monfibank.com/api/v1/register"],"query":[],"variable":[]}},"response":[],"_postman_id":"a5f45da2-bba5-44b0-b261-e156f43791aa"},{"name":"Upload Onboarding files","event":[{"listen":"prerequest","script":{"id":"47907de3-4f9c-40bd-86f1-8fc164173535","exec":["var CryptoJS = require('crypto-js')","const tonce = generateTonce();","const path = '/api/v1/register/upload-files';","const secret = pm.variables.get('client_secret');","var formdata = pm.request.body.formdata.all()","var requestBodyObj = {} ","","formdata.forEach((item, key) => {","    var key = normalizeKey(item.key)","","    if (item.type === 'file') {","        if (expectsArray(item.key)) {","            if (requestBodyObj.hasOwnProperty(key)) {","                requestBodyObj[key].push({})","            } else {","                requestBodyObj[key] = [{}]","            }","        } else {","            requestBodyObj[key] = {}","        }","    } else {","        requestBodyObj[key] = item.value","    }","})","","requestBodyObj.tonce = tonce","console.log('Request Payload', requestBodyObj)","","var requestBodyString = JSON.stringify(requestBodyObj)","console.log('Request Payload stringify', requestBodyString)","","var encrypted = CryptoJS.HmacSHA512(path + '\\0' + requestBodyString, secret)","var signature = CryptoJS.enc.Base64.stringify(encrypted)","","pm.variables.set('Signature', signature)","pm.variables.set('Tonce', tonce)","","function expectsArray(key) {","    return key.endsWith(\"[]\");","}","","function normalizeKey(key) {","    return key.replace(/\\[\\]$/, '')","}","","function generateTonce() {","    return Math.floor(Date.now() * 1000)","}",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"e1ec6edf-9e4b-410e-8c22-17b8f39cbd25","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Signature","value":"{{Signature}}","type":"text"},{"key":"Tonce","value":"{{Tonce}}","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"client_id","value":"778","description":"<p>🔴 Required | ID of the client you want to close. This <code>ID</code> can be obtained from the endpoint <code>clients/profiles</code>.</p>\n","type":"text"},{"key":"file-10","description":"<p>Some files supports multiple file uploads and the API will accept it's value as a files-array and the <code>Key</code> as it is for this field; like <code>file-8[]</code>.</p>\n","type":"file","src":"/Users/jehangirwahid/Documents/Pictures/test_image_1.png"},{"key":"file-11","description":"<p>The key must be in the following format <code>file-&lt;file_id&gt;</code> the <code>file_id</code> is the <code>id</code> returned with each file in the <code>lookups/client-onboarding-files/{{type}}</code> API response.</p>\n","type":"file","src":"/Users/jehangirwahid/Documents/Pictures/test_image_1.png"},{"key":"file-12[]","description":"<p>Another file</p>\n","type":"file","src":["/Users/jehangirwahid/Documents/Pictures/test_image_2.png","/Users/jehangirwahid/Documents/Pictures/test_image_3.jpeg"]}]},"url":"https://stage-b2b-api.monfibank.com/api/v1/register/upload-files","description":"<p>This is for uploading the onboarding documents.</p>\n<p>🔴 <em>Please check the optionality of each file in the</em> <code>_lookups/client-onboarding-files/{{type}}_</code> <em>API response.</em></p>\n","urlObject":{"path":["upload-files"],"host":["https://stage-b2b-api.monfibank.com/api/v1/register"],"query":[],"variable":[]}},"response":[],"_postman_id":"e1ec6edf-9e4b-410e-8c22-17b8f39cbd25"}],"id":"8cb3e3b1-0913-44aa-b374-2577581a3cc7","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"c64a3026-c56f-45aa-bfd8-105cf55bee07"}},{"listen":"test","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"c70e0ee1-70b7-4e5a-b57d-dee07e095706"}}],"_postman_id":"8cb3e3b1-0913-44aa-b374-2577581a3cc7","description":""},{"name":"Clients","item":[{"name":"Accounts","item":[{"name":"All Accounts","id":"37075e97-f9c0-4324-b986-226b7335df5c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://stage-b2b-api.monfibank.com/api/v1/clients/accounts/{{client_id}}","description":"<p>This endpoint will list accounts for the given <code>client_id</code>. The <code>internal_account_number</code> is the Monfi account number.</p>\n<h4 id=\"required-field\">Required Field</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field Key</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>client_id</code></td>\n<td>🔴 Required - ID of the client, it can be obtained from the endpoint <code>clients/profiles</code>.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["accounts","{{client_id}}"],"host":["https://stage-b2b-api.monfibank.com/api/v1/clients"],"query":[],"variable":[]}},"response":[],"_postman_id":"37075e97-f9c0-4324-b986-226b7335df5c"},{"name":"Check Account","id":"fde5a7e0-9691-467d-a5cc-eb7cf0049444","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://stage-b2b-api.monfibank.com/api/v1/clients/accounts/check/{{account_number}}","description":"<p>This endpoint will check the account availablity and will return the account basic info associated with the mentioned <code>account_number</code>.</p>\n<h4 id=\"required-field\">Required Field</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field Key</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>account_number</code></td>\n<td>🔴 Required - Account Number. You will need to use the <code>account_number</code> from the endpoint <code>clients/accounts/{{client_id}}</code>.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["accounts","check","{{account_number}}"],"host":["https://stage-b2b-api.monfibank.com/api/v1/clients"],"query":[],"variable":[]}},"response":[],"_postman_id":"fde5a7e0-9691-467d-a5cc-eb7cf0049444"},{"name":"Account Details","id":"a117370a-c824-425e-87b3-4cc42764255e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://stage-b2b-api.monfibank.com/api/v1/clients/accounts/details/{{account_id}}","description":"<p>This endpoint will return the account details associated with the mentioned <code>account_id</code>. The <code>internal_account_number</code> is the Monfi account number.</p>\n<h4 id=\"required-field\">Required Field</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field Key</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>account_id</code></td>\n<td>🔴 Required - Account ID. You will need to use the <code>id</code> from the endpoint <code>clients/accounts/{{client_id}}</code>.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["accounts","details","{{account_id}}"],"host":["https://stage-b2b-api.monfibank.com/api/v1/clients"],"query":[],"variable":[]}},"response":[],"_postman_id":"a117370a-c824-425e-87b3-4cc42764255e"},{"name":"Transactions","event":[{"listen":"prerequest","script":{"id":"9b5af461-face-4c3e-931a-dbf0beb13cf9","exec":["var CryptoJS = require('crypto-js')","","const tonce = generateTonce()","const path = '/api/v1/clients/accounts/transactions'","const queryParams = pm.request.url.query.all()","console.log('Query Params: ', queryParams)","const secret = pm.variables.get('client_secret')","","// CHANGE PAYLOAD BELOW","var formdata = pm.request.body.formdata.all()","var requestBodyObj = {}","var queryParamsObj = {}","","formdata.forEach(item => {","    let key = normalizeKey(item.key)","","    if (item.type === 'file' && !requestBodyObj[key]) {","        requestBodyObj[key] = [{}]","    } else {","        requestBodyObj[key] = item.value","    }","})","","queryParams.forEach(item => {","    requestBodyObj[item.key] = item.value","})","","requestBodyObj.tonce = tonce","console.log('Request Payload', requestBodyObj)","","var requestBodyString = JSON.stringify(requestBodyObj)","console.log('Request Payload stringify', requestBodyString)","","var encrypted = CryptoJS.HmacSHA512(path + '\\0' + requestBodyString, secret)","var signature = CryptoJS.enc.Base64.stringify(encrypted)","","pm.variables.set('Signature', signature)","pm.variables.set('Tonce', tonce)","","function normalizeKey(key) {","    return key.replace(/\\[\\]$/, '')","}","","function generateTonce() {","    return Math.floor(Date.now() * 1000)","}","","let idempotencyKey = pm.variables.replaceIn(\"9d3e4484-909f-4b1d-aded-47b980193fc7\")","pm.environment.set('idempotencyKey', idempotencyKey)"],"type":"text/javascript","packages":{}}}],"id":"9451bcad-dee3-4645-928e-a38710c0ca10","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Signature","value":"{{Signature}}","type":"text"},{"key":"Tonce","value":"{{Tonce}}","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"account_id","value":"1527","description":"<p>🔴 Required | ID of the client account. You will need to use the account ID from the endpoint <code>clients/accounts/{{client_id}}</code>.</p>\n","type":"text"},{"key":"from_date","value":"2025-07-09","description":"<p>🔴 Required | Date of transaction (yyyy-mm-dd), please pass current or past date, future dates are not accepted</p>\n","type":"text"},{"key":"to_date","value":"2025-07-09","description":"<p>🔴 Required | Date of transaction (yyyy-mm-dd), please pass current or past date, future dates are not accepted</p>\n","type":"text"}]},"url":"https://stage-b2b-api.monfibank.com/api/v1/clients/accounts/transactions?page=1","description":"<p>This endpoint is for listing the transaction for the provided <code>account_id</code> and with in the provided <code>from_date</code> and <code>to_date</code> date-range.</p>\n<p>If the resulted records are more than 10 then you can use the <code>next_page_url</code> parameter's value in the response to load records from the next page.</p>\n<p>To create a signature when you use the <code>next_page_url</code> parameter's value as API URL;</p>\n<ul>\n<li><p>The path will remain the same, like <code>/api/v1/clients/accounts/transactions</code> in this case.</p>\n</li>\n<li><p>Add the <code>query param</code> to the <code>requestBody</code> just before adding <code>tonce</code> and <code>stringifying</code> the request body, like if your <code>next_page_url</code> is for the 2nd page then your request-body before stringifying will be like the following example;</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">{\n    account_id: \"1196\"\n    from_date: \"2025-02-26\"\n    to_date: \"2025-03-26\"\n    page: \"2\"\n    tonce: 1742978314697000\n}\n\n</code></pre>\n","urlObject":{"path":["accounts","transactions"],"host":["https://stage-b2b-api.monfibank.com/api/v1/clients"],"query":[{"key":"page","value":"1"}],"variable":[]}},"response":[],"_postman_id":"9451bcad-dee3-4645-928e-a38710c0ca10"},{"name":"Transaction Details","id":"a53fbe9d-7a0b-4363-8f9a-d003d6752b27","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://stage-b2b-api.monfibank.com/api/v1/clients/accounts/transactions/{{transaction_id}}","description":"<p>This endpoint will get the transaction details by <code>transaction_id</code>.</p>\n<h4 id=\"required-field\">Required Field</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field Key</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>transaction_id</code></td>\n<td>🔴 Required - Account ID. You will need to use the transaction ID from the endpoint <code>clients/account/transactions</code> or once you create a transaction, you will get the transaction ID in the response as <code>trn_id</code>.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["accounts","transactions","{{transaction_id}}"],"host":["https://stage-b2b-api.monfibank.com/api/v1/clients"],"query":[],"variable":[]}},"response":[],"_postman_id":"a53fbe9d-7a0b-4363-8f9a-d003d6752b27"},{"name":"Deposit","event":[{"listen":"prerequest","script":{"id":"5d97d4c9-2b2d-4826-9958-c41fe4cedb34","exec":["var CryptoJS = require('crypto-js')","","const tonce = generateTonce();","const path = '/api/v1/clients/accounts/deposit';","const secret = pm.variables.get('client_secret');","","// CHANGE PAYLOAD BELOW","var formdata = pm.request.body.formdata.all()","var requestBodyObj = {} ","","formdata.forEach(item => {","    let key = normalizeKey(item.key)","","    if (item.type === 'file' && !item.src || (Array.isArray(item.src) && item.src.length === 0)) {","        return","    }","","    if (item.type === 'file' && !requestBodyObj[key]) {","        requestBodyObj[key] = [{}]","    } else {","        requestBodyObj[key] = item.value","    }","})","","requestBodyObj.tonce = tonce","console.log('Request Payload', requestBodyObj);","","var requestBodyString = JSON.stringify(requestBodyObj);","console.log('Request Payload stringify', requestBodyString);","","var encrypted = CryptoJS.HmacSHA512(path + '\\0' + requestBodyString, secret);","var signature = CryptoJS.enc.Base64.stringify(encrypted);","","pm.variables.set('Signature', signature);","pm.variables.set('Tonce', tonce)","","function normalizeKey(key) {","    return key.replace(/\\[\\]$/, '')","}","","function generateTonce() {","    return Math.floor(Date.now() * 1000)","}","","let idempotencyKey = pm.variables.replaceIn(\"1e18e7af-5e8d-4336-ac7e-02fafa4c8d4d\");","pm.environment.set('idempotencyKey', idempotencyKey);"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"dc78b5fe-6228-4bca-b23b-22a4f103fec7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Idempotency-Key","value":"{{idempotencyKey}}","description":"<p>🔴 Required | A 36 characters unique key. Here we have used a <code>UUID</code> as an example.</p>\n","type":"text"},{"key":"Signature","value":"{{Signature}}","type":"text"},{"key":"Tonce","value":"{{Tonce}}","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"account_id","value":"1527","type":"text","description":"<p>🔴 Required | ID of the client account. You will need to use the account ID from the endpoint <code>clients/accounts/{{client_id}}</code>.</p>\n"},{"key":"amount","value":"23012.12","type":"text","description":"<p>Amount for the deposit</p>\n"},{"key":"transaction_date","value":"2025-07-09","type":"text","description":"<p>Date of transaction (yyyy-mm-dd), please pass current or past date, future dates are not accepted</p>\n"},{"key":"remarks","value":"test transaction with png","type":"text","description":"<p>Remarks for the deposit, maximum 200 characters</p>\n"},{"key":"supporting_documents[]","value":"","description":"<p>Supporting documents for the transaction.</p>\n","type":"text","uuid":"e231592e-1fee-4bb5-9bc1-76033ab81b44"}]},"url":"https://stage-b2b-api.monfibank.com/api/v1/clients/accounts/deposit","description":"<p>This endpoint is used to perform a deposit transaction, which credits the specified amount to the specified account. The response returns the newly created transaction ID <code>trn_id</code> along with <code>SSI</code> details for <strong>accounts without IBAN</strong>, or the <code>IBAN</code> for accounts that have one.</p>\n","urlObject":{"path":["accounts","deposit"],"host":["https://stage-b2b-api.monfibank.com/api/v1/clients"],"query":[],"variable":[]}},"response":[],"_postman_id":"dc78b5fe-6228-4bca-b23b-22a4f103fec7"},{"name":"Internal","event":[{"listen":"prerequest","script":{"id":"67b05213-18f6-43e3-9e46-75158ba88d52","exec":["var CryptoJS = require('crypto-js')","","const tonce = generateTonce();","const path = '/api/v1/clients/accounts/internal';","const secret = pm.variables.get('client_secret');","","// CHANGE PAYLOAD BELOW","var formdata = pm.request.body.formdata.all()","var requestBodyObj = {} ","","formdata.forEach(item => {","    let key = normalizeKey(item.key)","","    if (item.type === 'file' && !item.src || (Array.isArray(item.src) && item.src.length === 0)) {","        return","    }","","    if (item.type === 'file' && !requestBodyObj[key]) {","        requestBodyObj[key] = [{}]","    } else {","        requestBodyObj[key] = item.value","    }","})","","requestBodyObj.tonce = tonce","console.log('Request Payload', requestBodyObj);","","var requestBodyString = JSON.stringify(requestBodyObj);","console.log('Request Payload stringify', requestBodyString);","","var encrypted = CryptoJS.HmacSHA512(path + '\\0' + requestBodyString, secret);","var signature = CryptoJS.enc.Base64.stringify(encrypted);","","pm.variables.set('Signature', signature);","pm.variables.set('Tonce', tonce)","","function normalizeKey(key) {","    return key.replace(/\\[\\]$/, '')","}","","function generateTonce() {","    return Math.floor(Date.now() * 1000)","}","","let idempotencyKey = pm.variables.replaceIn(\"22f5e21a-d063-4c34-a566-7032e7929eb2\");","pm.environment.set('idempotencyKey', idempotencyKey);"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"dcba4820-44e4-42c5-a8ce-a3ee1b060847","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Idempotency-Key","value":"{{idempotencyKey}}","description":"<p>🔴 Required | A 36 characters unique key. Here we have used a <code>UUID</code> as an example.</p>\n","type":"text"},{"key":"Signature","value":"{{Signature}}","type":"text"},{"key":"Tonce","value":"{{Tonce}}","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"account_id","value":"1965","description":"<p>🔴 Required | ID of the client account. You will need to use the account ID from the endpoint <code>clients/accounts/{{client_id}}</code>.</p>\n","type":"text"},{"key":"amount","value":"335","description":"<p>🔴 Required | Amount for the deposit</p>\n","type":"text"},{"key":"transaction_date","value":"2025-10-15","description":"<p>Date of transaction (yyyy-mm-dd), please pass current or past date, future dates are not accepted</p>\n","type":"text"},{"key":"remarks","value":"transfer for business purposes","description":"<p>Remarks for the deposit, maximum 200 characters</p>\n","type":"text"},{"key":"account_number","value":"135500757600","description":"<p>🔴 Required | Account Number. You will need to use the <code>account_number</code> from the endpoint <code>clients/accounts/{{client_id}}</code>.</p>\n","type":"text"},{"key":"supporting_documents[]","description":"<p>Supporting documents for the transaction.</p>\n","type":"file","value":null}]},"url":"https://stage-b2b-api.monfibank.com/api/v1/clients/accounts/internal","description":"<p>This endpoint is for internal transfer transaction, which will debit the account for which the <code>account_id</code> is mentioned and will credit the mentioned amount to the account for which the <code>account_number</code> is mentioned. This request will return the newly created transaction id <code>trn_id</code>.</p>\n","urlObject":{"path":["accounts","internal"],"host":["https://stage-b2b-api.monfibank.com/api/v1/clients"],"query":[],"variable":[]}},"response":[],"_postman_id":"dcba4820-44e4-42c5-a8ce-a3ee1b060847"},{"name":"Transfer","event":[{"listen":"prerequest","script":{"id":"16404652-d728-4338-9a0d-1b2ece701681","exec":["var CryptoJS = require('crypto-js')","","const tonce = generateTonce();","const path = '/api/v1/clients/accounts/transfer';","const secret = pm.variables.get('client_secret');","","// CHANGE PAYLOAD BELOW","var formdata = pm.request.body.formdata.all()","var requestBodyObj = {} ","","formdata.forEach(item => {","    let key = normalizeKey(item.key)","","    if (item.type === 'file' && !item.src || (Array.isArray(item.src) && item.src.length === 0)) {","        return","    }","","    if (item.type === 'file' && !requestBodyObj[key]) {","        requestBodyObj[key] = [{}]","    } else {","        requestBodyObj[key] = item.value","    }","})","","requestBodyObj.tonce = tonce","console.log('Request Payload', requestBodyObj);","","var requestBodyString = JSON.stringify(requestBodyObj);","console.log('Request Payload stringify', requestBodyString);","","var encrypted = CryptoJS.HmacSHA512(path + '\\0' + requestBodyString, secret);","var signature = CryptoJS.enc.Base64.stringify(encrypted);","","pm.variables.set('Signature', signature);","pm.variables.set('Tonce', tonce)","","function normalizeKey(key) {","    return key.replace(/\\[\\]$/, '')","}","","function generateTonce() {","    return Math.floor(Date.now() * 1000)","}","","let idempotencyKey = pm.variables.replaceIn(\"864bb338-b8e8-467c-8331-0e013b38b3bf\");","pm.environment.set('idempotencyKey', idempotencyKey);"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"b074d914-afc5-4311-8ba9-84d47eb382e8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Idempotency-Key","value":"{{idempotencyKey}}","description":"<p>🔴 Required | A 36 characters unique key. Here we have used a <code>UUID</code> as an example.</p>\n","type":"text"},{"key":"Signature","value":"{{Signature}}","type":"text"},{"key":"Tonce","value":"{{Tonce}}","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"account_id","value":"709","description":"<p>🔴 Required | ID of the client account. You will need to use the account ID from the endpoint <code>clients/accounts/{{client_id}}</code>.</p>\n","type":"text"},{"key":"amount","value":"5000","description":"<p>🔴 Required | Amount for the transfer</p>\n","type":"text"},{"key":"transaction_date","value":"2025-10-29","description":"<p>Date of transaction (yyyy-mm-dd), please pass current or past date, future dates are not accepted</p>\n","type":"text"},{"key":"remarks","value":"Transfer for house rent","description":"<p>Remarks for the transfer, maximum 200 characters</p>\n","type":"text"},{"key":"supporting_documents[]","description":"<p>Supporting documents for the transaction</p>\n","type":"file","src":"/Users/jehangirwahid/Documents/Pictures/test_image_1.png"},{"key":"beneficiary_id","value":"135","description":"<p>🔴 Required | ID of the beneficiary. You will need to use the <code>ID</code> from the endpoint <code>clients/beneficiaries/list</code>.</p>\n","type":"text"},{"key":"corresponding_bank_name","value":"Emirates NBD","description":"<p>Name of the corresponding bank</p>\n","type":"text"},{"key":"corresponding_bank_swift_code","value":"NBD0343","description":"<p>Swift code of the corresponding bank</p>\n","type":"text"},{"key":"corresponding_bank_address","value":"Business Bay, Dubai, UAE","description":"<p>Address of the corresponding bank</p>\n","type":"text"}]},"url":"https://stage-b2b-api.monfibank.com/api/v1/clients/accounts/transfer","description":"<p>This endpoint is for external transfer transaction, which will debit the mentioned amount from the mentioned account. This request will return the newly created transaction id <code>trn_id</code>.</p>\n","urlObject":{"path":["accounts","transfer"],"host":["https://stage-b2b-api.monfibank.com/api/v1/clients"],"query":[],"variable":[]}},"response":[],"_postman_id":"b074d914-afc5-4311-8ba9-84d47eb382e8"},{"name":"PDF Statement","id":"55f22636-c963-4a13-9374-568585c9b3d6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://stage-b2b-api.monfibank.com/api/v1/clients/accounts/statement/pdf/{{account_id}}/{{period}}","description":"<p>This endpoint will return the account statement for the mentioned account for the mentioned period of months.</p>\n<h4 id=\"required-fields\">Required Fields</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field Key</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>account_id</code></td>\n<td>🔴 Required - Account ID for the statement. You will need to use the account ID from the endpoint <code>clients/accounts/{{client_id}}</code>.</td>\n</tr>\n<tr>\n<td><code>period</code></td>\n<td>🔴 Required - Period of months for the account statement (1,3,6).</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["accounts","statement","pdf","{{account_id}}","{{period}}"],"host":["https://stage-b2b-api.monfibank.com/api/v1/clients"],"query":[],"variable":[]}},"response":[],"_postman_id":"55f22636-c963-4a13-9374-568585c9b3d6"}],"id":"1bd54a91-6fb8-46e5-bec2-5aff44498711","_postman_id":"1bd54a91-6fb8-46e5-bec2-5aff44498711","description":""},{"name":"Beneficiaries","item":[{"name":"Add","event":[{"listen":"prerequest","script":{"id":"3bc2c509-bef0-4933-96da-ae6b76d49bcb","exec":["var CryptoJS = require('crypto-js')","","const tonce = generateTonce();","const path = '/api/v1/clients/beneficiaries/add';","const secret = pm.variables.get('client_secret');","","// CHANGE PAYLOAD BELOW","var formdata = pm.request.body.formdata.all()","var requestBodyObj = {} ","","formdata.forEach(item => {","    let key = normalizeKey(item.key)","","    if (item.type === 'file' && !item.src || (Array.isArray(item.src) && item.src.length === 0)) {","        return","    }","","    if (item.type === 'file' && !requestBodyObj[key]) {","        requestBodyObj[key] = [{}]","    } else {","        requestBodyObj[key] = item.value","    }","})","","requestBodyObj.tonce = tonce","console.log('Request Payload', requestBodyObj);","","var requestBodyString = JSON.stringify(requestBodyObj);","console.log('Request Payload stringify', requestBodyString);","","var encrypted = CryptoJS.HmacSHA512(path + '\\0' + requestBodyString, secret);","var signature = CryptoJS.enc.Base64.stringify(encrypted);","","pm.variables.set('Signature', signature);","pm.variables.set('Tonce', tonce)","","function normalizeKey(key) {","    return key.replace(/\\[\\]$/, '')","}","","function generateTonce() {","    return Math.floor(Date.now() * 1000)","}","","let idempotencyKey = pm.variables.replaceIn(\"a1c14ad3-b0a1-4fb3-968c-b0826e9efd80\");","pm.environment.set('idempotencyKey', idempotencyKey);"],"type":"text/javascript","packages":{}}}],"id":"720b6346-cd7a-46ec-91a6-201aacb5ec1c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Idempotency-Key","value":"{{idempotencyKey}}","description":"<p>🔴 Required | A 36 characters unique key. Here we have used a <code>UUID</code> as an example.</p>\n","type":"text"},{"key":"Signature","value":"{{Signature}}","type":"text"},{"key":"Tonce","value":"{{Tonce}}","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"client_id","value":"966","description":"<p>🔴 Required | ID of the client you want to add beneficiary for. This <code>ID</code> can be obtained from the endpoint <code>clients/profiles</code>.</p>\n","type":"text"},{"key":"name","value":"Mr Khan","description":"<p>🔴 Required | Name of the beneficiary</p>\n","type":"text"},{"key":"account_number","value":"2000300004581","description":"<p>Account number of the beneficiary</p>\n","type":"text"},{"key":"iban","value":"AE330000342581","description":"<p>IBAN of the beneficiary</p>\n","type":"text"},{"key":"address","value":"First Al Khail Road, Dubai, United Arab Emirates","description":"<p>Address of the beneficiary</p>\n","type":"text"},{"key":"bank_name","value":"Emirates NBD","description":"<p>🔴 Required | Bank name of the beneficiary</p>\n","type":"text"},{"key":"bank_address","value":"Business Bay, Dubai, UAE","description":"<p>🔴 Required | Address of the beneficiary bank</p>\n","type":"text"},{"key":"swift_code","value":"NBD0343","description":"<p>Swift code of the beneficiary bank</p>\n","type":"text"}]},"url":"https://stage-b2b-api.monfibank.com/api/v1/clients/beneficiaries/add","description":"<p>You can add beneficiaries for the logged in user via this endpoint and it will be linked to the provided client_id.</p>\n","urlObject":{"path":["beneficiaries","add"],"host":["https://stage-b2b-api.monfibank.com/api/v1/clients"],"query":[],"variable":[]}},"response":[],"_postman_id":"720b6346-cd7a-46ec-91a6-201aacb5ec1c"},{"name":"Delete","id":"a98dade9-530a-4e18-a95a-a743922e9163","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://stage-b2b-api.monfibank.com/api/v1/clients/beneficiaries/{{beneficiary_id}}/{{client_id}}","description":"<p>Delete the mentioned beneficiary for the mentioned client via this endpoint.</p>\n<h4 id=\"required-fields\">Required Fields</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field Key</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>beneficiary_id</code></td>\n<td>🔴 Required - ID of the beneficiary. You will need to use the <code>ID</code> from the endpoint <code>clients/beneficiaries/list</code>.</td>\n</tr>\n<tr>\n<td><code>client_id</code></td>\n<td>🔴 Required - ID of the client, it can be obtained from the endpoint <code>clients/profiles</code>.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["beneficiaries","{{beneficiary_id}}","{{client_id}}"],"host":["https://stage-b2b-api.monfibank.com/api/v1/clients"],"query":[],"variable":[]}},"response":[],"_postman_id":"a98dade9-530a-4e18-a95a-a743922e9163"},{"name":"Get","id":"bf098ca4-0c7c-4423-af5c-4f419736cd04","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://stage-b2b-api.monfibank.com/api/v1/clients/beneficiaries/{{beneficiary_id}}/{{client_id}}","description":"<p>This endpoint will return the beneficiary information based on the beneficiary ID provided in the request body.</p>\n<h4 id=\"required-fields\">Required Fields</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field Key</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>beneficiary_id</code></td>\n<td>🔴 Required - ID of the beneficiary. You will need to use the <code>ID</code> from the endpoint <code>clients/beneficiaries/list</code>.</td>\n</tr>\n<tr>\n<td><code>client_id</code></td>\n<td>🔴 Required - ID of the client, it can be obtained from the endpoint <code>clients/profiles</code>.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["beneficiaries","{{beneficiary_id}}","{{client_id}}"],"host":["https://stage-b2b-api.monfibank.com/api/v1/clients"],"query":[],"variable":[]}},"response":[],"_postman_id":"bf098ca4-0c7c-4423-af5c-4f419736cd04"},{"name":"Update","event":[{"listen":"prerequest","script":{"exec":["let idempotencyKey = pm.variables.replaceIn(\"1b8552e4-d58a-490b-8a2c-32b77107b42b\");","pm.environment.set(\"idempotencyKey\", idempotencyKey);"],"type":"text/javascript","packages":{},"id":"9844a049-959e-4ec4-b5f3-1b8637347297"}}],"id":"0147f188-9b4f-43b9-bd2f-b8418a6a77c4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Idempotency-Key","value":"{{idempotencyKey}}","description":"<p>🔴 Required | A 36 characters unique key. Here we have used a <code>UUID</code> as an example.</p>\n","type":"text"},{"key":"Signature","value":"{{Signature}}","type":"text"},{"key":"Tonce","value":"{{Tonce}}","type":"text"}],"body":{"mode":"raw","raw":"\n{\n    \"beneficiary_id\":152,\n    \"client_id\":701,\n    \"name\":\"Mr Khan 323 AAA\",\n    \"account_number\":\"\",\n    \"iban\":\"AE33000034258\",\n    \"address\":\"First Al Khail Road, Dubai, United Arab Emirates 323\",\n    \"bank_name\":\"Emirates NBD 323\",\n    \"bank_address\":\"Business Bay, Dubai, UAE 323\",\n    \"swift_code\":\"NBD0343\"\n}","options":{"raw":{"language":"json"}}},"url":"https://stage-b2b-api.monfibank.com/api/v1/clients/beneficiaries","description":"<p>This endpoint will update the beneficiary information, based on the beneficiary ID provided in the request body, if there are no transactions against this beneficiary.</p>\n<h4 id=\"required-fields\">Required Fields</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field Key</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>beneficiary_id</td>\n<td>🔴 Required - ID of the beneficiary. You will need to use the <code>ID</code> from the endpoint <code>clients/beneficiaries/list</code>.</td>\n</tr>\n<tr>\n<td>client_id</td>\n<td>🔴 Required - ID of the client, it can be obtained from the endpoint <code>clients/profiles</code>.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["beneficiaries"],"host":["https://stage-b2b-api.monfibank.com/api/v1/clients"],"query":[],"variable":[]}},"response":[],"_postman_id":"0147f188-9b4f-43b9-bd2f-b8418a6a77c4"},{"name":"List","id":"8b2b57e0-3eda-4e55-8661-81a6aad03cc6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://stage-b2b-api.monfibank.com/api/v1/clients/beneficiaries/list","description":"<p>This endpoint will return the list of beneficiaries for the logged in user.</p>\n","urlObject":{"path":["beneficiaries","list"],"host":["https://stage-b2b-api.monfibank.com/api/v1/clients"],"query":[],"variable":[]}},"response":[],"_postman_id":"8b2b57e0-3eda-4e55-8661-81a6aad03cc6"},{"name":"List By Search Criteria","event":[{"listen":"prerequest","script":{"exec":["var CryptoJS = require(\"crypto-js\")","var path = \"/api/v1/clients/beneficiaries/list\"","","// CHANGE PAYLOAD BELOW","var formdata = pm.request.body.formdata.all()","var requestBodyObj = {}","","formdata.forEach(item => {","    requestBodyObj[item.key] = item.value","})","","var secret = pm.variables.get(\"client_secret\");","","pm.variables.set(\"Tonce\", generateTonce())","","console.log(pm.variables.get(\"Tonce\"))","","requestBodyObj.tonce = pm.variables.get(\"Tonce\")","","console.log('Request Payload', requestBodyObj);","","var requestBodyString = JSON.stringify(requestBodyObj);","","console.log('Request Payload stringify', requestBodyString);","","var hmac = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA512, secret);","","hmac.update(path + \"\\0\" + requestBodyString);","","hmac = CryptoJS.enc.Base64.stringify(hmac.finalize())","","pm.variables.set(\"Signature\", hmac);","","// pm.variables.set(\"post_body\", requestBodyString);","","function generateTonce() {","    return Math.floor(Date.now() * 1000)","}","","let idempotencyKey = pm.variables.replaceIn(\"70d8784f-2182-412f-b016-b28e96413b78\");","pm.environment.set(\"idempotencyKey\", idempotencyKey);"],"type":"text/javascript","packages":{},"id":"949f2077-c37b-47b2-8737-81525a783802"}}],"id":"e6a728eb-6ea8-4bee-8199-7db6354af9e4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Signature","value":"{{Signature}}","type":"text"},{"key":"Tonce","value":"{{Tonce}}","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"client_id","value":"701","description":"<p>ID of the client you want to list beneficiary for. This <code>ID</code> can be obtained from the endpoint <code>clients/profiles/{{client_id}}</code>.</p>\n","type":"text"},{"key":"iban","value":"AE33000034258","description":"<p>Exact <code>IBAN</code> of the target beneficiary. It will add a filter to the search with <code>&amp;</code> operation.</p>\n","type":"text"},{"key":"account_number","value":"","description":"<p>Exact <code>Account Number</code> of the target beneficiary. It will add a filter to the search with <code>&amp;</code> operation.</p>\n","type":"text"}]},"url":"https://stage-b2b-api.monfibank.com/api/v1/clients/beneficiaries/list","description":"<p>This endpoint will return the list of beneficiaries based on the provided search criteria.</p>\n","urlObject":{"path":["beneficiaries","list"],"host":["https://stage-b2b-api.monfibank.com/api/v1/clients"],"query":[],"variable":[]}},"response":[],"_postman_id":"e6a728eb-6ea8-4bee-8199-7db6354af9e4"}],"id":"4d60986d-3a25-462f-b2ea-b325cf1616d0","_postman_id":"4d60986d-3a25-462f-b2ea-b325cf1616d0","description":""},{"name":"Profile","item":[{"name":"Profile by ID","id":"128b8b57-0076-41cf-a927-90ceb30e2e9a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://stage-b2b-api.monfibank.com/api/v1/clients/profiles/{{client_id}}","description":"<p>This endpoint will get the client profile details by <code>client_id</code>.</p>\n<h4 id=\"required-field\">Required Field</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field Key</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>client_id</code></td>\n<td>🔴 Required - ID of the client, it can be obtained from the endpoint <code>clients/profiles</code>.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["profiles","{{client_id}}"],"host":["https://stage-b2b-api.monfibank.com/api/v1/clients"],"query":[],"variable":[]}},"response":[],"_postman_id":"128b8b57-0076-41cf-a927-90ceb30e2e9a"},{"name":"Profiles","id":"ac07d566-5c8d-4407-9c5b-1a9b4b6181e7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://stage-b2b-api.monfibank.com/api/v1/clients/profiles","description":"<p>This endpoint will get all of the linked clients <code>id</code> , <code>name</code>, and <code>status</code>.</p>\n","urlObject":{"path":["profiles"],"host":["https://stage-b2b-api.monfibank.com/api/v1/clients"],"query":[],"variable":[]}},"response":[],"_postman_id":"ac07d566-5c8d-4407-9c5b-1a9b4b6181e7"}],"id":"e7289b72-1c14-4bfd-bf97-d1c4bd32985e","_postman_id":"e7289b72-1c14-4bfd-bf97-d1c4bd32985e","description":""},{"name":"Service Requests","item":[{"name":"Close Account","event":[{"listen":"prerequest","script":{"id":"7624a6a7-29e2-4d48-ab79-7cf56ba39580","exec":["let idempotencyKey = pm.variables.replaceIn(\"513cf0dc-4792-4694-abf0-8fb973dce279\");","pm.environment.set(\"idempotencyKey\", idempotencyKey);"],"type":"text/javascript","packages":{}}}],"id":"db4c7771-d8be-448f-9f14-786c92bbc3da","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Idempotency-Key","value":"{{idempotencyKey}}","description":"<p>🔴 Required | A 36 characters unique key. Here we have used a <code>UUID</code> as an example.</p>\n","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"client_id","value":"83","description":"<p>🔴 Required | ID of the client you want to close. This <code>ID</code> can be obtained from the endpoint <code>client/profiles</code>.</p>\n","type":"text"}]},"url":"https://stage-b2b-api.monfibank.com/api/v1/client/service-requests/close-account","description":"<p>This endpoint will create a Close-Account request for the mentioned Client.</p>\n","urlObject":{"path":["service-requests","close-account"],"host":["https://stage-b2b-api.monfibank.com/api/v1/client"],"query":[],"variable":[]}},"response":[],"_postman_id":"db4c7771-d8be-448f-9f14-786c92bbc3da"},{"name":"New Card","event":[{"listen":"prerequest","script":{"id":"22b32907-98b5-4606-9f12-334688e0a70d","exec":["let idempotencyKey = pm.variables.replaceIn(\"e16fdfa7-526f-4a63-857d-2ea89e94594b\");","pm.environment.set(\"idempotencyKey\", idempotencyKey);"],"type":"text/javascript","packages":{}}}],"id":"69d6879d-0a27-435f-8daf-c0fcf5089eb6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Idempotency-Key","value":"{{idempotencyKey}}","description":"<p>🔴 Required | A 36 characters unique key. Here we have used a <code>UUID</code> as an example.</p>\n","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"client_id","value":"83","description":"<p>🔴 Required | ID of the client you want to add new Card. This <code>ID</code> can be obtained from the endpoint <code>client/profiles</code>.</p>\n","type":"text"}]},"url":"https://stage-b2b-api.monfibank.com/api/v1/client/service-requests/new-card","description":"<p>This endpoint is used to create a Service request for new Card.</p>\n","urlObject":{"path":["service-requests","new-card"],"host":["https://stage-b2b-api.monfibank.com/api/v1/client"],"query":[],"variable":[]}},"response":[],"_postman_id":"69d6879d-0a27-435f-8daf-c0fcf5089eb6"},{"name":"New Currency","event":[{"listen":"prerequest","script":{"id":"f11a4137-6ff4-49d4-a01c-40a9d01fe5e6","exec":["let idempotencyKey = pm.variables.replaceIn(\"42c42d0c-ae22-4d27-8348-e262275792b3\");","pm.environment.set(\"idempotencyKey\", idempotencyKey);"],"type":"text/javascript","packages":{}}}],"id":"9c01b08c-9593-4761-a670-0a5a0a57065c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Idempotency-Key","value":"{{idempotencyKey}}","description":"<p>🔴 Required | A 36 characters unique key. Here we have used a <code>UUID</code> as an example.</p>\n","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"client_id","value":"83","description":"<p>🔴 Required | ID of the client you want to add new currency account. This <code>ID</code> can be obtained from the endpoint <code>client/profiles</code>.</p>\n","type":"text"},{"key":"currency_id","value":"4","description":"<p>🔴 Required | ID of the currency you want to add to the client. This <code>id</code> can be obtained from the endpoint <code>lookups/currencies</code></p>\n","type":"text"}]},"url":"https://stage-b2b-api.monfibank.com/api/v1/client/service-requests/new-currency","description":"<p>It is used to create a Service Request for new currency Account, which the client have not in the existing accounts neither the client already applied for.</p>\n","urlObject":{"path":["service-requests","new-currency"],"host":["https://stage-b2b-api.monfibank.com/api/v1/client"],"query":[],"variable":[]}},"response":[],"_postman_id":"9c01b08c-9593-4761-a670-0a5a0a57065c"},{"name":"Service Requests","id":"c55b0235-b733-48ba-a362-d177a50b22bb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://stage-b2b-api.monfibank.com/api/v1/client/service-requests","description":"<p>It is used to list all of the Service Requests the client applied for.</p>\n","urlObject":{"path":["service-requests"],"host":["https://stage-b2b-api.monfibank.com/api/v1/client"],"query":[],"variable":[]}},"response":[],"_postman_id":"c55b0235-b733-48ba-a362-d177a50b22bb"}],"id":"159ca7c4-d399-4282-b8da-8c3f981c8baf","description":"<p>Service Requests are used to put a request for adding more services to the profile.</p>\n","_postman_id":"159ca7c4-d399-4282-b8da-8c3f981c8baf"}],"id":"3d4a8c36-a574-4da0-aeb1-e8c6555006de","_postman_id":"3d4a8c36-a574-4da0-aeb1-e8c6555006de","description":""},{"name":"Lookups","item":[{"name":"Company Types","id":"7e0c53bf-e1a1-426b-bb17-35c80912ac47","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://stage-b2b-api.monfibank.com/api/v1/lookups/company-types","description":"<p>This endpoint will list the Company Types used in the <code>register/company</code> endpoint.</p>\n","urlObject":{"path":["company-types"],"host":["https://stage-b2b-api.monfibank.com/api/v1/lookups"],"query":[],"variable":[]}},"response":[],"_postman_id":"7e0c53bf-e1a1-426b-bb17-35c80912ac47"},{"name":"Countries","id":"7d16c7ce-3522-46e2-af5c-bf4aeaca18d8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://stage-b2b-api.monfibank.com/api/v1/lookups/countries","description":"<p>This endpoint lists the countries and necessary details, which can be used in multiple endpoints.</p>\n","urlObject":{"path":["countries"],"host":["https://stage-b2b-api.monfibank.com/api/v1/lookups"],"query":[],"variable":[]}},"response":[],"_postman_id":"7d16c7ce-3522-46e2-af5c-bf4aeaca18d8"},{"name":"Currencies","id":"829cf37a-84e1-4ec8-ba53-6d9d3a772bb0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://stage-b2b-api.monfibank.com/api/v1/lookups/currencies","description":"<p>This endpoint lists the currencies and necessary details, which can be used in multiple endpoints.</p>\n","urlObject":{"path":["currencies"],"host":["https://stage-b2b-api.monfibank.com/api/v1/lookups"],"query":[],"variable":[]}},"response":[],"_postman_id":"829cf37a-84e1-4ec8-ba53-6d9d3a772bb0"},{"name":"Onboarding Files","id":"971d73c7-a2fa-4815-ad80-7570cfc250c2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://stage-b2b-api.monfibank.com/api/v1/lookups/client-onboarding-files/{{type}}","description":"<p>This endpoint lists the Onboarding Files and necessary details, which can be used to upload the Onboarding Documents after registering a client.</p>\n<h4 id=\"required-field\">Required Field</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field Key</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>type</code></td>\n<td>🔴 Required - Type of the client. Value could be <code>individual</code> or <code>company</code></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["client-onboarding-files","{{type}}"],"host":["https://stage-b2b-api.monfibank.com/api/v1/lookups"],"query":[],"variable":[]}},"response":[],"_postman_id":"971d73c7-a2fa-4815-ad80-7570cfc250c2"}],"id":"5ce8fa03-636b-4328-8b5c-25f547620076","_postman_id":"5ce8fa03-636b-4328-8b5c-25f547620076","description":""},{"name":"User","item":[{"name":"Notifications","item":[{"name":"Delete","event":[{"listen":"prerequest","script":{"id":"dc958bc2-4753-4cca-baee-f2230233f994","exec":["let idempotencyKey = pm.variables.replaceIn(\"08a5e3ae-edac-48ee-8382-d82e83d7a742\");","pm.environment.set(\"idempotencyKey\", idempotencyKey);"],"type":"text/javascript","packages":{}}}],"id":"0a0f3a33-cbb2-4bf8-8632-ae11c68c7922","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Idempotency-Key","value":"{{idempotencyKey}}","description":"<p>🔴 Required | A 36 characters unique key. Here we have used a <code>UUID</code> as an example.</p>\n","type":"text"}],"url":"https://stage-b2b-api.monfibank.com/api/v1/user/notifications/{{nid}}","description":"<p>This endpoint will delete the notification associated with the provided <code>nid</code>.</p>\n<h4 id=\"required-field\">Required Field</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field Key</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>nid</code></td>\n<td>🔴 Required - ID of the notification you want to delete. This <code>ID</code> can be obtained from the endpoint <code>user/notifications</code>.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["notifications","{{nid}}"],"host":["https://stage-b2b-api.monfibank.com/api/v1/user"],"query":[],"variable":[]}},"response":[],"_postman_id":"0a0f3a33-cbb2-4bf8-8632-ae11c68c7922"},{"name":"Delete All","id":"7775b8de-8fa1-42c4-9d14-f0a9d0397251","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://stage-b2b-api.monfibank.com/api/v1/user/notifications","description":"<p>This endpoint will delete all of the notifications.</p>\n","urlObject":{"path":["notifications"],"host":["https://stage-b2b-api.monfibank.com/api/v1/user"],"query":[],"variable":[]}},"response":[],"_postman_id":"7775b8de-8fa1-42c4-9d14-f0a9d0397251"},{"name":"Read All","id":"c0b04a97-e5c4-488b-aabf-03393610a037","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://stage-b2b-api.monfibank.com/api/v1/user/notifications/read-all","description":"<p>This endpoint will change the status of all the notifications to read.</p>\n","urlObject":{"path":["notifications","read-all"],"host":["https://stage-b2b-api.monfibank.com/api/v1/user"],"query":[],"variable":[]}},"response":[],"_postman_id":"c0b04a97-e5c4-488b-aabf-03393610a037"},{"name":"Notifications","id":"e172a736-3e93-4f7f-a2b8-3f591cde9128","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://stage-b2b-api.monfibank.com/api/v1/user/notifications","description":"<p>This endpoint will list all of the notifications.</p>\n","urlObject":{"path":["notifications"],"host":["https://stage-b2b-api.monfibank.com/api/v1/user"],"query":[],"variable":[]}},"response":[],"_postman_id":"e172a736-3e93-4f7f-a2b8-3f591cde9128"}],"id":"f295df13-3d91-4e71-9d64-f589e010bd6f","description":"<p>We also provide the <strong>Bell Notifications</strong> for the Users. These notifications can be for Transaction approval, Service Request approval or some other updates. Users can manage the notifications using the endpoints in this section.</p>\n","_postman_id":"f295df13-3d91-4e71-9d64-f589e010bd6f"},{"name":"User","id":"0e7fad51-56b7-4bd6-a80f-80df8b309cba","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://stage-b2b-api.monfibank.com/api/v1/user","description":"<p>This endpoint will return the basic user info.</p>\n","urlObject":{"host":["https://stage-b2b-api.monfibank.com/api/v1/user"],"query":[],"variable":[]}},"response":[],"_postman_id":"0e7fad51-56b7-4bd6-a80f-80df8b309cba"},{"name":"logout","id":"729ac74a-61e0-485c-ae87-86c4202fda2b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"https://stage-b2b-api.monfibank.com/api/v1/user/logout","description":"<p>This endpoint will logout the <code>user</code>.</p>\n","urlObject":{"path":["logout"],"host":["https://stage-b2b-api.monfibank.com/api/v1/user"],"query":[],"variable":[]}},"response":[],"_postman_id":"729ac74a-61e0-485c-ae87-86c4202fda2b"},{"name":"Webhook URL","event":[{"listen":"prerequest","script":{"id":"2f649cb8-c402-49bb-901b-fa6ede4dcda2","exec":["var CryptoJS = require('crypto-js');","","const tonce = generateTonce();","const path = '/api/v1/user/webhook-url/save';","const secret = pm.variables.get('client_secret');","","// CHANGE PAYLOAD BELOW","var formdata = pm.request.body.formdata.all()","var requestBodyObj = {} ","","formdata.forEach(item => {","    let key = normalizeKey(item.key)","","    if (item.type === 'file' && !item.src || (Array.isArray(item.src) && item.src.length === 0)) {","        return","    }","","    if (item.type === 'file' && !requestBodyObj[key]) {","        requestBodyObj[key] = [{}]","    } else {","        requestBodyObj[key] = item.value","    }","})","","requestBodyObj.tonce = tonce","console.log('Request Payload', requestBodyObj);","","var requestBodyString = JSON.stringify(requestBodyObj);","console.log('Request Payload stringify', requestBodyString);","","var encrypted = CryptoJS.HmacSHA512(path + '\\0' + requestBodyString, secret);","var signature = CryptoJS.enc.Base64.stringify(encrypted);","","pm.variables.set('Signature', signature);","pm.variables.set('Tonce', tonce)","","function normalizeKey(key) {","    return key.replace(/\\[\\]$/, '')","}","","function generateTonce() {","    return Math.floor(Date.now() * 1000)","}","","let idempotencyKey = pm.variables.replaceIn(\"a1559fdf-3922-41a4-b4a9-d87170062cdc\");","pm.environment.set('idempotencyKey', idempotencyKey);"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"759a4e82-0b16-49ce-9e5f-beea630808b2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Signature","value":"{{Signature}}","type":"text"},{"key":"Tonce","value":"{{Tonce}}","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"webhook_url","value":"https://stage-api.monfibank.com/webhook-url/callback","description":"<p>🔴 Required | Webhook URL for Service Requests.</p>\n","type":"text"}]},"url":"https://stage-b2b-api.monfibank.com/api/v1/user/webhook-url/save","description":"<p>Use this endpoint to register or update your webhook URL, which we will use to notify for change in transaction/service request.</p>\n<p>The following is a sample request payload that will be sent in the Webhook call.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-php\">[\n    'request_id' =&gt; 1572,\n    'request_type' =&gt; 'transaction',\n    'status' =&gt; 'Approved',\n    'message' =&gt; 'Your transaction request has been Approved.'\n]\n\n</code></pre>\n","urlObject":{"path":["webhook-url","save"],"host":["https://stage-b2b-api.monfibank.com/api/v1/user"],"query":[],"variable":[]}},"response":[],"_postman_id":"759a4e82-0b16-49ce-9e5f-beea630808b2"}],"id":"72679624-a5b1-4127-a6d5-c8f6a4f3e8a3","_postman_id":"72679624-a5b1-4127-a6d5-c8f6a4f3e8a3","description":""}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"fdd827aa-3675-4bd9-b18d-48109962eeae"}},{"listen":"test","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"ea74d36f-ebcc-4887-bc88-5d107f679ba8"}}],"variable":[{"key":"base_url","value":"https://stage-b2b-api.monfibank.com/api/v1/","type":"string"}]}