{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"05f514ab-c3c6-48ae-890d-8d4a7701c500","name":"BVN Validation","description":"<img src=\"https://content.pstmn.io/ae62f6bf-ced6-4fc5-a02b-5add1dd99e6b/bG9nby5wbmc=\" alt=\"Netapps%20Technologies%20Ltd\">\n\n## 👋 Introduction\n\nNetapps BVN Validation .\n\n## 🚀 Get started here\n\nThis documentation will guide you through intergrating this service into your application.\n\n## 🔖 **How to use this service**\n\n#### **Step 1: Onboarding**\n\nTo begin using our API, you need to complete the Know Your Customer (KYC) process on our merchant portal. This involves providing necessary information and documentation to verify your identity and establish a business relationship with us. Once your KYC is approved, you will recieve a `ClientId` and `ClientSecret` to gain access to the API.\n\n#### **Step 2: Authorization**\n\nTo make authorized API requests, you must obtain a bearer token. Start by making a request to the `Get Auth` endpoint using your `ClientId` and `ClientSecret`. Create a Basic authentication header by encoding your ClientId and ClientSecret, and include it in the request. The response will contain a JWT bearer token, which you should store securely. Take note that the token has an expiration time, as indicated in the response and the JWT's payload.\n\n#### **Step 3: API Endpoint Calls**\n\nWith the obtained bearer token, you can proceed to make calls to various API endpoints. Include the bearer token in the Authorization header of each request to authenticate your API calls.\n\n#### **Step 4: Endpoint Usage**\n\nExplore the different endpoints available in our API documentation. Each endpoint serves a specific purpose. Review the documentation for each endpoint to understand the required parameters, expected responses, and any additional details.\n\n#### **Step 5: Request and Response Formats**\n\nEnsure that your API requests adhere to the required format specified in the documentation. Most commonly, APIs use JSON or XML formats for data transmission. Verify the structure and data types of the request payload, and also be familiar with the expected format of the response.\n\n#### **Step 6: Error Handling**\n\nBe prepared to handle potential errors returned by the API. Errors can occur due to various reasons, such as invalid requests, authentication issues, or server errors. Consult the API documentation to understand the possible error codes, their meanings, and the recommended way to handle them in your application.\n\n#### **Step 7: Testing and Debugging**\n\nDuring development, thoroughly test your API integration. Use different scenarios and test cases to verify that your requests are being processed correctly and that you are receiving the expected responses. Debug any issues or unexpected behaviors that you encounter.\n\n#### **Step 8: Monitoring and Optimization**\n\nOnce your integration is live, continuously monitor the performance and behavior of your API usage. Keep track of response times, error rates, and any performance bottlenecks. Optimize your implementation as needed to improve efficiency and reliability.\n\n#### **Step 9: Documentation and Support**\n\nDocument your API integration to ensure future maintenance and to assist other developers who may work on the project. Keep an eye on any updates or new versions of the API that may be released, and refer to the API provider's support resources or community forums for assistance and further guidance.\n\nBy following these steps, you will be able to successfully onboard, authorize, and utilize our API to integrate our services into your application or business workflow.\n\n## 🔍 Reference Table\n\n### Used HTTP Response Codes\n\n| **Code** | **Description** |\n| --- | --- |\n| 200 | Good request and Response |\n| 400 | Bad Request |\n| 401 | Unauthorized |\n| 404 | Not Found |\n| 500 | Server error |\n\n## 💪 Pro tips\n\n- Keep API keys and secrets secure: Safeguard your API keys, secrets, and other sensitive credentials. Avoid hardcoding them directly in your code or exposing them publicly. Instead, consider using environment variables or secure key management solutions.\n- Implement rate limiting: Protect your API from abuse and potential DoS (Denial of Service) attacks by implementing rate limiting. Set limits on the number of requests per minute or hour to prevent excessive usage.\n- Validate and sanitize user input: Always validate and sanitize user input to prevent security vulnerabilities such as SQL injection or cross-site scripting (XSS) attacks. Use parameter validation and input sanitization techniques specific to your programming language or framework.\n- Monitor API usage and logs: Implement logging and monitoring mechanisms to track API usage, detect suspicious activities, and quickly respond to any security incidents or anomalies.\n    \n\n## 💡Relevant links\n\n- Basic Authentication: This link provides an overview and example of how to create a Basic Auth token using various programming languages and tools.\n    - [Basic Authentication Tutorial](https://)\n- API Security Best Practices: This comprehensive guide covers various security best practices for designing and securing APIs, including authentication, authorization, encryption, input validation, and more.\n    - [API Security Best Practices](https://)\n- JSON Web Tokens (JWT): Understand how JWT can be used for secure authentication and authorization in API requests, including generating and validating tokens.\n    - [JWT.io](https://)\n- OWASP API Security Project: The Open Web Application Security Project (OWASP) provides valuable resources, tools, and guides on securing APIs against common vulnerabilities and attacks.\n    - [OWASP API Security Project](https://)","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"28493246","collectionId":"05f514ab-c3c6-48ae-890d-8d4a7701c500","publishedId":"2s9YR9YCGi","public":true,"publicUrl":"https://documenter-api.postman.tech/view/28493246/2s9YR9YCGi","privateUrl":"https://go.postman.co/documentation/28493246-05f514ab-c3c6-48ae-890d-8d4a7701c500","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-single-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2023-11-08T13:03:52.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"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":""},"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/2s9YR9YCGi"}