{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"99273d91-43d4-48e2-8560-488a387d5d56","name":"Hesabe API v2 Document","description":"# Hesabe Payment API Integration Guide\n\n# Overview\n\nThis document provides guidelines to integrate with Hesabe Payment Gateway APIs.\n\n# Introduction\n\nHesabe Payment Gateway allows authorized Merchants to accept payment from their customers. It is a secured payment gateway which provides high level SSL encryption and promises a protected payment cycle with your application using secure Authentication and PCI DSS compliant encryption.  \nHesabe provides a payment integration kit that allows merchants to instantly collect payments from their users using Knet and MPGS payment modes. The Hesabe payment integration supports a seamless payment experience on your platform, while protecting your application from payment frauds and complexity related to various regulations.\n\n# Environments\n\nHesabe provides two environments - test and production.\n\nMerchants need an active Hesabe account to use the test environment and production environment. Merchants will have to log in to the Hesabe Merchant Panel and get the API credentials for using these environments.\n\nAll transactions initiated by the merchant on our test environment are not processed. Test environment is strictly for testing the request and response functions. After successfully testing the integration, merchants can move to the production environment by changing the URL.\n\n##### Test URL:\n\n```\nhttps://sandbox.hesabe.com/checkout\n\n ```\n\n##### Production URL:\n\n```\nhttps://api.hesabe.com/checkout\n\n ```\n\n# Steps to integrate Hesabe Payment Gateway\n\n1. Sign Up with Hesabe and get a Merchant Account created and approved.\n    \n2. Login to `Merchant Panel` using the credentials provided after Registration\n    \n3. Download _Hesabe Payment Integration Kit_ (on PHP Platform, other platforms will be added soon).\n    \n4. Copy `Encryption Key` from Account section.\n    \n5. `Access Code` & `IV Key` will be shared by Hesabe.\n    \n6. Configure Hesabe security keys in your application.\n    \n7. Create Payment form and deploy request / response handlers with the guidance of the integration kit.\n    \n8. Create return pages for handling payment notification on success or cancel.\n    \n\n# Download Hesabe payment gateway integration kit\n\nThe Hesabe payment gateway integration kit is a client library provided by Hesabe. This integration kit is available for PHP platform and will soon be available for other platforms such as Swift (iOS) and Java (Android), Python, and Asp.Net.\n\nAfter Signing in with the approved Merchant account you can download the Integration Kit. From the Merchant Panel Dashboard, navigate through _Resources > Download Integration Kit > Download PHP_ to get the integration kit for the PHP.\n\nWhen you download the integration kit from the Hesabe merchant dashboard, it contains request response payment handler files. The integration kit also contains HesabeCrypto.php with the collection of functions to encrypt decrypt merchant data using AES-256-CBC.\n\n# Access Hesabe Merchant ID, Access Code and Encryption Keys\n\nFor implementing Hesabe payment gateway integration, the Merchant id, Access Code and the Encryption Keys (Secret Key + IV Key) are the prime information to be passed with the payment request. To get these, you need to have an activated Hesabe Merchant account.\n\nAfter you login to Hesabe Merchant Panel using Merchant account credentials, you can see the dashboard with menu option “Account”.\n\nUnder Security Keys, it will display the Merchant Id, Access Code and Secret Key. IV Key will be shared along with the credentials to access the Merchant Dashboard after account activation.\n\n### Need to add image here\n\nYou need to copy the keys and configure them in your environment to send a payment request.\n\n# Integrating with Hesabe Payment Gateway API end-point\n\n##### Posting Payment Data\n\nPayment data containing the following fields in encrypted form need to be submitted during _Checkout_ for initiating the payment request.\n\n- amount\n    \n- responseUrl\n    \n- failureUrl\n    \n- merchantCode\n    \n- paymentType\n    \n- version\n    \n- variable1 (Optional)\n    \n- variable2 (Optional)\n    \n- variable3 (Optional)\n    \n- variable4 (Optional)\n    \n- variable5 (Optional)\n    \n\n##### Request Parameters\n\n| Name | Description | Type/Length |\n| --- | --- | --- |\n| `amount` | Amount must be greater than zero | Numeric |\n| `responseUrl` | Webpay will be redirected back to this url after payment completes | Alphanumeric (200) Characters allowed: Alphabet (A-Z), (a-z), Numbers, / (slash),_ (underscore) |\n| `failureUrl` | Webpay will be redirected back to this url after payment is declined | Alphanumeric (200) Characters allowed: Alphabet (A-Z), (a-z), Numbers, / (slash),_ (underscore) |\n| `merchantCode` | Merchant Code is a unique identifier generated by Hesabe for each activated merchant. | Numeric |\n| `access_code` | Access code is used to revalidate a Merchant. To be used only for Indirect Integration. | Alphanumeric\\[32\\] |\n| `paymentType` | Payment Type 0, 1 or 2; 0 - Indirect, 1 - Knet, 2 - MPGS | Numeric |\n| `version` | Version of the API (example 2.0) | Alphanumeric \\[10\\] |\n| `variable1` | Custom user parameter which will be included in the response when it returns | Alphanumeric \\[100\\] |\n| `variable2` | Custom user parameter which will be included in the response when it returns | Alphanumeric \\[100\\] |\n| `variable3` | Custom user parameter which will be included in the response when it returns | Alphanumeric \\[100\\] |\n| `variable4` | Custom user parameter which will be included in the response when it returns | Alphanumeric \\[100\\] |\n| `variable5` | Custom user parameter which will be included in the response when it returns | Alphanumeric \\[100\\] |\n\nThe data is posted/passed to the _HesabeRequestHandler_ that will concatenate and encrypt the data before invoking the Hesabe Payment API endpoint.\n\n# HesabeRequestHandler\n\nThe payment data posted/passed via the checkout form is handled by _HesabeRequestHandler_. The posted data are first validated and encrypted in this file. The Encryption key and IV (Initialization Vector) taken from Profile page of Hesabe Merchant dashboard are used as the encryption keys.\n\nThe following sample PHP code snippets demonstrates how the process can be implemented in PHP Laravel.\n\n###### Validation\n\n```\n$validator = $this->validate($request, [\n            'merchantCode' => 'required',\n            'access_code => 'required', // Only for Indirect Integration\n            'amount' => 'required|numeric|between:0.200,100000|regex:/^\\d+(\\.\\d{1,3})?$/',\n            'paymentType' => 'required|in:0,1,2',\n            'responseUrl' => 'required|url',\n            'failureUrl' => 'required|url',\n            'version' => 'required'\n        ]);\n\n ```\n\n###### Loading Encryption Keys, Access Code, and API URLs from Config\n\n```\n$ivKey = HSB_IV_KEY;\n$encryptionKey = HSB_ENCRYPTION_KEY;\n$accessCode = HSB_ACCESS_CODE;\n$checkoutApiUrl = HSB_CHECKOUT_API_URL;\n$paymentUrl = HSB_PAYMENT_URL;\n\n ```\n\n##### JSON Encoding\n\nAfter Validation, the request data is JSON encoded which is the array of the request keys & values.\n\n```\n$requestDataJson = json_encode($request->input());\n\n ```\n\n##### Encryption\n\nThis JSON data is then encrypted using AES algorithm with HesabeCrypto library\n\n```\n$encryptedData = HesabeCrypto::encrypt($requestDataJson, $encryptionKey, $ivKey)\n\n ```\n\n##### Invoking Hesabe Payment API “Checkout” endPoint\n\nThe accessCode is initialized in the Request header and the Request data is posted to the Hesabe Payment Gateway Checkout API endpoint.\n\n```\n// $baseUrl =  http://api.hesbstck.com/api/\n// $checkoutApiUrl = {{$baseUrl}}/checkout\n$checkoutRequestData = new Request([\n            'data' => $encryptedData\n        ]);\n$checkoutRequest = Request::create($checkoutApiUrl, 'POST', $checkoutRequestData->all());\n$checkoutRequest->headers->set('accessCode', $accessCode);\n\n ```\n\n##### Reading Response\n\n```\n$checkoutResponse = Route::dispatch($checkoutRequest);\n$checkoutResponseContent = $checkoutResponse->content();\n\n ```\n\n##### Decrypting Response & JSON Decoding\n\n```\n$decryptedResponse = HesabeCrypto::decrypt($checkoutResponseContent, $encryptionKey, $ivKey);\n$responseDataJson = json_decode($decryptedResponse);\n\n ```\n\n##### Invoking Hesabe Payment URL\n\n```\n// $baseUrl =  http://api.hesbstck.com/api/\n// $paymentUrl = {{baseUrl}}/payment\n$responseToken = $responseDataJson->response->data;\nreturn Redirect::to($paymentUrl . '?data='. $responseToken);\n\n ```\n\n# Indirect Integration\n\n```\n// $baseUrl =  http://api.hesbstck.com/api/\n// $checkoutApiUrl = {{$baseUrl}}/checkout/indirect\n\n ```\n\nIn this API, paymentType must be 0. The users will select the final payment method in the next step.\n\n##### Selecting Payment Method\n\nCustomers would be able to select their choice of Payment Method from the Hesabe Gateway Landing page which will load after the step Invoking Hesabe Payment URL. The Hesabe Payment Gateway Page would look similar to as shown below:\n\n##### Insert image here\n\nBased on the selection of Payment Method in this page, the Customer will be redirected to the respective Payment page and Payment Type will be updated in the Hesabe DB.\n\n# Encryption Library\n\nCode below shows the HesabeCrypt file in PHP.\n\n```\nnamespace App\\Libraries;\nuse Hashids\\Hashids;\nclass HesabeCrypt\n{\n    // AES Encryption Method Starts\n    public static function encrypt($str, $key, $ivKey)\n    {        \n        $str = self::pkcs5_pad($str);\n        $encrypted = openssl_encrypt($str, 'AES-256-CBC', $key, OPENSSL_ZERO_PADDING, $ivKey);\n        $encrypted = base64_decode($encrypted);\n        $encrypted = unpack('C*', ($encrypted));\n        $encrypted = self::byteArray2Hex($encrypted);\n        $encrypted = urlencode($encrypted);\n        return $encrypted;\n    }\n    private static function pkcs5_pad($text)\n    {\n        $blocksize = 32;\n        $pad = $blocksize - (strlen($text) % $blocksize);\n        return $text.str_repeat(chr($pad), $pad);\n    }\n    private static function byteArray2Hex($byteArray)\n    {\n        $chars = array_map(\"chr\", $byteArray);\n        $bin = join($chars);\n        return bin2hex($bin);\n    }\n    // Decryption Method for AES Algorithm Starts\n    public static function decrypt($code, $key, $ivKey)\n    {\n        if (!(ctype_xdigit($code) && strlen($code) % 2 == 0)) {\n            return false;\n        }        \n        $code = self::hex2ByteArray(trim($code));\n        $code = self::byteArray2String($code);\n        $iv = $key;\n        $code = base64_encode($code);\n        $decrypted = openssl_decrypt($code, 'AES-256-CBC', $key, OPENSSL_ZERO_PADDING, $ivKey);\n        return self::pkcs5_unpad($decrypted);\n    }\n    private static function hex2ByteArray($hexString)\n    {\n        $string = hex2bin($hexString);\n        return unpack('C*', $string);\n    }\n    private static function byteArray2String($byteArray)\n    {\n        $chars = array_map(\"chr\", $byteArray);\n        return join($chars);\n    }\n    private static function pkcs5_unpad($text)\n    {\n        $pad = ord($text{strlen($text) - 1});\n        if ($pad > strlen($text)) {\n            return false;\n        }\n        if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) {\n            return false;\n        }\n        return substr($text, 0, -1 * $pad);\n    }\n  }\n\n ```\n\n# Processing Response from Payment Gateway\n\nThe response returned from the Payment Gateway would be in a field called ‘data’. This would be encrypted using the same set of AES - IV & Secret Keys and hence would need to be decrypted using HesabeCrypto library’s decrypt function. The value after decryption would be like below:\n\n```\n{\n   \"status\":true,\n   \"code\":200,\n   \"message\":\"Transaction Success\",\n   \"response\":{\n      \"data\":{\n         \"resultCode\":\"CAPTURED\",\n         \"amount\":10,\n         \"paymentToken\":\"1569830677725743478\",\n         \"paymentId\":\"100201927384634224\",\n         \"paidOn\":\"2019-09-30 11:05:16\",\n         \"variable1\":null,\n         \"variable2\":null,\n         \"variable3\":null,\n         \"variable4\":null,\n         \"variable5\":null,\n         \"method\":1,\n         \"administrativeCharge\":\"5\"\n      }\n   }\n}\n\n ```\n\n##### Response Paramters\n\n| Name | Description | Type/Length |\n| --- | --- | --- |\n| status | Payment status (true - success; false - failure) | Numeric \\[1 digit\\] |\n| amount | Transaction amount | Numeric |\n| paymentToken | Payment Token returned from Hesabe | Numeric \\[14 digits\\] |\n| paymentId | Payment Id returned from Hesabe |  |\n| paidOn | Date Time of Payment | Alphanumeric \\[36\\] |\n| Variable1 | Custom user parameter which was passed in request | Alphanumeric \\[100\\] |\n| Variable2 | Custom user parameter which was passed in request | Alphanumeric \\[100\\] |\n| Variable3 | Custom user parameter which was passed in request | Alphanumeric \\[100\\] |\n| Variable4 | Custom user parameter which will be included in the response when it returns | Alphanumeric \\[100\\] |\n| Variable5 | Custom user parameter which was passed in request | Alphanumeric \\[100\\] |\n| method | 1 or 2 (KNET=1 and MPGS =2) | Numeric |\n| administrativeCharge | Administrative Charge | Numeric |\n\nBased on the status (success or failure), appropriate messages can be shown by the client on the confirmation page.\n\n# Moving to Production\n\nAfter testing the Hesabe payment gateway integration in the test environment, you can go live by moving it to the production.\n\nTo go live and use the Hesabe secure production environment, the `https://sandbox.hesabe.com/checkout` target should be replaced with `https://api.hesabe.com/checkout`.\n\n# Testing\n\n##### KNET TESTING\n\n1. Captured (Approved)  \n    Card Number: 8888880000000001  \n    Expiry: 09/2021  \n    Pin: Any Pin\n    \n2. Not Captured (Declined)  \n    Card Number: 8888880000000001  \n    Expiry: Any Expiry  \n    Pin: Any Pin\n    \n\n##### MPGS\n\nCards\n\n- 5123450000000008\n    \n- 2223000000000007  \n    Expiry Dates\n    \n- 05 / 21 APPROVED\n    \n- 05 / 22 DECLINED\n    \n- 04 / 27 EXPIRED_CARD\n    \n- 08 / 28 TIMED_OUT\n    \n- 01 / 37 ACQUIRER_SYSTEM_ERROR\n    \n- 02 / 37 UNSPECIFIED_FAILURE\n    \n- 05 / 37 UNKNOWN  \n    CVV\n    \n- 100 MATCH\n    \n- 101 NOT_PROCESSED\n    \n- 102 NO_MATCH\n    \n\n##### MPGS TEST CARDS INFORMATION\n\n[https://test-nbkpayment.mtf.gateway.mastercard.com/api/documentation/integrationGuidelines/supportedFeatures/testAndGoLive.html?locale=en_US](https://test-nbkpayment.mtf.gateway.mastercard.com/api/documentation/integrationGuidelines/supportedFeatures/testAndGoLive.html?locale=en_US)\n\n# Technical Support\n\nFor any assistance in integrating Hesabe payment gateway kindly contact:  \nHesabe Technical Support  \nEmail : [support@hesabe.com](https://mailto:support@hesabe.com)","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"21452318","collectionId":"99273d91-43d4-48e2-8560-488a387d5d56","publishedId":"2sAYk7SjNd","public":true,"publicUrl":"https://postman.hesabe.com","privateUrl":"https://go.postman.co/documentation/21452318-99273d91-43d4-48e2-8560-488a387d5d56","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":"2025-03-11T07:55:18.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/1a9436a68d32d89f43d1ecc27f4cc981568beb81b81de60d5206b14adfaafd41","favicon":"https://res.cloudinary.com/postman/image/upload/v1598446128/team/hnembtpobdbf2fktdmpw.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"}],"canonicalUrl":"https://postman.hesabe.com/view/metadata/2sAYk7SjNd"}