{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"ecb64938-862b-42ff-9d04-b51c7a97d6c5","name":"CommerceCore Payment Microservice","description":"## Overview\n\nThe CommerceCore Payment Microservice provides a robust and flexible API for managing various aspects of payment processing for the CommerceCore API. This API is designed to seamlessly integrate with Stripe's payment infrastructure while offering additional features and abstractions tailored for CommerceCore's ecosystem. The API is structured around three main components: Connected Accounts, Transactions, and Refunds.\n\n## Connected Accounts\n\nThe Connected Accounts feature allows businesses to create and manage their own payment processing accounts within the CommerceCore ecosystem. This is particularly useful for marketplaces or platforms that need to handle payments on behalf of multiple sellers or service providers.\n\nKey functionalities include:\n\n1. **Creating Connected Accounts**: Businesses can easily set up new accounts by providing an email address. This process generates a Stripe Connected Account, providing a unique account ID and public key for future transactions.\n    \n2. **Account Onboarding**: The API facilitates the onboarding process for new accounts, ensuring that all necessary information is collected to comply with financial regulations and Stripe's requirements.\n    \n3. **Dashboard Access**: Account holders can securely access their Stripe dashboard through a generated login link, allowing them to manage their account settings, view transaction history, and access financial reports.\n    \n\nThese features enable platforms to quickly set up and manage multiple seller accounts, streamlining the process of integrating diverse businesses into a single payment ecosystem.\n\n## Transactions\n\nThe Transactions component forms the core of the payment processing functionality, handling the creation and confirmation of payment intents.\n\nKey features include:\n\n1. **Initiating Transactions**: The API allows for the creation of new transactions by specifying details such as the order ID, connected account ID, and transaction amount. This process generates a client secret and transaction ID, which are crucial for completing the payment on the client side.\n    \n2. **Confirming Transactions**: Once a payment method is selected by the customer, the transaction can be confirmed using the API. This step finalizes the payment, moving it from an initiated state to a completed state.\n    \n\nThe transaction process is designed to be flexible and secure, allowing for various payment flows including delayed capture for pre-authorization scenarios.\n\n## Refunds\n\nThe Refunds component handles the process of returning funds to customers, which is a critical part of any e-commerce platform.\n\nKey functionality:\n\n1. **Requesting Refunds**: The API provides an endpoint to initiate refunds for completed transactions. This process is tied to specific orders and connected accounts, ensuring that refunds are properly tracked and allocated.\n    \n\nThe refund system is designed to be straightforward yet flexible, accommodating various refund scenarios that may arise in complex e-commerce operations.\n\n### Cross-Cutting Concerns\n\nAcross all these components, the API implements several important features:\n\n1. **Authentication and Authorization**: The API uses a multi-layered authentication system, including bearer tokens for overall API access, developer tokens for identifying the integrating application, and user IDs for attributing actions to specific users within the system.\n    \n2. **Error Handling**: Comprehensive error reporting is implemented across all endpoints, providing clear and actionable information when issues arise.\n    \n3. **Stripe Integration**: While abstracting many of the complexities, the API closely integrates with Stripe's services, leveraging its robust payment processing capabilities and security features.\n    \n4. **Extensibility**: The API is designed with future growth in mind, allowing for easy addition of new features and endpoints as the needs of the platform evolve.\n    \n\nThis API provides a comprehensive solution for platforms and marketplaces looking to implement complex payment flows. By abstracting much of the complexity involved in multi-party payments, refunds, and account management, it allows businesses to focus on their core operations while still maintaining flexibility and control over their payment processes.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"36378381","team":6453453,"collectionId":"ecb64938-862b-42ff-9d04-b51c7a97d6c5","publishedId":"2sAXqtb23V","public":true,"publicUrl":"https://documenter-api.postman.tech/view/36378381/2sAXqtb23V","privateUrl":"https://go.postman.co/documentation/36378381-ecb64938-862b-42ff-9d04-b51c7a97d6c5","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"dark","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.0","publishDate":"2024-09-26T09:16:12.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/529a197b86b1b234de090b0bee3ba0bbcddc63a542c1a9072da850008a76c179","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/2sAXqtb23V"}