{"info":{"_postman_id":"1ddf2e28-7f68-4bbd-866a-acfaf7fdad60","name":"Fintech Card Processing","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"description":"<html><head></head><body></body></html>","owner":"33523819","collectionId":"1ddf2e28-7f68-4bbd-866a-acfaf7fdad60","publishedId":"2sA2xiXXoo","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2024-03-12T07:58:42.000Z"},"item":[{"name":"Place Lien","item":[{"name":"Invalid mac","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 12\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"12\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount).to.not.eql(undefined);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"7a768875-b06a-4977-8c1f-5a0cf8c90765"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","    return reqData;\r","}\r","\r","var secretKey = pm.variables.get(\"secret_key\");\r","var walletId = pm.variables.get(\"wallet\");\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"bce37391-f5bd-4209-b86d-7220db12db81"}}],"id":"dec2e693-b49a-4c8a-8a24-c903c3b2b94c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"originalTransactionReference\": \"1596722329968\",\r\n    \"amount\": \"500\",\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2021-05-06T05:08:23\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/lien/place","urlObject":{"path":["lien","place"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"dec2e693-b49a-4c8a-8a24-c903c3b2b94c"},{"name":"Success","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and success\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"00\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount).to.not.eql(undefined);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"b145fe47-e85d-4918-8bc6-041989f4970d"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    return reqData;\r","}\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"ae34eb52-eb37-4931-bf5e-fe3b96d0a3aa"}}],"id":"758c9465-741f-4971-bb4d-98eb643c28bf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 500,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2021-05-06T05:08:23\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/lien/place","urlObject":{"path":["lien","place"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"758c9465-741f-4971-bb4d-98eb643c28bf"},{"name":"wallet/account not found","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 25\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"25\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"15706dac-1df1-4981-8e0f-7c38e2288056"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    console.log(reqBody)\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || reqBody.walletId==null || reqBody.amount==null || reqBody.currencyCode == null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(reqBody.walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    console.log(reqData)\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"641a4021-da1a-4099-8980-d50103022ac4"}}],"id":"6813a1d4-6fdf-4eed-b8c7-8532ab618e84","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"1234567890123456789\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 500,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2021-05-06T05:08:23\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/lien/place","urlObject":{"path":["lien","place"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"6813a1d4-6fdf-4eed-b8c7-8532ab618e84"},{"name":"insufficient fund","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 51\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"51\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"a7535fdc-1b17-4f7d-a072-d11ee8a9d3fb"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"insufficientWallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"eb3f1b87-3dc6-4ff8-b977-99d9fc820b30"}}],"id":"b840990f-5e35-4959-b18a-5ce7aa5ece06","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"a wallet with a balance of 0\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 600005000000,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/lien/place","urlObject":{"path":["lien","place"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"b840990f-5e35-4959-b18a-5ce7aa5ece06"},{"name":"invalid amount","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 13\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"13\");\r","});\r","\r","pm.test(\"amount is not null and invalid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount==0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"fd1de13a-ae24-4f5c-89c7-7216af5e28f3"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    return reqData;\r","}\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"0cf48a3c-5111-43b7-8a73-1c4df083aad3"}}],"id":"07d6ae98-9243-4224-8bb6-c11626bdbc21","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 0,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/lien/place","urlObject":{"path":["lien","place"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"07d6ae98-9243-4224-8bb6-c11626bdbc21"},{"name":"duplicate transaction reference","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 94\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"94\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount).to.not.eql(undefined);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"98773eb8-957b-41ce-a97a-c7ea75797022"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    return reqData;\r","}\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference =  placeLien();\r","var originalTranReference = tranReference;\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"originalTransactionReference\", originalTranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r","\r","function placeLien(){\r","    var reqBody = JSON.parse(request.data);\r","    var lienTranReference = Date.now().toString();\r","    var dRequestId = generateUUID().toString();\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null || reqBody.amount==null || reqBody.acquiringInstitutionId==null || reqBody.terminalId==null || reqBody.terminalType==null || reqBody.merchantId==null || reqBody.currencyCode==null || reqBody.transactionDateTime==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","\r","    var reqData = lienTranReference\r","       .concat(dRequestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","\r","    var raw = JSON.stringify(\r","        {\"requestId\":dRequestId,\r","         \"walletId\":walletId,\r","         \"transactionReference\":lienTranReference,\r","         \"amount\":reqBody.amount,\r","         \"mac\":generateHmac(reqData, secretKey),\r","         \"acquiringInstitutionId\":reqBody.acquiringInstitutionId,\r","         \"terminalId\":reqBody.terminalId,\r","         \"terminalType\":reqBody.terminalType,\r","         \"merchantId\":reqBody.merchantId,\r","         \"currencyCode\":reqBody.currencyCode,\r","         \"cardAcceptorNameLocation\": reqBody.cardAcceptorNameLocation,\r","         \"transactionDateTime\":reqBody.transactionDateTime});\r","\r","    var host = pm.variables.get(\"host\");\r","    pm.sendRequest({\r","    url: host.concat(\"/lien/place\"),\r","    method: 'POST',\r","    header: {\r","        \"Content-Type\": \"application/json\"\r","    },\r","    body: raw\r","    }, function (err, response) {\r","    console.log(response.json());\r","});\r","    return lienTranReference;\r","}\r",""],"id":"42762cd2-810c-4dc2-858c-506597f88c99"}}],"id":"c331f499-97e5-42e5-bb1c-4e4af6147e80","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 500,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/lien/place","urlObject":{"path":["lien","place"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"c331f499-97e5-42e5-bb1c-4e4af6147e80"}],"id":"f9935237-dd99-4536-af84-4079af043f56","description":"<p>Create a Post endpoint on your application with the path <code>/lien/place</code>.This endpoint will be used to authorize <a href=\"https://docs.interswitchgroup.com/v1.1/docs/fintech-card-processing-spec-document#more-context-on-dual-messaging-and-lien\">dual messaging</a>. The main function of this endpoint is to place a lien on the wallet for a specified amount.</p>\n","_postman_id":"f9935237-dd99-4536-af84-4079af043f56"},{"name":"Debit Lien","item":[{"name":"Invalid mac","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 12\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"12\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount).to.not.eql(undefined);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"1a433f29-429c-4ef7-8901-57d83d73d457"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(\"123\")\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"3fec92b1-2ae4-4bcc-8d6b-344fa782df18"}}],"id":"6abc3a35-f559-4977-afb7-2141d185e4e1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 500,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2021-05-06T05:08:23\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/lien/debit","urlObject":{"path":["lien","debit"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"6abc3a35-f559-4977-afb7-2141d185e4e1"},{"name":"Success","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and success\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"00\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount).to.not.eql(undefined);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"946a08be-d754-4305-a09c-8c3efaca4d74"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    return reqData;\r","}\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = placeLien();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"originalTransactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r","\r","function placeLien(){\r","    var reqBody = JSON.parse(request.data);\r","    var lienTranReference = Date.now().toString();\r","    var dRequestId = generateUUID().toString();\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null || reqBody.amount==null || reqBody.acquiringInstitutionId==null || reqBody.terminalId==null || reqBody.terminalType==null || reqBody.merchantId==null || reqBody.currencyCode==null || reqBody.transactionDateTime==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","\r","    var reqData = lienTranReference\r","       .concat(dRequestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","\r","    var raw = JSON.stringify(\r","        {\"requestId\":dRequestId,\r","         \"walletId\":walletId,\r","         \"transactionReference\":lienTranReference,\r","         \"amount\":reqBody.amount,\r","         \"mac\":generateHmac(reqData, secretKey),\r","         \"acquiringInstitutionId\":reqBody.acquiringInstitutionId,\r","         \"terminalId\":reqBody.terminalId,\r","         \"terminalType\":reqBody.terminalType,\r","         \"merchantId\":reqBody.merchantId,\r","         \"currencyCode\":reqBody.currencyCode,\r","         \"cardAcceptorNameLocation\": reqBody.cardAcceptorNameLocation,\r","         \"transactionDateTime\":reqBody.transactionDateTime});\r","\r","    var host = pm.variables.get(\"host\");\r","    pm.sendRequest({\r","    url: host.concat(\"/lien/place\"),\r","    method: 'POST',\r","    header: {\r","        \"Content-Type\": \"application/json\"\r","    },\r","    body: raw\r","    }, function (err, response) {\r","    console.log(response.json());\r","});\r","    return lienTranReference;\r","}\r",""],"id":"ab289a50-8745-4b8b-9a50-5af6ae37d29c"}}],"id":"7dfeb693-e650-4e22-92fa-2677e02744c3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 500,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2021-05-06T05:08:23\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/lien/debit","urlObject":{"path":["lien","debit"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"7dfeb693-e650-4e22-92fa-2677e02744c3"},{"name":"Success amount is 0","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and success\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"00\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount).to.not.eql(undefined);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"92fb0168-65a6-4705-b427-5042175eea38"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    return reqData;\r","}\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = placeLien();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"originalTransactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r","\r","function placeLien(){\r","    var reqBody = JSON.parse(request.data);\r","    var lienTranReference = Date.now().toString();\r","    var dRequestId = generateUUID().toString();\r","    var amount = 500;\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null || reqBody.amount==null || reqBody.acquiringInstitutionId==null || reqBody.terminalId==null || reqBody.terminalType==null || reqBody.merchantId==null || reqBody.currencyCode==null || reqBody.transactionDateTime==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","\r","    var reqData = lienTranReference\r","       .concat(dRequestId)\r","       .concat(walletId)\r","       .concat(amount)\r","       .concat(reqBody.currencyCode);\r","\r","    var raw = JSON.stringify(\r","        {\"requestId\":dRequestId,\r","         \"walletId\":walletId,\r","         \"transactionReference\":lienTranReference,\r","         \"amount\":amount,\r","         \"mac\":generateHmac(reqData, secretKey),\r","         \"acquiringInstitutionId\":reqBody.acquiringInstitutionId,\r","         \"terminalId\":reqBody.terminalId,\r","         \"terminalType\":reqBody.terminalType,\r","         \"merchantId\":reqBody.merchantId,\r","         \"currencyCode\":reqBody.currencyCode,\r","         \"cardAcceptorNameLocation\": reqBody.cardAcceptorNameLocation,\r","         \"transactionDateTime\":reqBody.transactionDateTime});\r","\r","    var host = pm.variables.get(\"host\");\r","    pm.sendRequest({\r","    url: host.concat(\"/lien/place\"),\r","    method: 'POST',\r","    header: {\r","        \"Content-Type\": \"application/json\"\r","    },\r","    body: raw\r","    }, function (err, response) {\r","    console.log(response.json());\r","});\r","    return lienTranReference;\r","}\r",""],"id":"704a99dd-77e4-42b8-851c-60a2f7b0a066"}}],"id":"e7a917e8-4b1d-464f-9f08-1efd4d260e40","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 0,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2021-05-06T05:08:23\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/lien/debit","urlObject":{"path":["lien","debit"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"e7a917e8-4b1d-464f-9f08-1efd4d260e40"},{"name":"wallet/account not found","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 25\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"25\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"93c46912-5000-4e39-a14c-b341fc25e939"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    console.log(reqBody)\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || reqBody.walletId==null || reqBody.amount==null || reqBody.currencyCode == null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(reqBody.walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    console.log(reqData)\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var originalTransReference = tranReference;\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"originalTransactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"efdd9656-ae7f-4a4e-8bcd-900311b31d4e"}}],"id":"75526675-f909-4b84-ad9e-af86951a6902","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"1234567890123456789\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 500,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2021-05-06T05:08:23\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/lien/debit","urlObject":{"path":["lien","debit"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"75526675-f909-4b84-ad9e-af86951a6902"},{"name":"amt greater than lien","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 00\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"00\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"322db6f2-051a-45ee-9e38-1e86c95f961d"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = placeLien();\r","var originalTranReference = tranReference;\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"originalTransactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r","\r","function placeLien(){\r","    var reqBody = JSON.parse(request.data);\r","    var lienTranReference = Date.now().toString();\r","    var amount = reqBody.amount - 1;\r","    var dRequestId = generateUUID().toString();\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null || reqBody.amount==null || reqBody.acquiringInstitutionId==null || reqBody.terminalId==null || reqBody.terminalType==null || reqBody.merchantId==null || reqBody.currencyCode==null || reqBody.transactionDateTime==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","\r","    var reqData = lienTranReference\r","       .concat(dRequestId)\r","       .concat(walletId)\r","       .concat(amount)\r","       .concat(reqBody.currencyCode);\r","\r","    var raw = JSON.stringify(\r","        {\"requestId\":dRequestId,\r","         \"walletId\":walletId,\r","         \"transactionReference\":lienTranReference,\r","         \"amount\":amount,\r","         \"mac\":generateHmac(reqData, secretKey),\r","         \"acquiringInstitutionId\":reqBody.acquiringInstitutionId,\r","         \"terminalId\":reqBody.terminalId,\r","         \"terminalType\":reqBody.terminalType,\r","         \"merchantId\":reqBody.merchantId,\r","         \"currencyCode\":reqBody.currencyCode,\r","         \"cardAcceptorNameLocation\": reqBody.cardAcceptorNameLocation,\r","         \"transactionDateTime\":reqBody.transactionDateTime});\r","\r","    var host = pm.variables.get(\"host\");\r","    pm.sendRequest({\r","    url: host.concat(\"/lien/place\"),\r","    method: 'POST',\r","    header: {\r","        \"Content-Type\": \"application/json\"\r","    },\r","    body: raw\r","    }, function (err, response) {\r","    console.log(response.json());\r","});\r","    return lienTranReference;\r","}\r",""],"id":"748f78a1-ad44-481f-909c-c3a190be004f"}}],"id":"f1718f0e-73b1-43ef-913f-027c593cda8f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 100,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/lien/debit","urlObject":{"path":["lien","debit"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"f1718f0e-73b1-43ef-913f-027c593cda8f"},{"name":"amt lesser than lien","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 00\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"00\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"a091998f-f68f-4039-9bbf-cb7ec2ac14ed"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = placeLien();\r","var originalTranReference = tranReference;\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"originalTransactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r","\r","function placeLien(){\r","    var reqBody = JSON.parse(request.data);\r","    var lienTranReference = Date.now().toString();\r","    var amount = reqBody.amount + 1;\r","    var dRequestId = generateUUID().toString();\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null || reqBody.amount==null || reqBody.acquiringInstitutionId==null || reqBody.terminalId==null || reqBody.terminalType==null || reqBody.merchantId==null || reqBody.currencyCode==null || reqBody.transactionDateTime==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","\r","    var reqData = lienTranReference\r","       .concat(dRequestId)\r","       .concat(walletId)\r","       .concat(amount)\r","       .concat(reqBody.currencyCode);\r","\r","    var raw = JSON.stringify(\r","        {\"requestId\":dRequestId,\r","         \"walletId\":walletId,\r","         \"transactionReference\":lienTranReference,\r","         \"amount\":amount,\r","         \"mac\":generateHmac(reqData, secretKey),\r","         \"acquiringInstitutionId\":reqBody.acquiringInstitutionId,\r","         \"terminalId\":reqBody.terminalId,\r","         \"terminalType\":reqBody.terminalType,\r","         \"merchantId\":reqBody.merchantId,\r","         \"currencyCode\":reqBody.currencyCode,\r","         \"cardAcceptorNameLocation\": reqBody.cardAcceptorNameLocation,\r","         \"transactionDateTime\":reqBody.transactionDateTime});\r","\r","    var host = pm.variables.get(\"host\");\r","    pm.sendRequest({\r","    url: host.concat(\"/lien/place\"),\r","    method: 'POST',\r","    header: {\r","        \"Content-Type\": \"application/json\"\r","    },\r","    body: raw\r","    }, function (err, response) {\r","    console.log(response.json());\r","});\r","    return lienTranReference;\r","}\r",""],"id":"570345b0-2aed-4247-9fc6-e261d0f1521f"}}],"id":"f2b62a99-0e96-4470-9ad4-2177af6f1d94","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 100,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/lien/debit","urlObject":{"path":["lien","debit"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"f2b62a99-0e96-4470-9ad4-2177af6f1d94"},{"name":"Insufficient fund - amt greater than lien","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 51\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"51\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"082f8bf7-a23d-4940-8719-bb8c7b545879"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"insufficientWallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = placeLien();\r","var originalTranReference = tranReference;\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"originalTransactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r","\r","function placeLien(){\r","    var reqBody = JSON.parse(request.data);\r","    var lienTranReference = Date.now().toString();\r","    var amount = reqBody.amount/100000;\r","    var dRequestId = generateUUID().toString();\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null || reqBody.amount==null || reqBody.acquiringInstitutionId==null || reqBody.terminalId==null || reqBody.terminalType==null || reqBody.merchantId==null || reqBody.currencyCode==null || reqBody.transactionDateTime==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","\r","    var reqData = lienTranReference\r","       .concat(dRequestId)\r","       .concat(walletId)\r","       .concat(amount)\r","       .concat(reqBody.currencyCode);\r","\r","    var raw = JSON.stringify(\r","        {\"requestId\":dRequestId,\r","         \"walletId\":walletId,\r","         \"transactionReference\":lienTranReference,\r","         \"amount\":amount,\r","         \"mac\":generateHmac(reqData, secretKey),\r","         \"acquiringInstitutionId\":reqBody.acquiringInstitutionId,\r","         \"terminalId\":reqBody.terminalId,\r","         \"terminalType\":reqBody.terminalType,\r","         \"merchantId\":reqBody.merchantId,\r","         \"currencyCode\":reqBody.currencyCode,\r","         \"cardAcceptorNameLocation\": reqBody.cardAcceptorNameLocation,\r","         \"transactionDateTime\":reqBody.transactionDateTime});\r","\r","    var host = pm.variables.get(\"host\");\r","    pm.sendRequest({\r","    url: host.concat(\"/lien/place\"),\r","    method: 'POST',\r","    header: {\r","        \"Content-Type\": \"application/json\"\r","    },\r","    body: raw\r","    }, function (err, response) {\r","    console.log(response.json());\r","});\r","    return lienTranReference;\r","}\r",""],"id":"8bdb9bf8-80d7-48ec-97f4-0a925f35644e"}}],"id":"73027f95-a2ca-4380-8b82-1339bb1d379e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"a wallet with a balance of 0\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 600005000000,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/lien/debit","urlObject":{"path":["lien","debit"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"73027f95-a2ca-4380-8b82-1339bb1d379e"},{"name":"unrecognised original tran ref","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 25\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"25\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"4ae66207-3749-48ab-8a33-58a5a4720898"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"originalTransactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"ce964c3b-1d66-4c1d-915f-6048d98388f6"}}],"id":"d9194443-d0e4-427d-b267-2e0c0ae4e58e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 500,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/lien/debit","urlObject":{"path":["lien","debit"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"d9194443-d0e4-427d-b267-2e0c0ae4e58e"},{"name":"duplicate transaction reference","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 94\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"94\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount).to.not.eql(undefined);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"298320d4-9b0c-44fb-87fa-7e14b43e26e8"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    return reqData;\r","}\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference =  placeLien();\r","var originalTranReference = tranReference;\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"originalTransactionReference\", originalTranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r","\r","function placeLien(){\r","    var reqBody = JSON.parse(request.data);\r","    var lienTranReference = Date.now().toString();\r","    var dRequestId = generateUUID().toString();\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null || reqBody.amount==null || reqBody.acquiringInstitutionId==null || reqBody.terminalId==null || reqBody.terminalType==null || reqBody.merchantId==null || reqBody.currencyCode==null || reqBody.transactionDateTime==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","\r","    var reqData = lienTranReference\r","       .concat(dRequestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","\r","    var raw = JSON.stringify(\r","        {\"requestId\":dRequestId,\r","         \"walletId\":walletId,\r","         \"transactionReference\":lienTranReference,\r","         \"amount\":reqBody.amount,\r","         \"mac\":generateHmac(reqData, secretKey),\r","         \"acquiringInstitutionId\":reqBody.acquiringInstitutionId,\r","         \"terminalId\":reqBody.terminalId,\r","         \"terminalType\":reqBody.terminalType,\r","         \"merchantId\":reqBody.merchantId,\r","         \"currencyCode\":reqBody.currencyCode,\r","         \"cardAcceptorNameLocation\": reqBody.cardAcceptorNameLocation,\r","         \"transactionDateTime\":reqBody.transactionDateTime});\r","\r","    var host = pm.variables.get(\"host\");\r","    pm.sendRequest({\r","    url: host.concat(\"/lien/place\"),\r","    method: 'POST',\r","    header: {\r","        \"Content-Type\": \"application/json\"\r","    },\r","    body: raw\r","    }, function (err, response) {\r","        console.log(response.json());\r","        debitLien(lienTranReference);\r","    });\r","    return lienTranReference;\r","}\r","\r","function debitLien(lienTranReference){\r","    var reqBody = JSON.parse(request.data);\r","    var dRequestId = generateUUID().toString();\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null || reqBody.amount==null || reqBody.acquiringInstitutionId==null || reqBody.terminalId==null || reqBody.terminalType==null || reqBody.merchantId==null || reqBody.currencyCode==null || reqBody.transactionDateTime==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","\r","    var reqData = lienTranReference\r","       .concat(dRequestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","\r","    var raw = JSON.stringify(\r","        {\"requestId\":dRequestId,\r","         \"walletId\":walletId,\r","         \"transactionReference\":lienTranReference,\r","         \"amount\":reqBody.amount,\r","         \"mac\":generateHmac(reqData, secretKey),\r","         \"acquiringInstitutionId\":reqBody.acquiringInstitutionId,\r","         \"terminalId\":reqBody.terminalId,\r","         \"terminalType\":reqBody.terminalType,\r","         \"merchantId\":reqBody.merchantId,\r","         \"currencyCode\":reqBody.currencyCode,\r","         \"cardAcceptorNameLocation\": reqBody.cardAcceptorNameLocation,\r","         \"transactionDateTime\":reqBody.transactionDateTime});\r","\r","    var host = pm.variables.get(\"host\");\r","    pm.sendRequest({\r","    url: host.concat(\"/lien/debit\"),\r","    method: 'POST',\r","    header: {\r","        \"Content-Type\": \"application/json\"\r","    },\r","    body: raw\r","    }, function (err, response) {\r","    console.log(response.json());\r","});\r","    return lienTranReference;\r","}\r",""],"id":"605ebb9e-4c95-4444-87ca-ccf641e04dbf"}}],"id":"168c3821-223a-4c90-9029-ecb62e5351f2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 500,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/lien/debit","urlObject":{"path":["lien","debit"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"168c3821-223a-4c90-9029-ecb62e5351f2"}],"id":"3bbf031c-b891-4d1f-b18c-ab9902693bdf","description":"<p>Create a Post endpoint on your application with the path <code>/lien/place</code>.This endpoint will be used to authorize <a href=\"https://docs.interswitchgroup.com/v1.1/docs/fintech-card-processing-spec-document#more-context-on-dual-messaging-and-lien\">dual messaging</a>. The main function of this endpoint is to place a lien on the wallet for a specified amount.</p>\n","_postman_id":"3bbf031c-b891-4d1f-b18c-ab9902693bdf"},{"name":"Reversal","item":[{"name":"Invalid mac","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 12\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"12\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount).to.not.eql(undefined);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"9004ff88-252a-4501-a48d-962bb0094c2c"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"5c72d2ab-9464-4c60-8e1f-f6e897a7cfde"}}],"id":"67389fdc-f1b2-4eb9-bc24-1c20600189ce","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"originalTransactionReference\": \"1596722329968\",\r\n    \"amount\": 500,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/reverse","urlObject":{"path":["reverse"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"67389fdc-f1b2-4eb9-bc24-1c20600189ce"},{"name":"Success","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and success\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"00\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount).to.not.eql(undefined);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"fc6ca20a-0426-470c-b512-036f9b3bc24a"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(originalTranReference)\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    return reqData;\r","}\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var originalTranReference = doDebit();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"originalTransactionReference\", originalTranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r","\r","function doDebit(){\r","    var reqBody = JSON.parse(request.data);\r","    var debitTranReference = Date.now().toString();\r","    var dRequestId = generateUUID().toString();\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null || reqBody.amount==null || reqBody.acquiringInstitutionId==null || reqBody.terminalId==null || reqBody.terminalType==null || reqBody.merchantId==null || reqBody.currencyCode==null || reqBody.transactionDateTime==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","\r","    var reqData = debitTranReference\r","       .concat(dRequestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","\r","    var raw = JSON.stringify(\r","        {\"requestId\":dRequestId,\r","         \"walletId\":walletId,\r","         \"transactionReference\":debitTranReference,\r","         \"amount\":reqBody.amount,\r","         \"mac\":generateHmac(reqData, secretKey),\r","         \"acquiringInstitutionId\":reqBody.acquiringInstitutionId,\r","         \"terminalId\":reqBody.terminalId,\r","         \"terminalType\":reqBody.terminalType,\r","         \"merchantId\":reqBody.merchantId,\r","         \"currencyCode\":reqBody.currencyCode,\r","         \"cardAcceptorNameLocation\": reqBody.cardAcceptorNameLocation,\r","         \"transactionDateTime\":reqBody.transactionDateTime});\r","\r","    var host = pm.variables.get(\"host\");\r","    pm.sendRequest({\r","    url: host.concat(\"/debit\"),\r","    method: 'POST',\r","    header: {\r","        \"Content-Type\": \"application/json\"\r","    },\r","    body: raw\r","    }, function (err, response) {\r","    console.log(response.json());\r","});\r","    return debitTranReference;\r","}\r",""],"id":"0123d189-7e38-42a8-8ff1-72d31b893fef"}}],"id":"3b580ab4-d8a9-4397-8a84-bb1b9c9dc68e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"originalTransactionReference\": \"{{originalTransactionReference}}\",\r\n    \"amount\": 500,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/reverse","urlObject":{"path":["reverse"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"3b580ab4-d8a9-4397-8a84-bb1b9c9dc68e"},{"name":"duplicate transaction reference","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 94\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"94\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"a0b10db7-6411-4c0a-9acc-521fb7b54e19"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(originalTranReference)\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = doDebit();\r","var originalTranReference = tranReference;\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"originalTransactionReference\", originalTranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r","\r","function doDebit(){\r","    var reqBody = JSON.parse(request.data);\r","    var debitTranReference = Date.now().toString();\r","    var dRequestId = generateUUID().toString();\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null || reqBody.amount==null || reqBody.acquiringInstitutionId==null || reqBody.terminalId==null || reqBody.terminalType==null || reqBody.merchantId==null || reqBody.currencyCode==null || reqBody.transactionDateTime==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","\r","    var reqData = debitTranReference\r","       .concat(dRequestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","\r","    var raw = JSON.stringify(\r","        {\"requestId\":dRequestId,\r","         \"walletId\":walletId,\r","         \"transactionReference\":debitTranReference,\r","         \"amount\":reqBody.amount,\r","         \"mac\":generateHmac(reqData, secretKey),\r","         \"acquiringInstitutionId\":reqBody.acquiringInstitutionId,\r","         \"terminalId\":reqBody.terminalId,\r","         \"terminalType\":reqBody.terminalType,\r","         \"merchantId\":reqBody.merchantId,\r","         \"currencyCode\":reqBody.currencyCode,\r","         \"cardAcceptorNameLocation\": reqBody.cardAcceptorNameLocation,\r","         \"transactionDateTime\":reqBody.transactionDateTime});\r","\r","    var host = pm.variables.get(\"host\");\r","    pm.sendRequest({\r","    url: host.concat(\"/debit\"),\r","    method: 'POST',\r","    header: {\r","        \"Content-Type\": \"application/json\"\r","    },\r","    body: raw\r","    }, function (err, response) {\r","    console.log(response.json());\r","    doReversal(debitTranReference);\r","});\r","    return debitTranReference;\r","}\r","\r","function doReversal(debitTranReference){\r","    var dRequestId = generateUUID().toString();\r","\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null || reqBody.amount==null || reqBody.acquiringInstitutionId==null || reqBody.terminalId==null || reqBody.terminalType==null || reqBody.merchantId==null || reqBody.currencyCode==null || reqBody.transactionDateTime==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","    var reqData = debitTranReference\r","       .concat(debitTranReference)\r","       .concat(dRequestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","\r","    var raw = JSON.stringify(\r","        {\"requestId\":dRequestId,\r","         \"walletId\":walletId,\r","         \"transactionReference\":debitTranReference,\r","         \"originalTransactionReference\": debitTranReference,\r","         \"amount\":reqBody.amount,\r","         \"mac\":generateHmac(reqData, secretKey),\r","         \"acquiringInstitutionId\":reqBody.acquiringInstitutionId,\r","         \"terminalId\":reqBody.terminalId,\r","         \"terminalType\":reqBody.terminalType,\r","         \"merchantId\":reqBody.merchantId,\r","         \"currencyCode\":reqBody.currencyCode,\r","         \"cardAcceptorNameLocation\": reqBody.cardAcceptorNameLocation,\r","         \"transactionDateTime\":reqBody.transactionDateTime});\r","\r","    var host = pm.variables.get(\"host\");\r","    pm.sendRequest({\r","    url: host.concat(\"/reverse\"),\r","    method: 'POST',\r","    header: {\r","        \"Content-Type\": \"application/json\"\r","    },\r","    body: raw\r","    }, function (err, response) {\r","    console.log(response.json());\r","});\r","    return debitTranReference;\r","}\r","\r","\r",""],"id":"2bf47da6-9201-48b6-841a-007ad0d280ab"}}],"id":"8b1f94a2-baa9-4dbc-9123-072ea8a88a20","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"originalTransactionReference\": \"{{originalTransactionReference}}\",\r\n    \"amount\": 500,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2021-05-05T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/reverse","urlObject":{"path":["reverse"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"8b1f94a2-baa9-4dbc-9123-072ea8a88a20"},{"name":"unrecognised original tran ref","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 25\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"25\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"ea188992-9789-4080-add9-328008443be4"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(tranReference)\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"originalTransactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"f3a2274a-b36e-444f-a56e-1febadc668af"}}],"id":"cd6d81af-44c5-43eb-a603-97480a0054b7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"originalTransactionReference\": \"{{originalTransactionReference}}\",\r\n    \"amount\": 500,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/reverse","urlObject":{"path":["reverse"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"cd6d81af-44c5-43eb-a603-97480a0054b7"}],"id":"657a0ddf-706e-4e42-a3ef-339ed2684312","description":"<p>Create a Post endpoint on your application using the path <strong>/reversal</strong>, we will send a request to this endpoint whenever a debit that has occurred on the wallet needs to be undone</p>\n","event":[{"listen":"prerequest","script":{"id":"573ceebb-77f3-4da3-b24d-6b4c38fa2093","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"c95c1c6c-b04a-4298-a1f9-9db75847ccb9","type":"text/javascript","exec":[""]}}],"_postman_id":"657a0ddf-706e-4e42-a3ef-339ed2684312"},{"name":"Enquiry","item":[{"name":"Invalid mac","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 12\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"12\");\r","});\r","\r","pm.test(\"name is empty\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.name).to.not.eql(null);\r","    pm.expect(jsonData.name).to.eql(\"\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.amount)\r","       .concat(jsonData.name)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"5f922447-1ebd-478f-8ce0-f753cc07ec4c"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    console.log(reqBody)\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference.concat(requestId);\r","    console.log(reqData)\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","console.log('secret_key -> ', secretKey);\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"7f3d63d5-a109-43a3-a258-af09d2b98acb"}}],"id":"c40216a6-f284-4e36-873e-1f330e798e6d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/enquiry","urlObject":{"path":["enquiry"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"c40216a6-f284-4e36-873e-1f330e798e6d"},{"name":"Success","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and success\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"00\");\r","});\r","\r","pm.test(\"name is not empty\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.name).to.not.eql(null);\r","    pm.expect(jsonData.name).to.not.eql(\"\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.amount)\r","       .concat(jsonData.name)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"77d1f50a-7e03-46f2-9b95-0ef0fd859863"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference.concat(requestId).concat(walletId);\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"91774f96-1439-4f6d-90ac-1942c437435c"}}],"id":"9e9764dc-7dcf-4171-bcfe-fada316c2a05","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/enquiry","urlObject":{"path":["enquiry"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"9e9764dc-7dcf-4171-bcfe-fada316c2a05"},{"name":"wallet/account not found","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 25\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"25\");\r","});\r","\r","pm.test(\"name is empty\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.name).to.not.eql(null);\r","    pm.expect(jsonData.name).to.eql(\"\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.amount)\r","       .concat(jsonData.name)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"5e76b5d5-0a5c-432b-81f9-ece33da244a9"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    console.log(reqBody)\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || reqBody.walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference.concat(requestId).concat(reqBody.walletId);\r","    console.log(reqData)\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"f662f056-3ede-4154-bca4-05fb78a0c19e"}}],"id":"32de1897-da45-4d72-a8cc-870da2db4a59","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"1234567890123456789\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/enquiry","urlObject":{"path":["enquiry"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"32de1897-da45-4d72-a8cc-870da2db4a59"},{"name":"blocked wallet/account","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 45\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"45\");\r","});\r","\r","pm.test(\"name is empty\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.name).to.not.eql(null);\r","    pm.expect(jsonData.name).to.eql(\"\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.amount)\r","       .concat(jsonData.name)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"ff11d1e1-624e-4991-b68d-8a4295c4b1d3"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    console.log(reqBody)\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference.concat(requestId).concat(walletId);\r","    console.log(reqData)\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"blockedWallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"241bfbf5-a104-4b46-9313-1b6d60d9fd20"}}],"id":"1365a14a-413c-4dce-ba0e-f6347734b64b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"a blocked wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/enquiry","urlObject":{"path":["enquiry"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"1365a14a-413c-4dce-ba0e-f6347734b64b"}],"id":"118c9d8c-b79f-4eda-b9ed-1ac499e8a8cc","description":"<p>Create a Post endpoint on your application using  <code>path /enquiry</code> we will send an API request to the endpoint whenever an inquiry is to be done on the account. It can be a balance inquiry, name inquiry, etc</p>\n","event":[{"listen":"prerequest","script":{"id":"5fb80db5-8f9e-4a60-b269-5c72ec35c3e5","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"58f114b6-d352-4594-a8d2-934a86530c45","type":"text/javascript","exec":[""]}}],"_postman_id":"118c9d8c-b79f-4eda-b9ed-1ac499e8a8cc"},{"name":"Debit","item":[{"name":"Invalid mac","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 12\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"12\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount).to.not.eql(undefined);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"1460f4e7-f51d-47ce-bf14-7c9fc98678aa"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"78b2c5d7-a654-4ff9-bdd1-25d1d5c0206c"}}],"id":"a252eaea-b840-4713-96d3-61ee8457716d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 500,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/debit","urlObject":{"path":["debit"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"a252eaea-b840-4713-96d3-61ee8457716d"},{"name":"Success","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and success\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"00\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount).to.not.eql(undefined);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"1b9b348c-e65d-40df-95a8-b33bfcdaab81"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"8e84f44c-9cf0-47db-b2b4-29df1029b4f0"}}],"id":"8c3e4f1e-9037-4dc3-8cd7-eb371fc76057","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 500,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/debit","urlObject":{"path":["debit"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"8c3e4f1e-9037-4dc3-8cd7-eb371fc76057"},{"name":"duplicate transaction reference","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 94\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"94\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"f110194c-6e50-4194-8ae1-502b99aa3bb5"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = \"1596636212000\";\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"7a5f7811-8f9e-4a3e-a9fd-bc2d22774e5f"}}],"id":"ed660f35-5aae-45f2-99fa-1ff7ec92576b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 500,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/debit","urlObject":{"path":["debit"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"ed660f35-5aae-45f2-99fa-1ff7ec92576b"},{"name":"wallet/account not found","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 25\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"25\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"4217262b-c55e-4cae-91d6-9ca2ae7f41c0"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || reqBody.walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(reqBody.walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    return reqData;\r","}\r","\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"8683d354-e86a-4f03-8bb1-3b71edc9609e"}}],"id":"9bf9b3e0-dd76-4b12-b910-b1d02a046e1e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"123456789012345678990\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 500,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/debit","urlObject":{"path":["debit"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"9bf9b3e0-dd76-4b12-b910-b1d02a046e1e"},{"name":"exceeds withdrawal limit","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 61\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"61\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"ba98e899-6daa-477e-b44d-ce1303034fb6"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"wallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"2fc34d05-7499-4a67-be20-0e69c02809ad"}}],"id":"0b4d84b0-57a5-46f2-8a6c-49e8036362aa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"an active wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 50001,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/debit","urlObject":{"path":["debit"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"0b4d84b0-57a5-46f2-8a6c-49e8036362aa"},{"name":"insufficient fund","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 51\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"51\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"cabb53a6-eb8e-495b-ab38-20c2f21ea5df"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"insufficientWallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"6d455967-3d30-48d5-b1b0-fb397e688679"}}],"id":"6e240664-fd06-4807-ba77-9e791151a673","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"a wallet with a balance of 0\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 1000000,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/debit","urlObject":{"path":["debit"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"6e240664-fd06-4807-ba77-9e791151a673"},{"name":"blocked wallet/account","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200 and has a JSON body\", function () {\r","    pm.response.to.have.status(200);\r","    pm.response.to.be.withBody;\r","    pm.response.to.be.json;\r","});\r","\r","pm.test(\"mac is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    var secretKey = pm.variables.get(\"secret_key\");\r","    var mac = generateHmac(getMacData(), secretKey);\r","    pm.expect(jsonData.mac).to.not.eql(null);\r","    pm.expect(jsonData.mac).to.eql(mac);\r","});\r","\r","pm.test(\"responseCode is not null and 45\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.responseCode).to.not.eql(null);\r","    pm.expect(jsonData.responseCode).to.eql(\"45\");\r","});\r","\r","pm.test(\"amount is not null and valid\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.amount).to.not.eql(null);\r","    pm.expect(jsonData.amount>=0).to.be.true;\r","});\r","\r","var jsonData = pm.response.json();\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var jsonData = JSON.parse(responseBody);\r","       var resData = jsonData.transactionReference\r","       .concat(jsonData.requestId)\r","       .concat(jsonData.responseCode);\r","    return resData;\r","}"],"id":"94e8a638-2bc6-4159-8911-befe6759dad7"}},{"listen":"prerequest","script":{"type":"text/javascript","exec":["function generateUUID(){\r","    var dt = new Date().getTime();\r","    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r","        var r = (dt + Math.random()*16)%16 | 0;\r","        dt = Math.floor(dt/16);\r","        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r","    });\r","    return uuid;\r","}\r","\r","function generateHmac(requestData, secretKey){\r","    return CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(requestData, secretKey));\r","}\r","\r","function getMacData(){\r","    var reqBody = JSON.parse(request.data);\r","    if(reqBody.transactionReference==null || reqBody.requestId==null || walletId==null){\r","            throw Error(\"All the required fields should be set\")\r","        }\r","       var reqData = tranReference\r","       .concat(requestId)\r","       .concat(walletId)\r","       .concat(reqBody.amount)\r","       .concat(reqBody.currencyCode);\r","       console.log(reqData);\r","    return reqData;\r","}\r","\r","var walletId = pm.variables.get(\"blockedWallet\");\r","var secretKey = pm.variables.get(\"secret_key\");\r","var requestId = generateUUID().toString();\r","var tranReference = Date.now().toString();\r","var mac = generateHmac(getMacData(), secretKey);\r","\r","postman.setEnvironmentVariable(\"requestId\", requestId);\r","postman.setEnvironmentVariable(\"transactionReference\", tranReference);\r","postman.setEnvironmentVariable(\"mac\", mac);\r",""],"id":"fb41b6a7-862f-4a6a-bc22-74abc7b676f0"}}],"id":"5dea23ee-8095-4e0e-8e2b-9a6d5fbd183f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"requestId\": \"{{requestId}}\",\r\n    \"walletId\": \"a blocked wallet\",\r\n    \"transactionReference\": \"{{transactionReference}}\",\r\n    \"amount\": 500,\r\n    \"mac\": \"{{mac}}\",\r\n    \"acquiringInstitutionId\": \"561233000\",\r\n    \"terminalId\": \"3QTELLER\",\r\n    \"terminalType\": \"01\",\r\n    \"merchantId\": \"FBPCORPAY000001\",\r\n    \"currencyCode\": \"566\",\r\n    \"transactionDateTime\": \"2020-07-21T13:47:37\",\r\n    \"cardAcceptorNameLocation\": \"MATRIX ENERGY LIMITE LA LANG\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://exampleHost.com/context-path/debit","urlObject":{"path":["debit"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"5dea23ee-8095-4e0e-8e2b-9a6d5fbd183f"}],"id":"73e12fc8-ecf1-4690-8309-0d45b7d30cc1","description":"<p>Create a Post endpoint on your application using the path <code>/debit</code>, we will send a request to this endpoint whenever a debit is to be done on the wallet. This debit can be for any kind, of goods &amp; services, withdrawal, etc.</p>\n","event":[{"listen":"prerequest","script":{"id":"6b48638b-d6f4-4318-8f4c-e8e4395af2cf","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"dfede150-038c-4a33-afe7-90493652c459","type":"text/javascript","exec":[""]}}],"_postman_id":"73e12fc8-ecf1-4690-8309-0d45b7d30cc1"},{"name":"Healthcheck","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});"],"id":"89d39847-3a7a-4043-aa3b-194a8d442a48"}}],"id":"c1c438a9-dc1f-4258-9d75-487fb02ae06d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Nonce","value":"{{nonce}}"},{"key":"Algorithm","value":"SHA_512"},{"key":"Accept","value":"application/json"},{"key":"Signature","value":"{{signature}}"}],"url":"https://exampleHost.com/context-path/health","urlObject":{"path":["health"],"host":["https://exampleHost.com/context-path"],"query":[],"variable":[]}},"response":[],"_postman_id":"c1c438a9-dc1f-4258-9d75-487fb02ae06d"}],"event":[{"listen":"prerequest","script":{"id":"94e3f734-0dad-430c-b941-c9fa479ca3be","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"73495a15-95ef-4c89-ab92-b33468cf5a27","type":"text/javascript","exec":[""]}}],"variable":[{"key":"host","value":"https://exampleHost.com/context-path"},{"key":"secret_key","value":"private key goes in here"},{"key":"wallet","value":"an active wallet"},{"key":"blockedWallet","value":"a blocked wallet"},{"key":"insufficientWallet","value":"a wallet with a balance of 0"}]}