{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"77865adb-1366-4a1b-a0d4-f7c789228060","name":"Blaaiz Checkout Docs","description":"CHECKOUT GATEWAY DOCUMENTATION\n\nThe checkout gateway allows merchant to receive payment in different currencies.\n\nThere are different payment methods available to make payment and different apis to call. Payment methods include card, bank transfer, USSD, pay with bank account\n\nThere are 3 major operations to perform so as to complete a payment. The api request body is passed as an encrypted data using the RSA encryption algorithm.\n\nTo authorise the api request, public key (which is provided from the merchant dashboard) is required to be passed. on the header on all the requests.\n\nThe 3 operations are\n\n1. Create Order\n    \n2. Pay Order\n    \n3. Verify Payment Status\n    \n\n- Create Order\n    \n\nCreate order is the point where the customer details, the order details and every other information is been passed to create an order. which then returns the merchant information, the order details including the reference and the payment options available for the selected currency.\n\nA unique reference is required to be passed which is used to identifier the order payment between the different systems involved.\n\n- Pay Order\n    \n\nThis is the point where the customer select the payment method they prefer to use either Card, USSD, Bank transfer or any other method available.  \nFor Card payment different authorisation and authentication is used based on the card type.\n\nAfter a payment has been made. the success response respond return from this endpoint does not guarantee the payment is successful because in some cases the customer would have to go through verification and validation process. This is where the 3rd operation comes in\n\n- Verify Payment Status\n    \n\nThis is the point where the status of the payment can be confirmed. this endpoint can be called couple of times to get the update on a payment\n\nPoint to Note\n\nFor easy integration, an endpoint is provided only for staging (it is not available on production) to encrypt data to be send for each of this operations\n\nSAMPLE ENCRYPTION CODE\n\n``` javascript\nimport rsa from 'node-forge'\nconst BigInteger = rsa.jsbn.BigInteger\nlet parser = new DOMParser()\nfunction encryptForge(data, rsa_pub_key) {\n  let pk = rsa_pub_key\n  let rsaKeyValue = atob(pk)\n  rsaKeyValue = rsaKeyValue.split('!')[1]\n  const xmlDoc = parser.parseFromString(rsaKeyValue, 'text/xml')\n  const modulus = xmlDoc.getElementsByTagName('Modulus')[0].innerHTML\n  const exponent = xmlDoc.getElementsByTagName('Exponent')[0].innerHTML\n  const pubKey = rsa.pki.setRsaPublicKey(\n    parseBigInteger(modulus),\n    parseBigInteger(exponent),\n  ) // e\n  let encryptText = pubKey.encrypt(rsa.util.encodeUtf8(data))\n  return btoa(encryptText)\n}\nfunction parseBigInteger(b64) {\n  return new BigInteger(\n    rsa.util.createBuffer(rsa.util.decode64(b64)).toHex(),\n    16,\n  )\n}\nexport default encryptForge\n\n ```\n\n``` python\nimport base64\nfrom Crypto.PublicKey import RSA\nfrom Crypto.Cipher import PKCS1_v1_5\nfrom Crypto.Util.Padding import pad\nimport xml.etree.ElementTree as ET\ndef encrypt(data, public_xml):\n    try:\n        if not data:\n            raise Exception(\"Data sent for encryption is empty\")\n        print(data)\n        # Decode the Base64 string\n        decoded_bytes = base64.b64decode(public_xml)\n        # Convert the decoded bytes to a string\n        decoded_string = decoded_bytes.decode('utf-8')\n        public_xml_key = decoded_string.split('!')[1]\n        modulus = getXmlComponent(public_xml_key, \"Modulus\")\n        exponent = getXmlComponent(public_xml_key, \"Exponent\")\n        modulus_bytes = base64.b64decode(modulus)\n        exponent_bytes = base64.b64decode(exponent)\n        # Create an RSA public key from Modulus and Exponent\n        key = RSA.construct((int.from_bytes(modulus_bytes, byteorder='big'), int.from_bytes(exponent_bytes, byteorder='big')))\n        # Initialize the Cipher for encryption\n        cipher = PKCS1_v1_5.new(key)\n        # Encrypt data\n        encrypted_bytes = cipher.encrypt(bytes(data, 'utf-8'))\n        print(encrypted_bytes)\n        #Convert to base 64 string\n        encrypted_bytes_ = base64.b64encode(encrypted_bytes)\n        print(encrypted_bytes_)\n        return encrypted_bytes\n    except Exception as e:\n        raise e\ndef getXmlComponent(xmlstring, _field):\n    try:\n        # Parse the XML string\n        root = ET.fromstring(xmlstring)\n        # Find elements with the specified field name\n        modulusElements = root.findall(_field)\n        modulusValue = \"\"\n        if modulusElements:\n            # Extract the Modulus value from the first element\n            modulusValue = modulusElements[0].text\n            print(\"Modulus Value:\", modulusValue)\n        else:\n            print(\"Modulus element not found.\")\n        return modulusValue\n    except Exception as e:\n        # Handle exceptions (e.g., parsing errors)\n        print(\"Error:\", str(e))\n        return \"\"\n# Example usage:\n_data = \"{\\\"order\\\":{}}\"\npublic_xml = \"NDA5NiE8UlNBS2V5VmFsdWU+PE1vZHVsdXM+eTJTSXdvQTY4cmNwZlNYcjJwbWhUYmp3NzRLOEgwTW5CN2NhbWNSVStlMVZmZ3o3d2xISysvYi9kdE9NLzVtYVBZV1l0aW1YcURoNlppTHZyUytqaklhVkhjS2trS3dscTNrK1BTSDR1ckpqeElOQSt4RHBQSW1aWFVLMjJobmp2c2s1YTM2Vkx2Q1NPd2IwTXJXaHJwaXNKem9sS3VEaFR1MjhnYWNsT1FaR2JoNStNazdyV0ZnVjVLZThqcUFZK1FIMk16RmZYNys3ZldKbXhGQTlReEI5SThTODhBMC9SWm5SNUlJQWtrRHh3aGtsSlB0NEtQeG5GT0RmTHQyR3Z0YXp3NmlTNmNUUlBHVkF5MmNocDRrZmZSVFcrd0FhaTlycTV5V2h0cHFaOVlCZ1N1MUFLd2twd01NL3o0cVJHWDJOdWZoOEtnMWV6cUs0WkVnTGhOYnN1aXZ5NmdZNEZxMjdSZWpndDN1S0hmdmExaUtYLysxVVI5cmlIMjJYUVZEMzFIamFieUJoZ2lTcVBIMzgwUVBNMnlpdnpKZDdyWDZqMEpzZk1NRFlGejJzMCtIUHJoQmd6cFBua3l2S0RGMUFZcjRTc2RQaitCNUxrYlZESUg4TC9zZE1DcEpyblJqMWlHRXgvWUl4U1ExdEJFZWFnbWFxVVF2VVJYV2hOeHNIS0Nxa3Buelh3bVdpT3FUR1RNRWdpc2UvbkI3SHVuVlRITEZ0d0UyVE1LYXZxbEFkUHNxMytlSFNqUzhQVmZNK1IxL1VoMUVTR09aOFZZdThTMjdFYWl6dDY4SmhVbDQ0NnVjT0R4VEJTckFYS0ptdGhjZk9MZzNYekU5TVlkaEZiWisxRzlHbi91YkVFd2ZiZVZsOVViVXZ6WDEwZmxTZXRlUnZ0ZDg9PC9Nb2R1bHVzPjxFeHBvbmVudD5BUUFCPC9FeHBvbmVudD48L1JTQUtleVZhbHVlPg==\"\nencrypted_data = encrypt(_data, public_xml)\n\n ```\n\n``` java\nimport org.w3c.dom.Document;\nimport org.w3c.dom.Element;\nimport org.w3c.dom.NodeList;\nimport org.xml.sax.SAXException;\nimport javax.crypto.Cipher;\nimport javax.xml.parsers.DocumentBuilder;\nimport javax.xml.parsers.DocumentBuilderFactory;\nimport javax.xml.parsers.ParserConfigurationException;\nimport java.io.File;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\nimport java.io.UnsupportedEncodingException;\nimport java.nio.charset.StandardCharsets;\nimport java.security.*;\nimport java.security.spec.InvalidKeySpecException;\nimport java.security.spec.RSAPublicKeySpec;\nimport java.security.spec.X509EncodedKeySpec;\nimport java.util.Base64;\n//import javax.xml.bind.DatatypeConverter;\npublic class EncryptionHelper {\n    private PrivateKey privateKey;\n    private PublicKey publicKey;\n    public  static String getXmlComponent(String xmlstring, String _field) throws IOException, SAXException, ParserConfigurationException {\n        // Create a DocumentBuilder\n        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();\n        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();\n        // Parse the XML string\n        Document doc = dBuilder.parse(new java.io.ByteArrayInputStream(xmlstring.getBytes(\"UTF-8\")));\n        // Normalize the document\n        doc.getDocumentElement().normalize();\n        NodeList modulusNodeList = doc.getElementsByTagName(_field);\n        String modulusValue = \"\";\n        if (modulusNodeList.getLength() > 0) {\n            Element modulusElement = (Element) modulusNodeList.item(0);\n            // Extract the Modulus value\n            modulusValue = modulusElement.getTextContent();\n            System.out.println(\"Modulus Value: \" + modulusValue);\n        } else {\n            System.out.println(\"Modulus element not found.\");\n        }\n        return modulusValue;\n    }\n    public static byte[] encrypt(String _data, String publicXml) throws Exception {\n        try {\n            var data = _data.getBytes();\n            if (data == null || data.length < 1) {\n                throw new Exception(\"Data sent for encryption is empty\");\n            }\n            // Extract the Modulus and Exponent from the XML\n            // Decode the Base64 string\n            byte[] decodedBytes = Base64.getDecoder().decode(publicXml);\n            // Convert the decoded bytes to a string\n            String decodedString = new String(decodedBytes);\n            var publicxmllkey = decodedString.split(\"!\")[1];\n            System.out.println(publicxmllkey);\n            var modulus = getXmlComponent(publicxmllkey, \"Modulus\");\n            var exponent = getXmlComponent(publicxmllkey, \"Exponent\");\n            String modulusBase64 = modulus;\n            String exponentBase64 = exponent/* extract Exponent from publicXml */;\n            // Convert the Base64-encoded Modulus and Exponent to byte arrays\n            byte[] modulusBytes = Base64.getDecoder().decode(modulusBase64);\n            byte[] exponentBytes =Base64.getDecoder().decode(exponentBase64);\n            // Create RSAPublicKeySpec from Modulus and Exponent\n            RSAPublicKeySpec keySpec = new RSAPublicKeySpec(\n                    new java.math.BigInteger(1, modulusBytes),\n                    new java.math.BigInteger(1, exponentBytes)\n            );\n            // Generate the PublicKey from the RSAPublicKeySpec\n            KeyFactory keyFactory = KeyFactory.getInstance(\"RSA\");\n            PublicKey publicKey = keyFactory.generatePublic(keySpec);\n            // Initialize the Cipher for encryption\n            Cipher cipher = Cipher.getInstance(\"RSA/ECB/PKCS1Padding\");\n            cipher.init(Cipher.ENCRYPT_MODE, publicKey);\n            // Encrypt the data\n            byte[] encryptedBytes = cipher.doFinal(data);\n            return encryptedBytes;\n        } catch (Exception e) {\n            throw e;\n        }\n    }\n    public EncryptionHelper() throws Exception {\n        var rowdata = \"Hello World\";\n        var publicxml = \"NDA5NiE8UlNBS2V5VmFsdWU+PE1vZHVsdXM+eTJTSXdvQTY4cmNwZlNYcjJwbWhUYmp3NzRLOEgwTW5CN2NhbWNSVStlMVZmZ3o3d2xISysvYi9kdE9NLzVtYVBZV1l0aW1YcURoNlppTHZyUytqaklhVkhjS2trS3dscTNrK1BTSDR1ckpqeElOQSt4RHBQSW1aWFVLMjJobmp2c2s1YTM2Vkx2Q1NPd2IwTXJXaHJwaXNKem9sS3VEaFR1MjhnYWNsT1FaR2JoNStNazdyV0ZnVjVLZThqcUFZK1FIMk16RmZYNys3ZldKbXhGQTlReEI5SThTODhBMC9SWm5SNUlJQWtrRHh3aGtsSlB0NEtQeG5GT0RmTHQyR3Z0YXp3NmlTNmNUUlBHVkF5MmNocDRrZmZSVFcrd0FhaTlycTV5V2h0cHFaOVlCZ1N1MUFLd2twd01NL3o0cVJHWDJOdWZoOEtnMWV6cUs0WkVnTGhOYnN1aXZ5NmdZNEZxMjdSZWpndDN1S0hmdmExaUtYLysxVVI5cmlIMjJYUVZEMzFIamFieUJoZ2lTcVBIMzgwUVBNMnlpdnpKZDdyWDZqMEpzZk1NRFlGejJzMCtIUHJoQmd6cFBua3l2S0RGMUFZcjRTc2RQaitCNUxrYlZESUg4TC9zZE1DcEpyblJqMWlHRXgvWUl4U1ExdEJFZWFnbWFxVVF2VVJYV2hOeHNIS0Nxa3Buelh3bVdpT3FUR1RNRWdpc2UvbkI3SHVuVlRITEZ0d0UyVE1LYXZxbEFkUHNxMytlSFNqUzhQVmZNK1IxL1VoMUVTR09aOFZZdThTMjdFYWl6dDY4SmhVbDQ0NnVjT0R4VEJTckFYS0ptdGhjZk9MZzNYekU5TVlkaEZiWisxRzlHbi91YkVFd2ZiZVZsOVViVXZ6WDEwZmxTZXRlUnZ0ZDg9PC9Nb2R1bHVzPjxFeHBvbmVudD5BUUFCPC9FeHBvbmVudD48L1JTQUtleVZhbHVlPg==\";\n        var result = encrypt(rowdata, publicxml);\n        // Encode the byte array to a Base64 string\n        String base64String = Base64.getEncoder().encodeToString(result);\n        System.out.println(\"Converted successfully\");\n        System.out.println(base64String);\n    }\n    public static void main(String[] args) throws Exception {\n        EncryptionHelper keyPairGenerator = new EncryptionHelper();\n    }\n}\n\n ```\n\n``` php\nrequire 'vendor/autoload.php';\nuse phpseclib3\\Crypt\\RSA;\nuse phpseclib3\\Math\\BigInteger;\nfunction getXmlComponent($xmlstring, $field)\n{\n    try {\n        // Load XML\n        $xml = new SimpleXMLElement($xmlstring);\n        // Register namespaces if any\n        $namespaces = $xml->getNamespaces(true);\n        foreach ($namespaces as $prefix => $namespace) {\n            if ($prefix === '') {\n                $prefix = 'default';\n            }\n            $xml->registerXPathNamespace($prefix, $namespace);\n        }\n        // Construct the correct XPath query\n        $result = null;\n        if (!empty($namespaces)) {\n            foreach ($namespaces as $prefix => $namespace) {\n                $prefix = $prefix ?: 'default';\n                $result = $xml->xpath(\"//$prefix:$field\");\n                if ($result) {\n                    break;\n                }\n            }\n        } else {\n            $result = $xml->xpath(\"//$field\");\n        }\n        // Check if the element was found\n        if ($result && count($result) > 0) {\n            return (string)$result[0];\n        } else {\n            echo \"Element $field not found.\\n\";\n            return \"\";\n        }\n    } catch (Exception $e) {\n        echo \"Error: \" . $e->getMessage() . \"\\n\";\n        return \"\";\n    }\n}\nfunction encryptData($data, $public_xml)\n{\n    try {\n        if (!$data) {\n            throw new Exception(\"Data sent for encryption is empty\");\n        }\n        // Decode the Base64 string\n        $decoded_bytes = base64_decode($public_xml);\n        $decoded_string = mb_convert_encoding($decoded_bytes, 'UTF-8');\n        $public_xml_key = explode('!', $decoded_string)[1];\n        echo $public_xml_key;\n        $modulus = getXmlComponent($public_xml_key, \"Modulus\");\n        $exponent = getXmlComponent($public_xml_key, \"Exponent\");\n        $modulus_bytes = base64_decode($modulus);\n        $exponent_bytes = base64_decode($exponent);\n        // Create an RSA public key from Modulus and Exponent\n        $rsa = RSA::loadFormat('raw', [\n            'n' => new BigInteger($modulus_bytes, 256),\n            'e' => new BigInteger($exponent_bytes, 256)\n        ]);\n        echo \"Trying to encrypt data\" . \"\\n\";\n        // Encrypt data\n        $rsa = $rsa->withPadding(RSA::ENCRYPTION_PKCS1);\n        $encrypted = $rsa->encrypt($data);\n        // Convert to base 64 string\n        $encrypted_base64 = base64_encode($encrypted);\n        echo \"base 64 value\" . \"\\n\";\n        echo $encrypted_base64 . \"\\n\";\n        return $encrypted_base64;\n    } catch (Exception $e) {\n        echo \"Error: \" . $e->getMessage() . \"\\n\";\n        return \"No encrypted ata\";\n    }\n}\n// Example usage\n$data = \"{\\r\\n    \\\"customer\\\": {\\r\\n        \\\"firstname\\\": \\\"firstname\\\",\\r\\n        \\\"lastname\\\": \\\"lastname\\\",\\r\\n        \\\"mobile\\\": \\\"+2348158200000\\\",\\r\\n        \\\"country\\\": \\\"NG\\\",\\r\\n        \\\"email\\\": \\\"email@pay.dev\\\"\\r\\n    },\\r\\n    \\\"order\\\": {\\r\\n        \\\"amount\\\": 3,\\r\\n       \n\\\"reference\\\": \\\"223232323121212122121QWW2QWWW\\\",\\r\\n        \\\"description\\\": \\\"Pay\\\",\\r\\n        \\\"currency\\\": \\\"USD\\\"\\r\\n    },\\r\\n    \\\"payment\\\": {\\r\\n        \\\"RedirectUrl\\\": \\\"https://www.hi.com\\\"\\r\\n    }\\r\\n}\";\n$public_xml = \"NDA5NiE8UlNBS2V5VmFsdWU+PE1vZHVsdXM+eStWT0Q0Ymp2bnZ5Wmh6eW9ySDRNMDlpRGlGeXFwTlRGYVV6WU9ER3lFaXNqRFBkdEVCdjJvbzNyTm1vMkt6TmJTSGl1MzdmeDhKdWN3bHRIUHUrank0bUFSNGp5N0ZiOURkT2x3blpVaDVUMnlXSUU2OExhL3hGTFJQUTN3TmpkNER0RStpbkM0YStHQ1hQR0FTVm5XS3MrM1hQcEpiS1FFVHZxYUluVUZ0RVZQaGtabGtWNXpNRWU0eVVDNzZDSGxxR0hWMWJobXNEdS9GKzVEVHMvY1REd2NOSStXN1RHUjZuRmhnUFkrQU9vV3R2QzRobVBYc1VhR3NjVjNkbkV6Q0lDUTMxZHQwZ0NYdVdqN21LZ1dyT3N2a2IvaUp6RkVpRzdRL1hqaENiTzRRWENZcEF2eEpWSGkrQWV2WlYxTDQrRW9vZWVLU3N0REoxYlF2WW00L1NnQmszN0FZQXNEUElRZFUzaGsrbFdSWjhXeWRhZ2RlV3FHbVUybEt2Y1Z6MDMzVk1RMlZzS2x0NmFldG01Rmtsc3FpeFJPWUpxZHBMUU1BZldQVGxVLytQUUxMWHFEbUxOZ3ZFWm5PUEFjeE1EbEg2dEh0RVhvLysxQ1RmNzdEaDhPTGpmcGgvWTBCU3pjRndDODE0NUlld0hBSW9ZTTFLeUNvdElFazVyQXVxZks2aHpEWS9CUnN6VkNLYTVNNTVXRDJzclJ6dFVtNHNlaUNoVzlZVlV6ZUg1MFV3RmN3b1pLTlN5UEhYMXJocE54eTZkV2JXWVNuMjQwZTVwWEFQWFgyNUEwRElWK1RUMjcxNnRPQ2pxanpaMENZbXpkZ3ozYmVlQi8yQzRKV2lsZlNxejYyY3llWDVFem5PdE9rNkRNWEZrY2xPMzhMNVU4RTIwZlU9PC9Nb2R1bHVzPjxFeHBvbmVudD5BUUFCPC9FeHBvbmVudD48L1JTQUtleVZhbHVlPg==\";\n$encrypted_data = encryptData($data, $public_xml);\necho \"Encrypted data\" . \"\\n\";\necho $encrypted_data . \"\\n\";\n\n ```","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"10904236","team":6631336,"collectionId":"77865adb-1366-4a1b-a0d4-f7c789228060","publishedId":"2sAXxMfDTH","public":true,"publicUrl":"https://documenter-api.postman.tech/view/10904236/2sAXxMfDTH","privateUrl":"https://go.postman.co/documentation/10904236-77865adb-1366-4a1b-a0d4-f7c789228060","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2024-10-04T20:20:02.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"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/f9d297a198efd3736e663293781a52868d67d8426151c5c30063a2270911d160","favicon":""},"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"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2sAXxMfDTH"}