{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"052e278e-29e8-4c0c-824c-f34a33acce4b","name":"Kora Public APIs","description":"Our APIs enable payment processing on your platform which collects your customers' payment information securely on the web or mobile and creates payments.\n\n<p>The Kora API gives you access to pretty much all the features you can use on our dashboard and lets you extend them for use in your application.</p>\n\n<p>Before you do anything, you should<a href=\"https://merchant.korapay.com\"><b>create</b></a>a free Kora account that you can test the API against.</p>\n\n<p>Whether you're building a platform that needs to get sellers paid or building applications to do more with Korap integrations. We will provide you with test keys that you can use to make API calls.</p>\n\n# Get Started\n\n`Base URL - https://api.korapay.com/merchant`\n\n1. [<b>API Keys</b>](https://developers.korapay.com/docs/api-keys)\n    \n2. [<b>Test &amp; Live Modes</b>](https://developers.korapay.com/docs/test-live-modes)\n    \n3. [<b>Testing your Integration</b>](https://developers.korapay.com/docs/testing-your-integration)\n    \n4. [<b>Webhooks</b>](https://developers.korapay.com/docs/webhooks)\n    \n\n# Authentication\n\nEvery endpoint requires some form of authentication using a bearer token header. The key required for each request can either be a secret key or a public key.\n\n##### APIs requiring secret key\n\nThe following groups API endpoints require secret key for authentication\n\n`Authorization: Bearer sk_live_****`\n\n- Pay-ins\n    \n- Payouts\n    \n- Virtual Accounts\n    \n- Balances\n    \n- Verification\n    \n\n##### APIs requiring public key\n\nThe following group API endpoint requires public key for authentication\n\n`Authorization: Bearer pk_live_****`\n\n- Miscellaneous\n    \n\n# Responses\n\n### Success Response\n\n``` json\n{\n  \"status\": \"true\",\n  \"message\": \"Transaction retrieved successfully\",\n  \"data\": {...}\n}\n\n ```\n\n| **Field** | **Data Types** | **Description** |\n| --- | --- | --- |\n| status | string | A boolean that lets you know if the request was successful or not. |\n| message | string | A summary of the response based on the status. For example, when retrieving a list of transactions, it would read “Transaction retrieved successfully”. However, In the event of an error, the message key will contain a general description of the error. |\n| data | object | This contains the information specific to your request. It can be an object or an array depending on the request. A request to retrieve a list of transactions would return an array while a request to verify a single charge would return an object. |\n\n### Webhook Request Body\n\n| Field | Data Type | Description |\n| --- | --- | --- |\n| event | string | transfer.success or transfer.failed |\n| data | object | object containing transaction details: amount, fee, currency, status, reference |\n| data.amount | number | transaction amount |\n| data.fee | number | transaction fee |\n| data.currency | string | transaction currency |\n| data.status | string | transaction status. This can success or failed |\n| data.reference | string | transaction reference |\n\n# Errors\n\nKorapay API errors are expressed as a combination of HTTP status codes and an accompanying JSON body providing required detail where possible.\n\n``` json\n{\n    \"status\": false,\n    \"message\": \"Invalid request data\",\n    \"data\": {\n        \"amount\": {\n            \"message\": \"amount is required\",\n            \"customErrorMessage\": \"amount is required\"\n        }\n    }\n}\n\n ```\n\n---\n\n``` json\n{\n    \"status\": false,\n    \"message\": \"insufficient funds in wallet balance.\",\n    \"data\": null\n}\n\n ```\n\n| **Field** |  | **Description** |\n| --- | --- | --- |\n| status | string | A boolean that lets you know if the request was successful or not. |\n| message | string | A summary of the response bases on the status. For example, when the request is caused by a validation error, the message will read **Invalid request data** however when it's not a validation error, the message would hold the actual error for example, **Insufficient funds** |\n| data | object | This contains the information specific to the error. For validation errors, the data would contain the key that failed validation and the **key.message** would contain the actual reason why the validation failed |\n\n### HTTP Status Codes\n\n| **Status code** | **Description** |\n| --- | --- |\n| 200,201 | This indicates that the request was successfully made and the action was carried out. However, check the data object of the response to confirm the status of the charge or verification. This can either be **success**, **failed** or **processing** |\n| 400 | This indicates the validation error or client-side error. Check the **message** and **data** object of the response to confirm the exact reason for the error. |\n| 401 | This indicates that the request was not authorized, This can either be caused by an invalid **secret key,** **public key** or an improperly formed authorization header. |\n| 403 | This indicates permission has not been granted to the resource the request is made to. |\n| 404 | This indicates the resource meant to be accessed does not exist. |\n| 409 | This indicates that an action meant to be performed has already been carried out. Verify or query the transaction to confirm the status of the transaction. |\n| 500, 501, 502, 503, 504 | This indicates that the request could not be fulfilled due to an error on Korapay's end. However, this should not happen so kindly report any instance of this error to us. |","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"303979","collectionId":"052e278e-29e8-4c0c-824c-f34a33acce4b","publishedId":"SVzxXeSM","public":true,"publicUrl":"https://docs.korapay.com","privateUrl":"https://go.postman.co/documentation/303979-052e278e-29e8-4c0c-824c-f34a33acce4b","customColor":{"top-bar":"FFFFFF","right-sidebar":"102649","highlight":"2376F3"},"documentationLayout":"classic-double-column","version":"8.10.0","publishDate":"2020-01-29T14:33:54.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/768118b36f06c94b0306958b980558e6915839447e859fe16906e29d683976f0","favicon":"https://korapay.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/SVzxXeSM"}