{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"603bd9fb-7dee-42f9-8148-d34e396a3094","name":"iGB Bank API","description":"### Overview\n\nThe iGB Bank API offers a powerful yet developer-friendly set of resources that enable you to:\n\n- **Submit Payments:** Supports FPS, CHAPS, International, Intrabank, Own Account transfers, including returns and reversals.\n    \n- **Currency Conversion (FX):** Convert funds between your own accounts in different currencies.\n    \n- **Retrieve Account and Balance:** Access detailed account balance information.\n    \n- **Retrieve Transaction History:** Fetch transaction history for account reconciliation.\n    \n- **Download Statements:** Obtain downloadable account statements.\n    \n- **Webhook support:** Manage webhooks for real-time notifications.\n    \n- **Confirmation of Payee:** Verify payee information for added security.\n    \n- **Public Key:** Access the public key for secure communications.\n    \n- **Product:** Access account features and fetch all account types and products.\n    \n\n### Getting Started with Postman\n\nTo start using the iGB Bank API via Postman, follow these steps:\n\n---\n\n#### **1\\. Configure Postman Environment Variables**\n\nBefore making requests, update the following environment variables in your Postman client:\n\n- **`organisation_id`**: Your unique organization identifier.\n    \n- **`token`**: The API token provided by iGB Bank.\n    \n- **`request_signing_private_key`**: The private key used for signing requests.\n    \n- **`request_signing_public_key_id`**: The ID of the public key corresponding to your private key.\n    \n\n**Sample pre-authorization script for request signing**\n\n``` javascript\nconst url = require('url')\nconst uuid = require('uuid');\nconst moment = require('moment');\nconst crypto = require('crypto-js')\npm.environment.set(\"request_date\", moment().format(\"ddd, DD MMM YYYY, h:mm:ss ZZ\"));\nconst digestMethod = function(text) {\n    return crypto.SHA256(text)\n}\nrandom_guid = uuid.v4()\nrandom_guid_2 = uuid.v4()\npm.environment.set(\"random_guid\", random_guid)\npm.environment.set(\"random_guid_2\", random_guid_2)\nconst public_key_id = pm.environment.get(\"request_signing_public_key_id\")\nconst private_key = pm.environment.get(\"request_signing_private_key\")\nconst organisation_id = pm.environment.get(\"organisation_id\");\nconst token = pm.environment.get(\"token\");\n// Use request signing\nconsole.log(\"Request made using request signing.\")\nif(_.isEmpty(public_key_id)) {\n    throw new Error(\"request_signing_public_key_id expected but it is empty, aborting.\");\n}\nif(_.isEmpty(private_key)) {\n    throw new Error(\"request_signing_private_key expected but it is empty, aborting.\");\n}\nfunction envValue(key) {\n    value = pm.environment.get(key)\n    if (value === '') {\n        return value\n    }\n    return value || `{{${key}}}`\n}\nfunction resolved_url() {\n    raw_url = request.url\n    resolved_url = raw_url.replace(/{{(\\w*)}}/g,function(str,key) {return envValue(key)});\n    return resolved_url\n}\nfunction resolved_body() {\n    if(typeof request.data === 'object') { // body is object\n        throw new Error('Incorrect body encoding aborting.')\n    } else {\n        resolved_body = request.data.replace(/{{(\\w*)}}/g,function(str,key) {return envValue(key)});\n    }\n    return resolved_body\n}\nconst request_resolved_url = resolved_url()\nconst debug_endpoint_url = \"/v1/igb/debug/signing\"\nis_debug_request = false\nif (request_resolved_url.indexOf(debug_endpoint_url) !== -1) {\n    is_debug_request = true\n}\nheaders = []\nif (\"POST\" == pm.request.method) {\n    request_resolved_body = resolved_body()\n    console.log('request_resolved_body', request_resolved_url);\n    digest = digestMethod(request_resolved_body).toString(crypto.enc.Base64)\n    pm.environment.set(\"request_signing_digest\", digest);\n    navigator = {};\n    window = {};\n    eval(pm.variables.get(\"jsencrypt-3.0.0-rc.1\"));\n    const jsencrypt = new window.JSEncrypt();\n    jsencrypt.setKey(private_key)\n    parsed_url = url.parse(request_resolved_url)\n    headers = [\n        { key: \"digest\", value: `SHA-256=${digest}`}, \n        { key: \"content-length\", value: request_resolved_body.length},\n        { key: \"token\", value: token},\n        { key: \"(request-target)\", value: `${request.method.toLowerCase()} ${parsed_url.pathname}` },\n        { key: \"host\", value: parsed_url.host},\n        { key: \"date\", value: pm.environment.get(\"request_date\") },\n        { key: \"accept\", value: request.headers['accept']},\n        { key: \"content-type\", value: request.headers['content-type']},\n    ].filter(e => Boolean(e.value))\n    // Set to true to test signature\n    if(false) {\n        headers.push({ key: \"illegal\", value: \"test\"});\n    }   \n    signature_string = headers\n                    .map(e => `${e.key}: ${e.value}`)\n                    .join(\"\\n\")\n    headers_string = headers.map(e => e.key).join(\" \")\n    console.log(\"Signature string: \", signature_string)\n    signed_signature = jsencrypt.sign(signature_string, digestMethod, \"sha256\") \n    signature = `Signature token=\"${token}\",orgId=\"${organisation_id}\",keyId=\"${public_key_id}\",algorithm=\"rsa-sha256\",headers=\"${headers_string}\",signature=\"${signed_signature}\"`\n    signature_debug_parsed = crypto.enc.Utf8.parse(signature_string)\n    signature_debug = crypto.enc.Base64.stringify(signature_debug_parsed)\n    if(is_debug_request) {\n        pm.environment.set(\"request_signing_signature_debug\", signature_debug);\n    }\n} else {\n    signature = `Signature token=\"${token}\",orgId=\"${organisation_id}\",keyId=\"${public_key_id}\"`\n}\npm.environment.set(\"authorization\", signature);\nconsole.log(\"Headers\", headers)\nconsole.log(\"Authorization\", signature);\n\n ```\n\n---\n\n## Authorization\n\nThe iGB Bank API uses three key values for authorization:\n\n1. Key ID\n    \n2. API Token\n    \n3. Organization ID\n    \n\nThese values must be included in each request's Authorization header.\n\n### Request Header **Authorization** Format\n\n| **Parameter** | Description |\n| --- | --- |\n| token | Your API Token |\n| orgId | Your Organization ID |\n| keyId | Your Key ID |\n| algorithm | The algorithm used to sign the signature. Must be 'rsa-sha256'. |\n| headers | A list of headers used to generate the signature.  <br>Example: '(request-target) content-length digest host date accept content-type token' |\n| signature | The hashed signature using base64 encoding. Refer to the Pre-request script on how to encrypt data using a private key in native JavaScript. |\n\n_Example_\n\n**GET Method**\n\n`Authorization: Signature token={API Token}, orgId={Organization ID}, keyId={Key ID}`\n\n**POST Method**\n\n`Authorization: Signature token={API Token}, orgId={Organization ID}, keyId={Key ID}, algorithm=rsa-sha256, headers={Header}, signature={Signature}`\n\n_Sample value_\n\n`Header: (request-target) content-length digest host date accept content-type token`\n\n`Signature: dGVzdHNldHNldHNldHNldHNhZGFkYXNkIGkgdGFraWUgdGFt`\n\n### Generating Key ID, API Token, and Organization ID\n\n1. Login to iGB Business Banking\n    \n2. Go to Settings > Bank API Setup\n    \n3. If Bank API Setup is not enabled, kindly request your relationship manager to enable Bank API Setup for your account.\n    \n4. Click Add New Token\n    \n5. Upload public key in PEM format. Refer **`How to generate Key Pair`** section on how to generate a valid public key to upload. The format needed must be in PKCS#8. Any other format will hit error during uploading.\n    \n6. Select start date and end date of the token.\n    \n7. (Optional) Approval on new token generation depending on the approval setup.\n    \n8. **IMPORTANT: Please take note that 'View Token' can only click once. If you lost the API Token, kindly regenerate again by repeating the steps above.**\n    \n9. Organization ID and Key ID can be found in Settings > Bank API Setup > API Key Listings.\n    \n10. Key ID is co-related with the API Token while Organization ID will be same across all API Token.\n    \n\n### How to generate a Key Pair\n\n1. Prerequisite:\n    \n    1. Latest version of OpenSSL must be used.\n        \n2. Commands:\n    \n    1. Generate the private key: `openssl genrsa -out private_key.pem 2048`\n        \n    2. Generate the public key: `openssl rsa -pubout -in private_key.pem -out public_key.pem`\n        \n3. The `private_key.pem` file is needed for signing your API requests.\n    \n4. The `public_key.pem` file is required for uploading to iGB Business Banking to generate the API Token and to enable iGB to validate the signature of your API requests.EndFragment\n    \n\n**Note**: The key pair is self-generated and does not require verification by any third party.\n\n### Authentication error response\n\nIf any authentication variables are missing, malformed, or invalid, an HTTP `401 Unauthorized` response code will be returned.\n\n## Digital Signature\n\nA digital signature verifies the authenticity of a request, ensuring that it has not been altered in transit and confirming the identity of the requester. The process involves:\n\n1. **Signing**: The requester generates a hash of the data and then uses their private key to encrypt this hash, creating the digital signature.\n    \n2. **Verification**: The receiver uses the requester's public key to decrypt the digital signature, retrieving the hash. The receiver then generates a new hash from the received data and compares it to the decrypted hash. If they match, the data is confirmed to be intact and authentic.\n    \n\n### Signature Signing guideline\n\nHTTP Method **POST** must be signed before sending it to iGB Bank API. Take note that **GET** HTTP method is not needed to sign the message.\n\n| **Header** | **Description** |\n| --- | --- |\n| Digest | Sha-256=`{digest_value}`  <br>Not needed for GET |\n| Host | Bank API Host domain  <br>UAT: `https://igb-bank-api-gateway-simulator.ifast-aws.com` |\n| Date | Current date in [RFC 2822](https://datatracker.ietf.org/doc/html/rfc2822) format  <br>`ddd, DD MMM YYYY h:mm:ss ZZ` |\n| Authorization | Signature header. Refer to **Request Header Authorization Format** section |\n| Content-Length | The size of the body |\n| Content-Type | `application/json` |\n\n``` javascript\nconst url = require('url')\nconst uuid = require('uuid');\nconst moment = require('moment');\nconst crypto = require('crypto-js')\npm.environment.set(\"request_date\", moment().format(\"ddd, DD MMM YYYY, h:mm:ss ZZ\"));\nconst digestMethod = function(text) {\n    return crypto.SHA256(text)\n}\nrandom_guid = uuid.v4()\npm.environment.set(\"random_guid\", random_guid)\nconst public_key_id = pm.environment.get(\"request_signing_public_key_id\")\nconst private_key = pm.environment.get(\"request_signing_private_key\")\nconst organisation_id = pm.environment.get(\"organisation_id\");\nconst token = pm.environment.get(\"token\");\n// Use request signing\nconsole.log(\"Request made using request signing.\")\nif(_.isEmpty(public_key_id)) {\n    throw new Error(\"request_signing_public_key_id expected but it is empty, aborting.\");\n}\nif(_.isEmpty(private_key)) {\n    throw new Error(\"request_signing_private_key expected but it is empty, aborting.\");\n}\nfunction envValue(key) {\n    value = pm.environment.get(key)\n    if (value === '') {\n        return value\n    }\n    return value || `{{${key}}}`\n}\nfunction resolved_url() {\n    raw_url = request.url\n    resolved_url = raw_url.replace(/{{(\\w*)}}/g,function(str,key) {return envValue(key)});\n    return resolved_url\n}\nfunction resolved_body() {\n    if(typeof request.data === 'object') { // body is object\n        throw new Error('Incorrect body encoding aborting.')\n    } else {\n        resolved_body = request.data.replace(/{{(\\w*)}}/g,function(str,key) {return envValue(key)});\n    }\n    return resolved_body\n}\nconst request_resolved_url = resolved_url()\nconst debug_endpoint_url = \"/v1/igb/debug/signing\"\nis_debug_request = false\nif (request_resolved_url.indexOf(debug_endpoint_url) !== -1) {\n    is_debug_request = true\n}\nheaders = []\nif (\"POST\" == pm.request.method) {\n    request_resolved_body = resolved_body()\n    console.log('request_resolved_body', request_resolved_url);\n    digest = digestMethod(request_resolved_body).toString(crypto.enc.Base64)\n    pm.environment.set(\"request_signing_digest\", digest);\n    navigator = {};\n    window = {};\n    eval(pm.variables.get(\"jsencrypt-3.0.0-rc.1\"));\n    const jsencrypt = new window.JSEncrypt();\n    jsencrypt.setKey(private_key)\n    parsed_url = url.parse(request_resolved_url)\n    headers = [\n        { key: \"digest\", value: `SHA-256=${digest}`}, \n        { key: \"content-length\", value: request_resolved_body.length},\n        { key: \"token\", value: token},\n        { key: \"(request-target)\", value: `${request.method.toLowerCase()} ${parsed_url.pathname}` },\n        { key: \"host\", value: parsed_url.host},\n        { key: \"date\", value: pm.environment.get(\"request_date\") },\n        { key: \"accept\", value: request.headers['accept']},\n        { key: \"content-type\", value: request.headers['content-type']},\n    ].filter(e => Boolean(e.value))\n    // Set to true to test signature\n    if(false) {\n        headers.push({ key: \"illegal\", value: \"test\"});\n    }   \n    signature_string = headers\n                    .map(e => `${e.key}: ${e.value}`)\n                    .join(\"\\n\")\n    headers_string = headers.map(e => e.key).join(\" \")\n    console.log(\"Signature string: \", signature_string)\n    signed_signature = jsencrypt.sign(signature_string, digestMethod, \"sha256\") \n    signature = `Signature token=\"${token}\",orgId=\"${organisation_id}\",keyId=\"${public_key_id}\",algorithm=\"rsa-sha256\",headers=\"${headers_string}\",signature=\"${signed_signature}\"`\n    signature_debug_parsed = crypto.enc.Utf8.parse(signature_string)\n    signature_debug = crypto.enc.Base64.stringify(signature_debug_parsed)\n    if(is_debug_request) {\n        pm.environment.set(\"request_signing_signature_debug\", signature_debug);\n    }\n} else {\n    signature = `Signature token=\"${token}\",orgId=\"${organisation_id}\",keyId=\"${public_key_id}\"`\n}\npm.environment.set(\"authorization\", signature);\nconsole.log(\"Headers\", headers)\nconsole.log(\"Authorization\", signature);\n\n ```\n\n### Signature Verification guideline\n\niGB uses cryptographic signatures to ensure that callback event messages can be identified as coming from iGB. iGB sign the webhook request by adding a signature to the message's header.\n\nRequest Header\n\n| **Header** | **Description** |\n| --- | --- |\n| authorization | Sample Value  <br>  <br>Signature keyId=\"912b5f32-983a-465a-8ce7-73551e851324\",algorithm=\"rsa-sha256\",headers=\"(request-target) accept content-length content-type date digest host\",signature=\"vTG4tiUjnKutrOIosLLXnD8KkWspiJZYrWkmPOrhitio5teJVhJAyO9avub5J4BLzH4xtGfZ347f507tg54cTuDNT4+joJGd3qgsMELhkENseg12/UlZwqHsCGdGUJu1+wNt5OzuYz8sivse0CjS1Jt/tHTi0otsWkWj2zMdhPfSwGDutaYzSUpK4FcCtN7W06lwyujNUj3suxJ95Qauz1RvUKw34KwNxxrosLe1i7JutUhRFt9guix3/o3yvGEqO/vfrS6YU32UGJDawfcvlNHwNvzi50KBUcs6i67YC7FzsmPTWy8//mkFfMnds4+iP17V7S9vmMdL5oos204udg==\" |\n\n1. Signing verification is needed for request that sent to client via iGB webhook service.\n    \n2. From the authorization, get keyId and retrieve public key using `/v1/bank-api/signing/details?keyId={keyId}`\n    \n3. Retrieve KeyId from Authorization request header\n    \n4. From the headers, get the data in sequence and generate a string as below:`(request-target): post /b42825af-ea80-43f3-bbf2-7c041267b746 host: webhook.site date: Mon, 12 Apr 2021 09:40:49 UTC content-type: application/json digest: SHA-256=dTdnvKdw+MRHlLNDBmEHCPycGxuhwCvNiQIogboBM+w= content-length: 1257`\n    \n5. Verify with signature using retrieved public key\n    \n\n``` java\n/**\nSample Code\n**/\npackage com.igb.bankapi.service;\nimport com.igb.bankapi.constant.RequestConstant;\nimport com.igb.bankapi.exception.AuthHeaderModel;\nimport java.nio.charset.StandardCharsets;\nimport java.security.NoSuchAlgorithmException;\nimport java.security.Signature;\nimport java.security.SignatureException;\npublic class SignatureService {\n    // This method is used to verify the signature of the request\n    public static boolean verifySignature(AuthHeaderModel authHeaderModel) throws SignatureException, NoSuchAlgorithmException {\n        String YOUR_PUBLIC_KEY = \"\";\n        Signature signature = Signature.getInstance(\"SHA256withRSA\");\n        signature.initVerify(YOUR_PUBLIC_KEY);\n        signature.update(generateDataForSignature().getBytes(StandardCharsets.UTF_8));\n        return signature.verify(org.apache.tomcat.util.codec.binary.Base64.decodeBase64(authHeaderModel.getSignature()));\n    }\n    public static String generateRequestTarget(String path, String methodType) {\n        return String.format(\"%s %s\", methodType.toLowerCase(), path);\n    }\n    private static final String SIGNATURE_SPLIT_STR = \"%s: %s\";\n    public static String generateDataForSignature(AuthHeaderModel authHeaderModel) {\n        // If Request Method is Get, signature checking can ignore\n        if (authHeaderModel.isGet()) {\n            return null;\n        }\n        String[] headers = new String[0];\n        if(authHeaderModel.getHeaders()!=null){\n            headers = authHeaderModel.getHeaders().split(\" \");\n        }\n        String generatedSignature = \"\";\n        boolean isFirst = true;\n        for (String header : headers) {\n            if (!isFirst) {\n                generatedSignature = generatedSignature.concat(\"\\n\");\n            } else {\n                isFirst = false;\n            }\n            if (RequestConstant.REQUEST_TARGET_HEADER.equalsIgnoreCase(header)) {\n                generatedSignature = generatedSignature.concat(\n                        String.format(SIGNATURE_SPLIT_STR, RequestConstant.REQUEST_TARGET_HEADER.toLowerCase(),\n                        generateRequestTarget(authHeaderModel.getUrl(), authHeaderModel.getMethodType())));\n            }\n            if (RequestConstant.HOST_HEADER.equalsIgnoreCase(header)) {\n                generatedSignature = generatedSignature.concat(String.format(SIGNATURE_SPLIT_STR, RequestConstant.HOST_HEADER.toLowerCase(),\n                        authHeaderModel.getHost()));\n            }\n            if (RequestConstant.DATE_HEADER.equalsIgnoreCase(header)) {\n                generatedSignature = generatedSignature.concat(String.format(SIGNATURE_SPLIT_STR, RequestConstant.DATE_HEADER.toLowerCase(),\n                        authHeaderModel.getDate()));\n            }\n            if (RequestConstant.DIGEST_HEADER.equalsIgnoreCase(header)) {\n                generatedSignature = generatedSignature.concat(String.format(SIGNATURE_SPLIT_STR, RequestConstant.DIGEST_HEADER.toLowerCase(),\n                        RequestConstant.DIGEST_PREFIX.concat(authHeaderModel.getDigest())));\n            }\n            if (RequestConstant.CONTENT_LENGTH_HEADER.equalsIgnoreCase(header)) {\n                generatedSignature = generatedSignature.concat(String.format(SIGNATURE_SPLIT_STR, RequestConstant.CONTENT_LENGTH_HEADER.toLowerCase(),\n                        authHeaderModel.getContentLength()));\n            }\n            if (RequestConstant.CONTENT_TYPE_HEADER.equalsIgnoreCase(header)) {\n                generatedSignature = generatedSignature.concat(String.format(SIGNATURE_SPLIT_STR, RequestConstant.CONTENT_TYPE_HEADER.toLowerCase(),\n                        authHeaderModel.getContentType()));\n            }\n            if (RequestConstant.TOKEN_HEADER.equalsIgnoreCase(header)) {\n                generatedSignature = generatedSignature.concat(String.format(SIGNATURE_SPLIT_STR, RequestConstant.TOKEN_HEADER.toLowerCase(),\n                        authHeaderModel.getToken()));\n            }\n        }\n        return generatedSignature;\n    }\n}\n\n ```\n\n## Rate Limiting\n\nThe rate limit for requests is an average of 4 requests per second in a 5 seconds timeframe (e.g., max 20 burst requests in \"one go\" and then wait 5 seconds), based on \"organisation_id\" from which the requests are sent.\n\n## Contact Us\n\nFor any issues or to suggest improvements, please contact us at [api.support@ifastgb.com](https://mailto:api.support@ifastgb.com)","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":true,"owner":"36026278","team":6171234,"collectionId":"603bd9fb-7dee-42f9-8148-d34e396a3094","publishedId":"2sA3XSBgps","public":true,"publicUrl":"https://api-collection.ifastgb.com","privateUrl":"https://go.postman.co/documentation/36026278-603bd9fb-7dee-42f9-8148-d34e396a3094","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-single-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":"https://content.pstmn.io/73f290a4-5098-4fa6-b5ff-03c57e99df00/SUdCIEZ1bGwgQ29sb3VyIExvZ28gMS5wbmc=","colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":"https://content.pstmn.io/73f290a4-5098-4fa6-b5ff-03c57e99df00/SUdCIEZ1bGwgQ29sb3VyIExvZ28gMS5wbmc=","colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.11.6","publishDate":"2024-06-18T12:07:58.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":"https://content.pstmn.io/73f290a4-5098-4fa6-b5ff-03c57e99df00/SUdCIEZ1bGwgQ29sb3VyIExvZ28gMS5wbmc=","logoDark":"https://content.pstmn.io/73f290a4-5098-4fa6-b5ff-03c57e99df00/SUdCIEZ1bGwgQ29sb3VyIExvZ28gMS5wbmc="}},"statusCode":200},"environments":[{"name":"Simulator","id":"297688e7-15cb-4982-aa70-531594e7e52b","owner":"36026278","values":[{"key":"token","value":"<JSON_WEB_TOKEN>","enabled":true,"type":"default"},{"key":"request_signing_public_key_id","value":"<AUTHORIZATION_SECRET_-_UUID>","enabled":true,"type":"default"},{"key":"request_signing_private_key","value":"<RSA_PRIVATE_KEY>","enabled":true,"type":"default"},{"key":"organisation_id","value":"5c98ceef-b2e5-4bc5-a054-7f8ccadc4f4d","enabled":true,"type":"default"},{"key":"gateway_base_url","value":"https://igb-bank-api-gateway-simulator.ifast-aws.com","enabled":true,"type":"default"},{"key":"authorization","value":"","enabled":true,"type":"default"},{"key":"request_signing_digest","value":"","enabled":true,"type":"default"},{"key":"request_date","value":"","enabled":true,"type":"default"},{"key":"random_guid","value":"029299a1-17b6-4d1e-9545-e3eacbf5ab92","enabled":true,"type":"any"},{"key":"request_signing_signature_debug","value":"","enabled":true,"type":"any"},{"key":"random_guid_2","value":"c07a261c-a8ce-4a6f-a2e5-dd4b74d0cb0b","enabled":true,"type":"any"},{"key":"random_guid_3","value":"","enabled":true,"type":"any"},{"key":"random_guid_4","value":"","enabled":true,"type":"any"},{"key":"random_guid_5","value":"","enabled":true,"type":"any"},{"key":"random_guid_6","value":"","enabled":true,"type":"any"},{"key":"random_guid_7","value":"","enabled":true,"type":"any"},{"key":"userId","value":"","enabled":false,"type":"any"},{"key":"accountIds","value":"","enabled":false,"type":"any"},{"key":"accountIdsPayment","value":"","enabled":false,"type":"any"},{"key":"randomString-1","value":"","enabled":false,"type":"any"},{"key":"randomString-2","value":"","enabled":false,"type":"any"},{"key":"randomPrice","value":"","enabled":false,"type":"any"},{"key":"randomBankAccount","value":"","enabled":false,"type":"any"},{"key":"randomFullName","value":"","enabled":false,"type":"any"},{"key":"randomCompanyName","value":"","enabled":false,"type":"any"},{"key":"randomLoremWords","value":"","enabled":false,"type":"any"},{"key":"randomTransactionType","value":"","enabled":false,"type":"any"},{"key":"randomCreditCardMask","value":"","enabled":false,"type":"any"},{"key":"randomDateFuture","value":"","enabled":false,"type":"any"},{"key":"mesgSigning","value":"","enabled":false,"type":"any"}],"published":true}],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/888a4fc0d56cc8eb7a0a5f39ebe9dac486234f492d5442c2f6d075da993ba6c1","favicon":"https://res.cloudinary.com/postman/image/upload/v1717599674/team/n9atwaumkhvovcdy0ydf.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"},{"label":"Simulator","value":"36026278-297688e7-15cb-4982-aa70-531594e7e52b"}],"canonicalUrl":"https://api-collection.ifastgb.com/view/metadata/2sA3XSBgps"}