{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"6ab0fd4d-1609-4020-b75c-9025aa269289","name":"EnovePay API Documentation","description":"This section serves to give an overview of the design considerations in the Enovepay(Formerly WebPayment) platform. The API is accessible through the URL [https://api.webpayment.io](https://api.webpayment.io) Integrating with this API enables merchants to initiate payment collection and disbursement in several countries. The API is designed to be seamless and allow developers to use minimal effort while integrating securely and reliably.\n\nCurrently, the API has documented payment collection/payout in the following countries: Kenya, Nigeria, Ghana, Cameroon, Benin, Ivory Coast and Senegal. You can share feedback and suggestions via [support@enovepay.com](https://mailto:support@enovepay.com)\n\nPlease note: **This API documentation is property of Enove Technologies LTD(Kenya,Nigeria, Cameroon,Ivory Coast, Senegal, Burkina Faso, Rwanda, Uganda, Tanzania). Registered as Crafthouse Technologies Limited in Uganda and South Africa.**\n\n# Webhooks\n\nWhen initiating a collection or payout, you provide a callback URL in the payload, we use this to notify you of the transaction status. Please ensure your webhooks are https:// and are always available. If not provided in the payload, we will invoke the default URL in your account settings.\n\n## Webhook Samples\n\n**Transaction Status for Webhooks**\n\nThe **transaction_status** field indicates the success status of the collection/payout transation. It may contain any of the following values.\n\n| **Transaction Status** | **Description** |\n| --- | --- |\n| Success | Collection/Payout was successful |\n| Failed | Collection/Payout Failed |\n| Refunded | Transaction was reversed |\n| Credit In Progress | Transaction has not been completed |\n\n**Sample Webhook for successful transaction**\n\n``` json\n{\nsuccess: true,\nstatus_code: 100,\nmessage: 'Transaction completed Successfully',\ntransaction_id: '4c2a169dda4c54f61d33',\ntransaction_amount: 10,\nsender_name: 'Johhn Nadala',\ntransaction_ref: 'Ymdnsfh',\ndebitor_account: 'Ymdnsfh',\ntransaction_status: 'Success',\ncommand_status: 'ok',\nreference_number: 'Ymdnsfh'\n}\n\n ```\n\n**Sample Webhook for failed transaction**\n\n``` json\n{\nsuccess: false,\nstatus_code: 112,\nmessage: 'Transaction Failed',\ntransaction_id: '07f967a5d1a40eed1840',\ntransaction_ref: 'Ymdns5454fh',\ndebitor_account: 'Ymdns4343fh',\nreference_number: 'Ymdns5454fh'\n}\n\n ```\n\n## Security Validation for Webhooks\n\nIn order to accept webhooks with confidence, we encourage use of 2 security features.\n\n1. Whitelist Webpayment API IP address(Request IP from Webpayment Support). Only accept Webhooks from this IP.\n    \n2. On the Webhook request header, there is a Bearer Token. This token is equivalent to the **md5**() hash value of **transaction_id**+**client_secret_key**. The transaction ID is available in the webhook payload, the client secret key is your secret, you can generate it on the Webpayment dashboard.\n    \n\n**IMPORTANT NOTE:** The webhook may be invoked more than once for the same transaction. Please validate so as not to double debit.\n\n# API response Codes\n\nEach API response provides 3 status indicators: Status code, message and boolean Success. For a successful request, the status_code=100 and boolean success=true. See below the API reference.\n\n| **CODE** | **RESPONSE** | **SUCCESS** |\n| --- | --- | --- |\n| 100 | Request was successful | true |\n| 101 | Invalid Authentication Token | false |\n| 102 | API Rate Limit Reached | false |\n| 103 | Invalid Input | false |\n| 104 | Duplicate Request | false |\n| 105 | Invalid IP Address | false |\n| 106 | Invalid Collection Network | false |\n| 107 | Collection network temporarily unavailable | false |\n| 108 | System under Maintenance | false |\n| 109 | Account Suspended | false |\n| 110 | Unknown error(Contact Admin) | false |\n| 111 | Invalid Login Details | false |\n| 112 | Transaction Failed | false |\n| 113 | Insufficient balance for Payout | false |\n| 114 | Transaction is pending | false |\n| 115 | Maximum number of tries exceeded | false |\n| 116 | Customer has not verified their phone number | false |","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"5364077","team":2652685,"collectionId":"6ab0fd4d-1609-4020-b75c-9025aa269289","publishedId":"2s7Z7ckBmo","public":true,"publicUrl":"https://documenter-api.postman.tech/view/5364077/2s7Z7ckBmo","privateUrl":"https://go.postman.co/documentation/5364077-6ab0fd4d-1609-4020-b75c-9025aa269289","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.10.1","publishDate":"2022-09-21T19:30:48.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/68d27fbeccff78705b259824aa7ea56430a69f755c64f32d427288a595806f6b","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2s7Z7ckBmo"}