{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"752d160a-f074-4565-89ff-b826639bd542","name":"SendJim Public API v4 - Integration Partners","description":"We now have 2 methods of integration with SendJim - Integration Partner OR Private Label.\n\n**Integration Partner**: This integration approach is ideal if your customers already have their own SendJim accounts and wish to establish workflows between your software and SendJim.\n\n**Private Label:** This integration method is preferable if you aim to set up your own workflows utilizing SendJim's functionality, but your customers do not have SendJim accounts. It is designed for situations where you want the functionality to appear as if it is originating from your software. All transactions will be conducted through a single SendJim account, which you will manage and for which you will purchase credits.\n\nOur API was updated on 12/06/2023. The documentation below is for our new API (version 4). To view version 3 of our api, please click this [link](https://documenter.getpostman.com/view/1717999/sendjim-public-api-v3/6Z2Qshq#api-authentication-high-level-overview).\n\n<table><tbody><tr><th>API URL</th><td><div><a rel=\"noreferrer noopener nofollow\" href=\"https://{{url}}\" target=\"_blank\" url=\"https://{{url}}\">{{url}}</a></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><th><br>Help Email<br></th><td><div><a rel=\"noreferrer noopener nofollow\" href=\"https://mailto:{{help email}}\" target=\"_blank\" url=\"https://mailto:{{help email}}\">{{help email}}</a></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h1><br>API Authentication (High level overview)<br></h1>\n\nIf you would like to authenticate _other_ send jim customers, and use our API with their accounts, then you are an integration partner and must use OAuth 2.0 authentication.\n\nThe OAuth 2.0 process is as follows:\n\n- First, make sure you have white listed call back urls in the \"Integration Settings\" within the Company Profile page\n- Then, redirect the user to the following URL, passing along your client key and one of your white listed call back URLs as query parameters\n    - [<b>https://members.sendjim.com/OAuth/Account?clientKey=CLIENT_KEY&amp;callbackUrl=[WHITE_LISTED_CALLBACK_URL]</b>](https://members.sendjim.com/OAuth/Account?clientKey=CLIENT_KEY&callbackUrl=%5C%5BWHITE_LISTED_CALLBACK_URL%5C%5D)\n    - Optionally, you can send a \"**state**\" parameter to the authentication URL above. The \"**state**\" parameter can contain any string data that is relevant to your application. After a successful authentication, we will send the \"**state**\" value to your white-listed redirect URL.\n- The user will be presented with a login form to connect with your company. If the user is already logged in, they will skip the login form and be asked if they would like to share their information with your company.\n    \n\n<img src=\"https://content.pstmn.io/d05173fa-7ade-4de4-8b46-0e3a6b6299ca/T0F1dGgyTG9naW4ucG5n\">\n\n<img src=\"https://content.pstmn.io/8b860ef3-c932-4287-af69-5bd462946882/T0F1dGgyQWxsb3dBY2Nlc3MucG5n\">\n\n- Once the user allows access to your application, the user will be redirected to the call back URL you passed as a query parameter. **Reminder: This URL must be white listed in your company profile's integration settings page.**\n    - [<b>http://yourapp.com/callback_url?requestToken=1aa8d6ad-f2c5-4979-91bc-fd656123c945&amp;expires=3599</b>](http://yourapp.com/callback_url?requestToken=1aa8d6ad-f2c5-4979-91bc-fd656123c945&expires=3599)\n- As seen above, SendJim.io will send a request token and an expiration timer to your callback URL. (Note: The expiration integer represents the number of seconds from now that the request token will expire)\n- If a \"**state**\" parameter was provided during the authentication process, we will append the **state** parameter and value to your redirect URL above.\n- Next, using your client key, secret key, and your newly acquired request token, create a POST request to:\n    - [<b>https://members.sendjim.com/OAuth/Grant</b>](https://members.sendjim.com/OAuth/Grant)\n    - JSON Body\n\n<img src=\"https://content.pstmn.io/0291b207-4c16-4608-ae06-9c5630db7b11/T0F1dGgyUmVxdXN0Qm9keUZvckFjY2Vzc1Rva2VuLnBuZw==\">\n\n- Finally, you will receive a JSON response back with the following properties:\n    - GrantToken - String\n    - UserFirstName - String\n    - UserLastName - String\n    - Username - String\n- You can now store the Grant Token and send it with every future request for this user. The token must be present in the Authorization header in every API call. Like so:\n    - **Authorization Token GRANT_TOKEN_GOES_HERE**\n    - **Note** - The Grant Token does not expire\n\n<h2>Additional Details</h2>\n\n1. Optional parameter that you may pass to the \\~/OAuth/Account URL. The State parameter can be any string that you would like to receive back after the OAuth process is complete. More information about this is in our documentation below.\n2. **API Version Header**\n    - With API version 3 (and going forward) we **require** a new header to be sent with every API request. That header is called **api_version**. And you must provide the API version you wish to use. Example:\n\n```\n    Authorization : Token \\[tokenValue\\]  \n    api_version: 4  \n\n ```\n\n---\n\n<h2><br>Conclusion<br></h2>\n\n<p>For the authorization headers in the APIs documented below, we will be using the Integration Partner authentication process (OAuth 2.0 Token).<br></p>\n\n<p><br>If you have any questions, please dont hesitate to contact us at {{help email}}.<br></p>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"1717999","team":37199,"collectionId":"752d160a-f074-4565-89ff-b826639bd542","publishedId":"2s9Ykq8gmC","public":true,"publicUrl":"https://documenter-api.postman.tech/view/1717999/2s9Ykq8gmC","privateUrl":"https://go.postman.co/documentation/1717999-752d160a-f074-4565-89ff-b826639bd542","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-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.12.0","publishDate":"2023-12-21T14:48:14.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[{"name":"SendJim - Prod","id":"b473aabf-acf5-befa-09d9-62d95331b9eb","owner":"1717999","values":[{"enabled":true,"key":"url","value":"https://api.sendjim.com/api","type":"text"},{"enabled":true,"key":"SessionKey","value":"undefined","type":"text"},{"enabled":true,"key":"help email","value":"support@sendjim.com","type":"text"},{"enabled":true,"key":"web url","value":"https://members.sendjim.com","type":"text"},{"enabled":true,"key":"token","value":"ZjYwNzQzNWEtZjc3My00ZTFhLWE1OTItY2FhMTU0OThmZThkZTAzYjdiNGQtMmExMy00NjlkLWFjNzItYzRhNTk3NzIwMzhk","type":"text"}],"published":true}],"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/3e73b6c552545956cd49a51fef8650b9dcce997091d5bf899d796c4b5b0c2bb3","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"},{"label":"SendJim - Prod","value":"1717999-b473aabf-acf5-befa-09d9-62d95331b9eb"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2s9Ykq8gmC"}