{"info":{"_postman_id":"2ec82078-63ca-4f54-a0b1-3af9bf723e3e","name":"KEYZEN PARTNERS API","description":"<html><head></head><body><p>Our Partner APIs are designed to enable business partners to securely integrate and interact with our platform services.<br>They provide programmatic access to key features such as <strong>authentication</strong>, <strong>virtual card management</strong>, <strong>fund loading</strong>, <strong>balance inquiry</strong>, and <strong>transaction monitoring</strong>.</p>\n<p>These APIs are built to support <strong>scalable</strong>, <strong>secure</strong>, and <strong>real-time</strong> operations, allowing partners to seamlessly embed our financial services into their own systems and applications.</p>\n<p>Security is a core principle of the platform. All API communications are protected through <strong>strong authentication mechanisms</strong>, <strong>encrypted data exchanges</strong>, and <strong>strict access controls</strong>. Sensitive information is handled in compliance with industry best practices and is only accessible through authorized and secured endpoints.</p>\n<p>The Partner APIs follow a <strong>RESTful architecture</strong>, use <strong>JSON</strong> as the data exchange format, and are accessible over <strong>HTTPS</strong>. Each partner is issued unique credentials and is responsible for securely managing their access keys and encryption materials.</p>\n<p>This documentation provides all the necessary details to help partners <strong>quickly onboard</strong>, <strong>integrate efficiently</strong>, and <strong>operate safely</strong> within our ecosystem.</p>\n<hr>\n<h2 id=\"base-url\">Base URL</h2>\n<p>All the endpoint paths referenced in the API document are relative to a base URL below</p>\n<p><a href=\"https://staging-api.keyzen.sn\">https://sandbox.keyzen.sn</a></p>\n<h2 id=\"need-some-help\"><strong>Need some help?</strong></h2>\n<p>You can send an email to : <a href=\"https://mailto:seydina.diakhate@keyzen.sn\">support@keyzen.sn</a></p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"29127020","collectionId":"2ec82078-63ca-4f54-a0b1-3af9bf723e3e","publishedId":"2sB3dWrmsu","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"61a12d"},"publishDate":"2025-12-24T14:48:46.000Z"},"item":[{"name":"Token","event":[{"listen":"test","script":{"id":"74d1f064-7b93-4925-82ee-e3b151236cb7","exec":["const auth = pm.response.json();\r","pm.test(\"Status Code\", function () {\r","    pm.environment.set(\"PARTNER_TOKEN\", auth.token); \r","    pm.response.to.have.status(200); \r","    console.log(auth.accessToken);\r","});"],"type":"text/javascript","packages":{},"requests":{}}},{"listen":"prerequest","script":{"id":"47109408-71d7-40e9-bbf1-5a264c07b59e","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"38174f33-c431-4cd5-b9ee-2836a6a2a3b8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"login\": \"{{login}}\",\r\n  \"password\": \"{{password}}\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/auth/token","description":"<p>This API allows the partner to authenticate using their login and password in order to<br />obtain a Bearer token.<br />The issued token is valid for 24 hours and must be included in the Authorization header<br />for all subsequent API requests.</p>\n","urlObject":{"path":["external","api","v1","auth","token"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"a8d07987-e66f-44e0-bea5-bf6ec5e0da56","name":"Successful Response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"login\": \"{{login}}\",\r\n  \"password\": \"{{password}}\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/auth/token"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.29.0"},{"key":"Date","value":"Sun, 21 Dec 2025 20:35:17 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Keyzen-Request-ID","value":"69485a0510ae1b80126dbc54e5b8c4dd"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"vary","value":"accept-encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Backend-Server","value":"192.168.4.9:9090"}],"cookie":[],"responseTime":null,"body":"{\n    \"token\": \"eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJrZXl6ZW4tY29tcHRlIiwic3ViIjoia3l6X2FwaV9idXNpbmVzcyIsImV4cCI6MTc2NjQzNTcxNywiaWF0IjoxNzY2MzQ5MzE3fQ.gPu5ArhmriUPRT-4V5Txl0veuz9KfJoOGRxK9KfLAOyfGgtxodMTYRphWmSWzFq_5m73rcTUvefuiS1AQ9roFcg6jr01K5M7pUWRmYgUKwUax5P8RCIgiRefnjy-HZqHNaW5cA3kzsdUnon6jVLHc2_0F_DjL_hQEWTwNuwH7BpKVw-xMengv890twbmx1tc5w16uOICm5-P0T3QPAJGj7f3JtnPL-7E1kkn5A50_hy6UY_QZUTAZTQRTvNOJAIe7-daDmZfsj56CR6tudmYGgQozYntcb0c3mwUfVl--VUHoGsu_08jtc3KceiCe0TqqrCKrnj3_IOkcGauHg-OGQ\",\n    \"expiryDate\": \"2025-12-22T20:35:17.887202804Z\"\n}"},{"id":"eb813880-ae61-4c6c-a41f-b1ce33d53127","name":"Failure Response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"login\": \"{{login}}\",\r\n  \"password\": \"{{password}}\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/auth/token"},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.29.0"},{"key":"Date","value":"Sun, 21 Dec 2025 17:24:44 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Keyzen-Request-ID","value":"69482d5cd51699da791620bcec17cece"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"vary","value":"accept-encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Referrer-Policy","value":"no-referrer"}],"cookie":[],"responseTime":null,"body":"{\n    \"statut\": \"FAILURE\",\n    \"codeRetour\": 401,\n    \"messageRetour\": \"Les identifiants ne sont pas valides.\"\n}"}],"_postman_id":"38174f33-c431-4cd5-b9ee-2836a6a2a3b8"},{"name":"Generate Virtual Card","event":[{"listen":"test","script":{"id":"74d1f064-7b93-4925-82ee-e3b151236cb7","exec":["const auth = pm.response.json();\r","    pm.test(\"Status Code\", function () {\r","    pm.response.to.have.status(200); \r","});"],"type":"text/javascript","packages":{},"requests":{}}},{"listen":"prerequest","script":{"id":"47109408-71d7-40e9-bbf1-5a264c07b59e","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"c6c6dc55-9ed9-43d6-8843-d028f093f91a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{PARTNER_TOKEN}}"}],"advancedConfig":[{"key":"password","value":"{{TOKEN}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"firstName\": \"Seydina\",\r\n    \"lastName\": \"DIAKHATE\",\r\n    \"phoneNumber\": \"221700000000\",\r\n    \"country\": \"SEN\",\r\n    \"region\": \"Dakar\",\r\n    \"email\": \"seydina.diakhate@yopmail.com\",\r\n    \"idType\": \"CIN\",                        // CIN | PASSPORT | PERMIS\r\n    \"idNumber\": \"1870200203676\",\r\n    \"dateOfBirth\": \"2002-12-20\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/generate-virtual-card","description":"<p>This API allows the partner to activate a virtual card for a customer.<br />Once activated, the virtual card becomes usable for transactions according to the<br />defined usage rules and limits.</p>\n","urlObject":{"path":["external","api","v1","generate-virtual-card"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"b0ee10e2-e0c6-48cc-975e-21684f542b27","name":"Successful Response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"firstName\": \"Seydina\",\r\n    \"lastName\": \"DIAKHATE\",\r\n    \"phoneNumber\": \"221700000000\",\r\n    \"country\": \"SEN\",\r\n    \"region\": \"Dakar\",\r\n    \"email\": \"seydina.diakhate@yopmail.com\",\r\n    \"idType\": \"CIN\",                        //  CIN | PASSPORT | PERMIS\r\n    \"idNumber\": \"1870200203676\",\r\n    \"dateOfBirth\": \"2002-12-20\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/generate-virtual-card"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.29.0"},{"key":"Date","value":"Sun, 21 Dec 2025 21:01:11 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Keyzen-Request-ID","value":"6948601630a625f93c91704a72e5843b"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"vary","value":"accept-encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Backend-Server","value":"192.168.4.16:9090"}],"cookie":[],"responseTime":null,"body":"{\n    \"statut\": \"SUCCESS\",\n    \"codeRetour\": 0,\n    \"messageRetour\": \"La carte virtuelle est activée avec succès\",\n    \"response\": {\n        \"cid\": \"12746829\",\n        \"l4d\": \"8611\",\n        \"cardHash\": \"8cd6ebbf9e73b44f5ecf22170856e965dfc36862\"\n    }\n}"},{"id":"72c17f11-e41a-4dda-b4e9-197c15fdd0de","name":"Failure Response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"firstName\": \"Seydinaé\",\r\n    \"lastName\": \"DIAKHATE\",\r\n    \"phoneNumber\": \"221700000000\",\r\n    \"country\": \"SEN\",\r\n    \"region\": \"Dakar\",\r\n    \"email\": \"seydina.diakhate@yopmail.com\",\r\n    \"idType\": \"CIN\",                        // CIN | PASSPORT | PERMIS\r\n    \"idNumber\": \"1870200203676\",\r\n    \"dateOfBirth\": \"2002-12-20\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/generate-virtual-card"},"status":"Bad Request","code":400,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.29.0"},{"key":"Date","value":"Mon, 22 Dec 2025 14:48:01 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Keyzen-Request-ID","value":"69495a20cc13c27f425455e4d9451a5d"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"vary","value":"accept-encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Referrer-Policy","value":"no-referrer"}],"cookie":[],"responseTime":null,"body":"{\n    \"statut\": \"FAILURE\",\n    \"codeRetour\": 1,\n    \"messageRetour\": \"First name contains invalid characters\"\n}"}],"_postman_id":"c6c6dc55-9ed9-43d6-8843-d028f093f91a"},{"name":"Card Load","event":[{"listen":"test","script":{"id":"74d1f064-7b93-4925-82ee-e3b151236cb7","exec":["const auth = pm.response.json();\r","    pm.test(\"Status Code\", function () {\r","    pm.response.to.have.status(200); \r","});"],"type":"text/javascript","packages":{},"requests":{}}},{"listen":"prerequest","script":{"id":"47109408-71d7-40e9-bbf1-5a264c07b59e","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"b5587756-f760-4f0f-948c-28941df9ee49","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{PARTNER_TOKEN}}"}],"advancedConfig":[{"key":"password","value":"{{TOKEN}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"cid\": \"12746809\",\r\n    \"l4d\": \"5377\",\r\n    \"phoneNumber\": \"221765295158\",\r\n    \"baseAmount\": 1000,\r\n    \"serviceCode\": \"SN0008\",\r\n    \"partnerID\": \"KZ_0000003\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/card-load","description":"<p>This API allows the partner to load funds onto a card.<br />The specified amount is credited to the card balance and becomes immediately<br />available for use, subject to validation and applicable limits.</p>\n","urlObject":{"path":["external","api","v1","card-load"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"7d8e0182-6003-4a8a-b727-d920da005a6f","name":"Successful Response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"cid\": \"12746809\",\r\n    \"l4d\": \"5377\",\r\n    \"phoneNumber\": \"221765295158\",\r\n    \"baseAmount\": 1000,\r\n    \"serviceCode\": \"SN0008\",\r\n    \"partnerID\": \"KZ_0000002\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/card-load"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.29.0"},{"key":"Date","value":"Mon, 22 Dec 2025 00:04:32 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Keyzen-Request-ID","value":"69488b0fa633e5866da782c9b56e490f"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"vary","value":"accept-encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Backend-Server","value":"192.168.4.16:9090"}],"cookie":[],"responseTime":null,"body":"{\n    \"statut\": \"SUCCESS\",\n    \"codeRetour\": 0,\n    \"response\": {\n        \"message\": \"Opération effectué !\",\n        \"transactionID\": \"KTAC100399442\"\n    }\n}"},{"id":"17c1e430-ba41-4c18-bb54-7676e522c971","name":"Failure Response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"cid\": \"12746809\",\r\n    \"l4d\": \"5377\",\r\n    \"phoneNumber\": \"221765295158\",\r\n    \"baseAmount\": 1,\r\n    \"serviceCode\": \"SN0008\",\r\n    \"partnerID\": \"KZ_0000002\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/card-load"},"status":"Bad Request","code":400,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.29.0"},{"key":"Date","value":"Mon, 22 Dec 2025 14:46:45 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Keyzen-Request-ID","value":"694959d4fa83b0ec1359d982a6817f0f"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"vary","value":"accept-encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Referrer-Policy","value":"no-referrer"}],"cookie":[],"responseTime":null,"body":"{\n    \"statut\": \"FAILURE\",\n    \"codeRetour\": 1,\n    \"messageRetour\": \"Le montant minimum autorisé est de : 10.\"\n}"}],"_postman_id":"b5587756-f760-4f0f-948c-28941df9ee49"},{"name":"Card Debit","event":[{"listen":"test","script":{"id":"74d1f064-7b93-4925-82ee-e3b151236cb7","exec":["const auth = pm.response.json();\r","    pm.test(\"Status Code\", function () {\r","    pm.response.to.have.status(200); \r","});"],"type":"text/javascript","packages":{},"requests":{}}},{"listen":"prerequest","script":{"id":"47109408-71d7-40e9-bbf1-5a264c07b59e","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"fa65e2b0-5b1b-41cd-a6e8-070f88a3cce2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{PARTNER_TOKEN}}"}],"advancedConfig":[{"key":"password","value":"{{TOKEN}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"cid\": \"12748047\",\r\n    \"l4d\": \"7480\",\r\n    \"phoneNumber\": \"221765295158\",\r\n    \"baseAmount\": 1000,\r\n    \"serviceCode\": \"SN0018\",\r\n    \"partnerID\": \"KZ_00000010\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/card-debit","description":"<p>This API allows the partner to debit funds from a card.<br />The specified amount is deducted from the card balance and credited to the partner’s account balance, subject to validation checks, available balance, and applicable limits.</p>\n","urlObject":{"path":["external","api","v1","card-debit"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"e70c3386-ec85-4e57-808b-7ffef1f88e6d","name":"Successful Response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"cid\": \"12748047\",\r\n    \"l4d\": \"7480\",\r\n    \"phoneNumber\": \"221765295158\",\r\n    \"baseAmount\": 1000,\r\n    \"serviceCode\": \"SN0018\",\r\n    \"partnerID\": \"KZ_00000010\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/card-debit"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Thu, 26 Feb 2026 00:56:13 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"vary","value":"accept-encoding"},{"key":"Keyzen-Request-ID","value":"699f9a2ad617c1ae9f56ee3da1b084d2"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Encoding","value":"gzip"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains; preload"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=WRybmLP7A80AxcVqGHggsmjnJMySNq8YNMYD7%2B5bcf7pf43sWpzBad%2FthRJnCUKs3kONaDj3BhOOKyHhFiG0%2FHIROhjCIy9vmg9eCOfB\"}]}"},{"key":"CF-RAY","value":"9d3b7b2b59a52575-DKR"}],"cookie":[],"responseTime":null,"body":"{\n    \"statut\": \"SUCCESS\",\n    \"codeRetour\": 0,\n    \"response\": {\n        \"message\": \"Opération effectuée !\",\n        \"transactionID\": \"KSAB100061230\"\n    }\n}"}],"_postman_id":"fa65e2b0-5b1b-41cd-a6e8-070f88a3cce2"},{"name":"Card Balance","event":[{"listen":"test","script":{"id":"74d1f064-7b93-4925-82ee-e3b151236cb7","exec":["const auth = pm.response.json();\r","    pm.test(\"Status Code\", function () {\r","    pm.response.to.have.status(200); \r","});"],"type":"text/javascript","packages":{},"requests":{}}},{"listen":"prerequest","script":{"id":"47109408-71d7-40e9-bbf1-5a264c07b59e","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"2eac6f7a-cf12-4ee4-94bb-0e712ddfabb5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{PARTNER_TOKEN}}"}],"advancedConfig":[{"key":"password","value":"{{TOKEN}}"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/card-balance/12746809","description":"<p>This API allows the partner to retrieve the current available balance of a specific card.</p>\n","urlObject":{"path":["external","api","v1","card-balance","12746809"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"121ba210-45b6-4b7a-b55b-60520e2cbb80","name":"Successful Response","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/card-balance/12746809"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.29.0"},{"key":"Date","value":"Mon, 22 Dec 2025 00:09:48 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Keyzen-Request-ID","value":"69488c4c874554e3bf439ea72cdf0ad4"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"vary","value":"accept-encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Backend-Server","value":"192.168.4.9:9090"}],"cookie":[],"responseTime":null,"body":"{\n    \"statut\": \"SUCCESS\",\n    \"codeRetour\": 0,\n    \"response\": {\n        \"balance\": 1000,\n        \"currencyCode\": \"XOF\"\n    }\n}"}],"_postman_id":"2eac6f7a-cf12-4ee4-94bb-0e712ddfabb5"},{"name":"Change Card Status","event":[{"listen":"test","script":{"id":"74d1f064-7b93-4925-82ee-e3b151236cb7","exec":["const auth = pm.response.json();\r","    pm.test(\"Status Code\", function () {\r","    pm.response.to.have.status(200); \r","});"],"type":"text/javascript","packages":{},"requests":{}}},{"listen":"prerequest","script":{"id":"47109408-71d7-40e9-bbf1-5a264c07b59e","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"29f21f0b-f0ce-4770-a125-290dccb829a0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{PARTNER_TOKEN}}"}],"advancedConfig":[{"key":"password","value":"{{TOKEN}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"cid\": \"12746809\",\r\n    \"action\": \"Unblocking\",    // Blocking  | Unblocking\r\n    \"type\": \"Temporary\"        // Temporary | Definitive\r\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/change-card-status","description":"<p>This API allows the partner to change the status of a card (e.g. active, inactive, preactive,<br />deactivated).<br />This operation is typically used for security or operational purposes.</p>\n","urlObject":{"path":["external","api","v1","change-card-status"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"0d523319-ed6e-47cb-b2a2-d0da2c6453be","name":"Successful Response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"cid\": \"12746809\",\r\n    \"action\": \"Blocking\",\r\n    \"type\": \"Temporary\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/change-card-status"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.29.0"},{"key":"Date","value":"Mon, 22 Dec 2025 00:11:07 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Keyzen-Request-ID","value":"69488c9a1f6946cf492efb2c635bca16"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"vary","value":"accept-encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Backend-Server","value":"192.168.4.16:9090"}],"cookie":[],"responseTime":null,"body":"{\n    \"statut\": \"SUCCESS\",\n    \"codeRetour\": 0,\n    \"messageRetour\": \"Carte bloquée avec succès !\"\n}"},{"id":"08312553-4e9a-4007-858c-0b1a6fdb7aa1","name":"Failure Response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"cid\": \"12746809\",\r\n    \"action\": \"Blocking\",\r\n    \"type\": \"Temporary\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/change-card-status"},"status":"Bad Request","code":400,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.29.0"},{"key":"Date","value":"Sun, 21 Dec 2025 17:18:48 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Keyzen-Request-ID","value":"69482bf7ba6521a60d764b1599acb6c2"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"vary","value":"accept-encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Referrer-Policy","value":"no-referrer"}],"cookie":[],"responseTime":null,"body":"{\n    \"statut\": \"FAILURE\",\n    \"codeRetour\": 1,\n    \"messageRetour\": \"Cannot deactivate card in %s status. : Bad Request\"\n}"}],"_postman_id":"29f21f0b-f0ce-4770-a125-290dccb829a0"},{"name":"Card Informations","event":[{"listen":"test","script":{"id":"74d1f064-7b93-4925-82ee-e3b151236cb7","exec":["const auth = pm.response.json();\r","    pm.test(\"Status Code\", function () {\r","    pm.response.to.have.status(200); \r","});"],"type":"text/javascript","packages":{},"requests":{}}},{"listen":"prerequest","script":{"id":"47109408-71d7-40e9-bbf1-5a264c07b59e","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"694f42d9-a534-4767-9c83-e76e3622a201","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{PARTNER_TOKEN}}"}],"advancedConfig":[{"key":"password","value":"{{TOKEN}}"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/card/ff9ed25ccfd9131ac4953ea74744b59876a5609a/infos","description":"<p>This API allows the partner to retrieve sensitive card information such as the PAN, CVV<br />and Expiration Date.<br />Access to this API is strictly controlled and secured, and should only be used for<br />authorized and compliant use cases.</p>\n<p>The partner must generate a <strong>2048-bit RSA key pair</strong> in compliance with industry security standards.<br />The <strong>public key</strong> shall be securely transmitted to <strong>Keyzen</strong> and will be used exclusively for encrypting sensitive data.<br />The <strong>private key</strong> must remain strictly confidential, securely stored on the partner’s infrastructure, and must never be shared. It is solely used by the partner for decryption purposes.</p>\n<p>The tool referenced below may be used for RSA key pair generation, provided it meets the partner’s internal security and compliance requirements.</p>\n<p><strong>Lien:</strong> <a href=\"https://www.devglan.com/online-tools/rsa-encryption-decryption\"><b>https://www.devglan.com/online-tools/rsa-encryption-decryption</b></a></p>\n","urlObject":{"path":["external","api","v1","card","ff9ed25ccfd9131ac4953ea74744b59876a5609a","infos"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"86d4df66-ba0f-4828-806e-f9c86cf2d497","name":"Successful Response","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/card/ff9ed25ccfd9131ac4953ea74744b59876a5609a/infos"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.29.0"},{"key":"Date","value":"Mon, 22 Dec 2025 14:35:51 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Keyzen-Request-ID","value":"694957457c36bfbeb9a52ee8acd0251b"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"vary","value":"accept-encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Backend-Server","value":"192.168.4.16:9090"}],"cookie":[],"responseTime":null,"body":"{\n    \"statut\": \"SUCCESS\",\n    \"codeRetour\": 0,\n    \"infos\": {\n        \"pan\": \"A1gIJRtUfNNlCBdFm4IiQB+nE4lHv8owMb8IQjaWTFyIL4LDhKmN0cB37AdZw91n/jxSVKXplwqgBdewABsvObDdecEIA7lqhTLpYR0QwCRqcGwXm5WGErl/aT1kAqDH4LJENu3InRxcH0e2sQ4q/J3j1/ietOxhPAIvAjqWzCJnj43bih7m01IBwZG4qgnkZgiGrVjserJ9go5ATw4uTx18p0Oz7IA5ej9mOzkyXIhRPgt+0lWRt7aLvwiML3jvqDoq7SP4KmwxuCuFbp6qf/14Nwh2ctWFZFEQchDgEQ0qREWxf1sf6yJhvP129urE3d0+GCJmKaoJs2nBhcwK3Q==\",\n        \"cvv\": \"fvLOKDTml0WxyRAVaQm4ImxOV16mXY+Esemwtif+1OEA9DN3XpVg+4vf1wdGrA6foyrF2phNROlvnso3ytxGTs9z+0tkEepQN8zzBKa6RQGSQPj+cfS0kdrfBG3jRCo4K/2hskX8YQZ9YRL+XV5A9j3iA+kQ2uT2atT4BIGvak/kplZhr9EX1T4ilP0gx032FckYa45VeM6OdAQrWAyWsdma5RI0KpczYFHF2rzzmFITYyyjhD3ysVxhvcmQzYOYenWn6qWp2u7UB1/V32NhTl1H/6TrrWhaH4s81gQ6QoLcfQs8yLWH7AdxZ5GfgGwxEURG077MrcTrUiS9kQ8Eag==\",\n        \"expireDateCardFormat\": \"12/28\"\n    }\n}"},{"id":"7485bd6e-64be-4a8b-896b-d2b360c62222","name":"Failure Response","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/card/ff9ed25ccfd9131ac4953ea74744b59876a5609a/infos"},"status":"Bad Request","code":400,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.29.0"},{"key":"Date","value":"Sun, 21 Dec 2025 23:52:41 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Keyzen-Request-ID","value":"69488848f70bba534e37dea88aff2d38"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"vary","value":"accept-encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Referrer-Policy","value":"no-referrer"}],"cookie":[],"responseTime":null,"body":"{\n    \"statut\": \"FAILURE\",\n    \"codeRetour\": 1,\n    \"messageRetour\": \"Impossible de récupérer les infos de la carte.\"\n}"}],"_postman_id":"694f42d9-a534-4767-9c83-e76e3622a201"},{"name":"Card Transaction","event":[{"listen":"test","script":{"id":"74d1f064-7b93-4925-82ee-e3b151236cb7","exec":["const auth = pm.response.json();\r","    pm.test(\"Status Code\", function () {\r","    pm.response.to.have.status(200); \r","});"],"type":"text/javascript","packages":{},"requests":{}}},{"listen":"prerequest","script":{"id":"47109408-71d7-40e9-bbf1-5a264c07b59e","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"366e6569-ec56-4c85-acb2-b4c06ddafc67","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{PARTNER_TOKEN}}"}],"advancedConfig":[{"key":"password","value":"{{TOKEN}}"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/card-transaction/12746809?beginDate=2025-12-20&endDate=2025-12-22","description":"<p>This API allows the partner to retrieve the list of transactions associated with a specific<br />card, including details such as amount, date, reference, transaction type...</p>\n","urlObject":{"path":["external","api","v1","card-transaction","12746809"],"host":["{{base_url}}"],"query":[{"key":"beginDate","value":"2025-12-20"},{"key":"endDate","value":"2025-12-22"}],"variable":[]}},"response":[{"id":"3ec74fb2-8bf5-464a-8d1d-29a6699cdfed","name":"Successful Response","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":{"raw":"{{base_url}}/external/api/v1/card-transaction/12746809?beginDate=2025-12-20&endDate=2025-12-22","host":["{{base_url}}"],"path":["external","api","v1","card-transaction","12746809"],"query":[{"key":"beginDate","value":"2025-12-20"},{"key":"endDate","value":"2025-12-22"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.29.0"},{"key":"Date","value":"Mon, 22 Dec 2025 00:14:03 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Keyzen-Request-ID","value":"69488d4a74d0237fb3f2cfc6ece0dff7"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"vary","value":"accept-encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Backend-Server","value":"192.168.4.16:9090"}],"cookie":[],"responseTime":null,"body":"{\n    \"statut\": \"SUCCESS\",\n    \"codeRetour\": 0,\n    \"response\": {\n        \"transactions\": [\n            {\n                \"reference\": \"Card Load by KEYZEN Ref: KTAC100399442. CID: 12746809\",\n                \"totalAmount\": 1000,\n                \"balance\": 1000,\n                \"transactionDate\": \"21-DEC-2025\",\n                \"transactionID\": 696486245,\n                \"baseAmount\": 1000\n            }\n        ]\n    }\n}"}],"_postman_id":"366e6569-ec56-4c85-acb2-b4c06ddafc67"},{"name":"Partner Balance","event":[{"listen":"test","script":{"id":"74d1f064-7b93-4925-82ee-e3b151236cb7","exec":["const auth = pm.response.json();\r","    pm.test(\"Status Code\", function () {\r","    pm.response.to.have.status(200); \r","});"],"type":"text/javascript","packages":{},"requests":{}}},{"listen":"prerequest","script":{"id":"47109408-71d7-40e9-bbf1-5a264c07b59e","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"a1ba4c31-6c40-4182-81fc-8f30fba1a658","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{PARTNER_TOKEN}}"}],"advancedConfig":[{"key":"password","value":"{{TOKEN}}"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/partner-balance","description":"<p>This API allows the partner to retrieve their current account balance, reflecting the<br />available funds for card operations.</p>\n","urlObject":{"path":["external","api","v1","partner-balance"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"0c6193c7-2425-4ca4-9d89-38a3f512b97d","name":"Success Response","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/external/api/v1/partner-balance"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.29.0"},{"key":"Date","value":"Sun, 21 Dec 2025 13:21:14 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Keyzen-Request-ID","value":"6947f44affcc62b85f6a1f19666e1c50"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"vary","value":"accept-encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"X-Backend-Server","value":"192.168.4.16:9090"}],"cookie":[],"responseTime":null,"body":"{\n    \"statut\": \"SUCCESS\",\n    \"codeRetour\": 0,\n    \"response\": {\n        \"balance\": 600731,\n        \"currency\": \"XOF\"\n    }\n}"}],"_postman_id":"a1ba4c31-6c40-4182-81fc-8f30fba1a658"}]}