{"info":{"_postman_id":"bea62ac0-f58e-407a-9523-e604dda2d89c","name":"CoinZoom Partner API","description":"<html><head></head><body><h1 id=\"overview\">Overview</h1>\n<h2 id=\"all-apis-have-a-common-perfix-to-their-url\">All APIs have a common perfix to their URL.</h2>\n<p><strong>For testing use:</strong>\n<a href=\"https://api.stage.coinzoom.com/api/v1/public\">https://api.stage.coinzoom.com/api/v1/public</a></p>\n<p><strong>For production use:</strong>\n<a href=\"https://api.coinzoom.com/api/v1/public\">https://api.coinzoom.com/api/v1/public</a></p>\n<p>Each API must include the HTTP header 'Coinzoom-Api-Key' with the value of your API key. These keys can be created within the the coinzoom excange from the 'API Trading' menu.  To create your key you will need to complete registration for a CoinZoom Account:</p>\n<p><strong>For testing register here:</strong>\n<a href=\"https://stage.coinzoom.com\">https://stage.coinzoom.com</a> </p>\n<p><strong>For production register here:</strong>\n<a href=\"https://trade.coinzoom.com\">https://trade.coinzoom.com</a></p>\n<h2 id=\"referal-link-format\">Referal Link Format</h2>\n<p><strong>For testing use:</strong>\n<a href=\"http://stage.coinzoom.com/referral_register?referralToken=359f1a15-2937-4d3c-b567-9080d629b4dd\">http://stage.coinzoom.com/referral_register?referralToken=359f1a15-2937-4d3c-b567-9080d629b4dd</a></p>\n<p><strong>For production use:</strong>\n<a href=\"http://trade.coinzoom.com/referral_register?referralToken=359f1a15-2937-4d3c-b567-9080d629b4dd\">http://trade.coinzoom.com/referral_register?referralToken=359f1a15-2937-4d3c-b567-9080d629b4dd</a></p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Overview","slug":"overview"}],"owner":"8443211","collectionId":"bea62ac0-f58e-407a-9523-e604dda2d89c","publishedId":"SzRyz9yz","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"60BB46"},"publishDate":"2020-03-10T22:05:51.000Z"},"item":[{"name":"Create External Reference ","id":"5ed55d89-d0ec-44be-838d-81d6ef7ce4b9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"},{"key":"Coinzoom-Api-Key","type":"text","value":"{{coinzoomApiKey}}"},{"key":"Coinzoom-Api-Secret","type":"text","value":"{{coinzoomSecretKey}}"}],"body":{"mode":"raw","raw":"{\n    \"minimumCardLevel\": \"Gold\"\n}","options":{"raw":{"language":"json"}}},"url":"{{coinzoomHost}}/api/v1/public/external_reference/new","description":"<p>Creates a new external identifier that can be used as a one of referral code to signup a CoinZoom user linked to your account by this identifier.</p>\n<p>An optional email address can be provided. If this email has already been used in CoinZoom the call will fail. Otherwise the email will be saved. If CoinZoom receives a signup for this email it will be automatically linked to his email, even if they don't use the referral code. If they do use the referral code CoinZoom will default this email into the signup form.</p>\n","urlObject":{"path":["api","v1","public","external_reference","new"],"host":["{{coinzoomHost}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"5ed55d89-d0ec-44be-838d-81d6ef7ce4b9"},{"name":"Get External Reference Summary","id":"52bd2b50-4718-4e79-91f7-2a1ea565df3d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"},{"key":"Coinzoom-Api-Key","type":"text","value":"{{coinzoomApiKey}}"},{"key":"Coinzoom-Api-Secret","type":"text","value":"{{coinzoomSecretKey}}"}],"body":{"mode":"raw","raw":"{\n\t\"identifier\": \"03613908-2a5a-4989-bffb-b99e789940fa\"\n}","options":{"raw":{"language":"json"}}},"url":"{{coinzoomHost}}/api/v1/public/external_reference/get","description":"<p>Query the status of a previously created external identifier.</p>\n","urlObject":{"path":["api","v1","public","external_reference","get"],"host":["{{coinzoomHost}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"52bd2b50-4718-4e79-91f7-2a1ea565df3d"},{"name":"Transfer","id":"64ab1105-b4c3-4866-a38f-d102d265c62d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Coinzoom-Api-Key","value":"{{coinzoomApiKey}}","type":"text"},{"key":"Coinzoom-Api-Secret","value":"{{coinzoomSecretKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"currency\": \"BTC\",\n\t\"payFeesInZoom\": false,\n\t\"otp\": 623092,\n\t\"destinations\": [\n\t\t{\"type\": \"WALLET\", \"address\": \"2NF2WwtLYPxyUYFjkTY1F887fKm1aV445Tw\", \"amount\": 0.01},\n        {\"type\": \"ZOOMME\", \"address\": \"ZoomMe:jim2\", \"amount\": 0.02},\n        {\"type\": \"ZOOMME\", \"address\": \"ZoomMe:jim2\", \"amount\": 0.03},\n        {\"type\": \"ZOOMME\", \"address\": \"ZoomMe:jim2\", \"amount\": 0.04}\n\t]\n}","options":{"raw":{"language":"json"}}},"url":"{{coinzoomHost}}/api/v1/public/transfer/new","description":"<p>Allows funds to be sent from your account to multiple CoinZoom accounts and/or external wallet addresses.</p>\n<p>Your account must be setup with a 2FA authentication app and you must pass a valid OTP code with each request.</p>\n<p>Fees only apply to external wallet addressess. They can be paid in the currency of the tranfer or in ZOOM tokens. If you have insufficient ZOOM tokens the fees will be taken from your account.</p>\n<p>The destinations for the transfer can be specified in three ways:</p>\n<ul>\n<li>Setting the type to ZOOMME and specifying a zoom handle.</li>\n<li>Setting the type to EXTERNAL_ID and specifying a the unique external identififier the customer used to signup to CoinZoom</li>\n<li>Setting the type to WALLET and specifying an external wallet address.</li>\n</ul>\n<p>All zoom handles and external identifiers are validated before the transfer is processed. If an invalid wallet address is provided the rest of the transfer will be processed but the component relating to the invalid wallet address will be reversed and the funds returned to your account.</p>\n<p>If you have insufficient funds to process the entire transfer the entire transfer will fail.</p>\n<p>If the transfer is successful the response will give a unique identifier for this transaction.</p>\n","urlObject":{"path":["api","v1","public","transfer","new"],"host":["{{coinzoomHost}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"64ab1105-b4c3-4866-a38f-d102d265c62d"},{"name":"Query Transfers","id":"b2bd52fd-fc89-4f79-860c-be24b9c32e98","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Coinzoom-Api-Key","type":"text","value":"{{coinzoomApiKey}}"},{"key":"Coinzoom-Api-Secret","type":"text","value":"{{coinzoomSecretKey}}"}],"body":{"mode":"raw","raw":"{\n\t\"currency\": null,\n\t\"size\": 100,\n\t\"bookmarkTransferId\": null,\n\t\"start\": null,\n\t\"end\": null\n}","options":{"raw":{"language":"json"}}},"url":"{{coinzoomHost}}/api/v1/public/transfer/list","description":"<p>Provides a list of the transfers performed by your account. The results will be returned in date order, with the most recent first. The query paramters are:</p>\n<ul>\n<li>The currency symbol for the transfer (optional)</li>\n<li>The size (maximum number or results). This is mandatory and cannot be more than 1000</li>\n<li>The bookmarkTransferId is used to page through the data if you have more than 1000 transfers. Setting the value to null will provide the first 1000 (most recent) records. Setting it to the id of the last transfer in the first query will give you the second page or results etc.</li>\n<li>The start is an optional date time filter. If set no transfers earlier than this date time will be provided.</li>\n<li>The end is an optional date filter. If set no transfers later than this date will be provided.</li>\n</ul>\n<p>The start and end fields should be entered in ISO8601 format e.g. \"2020-03-25T21:42:13.524131Z\"</p>\n","urlObject":{"path":["api","v1","public","transfer","list"],"host":["{{coinzoomHost}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"b2bd52fd-fc89-4f79-860c-be24b9c32e98"},{"name":"Validate ZoomMe Handle","id":"42582992-57ae-4558-a7cd-6eb8b1bd4b0f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Coinzoom-Api-Key","value":"{{coinzoomApiKey}}","type":"text"},{"key":"Coinzoom-Api-Secret","value":"{{coinzoomSecretKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"zoomMeHandle\": \"ZoomMe:jim24\"\n}","options":{"raw":{"language":"json"}}},"url":"{{coinzoomHost}}/api/v1/public/transfer/validate/zoomme","description":"<p>Allows a ZoomMe handle to be pre-valdiated prior to using the transfer endpoint. If the ZoomMe handle does not exist a 404 HTTP status code will be returned. If it does exist a JSON message will be returned with basic information about the account. If the account is not KYC approved it cannot be used by the transfer endpoint.</p>\n","urlObject":{"path":["api","v1","public","transfer","validate","zoomme"],"host":["{{coinzoomHost}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"42582992-57ae-4558-a7cd-6eb8b1bd4b0f"},{"name":"Bulk Onboarding","id":"0b2f3b0c-4ca0-419d-8838-9d7d839cbadc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Coinzoom-Api-Key","value":"{{coinzoomApiKey}}","type":"text"},{"key":"Coinzoom-Api-Secret","value":"{{coinzoomSecretKey}}","type":"text"}],"body":{"mode":"raw","raw":"[\n  {\n    \"email\": \"person@coinzoom.com\",\n    \"mobileNumber\": \"1234567890\",\n    \"firstName\": \"Person\",\n    \"lastName\": \"Coinzoom\",\n    \"dateOfBirth\": \"2000-01-01\",\n    \"addressLine1\": \"1 Street\",\n    \"city\": \"City\",\n    \"stateCode\": \"UT\",\n    \"zipCode\": \"54321\",\n    \"countryCode\": \"USA\",\n    \"gender\": \"MALE\",\n    \"employmentStatus\": \"STUDENT\",\n    \"preTaxAnnualIncome\": \"100k-200k\"\n  },{\n    \"email\": \"other@coinzoom.com\",\n    \"mobileNumber\": \"9876543210\",\n    \"firstName\": \"Other\",\n    \"middleName\": \"Middle\",\n    \"lastName\": \"Coinzoom\",\n    \"dateOfBirth\": \"2000-01-01\",\n    \"addressLine1\": \"1 Street\",\n    \"addressLine2\": \"Some Place\",\n    \"city\": \"City\",\n    \"stateCode\": \"UT\",\n    \"zipCode\": \"54321\",\n    \"countryCode\": \"USA\",\n    \"gender\": \"OTHERS\",\n    \"employmentStatus\": \"FULL_TIME\",\n    \"preTaxAnnualIncome\": \"0-50k\",\n    \"lastFourDigitsSocialSecurityNumber\": \"1234\"\n  }\n]"},"url":"{{coinzoomHost}}/api/v1/public/onboard","description":"<p>Create new CoinZoom accounts with basic profile information for a streamlined onboarding process.</p>\n<h1 id=\"request\">Request</h1>\n<p>Profile information must be provided for each new account. All fields are required except for <code>middleName</code>, <code>addressLine2</code> and <code>lastFourDigitsSocialSecurityNumber</code>.</p>\n<ul>\n<li><code>countryCode</code> is an ISO 3166-1 three character code, eg. United States of America has code <code>USA</code>. All countries and codes are available via the GET Countries API. Exceptions:</li>\n<li>Kosovo is not part of ISO 3166 but is included using the country code <code>XF</code></li>\n<li><code>stateCode</code> is an ISO 3166-2 code suffix, eg. Utah in the USA has a full code of <code>US-UT</code> so provide the suffix of <code>UT</code>. All states and codes for a country are available via the GET Country's States API. There are a few exception:</li>\n<li>Countries without any ISO 3166-2 state codes requires the same three letter country code to be used as the <code>stateCode</code></li>\n<li>USA has extra entries for the armed forces and other dependencies</li>\n<li>Slovenia uses the historic \"statistical regions\"</li>\n<li>Kosovo is not part of ISO 3166 but is included using the state code <code>XF</code></li>\n<li><code>dateOfBirth</code> is in ISO 8601 format</li>\n<li><code>gender</code> is one of: <code>MALE</code>, <code>FEMALE</code>, <code>OTHERS</code></li>\n<li><code>employmentStatus</code> is one of: <code>STUDENT</code>, <code>PART_TIME</code>, <code>FULL_TIME</code>, <code>RETIRED</code>, <code>UNEMPLOYED</code></li>\n<li><code>preTaxAnnualIncome</code> is one of: <code>0-50k</code>, <code>50k-100k</code>, <code>100k-200k</code>, <code>200k-350k</code>, <code>350k-500k</code>, <code>500k+</code></li>\n</ul>\n<h1 id=\"response\">Response</h1>\n<p>The response provides details on the creation success or the reason it could not be created. Each account response is returned in the same order as the request and is also tagged with the email of the account created for tracking.</p>\n<p>The <code>externalIdentifier</code> returned must be used when the customer completes CoinZoom signup to ensure they are associated with the profile details. The simplest way to use that is to provide this link to the customer: <code>https://trade.coinzoom.com/referral_register?referralToken={{externalIdentifier}}</code></p>\n<p>Alternatively, the external identifier can be used in an initial payment from the customer where they will create their CoinZoom account before completing the payment. Provide the identifier in the <code>referralToken</code> field of the Merchant Create Payment API request to receive the correct payment URL. Mobile payment is not currently supported so no QR code is returned.</p>\n<p>Any failure to create an account does not affect other accounts in the request. The <code>email</code> address and <code>mobileNumber</code> must be unique in CoinZoom - should an account already exist matching either one of these then no account will be created and the response will indicate success with a message <code>Already registered</code>. Any other validation errors are returned encoded into the message text.</p>\n<p>When the customer was onboarded but has not completed their CoinZoom account then the <code>externalIdentifier</code> is returned so that the sign up or payment can be restarted. Should the customer have a completed CoinZoom account their ZoomMe handle will be returned instead in <code>zoomMeHandle</code>. Some customers may be in an intermediate state and neither external identifier or ZoomMe handle will be returned.</p>\n","urlObject":{"path":["api","v1","public","onboard"],"host":["{{coinzoomHost}}"],"query":[],"variable":[]}},"response":[{"id":"c44dc81c-0773-458c-b8de-dedd538f94aa","name":"Bulk Onboarding","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Coinzoom-Api-Key","value":"{{coinzoomApiKey}}","type":"text"},{"key":"Coinzoom-Api-Secret","value":"{{coinzoomSecretKey}}","type":"text"}],"body":{"mode":"raw","raw":"[\n  {\n    \"email\": \"person@coinzoom.com\",\n    \"mobileNumber\": \"1234567890\",\n    \"firstName\": \"Person\",\n    \"lastName\": \"Coinzoom\",\n    \"dateOfBirth\": \"2000-01-01\",\n    \"addressLine1\": \"1 Street\",\n    \"city\": \"City\",\n    \"stateCode\": \"UT\",\n    \"zipCode\": \"54321\",\n    \"countryCode\": \"USA\",\n    \"gender\": \"MALE\",\n    \"employmentStatus\": \"STUDENT\",\n    \"preTaxAnnualIncome\": \"100k-200k\"\n  },{\n    \"email\": \"other@coinzoom.com\",\n    \"mobileNumber\": \"9876543210\",\n    \"firstName\": \"Other\",\n    \"middleName\": \"Middle\",\n    \"lastName\": \"Coinzoom\",\n    \"dateOfBirth\": \"2000-01-01\",\n    \"addressLine1\": \"1 Street\",\n    \"addressLine2\": \"Some Place\",\n    \"city\": \"City\",\n    \"stateCode\": \"UT\",\n    \"zipCode\": \"54321\",\n    \"countryCode\": \"USA\",\n    \"gender\": \"OTHERS\",\n    \"employmentStatus\": \"FULL_TIME\",\n    \"preTaxAnnualIncome\": \"0-50k\",\n    \"lastFourDigitsSocialSecurityNumber\": \"1234\"\n  }\n]"},"url":"{{coinzoomHost}}/api/v1/public/onboard"},"_postman_previewlanguage":"json","header":null,"cookie":[],"responseTime":null,"body":"[\n  {\n    \"email\": \"person@coinzoom.com\",\n    \"success\": true,\n    \"message\": \"Customer onboarded\",\n    \"externalIdentifier\": \"e1f02525-dbcf-4251-85f2-ccf40948c181\"\n  },{\n    \"email\": \"dup.onboarded@coinzoom.com\",\n    \"success\": true,\n    \"message\": \"Already registered\",\n    \"externalIdentifier\": \"12302525-dbcf-4251-85f2-ccf40948c181\"\n  },{\n    \"email\": \"dup.registered@coinzoom.com\",\n    \"success\": true,\n    \"message\": \"Already registered\",\n    \"zoomMeHandle\": \"dup_registered\"\n  },{\n    \"email\": \"dup.other@coinzoom.com\",\n    \"success\": true,\n    \"message\": \"Already registered\"\n  },{\n    \"email\": \"invalid@coinzoom.com\",\n    \"success\": false,\n    \"message\": \"{dob=You must be 18 years or older., stateCode=Please enter a valid ISO 3166-2 subdivision code, without the country code prefix}\"\n  }\n]"}],"_postman_id":"0b2f3b0c-4ca0-419d-8838-9d7d839cbadc"},{"name":"Countries","id":"26279acb-7ec6-44cb-8785-c3314d80c627","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Coinzoom-Api-Key","value":"{{coinzoomApiKey}}","type":"text"},{"key":"Coinzoom-Api-Secret","value":"{{coinzoomSecretKey}}","type":"text"}],"url":"{{coinzoomHost}}/api/v1/public/countries","description":"<p>Provide all the countries supported by CoinZoom along with their ISO 3166-1 Alpha 3 codes.</p>\n","urlObject":{"path":["api","v1","public","countries"],"host":["{{coinzoomHost}}"],"query":[],"variable":[]}},"response":[{"id":"ec8b24c4-9c70-497e-8a84-56355064e7bf","name":"Countries","originalRequest":{"method":"GET","header":[{"key":"Coinzoom-Api-Key","value":"{{coinzoomApiKey}}","type":"text"},{"key":"Coinzoom-Api-Secret","value":"{{coinzoomSecretKey}}","type":"text"}],"url":"{{coinzoomHost}}/api/v1/public/countries"},"_postman_previewlanguage":"json","header":null,"cookie":[],"responseTime":null,"body":"[\n    {\n        \"isoCode3\": \"ALB\",\n        \"name\": \"Albania\"\n    },\n    {\n        \"isoCode3\": \"DZA\",\n        \"name\": \"Algeria\"\n    },\n    {\n        \"isoCode3\": \"ASM\",\n        \"name\": \"American Samoa\"\n    },\n    {\n        \"isoCode3\": \"AND\",\n        \"name\": \"Andorra\"\n    }\n]"}],"_postman_id":"26279acb-7ec6-44cb-8785-c3314d80c627"},{"name":"Country's States","id":"2b5e8a78-6f51-4f5c-8481-2b0ab0e80a0f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Coinzoom-Api-Key","value":"{{coinzoomApiKey}}","type":"text"},{"key":"Coinzoom-Api-Secret","value":"{{coinzoomSecretKey}}","type":"text"}],"url":"{{coinzoomHost}}/api/v1/public/countries/{{iso3Code}}/states","description":"<p>Provide all the states supported by CoinZoom for a country along with their ISO 3166-2 codes. The country is specified by the ISO 3166-1 Alpha 3 code in the URL path.</p>\n","urlObject":{"path":["api","v1","public","countries","{{iso3Code}}","states"],"host":["{{coinzoomHost}}"],"query":[],"variable":[]}},"response":[{"id":"59c79ed3-f121-4374-9d2d-2d9fcd7418ca","name":"Country's States","originalRequest":{"method":"GET","header":[{"key":"Coinzoom-Api-Key","value":"{{coinzoomApiKey}}","type":"text"},{"key":"Coinzoom-Api-Secret","value":"{{coinzoomSecretKey}}","type":"text"}],"url":"{{coinzoomHost}}/api/v1/public/countries/USA/states"},"_postman_previewlanguage":"json","header":null,"cookie":[],"responseTime":null,"body":"[\n    {\n        \"code\": \"AL\",\n        \"name\": \"Alabama\"\n    },\n    {\n        \"code\": \"AK\",\n        \"name\": \"Alaska\"\n    },\n    {\n        \"code\": \"AS\",\n        \"name\": \"American Samoa\"\n    },\n    {\n        \"code\": \"AZ\",\n        \"name\": \"Arizona\"\n    }\n]"}],"_postman_id":"2b5e8a78-6f51-4f5c-8481-2b0ab0e80a0f"}],"event":[{"listen":"prerequest","script":{"id":"b0a93506-6cf4-4c7d-b99c-d8de79252af5","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"48704dee-11d2-49b9-96ec-58b07c453686","type":"text/javascript","exec":[""]}}]}