{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"46214ca8-3fa4-4028-b60a-1c3dbe3f5f61","name":"MyCSP - API v2 (Beta)","description":"MyCSP is a world-leading SaaS commerce platform that helps businesses and Cloud Service Providers procure and resell Microsoft Azure, Microsoft 365, Dynamics 365 and Azure Stack.  MyCSP API enables integration with your own system, CMS, websites, APPs and etc.\n\nFor more details, please go: <https://www.mycsp.io/>.\n\nAnd this is a technical document for you to integrate with the MyCSP portal API.\n\n---\n\n# How to integrate?\n\nCurrently, we provide two ways to integrate with us:\n\n- **API integration**: usually for developers, you can integrate with your portal, services or program\n- **<img src=\"https://cdn.mycsp.io/assets/images/zapier-logo.png\" height=\"20px\" /> integration**: for everyone, you can setup integrations between your systems or software by using Zapier\n\nBefore doing integration, you need to enable the feature on the MyCSP portal and get the client_id and client_secret. \n\nTo obtain client_id and client_secret, please login to the MyCSP portal, go to API page, and create one.\n\n<img src=\"https://cdn.mycsp.io/assets/images/421627598513_.pic.jpg\" style=\"zoom: 67%;\" />\n\n---\n\n# API integration\n\n### Get access token\n\nYou need to create and get the client_id and client_secret first, then use our Auth API to get an access_token and send the request to our available APIs with that token.\n\nFollowing examples show how to use postman to simulate the integration process:\n\n### Steps\n\n<p>1. Get token with Client ID and Client Secret from MyCSP portal, and then invoke auth API to get the access token:\n<p/>\n<p align=\"center\" style=\"padding:10px;\" margin=\"10px;\"><img src=\"https://cdn.mycsp.io/assets/images/api-auth.png\" alt=\"api call\" width=\"80%\" /></p>\n<p>2. Use given token for actual API endpoints</p>\n<p align=\"center\"><img src=\"https://cdn.mycsp.io/assets/images/api-request-with-token.png\" alt=\"api call\"  width=\"67%\" /></p>\n\n\n---\n\n# Zapier integration\n\nUse it with integration automation tools such as **Zapier**, you can connect to our Zapier first.\n\nOur Zapier: <https://zapier.com/developer/public-invite/122144/6914d388bbc19edcd6bb2b41eb3ee321/>\n\n### Events Trigger\n<p> 1. <strong>New Invoice</strong>: Triggers when a new invoice is created, by choosing this trigger, the all new invoice information will be fetched and ready for other integration </p>\n\n<p> 2. <strong>Updates Invoices</strong>: Triggers when an invoice is updated, by choosing this trigger, the all latest updated invoice information will be fetched and ready for other integration </p>\n\n<p> 3. <strong>Paid Invoices</strong>: Triggers when an invoice is paid, by choosing this trigger, the all latest paid invoice information will be fetched and ready for other integration </p>\n\n<p> 4. <strong>Invoices in due</strong>: Triggers when an invoice is in due, by choosing this trigger, the information of the all latest invoices in due will be fetched and ready for other integration </p>\n\n\n### Steps\n\n<p>\n1. Accept zapier invitation by click above link\n</p>\n<p> \nor click `use zap` on portal integration page below to start with pre-defined zap templates.\n</p>\n<p align=\"center\"><img src=\"https://ucbproduction.blob.core.windows.net/images/zap-templates-page.png\" alt=\"api call\" style=\"zoom:30%;\" /></p>\n2. Create your own zap for automatical integration\n</p>\n<p align=\"center\"><img src=\"https://cdn.mycsp.io/assets/images/create-zap.png\" alt=\"api call\" style=\"zoom:30%;\" /></p>\n\n<p>\n3. Get clientId and clientSecret from MyCSP portal and add auth\n</p>\n<p align=\"center\"><img src=\"https://cdn.mycsp.io/assets/images/add-auth-to-zap.png\" alt=\"api call\" width=\"50%\"/></p>\n\n<p>\n4. Select trigger you want to user and test trigger\n</p>\n<p align=\"center\"><img src=\"https://cdn.mycsp.io/assets/images/add-zap-trigger.png\" alt=\"api call\" width=\"67%\" /></p>\n\n<p>\n5. Add actions according to your business requirement, e.g. Microsoft Teams notification\n</p>\n<p align=\"center\"><img src=\"https://cdn.mycsp.io/assets/images/add-zap-action.png\" alt=\"api call\" width=\"67%\" /></p>\n\n\n##### To be continued with Examples:\n---\n##### Microsoft Teams\n<p>\n6. Choose Action Event, 'Send Channel Message' for example, click continue\n</p>\n<p align=\"center\"><img src=\"https://cdn.mycsp.io/assets/images/add-zap-ms-team-action-event.png\" alt=\"api call\" width=\"67%\" /></p>\n\n<p>\n7. Connect your Microsoft account and click continue\n</p>\n<p align=\"center\"><img src=\"https://cdn.mycsp.io/assets/images/add-zap-ms-team-account.png\" alt=\"api call\" width=\"67%\" /></p>\n\n<p>\n8. Select Team, Channel and Message format and content & template\n</p>\n<p align=\"center\"><img src=\"https://cdn.mycsp.io/assets/images/add-zap-ms-team-action-channel-detail.png\" alt=\"api call\" width=\"67%\" /></p>\n\n---\n\n##### Slack\n<p>\n6. Choose Action Event, 'Send Channel Message' for example, click continue\n</p>\n<p align=\"center\"><img src=\"https://cdn.mycsp.io/assets/images/add-zap-slack-action-event.png\" alt=\"api call\" width=\"67%\" /></p>\n\n<p>\n7. Connect your Microsoft account and click continue\n</p>\n<p align=\"center\"><img src=\"https://cdn.mycsp.io/assets/images/add-zap-slack-account.png\" alt=\"api call\" width=\"67%\" /></p>\n\n<p>\n8. Select Team, Channel and Message format and content & template\n</p>\n<p align=\"center\"><img src=\"https://cdn.mycsp.io/assets/images/add-zap-slack-action-channel-detail.png\" alt=\"api call\" width=\"67%\" /></p>\n\n---\n\n##### Xero\n<p>\n6. Choose Action Event, 'Create Sales Invoice' for example, click continue\n</p>\n<p align=\"center\"><img src=\"https://cdn.mycsp.io/assets/images/add-zap-xero-action-event.png\" alt=\"api call\" width=\"67%\" /></p>\n\n<p>\n7. Connect your Microsoft account and click continue\n</p>\n<p align=\"center\"><img src=\"https://cdn.mycsp.io/assets/images/add-zap-xero-account.png\" alt=\"api call\" width=\"67%\" /></p>\n\n<p>\n8. Select Team, Channel and Message format and content & template\n</p>\n<p align=\"center\"><img src=\"https://cdn.mycsp.io/assets/images/add-zap-xero-action-channel-detail.png\" alt=\"api call\" width=\"67%\" /></p>\n\n---\n\n# ConnectWise Manage Connector\n\n<p>\n1. New Connectors:\n\nConnect a ConnectWise Manage account to MyCSP, by clicking Add connector button and enter the account details, so MyCSP can sync data to the ConnectWise account. Notes: check #6 to see how to generate ConnectWise API credentials.\n\n<img src=\"https://cdn.mycsp.io/assets/images/new-connector.png\" style=\"zoom: 67%;\" />\n</p>\n<p>\n2. Prepare Data:\n\nGet new data as preview ready to sync by clicking Prepare Data button, then before sync you can delete data which you don't want to be synchronized \n\n<img src=\"https://cdn.mycsp.io/assets/images/cw-prepare.png\" style=\"zoom: 67%;\" />\n\n</p>\n<p>\n3. Sync Data:\n\nStart to synchronize invoices related data to your ConnnectWise account by clicking Sync button.\n<img src=\"https://cdn.mycsp.io/assets/images/cw-sync.png\" style=\"zoom: 67%;\" />\n\n</p>\n<p>\n4. Sync Log:\n\nclick sync histories button to view all sync logs\n<img src=\"https://cdn.mycsp.io/assets/images/cw-sync-log.png\" style=\"zoom: 67%;\" />\n\n</p>\n<p>\n5. Check data sync in CW:\n<img src=\"https://cdn.mycsp.io/assets/images/cw-intro.png\" style=\"zoom: 67%;\" />\n<img src=\"https://cdn.mycsp.io/assets/images/cw-invoice.png\" style=\"zoom: 67%;\" />\n</p>\n\n<p>\n6. Generate ConnectWise API Credential\n\n- navigate to members page\n<img src=\"https://cdn.mycsp.io/assets/images/cw-api-1.png\" style=\"zoom: 67%;\" />\n- create an API member\n<img src=\"https://cdn.mycsp.io/assets/images/cw-api-2.png\" style=\"zoom: 67%;\" />\n- populate and save\n<img src=\"https://cdn.mycsp.io/assets/images/cw-api-3.png\" style=\"zoom: 67%;\" />\n- navigate to api\n<img src=\"https://cdn.mycsp.io/assets/images/cw-api-4.png\" style=\"zoom: 67%;\" />\n- fill description then save to generate api key and secret\n<img src=\"https://cdn.mycsp.io/assets/images/cw-api-5.png\" style=\"zoom: 67%;\" />\n- be careful to save the secret, you never see it again\n<img src=\"https://cdn.mycsp.io/assets/images/cw-api-6.png\" style=\"zoom: 67%;\" />\n</p>\n\n\n\n\n\n---\n\n## Contact Support\n\nEmail: help@umbrellar.com","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"3550892","collectionId":"46214ca8-3fa4-4028-b60a-1c3dbe3f5f61","publishedId":"Tz5p5HH3","public":true,"publicUrl":"https://docs.api.mycsp.io","privateUrl":"https://go.postman.co/documentation/3550892-46214ca8-3fa4-4028-b60a-1c3dbe3f5f61","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"00e37a"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.10.1","publishDate":"2021-03-16T01:02:02.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://mycsp.io/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://docs.api.mycsp.io/view/metadata/Tz5p5HH3"}