{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"ee255f43-2394-447b-b30e-17ddd0e799fb","name":"Welcome to Payscribe API","description":"[Payscribe](https://www.payscribe.co) builds, launch, and embeds innovative payment products across Africa, leveraging contemporary financial infrastructure. Our integration enables businesses to scale financial services, facilitate local and international payouts, collect customer payments, create virtual accounts, issue virtual cards, and empower them to expand their economic reach and grow their customer base.\n\n#### Getting Started\n\nTo start using Payscribe API, you need to:\n\n1. Sign up for a a test account on the [Sandbox](https://sandbox.payscribe.ng) and once done you can proceed to going live [Payscribe account](https://app.payscribe.ng/auth/signup)\n    \n2. Obtain your API key\n    \n3. Test all endpoints with sandbox keys\n    \n4. Satisfied with the integration? Proceed with your UAT and once done go live\n    \n\n- Receive payments from customers\n    \n- Issue USD Card\n    \n- Purchase airtime (local and international)\n    \n- Purchase internet data (local and international)\n    \n- Create savings for your customers\n    \n- Pay electricity bills (prepaid and postpaid)\n    \n- Pay cable subscription (GOTV, DSTV, Startimes)\n    \n- Pay internet data (Spectranet, Ntel, etc.\n    \n- Fund betting wallet (bet9ja, 1xbet, sportybet)\n    \n- Send bulk SMS\n    \n- Pay educational voucher (JAMB, NECO, etc.)\n    \n- Print recharge cards (MTN, GLO, AIRTEL, 9MOBILE): api/payscribe/recharge/ print\n    \n- Convert excess airtime to cash\n    \n- Fund transport wallet (Cowry Pay)\n    \n- Receive payments\n    \n- Make financial verifications\n    \n\n**API Request and Response**\n\n- API requests should be made in JSON format\n    \n- API responses will be in JSON format\n    \n- Use your API key as Bearer in the header of each request\n    \n\n**Security**\n\n- Our API uses SSL encryption to ensure secure transactions\n    \n- Use HTTPS protocol to make requests\n    \n\n**Rate limit**\n\nPayscribe allows up to 60 API requests/sec. When you go beyond that cap, you will get an HTTP error code of 429.  \n`{\"message\": \"API rate limit exceeded\" }`\n\n**Support**\n\nWe are dedicated to assisting you with any inquiries regarding code or  \nother aspects. We have so many tutorials to get you started. Explore our documentation, kindly contact us on [Twitter](https://twitter.com/payscribeapp) with a friendly 👋 , contact our support team.\n\n**Non-breaking changes**\n\nPayscribe regularly introduces backward-compatible changes to our API to provide additional product features and capabilities. Non-breaking changes may be introduced without prior warning to users of the Payscribe  \nAPI. Examples of non-breaking changes would be:\n\n- New API endpoints\n    \n- Additional new optional API request fields/parameters for existing endpoints\n    \n- Additional new optional HTTP headers in API requests for existing endpoints\n    \n- Additional new fields in API response for existing endpoints\n    \n- Additional HTTP headers in API response for existing endpoints\n    \n- Modification of text field values, for instance in error messages\n    \n- Introduction of new transaction statuses within a status class\n    \n- Introduction of new required fields linked to specific payers (list of required fields for a given payer is available by API, client  \n    implementation should rely on API response to define whether a field is mandatory)\n    \n- Increasing length of existing text fields in API requests\n    \n- Adding new fields in callback endpoints\n    \n\nThe client implementation should be designed with the above in mind, so that non-breaking changes do not adversely affect the implementation.\n\n### Breaking changes\n\nA breaking change refers to a change that requires an application  \nupdate to continue working with the API. Examples of breaking changes  \nwould be:\n\n- Removing or renaming an API endpoint\n    \n- Changing the accepted values for an API request fields\n    \n- Adding new mandatory field to an API request body, outside of information required for processing a transaction\n    \n- Change in an API response structure (renaming of fields)\n    \n\nWhenever possible, a new major version will be introduced if a  \nbreaking change is introduced. In the event that a breaking change is  \nunavoidable and a new major version in not possible (e.g., change in regulation, compliance) Payscribe will contact clients in advance to ensure there is sufficient time to update the client’s application.\n\n**How to Get started**\n\nCreate an account on [Payscribe](https://) and complete your KYC, this literally should take less than 5 minutes. You will also have access the [sandbox](https://sandbox.payscribe.ng) web app, where you can have a full understanding of your integration and Payscribe ecosystem\n\nAfter then your profile setting page on payscribe.ng to get the token.\n\nIf you will be needing technical support to integrate the API or more requests, kindly use the [Contact form ](https://www.payscribe.ng/contact) sending us a mail in respect to your request, and we would be glad to work with you\n\nAt [Developers Hub](https://developers.payscribe.ng) you will find useful resources such as tutorials and SDKs for your choice of language.\n\n| **Environment** | **Base URL** |\n| --- | --- |\n| Sandbox (test mode) | [https://sandbox.payscribe.ng/api/v1](https://) |\n| Production (live mode) | [https://api.payscribe.ng/api/v1](https://) |\n\n**Be conscious of the Token, replace it with the token you generated on your profile page**\n\n<h4>Response code and message in response body</h4>\n\n- 200 = Success\n    \n- 201 = Transaction Pending - Reverify using Payscribe trans_id or the ref passed\n    \n- 400 = Bad Request, Something missing in your body request\n    \n- 401 = User not authenticated\n    \n- 403 = Forbidden request, Contact Support\n    \n- 404 = Page Not found\n    \n- 405 = Duplicate Transaction\n    \n- 406 = Missing Required Information, Please check that you have provided all mandatory information\n    \n- 407 = Invalid product code/token\n    \n- 408 = Result Not Found\n    \n- 409 = Invalid Amount to process. Transaction Limit\n    \n- 410 = Insufficient money in your wallet\n    \n- 434 = General Operator Side Error, Transaction Failed\n    \n- 435 = General Database Error, Transaction Failed\n    \n- 5xx = Some server-side error\n    \n\nPlease if you have any challenge/suggestion with the API kindly send us a mail [hello@payscribe.ng](https://)\n\n<h4>Events (Webhook)</h4>\n\nUse webhooks to get notified about transaction events that happen in your Payscribe account.\n\n**What is a Webhook**\n\nA WebHook is an HTTP callback: an HTTP POST that occurs when something happens; a simple event-notification via HTTP POST. A web application implementing WebHooks will POST a message to a URL when certain things happen.\n\nIn Payscribe you can setup webhooks that would let us notify you anytime events. Please note that you will find webhooks folder in each section of your integration.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"7369921","team":4767384,"collectionId":"ee255f43-2394-447b-b30e-17ddd0e799fb","publishedId":"2sA3e1Bpuc","public":true,"publicUrl":"https://documenter-api.postman.tech/view/7369921/2sA3e1Bpuc","privateUrl":"https://go.postman.co/documentation/7369921-ee255f43-2394-447b-b30e-17ddd0e799fb","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":"Card issuing API, Local and international Bills Payment API With Commissions, KYC Verification, Virtual Account Creation, and Payment links."},{"name":"title","value":"Launch - Build - Embed &amp; Scale Financial Products With Payscribe"}],"appearance":{"default":"light","themes":[{"name":"dark","logo":"https://content.pstmn.io/5f1cd8a3-46df-4812-88ba-44dca34917ff/UGF5c2NyaWJlIGRwMy5wbmc=","colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":"https://content.pstmn.io/d5981d15-efe0-426c-8d7c-6f780a72db6b/UGF5c2NyaWJlIGRwMS5wbmc=","colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.0","publishDate":"2024-07-07T16:36:20.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"Launch - Build - Embed &amp; Scale Financial Products With Payscribe","description":"Card issuing API, Local and international Bills Payment API With Commissions, KYC Verification, Virtual Account Creation, and Payment links."},"logos":{"logoLight":"https://content.pstmn.io/d5981d15-efe0-426c-8d7c-6f780a72db6b/UGF5c2NyaWJlIGRwMS5wbmc=","logoDark":"https://content.pstmn.io/5f1cd8a3-46df-4812-88ba-44dca34917ff/UGF5c2NyaWJlIGRwMy5wbmc="}},"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/ad171f2936bce59b50a04e732957f57d59b729f58c0ed812dabba217e4b92be0","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/2sA3e1Bpuc"}