{ "info": { "_postman_id": "cb74c511-e62b-42d1-a38d-5aedbf54fcf2", "name": "V3::Compliance Suite: REST API Reference", "description": "This document describes the REST API and resources provided by the **Compliance Suite**. The REST APIs are for developers who want to integrate the **Compliance Suite** into other applications.\n\n**Compliance Suite’s** REST API provide access to all suite resources via URI paths. To use a REST API, your application will make an HTTP request and parse the response. The response format is JSON. Your methods will be the standard HTTP methods like GET, PUT, POST and DELETE.\n\nBecause the REST API is based on open standards, you can use any web development language to access the API.", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "_exporter_id": "21347931" }, "item": [ { "name": "Authentication", "item": [ { "name": "JWT request", "event": [ { "listen": "test", "script": { "exec": [ "" ], "type": "text/javascript" } } ], "protocolProfileBehavior": { "disabledSystemHeaders": { "content-type": true } }, "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"client_id\": \"{{oauth_client_id}}\",\n \"client_secret\": \"{{oauth_client_secret}}\",\n \"grant_type\": \"client_credentials\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/oauth/token", "host": [ "{{base_url}}" ], "path": [ "oauth", "token" ] }, "description": "The server response can vary based on the validity of the provided POST body:\n\n- **Success (HTTP status 200):**\n - **Headers:** The response includes various headers such as `Content-Type`, `Cache-Control`, `Expires`, and more.\n - **Body:** The response body is a JSON object containing the `access_token`, `token_type`, `expires_in`, and `scope` fields. The `access_token` is the JWT that should be included in the `Authorization` header for subsequent API requests.\n- **Unauthorized (HTTP status 401):**\n - **Headers:** The response includes various headers such as `Content-Type`, `Cache-Control`, `Expires`, and more.\n - **Body:** The response body is a JSON object containing the `error` and `error_description` fields, indicating an invalid client or failed authentication.\n- **Bad Request (HTTP status 400):**\n - **Headers:** The response includes various headers such as `Content-Type`, `Cache-Control`, `Expires`, and more.\n - **Body:** The response body is a JSON object containing the `error` and `error_description` fields, indicating an invalid request." }, "response": [ { "name": "JWT request: success", "originalRequest": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"client_id\": \"{{oauth_client_id}}\",\n \"client_secret\": \"{{oauth_client_secret}}\",\n \"grant_type\": \"client_credentials\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "https://api.zenledger.io/oauth/token", "protocol": "https", "host": [ "api", "zenledger", "io" ], "path": [ "oauth", "token" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Wed, 14 Jun 2023 14:16:36 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "344" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Cache-Control", "value": "no-store" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "ETag", "value": "W/\"c70b151d5f1894b0146cd6d420255f89\"" }, { "key": "X-Request-Id", "value": "a62ce991-93e0-476d-8caa-251ec8daa949" }, { "key": "X-Runtime", "value": "0.060161" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d73312b9eb08e54-KTM" } ], "cookie": [], "body": "{\n \"access_token\": \"access_token\",\n \"token_type\": \"Bearer\",\n \"expires_in\": 1800,\n \"scope\": \"public\",\n \"created_at\": 1686752196\n}" }, { "name": "JWT request: invalid client", "originalRequest": { "method": "POST", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "client_id", "value": "{{oauth_client_id}}", "type": "text", "disabled": true }, { "key": "client_secret", "value": "{{oauth_client_secret}}", "type": "text" }, { "key": "grant_type", "value": "client_credentials", "type": "text" } ] }, "url": { "raw": "{{base_url}}/oauth/token", "host": [ "{{base_url}}" ], "path": [ "oauth", "token" ] } }, "status": "Unauthorized", "code": 401, "_postman_previewlanguage": "json", "header": [ { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Cache-Control", "value": "no-store" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "WWW-Authenticate", "value": "Bearer realm=\"Doorkeeper\", error=\"invalid_client\", error_description=\"Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method.\"" }, { "key": "Vary", "value": "Accept, Origin" }, { "key": "X-Meta-Request-Version", "value": "0.7.4" }, { "key": "X-Request-Id", "value": "fc348002-f78c-4a82-be66-99757f373f63" }, { "key": "X-Runtime", "value": "0.048000" }, { "key": "Transfer-Encoding", "value": "chunked" } ], "cookie": [], "body": "{\n \"error\": \"invalid_client\",\n \"error_description\": \"Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method.\"\n}" }, { "name": "JWT request: invalid request", "originalRequest": { "method": "POST", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "client_id", "value": "{{oauth_client_id}}", "type": "text" }, { "key": "client_secret", "value": "{{oauth_client_secret}}", "type": "text" }, { "key": "grant_type", "value": "client_credentials", "type": "text", "disabled": true } ] }, "url": { "raw": "{{base_url}}/oauth/token", "host": [ "{{base_url}}" ], "path": [ "oauth", "token" ] } }, "status": "Bad Request", "code": 400, "_postman_previewlanguage": "json", "header": [ { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Cache-Control", "value": "no-store" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "WWW-Authenticate", "value": "Bearer realm=\"Doorkeeper\", error=\"invalid_request\", error_description=\"Missing required parameter: grant_type.\"" }, { "key": "X-Meta-Request-Version", "value": "0.7.4" }, { "key": "X-Request-Id", "value": "35ae636c-91cd-41c0-b841-81e710986830" }, { "key": "X-Runtime", "value": "0.040856" }, { "key": "Vary", "value": "Origin" }, { "key": "Transfer-Encoding", "value": "chunked" } ], "cookie": [], "body": "{\n \"error\": \"invalid_request\",\n \"error_description\": \"Missing required parameter: grant_type.\"\n}" } ] } ], "description": "The **Compliance Suite** API uses a **Jason Web Token** to secure all data requests. Each one of the request needs to contain the **JWT** which has an expiration of 30 minutes and needs to be refreshed after that period of time. \nTo request a **JWT** it is necessary to make a **POST** request to `/oauth/token` with the **credentials** previously facilitated by ZenLedger. \nThis same resource will be used to **refresh** the token after expiration.\n\nHere is an example in **javascript** of how to request a **JWT**:\n\n``` javascript\nconst clientId = 'provided_client_id';\nconst clientSecret = 'provided_secret';\nconst tokenEndpoint = 'https://zenledger.io/oauth/token';\nconst requestOptions = {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n client_id: clientId,\n client_secret: clientSecret,\n grant_type: 'client_credentials',\n }),\n};\nfetch(tokenEndpoint, requestOptions)\n .then((response) => {\n if (!response.ok) {\n throw new Error('Failed to obtain JWT token');\n }\n return response.json();\n })\n .then((data) => {\n const token = data.access_token;\n console.log('JWT Token:', token);\n // You can now use the token for further requests or store it for future use.\n })\n .catch((error) => {\n console.error('Error:', error);\n });\n\n ```\n\nOnce the **JWT** is created you can use it for every other request to the API:\n\n``` javascript\nconst jwtToken = 'your-jwt-token';\nconst apiUrl = 'https://zenledger.io/compliance/api/v3/companies';\nfetch(apiUrl, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n 'Authorization': 'Bearer ${jwtToken}''\n }\n})\n .then(response => response.json())\n .then(response_data => {\n // Handle the response data (list of companies)\n console.log('companies list:', response_data.data);\n })\n .catch(error => {\n // Handle any errors\n console.error('Error:', error);\n });\n\n ```" }, { "name": "Request Signature and Encryption", "item": [ { "name": ".", "request": { "method": "VIEW", "header": [], "url": { "raw": "" } }, "response": [] } ], "description": "## Request Signing & Encryption\n\nAll API requests to the endpoint where encryption is required must be **signed and encrypted** to ensure integrity and security. The signing process ensures that the request is authenticated and has not been tampered with. Encryption protects sensitive data during transmission.\n\n### **Signing Process**\n\nEach request should include a signature header (`X-Signature`), which is generated using **HMAC-SHA256** with a private key. The signature is computed as follows:\n\n1. Concatenate the request method, URL path, query parameters (if any), and request body as a string.\n2. Compute an HMAC-SHA256 hash of the string using your **API Secret Key**.\n3. Encode the result in hexadecimal format.\n4. Include the generated signature in the request headers.\n \n\n### **Encryption Process**\n\n* The request body must be **AES-256 encrypted** before transmission.\n* The encryption key must be securely shared between the client and server.\n* The request includes an **IV (Initialization Vector)** and **signature** for verification.\n \n\n### **Headers Required**\n\n| Header | Description |\n| --- | --- |\n| `Authorization` | Bearer token (`JWT`) for authentication |\n| `X-Signature` | HMAC-SHA256 signature for request integrity |\n| `Content-Type` | `application/json` |\n\n## **API Request in TypeScript**\n\nBelow is a TypeScript example demonstrating how to **encrypt** and **sign** an API request before sending it.\n\n``` typescript\nimport * as crypto from \"crypto\";\nimport axios from \"axios\";\nconst SECRET = \"your_secret_key\"; // Replace with your actual secret key\nconst API_URL = \"https://api.zenledger.io/companies/{company_reference}/users/{user_id}/imports \"; // Replace with actual API endpoint\n// Function to derive a SHA-256 key from the secret\nfunction getKey(secret: string): Buffer {\n return crypto.createHash(\"sha256\").update(secret).digest();\n}\n// Function to encrypt the payload\nfunction encrypt(secret: string, payload: object) {\n const key = getKey(secret);\n const iv = crypto.randomBytes(16); // AES-256-CBC requires a 16-byte IV\n const cipher = crypto.createCipheriv(\"aes-256-cbc\", key, iv);\n let encryptedData = cipher.update(JSON.stringify(payload), \"utf8\", \"base64\");\n encryptedData += cipher.final(\"base64\");\n const signature = crypto.createHmac(\"sha256\", secret).update(Buffer.from(encryptedData, \"base64\")).digest(\"hex\");\n return {\n data: encryptedData,\n iv: iv.toString(\"base64\"),\n signature: signature,\n };\n}\n// Example payload\nconst payload = {\n type: \"exchange\",\n exchange_reference: \"coinbase\",\n access_token: \"eq5uFG0Lojx6Oej1mIFBTxAFfYBVy24CXEo5mc1hDnGpUtaN2QQGg7NoI7vCo3sGqEAf5-2BSYC8-7KJiEMXX_-1fagqJiunM3l9vP4c0_84ZK2bwPUvahEX2_pZXpOTs\",\n refresh_token: \"YGYn2q7k73XlmkUcDlOPRUxHhlBKEk-OnMuKFXREH9KpwcM2pGW6iCipH4EGrvjSTM-nJ0xhTpLjolBUug7sF0_cEcbpF5iQvEXyogJP7BzWiSXCxi7yeePfekL1i1EN\",\n password: \"\",\n private_key: \"\",\n key_name: \"\",\n};\n// Encrypt and sign the payload\nconst encryptedPayload = encrypt(SECRET, payload);\n// Example API Request\nasync function sendRequest() {\n try {\n const response = await axios.post(API_URL, encryptedPayload, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-Signature\": encryptedPayload.signature,\n },\n });\n console.log(\"Response:\", response.data);\n } catch (error) {\n console.error(\"Error:\", error.response ? error.response.data : error.message);\n }\n}\n// Execute the request\nsendRequest();\n\n```" }, { "name": "Companies", "item": [ { "name": "GET companies", "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies" ] }, "description": "### GET **/companies**\n\n**Returns** a list of all active companies that exist in the system by making a GET request to the path `/compliance/api/v3/companies` on the base URL.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n### Request\n\n##### QUERY PARAMETERS\n\n> NONE\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n>\n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "GET companies: success", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text", "disabled": true }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Fri, 02 Jun 2023 07:49:36 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "355" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Etag", "value": "W/\"ffb71c828a2d762a413033c733d9ce37\"" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "abef1490-f76f-4bd0-9b11-9fe94d89ebae" }, { "key": "X-Runtime", "value": "0.098130" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Set-Cookie", "value": "__cf_bm=YJSK8kir55yA6SRktdZOZyYbDf19b7azd3E8fKONM9Y-1685692176-0-AcD2Iz1zWjiEzwlvue9G3MbYDHu1RIO29GfJft0lJkN05OOUHC0CGmCIR24gEfXJWuVGmmNfpmucyt6LwPU4zCo=; path=/; expires=Fri, 02-Jun-23 08:19:36 GMT; domain=.zenledger.dev; HttpOnly; Secure; SameSite=None" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d0e19c49b245b9e-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [\n {\n \"reference\": \"tu7vS9DL6gLqrAwMikRJ\",\n \"name\": \"A Company\",\n \"created_at\": \"2023-06-01T17:13:01.087Z\",\n \"updated_at\": \"2023-06-01T17:13:01.087Z\"\n },\n {\n \"reference\": \"FSOLPzrHGKiiZinvKOrn\",\n \"name\": \"Another Company\",\n \"created_at\": \"2023-06-01T17:31:35.194Z\",\n \"updated_at\": \"2023-06-01T17:31:35.194Z\"\n },\n {\n \"reference\": \"c5KqB1RoKMOmuc15Mz9B\",\n \"name\": \"New name of company\",\n \"created_at\": \"2023-06-01T17:33:05.828Z\",\n \"updated_at\": \"2023-06-01T19:44:58.498Z\"\n },\n {\n \"reference\": \"1RoKc155KqBMz9BMOmu\",\n \"name\": \"Company Name\",\n \"created_at\": \"2023-06-02T07:48:44.305Z\",\n \"updated_at\": \"2023-06-02T07:48:44.305Z\"\n }\n ]\n}" }, { "name": "GET companies: unauthorized", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies" ] } }, "status": "Unauthorized", "code": 401, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 01 Jun 2023 11:59:37 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "117" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "no-store" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "Www-Authenticate", "value": "Bearer realm=\"Doorkeeper\", error=\"invalid_token\", error_description=\"The access token is invalid\"" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "c13f9bf5-f29a-4de9-b215-ddba3247fc36" }, { "key": "X-Runtime", "value": "0.051628" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Set-Cookie", "value": "__cf_bm=DrHpJ9qnc7zseQ84My3dSzRngh2I4ZVIJM9oUv8UEn8-1685620777-0-AQ7CO5lAUxailm4cHFcvfBzb0OaT4vQIbJLvjpoqqNA9419WahrJq4mkzGYKxcUhGuuQKkPBT4g+4740jbQRtRA=; path=/; expires=Thu, 01-Jun-23 12:29:37 GMT; domain=.zenledger.dev; HttpOnly; Secure; SameSite=None" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d074aa0da845b74-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": [\n {\n \"code\": \"ZENCS-AUTHGET-AA2\",\n \"message\": \"Unauthorised\"\n }\n ]\n}" } ] }, { "name": "GET company", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}" ] }, "description": "### GET **/companies/**{companyReference}\n\n**Returns** the details of the requested company by making a GET request to the path `/compliance/api/v3/companies/{company_reference}` on the base URL\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n### Request\n\n##### QUERY PARAMETERS\n\n> NONE\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n>\n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "GET company: success", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v/companies/{{company_reference}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v", "companies", "{{company_reference}}" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 01 Jun 2023 12:03:09 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "138" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Etag", "value": "W/\"ba1a01146b3ecde8587841867a210195\"" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "653ddacf-fe98-4905-a6bf-bd15476edce7" }, { "key": "X-Runtime", "value": "0.084354" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d074fcc0b045b74-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"reference\": \"c155KqBMz9Bc155KqBMz9B\",\n \"name\": \"company name\",\n \"created_at\": \"2023-05-31T08:14:43.332Z\",\n \"updated_at\": \"2023-05-31T08:14:43.332Z\"\n }\n}" }, { "name": "GET company: company not found", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 01 Jun 2023 12:02:24 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "125" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "a336245b-f570-40df-98c8-e001d3bde946" }, { "key": "X-Runtime", "value": "0.034613" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d074eb7aba45b74-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-CMPGET-AA3\",\n \"message\": \"Could not find company\"\n }\n}" } ] }, { "name": "CREATE company", "protocolProfileBehavior": { "disabledSystemHeaders": { "content-type": true } }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"Company Name\",\n \"reference\": \"{{company_reference}}\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "" ] }, "description": "### POST **/companies**\n\nAll API requests to this endpoint must be **signed and encrypted** to ensure integrity and security. The signing process is explained in the **Request Signature and Encryption** section and ensures that the request is authenticated and has not been tampered with. Encryption protects sensitive data during transmission.\n\n**Creates** a new company which is linked to the enterprise by making a POST request to the `/compliance/api/v3/companies/` endpoint is used to create a new company in the system.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n### Request\n\n##### QUERY PARAMETERS\n\n> NONE\n\n##### BODY\n\n*In JSON format\n\n> **name** (optional) `string` Legal name of the company\n> \n> **reference** `string` Own company reference\n> \n> **import_notification_url** (optional) `string` if set, Webhook notifications will be sent here after each import completed. For security reasons, this value will never be returned by the API.\n> \n> **domain_target_url** (optional) `string` This parameter is required for proper functioning of the Iframe integration. When importing accounts via Iframe, the integration uses postMessage to communicate with the parent window. This attribute should be set to the domain where the parent application (the Iframe container) is hosted — for example, [https://app.partnerdomain.com](https://app.partnerdomain.com). It ensures messages are correctly delivered and received between the Iframe and its parent.\n> \n> Alternatively, the value \"default\" can be used. In that case, the domain will be set to the parent enterprise’s default_url, if defined, at the time the request is received by ZenLedger.\n> \n> * For security reasons, this value will never be returned in API responses.\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n> \n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "CREATE company: success", "originalRequest": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"Company Name\",\n \"reference\": \"{{company_reference}}\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Fri, 02 Jun 2023 07:48:44 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "135" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Etag", "value": "W/\"2feaa303b8a6862023a631a975a7da23\"" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "bef041f6-771e-4287-87a0-5dd94142a202" }, { "key": "X-Runtime", "value": "0.069032" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d0e187fec685b9e-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"reference\": \"tu7vS9DL6gLqrAwMikRJ\",\n \"name\": \"Company Name\",\n \"created_at\": \"2023-06-02T07:48:44.305Z\",\n \"updated_at\": \"2023-06-02T07:48:44.305Z\"\n }\n}" }, { "name": "CREATE company: duplicate id", "originalRequest": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"Company Name\",\n \"reference\": \"Company Reference\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "" ] } }, "status": "Unprocessable Entity", "code": 422, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 01 Jun 2023 11:51:10 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "137" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "7e21c188-67c0-4a5d-abbe-a280dddd868e" }, { "key": "X-Runtime", "value": "0.095499" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d073e4358265b74-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-CMPPST-AA2\",\n \"message\": \"Duplicated External ID for company\"\n }\n}" }, { "name": "CREATE company: reference not allowed", "originalRequest": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"Company Name\",\n \"reference\": \"Company Reference \"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "" ] } }, "status": "Unprocessable Entity", "code": 422, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Fri, 02 Jun 2023 07:34:37 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "124" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "5351155d-fe22-4133-a64f-64d4b9bf62c1" }, { "key": "X-Runtime", "value": "0.052252" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d0e03d1ae0569a3-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-CMPPST-AA1\",\n \"message\": \"Could not add company\"\n }\n}" }, { "name": "CREATE company: active companies limit reached", "originalRequest": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"Company Name\",\n \"reference\": \"Company Reference \"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "" ] } }, "status": "Unprocessable Entity", "code": 422, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Fri, 02 Jun 2023 07:34:37 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "124" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "5351155d-fe22-4133-a64f-64d4b9bf62c1" }, { "key": "X-Runtime", "value": "0.052252" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d0e03d1ae0569a3-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-CMPPST-AA3\",\n \"message\": \"Maximum number of active companies limit exceeded\"\n }\n}" } ] }, { "name": "DELETE company", "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "DELETE", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}" ] }, "description": "### DELETE **/companies/**{companyReference}\n\n**Deletes** a company which is linked to the enterprise by making a DELETE request to the `/compliance/api/v3/companies/{company_reference}` endpoint.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n### Request\n\n##### QUERY PARAMETERS\n\n> NONE\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n>\n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "DELETE company: success", "originalRequest": { "method": "DELETE", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 01 Jun 2023 12:28:50 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "57" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Etag", "value": "W/\"209cb73fc40aac9d999ff21f2e568f9b\"" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "296c34a8-4b5e-4367-b5d3-73944883fbef" }, { "key": "X-Runtime", "value": "0.093127" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d07756b3e595b74-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": []\n}" }, { "name": "DELETE company: company not found", "originalRequest": { "method": "DELETE", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 01 Jun 2023 12:06:10 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "125" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "f07bfdc7-80e1-4bd7-a711-14dbe69e3a55" }, { "key": "X-Runtime", "value": "0.079214" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d07543bd9595b74-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-CMPGET-AA3\",\n \"message\": \"Could not find company\"\n }\n}" } ] }, { "name": "UPDATE company details", "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"New Company Name\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}" ] }, "description": "### PUT **/companies**\n\nAll API requests to this endpoint must be **signed and encrypted** to ensure integrity and security. The signing process is explained in the **Request Signature and Encryption** section and ensures that the request is authenticated and has not been tampered with. Encryption protects sensitive data during transmission.\n\n**Updates** the details of a company by making a PUT request to the path `/compliance/api/v3/companies/{company_reference}` on the base URL\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n### Request\n\n##### QUERY PARAMETERS\n\n> NONE\n\n##### BODY\n\n*In JSON format\n\n> **name** (optional) `string` Legal name of the company\n> \n> **import_notification_url** (optional) `string` if set, Webhook notifications will be sent here after each import completed\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n> \n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "UPDATE company details: success", "originalRequest": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"New Company Name\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 01 Jun 2023 12:45:13 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "147" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Etag", "value": "W/\"7cc10f1bfa149959fec5143934958a8f\"" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "cf5e77d1-7556-4503-889a-2fa9f760c98b" }, { "key": "X-Runtime", "value": "0.077198" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Set-Cookie", "value": "__cf_bm=wy6bwG1ZC3sGsTvENH.9b_4Mwkyd3SoDFDIxFEX8xrU-1685623513-0-AUUay63X9UEWIljzghJwbPr0fYlLWFIQ6q9f2FZeVE6C1luOPYl0HGjSXoSJVhM3iLLAdk7FLjsBZBEL0aRfiIs=; path=/; expires=Thu, 01-Jun-23 13:15:13 GMT; domain=.zenledger.dev; HttpOnly; Secure; SameSite=None" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d078d6fcc015b74-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"reference\": \"Company Reference\",\n \"name\": \"New Company Name\",\n \"created_at\": \"2023-06-01T12:30:24.409Z\",\n \"updated_at\": \"2023-06-01T12:45:13.749Z\"\n }\n}" }, { "name": "UPDATE company details: company not found", "originalRequest": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"New Company Name\",\n \"reference\": \"New Company Reference\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 01 Jun 2023 12:39:55 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "125" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "73bda1c3-d81f-4d18-a5bc-54a0dae6993f" }, { "key": "X-Runtime", "value": "0.072196" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d0785a84e8e5b74-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-CMPGET-AA3\",\n \"message\": \"Could not find company\"\n }\n}" } ] } ], "description": "The Companies API resource enable management of company data within the application, including the creation, retrieval, updating and deletion of company details.\n\n1. **Create Company Endpoint**: This POST endpoint allows for the creation of new companies, requiring authentication via a bearer token.\n2. **Get Companies Endpoint**: This GET endpoint retrieves a list of all companies in the system, with optional filtering by company reference. Authentication is required​.\n \n3. **Update Company Details Endpoint**: This PUT endpoint facilitates the updating of a specific company details. It requires the company's unique identifier in the URL and authentication details in the request​.\n \n4. **Delete Company Endpoint**: This DELETE endpoint facilitates the deletion of a specific company. It requires the company's unique identifier in the URL and authentication details in the request​.\n \n\nThese endpoints form the basis of company data management in the application, adhering to standard HTTP protocols and returning appropriate status codes based on the request's success or failure." }, { "name": "Users", "item": [ { "name": "GET company users", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users" ] }, "description": "### GET **/companies/{companyReference}/users**\n\n**Returns** a list of all active users that exist in the system for a specific company by making a GET request to the path `/companies/{company_reference}/users` on the base URL.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n### Request\n\n##### URi PARAMETERS\n\n> **companyReference** `string` The ID of a specific company\n\n##### QUERY PARAMETERS\n\n> NONE\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n>\n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "GET company users: success", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 01 Jun 2023 13:00:24 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "170" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Etag", "value": "W/\"4f8a7861d98ad8ebb96d0d16028e32bc\"" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "3a618aa6-7cad-4411-9926-9db63916ebd6" }, { "key": "X-Runtime", "value": "0.061810" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Set-Cookie", "value": "__cf_bm=N5g3cgklrI98eFM4D3.aLzv2C_8KzFUCW5CA9KAcR6s-1685624424-0-AdbS/qWpGDTJCvKSZgBD48nQm2kpJ3zF64GJPHtw9d37VUM4h84pg1LgQQeMOMTHDU+niBd6FbIzxgJloJ9jhfc=; path=/; expires=Thu, 01-Jun-23 13:30:24 GMT; domain=.zenledger.dev; HttpOnly; Secure; SameSite=None" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d07a3ac9f515b74-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"users\": [\n {\n \"id\": \"9f3ebcde-0d2c-4f8d-a5e8-e76b918372e4\",\n \"first_name\": \"firstcompany4-name\",\n \"last_name\": \"firstcompany4-namelast\",\n \"email\": \"user@firstcompany4.com\",\n \"created_at\": \"2023-06-01T12:59:46.223Z\",\n \"updated_at\": \"2023-06-01T12:59:46.223Z\"\n }\n ]\n }\n}" }, { "name": "GET company users: company not found", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Fri, 02 Jun 2023 07:59:07 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "125" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "c5c2c7c8-64f7-4bea-b2eb-1f3d7aaa12db" }, { "key": "X-Runtime", "value": "0.085117" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d0e27b489985b9e-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-CMPGET-AA3\",\n \"message\": \"Could not find company\"\n }\n}" } ] }, { "name": "GET company user", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}" ] }, "description": "### GET **/companies/{companyReference}/users/{userId}**\n\n**Returns** the details of a specific user by making a GET request to the path `/companies/{company_reference}/users/{user_id}` on the base URL.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n### Request\n\n##### URi PARAMETERS\n\n> **companyReference** `string` The ID of a specific company\n\n> **userId** `string` The ID of a specific user\n\n##### QUERY PARAMETERS\n\n> NONE\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n>\n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "GET company users: success", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 01 Jun 2023 13:00:24 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "170" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Etag", "value": "W/\"4f8a7861d98ad8ebb96d0d16028e32bc\"" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "3a618aa6-7cad-4411-9926-9db63916ebd6" }, { "key": "X-Runtime", "value": "0.061810" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Set-Cookie", "value": "__cf_bm=N5g3cgklrI98eFM4D3.aLzv2C_8KzFUCW5CA9KAcR6s-1685624424-0-AdbS/qWpGDTJCvKSZgBD48nQm2kpJ3zF64GJPHtw9d37VUM4h84pg1LgQQeMOMTHDU+niBd6FbIzxgJloJ9jhfc=; path=/; expires=Thu, 01-Jun-23 13:30:24 GMT; domain=.zenledger.dev; HttpOnly; Secure; SameSite=None" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d07a3ac9f515b74-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"users\": [\n {\n \"id\": \"9f3ebcde-0d2c-4f8d-a5e8-e76b918372e4\",\n \"first_name\": \"firstcompany4-name\",\n \"last_name\": \"firstcompany4-namelast\",\n \"email\": \"user@firstcompany4.com\",\n \"created_at\": \"2023-06-01T12:59:46.223Z\",\n \"updated_at\": \"2023-06-01T12:59:46.223Z\"\n }\n ]\n }\n}" }, { "name": "GET company users: company not found", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Fri, 02 Jun 2023 07:59:07 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "125" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "c5c2c7c8-64f7-4bea-b2eb-1f3d7aaa12db" }, { "key": "X-Runtime", "value": "0.085117" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d0e27b489985b9e-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-CMPGET-AA3\",\n \"message\": \"Could not find company\"\n }\n}" } ] }, { "name": "CREATE company user", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"email\": \"johndoe@example.com\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users" ] }, "description": "### POST **/companies/{companyReference}/users**\n\nAll API requests to this endpoint must be **signed and encrypted** to ensure integrity and security. The signing process is explained in the **Request Signature and Encryption** section and ensures that the request is authenticated and has not been tampered with. Encryption protects sensitive data during transmission.\n\n**Creates** a new company user which is linked to the company by making a POST request to the `/compliance/api/v3/companies/{company_reference}/users` endpoint is used to create a new user in the system.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n### Request\n\n##### URi PARAMETERS\n\n> **companyReference** `string` The ID of a specific company\n\n##### QUERY PARAMETERS\n\n> NONE\n\n##### BODY\n\n*In JSON format\n\n> **email** `string` Email address of the user\n> \n> **first_name** (optional) `string` First name of the user\n> \n> **last_name** (optional) `string` Last name of the user\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n> \n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "CREATE company user: success", "originalRequest": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"email\": \"johndoe@example.com\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Tue, 04 Jul 2023 07:23:49 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "ETag", "value": "W/\"bddb95f7abe2752eab3a4b722da5b414\"" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Cache-Control", "value": "no-cache, no-store" }, { "key": "X-Request-Id", "value": "4af46831-ed81-401b-bb09-b6098edf43b9" }, { "key": "X-Runtime", "value": "0.792034" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Content-Security-Policy", "value": "frame-ancestors 'self' https://complysci.com;" }, { "key": "Expires", "value": "-1" }, { "key": "Pragma", "value": "no-cache" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7e159ffe7d198e57-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"id\": \"9f3ebcde-0d2c-4f8d-a5e8-e76b918372e4\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"email\": \"johndoe@example.com\",\n \"created_at\": \"2023-07-04T07:23:49.810Z\",\n \"updated_at\": \"2023-07-04T07:23:49.810Z\"\n }\n}" }, { "name": "CREATE company user: active users limit reached", "originalRequest": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"email\": \"johndoe@example.com\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Tue, 04 Jul 2023 07:23:49 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "ETag", "value": "W/\"bddb95f7abe2752eab3a4b722da5b414\"" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Cache-Control", "value": "no-cache, no-store" }, { "key": "X-Request-Id", "value": "4af46831-ed81-401b-bb09-b6098edf43b9" }, { "key": "X-Runtime", "value": "0.792034" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Content-Security-Policy", "value": "frame-ancestors 'self' https://complysci.com;" }, { "key": "Expires", "value": "-1" }, { "key": "Pragma", "value": "no-cache" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7e159ffe7d198e57-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-USRPST-AA8\",\n \"message\": \"Maximum number of active users limit exceeded\"\n }\n}" } ] }, { "name": "UPDATE user details", "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"first_name\": \"user 1 of referenced company\",\n \"last_name\": \"user 1 of referenced company\",\n \"email\": \"user@firstcompany2.com\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}" ] }, "description": "### UPDATE **/companies/{companyId}/users/{userId}**\n\nAll API requests to this endpoint must be **signed and encrypted** to ensure integrity and security. The signing process is explained in the **Request Signature and Encryption** section and ensures that the request is authenticated and has not been tampered with. Encryption protects sensitive data during transmission.\n\n**Updates** the details of a user by making a PUT request to the path `/compliance/api/v3/companies/{company_reference}/users/{user_id}` on the base URL\n\n**User Activation/Deactivation:**\n\nIf the boolean parameter **active** is passed in the body as *false*, the user will be deactivated, transactional data will no longer be pulled by ZenLedger and no data will be delivered by this API until the user is re-activated.\n\n> Pass the parameter **active** as *false* to deactivate \n> Pass the parameter **active** as *true* to re-activate\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n### Request\n\n##### URi PARAMETERS\n\n> **companyReference** `string` The ID of a specific company\n\n> **userId** `string` The ID of a specific user\n\n##### QUERY PARAMETERS\n\n> NONE\n\n##### BODY\n\n*In JSON format\n\n> **email** (optional) `string` Email address of the user\n> \n> **first_name** (optional) `string` First name of the user\n> \n> **last_name** (optional) `string` Last name of the user\n> \n> **active** (optional) `boolean` Activate/Deactivate a user if passed\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n> \n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "UPDATE user details: success", "originalRequest": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"first_name\": \"user 1 of referenced company\",\n \"last_name\": \"user 1 of referenced company\",\n \"email\": \"user@firstcompany2.com\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "https://api.zenledger.io/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}", "protocol": "https", "host": [ "api", "zenledger", "io" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 01 Jun 2023 13:08:15 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "175" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Etag", "value": "W/\"c6252ac0fc1fed99b7240d147d8e09a8\"" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "1fb8231d-8c00-4dcf-b0d2-28b0cbea2ba4" }, { "key": "X-Runtime", "value": "0.062096" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d07af2ca94e5b74-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"id\": \"9f3ebcde-0d2c-4f8d-a5e8-e76b918372e4\",\n \"first_name\": \"user 1 of referenced company\",\n \"last_name\": \"user 1 of referenced company\",\n \"email\": \"user@firstcompany2.com\",\n \"created_at\": \"2023-06-01T12:59:46.223Z\",\n \"updated_at\": \"2023-06-01T13:08:15.608Z\",\n \"active\": \"true\"\n }\n}" }, { "name": "UPDATE user details: user not found", "originalRequest": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"first_name\": \"user 1 of referenced company\",\n \"last_name\": \"user 1 of referenced company\",\n \"email\": \"user@firstcompany2.com\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Fri, 02 Jun 2023 08:00:04 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "122" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "b1bf3b06-6f82-4d70-b4bd-780071633465" }, { "key": "X-Runtime", "value": "0.028127" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d0e291d0bdc5b9e-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-USRGET-AA2\",\n \"message\": \"Could not find user\"\n }\n}" }, { "name": "UPDATE user details: company not found", "originalRequest": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"first_name\": \"user 1 of referenced company\",\n \"last_name\": \"user 1 of referenced company\",\n \"email\": \"user@firstcompany2.com\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Fri, 02 Jun 2023 08:00:50 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "125" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "e7ec332b-75df-4c27-94f2-7b2133e4d6c1" }, { "key": "X-Runtime", "value": "0.027305" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d0e2a3aaaa95b9e-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-CMPGET-AA3\",\n \"message\": \"Could not find company\"\n }\n}" }, { "name": "UPDATE user details: active users limit reached", "originalRequest": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"active\": \"true\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Fri, 02 Jun 2023 08:00:50 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "125" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "e7ec332b-75df-4c27-94f2-7b2133e4d6c1" }, { "key": "X-Runtime", "value": "0.027305" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d0e2a3aaaa95b9e-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-USRPST-AA8\",\n \"message\": \"Maximum number of active users limit exceeded\"\n }\n}" } ] }, { "name": "DELETE company user", "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "DELETE", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}" ] }, "description": "### DELETE **/companies/{companyReference}/users/{userId}**\n\n**Deletes** a user which is linked to the company by making a DELETE request to the `/compliance/api/v3/companies/{company_reference}/users/{user_id}` endpoint.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n### Request\n\n##### URi PARAMETERS\n\n> **companyReference** `string` The ID of a specific company\n\n> **userId** `string` The ID of a specific user\n\n##### QUERY PARAMETERS\n\n> NONE\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n>\n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "DELETE company user: success", "originalRequest": { "method": "DELETE", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 01 Jun 2023 12:28:50 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "57" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Etag", "value": "W/\"209cb73fc40aac9d999ff21f2e568f9b\"" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "296c34a8-4b5e-4367-b5d3-73944883fbef" }, { "key": "X-Runtime", "value": "0.093127" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d07756b3e595b74-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": []\n}" }, { "name": "DELETE company user: user not found", "originalRequest": { "method": "DELETE", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 01 Jun 2023 12:06:10 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "125" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "f07bfdc7-80e1-4bd7-a711-14dbe69e3a55" }, { "key": "X-Runtime", "value": "0.079214" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d07543bd9595b74-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-USRGET-AA2\",\n \"message\": \"Could not find user\"\n }\n}" }, { "name": "DELETE company user: company not found", "originalRequest": { "method": "DELETE", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 01 Jun 2023 12:06:10 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "125" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "f07bfdc7-80e1-4bd7-a711-14dbe69e3a55" }, { "key": "X-Runtime", "value": "0.079214" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d07543bd9595b74-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-CMPGET-AA3\",\n \"message\": \"Could not find company\"\n }\n}" } ] } ], "description": "This folder is dedicated to managing user-related operations within the Compliance API. It contains endpoints that enable retrieving, updating and deleting user information within specific companies.\n\nPlease note that for all the endpoints, the `{{jwt_token}}`, `{{base_url}}`, `{{company_reference}}`, and `{{user_id}}` placeholders should be replaced with the actual values based on the context and environment in which the requests are made." }, { "name": "Transactions", "item": [ { "name": "GET transactions for user", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/transactions", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "transactions" ] }, "description": "### GET **/companies/{companyReference}/users/{userId}/transactions**\n\n**Returns** a list of the user's transactions by making a GET request to the path `/companies/{company_reference}/users/{user_id}/transactions` on the base URL.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n> *Results paginated with 100 elements per page\n\n### Request\n\n##### URi PARAMETERS\n\n> **companyReference** `string` The ID of a specific company\n> \n> **userId** `string` The ID of a specific user\n\n##### QUERY PARAMETERS\n\n> **currency_code** `string` Filter transactions by currency code\n> \n> **date_from** `string` Specific cut-off date for the transactions list (beginning of the list) specific for the date when the transactions were imported into ZenLedger\n> \n> **date_to** `string` Specific cut-off date for the transactions list (end of the list) specific for the date when the transactions were imported into ZenLedger\n> \n> **transaction_date_from** `string` Specific cut-off date for the transactions list (beginning of the list) specific for the date when the transactions took place\n> \n> **transaction_date_to** `string` Specific cut-off date for the transactions list (end of the list) specific for the date when the transactions took place\n> \n> **source_id** `number` Specific source to show only transactions from a specific wallet/exchange\n> \n> **sorting_method** `string` Sorting method used to order the returned list of transactions. This can be set to **transaction_timestamps** or **import_timestamp**. If not set, the default sorting date will be the transaction date.\n> \n> **page** `number` Specific page requested for the paginated results\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n> \n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "GET transactions for user: success", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "https://api.zenledger.io/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/transactions", "protocol": "https", "host": [ "api", "zenledger", "io" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "transactions" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 11:04:45 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "ETag", "value": "W/\"bcc8ca917161dd5f0af0262dc28d78e9\"" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "X-Request-Id", "value": "bfa4553c-795a-4888-9b68-a8c1d89f1f0e" }, { "key": "X-Runtime", "value": "1.357294" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7a557738ab8e56-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"transactions\": [\n \n {\n \"reference\": \"fd8592122083e87d7d3aafdc8acce4c1\",\n \"import_timestamp\": \"2026-01-09T13:23:19Z\",\n \"transaction_timestamp\": \"2025-12-25T11:31:36Z\",\n \"transaction_super_type\": \"sell\",\n \"transaction_type\": \"fee\",\n \"transaction_hash\": \"4eb1Fuh2F1Csg1HmRNTy8QKT41c9WdLnVSo5sTct8vViZXoTZcuf84JfjsG8dg8PBY5dnNeqAw4rZV4sD7Mko9zQ\",\n \"amount_incoming\": 0.0006088244047619051,\n \"currency_incoming\": \"USD\",\n \"currency_incoming_contract_address\": \"7wxahljatdzbaz7hyrifpypgppbckiyhf6haxuzsbonk\",\n \"currency_incoming_is_spam\": false,\n \"amount_outgoing\": 5.0e-06,\n \"currency_outgoing\": \"SOL\",\n \"currency_outgoing_contract_address\": null,\n \"currency_outgoing_is_spam\": false,\n \"fee_amount\": 0.0,\n \"fee_currency\": \"USD\",\n \"source_name\": \"SOL Wallet\",\n \"source_id\": \"95721263-a907-4cbe-8ad9-9c6e337d94cb\",\n \"source_reference\": \"sol-wallet\",\n \"transaction_id\": \"4eb1Fuh2F1Csg1HmRNTy8QKT41c9WdLnVSo5sTct8vViZXoTZcuf84JfjsG8dg8PBY5dnNeqAw4rZV4sD7Mko9zQ\",\n \"subtotal_fiat\": 0.0,\n \"total_fiat\": 0.0,\n \"address_from\": null,\n \"address_to\": null,\n \"chain_info\": [\n {\n \"id\": null,\n \"name\": \"Solana\"\n }\n ]\n },\n {\n \"reference\": \"ff0b41eacc027fc94e8229bf2e1a5eaa\",\n \"import_timestamp\": \"2026-01-09T13:23:11Z\",\n \"transaction_timestamp\": \"2025-12-25T11:31:37Z\",\n \"transaction_super_type\": \"sell\",\n \"transaction_type\": \"fee\",\n \"transaction_hash\": \"2PwDAFr4aWrJW926WosRHbJBnzodme6vPTMjPsjDTzJUtKfCWnKpgWd3oveSFhHCRUp4Pzgw5YnSBtqZa2Mqp1Bt\",\n \"amount_incoming\": 0.0006088244047619051,\n \"currency_incoming\": \"USD\",\n \"currency_incoming_contract_address\": \"7wxahljatdzbaz7hyrifpypgppbckiyhf6haxuzsbonk\",\n \"currency_incoming_is_spam\": false,\n \"amount_outgoing\": 5.0e-06,\n \"currency_outgoing\": \"SOL\",\n \"currency_outgoing_contract_address\": null,\n \"currency_outgoing_is_spam\": false,\n \"fee_amount\": 0.0,\n \"fee_currency\": \"USD\",\n \"source_name\": \"SOL Wallet\",\n \"source_id\": \"95721263-a907-4cbe-8ad9-9c6e337d94cb\",\n \"source_reference\": \"sol-wallet\",\n \"transaction_id\": \"2PwDAFr4aWrJW926WosRHbJBnzodme6vPTMjPsjDTzJUtKfCWnKpgWd3oveSFhHCRUp4Pzgw5YnSBtqZa2Mqp1Bt\",\n \"subtotal_fiat\": 0.0,\n \"total_fiat\": 0.0,\n \"address_from\": null,\n \"address_to\": null,\n \"chain_info\": [\n {\n \"id\": null,\n \"name\": \"Solana\"\n }\n ]\n },\n {\n \"reference\": \"e03caa7f6756ff61171b4b45bf58c5ed\",\n \"import_timestamp\": \"2026-01-09T13:23:11Z\",\n \"transaction_timestamp\": \"2025-12-25T11:31:47Z\",\n \"transaction_super_type\": \"sell\",\n \"transaction_type\": \"fee\",\n \"transaction_hash\": \"3EGVXeWd5Hgt7wdYUWTGH62bKf9aDcBaCwUTmwqupce2ivfy4JFRfAkjNPqv1bwHozUhpCeVkkexDAgiT3jRXBCy\",\n \"amount_incoming\": 0.0006088244047619051,\n \"currency_incoming\": \"USD\",\n \"currency_incoming_contract_address\": \"7wxahljatdzbaz7hyrifpypgppbckiyhf6haxuzsbonk\",\n \"currency_incoming_is_spam\": false,\n \"amount_outgoing\": 5.0e-06,\n \"currency_outgoing\": \"SOL\",\n \"currency_outgoing_contract_address\": null,\n \"currency_outgoing_is_spam\": false,\n \"fee_amount\": 0.0,\n \"fee_currency\": \"USD\",\n \"source_name\": \"SOL Wallet\",\n \"source_id\": \"95721263-a907-4cbe-8ad9-9c6e337d94cb\",\n \"source_reference\": \"sol-wallet\",\n \"transaction_id\": \"3EGVXeWd5Hgt7wdYUWTGH62bKf9aDcBaCwUTmwqupce2ivfy4JFRfAkjNPqv1bwHozUhpCeVkkexDAgiT3jRXBCy\",\n \"subtotal_fiat\": 0.0,\n \"total_fiat\": 0.0,\n \"address_from\": null,\n \"address_to\": null,\n \"chain_info\": [\n {\n \"id\": null,\n \"name\": \"Solana\"\n }\n ]\n },\n {\n \"reference\": \"df401174d759930db9ea3fb1f97f33b4\",\n \"import_timestamp\": \"2026-01-09T13:23:11Z\",\n \"transaction_timestamp\": \"2025-12-25T11:31:47Z\",\n \"transaction_super_type\": \"sell\",\n \"transaction_type\": \"fee\",\n \"transaction_hash\": \"21yqa7B3NVFy9rscQVwhvUNhC2RYwj6zXDn8YPD4tvdP9r8qhADdbdJ5xssq8Fpw2Nh7WaAuv7ja35Dct2V4zT9v\",\n \"amount_incoming\": 0.0006088244047619051,\n \"currency_incoming\": \"USD\",\n \"currency_incoming_contract_address\": \"7wxahljatdzbaz7hyrifpypgppbckiyhf6haxuzsbonk\",\n \"currency_incoming_is_spam\": false,\n \"amount_outgoing\": 5.0e-06,\n \"currency_outgoing\": \"SOL\",\n \"currency_outgoing_contract_address\": null,\n \"currency_outgoing_is_spam\": false,\n \"fee_amount\": 0.0,\n \"fee_currency\": \"USD\",\n \"source_name\": \"SOL Wallet\",\n \"source_id\": \"95721263-a907-4cbe-8ad9-9c6e337d94cb\",\n \"source_reference\": \"sol-wallet\",\n \"transaction_id\": \"21yqa7B3NVFy9rscQVwhvUNhC2RYwj6zXDn8YPD4tvdP9r8qhADdbdJ5xssq8Fpw2Nh7WaAuv7ja35Dct2V4zT9v\",\n \"subtotal_fiat\": 0.0,\n \"total_fiat\": 0.0,\n \"address_from\": null,\n \"address_to\": null,\n \"chain_info\": [\n {\n \"id\": null,\n \"name\": \"Solana\"\n }\n ]\n },\n {\n \"reference\": \"4de3bc14ad28e802c0f484dc3594fed4\",\n \"import_timestamp\": \"2026-01-09T13:23:11Z\",\n \"transaction_timestamp\": \"2025-12-25T11:31:49Z\",\n \"transaction_super_type\": \"sell\",\n \"transaction_type\": \"fee\",\n \"transaction_hash\": \"2y4UUDjjJhFNoLy9RP4yNjQuUp3ednPY7amrjPWNwvD1W7gDyr2LqJDgtAkKhnBVNWZjQXoBLBo7QT9GU776BAhL\",\n \"amount_incoming\": 0.0006088244047619051,\n \"currency_incoming\": \"USD\",\n \"currency_incoming_contract_address\": \"7wxahljatdzbaz7hyrifpypgppbckiyhf6haxuzsbonk\",\n \"currency_incoming_is_spam\": false,\n \"amount_outgoing\": 5.0e-06,\n \"currency_outgoing\": \"SOL\",\n \"currency_outgoing_contract_address\": null,\n \"currency_outgoing_is_spam\": false,\n \"fee_amount\": 0.0,\n \"fee_currency\": \"USD\",\n \"source_name\": \"SOL Wallet\",\n \"source_id\": \"95721263-a907-4cbe-8ad9-9c6e337d94cb\",\n \"source_reference\": \"sol-wallet\",\n \"transaction_id\": \"2y4UUDjjJhFNoLy9RP4yNjQuUp3ednPY7amrjPWNwvD1W7gDyr2LqJDgtAkKhnBVNWZjQXoBLBo7QT9GU776BAhL\",\n \"subtotal_fiat\": 0.0,\n \"total_fiat\": 0.0,\n \"address_from\": null,\n \"address_to\": null,\n \"chain_info\": [\n {\n \"id\": null,\n \"name\": \"Solana\"\n }\n ]\n }\n ]\n },\n \"meta\": {\n \"current_page\": 1,\n \"total_entries\": 5,\n \"total_pages\": 1\n }\n}" }, { "name": "GET transactions for user: empty response", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/transactions", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "transactions" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 01 Jun 2023 13:21:26 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "109" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Etag", "value": "W/\"8c077924fed1ad88ba53c91d221f767f\"" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "80889ddc-dcbf-482c-ae5d-9a0aedb483ce" }, { "key": "X-Runtime", "value": "0.065752" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Set-Cookie", "value": "__cf_bm=zzZ8DJ_cCgCppWgFnJ7VXT72YBb2MnJLF23O_di_9DM-1685625686-0-AXzvs8vfRt1zareqrMAQHF2zolSLzdRegPFnR1bmgjFxOBqd+29aZsx/DP8dUGSZQM6X8zLhQnLH7d6Q1TGwlzQ=; path=/; expires=Thu, 01-Jun-23 13:51:26 GMT; domain=.zenledger.dev; HttpOnly; Secure; SameSite=None" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d07c2793f0f5b74-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"transactions\": []\n },\n \"meta\": {\n \"current_page\": 1,\n \"total_entries\": 0,\n \"total_pages\": 0\n }\n}" }, { "name": "GET transactions for user: user not found", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/transactions", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "transactions" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 12:45:45 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "X-Request-Id", "value": "271769ed-7161-46b1-bf21-0c09340ae652" }, { "key": "X-Runtime", "value": "0.096369" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7ae9771ce0790b-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-USRGET-AA2\",\n \"message\": \"Could not find user\"\n }\n}" }, { "name": "GET transactions for user: company not found", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/transactions", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "transactions" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 12:47:04 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "X-Request-Id", "value": "b2348900-292b-44d7-a7a3-adf0cc24250e" }, { "key": "X-Runtime", "value": "0.064245" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7aeb5dac48790b-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-CMPGET-AA3\",\n \"message\": \"Could not find company\"\n }\n}" } ] }, { "name": "GET transactions for all user of a company", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/transactions?page=30", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "transactions" ], "query": [ { "key": "page", "value": "30" } ] }, "description": "### GET **/companies/{companyReference}/transactions**\n\n**Returns** a list of all the users of a company with all their transactions by making a GET request to the path `/companies/{company_reference}/transactions` on the base URL.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n> *Results paginated with 100 elements per page\n\n### Request\n\n##### URi PARAMETERS\n\n> **companyReference** `string` The ID of a specific company\n\n##### QUERY PARAMETERS\n\n> **currency_code** `string` Filter transactions by currency code\n> \n> **date_from** `string` Specific cut-off date for the transactions list (beginning of the list) specific for the date when the transactions were imported into ZenLedger\n> \n> **date_to** `string` Specific cut-off date for the transactions list (end of the list) specific for the date when the transactions were imported into ZenLedger\n> \n> **transaction_date_from** `string` Specific cut-off date for the transactions list (beginning of the list) specific for the date when the transactions took place\n> \n> **transaction_date_to** `string` Specific cut-off date for the transactions list (end of the list) specific for the date when the transactions took place\n> \n> **source_id** `number` Specific source to show only transactions from a specific wallet/exchange\n> \n> **sorting_method** `string` Sorting method used to order the returned list of transactions. This can be set to **transaction_timestamps** or **import_timestamp**. If not set, the default sorting date will be the transaction date.\n> \n> **page** `number` Specific page requested for the paginated results\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n> \n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "GET transactions for all user of a company: success", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "https://api.zenledger.io/compliance/api/v3/companies/{{company_reference}}/transactions", "protocol": "https", "host": [ "api", "zenledger", "io" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "transactions" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 13:22:49 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "ETag", "value": "W/\"0882dc2e3e0ad239640c6df32341f615\"" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "X-Request-Id", "value": "4b7ae7c2-e9af-4807-b4b7-2f0de9810cf1" }, { "key": "X-Runtime", "value": "1.663591" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7b1fb57914790d-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"transactions\": [\n {\n \"reference\": \"643e2e8d95fe5018093a467fd1c293cc\",\n \"import_timestamp\": \"2026-01-09T13:24:13Z\",\n \"transaction_timestamp\": \"2025-12-25T09:56:24Z\",\n \"transaction_super_type\": \"sell\",\n \"transaction_type\": \"fee\",\n \"transaction_hash\": \"2UzNWFvee8n52hiv2q6VFC5XCKSJoCWgE1fbYCbmmcYBYJuTqKDoYkPiBrWjVuFaRb4yqGExoYdPC7wcVEVAvnhC\",\n \"amount_incoming\": 0.00061017445652174,\n \"currency_incoming\": \"USD\",\n \"currency_incoming_contract_address\": \"7wxahljatdzbaz7hyrifpypgppbckiyhf6haxuzsbonk\",\n \"currency_incoming_is_spam\": false,\n \"amount_outgoing\": 5.0e-06,\n \"currency_outgoing\": \"SOL\",\n \"currency_outgoing_contract_address\": null,\n \"currency_outgoing_is_spam\": false,\n \"fee_amount\": 0.0,\n \"fee_currency\": \"USD\",\n \"source_name\": \"SOL Wallet\",\n \"source_id\": \"95721263-a907-4cbe-8ad9-9c6e337d94cb\",\n \"source_reference\": \"sol-wallet\",\n \"transaction_id\": \"2UzNWFvee8n52hiv2q6VFC5XCKSJoCWgE1fbYCbmmcYBYJuTqKDoYkPiBrWjVuFaRb4yqGExoYdPC7wcVEVAvnhC\",\n \"subtotal_fiat\": 0.0,\n \"total_fiat\": 0.0,\n \"address_from\": null,\n \"address_to\": null,\n \"chain_info\": [\n {\n \"id\": null,\n \"name\": \"Solana\"\n }\n ],\n \"user_id\": \"57f96bf7-3062-4a2c-8940-63926c8ee5fb\"\n },\n {\n \"reference\": \"0601597997f2e0b4c5faa0491d2b6825\",\n \"import_timestamp\": \"2026-01-09T13:24:32Z\",\n \"transaction_timestamp\": \"2025-12-25T09:56:25Z\",\n \"transaction_super_type\": \"sell\",\n \"transaction_type\": \"fee\",\n \"transaction_hash\": \"Ca2L9bf72es4pCsdnyjcZRajWbEwZS4oaFQH5c5DjF58U7K4ZtGDqU2sYpa8LMN43GS3mhi6gP2kBbtBXfgvhBe\",\n \"amount_incoming\": 0.00061017445652174,\n \"currency_incoming\": \"USD\",\n \"currency_incoming_contract_address\": \"7wxahljatdzbaz7hyrifpypgppbckiyhf6haxuzsbonk\",\n \"currency_incoming_is_spam\": false,\n \"amount_outgoing\": 5.0e-06,\n \"currency_outgoing\": \"SOL\",\n \"currency_outgoing_contract_address\": null,\n \"currency_outgoing_is_spam\": false,\n \"fee_amount\": 0.0,\n \"fee_currency\": \"USD\",\n \"source_name\": \"SOL Wallet\",\n \"source_id\": \"95721263-a907-4cbe-8ad9-9c6e337d94cb\",\n \"source_reference\": \"sol-wallet\",\n \"transaction_id\": \"Ca2L9bf72es4pCsdnyjcZRajWbEwZS4oaFQH5c5DjF58U7K4ZtGDqU2sYpa8LMN43GS3mhi6gP2kBbtBXfgvhBe\",\n \"subtotal_fiat\": 0.0,\n \"total_fiat\": 0.0,\n \"address_from\": null,\n \"address_to\": null,\n \"chain_info\": [\n {\n \"id\": null,\n \"name\": \"Solana\"\n }\n ],\n \"user_id\": \"57f96bf7-3062-4a2c-8940-63926c8ee5fb\"\n },\n {\n \"reference\": \"1404aa5ffddd768ec52f504460989a67\",\n \"import_timestamp\": \"2026-01-09T13:24:32Z\",\n \"transaction_timestamp\": \"2025-12-25T09:56:25Z\",\n \"transaction_super_type\": \"sell\",\n \"transaction_type\": \"fee\",\n \"transaction_hash\": \"5QAd8UVsv18dsVhDzWcsChZT7uSeEkp9sduC8mosYunLQd8cWAykh6yFqW4cfP6HNqhFRTkX5WFNzUN7PzEZqt9m\",\n \"amount_incoming\": 0.00061017445652174,\n \"currency_incoming\": \"USD\",\n \"currency_incoming_contract_address\": \"7wxahljatdzbaz7hyrifpypgppbckiyhf6haxuzsbonk\",\n \"currency_incoming_is_spam\": false,\n \"amount_outgoing\": 5.0e-06,\n \"currency_outgoing\": \"SOL\",\n \"currency_outgoing_contract_address\": null,\n \"currency_outgoing_is_spam\": false,\n \"fee_amount\": 0.0,\n \"fee_currency\": \"USD\",\n \"source_name\": \"SOL Wallet\",\n \"source_id\": \"95721263-a907-4cbe-8ad9-9c6e337d94cb\",\n \"source_reference\": \"sol-wallet\",\n \"transaction_id\": \"5QAd8UVsv18dsVhDzWcsChZT7uSeEkp9sduC8mosYunLQd8cWAykh6yFqW4cfP6HNqhFRTkX5WFNzUN7PzEZqt9m\",\n \"subtotal_fiat\": 0.0,\n \"total_fiat\": 0.0,\n \"address_from\": null,\n \"address_to\": null,\n \"chain_info\": [\n {\n \"id\": null,\n \"name\": \"Solana\"\n }\n ],\n \"user_id\": \"57f96bf7-3062-4a2c-8940-63926c8ee5fb\"\n },\n {\n \"reference\": \"91aec8f39288565b58b29ef42fcb619b\",\n \"import_timestamp\": \"2026-01-09T13:24:02Z\",\n \"transaction_timestamp\": \"2025-12-25T09:56:26Z\",\n \"transaction_super_type\": \"sell\",\n \"transaction_type\": \"fee\",\n \"transaction_hash\": \"4EcNH9Kp7kX8rbZngrR8QHFcgjUto8pvwjkNtuhwjPczXcnjMZMbtnGmS9Ke9VfYu5y5UNiBtXbremFoHY1dLzPC\",\n \"amount_incoming\": 0.00061017445652174,\n \"currency_incoming\": \"USD\",\n \"currency_incoming_contract_address\": \"7wxahljatdzbaz7hyrifpypgppbckiyhf6haxuzsbonk\",\n \"currency_incoming_is_spam\": false,\n \"amount_outgoing\": 5.0e-06,\n \"currency_outgoing\": \"SOL\",\n \"currency_outgoing_contract_address\": null,\n \"currency_outgoing_is_spam\": false,\n \"fee_amount\": 0.0,\n \"fee_currency\": \"USD\",\n \"source_name\": \"SOL Wallet\",\n \"source_id\": \"95721263-a907-4cbe-8ad9-9c6e337d94cb\",\n \"source_reference\": \"sol-wallet\",\n \"transaction_id\": \"4EcNH9Kp7kX8rbZngrR8QHFcgjUto8pvwjkNtuhwjPczXcnjMZMbtnGmS9Ke9VfYu5y5UNiBtXbremFoHY1dLzPC\",\n \"subtotal_fiat\": 0.0,\n \"total_fiat\": 0.0,\n \"address_from\": null,\n \"address_to\": null,\n \"chain_info\": [\n {\n \"id\": null,\n \"name\": \"Solana\"\n }\n ],\n \"user_id\": \"57f96bf7-3062-4a2c-8940-63926c8ee5fb\"\n },\n {\n \"reference\": \"cabb8f4a67e7b36b61f275e5e4ad331f\",\n \"import_timestamp\": \"2026-01-09T13:24:02Z\",\n \"transaction_timestamp\": \"2025-12-25T09:56:26Z\",\n \"transaction_super_type\": \"sell\",\n \"transaction_type\": \"fee\",\n \"transaction_hash\": \"44JevPUgtoiHMiXHCFZm9sUSqirf1x4QWdTw1PnLP43wSCUvLmPXTkAo6objMzWLgqYuJFfEhAbgtPG9XAh6JvLE\",\n \"amount_incoming\": 0.00061017445652174,\n \"currency_incoming\": \"USD\",\n \"currency_incoming_contract_address\": \"7wxahljatdzbaz7hyrifpypgppbckiyhf6haxuzsbonk\",\n \"currency_incoming_is_spam\": false,\n \"amount_outgoing\": 5.0e-06,\n \"currency_outgoing\": \"SOL\",\n \"currency_outgoing_contract_address\": null,\n \"currency_outgoing_is_spam\": false,\n \"fee_amount\": 0.0,\n \"fee_currency\": \"USD\",\n \"source_name\": \"SOL Wallet\",\n \"source_id\": \"95721263-a907-4cbe-8ad9-9c6e337d94cb\",\n \"source_reference\": \"sol-wallet\",\n \"transaction_id\": \"44JevPUgtoiHMiXHCFZm9sUSqirf1x4QWdTw1PnLP43wSCUvLmPXTkAo6objMzWLgqYuJFfEhAbgtPG9XAh6JvLE\",\n \"subtotal_fiat\": 0.0,\n \"total_fiat\": 0.0,\n \"address_from\": null,\n \"address_to\": null,\n \"chain_info\": [\n {\n \"id\": null,\n \"name\": \"Solana\"\n }\n ],\n \"user_id\": \"57f96bf7-3062-4a2c-8940-63926c8ee5fb\"\n }\n ]\n },\n \"meta\": {\n \"current_page\": 1,\n \"total_entries\": 6,\n \"total_pages\": 1\n }\n}" }, { "name": "GET transactions for all user of a company: company not found", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/transactions?page=4003", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "transactions" ], "query": [ { "key": "page", "value": "4003" } ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 13:35:14 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "X-Request-Id", "value": "efc00f79-b855-44e0-9c1d-d28b44e66ba5" }, { "key": "X-Runtime", "value": "0.022877" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Set-Cookie", "value": "__cf_bm=PO604lN3d6YYlsVmySt86Epr78JeS31G51RI6Dgt2lg-1686836114-0-AZpFQ7Ic3UvJL/dwvJ2VJ00LniooN4YYuQK9+wMLqOrK5pTzfRSqA3jWIvlRjIHurtTzNX44Rs/VNjiqHT5AD04=; path=/; expires=Thu, 15-Jun-23 14:05:14 GMT; domain=.zenledger.io; HttpOnly; Secure; SameSite=None" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7b31ee89858e51-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-CMPGET-AA3\",\n \"message\": \"Could not find company\"\n }\n}" } ] } ], "description": "This folder contains endpoints related to retrieving transaction information for a user within the Compliance API. These endpoints allow you to fetch transactions for a user based on various criteria, such as user ID, date range, and currency." }, { "name": "Transaction Types Glossary", "item": [ { "name": "Super Types", "request": { "method": "VALUES", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "Buy", "value": "buy" }, { "key": "Sell", "value": "sell" }, { "key": "Trade", "value": "trade" } ] }, "url": { "raw": "" }, "description": "A deposit transaction is any transaction where a crypto asset enters your account that is not paired as a trade with another crypto asset. For example, if a friend sent you 50 USDC that would be a Deposit transaction (subtype Incoming). Also, if you purchased 50 USDC for 50 USD this would also be a Deposit transaction (subtype Buy).\n\nHere are all of the Deposit transaction subtypes:" }, "response": [] }, { "name": "Deposits", "request": { "method": "VALUES", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "Airdrop", "value": "airdrop", "description": "Crypto assets freely given to an account through Airdrop.", "type": "text" }, { "key": "Buy", "value": "buy", "description": "Purchasing a crypto asset with fiat (USD). Example, buying 1 BTC with 20,000 USD.", "type": "text" }, { "key": "Dividend Received", "value": "dividend_received", "description": "This is a type of reward associated with receiving dividends, reported as income and receives cost basis at the time of acquisition.", "type": "text" }, { "key": "Forks", "value": "fork", "description": "Forks are essentially another type of reward, reported as income and receives cost basis at the time of acquisition. This occurs when a blockchain forks, and effectively the user now has assets duplicated on another chain (the fork and the original).", "type": "text" }, { "key": "Gifts Received", "value": "gift_received", "description": "Cost basis is determined when the asset is received, but it is not reported as income.", "type": "text" }, { "key": "Incoming", "value": "receive", "description": "This type is used if crypto assets are received from an external source that is not one of the added accounts. For example, if an unknown third party sent the account 50 USDC it would be an incoming transaction.", "type": "text" }, { "key": "Interest Received", "value": "interest_received", "description": "Another type of reward associated with earning interest, reported as income and receives cost basis at the time of acquisition.", "type": "text" }, { "key": "Masternode", "value": "masternode", "description": "A type of income/reward associated with setting up a master node, reported as income and receives cost basis at the time of acquisition.", "type": "text" }, { "key": "Mined", "value": "mined", "description": "Another type of income/reward associated with mining cryptocurrency, reported as income and receives cost basis at the time of acquisition.", "type": "text" }, { "key": "Misc Reward", "value": "misc_reward", "description": "Another type of reward if other categories don’t properly describe it, reported as income and receives cost basis at the time of acquisition.", "type": "text" }, { "key": "NFT In", "value": "nft_in", "description": "Receiving and NFT from an external source not connected to the user's account", "type": "text" }, { "key": "NFT Mint", "value": "nft_mint", "description": "The process of minting (creating) an NFT. If there were assets spent to form the mint, the cost basis will be the value of those assets (in the case of multiple mints simultaneously, the basis is evenly distributed to all of the NFTs minted). If nothing was used to mint the NFT, the cost basis will generally be 0. Not reported as income.", "type": "text" }, { "key": "NFT Mint", "value": "nft_mint_no_mint_fee", "description": "The process of minting (creating) an NFT without a fee.", "type": "text" }, { "key": "Payments", "value": "payment", "description": "Crypto assets received as income. Basis is determined at the time of acquisition.", "type": "text" }, { "key": "Self Transfers", "value": "self_transfer", "description": "Assets received from another account associated with the user. Not taxable.", "type": "text" }, { "key": "Staking Return", "value": "staking_return", "description": "Staked assets returning to the user’s account. The assets will keep their original basis and holding periods, and are not reported as income. Effectively not a taxable event.", "type": "text" }, { "key": "Staking Reward", "value": "staking_reward", "description": "Any rewards associated with staking an asset. This is reported as income, with basis determined at the time of acquisition.", "type": "text" }, { "key": "Fiat Deposit", "value": "fiat_deposit", "description": "Any deposit made using FIAT currency into an exchange", "type": "text" } ] }, "url": { "raw": "" }, "description": "A deposit transaction is any transaction where a crypto asset enters your account that is not paired as a trade with another crypto asset. For example, if a friend sent you 50 USDC that would be a Deposit transaction (subtype Incoming). Also, if you purchased 50 USDC for 50 USD this would also be a Deposit transaction (subtype Buy).\n\nHere are all of the Deposit transaction subtypes:" }, "response": [] }, { "name": "Withdrawals", "request": { "method": "VALUES", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "Donation 501c3", "value": "donation_501c3", "description": "Assets leaving the account. Gains are set to 0, regardless of basis/proceeds." }, { "key": "Fee", "value": "fee", "description": "Sometimes fees are reported separately from transactions." }, { "key": "Gifts Sent", "value": "gift_sent", "description": "Assets leaving the account. Gains are set to 0, regardless of basis/proceeds." }, { "key": "Lost", "value": "lost", "description": "Assets manually marked as Lost. Taxable implications vary by jurisdiction." }, { "key": "Outgoing", "value": "Send", "description": "Sending assets to unknown parties or accounts that don’t belong to the user." }, { "key": "Outgoing", "value": "nft_out", "description": "Sending NFTS to unknown parties or accounts that don’t belong to the user." }, { "key": "Purchases", "value": "purchase", "description": "Using cryptocurrency to purchase something else." }, { "key": "Self Transfers", "value": "self_transfer", "description": "Assets sent to another account associated with the user. Not taxable." }, { "key": "Sell", "value": "sell", "description": "Selling cryptocurrency for fiat (ex: USD)." }, { "key": "Staking Lockup", "value": "staking_lockup", "description": "Assets leaving a user’s account going into a staking system." }, { "key": "Stolen", "value": "stolen", "description": "Assets manually marked as Stolen. Taxable implications vary by jurisdiction." }, { "key": "Fiat Withdrawal", "value": "fiat_withdrawal", "description": "Any withdrawal made using FIAT currency from an exchange", "type": "text" } ] }, "url": { "raw": "" }, "description": "Withdrawal transactions include any transaction where a crypto asset leaves the user’s account without receiving a crypto asset in return. For example, if the user send 500 USDC to an unknown address, this would be a Withdrawal transaction (subtype Outgoing). Additionally, if a user sells 500 USDC for 500 USD, this would also be a Withdrawal transaction (subtype Sell). If a user trades 500 USDC for 1 ETH, that is not a Withdrawal transaction: that is a trade.\n\nHere are all of the Withdraw transaction subtypes:" }, "response": [] }, { "name": "Trades", "request": { "method": "VALUES", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "Liquidity Pool", "value": "liquidity_pool", "description": "Liquidity Pools that return LP tokens are effectively treated as trades, with the cost basis of the received asset determined by the proceeds of the assets leaving the account in the trade." }, { "key": "Liquidity Pool", "value": "liquidity_pool_enter", "description": "Liquidity pool transactions that are identified as entering a pool" }, { "key": "Liquidity Pool", "value": "liquidity_pool_exit", "description": "Liquidity pool transactions that are identified as exiting a pool" }, { "key": "Margin Trading", "value": "margin_trade", "description": "Trading with borrowed assets. Effectively handled identically to normal trading." }, { "key": "Margin Trading", "value": "margin_trading_gain", "description": "Trading with borrowed assets, cases that are specifically called out as gains" }, { "key": "Margin Trading", "value": "margin_trading_loss", "description": "Trading with borrowed assets, cases that are specifically called out as losses" }, { "key": "Margin Trading", "value": "margin_trading_fee", "description": "Trading with borrowed assets, cases that are specifically called out as fees" }, { "key": "Margin Trading", "value": "margin_trading_rollover", "description": "Trading with borrowed assets, cases that are specifically called out as rollovers" }, { "key": "NFT Mint", "value": "nft_mint", "description": "Trading crypto assets to create/mint NFTs. The resulting NFT(s) will receive basis according to the proceeds of the assets traded. In the case of multiple mints simultaneously, the basis will be evenly distributed among all NFT’s minted." }, { "key": "NFT Trade", "value": "nft_trade", "description": "Any trade that involves an NFT will also be labeled as an NFT trade. This is handled identically to normal trading." }, { "key": "Rebrand", "value": "swap", "description": "Trading one digital asset for another digital asset without triggering a taxable event" }, { "key": "Staking Lockup", "value": "staking_lockup", "description": "Assets leaving a user’s account going into a staking system, may involve receiving an asset in return" }, { "key": "Staking Return", "value": "staking_return", "description": "Staked assets returning to the user's account. May involve sending an asset to initiate the return." }, { "key": "Trades", "value": "trade", "description": "Trading one digital asset for another digital asset" }, { "key": "Fiat Withdrawal", "value": "fiat_withdrawal", "description": "Any withdrawal made using FIAT currency from an exchange" } ] }, "url": { "raw": "" }, "description": "Trades are transactions that involve the trading crypto assets for other crypto assets. For example, trading 1 BTC for 10 ETH is reported as a trade.\n\nThese are not to be confused as Deposits/Withdrawal transactions, where a user may buy or sell crypto assets for fiat (ex: USD) currency.\n\nHere are all of the Trade transaction subtypes:" }, "response": [] } ], "description": "This folder all different types of transactions that can be found in both `transactions` and `holdings` resources.\n\nThe properties that contain this values is called `transaction_super_type` and `transaction_type`.\n\nThere are three different short of transactions and each one of them have different types which are described below:" }, { "name": "Holdings", "item": [ { "name": "GET holdings for user", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/holdings", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "holdings" ] }, "description": "### GET **/companies/{companyReference}/users/{userId}/holdings**\n\n**Returns** a list of the user holdings by making a GET request to the path `/companies/{company_reference}/users/{user_id}/holdings` on the base URL.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n> *Results paginated with 20 elements per page\n\n### Request\n\n##### URi PARAMETERS\n\n> **companyReference** `string` The ID of a specific company\n>\n> **userId** `string` The ID of a specific user\n\n##### QUERY PARAMETERS\n\n> **currency_code** `string` Filter transactions by currency code\n>\n> **date_from** `string` Specific cut-off date for the transactions list (beginning of the list)\n>\n> **date_to** `string` Specific cut-off date for the transactions list (end of the list)\n>\n> **page** `number` Specific page requested for the paginated results\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n>\n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "GET holdings for user: success", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/holdings", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "holdings" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 13:50:56 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "ETag", "value": "W/\"31bfd8e391a2abecddb167efcc39d303\"" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "X-Request-Id", "value": "ff19a233-4edd-4068-94b8-77079c44b823" }, { "key": "X-Runtime", "value": "1.585048" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7b48e9c9d78e57-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [\n {\n \"holdings\": [\n {\n \"source_id\": \"06a31f82-cea0-4b04-8562-c895712abc3d\",\n \"source_type\": \"wallet\",\n \"source_name\": \"ETH Wallet\",\n \"source_reference\": \"eth-wallet\",\n \"last_updated\": \"2025-04-02T13:29:07.371Z\",\n \"import_status\": \"COMPLETE\",\n \"last_imported_transaction\": {\n \"reference\": \"cba084fa1e1fae97bab9bff8fc6905af\",\n \"timestamp\": \"2020-09-17T12:06:47Z\",\n \"imported_at\": \"2025-04-02T13:28:20.436Z\"\n },\n \"address\": \"0x61a9927dAc6B9D833FD1C81377B1D4bc21577CF5\",\n \"assets\": [\n {\n \"currency_reference\": null,\n \"currency_name\": \"Uniswap V1\",\n \"currency_symbol\": \"UNI-V1\",\n \"currency_price\": 0.0,\n \"balance\": \"0.0\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"0.0\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": \"0xaaaf91d9b90df800df4f55c205fd6989c977e73a\",\n \"is_spam\": false\n },\n {\n \"currency_reference\": null,\n \"currency_name\": \"BAT\",\n \"currency_symbol\": \"BAT\",\n \"currency_price\": 0.0,\n \"balance\": \"0.0\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"0.0\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": \"0xaaaf91d9b90df800df4f55c205fd6989c977e73a\",\n \"is_spam\": false\n }\n ],\n \"chain_info\": [\n {\n \"id\": 1,\n \"name\": \"Ethereum Mainnet\"\n }\n ]\n },\n {\n \"source_id\": \"c00a581c-196b-42a9-be65-36a841a0bf59\",\n \"source_type\": \"exchange\",\n \"source_name\": \"Coinbase\",\n \"source_reference\": \"coinbase\",\n \"last_updated\": \"2025-04-02T14:58:41.139Z\",\n \"import_status\": \"COMPLETE\",\n \"last_imported_transaction\": {\n \"reference\": \"638d89f14a4002183984d42650fe1045\",\n \"timestamp\": \"2022-08-11T08:54:06Z\",\n \"imported_at\": \"2025-04-02T14:57:26.592Z\"\n },\n \"address\": null,\n \"assets\": [\n {\n \"currency_reference\": null,\n \"currency_name\": null,\n \"currency_symbol\": \"GAL\",\n \"currency_price\": 0.0,\n \"balance\": \"0.0000000014041932\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"0.0000000014041932\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": \"0xaaaf91d9b90df800df4f55c205fd6989c977e73a\",\n \"is_spam\": false\n },\n {\n \"currency_reference\": null,\n \"currency_name\": \"Ripple\",\n \"currency_symbol\": \"XRP\",\n \"currency_price\": 0.0,\n \"balance\": \"0.000006\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"0.000006\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": \"0xaaaf91d9b90df800df4f55c205fd6989c977e73a\",\n \"is_spam\": false\n },\n {\n \"currency_reference\": null,\n \"currency_name\": null,\n \"currency_symbol\": \"VET\",\n \"currency_price\": 0.0,\n \"balance\": \"44.17205026994437\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"44.17205026994437\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": \"0xaaaf91d9b90df800df4f55c205fd6989c977e73a\",\n \"is_spam\": false\n }\n ],\n \"chain_info\": []\n },\n {\n \"source_id\": \"d8cb050f-1061-4d79-b1fc-fb689e00ad07\",\n \"source_type\": \"wallet\",\n \"source_name\": \"ETH Wallet\",\n \"source_reference\": \"eth-wallet\",\n \"last_updated\": \"2025-04-02T13:29:07.462Z\",\n \"import_status\": \"COMPLETE\",\n \"last_imported_transaction\": {\n \"reference\": \"b2ecc7d0bfa8c644f19da826c8150a9b\",\n \"timestamp\": \"2025-03-24T18:59:35Z\",\n \"imported_at\": \"2025-04-02T13:28:21.427Z\"\n },\n \"address\": \"0x44de43d08aae5551e04ecf69abdbc860c3951375\",\n \"assets\": [\n {\n \"currency_reference\": null,\n \"currency_name\": \"blazedether.org\",\n \"currency_symbol\": \"CLAIM REWARDS ON BLAZEDETHER.ORG-0-NFT\",\n \"currency_price\": 0.0,\n \"balance\": \"1.0\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"1.0\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": \"0xaaaf91d9b90df800df4f55c205fd6989c977e73a\",\n \"is_spam\": false\n },\n {\n \"currency_reference\": null,\n \"currency_name\": \"Ethereum\",\n \"currency_symbol\": \"ETH\",\n \"currency_price\": 0.0,\n \"balance\": \"0.000104131384938\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"0.000104131384938\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": null,\n \"is_spam\": false\n }\n ],\n \"chain_info\": [\n {\n \"id\": 1,\n \"name\": \"Ethereum Mainnet\"\n }\n ]\n },\n {\n \"source_id\": \"2a575ad1-bc7f-4f58-a736-c9fcddfc6fe9\",\n \"source_type\": \"wallet\",\n \"source_name\": \"BTC Wallet\",\n \"source_reference\": \"btc-wallet\",\n \"last_updated\": \"2025-04-02T13:29:21.764Z\",\n \"import_status\": \"COMPLETE\",\n \"last_imported_transaction\": {\n \"reference\": \"2adbe056329a2c3640c9a8d75d96233e\",\n \"timestamp\": \"2022-06-16T15:12:18Z\",\n \"imported_at\": \"2025-04-02T13:28:57.376Z\"\n },\n \"address\": \"bc1qhdk5lt5frywgkkhshm22g3zf596g25tkpahgwr\",\n \"assets\": [\n {\n \"currency_reference\": null,\n \"currency_name\": \"Bitcoin\",\n \"currency_symbol\": \"BTC\",\n \"currency_price\": 0.0,\n \"balance\": \"0.0\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"0.0\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": null,\n \"is_spam\": false\n }\n ],\n \"chain_info\": [\n {\n \"id\": null,\n \"name\": \"Bitcoin\"\n }\n ]\n }\n ],\n \"base_currency\": \"USD\"\n }\n ]\n}" }, { "name": "GET holdings for user: empty response", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/holdings", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "holdings" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 01 Jun 2023 13:51:08 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "91" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Etag", "value": "W/\"582cf2581141442d270733f6eb13ce05\"" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "4f0d82c3-40bf-4e65-a898-f72c9f1cf6e1" }, { "key": "X-Runtime", "value": "0.104201" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d07edfbcf4c5b74-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"holdings\": {},\n \"base_currency\": \"USD\"\n }\n}" }, { "name": "GET holdings for user: user not found", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/holdings", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "holdings" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 15:07:46 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "X-Request-Id", "value": "81867586-a149-4cf6-9fa3-452356728f1c" }, { "key": "X-Runtime", "value": "0.086620" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7bb97e4b201e6a-FRA" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-USRGET-AA2\",\n \"message\": \"Could not find user\"\n }\n}" } ] }, { "name": "GET holdings for user by source", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/holdings/{{source_id}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "holdings", "{{source_id}}" ] }, "description": "### GET **/companies/{companyReference}/users/{userId}/holdings/{sourceId}**\n\n**Returns** the holdings of a specific source of a user by making a GET request to the path `/companies/{company_reference}/users/{user_id}/holdings/{source_id}` on the base URL.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n### Request\n\n##### URi PARAMETERS\n\n> **companyReference** `string` The ID of a specific company\n>\n> **userId** `string` The ID of a specific user\n>\n> **sourceId** `string` The ID of a specific source\n\n##### QUERY PARAMETERS\n\n> NONE\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n>\n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "GET holdings for user by source: success", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/holdings", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "holdings" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 13:50:56 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "ETag", "value": "W/\"31bfd8e391a2abecddb167efcc39d303\"" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "X-Request-Id", "value": "ff19a233-4edd-4068-94b8-77079c44b823" }, { "key": "X-Runtime", "value": "1.585048" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7b48e9c9d78e57-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [\n {\n \"holdings\": [\n {\n \"source_id\": \"face6831-bfbb-4ac5-8d85-ffe74169a970\",\n \"source_type\": \"wallet\",\n \"source_name\": \"ETH Wallet\",\n \"source_reference\": \"eth-wallet\",\n \"last_updated\": \"2025-07-08T10:36:44.814Z\",\n \"import_status\": \"COMPLETE\",\n \"last_imported_transaction\": {\n \"reference\": \"18bcd0e672eee1c9b8705292ccf0c236\",\n \"timestamp\": \"2025-04-01T03:52:11Z\",\n \"imported_at\": \"2025-07-08T10:36:23.724Z\"\n },\n \"address\": \"0x511aef977fe6626b8b6900984b41fdd6b367ab21\",\n \"assets\": [\n {\n \"currency_reference\": null,\n \"currency_name\": \"Ethereum\",\n \"currency_symbol\": \"ETH\",\n \"currency_price\": 0.0,\n \"balance\": \"0.1175013886223704\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"0.1175013886223704\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": null,\n \"is_spam\": false\n },\n {\n \"currency_reference\": null,\n \"currency_name\": null,\n \"currency_symbol\": \"SPIO\",\n \"currency_price\": 0.0,\n \"balance\": \"15.37657042863076\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"15.37657042863076\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": \"0x3c03b4ec9477809072ff9cc9292c9b25d4a8e6c6\",\n \"is_spam\": false\n },\n {\n \"currency_reference\": null,\n \"currency_name\": \"PolkaCover\",\n \"currency_symbol\": \"CVR\",\n \"currency_price\": 0.0,\n \"balance\": \"1127.165049460295\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"1127.165049460295\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": \"0x3c03b4ec9477809072ff9cc9292c9b25d4a8e6c6\",\n \"is_spam\": false\n },\n {\n \"currency_reference\": null,\n \"currency_name\": \"Collateral\",\n \"currency_symbol\": \"COLL\",\n \"currency_price\": 0.0,\n \"balance\": \"1230.705649017336\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"1230.705649017336\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": \"0x957891c11616d3e0b0a76a76fb42724c382e0ef3\",\n \"is_spam\": false\n }\n ],\n \"chain_info\": [\n {\n \"id\": 1,\n \"name\": \"Ethereum - (ERC-20, ERC-721, ERC-1155)\"\n }\n ]\n }\n ],\n \"base_currency\": \"USD\"\n }\n ]\n}" }, { "name": "GET holdings for user by source: empty response", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/holdings", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "holdings" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 01 Jun 2023 13:51:08 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "91" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Etag", "value": "W/\"582cf2581141442d270733f6eb13ce05\"" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "4f0d82c3-40bf-4e65-a898-f72c9f1cf6e1" }, { "key": "X-Runtime", "value": "0.104201" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d07edfbcf4c5b74-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"holdings\": {},\n \"base_currency\": \"USD\"\n }\n}" }, { "name": "GET holdings for user by source: user not found", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/holdings", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "holdings" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 15:07:46 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "X-Request-Id", "value": "81867586-a149-4cf6-9fa3-452356728f1c" }, { "key": "X-Runtime", "value": "0.086620" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7bb97e4b201e6a-FRA" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-USRGET-AA2\",\n \"message\": \"Could not find user\"\n }\n}" } ] }, { "name": "DELETE user source", "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "DELETE", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/holdings/{{source_id}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "holdings", "{{source_id}}" ] }, "description": "### DELETE **/companies/{companyReference}/users/{userId}/holdings/{sourceId}**\n\n**Deletes** a user's source along with its transactions by making a DELETE request to the `/compliance/api/v3/companies/{company_reference}/users/{user_id}/holdings/{source_id}` endpoint.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n### Request\n\n##### URi PARAMETERS\n\n> **companyReference** `string` The ID of a specific company\n\n> **userId** `string` The ID of a specific user\n\n> **sourceId** `string` The ID of a specific source\n\n##### QUERY PARAMETERS\n\n> NONE\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n>\n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "DELETE user source: success", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/holdings/{{source_id}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "holdings", "{{source_id}}" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 13:50:56 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "ETag", "value": "W/\"31bfd8e391a2abecddb167efcc39d303\"" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "X-Request-Id", "value": "ff19a233-4edd-4068-94b8-77079c44b823" }, { "key": "X-Runtime", "value": "1.585048" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7b48e9c9d78e57-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": []\n}" }, { "name": "DELETE user source: user not found", "originalRequest": { "method": "DELETE", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/holdings/{{source_id}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "holdings", "{{source_id}}" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 15:07:46 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "X-Request-Id", "value": "81867586-a149-4cf6-9fa3-452356728f1c" }, { "key": "X-Runtime", "value": "0.086620" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7bb97e4b201e6a-FRA" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-USRGET-AA2\",\n \"message\": \"Could not find user\"\n }\n}" }, { "name": "DELETE user source: source not found", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/holdings/{{source_id}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "holdings", "{{source_id}}" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 15:07:46 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "X-Request-Id", "value": "81867586-a149-4cf6-9fa3-452356728f1c" }, { "key": "X-Runtime", "value": "0.086620" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7bb97e4b201e6a-FRA" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-PARAMGET-AA3\",\n \"message\": \"Provided source not found\"\n }\n}" } ] }, { "name": "GET holdings for all users of a company", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/holdings", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "holdings" ] }, "description": "### GET **/companies/{companyReference}/holdings**\n\n**Returns** a list of all the users of a company with all their holdings by making a GET request to the path `/companies/{company_reference}/holdings` on the base URL.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n> *Results paginated with 20 elements per page\n\n### Request\n\n##### URi PARAMETERS\n\n> **companyReference** `string` The ID of a specific company\n\n##### QUERY PARAMETERS\n\n> **page** `number` Specific page requested for the paginated results\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n>\n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "GET holdings for all users of a company: success", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/holdings", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "holdings" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 13:50:56 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "ETag", "value": "W/\"31bfd8e391a2abecddb167efcc39d303\"" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "X-Request-Id", "value": "ff19a233-4edd-4068-94b8-77079c44b823" }, { "key": "X-Runtime", "value": "1.585048" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7b48e9c9d78e57-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [\n {\n \"users\": [\n {\n \"id\": \"7c039416-6c83-41e3-b6d0-d244b8f3d529\",\n \"holdings\": [],\n \"base_currency\": \"USD\"\n },\n {\n \"id\": \"d2b9816f-1e14-4596-a6af-fde38cf36005\",\n \"holdings\": [\n {\n \"source_id\": \"85715a6e-ac84-4005-ad7b-b37bf97bd06b\",\n \"source_type\": \"exchange\",\n \"source_name\": \"Bit2Me\",\n \"source_reference\": \"bit2me\",\n \"last_updated\": \"2025-03-25T12:46:27.686Z\",\n \"import_status\": \"COMPLETE\",\n \"last_imported_transaction\": {\n \"reference\": \"9918d0cbc2d941ceffe852e9bf1dad89\",\n \"timestamp\": \"2024-10-09T11:22:05Z\",\n \"imported_at\": \"2025-03-25T12:46:24.318Z\"\n },\n \"address\": null,\n \"assets\": [\n {\n \"currency_reference\": null,\n \"currency_name\": \"Cardano\",\n \"currency_symbol\": \"ADA\",\n \"currency_price\": 0.0,\n \"balance\": \"0.0\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"0.0\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": null,\n \"is_spam\": false\n },\n {\n \"currency_reference\": null,\n \"currency_name\": null,\n \"currency_symbol\": \"SOL\",\n \"currency_price\": 0.0,\n \"balance\": \"0.0005\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"0.0005\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": null,\n \"is_spam\": false\n },\n {\n \"currency_reference\": null,\n \"currency_name\": \"OmiseGO\",\n \"currency_symbol\": \"OMG\",\n \"currency_price\": 0.0,\n \"balance\": \"0.0\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"0.0\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": null,\n \"is_spam\": false\n },\n {\n \"currency_reference\": null,\n \"currency_name\": null,\n \"currency_symbol\": \"GNO\",\n \"currency_price\": 0.0,\n \"balance\": \"0.0\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"0.0\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": null,\n \"is_spam\": false\n }\n ],\n \"chain_info\": []\n }\n ],\n \"base_currency\": \"USD\"\n },\n {\n \"id\": \"83b9c1ee-9df5-48e0-ac46-5ceec42a8a76\",\n \"holdings\": [\n {\n \"source_id\": \"4275df10-c89a-4001-b842-c45e910b7166\",\n \"source_type\": \"exchange\",\n \"source_name\": \"Coinbase\",\n \"source_reference\": \"coinbase\",\n \"last_updated\": \"2025-06-23T15:11:00.312Z\",\n \"import_status\": \"COMPLETE\",\n \"last_imported_transaction\": {\n \"reference\": \"b306d4eed2dea90e0a52f6224e9a9eae\",\n \"timestamp\": \"2024-04-04T14:10:32Z\",\n \"imported_at\": \"2025-06-23T15:07:18.472Z\"\n },\n \"address\": null,\n \"assets\": [\n {\n \"currency_reference\": null,\n \"currency_name\": \"EOS\",\n \"currency_symbol\": \"EOS\",\n \"currency_price\": 0.0,\n \"balance\": \"0.0\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"0.0\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": null,\n \"is_spam\": false\n },\n {\n \"currency_reference\": null,\n \"currency_name\": \"Cardano\",\n \"currency_symbol\": \"ADA\",\n \"currency_price\": 0.0,\n \"balance\": \"0.010114\",\n \"staked_balance\": \"0.010114\",\n \"available_balance\": \"0.0\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": null,\n \"is_spam\": false\n }\n ],\n \"chain_info\": []\n },\n {\n \"source_id\": \"face6831-bfbb-4ac5-8d85-ffe74169a970\",\n \"source_type\": \"wallet\",\n \"source_name\": \"ETH Wallet\",\n \"source_reference\": \"eth-wallet\",\n \"last_updated\": \"2025-07-08T10:36:44.814Z\",\n \"import_status\": \"COMPLETE\",\n \"last_imported_transaction\": {\n \"reference\": \"18bcd0e672eee1c9b8705292ccf0c236\",\n \"timestamp\": \"2025-04-01T03:52:11Z\",\n \"imported_at\": \"2025-07-08T10:36:23.724Z\"\n },\n \"address\": \"0x511aef977fe6626b8b6900984b41fdd6b367ab21\",\n \"assets\": [\n {\n \"currency_reference\": null,\n \"currency_name\": \"Ethereum\",\n \"currency_symbol\": \"ETH\",\n \"currency_price\": 0.0,\n \"balance\": \"0.1175013886223704\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"0.1175013886223704\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": null,\n \"is_spam\": false\n },\n {\n \"currency_reference\": null,\n \"currency_name\": null,\n \"currency_symbol\": \"SPIO\",\n \"currency_price\": 0.0,\n \"balance\": \"15.37657042863076\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"15.37657042863076\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": null,\n \"is_spam\": false\n },\n {\n \"currency_reference\": null,\n \"currency_name\": \"PolkaCover\",\n \"currency_symbol\": \"CVR\",\n \"currency_price\": 0.0,\n \"balance\": \"1127.165049460295\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"1127.165049460295\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": \"0x3c03b4ec9477809072ff9cc9292c9b25d4a8e6c6\",\n \"is_spam\": false\n },\n {\n \"currency_reference\": null,\n \"currency_name\": \"Collateral\",\n \"currency_symbol\": \"COLL\",\n \"currency_price\": 0.0,\n \"balance\": \"1230.705649017336\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"1230.705649017336\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": \"0x957891c11616d3e0b0a76a76fb42724c382e0ef3\",\n \"is_spam\": false\n },\n {\n \"currency_reference\": null,\n \"currency_name\": \"https://unimex.network/\",\n \"currency_symbol\": \"UMX\",\n \"currency_price\": 0.0,\n \"balance\": \"0.0\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"0.0\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": \"0x10be9a8dae441d276a5027936c3aaded2d82bc15\",\n \"is_spam\": false\n },\n {\n \"currency_reference\": null,\n \"currency_name\": \"PolkastarterToken\",\n \"currency_symbol\": \"POLS\",\n \"currency_price\": 0.0,\n \"balance\": \"157.5396924253004\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"157.5396924253004\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": \"0x83e6f1e41cdd28eaceb20cb649155049fac3d5aa\",\n \"is_spam\": false\n },\n {\n \"currency_reference\": null,\n \"currency_name\": null,\n \"currency_symbol\": \"LUNA\",\n \"currency_price\": 0.0,\n \"balance\": \"53.17595661355401\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"53.17595661355401\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": null,\n \"is_spam\": false\n },\n {\n \"currency_reference\": null,\n \"currency_name\": \"SpiderDAO Token\",\n \"currency_symbol\": \"SPDR\",\n \"currency_price\": 0.0,\n \"balance\": \"2256.656181068939\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"2256.656181068939\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": \"0xbcd4b7de6fde81025f74426d43165a5b0d790fdd\",\n \"is_spam\": true\n },\n {\n \"currency_reference\": null,\n \"currency_name\": \"Uniswap V2\",\n \"currency_symbol\": \"UNI-V2--1\",\n \"currency_price\": 0.0,\n \"balance\": \"16.15954062297383\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"16.15954062297383\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": \"0xffa98a091331df4600f87c9164cd27e8a5cd2405\",\n \"is_spam\": false\n },\n {\n \"currency_reference\": null,\n \"currency_name\": \"Propy\",\n \"currency_symbol\": \"PRO\",\n \"currency_price\": 0.0,\n \"balance\": \"806.74259421\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"806.74259421\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": \"0x226bb599a12c826476e3a771454697ea52e9e220\",\n \"is_spam\": true\n },\n {\n \"currency_reference\": null,\n \"currency_name\": \"Aragon Network Token\",\n \"currency_symbol\": \"ANT\",\n \"currency_price\": 0.0,\n \"balance\": \"151.11\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"151.11\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": \"0xa117000000f279d81a1d3cc75430faa017fa5a2e\",\n \"is_spam\": false\n },\n {\n \"currency_reference\": null,\n \"currency_name\": \"SPI Club\",\n \"currency_symbol\": \"SPIC\",\n \"currency_price\": 0.0,\n \"balance\": \"15.37657042863076\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"15.37657042863076\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": \"0xc15122898c3ee73211d8a8a4a656ba1980d53086\",\n \"is_spam\": true\n }\n ],\n \"chain_info\": [\n {\n \"id\": 1,\n \"name\": \"Ethereum - (ERC-20, ERC-721, ERC-1155)\"\n }\n ]\n },\n {\n \"source_id\": \"812a3dd1-8df5-4b06-843b-05d6e9ae8f26\",\n \"source_type\": \"wallet\",\n \"source_name\": \"BTC Wallet\",\n \"source_reference\": \"btc-wallet\",\n \"last_updated\": \"2025-06-13T15:28:49.749Z\",\n \"import_status\": \"COMPLETE\",\n \"last_imported_transaction\": {\n \"reference\": \"4001fe6ffce4962298802be896b835e2\",\n \"timestamp\": \"2020-11-23T06:19:46Z\",\n \"imported_at\": \"2025-06-13T15:28:44.707Z\"\n },\n \"address\": \"bc1qeevcq77dyrk0gc5qs0v59arzmthj3ermd4elu8\",\n \"assets\": [\n {\n \"currency_reference\": null,\n \"currency_name\": \"Bitcoin\",\n \"currency_symbol\": \"BTC\",\n \"currency_price\": 0.0,\n \"balance\": \"0.0\",\n \"staked_balance\": \"0.0\",\n \"available_balance\": \"0.0\",\n \"total_fiat\": \"0.0\",\n \"contract_address\": null,\n \"is_spam\": false\n }\n ],\n \"chain_info\": [\n {\n \"id\": null,\n \"name\": \"Bitcoin\"\n }\n ]\n }\n ],\n \"base_currency\": \"USD\"\n }\n ]\n }\n ],\n \"meta\": {\n \"current_page\": 1,\n \"total_entries\": 3,\n \"total_pages\": 1\n }\n}" }, { "name": "GET holdings for all users of a company: empty response", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/holdings", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "holdings" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 01 Jun 2023 13:51:08 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "91" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Etag", "value": "W/\"582cf2581141442d270733f6eb13ce05\"" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "4f0d82c3-40bf-4e65-a898-f72c9f1cf6e1" }, { "key": "X-Runtime", "value": "0.104201" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d07edfbcf4c5b74-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"holdings\": {},\n \"base_currency\": \"USD\"\n }\n}" }, { "name": "GET holdings for all users of a company: company not found", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/holdings", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "holdings" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 15:07:46 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "X-Request-Id", "value": "81867586-a149-4cf6-9fa3-452356728f1c" }, { "key": "X-Runtime", "value": "0.086620" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7bb97e4b201e6a-FRA" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-CMPGET-AA3\",\n \"message\": \"Could not find company\"\n }\n}" } ] }, { "name": "GET resync source", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/holdings/{{source_id}}/resync", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "holdings", "{{source_id}}", "resync" ] }, "description": "### GET **/companies/{companyReference}/holdings/{sourceId}/resync**\n\n**Returns** a 200 response when the source re-sync has been started successfully by making a GET request to the path `/companies/{company_reference}/holdings/{source_id}/resync` on the base URL.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n### Request\n\n##### URi PARAMETERS\n\n> **companyReference** `string` The ID of a specific company \n> **sourceId** `string` The ID of a specific source\n\n##### QUERY PARAMETERS\n\n> NONE\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n> \n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "GET resync source: success", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/holdings/{{source_id}}/resync", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "holdings", "{{source_id}}", "resync" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 13:50:56 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "ETag", "value": "W/\"31bfd8e391a2abecddb167efcc39d303\"" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "X-Request-Id", "value": "ff19a233-4edd-4068-94b8-77079c44b823" }, { "key": "X-Runtime", "value": "1.585048" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7b48e9c9d78e57-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [\n {\n \"message\": \"Source 18831c28-9b97-4bd6-9a83-38ce426feb5e Re-Sync Started\"\n }\n ]\n}" }, { "name": "GET resync source: holding not found", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/holdings/{{source_id}}/resync", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "holdings", "{{source_id}}", "resync" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 15:07:46 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "X-Request-Id", "value": "81867586-a149-4cf6-9fa3-452356728f1c" }, { "key": "X-Runtime", "value": "0.086620" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7bb97e4b201e6a-FRA" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-HLDRSC-AA2\",\n \"message\": \"Holding not found\"\n }\n}" } ] }, { "name": "GET resume source", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/holdings/{{source_id}}/resume", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "holdings", "{{source_id}}", "resume" ] }, "description": "### GET **/companies/{companyReference}/holdings/{sourceId}/resume**\n\n**Returns** a 200 response when the source import has been resumed successfully by making a GET request to the path `/companies/{company_reference}/holdings/{source_id}/resume` on the base URL.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n### Request\n\n##### URi PARAMETERS\n\n> **companyReference** `string` The ID of a specific company \n**sourceId** `string` The ID of a specific source \n \n\n##### QUERY PARAMETERS\n\n> NONE \n \n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API" }, "response": [ { "name": "GET resume source: success", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/holdings/{{source_id}}/resume", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "holdings", "{{source_id}}", "resume" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 13:50:56 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "ETag", "value": "W/\"31bfd8e391a2abecddb167efcc39d303\"" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "X-Request-Id", "value": "ff19a233-4edd-4068-94b8-77079c44b823" }, { "key": "X-Runtime", "value": "1.585048" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7b48e9c9d78e57-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [\n {\n \"message\": \"Source 18831c28-9b97-4bd6-9a83-38ce426feb5e import resumed\"\n }\n ]\n}" }, { "name": "GET resume source: holding not found", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/holdings/{{source_id}}/resume", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "holdings", "{{source_id}}", "resume" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 15:07:46 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "X-Request-Id", "value": "81867586-a149-4cf6-9fa3-452356728f1c" }, { "key": "X-Runtime", "value": "0.086620" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7bb97e4b201e6a-FRA" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-HLDRSC-AA2\",\n \"message\": \"Holding not found\"\n }\n}" } ] }, { "name": "Import Status Glossary", "request": { "method": "VALUES", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "COMPLETE", "value": "", "description": "The user data was successfully updated in the last connection", "type": "text" }, { "key": "SOURCE_NOT_FOUND", "value": "", "description": "The selected exchange or wallet does no longer exist", "type": "text" }, { "key": "INVALID_API_KEY", "value": "", "description": "The API credentials provided by the user are no longer valid", "type": "text" }, { "key": "BAD_ADDRESS", "value": "", "description": "The wallet address provided by the user is not valid", "type": "text" }, { "key": "INVALID_COIN", "value": "", "description": "The currency provided by the user does not exist", "type": "text" }, { "key": "INVALID_EXCHANGE", "value": "", "description": "The exchange is wrong", "type": "text" }, { "key": "UNEXPECTED_ERROR", "value": "", "description": "Due to continuous changes made by each one of the supported exchanges without a notice, we try to be up to date. This error will be shown as we can not identify the real cause.", "type": "text" } ] }, "url": { "raw": "" }, "description": "This are all different status that can be set to a source depending of the import process outcome.\n\nThe property that contains this values is called `status` and it is present for each of the **sources** listed in the **holdings** response payload.\n\nThere are three different issues that could make an new import or the refresh of an existing one fail:" }, "response": [] } ], "description": "This folder contains endpoints related to retrieving holdings information for users of a company. Holdings represent the assets held by users in their uploaded accounts. The endpoints in this folder allow retrieving holdings based on different criteria such as source ID and user ID." }, { "name": "Polymarkets", "item": [ { "name": "GET polymarkets for user", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/polymarkets", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "polymarkets" ] }, "description": "### GET **/companies/{companyReference}/users/{userId}/polymarkets**\n\n**Returns** a list of the Polymarkets participated in by the user by making a GET request to the path `/companies/{company_reference}/users/{user_id}/polymarkets` on the base URL.\n\nPolymarkets represent prediction markets interacted with by users through their connected or uploaded accounts.\n\nThis endpoint requires authentication via a bearer token, provided in the `Authorization` header of the request.\n\n> \\*Results paginated with 100 elements per page \n \n\n### Request\n\n##### URI PARAMETERS\n\n> **companyReference** `string` The ID of a specific company \n \n> **userId** `string` The ID of a specific user \n \n\n##### QUERY PARAMETERS\n\n> **page** `integer` Page number for paginated results \n \n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API \n \n> **data** `array` List of polymarkets associated with the user \n \n> **pagination** `object` Pagination metadata for the response" }, "response": [ { "name": "GET polymarkets for user: success", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/polymarkets", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "polymarkets" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 13:50:56 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "ETag", "value": "W/\"31bfd8e391a2abecddb167efcc39d303\"" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "X-Request-Id", "value": "ff19a233-4edd-4068-94b8-77079c44b823" }, { "key": "X-Runtime", "value": "1.585048" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7b48e9c9d78e57-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [\n {\n \"markets\": [\n {\n \"condition_id\": \"0x1de721694086a3b2593b8c3913dbd170ae1f4a61d38a8d51aa867cd926dd2303\",\n \"market_slug\": \"bitcoin-above-80k-on-may-12\",\n \"question\": \"Will the price of Bitcoin be above $80,000 on May 12?\",\n \"description\": \"This market will resolve to \\\"Yes\\\" if the Binance 1 minute candle for BTC/USDT 12:00 in the ET timezone (noon) on the date specified in the title has a final \\\"Close\\\" price higher than the price specified in the title. Otherwise, this market will resolve to \\\"No\\\".\\n\\nThe resolution source for this market is Binance, specifically the BTC/USDT \\\"Close\\\" prices currently available at https://www.binance.com/en/trade/BTC_USDT with \\\"1m\\\" and \\\"Candles\\\" selected on the top bar.\\n\\nPlease note that this market is about the price according to Binance BTC/USDT, not according to other exchanges or trading pairs.\\n\\nPrice precision is determined by the number of decimal places in the source.\"\n },\n {\n \"condition_id\": \"0xb177f77bde742b8abb6613454f5a5cda050ae86db87392ecf2bf496e68ca7531\",\n \"market_slug\": \"bitcoin-above-78k-on-may-12\",\n \"question\": \"Will the price of Bitcoin be above $78,000 on May 12?\",\n \"description\": \"This market will resolve to \\\"Yes\\\" if the Binance 1 minute candle for BTC/USDT 12:00 in the ET timezone (noon) on the date specified in the title has a final \\\"Close\\\" price higher than the price specified in the title. Otherwise, this market will resolve to \\\"No\\\".\\n\\nThe resolution source for this market is Binance, specifically the BTC/USDT \\\"Close\\\" prices currently available at https://www.binance.com/en/trade/BTC_USDT with \\\"1m\\\" and \\\"Candles\\\" selected on the top bar.\\n\\nPlease note that this market is about the price according to Binance BTC/USDT, not according to other exchanges or trading pairs.\\n\\nPrice precision is determined by the number of decimal places in the source.\"\n },\n {\n \"condition_id\": \"0x8b6b886672c56ecd63520ae0a7407695cb4ed9eece6eedeceb02a8678d1ac78f\",\n \"market_slug\": \"bitcoin-above-70k-on-may-7\",\n \"question\": \"Will the price of Bitcoin be above $70,000 on May 7?\",\n \"description\": \"This market will resolve to \\\"Yes\\\" if the Binance 1 minute candle for BTC/USDT 12:00 in the ET timezone (noon) on the date specified in the title has a final \\\"Close\\\" price higher than the price specified in the title. Otherwise, this market will resolve to \\\"No\\\".\\n\\nThe resolution source for this market is Binance, specifically the BTC/USDT \\\"Close\\\" prices currently available at https://www.binance.com/en/trade/BTC_USDT with \\\"1m\\\" and \\\"Candles\\\" selected on the top bar.\\n\\nPlease note that this market is about the price according to Binance BTC/USDT, not according to other exchanges or trading pairs.\\n\\nPrice precision is determined by the number of decimal places in the source.\"\n },\n {\n \"condition_id\": \"0xa58e4ada1b3e17170156f10fad5768b9a27536015b2841ca9318c430754da746\",\n \"market_slug\": \"bitcoin-above-72k-on-may-7\",\n \"question\": \"Will the price of Bitcoin be above $72,000 on May 7?\",\n \"description\": \"This market will resolve to \\\"Yes\\\" if the Binance 1 minute candle for BTC/USDT 12:00 in the ET timezone (noon) on the date specified in the title has a final \\\"Close\\\" price higher than the price specified in the title. Otherwise, this market will resolve to \\\"No\\\".\\n\\nThe resolution source for this market is Binance, specifically the BTC/USDT \\\"Close\\\" prices currently available at https://www.binance.com/en/trade/BTC_USDT with \\\"1m\\\" and \\\"Candles\\\" selected on the top bar.\\n\\nPlease note that this market is about the price according to Binance BTC/USDT, not according to other exchanges or trading pairs.\\n\\nPrice precision is determined by the number of decimal places in the source.\"\n },\n {\n \"condition_id\": \"0x661e0ccb8f22ef89f8d18291facb5ef394afd37b3168ba4069a21eb20c4a9270\",\n \"market_slug\": \"bitcoin-above-80k-on-may-7\",\n \"question\": \"Will the price of Bitcoin be above $80,000 on May 7?\",\n \"description\": \"This market will resolve to \\\"Yes\\\" if the Binance 1 minute candle for BTC/USDT 12:00 in the ET timezone (noon) on the date specified in the title has a final \\\"Close\\\" price higher than the price specified in the title. Otherwise, this market will resolve to \\\"No\\\".\\n\\nThe resolution source for this market is Binance, specifically the BTC/USDT \\\"Close\\\" prices currently available at https://www.binance.com/en/trade/BTC_USDT with \\\"1m\\\" and \\\"Candles\\\" selected on the top bar.\\n\\nPlease note that this market is about the price according to Binance BTC/USDT, not according to other exchanges or trading pairs.\\n\\nPrice precision is determined by the number of decimal places in the source.\"\n }\n ]\n }\n ]\n}" }, { "name": "GET polymarkets for user: empty response", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/polymarkets", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "polymarkets" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 01 Jun 2023 13:51:08 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "91" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Etag", "value": "W/\"582cf2581141442d270733f6eb13ce05\"" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "4f0d82c3-40bf-4e65-a898-f72c9f1cf6e1" }, { "key": "X-Runtime", "value": "0.104201" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d07edfbcf4c5b74-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"markets\": {}\n }\n}" }, { "name": "GET polymarkets for user: user not found", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/polymarkets", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "polymarkets" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 15:07:46 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "X-Request-Id", "value": "81867586-a149-4cf6-9fa3-452356728f1c" }, { "key": "X-Runtime", "value": "0.086620" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7bb97e4b201e6a-FRA" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-USRGET-AA2\",\n \"message\": \"Could not find user\"\n }\n}" } ] }, { "name": "GET polymarkets for all users of a company", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/polymarkets", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "polymarkets" ] }, "description": "### GET **/companies/{companyReference}/polymarkets**\n\n**Returns** a list of all users of a company together with the Polymarkets they have participated in by making a GET request to the path `/companies/{company_reference}/polymarkets` on the base URL.\n\nPolymarkets represent prediction markets interacted with by users through their connected or uploaded accounts.\n\nThis endpoint requires authentication via a bearer token, provided in the `Authorization` header of the request.\n\n> \\*Results paginated with 20 elements per page\n\n### Request\n\n##### URI PARAMETERS\n\n> **companyReference** `string` The ID of a specific company\n\n##### QUERY PARAMETERS\n\n> **page** `integer` Specific page requested for the paginated results\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n\n> **data** `array` List of company users and their associated markets\n\n> **pagination** `object` Pagination metadata for the response" }, "response": [ { "name": "GET polymarkets for all users of a company: success", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/polymarkets", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "polymarkets" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 13:50:56 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "ETag", "value": "W/\"31bfd8e391a2abecddb167efcc39d303\"" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "X-Request-Id", "value": "ff19a233-4edd-4068-94b8-77079c44b823" }, { "key": "X-Runtime", "value": "1.585048" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7b48e9c9d78e57-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [\n {\n \"users\": [\n {\n \"id\": \"83b9c1ee-9df5-48e0-ac46-5ceec42a8a76\",\n \"markets\": [\n {\n \"condition_id\": \"0x1de721694086a3b2593b8c3913dbd170ae1f4a61d38a8d51aa867cd926dd2303\",\n \"market_slug\": \"bitcoin-above-80k-on-may-12\",\n \"question\": \"Will the price of Bitcoin be above $80,000 on May 12?\",\n \"description\": \"This market will resolve to \\\"Yes\\\" if the Binance 1 minute candle for BTC/USDT 12:00 in the ET timezone (noon) on the date specified in the title has a final \\\"Close\\\" price higher than the price specified in the title. Otherwise, this market will resolve to \\\"No\\\".\\n\\nThe resolution source for this market is Binance, specifically the BTC/USDT \\\"Close\\\" prices currently available at https://www.binance.com/en/trade/BTC_USDT with \\\"1m\\\" and \\\"Candles\\\" selected on the top bar.\\n\\nPlease note that this market is about the price according to Binance BTC/USDT, not according to other exchanges or trading pairs.\\n\\nPrice precision is determined by the number of decimal places in the source.\"\n },\n {\n \"condition_id\": \"0xb177f77bde742b8abb6613454f5a5cda050ae86db87392ecf2bf496e68ca7531\",\n \"market_slug\": \"bitcoin-above-78k-on-may-12\",\n \"question\": \"Will the price of Bitcoin be above $78,000 on May 12?\",\n \"description\": \"This market will resolve to \\\"Yes\\\" if the Binance 1 minute candle for BTC/USDT 12:00 in the ET timezone (noon) on the date specified in the title has a final \\\"Close\\\" price higher than the price specified in the title. Otherwise, this market will resolve to \\\"No\\\".\\n\\nThe resolution source for this market is Binance, specifically the BTC/USDT \\\"Close\\\" prices currently available at https://www.binance.com/en/trade/BTC_USDT with \\\"1m\\\" and \\\"Candles\\\" selected on the top bar.\\n\\nPlease note that this market is about the price according to Binance BTC/USDT, not according to other exchanges or trading pairs.\\n\\nPrice precision is determined by the number of decimal places in the source.\"\n }\n ]\n },\n {\n \"id\": \"1ee83b9c-48e0-ac46-ac46-5cee8a76c42a\",\n \"markets\": [\n {\n \"condition_id\": \"0xa58e4ada1b3e17170156f10fad5768b9a27536015b2841ca9318c430754da746\",\n \"market_slug\": \"bitcoin-above-72k-on-may-7\",\n \"question\": \"Will the price of Bitcoin be above $72,000 on May 7?\",\n \"description\": \"This market will resolve to \\\"Yes\\\" if the Binance 1 minute candle for BTC/USDT 12:00 in the ET timezone (noon) on the date specified in the title has a final \\\"Close\\\" price higher than the price specified in the title. Otherwise, this market will resolve to \\\"No\\\".\\n\\nThe resolution source for this market is Binance, specifically the BTC/USDT \\\"Close\\\" prices currently available at https://www.binance.com/en/trade/BTC_USDT with \\\"1m\\\" and \\\"Candles\\\" selected on the top bar.\\n\\nPlease note that this market is about the price according to Binance BTC/USDT, not according to other exchanges or trading pairs.\\n\\nPrice precision is determined by the number of decimal places in the source.\"\n },\n {\n \"condition_id\": \"0x8b6b886672c56ecd63520ae0a7407695cb4ed9eece6eedeceb02a8678d1ac78f\",\n \"market_slug\": \"bitcoin-above-70k-on-may-7\",\n \"question\": \"Will the price of Bitcoin be above $70,000 on May 7?\",\n \"description\": \"This market will resolve to \\\"Yes\\\" if the Binance 1 minute candle for BTC/USDT 12:00 in the ET timezone (noon) on the date specified in the title has a final \\\"Close\\\" price higher than the price specified in the title. Otherwise, this market will resolve to \\\"No\\\".\\n\\nThe resolution source for this market is Binance, specifically the BTC/USDT \\\"Close\\\" prices currently available at https://www.binance.com/en/trade/BTC_USDT with \\\"1m\\\" and \\\"Candles\\\" selected on the top bar.\\n\\nPlease note that this market is about the price according to Binance BTC/USDT, not according to other exchanges or trading pairs.\\n\\nPrice precision is determined by the number of decimal places in the source.\"\n }\n ]\n },\n {\n \"id\": \"842a3b8a-48e0-48e0-ac46-5642a8aceec7\",\n \"markets\": [\n {\n \"condition_id\": \"0x661e0ccb8f22ef89f8d18291facb5ef394afd37b3168ba4069a21eb20c4a9270\",\n \"market_slug\": \"bitcoin-above-80k-on-may-7\",\n \"question\": \"Will the price of Bitcoin be above $80,000 on May 7?\",\n \"description\": \"This market will resolve to \\\"Yes\\\" if the Binance 1 minute candle for BTC/USDT 12:00 in the ET timezone (noon) on the date specified in the title has a final \\\"Close\\\" price higher than the price specified in the title. Otherwise, this market will resolve to \\\"No\\\".\\n\\nThe resolution source for this market is Binance, specifically the BTC/USDT \\\"Close\\\" prices currently available at https://www.binance.com/en/trade/BTC_USDT with \\\"1m\\\" and \\\"Candles\\\" selected on the top bar.\\n\\nPlease note that this market is about the price according to Binance BTC/USDT, not according to other exchanges or trading pairs.\\n\\nPrice precision is determined by the number of decimal places in the source.\"\n }\n ]\n }\n ]\n }\n ],\n \"meta\": {\n \"current_page\": 1,\n \"total_entries\": 1,\n \"total_pages\": 1\n }\n}" }, { "name": "GET polymarkets for all users of a company: empty response", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/polymarkets", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "polymarkets" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 01 Jun 2023 13:51:08 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "91" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Etag", "value": "W/\"582cf2581141442d270733f6eb13ce05\"" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Request-Id", "value": "4f0d82c3-40bf-4e65-a898-f72c9f1cf6e1" }, { "key": "X-Runtime", "value": "0.104201" }, { "key": "X-Xss-Protection", "value": "0" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d07edfbcf4c5b74-FRA" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"markets\": {}\n }\n}" }, { "name": "GET polymarkets for all users of a company: company not found", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/polymarkets", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "polymarkets" ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 15:07:46 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "X-Request-Id", "value": "81867586-a149-4cf6-9fa3-452356728f1c" }, { "key": "X-Runtime", "value": "0.086620" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7bb97e4b201e6a-FRA" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-CMPGET-AA3\",\n \"message\": \"Could not find company\"\n }\n}" } ] }, { "name": "Import Status Glossary", "request": { "method": "VALUES", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "COMPLETE", "value": "", "description": "The user data was successfully updated in the last connection", "type": "text" }, { "key": "SOURCE_NOT_FOUND", "value": "", "description": "The selected exchange or wallet does no longer exist", "type": "text" }, { "key": "INVALID_API_KEY", "value": "", "description": "The API credentials provided by the user are no longer valid", "type": "text" }, { "key": "BAD_ADDRESS", "value": "", "description": "The wallet address provided by the user is not valid", "type": "text" }, { "key": "INVALID_COIN", "value": "", "description": "The currency provided by the user does not exist", "type": "text" }, { "key": "INVALID_EXCHANGE", "value": "", "description": "The exchange is wrong", "type": "text" }, { "key": "UNEXPECTED_ERROR", "value": "", "description": "Due to continuous changes made by each one of the supported exchanges without a notice, we try to be up to date. This error will be shown as we can not identify the real cause.", "type": "text" } ] }, "url": { "raw": "" }, "description": "This are all different status that can be set to a source depending of the import process outcome.\n\nThe property that contains this values is called `status` and it is present for each of the **sources** listed in the **holdings** response payload.\n\nThere are three different issues that could make an new import or the refresh of an existing one fail:" }, "response": [] } ], "description": "This folder contains endpoints related to retrieving Polymarket participation data for users within a company. \n\nPolymarkets represent the prediction markets in which users have participated through their connected or uploaded accounts. These endpoints allow clients to retrieve market participation information associated with a specific user, including the markets interacted with across supported imported sources. \n\nThe endpoints in this folder are scoped at the company level and provide access to Polymarket activity based on user identifiers within the company." }, { "name": "Imports", "item": [ { "name": "POST wallet", "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" }, { "key": "X-Signature", "value": "90834609d89e2b6398b91b00fdfe5f0c48bef18e8d50eb11c5941ab4825e11fb", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"data\": \"i1P8lmd8zZhSmRFNAUe9izd/DbGbhd/5L9GpnbWmdywnbrJM9Lb3cTzKsPiGvlcgwvYt2bt2wF5m08LvZ/LqF0+sCfp5r6+FdKT2nbMOk4ICNDKBsGvqHyT8miRQ+IBRWCpKjx5tUHYOQKa275A5GIzpoDt8W7aQRW4ebheM3I6/4cqVrYhrTDL47p0ruMUhlGx0F56DUz+70yjZrI5dFg==\", \n \"iv\": \"8pOeauVYagEIFQygF3Nctg==\"\n}" }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/imports", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "imports" ] }, "description": "### POST **/companies/{companyReference}/users/{userId}**\n\n**Returns** the details of a specific user by making a GET request to the path `/companies/{company_reference}/users/{user_id}/imports` on the base URL.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n### Request\n\n##### URi PARAMETERS\n\n> **companyReference** `string` The ID of a specific company\n\n> **userId** `string` The ID of a specific user\n\n##### BODY\n\n*In JSON format\n\n> **data** `string` encrypted payload including all parameters explained above\n> \n> **iv** A 16-byte random value ensuring unique encryption outputs\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n> \n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "POST wallet: success", "originalRequest": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "name": "Content-Type", "type": "text" }, { "key": "X-Signature", "value": "90834609d89e2b6398b91b00fdfe5f0c48bef18e8d50eb11c5941ab4825e11fb", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"data\": \"i1P8lmd8zZhSmRFNAUe9izd/DbGbhd/5L9GpnbWmdywnbrJM9Lb3cTzKsPiGvlcgwvYt2bt2wF5m08LvZ/LqF0+sCfp5r6+FdKT2nbMOk4ICNDKBsGvqHyT8miRQ+IBRWCpKjx5tUHYOQKa275A5GIzpoDt8W7aQRW4ebheM3I6/4cqVrYhrTDL47p0ruMUhlGx0F56DUz+70yjZrI5dFg==\", \n \"iv\": \"8pOeauVYagEIFQygF3Nctg==\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/imports", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "imports" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Tue, 04 Jul 2023 07:11:17 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "ETag", "value": "W/\"1ffd1d2f24f891c8073d5d77182c4e17\"" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Cache-Control", "value": "no-cache, no-store" }, { "key": "X-Request-Id", "value": "a39d705a-d35a-49eb-832d-13bf071bebcb" }, { "key": "X-Runtime", "value": "0.117811" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Content-Security-Policy", "value": "frame-ancestors 'self' https://complysci.com;" }, { "key": "Expires", "value": "-1" }, { "key": "Pragma", "value": "no-cache" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7e158da11a448e51-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"import_data\": [\n {\n \"user_ud\": \"d2b9816f-1e14-4596-a6af-fde38cf36005\",\n \"source_id\": \"e02bd7b9-9284-4427-91f8-21a3253343e4\",\n \"import_status\": \"in-progress\"\n }\n ]\n }\n}" }, { "name": "GET currencies: invalid token", "originalRequest": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "name": "Content-Type", "type": "text" }, { "key": "X-Signature", "value": "90834609d89e2b6398b91b00fdfe5f0c48bef18e8d50eb11c5941ab4825e11fb", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"data\": \"i1P8lmd8zZhSmRFNAUe9izd/DbGbhd/5L9GpnbWmdywnbrJM9Lb3cTzKsPiGvlcgwvYt2bt2wF5m08LvZ/LqF0+sCfp5r6+FdKT2nbMOk4ICNDKBsGvqHyT8miRQ+IBRWCpKjx5tUHYOQKa275A5GIzpoDt8W7aQRW4ebheM3I6/4cqVrYhrTDL47p0ruMUhlGx0F56DUz+70yjZrI5dFg==\", \n \"iv\": \"8pOeauVYagEIFQygF3Nctg==\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/imports", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "imports" ] } }, "status": "Unauthorized", "code": 401, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Tue, 27 Jun 2023 06:18:17 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Cache-Control", "value": "no-store" }, { "key": "Cache-Control", "value": "no-cache, no-store" }, { "key": "WWW-Authenticate", "value": "Bearer realm=\"Doorkeeper\", error=\"invalid_token\", error_description=\"The access token is invalid\"" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Request-Id", "value": "23104c54-4185-4e34-93b6-f57a5a5a3cfa" }, { "key": "X-Runtime", "value": "0.013134" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Expires", "value": "-1" }, { "key": "Pragma", "value": "no-cache" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Set-Cookie", "value": "_cfuvid=7H9PZrCAZ3HPw6XpTsIlCIeLN5JFDp5XGNS55L.rsQI-1687846697227-0-604800000; path=/; domain=.zenledger.io; HttpOnly; Secure; SameSite=None" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7ddb925f6f1b9e77-KTM" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-USRPST-AA5\",\n \"message\": \"Wallet already imported for user\"\n }\n}" } ] }, { "name": "POST exchange", "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" }, { "key": "X-Signature", "value": "94f79fec19ad48f66a6d67a1519e1a8e5488619d515b169087b530fbe8e14682", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"data\": \"AerM+vv9M0TfBE6iTfH8uTGTXMZVQlzC1FvDYFjsoSfJPPXIZBkkB5inlh42Iw2r8gW0ttzb/GxH4MJJsNdwOzam16e9m+oc8WLHLh95ucODbzbnkYZgf05YgeoHthZCMuPmNAdoU/hNNQFbpcI+eB7c4dnhp85SnkM8QXj3ZzJyzt4KuGhG9HVd7Rdi7/Pnt7ai60VoxNGC6uIhSlO2RanZVimZIsflqaSZulglji7HW2bpXbLX9fX1OMl7EZrejLR2r2UOKPerp3RUZz3IHQ2+X9qJ+CZ5Ksa/B0M9G3waAzpTbbLYPdRDIj4WqaP7g/una1oUowDOWrYPb9ak0Pf+JLTTK2V1s3eYTq4ZFfw1eTTko4aWsZvM8299K25thR5liPzUckNZ1J1k9YCCro19up5nTA+gcXNSaaIc+w2gEnVIsnHCqlPFs4KhHBOmqsacF50yiGPe3+/eFAyo8spt5zHOW2LnCNIl3eeGm613D9JlgVkRdHgLkK7ZRnuTNAxqAc78gfjDsireDeNzTQ==\", \n \"iv\": \"WegG/Ldk24eQKz1GpmuQ0w==\"\n}" }, "url": { "raw": "{{base_url}}/compliance/api/v1/companies/{{company_reference}}/users/{{user_id}}/imports", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v1", "companies", "{{company_reference}}", "users", "{{user_id}}", "imports" ] }, "description": "### POST **/companies/{companyReference}/users/{userId}**\n\n**Returns** the details of a specific user by making a GET request to the path `/companies/{company_reference}/users/{user_id}/imports` on the base URL.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n### Request\n\n##### URi PARAMETERS\n\n> **companyReference** `string` The ID of a specific company\n\n> **userId** `string` The ID of a specific user\n\n##### BODY\n\n*In JSON format\n\n> **data** `string` encrypted payload including all parameters explained above\n> \n> **iv** A 16-byte random value ensuring unique encryption outputs\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n> \n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "POST exchange: success", "originalRequest": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "name": "Content-Type", "type": "text" }, { "key": "X-Signature", "value": "b9a54172231f53d2e006372ed5e9b8b5833ec9f3b298e0d6dd94b8eaf9ec317e", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"data\": \"IMYHOq6nizHhLH8JnCwbxwbCgwrh/qTNr8et+TIaJhrAuIi85cQV9WWT5gKYouUduQgwY9MLYpD0x7FQHyhGBSJEN9Nl8ioHaasucJwtQ7UD2urnF/KibItxEF3/WcqBYHYsRerQLELCX98BXxNZsnihxfSwq/GQNC9qjGyra/BbCxo2L/7zs7TdpkCnW8pefmurSMLdHQqrIrzH6LzBE0lkx5o502UP9Jgyqjj9dKl2RmMOizJSLBunIZUM6ek0kZnIzCZoQvSkO94OFh1E8MuWVG52q6rpWkctjRaDP0ejsFlrt7DhCkFrqMC94R2xnHsub2A7ryG1s24a/szl229RToqRtDR2k6aoyqD6LuwqTAmf3C6jLpjE5qkmJXaSA6COiBLLMaNy1PyvMckWxYMyweRjHS/m5Pt2ztfOao3RJ+QrjF8EJHG+I69Kg0+AtA4jpNqiE5Lw9LF5sJBx5e0dVADUgxSuMEAyLD3F10vImTf6SzglZA0N4TzFYX9zCH5AJdwZIO9Xqg4/5/sCbA==\", \n \"iv\": \"LyZm+fcRoh2xLUeXmLvJZA==\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/imports", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "imports" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Tue, 04 Jul 2023 07:11:17 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "ETag", "value": "W/\"1ffd1d2f24f891c8073d5d77182c4e17\"" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Cache-Control", "value": "no-cache, no-store" }, { "key": "X-Request-Id", "value": "a39d705a-d35a-49eb-832d-13bf071bebcb" }, { "key": "X-Runtime", "value": "0.117811" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Content-Security-Policy", "value": "frame-ancestors 'self' https://complysci.com;" }, { "key": "Expires", "value": "-1" }, { "key": "Pragma", "value": "no-cache" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7e158da11a448e51-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"import_data\": [\n {\n \"user_ud\": \"83b9c1ee-9df5-48e0-ac46-5ceec42a8a76\",\n \"source_id\": \"330a4910-39b6-49c9-81e5-d06c33c454c2\",\n \"import_status\": \"in-progress\"\n }\n ]\n }\n}" }, { "name": "POST exchange: invalid api keys", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "name": "Content-Type", "type": "text" }, { "key": "X-Signature", "value": "b9a54172231f53d2e006372ed5e9b8b5833ec9f3b298e0d6dd94b8eaf9ec317e", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/companies/{{company_reference}}/users/{{user_id}}/imports", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "companies", "{{company_reference}}", "users", "{{user_id}}", "imports" ] } }, "status": "Unauthorized", "code": 401, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Tue, 27 Jun 2023 06:18:17 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Cache-Control", "value": "no-store" }, { "key": "Cache-Control", "value": "no-cache, no-store" }, { "key": "WWW-Authenticate", "value": "Bearer realm=\"Doorkeeper\", error=\"invalid_token\", error_description=\"The access token is invalid\"" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Request-Id", "value": "23104c54-4185-4e34-93b6-f57a5a5a3cfa" }, { "key": "X-Runtime", "value": "0.013134" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Expires", "value": "-1" }, { "key": "Pragma", "value": "no-cache" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Set-Cookie", "value": "_cfuvid=7H9PZrCAZ3HPw6XpTsIlCIeLN5JFDp5XGNS55L.rsQI-1687846697227-0-604800000; path=/; domain=.zenledger.io; HttpOnly; Secure; SameSite=None" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7ddb925f6f1b9e77-KTM" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-USRPST-AA4\",\n \"message\": \"Could not import exchange account for user\"\n }\n}" } ] } ], "description": "This folder is dedicated to managing imports related operations within the Compliance API. It contains endpoints that allow processing wallet and exchange account imports via API.\n\nPlease note that for all the endpoints, the `` `jwt_token` ``, `` `base_url` ``, `` `company_reference` ``, and `` `user_id` `` placeholders should be replaced with the actual values based on the context and environment in which the requests are made.\n\nAll API requests to this endpoint must be **signed and encrypted** to ensure integrity and security. The signing process ensures that the request is authenticated and has not been tampered with. Encryption protects sensitive data during transmission.\n\n## Request Signing & Encryption\n\n### **Signing Process**\n\nEach request should include a signature header (`X-Signature`), which is generated using **HMAC-SHA256** with a private key. The signature is computed as follows:\n\n1. Concatenate the request method, URL path, query parameters (if any), and request body as a string.\n2. Compute an HMAC-SHA256 hash of the string using your **API Secret Key**.\n3. Encode the result in hexadecimal format.\n4. Include the generated signature in the request headers.\n \n\n### **Encryption Process**\n\n* The request body must be **AES-256 encrypted** before transmission.\n* The encryption key must be securely shared between the client and server.\n* The request includes an **IV (Initialization Vector)** and **signature** for verification.\n \n\n### **Headers Required**\n\n| Header | Description |\n| --- | --- |\n| `Authorization` | Bearer token (`JWT`) for authentication |\n| `X-Signature` | HMAC-SHA256 signature for request integrity |\n| `Content-Type` | `application/json` |\n\n## **Request Before Encryption**\n\n### **For Exchanges**\n\nIf the account to import is an **Exchange**, the type to set is *exchange* along with the API keys:\n\n``` json\n{\n \"type\": \"exchange\",\n \"exchange_reference\": \"coinbase\",\n \"api_key\": \"eq5uFG0Lojx6Oej1mIFBTxAFfYBVy24CXEo5mc1hDnGpUtaN2QQGg7NoI7vCo3sGqEAf5-2BSYC8-7KJiEMXX_-1fagqJiunM3l9vP4c0_84ZK2bwPUvahEX2_pZXpOTs\",\n \"api_secret\": \"YGYn2q7k73XlmkUcDlOPRUxHhlBKEk-OnMuKFXREH9KpwcM2pGW6iCipH4EGrvjSTM-nJ0xhTpLjolBUug7sF0_cEcbpF5iQvEXyogJP7BzWiSXCxi7yeePfekL1i1EN\",\n \"pass_phrase\": \"\"\n}\n\n```\n\n*For some exchanges, a passphrase is required along the api key and secret. To know if this is required, the Sources resource provides a detailed overview.\n\nPlease refer to the [Sources Resource](https://docs.zenledger.io/compliance/v3/#jump-SupportedExchangesandWallets-GETsources)\n\nThis resource will provide a list of supported wallets and exchanges along with its requirements. \nFor exchanges, when **api** is enabled, the import process can be run via this resource and if the attribute **pass_phrase** is also active, the **pass_phrase** parameter is required.\n\n### **For Wallets**\n\nIf the account to import is a **Wallet**, the type to set is *wallet* along with the wallet information:\n\n``` json\n{\n \"type\": \"wallet\",\n \"wallet\": \"eth-wallet\",\n \"currency\": \"eth\",\n \"address\": \"0x61a9927dAc6B9D833FD1C81377B1D4bc21577CF5\",\n \"display_name\": \"My ETH Wallet\",\n \"us_based\": true\n}\n\n```\n\n## **Example - Encrypting & Signing an API Request in TypeScript**\n\nBelow is a TypeScript example demonstrating how to **encrypt** and **sign** an API request before sending it.\n\n``` typescript\nimport * as crypto from \"crypto\";\nimport axios from \"axios\";\nconst SECRET = \"your_secret_key\"; // Replace with your actual secret key\nconst API_URL = \"https://api.zenledger.io/companies/{company_reference}/users/{user_id}/imports \"; // Replace with actual API endpoint\n// Function to derive a SHA-256 key from the secret\nfunction getKey(secret: string): Buffer {\n return crypto.createHash(\"sha256\").update(secret).digest();\n}\n// Function to encrypt the payload\nfunction encrypt(secret: string, payload: object) {\n const key = getKey(secret);\n const iv = crypto.randomBytes(16); // AES-256-CBC requires a 16-byte IV\n const cipher = crypto.createCipheriv(\"aes-256-cbc\", key, iv);\n let encryptedData = cipher.update(JSON.stringify(payload), \"utf8\", \"base64\");\n encryptedData += cipher.final(\"base64\");\n const signature = crypto.createHmac(\"sha256\", secret).update(Buffer.from(encryptedData, \"base64\")).digest(\"hex\");\n return {\n data: encryptedData,\n iv: iv.toString(\"base64\"),\n signature: signature,\n };\n}\n// Example payload\nconst payload = {\n type: \"exchange\",\n exchange_reference: \"coinbase\",\n access_token: \"eq5uFG0Lojx6Oej1mIFBTxAFfYBVy24CXEo5mc1hDnGpUtaN2QQGg7NoI7vCo3sGqEAf5-2BSYC8-7KJiEMXX_-1fagqJiunM3l9vP4c0_84ZK2bwPUvahEX2_pZXpOTs\",\n refresh_token: \"YGYn2q7k73XlmkUcDlOPRUxHhlBKEk-OnMuKFXREH9KpwcM2pGW6iCipH4EGrvjSTM-nJ0xhTpLjolBUug7sF0_cEcbpF5iQvEXyogJP7BzWiSXCxi7yeePfekL1i1EN\",\n password: \"\",\n private_key: \"\",\n key_name: \"\",\n};\n// Encrypt and sign the payload\nconst encryptedPayload = encrypt(SECRET, payload);\n// Example API Request\nasync function sendRequest() {\n try {\n const response = await axios.post(API_URL, encryptedPayload, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-Signature\": encryptedPayload.signature,\n },\n });\n console.log(\"Response:\", response.data);\n } catch (error) {\n console.error(\"Error:\", error.response ? error.response.data : error.message);\n }\n}\n// Execute the request\nsendRequest();\n\n```" }, { "name": "Wallet Screening", "item": [ { "name": "GET Wallet Screening Report", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/compliance/api/v3/screening?chain={{chain}}&address={{address}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "screening" ], "query": [ { "key": "chain", "value": "{{chain}}" }, { "key": "address", "value": "{{address}}" } ] }, "description": "### GET **/**screening\n\n**Returns** a wallet screening report by making a GET request to the path `/screening` on the base URL.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\nThere are two versions of the screening service available: **standard** and **extended**. \nThe standard version provides a basic background check, while the extended version returns a more comprehensive report with detailed risk insights and additional metadata.\n\n> The version used is determined by your service tier and it can only be enabled on request.\n\n### Request\n\n##### URi PARAMETERS\n\n> NONE\n\n##### QUERY PARAMETERS\n\n> **chain** `string` **Extended version only.** Base coin of the Blockchain to check. The background check is run on all blockchains but a base chain is required\n> \n> **address** `string` Wallet address to check\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n> \n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "GET Standard Wallet Screening Report: success", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/screening?chain={{chain}}&address={{address}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "screening" ], "query": [ { "key": "chain", "value": "{{chain}}" }, { "key": "address", "value": "{{address}}" } ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 13:50:56 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "ETag", "value": "W/\"31bfd8e391a2abecddb167efcc39d303\"" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "X-Request-Id", "value": "ff19a233-4edd-4068-94b8-77079c44b823" }, { "key": "X-Runtime", "value": "1.585048" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7b48e9c9d78e57-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"screening_report\": {\n \"status\": \"filed\",\n \"details\": [\n {\n \"category\": \"sanctioned entity\",\n \"name\": \"SANCTIONED ENTITY: OFAC SDN Secondeye Solution 2021-04-15 1da5821544e25c636c1417ba96ade4cf6d2f9b5a\"\n },\n {\n \"category\": \"sanctions\",\n \"name\": \"SANCTIONS: OFAC SDN Secondeye Solution 2021-04-15 1da5821544e25c636c1417ba96ade4cf6d2f9b5a\"\n }\n ]\n }\n }\n}" }, { "name": "GET Extended Wallet Screening Report: success Copy", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/screening?chain={{chain}}&address={{address}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "screening" ], "query": [ { "key": "chain", "value": "{{chain}}" }, { "key": "address", "value": "{{address}}" } ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 13:50:56 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "ETag", "value": "W/\"31bfd8e391a2abecddb167efcc39d303\"" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "X-Request-Id", "value": "ff19a233-4edd-4068-94b8-77079c44b823" }, { "key": "X-Runtime", "value": "1.585048" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7b48e9c9d78e57-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"screening_report\": {\n \"blockchain\": \"ETH\",\n \"address\": \"0x1da5821544e25c636c1417ba96ade4cf6d2f9b5a\",\n \"sanctioned_or_investigated\": true,\n \"details\": [\n {\n \"report_data\": [\n {\n \"description\": \"The address listed on the US Treasury Department's Office of Foreign Assets Control sanction list.\"\n }\n ],\n \"owner_info\": [\n {\n \"owner_info\": [\n {\n \"name\": \"Bittrex.com\",\n \"url\": \"https://www.Bittrex.com\",\n \"legal_name\": \"Bittrex Global GmbH\"\n }\n ]\n }\n ]\n }\n ]\n }\n }\n}" }, { "name": "GET Wallet Screening Report: chain not supported", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/screening?chain={{chain}}&address={{address}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "screening" ], "query": [ { "key": "chain", "value": "{{chain}}" }, { "key": "address", "value": "{{address}}" } ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 15:07:46 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "X-Request-Id", "value": "81867586-a149-4cf6-9fa3-452356728f1c" }, { "key": "X-Runtime", "value": "0.086620" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7bb97e4b201e6a-FRA" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-PARAMGET-AA6\",\n \"message\": \"chain not supported\"\n }\n}" }, { "name": "GET Wallet Screening Report: chain not provided", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/screening?chain=&address={{address}}", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "screening" ], "query": [ { "key": "chain", "value": "" }, { "key": "address", "value": "{{address}}" } ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 15:07:46 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "X-Request-Id", "value": "81867586-a149-4cf6-9fa3-452356728f1c" }, { "key": "X-Runtime", "value": "0.086620" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7bb97e4b201e6a-FRA" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-PARAMGET-AA5\",\n \"message\": \"chain not provided\"\n }\n}" }, { "name": "GET Wallet Screening Report: address not provided", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/screening?chain={{chain}}&address=", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "screening" ], "query": [ { "key": "chain", "value": "{{chain}}" }, { "key": "address", "value": "" } ] } }, "status": "Not Found", "code": 404, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 15 Jun 2023 15:07:46 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "Cache-Control", "value": "no-cache" }, { "key": "X-Request-Id", "value": "81867586-a149-4cf6-9fa3-452356728f1c" }, { "key": "X-Runtime", "value": "0.086620" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7d7bb97e4b201e6a-FRA" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-PARAMGET-AA4\",\n \"message\": \"address not provided\"\n }\n}" } ] } ], "description": "This folder contains endpoints related to the Wallet Screening Service. The endpoints in this folder allow running background checks on specific wallet addresses providing both Chain and Address." }, { "name": "Supported Currencies", "item": [ { "name": "GET currencies", "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/currencies?page=42", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "currencies" ], "query": [ { "key": "page", "value": "42" } ] }, "description": "### GET **/currencies**\n\n**Returns** a paginated list of supported cryptocurrencies by making a GET request to the path `/compliance/api/v3/currencies` on the base URL.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n> *Results paginated with 100 elements per page\n\n### Request\n\n##### QUERY PARAMETERS\n\n> **page** `number` Specific page requested for the paginated results\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n>\n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "GET currencies: success", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/currencies?page=42", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "currencies" ], "query": [ { "key": "page", "value": "42" } ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Tue, 04 Jul 2023 07:11:17 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "ETag", "value": "W/\"1ffd1d2f24f891c8073d5d77182c4e17\"" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Cache-Control", "value": "no-cache, no-store" }, { "key": "X-Request-Id", "value": "a39d705a-d35a-49eb-832d-13bf071bebcb" }, { "key": "X-Runtime", "value": "0.117811" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Content-Security-Policy", "value": "frame-ancestors 'self' https://complysci.com;" }, { "key": "Expires", "value": "-1" }, { "key": "Pragma", "value": "no-cache" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7e158da11a448e51-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"currencies\": [\n {\n \"reference\": \"council-of-apes\",\n \"name\": \"Council of Apes\",\n \"symbol\": \"COAPE\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x55006895f398d7713d69081144b19d8c9022b582\"\n }\n ]\n },\n {\n \"reference\": \"counosx\",\n \"name\": \"CounosX\",\n \"symbol\": \"CCXX\",\n \"blockchains\": []\n },\n {\n \"reference\": \"counterparty\",\n \"name\": \"Counterparty\",\n \"symbol\": \"XCP\",\n \"blockchains\": []\n },\n {\n \"reference\": \"county-metaverse\",\n \"name\": \"County Metaverse\",\n \"symbol\": \"COUNTY\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x1967cabd079fcdd363a044f1444bf00a94558a2f\"\n }\n ]\n },\n {\n \"reference\": \"couponbay\",\n \"name\": \"CouponBay\",\n \"symbol\": \"CUP\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x3209d14ff61766359e64aceff91877cec2ad968e\"\n }\n ]\n },\n {\n \"reference\": \"cousin-doge\",\n \"name\": \"Cousin Doge\",\n \"symbol\": \"COUSINDOGE\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0xda8df4506de8e110cc216937945963bab380a615\"\n }\n ]\n },\n {\n \"reference\": \"coution-live\",\n \"name\": \"COUTION LIVE\",\n \"symbol\": \"CTL\",\n \"blockchains\": [\n {\n \"platform\": \"tron\",\n \"contract\": \"tdaogsywy3wwuyktk8z1fxsa8nxnmdfk9a\"\n }\n ]\n },\n {\n \"reference\": \"covalent\",\n \"name\": \"Covalent\",\n \"symbol\": \"CQT\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0xd417144312dbf50465b1c641d016962017ef6240\"\n }\n ]\n },\n {\n \"reference\": \"covalent-cova\",\n \"name\": \"Cova Unity\",\n \"symbol\": \"COVA\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0xb37a769b37224449d92aac57de379e1267cd3b00\"\n }\n ]\n },\n {\n \"reference\": \"covenant-child\",\n \"name\": \"Covenant\",\n \"symbol\": \"COVN\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x19ac2659599fd01c853de846919544276ad26f50\"\n }\n ]\n },\n {\n \"reference\": \"covercompared\",\n \"name\": \"CoverCompared\",\n \"symbol\": \"CVR\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x3c03b4ec9477809072ff9cc9292c9b25d4a8e6c6\"\n }\n ]\n },\n {\n \"reference\": \"cover-protocol\",\n \"name\": \"Cover Protocol\",\n \"symbol\": \"COVER\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x4688a8b1f292fdab17e9a90c8bc379dc1dbd8713\"\n },\n {\n \"platform\": \"fantom\",\n \"contract\": \"0xb01e8419d842beebf1b70a7b5f7142abbaf7159d\"\n }\n ]\n },\n {\n \"reference\": \"covesting\",\n \"name\": \"Covesting\",\n \"symbol\": \"COV\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0xada86b1b313d1d5267e3fc0bb303f0a2b66d0ea7\"\n },\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x0f237db17aa4e6de062e6f052bd9c805789b01c3\"\n }\n ]\n },\n {\n \"reference\": \"covey\",\n \"name\": \"Covey\",\n \"symbol\": \"$CVY\",\n \"blockchains\": []\n },\n {\n \"reference\": \"covicoin\",\n \"name\": \"CoviCoin\",\n \"symbol\": \"CVC\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0xc6f0a9b75fa529dcc0f90459e30684e7ed9a9ea6\"\n }\n ]\n },\n {\n \"reference\": \"covid-19-recovery-token\",\n \"name\": \"COVID-19 Recovery Token\",\n \"symbol\": \"COVDR\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0xdb8afb917a2d4848ee5b3bed7f6c0bab0555427d\"\n }\n ]\n },\n {\n \"reference\": \"covid-doge\",\n \"name\": \"Covid Doge\",\n \"symbol\": \"COVID DOGE\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0xae1f20ca661ec552c0664a73ad5e5963824f92e1\"\n }\n ]\n },\n {\n \"reference\": \"covid-slice\",\n \"name\": \"Covid Slice\",\n \"symbol\": \"COVID19\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x8d5eb659959c68bd78a4f6f2ecccbbcb8c2cfb79\"\n }\n ]\n },\n {\n \"reference\": \"covid-token\",\n \"name\": \"Covid Token\",\n \"symbol\": \"COVIDTOKEN\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x23c28e9346c82228fb2b62b20b6fe5d75989f5b2\"\n }\n ]\n },\n {\n \"reference\": \"cow--4\",\n \"name\": \"COWRY\",\n \"symbol\": \"COW\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0xb149dd64ea4b173e5fc9ecf77bd380418695185d\"\n }\n ]\n },\n {\n \"reference\": \"cowboy-snake\",\n \"name\": \"Cowboy Snake\",\n \"symbol\": \"COWS\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x33b48893b8f119fb45f431b36f830a9584804201\"\n }\n ]\n },\n {\n \"reference\": \"cow-inu\",\n \"name\": \"Cow Inu\",\n \"symbol\": \"CI\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0xceafc372af7fddccbfd28f10329710e58bb2f970\"\n }\n ]\n },\n {\n \"reference\": \"cow-protocol\",\n \"name\": \"CoW Protocol\",\n \"symbol\": \"COW\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0xdef1ca1fb7fbcdc777520aa7f396b4e015f497ab\"\n },\n {\n \"platform\": \"xdai\",\n \"contract\": \"0x177127622c4a00f3d409b75571e12cb3c8973d3c\"\n }\n ]\n },\n {\n \"reference\": \"cowrie\",\n \"name\": \"Cowrie\",\n \"symbol\": \"COWRIE\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0xde51d1599339809cafb8194189ce67d5bdca9e9e\"\n }\n ]\n },\n {\n \"reference\": \"cowry\",\n \"name\": \"COWRY\",\n \"symbol\": \"COW\",\n \"blockchains\": []\n },\n {\n \"reference\": \"coxswap\",\n \"name\": \"Coxswap\",\n \"symbol\": \"COX\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x17fea92ca2e7570d07b63ecd6b698e01386555a4\"\n }\n ]\n },\n {\n \"reference\": \"coxswap-2\",\n \"name\": \"Coxswap\",\n \"symbol\": \"COX\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x2266cfa689da2186f307f2dd8beafa12a4ad9709\"\n }\n ]\n },\n {\n \"reference\": \"cpc--4\",\n \"name\": \"CryptoPerformance Coin\",\n \"symbol\": \"CPC\",\n \"blockchains\": []\n },\n {\n \"reference\": \"cpchain\",\n \"name\": \"CPChain\",\n \"symbol\": \"CPC\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0xfae4ee59cdd86e3be9e8b90b53aa866327d7c090\"\n },\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"cpc-fed\"\n }\n ]\n },\n {\n \"reference\": \"cplay-network\",\n \"name\": \"CPLAY Network\",\n \"symbol\": \"CPLAY\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x740e08e52542df19d7f2f9cbf3924ac0bfe53071\"\n }\n ]\n },\n {\n \"reference\": \"cpos-cloud-payment\",\n \"name\": \"CPOS Cloud Payment\",\n \"symbol\": \"CPOS\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0xc0dc5adfae1dada9111f376810d772cabd9b6f13\"\n }\n ]\n },\n {\n \"reference\": \"cprop\",\n \"name\": \"CPROP\",\n \"symbol\": \"CPROP\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x0fb843d37aa2a99db8d81af9fe2f0a6485c7c002\"\n }\n ]\n },\n {\n \"reference\": \"cpuchain\",\n \"name\": \"CPUchain\",\n \"symbol\": \"CPU\",\n \"blockchains\": []\n },\n {\n \"reference\": \"cpucoin\",\n \"name\": \"CPUcoin\",\n \"symbol\": \"CPU\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x6d52dfefb16bb9cdc78bfca09061e44574886626\"\n }\n ]\n },\n {\n \"reference\": \"crabada\",\n \"name\": \"Crabada\",\n \"symbol\": \"CRA\",\n \"blockchains\": [\n {\n \"platform\": \"avalanche\",\n \"contract\": \"0xa32608e873f9ddef944b24798db69d80bbb4d1ed\"\n }\n ]\n },\n {\n \"reference\": \"crabada-amulet\",\n \"name\": \"Crabada Amulet\",\n \"symbol\": \"CRAM\",\n \"blockchains\": [\n {\n \"platform\": \"avalanche\",\n \"contract\": \"0xd2cd7a59aa8f8fdc68d01b1e8a95747730b927d3\"\n }\n ]\n },\n {\n \"reference\": \"crab-market\",\n \"name\": \"Crab Market\",\n \"symbol\": \"CRAB\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x24bcec1afda63e622a97f17cff9a61ffcfd9b735\"\n }\n ]\n },\n {\n \"reference\": \"crab-rave-token\",\n \"name\": \"Crab Rave Token\",\n \"symbol\": \"CRABS\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x2c9715d6d95443c3bdf29e473ad168ff6fa6627d\"\n }\n ]\n },\n {\n \"reference\": \"crabstrike\",\n \"name\": \"CrabStrike\",\n \"symbol\": \"CST\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x3993453b9587e06a0e925727fd844d2d2babd39f\"\n }\n ]\n },\n {\n \"reference\": \"cracle\",\n \"name\": \"Cracle\",\n \"symbol\": \"CRA\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x0fc0b3f6f5c769c138088266ac21760ab33f76ca\"\n }\n ]\n },\n {\n \"reference\": \"cradle-of-sins\",\n \"name\": \"Cradle of Sins\",\n \"symbol\": \"COS\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x4d9f39f7cb7c7444335077223ceef33dbb58096f\"\n },\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x4d9f39f7cb7c7444335077223ceef33dbb58096f\"\n }\n ]\n },\n {\n \"reference\": \"crafting-finance\",\n \"name\": \"Crafting Finance\",\n \"symbol\": \"CRF\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x508df5aa4746be37b5b6a69684dfd8bdc322219d\"\n }\n ]\n },\n {\n \"reference\": \"craft-network\",\n \"name\": \"Craft network\",\n \"symbol\": \"CFT\",\n \"blockchains\": [\n {\n \"platform\": \"icon\",\n \"contract\": \"cx2e6d0fc0eca04965d06038c8406093337f085fcf\"\n }\n ]\n },\n {\n \"reference\": \"cramer-coin\",\n \"name\": \"Cramer Coin\",\n \"symbol\": \"CRAMER\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x64df3aab3b21cc275bb76c4a581cf8b726478ee0\"\n },\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x64df3aab3b21cc275bb76c4a581cf8b726478ee0\"\n }\n ]\n },\n {\n \"reference\": \"crane-miners\",\n \"name\": \"TheCraneMiners\",\n \"symbol\": \"CRANE\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x8c85a0e86f37ca231463ead62a40350d7bf7cef0\"\n },\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x8c85a0e86f37ca231463ead62a40350d7bf7cef0\"\n }\n ]\n },\n {\n \"reference\": \"cranx-chain\",\n \"name\": \"GranX Chain\",\n \"symbol\": \"GRANX\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0xbd668ec47e10d3bf23b1d68139e545162a0dfcfa\"\n }\n ]\n },\n {\n \"reference\": \"cratos\",\n \"name\": \"Cratos\",\n \"symbol\": \"CRTS\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x678e840c640f619e17848045d23072844224dd37\"\n },\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x678e840c640f619e17848045d23072844224dd37\"\n }\n ]\n },\n {\n \"reference\": \"crave\",\n \"name\": \"Crave\",\n \"symbol\": \"CRAVE\",\n \"blockchains\": []\n },\n {\n \"reference\": \"crazy-bunny\",\n \"name\": \"Crazy Bunny\",\n \"symbol\": \"CRAZYBUNNY\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x48ed9372169ef0bf2b901bbe45e52b6a6b8f1ecc\"\n }\n ]\n },\n {\n \"reference\": \"crazy-bunny-equity-token\",\n \"name\": \"Crazy Bunny Equity Token\",\n \"symbol\": \"CBUNNY\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0xaec23008b1098e39c0f8de90bf7431d185efe8b3\"\n }\n ]\n },\n {\n \"reference\": \"crazy-internet-coin\",\n \"name\": \"Crazy Internet Coin\",\n \"symbol\": \"CIC\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0xad640689e6950b7453729a4686edb3fdfd754616\"\n }\n ]\n },\n {\n \"reference\": \"crazyminer\",\n \"name\": \"CrazyMiner\",\n \"symbol\": \"PWR\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0xd52efe1039d706722b3d696e74ad4095dc3d3860\"\n }\n ]\n },\n {\n \"reference\": \"crazy-rich-coin\",\n \"name\": \"Crazy Rich Coin\",\n \"symbol\": \"CRC\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0xc23fa49b581fff9a3ea7e49d0504b06d07c6ff2a\"\n }\n ]\n },\n {\n \"reference\": \"crazysharo\",\n \"name\": \"CrazySharo\",\n \"symbol\": \"SHARO\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x7f3daf301c629bfa243cbba6654370d929379657\"\n }\n ]\n },\n {\n \"reference\": \"crazy-tiger\",\n \"name\": \"Crazy Tiger\",\n \"symbol\": \"CRAZYTIGER\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0xedd52d44de950ccc3b2e6abdf0da8e99bb0ec480\"\n }\n ]\n },\n {\n \"reference\": \"crazytime\",\n \"name\": \"CrazyTime\",\n \"symbol\": \"CRAZYTIME\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x94241428e0e36df628e0c2485bc0e158a5da3362\"\n }\n ]\n },\n {\n \"reference\": \"crazy-treasure-token\",\n \"name\": \"Crazy Treasure Token\",\n \"symbol\": \"CTT\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0xf56783b3a4fa5f09efca962bd4bab1f5fadd9ab9\"\n }\n ]\n },\n {\n \"reference\": \"crb-coin\",\n \"name\": \"CRB Coin\",\n \"symbol\": \"CRB\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x518afa06aeca8dd0946b89a565e51f5a91d81176\"\n },\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x2fd8bc03d9e827f77fac20b5130ee98b7f80149d\"\n }\n ]\n },\n {\n \"reference\": \"crd-network\",\n \"name\": \"CRD Network\",\n \"symbol\": \"CRD\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0xcaaa93712bdac37f736c323c93d4d5fdefcc31cc\"\n }\n ]\n },\n {\n \"reference\": \"crdt\",\n \"name\": \"CRDT\",\n \"symbol\": \"CRDT\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0xdaab5e695bb0e8ce8384ee56ba38fa8290618e52\"\n }\n ]\n },\n {\n \"reference\": \"cre8r-dao\",\n \"name\": \"CRE8R DAO\",\n \"symbol\": \"CRE8R\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0xaa61d5dec73971cd4a026ef2820bb87b4a4ed8d6\"\n },\n {\n \"platform\": \"fantom\",\n \"contract\": \"0x2ad402655243203fcfa7dcb62f8a08cc2ba88ae0\"\n }\n ]\n },\n {\n \"reference\": \"cream\",\n \"name\": \"Creamcoin\",\n \"symbol\": \"CRM\",\n \"blockchains\": []\n },\n {\n \"reference\": \"cream-2\",\n \"name\": \"Cream\",\n \"symbol\": \"CREAM\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x2ba592f78db6436527729929aaf6c908497cb200\"\n },\n {\n \"platform\": \"sora\",\n \"contract\": \"0x00521ad5caeadc2e3e04be4d4ebb0b7c8c9b71ba657c2362a3953490ebc81410\"\n },\n {\n \"platform\": \"arbitrum-one\",\n \"contract\": \"0xf4d48ce3ee1ac3651998971541badbb9a14d7234\"\n },\n {\n \"platform\": \"fantom\",\n \"contract\": \"0x657a1861c15a3ded9af0b6799a195a249ebdcbc6\"\n },\n {\n \"platform\": \"energi\",\n \"contract\": \"0x1cca61099dcebe517f8cac58f27218e7aff2d3bf\"\n },\n {\n \"platform\": \"solana\",\n \"contract\": \"9iwfhhe7bjkno4eb1wx3p4uyjjen9roglt4bvmdzzoin\"\n },\n {\n \"platform\": \"solana\",\n \"contract\": \"5fu5uugbjpuvdbveb3a1jtnirl8rxtiyesmwvkjtunqv\"\n },\n {\n \"platform\": \"near-protocol\",\n \"contract\": \"2ba592f78db6436527729929aaf6c908497cb200.factory.bridge.near\"\n }\n ]\n },\n {\n \"reference\": \"creama\",\n \"name\": \"Creama\",\n \"symbol\": \"CREAMA\",\n \"blockchains\": [\n {\n \"platform\": \"avalanche\",\n \"contract\": \"0x3947146f331b9ef6448064c6311cdd24d9467a1a\"\n }\n ]\n },\n {\n \"reference\": \"cream-eth2\",\n \"name\": \"Cream ETH 2\",\n \"symbol\": \"CRETH2\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0xcbc1065255cbc3ab41a6868c22d1f1c573ab89fd\"\n },\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x49d72e3973900a195a155a46441f0c08179fdb64\"\n }\n ]\n },\n {\n \"reference\": \"creamlands\",\n \"name\": \"Creamlands\",\n \"symbol\": \"CREAM\",\n \"blockchains\": [\n {\n \"platform\": \"hedera-hashgraph\",\n \"contract\": \"0.0.926385\"\n }\n ]\n },\n {\n \"reference\": \"creampye\",\n \"name\": \"Creampye [OLD]\",\n \"symbol\": \"PYE\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0xaad87f47cdea777faf87e7602e91e3a6afbe4d57\"\n }\n ]\n },\n {\n \"reference\": \"cream-shares\",\n \"name\": \"IceCream Shares\",\n \"symbol\": \"CSHARE\",\n \"blockchains\": [\n {\n \"platform\": \"avalanche\",\n \"contract\": \"0x155f794b56353533e0afbf76e1b1fc57dfad5bd7\"\n },\n {\n \"platform\": \"avalanche\",\n \"contract\": \"0x155f794b56353533e0afbf76e1b1fc57dfad5bd7\"\n }\n ]\n },\n {\n \"reference\": \"cream-wormhole\",\n \"name\": \"Cream (Wormhole)\",\n \"symbol\": \"CREAM\",\n \"blockchains\": [\n {\n \"platform\": \"solana\",\n \"contract\": \"hihxl2im6l6p1oqoseiixdj3phpynxvskh9a2ddqlvdh\"\n }\n ]\n },\n {\n \"reference\": \"creamy\",\n \"name\": \"Creamy\",\n \"symbol\": \"CREAMY\",\n \"blockchains\": [\n {\n \"platform\": \"solana\",\n \"contract\": \"creampddimxxj2ztcwp5wmetba4nyakcrtbeqtsktqhe\"\n }\n ]\n },\n {\n \"reference\": \"create\",\n \"name\": \"Create\",\n \"symbol\": \"CT\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0xa85c461c66038ffc8433e2a961339b7f36656e16\"\n },\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0xa85c461c66038ffc8433e2a961339b7f36656e16\"\n }\n ]\n },\n {\n \"reference\": \"creaticles\",\n \"name\": \"Creaticles\",\n \"symbol\": \"CRE8\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0xc36b4311b21fc0c2ead46f1ea6ce97c9c4d98d3d\"\n }\n ]\n },\n {\n \"reference\": \"creativecoin\",\n \"name\": \"CREA\",\n \"symbol\": \"CREA\",\n \"blockchains\": []\n },\n {\n \"reference\": \"creator-platform\",\n \"name\": \"Creator Platform\",\n \"symbol\": \"CTR\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x923b83c26b3809d960ff80332ed00aa46d7ed375\"\n },\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0xd6cce248263ea1e2b8cb765178c944fc16ed0727\"\n }\n ]\n },\n {\n \"reference\": \"creator-protocol\",\n \"name\": \"Creator Protocol\",\n \"symbol\": \"CRE\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0xc2c14affaddee38d7375c400d144251a87d2c34a\"\n }\n ]\n },\n {\n \"reference\": \"creature_hunters\",\n \"name\": \"Creature Hunters\",\n \"symbol\": \"CHTS\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x1cdb9b4465f4e65b93d0ad802122c7c9279975c9\"\n }\n ]\n },\n {\n \"reference\": \"creda\",\n \"name\": \"CreDA\",\n \"symbol\": \"CREDA\",\n \"blockchains\": [\n {\n \"platform\": \"arbitrum-one\",\n \"contract\": \"0xc136e6b376a9946b156db1ed3a34b08afdaed76d\"\n }\n ]\n },\n {\n \"reference\": \"cred-coin-pay\",\n \"name\": \"CRED COIN PAY\",\n \"symbol\": \"CRED\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0xfc76ba9157ee5d079de8c1e969ee54096aaa6c9c\"\n }\n ]\n },\n {\n \"reference\": \"credefi\",\n \"name\": \"Credefi\",\n \"symbol\": \"CREDI\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0xae6e307c3fe9e922e5674dbd7f830ed49c014c6b\"\n },\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x2235e79086dd23135119366da45851c741874e5b\"\n }\n ]\n },\n {\n \"reference\": \"credefi-wormhole\",\n \"name\": \"Credefi (Wormhole)\",\n \"symbol\": \"CREDI\",\n \"blockchains\": [\n {\n \"platform\": \"terra\",\n \"contract\": \"terra18xyl0ees6ueyhkhn0mjdtrm82e393ult2dazl3\"\n }\n ]\n },\n {\n \"reference\": \"credi--1\",\n \"name\": \"CREDI\",\n \"symbol\": \"CREDI\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0xae6e307c3fe9e922e5674dbd7f830ed49c014c6b\"\n },\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0xae6e307c3fe9e922e5674dbd7f830ed49c014c6b\"\n }\n ]\n },\n {\n \"reference\": \"credit\",\n \"name\": \"TerraCredit\",\n \"symbol\": \"CREDIT\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x9d440a8dc5ae7dd4f6b406b78340856838c3e5da\"\n },\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0xc9308bcf5fa46d728422753d2d5afbc5cdb66b03\"\n }\n ]\n },\n {\n \"reference\": \"credit-2\",\n \"name\": \"PROXI DeFi\",\n \"symbol\": \"CREDIT\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0xc4cb5793bd58bad06bf51fb37717b86b02cbe8a4\"\n }\n ]\n },\n {\n \"reference\": \"creditcoin-2\",\n \"name\": \"Creditcoin\",\n \"symbol\": \"CTC\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0xa3ee21c306a700e682abcdfe9baa6a08f3820419\"\n }\n ]\n },\n {\n \"reference\": \"credit-printer\",\n \"name\": \"Credit Printer\",\n \"symbol\": \"CREDITP\",\n \"blockchains\": [\n {\n \"platform\": \"fantom\",\n \"contract\": \"0x5e5aabc95380b38c014fdc5e602c5183177fcca4\"\n }\n ]\n },\n {\n \"reference\": \"credits\",\n \"name\": \"CREDITS\",\n \"symbol\": \"CS\",\n \"blockchains\": []\n },\n {\n \"reference\": \"credit-suisse-inu\",\n \"name\": \"Credit Suisse Inu\",\n \"symbol\": \"CSI\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x74bff2018687b8a1ff7132e13cd4fdc763725bcf\"\n },\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x74bff2018687b8a1ff7132e13cd4fdc763725bcf\"\n }\n ]\n },\n {\n \"reference\": \"creditum\",\n \"name\": \"Creditum\",\n \"symbol\": \"CREDIT\",\n \"blockchains\": [\n {\n \"platform\": \"fantom\",\n \"contract\": \"0x77128dfdd0ac859b33f44050c6fa272f34872b5e\"\n }\n ]\n },\n {\n \"reference\": \"credmark\",\n \"name\": \"Credmark\",\n \"symbol\": \"CMK\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x68cfb82eacb9f198d508b514d898a403c449533e\"\n }\n ]\n },\n {\n \"reference\": \"creds\",\n \"name\": \"Creds\",\n \"symbol\": \"CREDS\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0xc13f4f0f865bac08f62654b57e38669ebc4747a3\"\n }\n ]\n },\n {\n \"reference\": \"crema-finance\",\n \"name\": \"Crema Finance\",\n \"symbol\": \"CRM\",\n \"blockchains\": []\n },\n {\n \"reference\": \"cremation-coin\",\n \"name\": \"Cremation Coin\",\n \"symbol\": \"CREMAT\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0xb8501a9a9aaae239a2490f44e00b284baa0b131a\"\n },\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x8b9f7e9586633ca4abffb1f746da8daed7849cb2\"\n }\n ]\n },\n {\n \"reference\": \"creo-engine\",\n \"name\": \"Creo Engine\",\n \"symbol\": \"CREO\",\n \"blockchains\": [\n {\n \"platform\": \"binance-smart-chain\",\n \"contract\": \"0x9521728bf66a867bc65a93ece4a543d817871eb7\"\n }\n ]\n },\n {\n \"reference\": \"crescent-network\",\n \"name\": \"Crescent Network\",\n \"symbol\": \"CRE\",\n \"blockchains\": [\n {\n \"platform\": \"cosmos\",\n \"contract\": \"ucre\"\n }\n ]\n },\n {\n \"reference\": \"crescentswap-moonlight\",\n \"name\": \"Crescentswap Moonlight\",\n \"symbol\": \"MNLT\",\n \"blockchains\": [\n {\n \"platform\": \"arbitrum-one\",\n \"contract\": \"0x0a1694716de67c98f61942b2cab7df7fe659c87a\"\n }\n ]\n },\n {\n \"reference\": \"crespo\",\n \"name\": \"Crespo\",\n \"symbol\": \"CSO\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x5ecb025e51415dba9fd272c551076357cf4069f5\"\n }\n ]\n },\n {\n \"reference\": \"creta-world\",\n \"name\": \"Creta World\",\n \"symbol\": \"CRETA\",\n \"blockchains\": [\n {\n \"platform\": \"polygon-pos\",\n \"contract\": \"0x202655af326de310491cb54f120e02ee0da92b55\"\n }\n ]\n },\n {\n \"reference\": \"creth2--1\",\n \"name\": \"Cream ETH Token\",\n \"symbol\": \"CRETH2\",\n \"blockchains\": [\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x49d72e3973900a195a155a46441f0c08179fdb64\"\n },\n {\n \"platform\": \"ethereum\",\n \"contract\": \"0x49d72e3973900a195a155a46441f0c08179fdb64\"\n }\n ]\n },\n {\n \"reference\": \"crevacoin\",\n \"name\": \"Crevacoin\",\n \"symbol\": \"CREVA\",\n \"blockchains\": []\n },\n {\n \"reference\": \"crex-token\",\n \"name\": \"Crex Token\",\n \"symbol\": \"CREX\",\n \"blockchains\": []\n }\n ]\n },\n \"meta\": {\n \"current_page\": 42,\n \"total_entries\": 20048,\n \"total_pages\": 201\n }\n}" }, { "name": "GET currencies: invalid token", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/currencies?page=42", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "currencies" ], "query": [ { "key": "page", "value": "42" } ] } }, "status": "Unauthorized", "code": 401, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Tue, 27 Jun 2023 06:18:17 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Cache-Control", "value": "no-store" }, { "key": "Cache-Control", "value": "no-cache, no-store" }, { "key": "WWW-Authenticate", "value": "Bearer realm=\"Doorkeeper\", error=\"invalid_token\", error_description=\"The access token is invalid\"" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Request-Id", "value": "23104c54-4185-4e34-93b6-f57a5a5a3cfa" }, { "key": "X-Runtime", "value": "0.013134" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Expires", "value": "-1" }, { "key": "Pragma", "value": "no-cache" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Set-Cookie", "value": "_cfuvid=7H9PZrCAZ3HPw6XpTsIlCIeLN5JFDp5XGNS55L.rsQI-1687846697227-0-604800000; path=/; domain=.zenledger.io; HttpOnly; Secure; SameSite=None" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7ddb925f6f1b9e77-KTM" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-AUTHGET-AA4\",\n \"message\": \"The access token is invalid\"\n }\n}" } ] } ], "description": "The currencies resource in the Compliance API provides information about retrieving the list of supported currencies. By making a **GET** request to the `/compliance/api/v3/currencies` endpoint, you can retrieve the details of available currencies. The request requires authentication using a bearer token.\n\nPlease note that the response example for this endpoint will contain the API version and a data object containing an array of currencies. Each currency object includes a reference, code, and name.\n\nUse this information to integrate and work with the supported currencies of the Compliance API." }, { "name": "Supported Exchanges and Wallets", "item": [ { "name": "GET sources", "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/sources", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "sources" ] }, "description": "### GET **/sources**\n\n**Returns** a paginated list of supported exchanges and wallets by making a GET request to the path `/compliance/api/v3/sources` on the base URL.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n> *Results paginated with 100 elements per page\n\n### Request\n\n##### QUERY PARAMETERS\n\n> **page** `number` Specific page requested for the paginated results\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n>\n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "GET sources: success", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/sources", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "sources" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Tue, 04 Jul 2023 07:11:17 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "ETag", "value": "W/\"1ffd1d2f24f891c8073d5d77182c4e17\"" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Cache-Control", "value": "no-cache, no-store" }, { "key": "X-Request-Id", "value": "a39d705a-d35a-49eb-832d-13bf071bebcb" }, { "key": "X-Runtime", "value": "0.117811" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Content-Security-Policy", "value": "frame-ancestors 'self' https://complysci.com;" }, { "key": "Expires", "value": "-1" }, { "key": "Pragma", "value": "no-cache" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7e158da11a448e51-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"sources\": [\n {\n \"reference\": \"coinbase\",\n \"name\": \"Coinbase\",\n \"type\": \"exchange\",\n \"api\": true,\n \"csv\": false,\n \"oauth\": true,\n \"address\": false,\n \"pass_phrase\": false,\n \"default_coin\": null,\n \"fiat_types_api\": true,\n \"fiat_types_csv\": true,\n \"api_balances\": true,\n \"transaction_addresses\": true\n },\n {\n \"reference\": \"bittrex\",\n \"name\": \"Bittrex\",\n \"type\": \"exchange\",\n \"api\": false,\n \"csv\": true,\n \"oauth\": false,\n \"address\": false,\n \"pass_phrase\": false,\n \"default_coin\": null,\n \"fiat_types_api\": false,\n \"fiat_types_csv\": false,\n \"api_balances\": false,\n \"transaction_addresses\": false\n },\n {\n \"reference\": \"binance\",\n \"name\": \"Binance\",\n \"type\": \"exchange\",\n \"api\": true,\n \"csv\": true,\n \"oauth\": false,\n \"address\": false,\n \"pass_phrase\": false,\n \"default_coin\": null,\n \"fiat_types_api\": false,\n \"fiat_types_csv\": true,\n \"api_balances\": false,\n \"transaction_addresses\": false\n },\n {\n \"reference\": \"gemini\",\n \"name\": \"Gemini\",\n \"type\": \"exchange\",\n \"api\": true,\n \"csv\": false,\n \"oauth\": false,\n \"address\": false,\n \"pass_phrase\": false,\n \"default_coin\": null,\n \"fiat_types_api\": false,\n \"fiat_types_csv\": false,\n \"api_balances\": true,\n \"transaction_addresses\": false\n },\n {\n \"reference\": \"bitstamp\",\n \"name\": \"Bitstamp\",\n \"type\": \"exchange\",\n \"api\": true,\n \"csv\": false,\n \"oauth\": false,\n \"address\": false,\n \"pass_phrase\": false,\n \"default_coin\": null,\n \"fiat_types_api\": false,\n \"fiat_types_csv\": false,\n \"api_balances\": false,\n \"transaction_addresses\": false\n },\n {\n \"reference\": \"coinbase-pro\",\n \"name\": \"Coinbase Pro\",\n \"type\": \"exchange\",\n \"api\": true,\n \"csv\": true,\n \"oauth\": false,\n \"address\": false,\n \"pass_phrase\": true,\n \"default_coin\": null,\n \"fiat_types_api\": false,\n \"fiat_types_csv\": false,\n \"api_balances\": true,\n \"transaction_addresses\": false\n },\n {\n \"reference\": \"kraken\",\n \"name\": \"Kraken\",\n \"type\": \"exchange\",\n \"api\": true,\n \"csv\": true,\n \"oauth\": false,\n \"address\": false,\n \"pass_phrase\": false,\n \"default_coin\": null,\n \"fiat_types_api\": true,\n \"fiat_types_csv\": true,\n \"api_balances\": true,\n \"transaction_addresses\": false\n },\n {\n \"reference\": \"kucoin\",\n \"name\": \"Kucoin\",\n \"type\": \"exchange\",\n \"api\": true,\n \"csv\": true,\n \"oauth\": false,\n \"address\": false,\n \"pass_phrase\": true,\n \"default_coin\": null,\n \"fiat_types_api\": false,\n \"fiat_types_csv\": false,\n \"api_balances\": false,\n \"transaction_addresses\": false\n },\n {\n \"reference\": \"bitfinex\",\n \"name\": \"Bitfinex\",\n \"type\": \"exchange\",\n \"api\": true,\n \"csv\": false,\n \"oauth\": false,\n \"address\": false,\n \"pass_phrase\": false,\n \"default_coin\": null,\n \"fiat_types_api\": false,\n \"fiat_types_csv\": false,\n \"api_balances\": false,\n \"transaction_addresses\": false\n },\n {\n \"reference\": \"hitbtc\",\n \"name\": \"Hitbtc\",\n \"type\": \"exchange\",\n \"api\": true,\n \"csv\": false,\n \"oauth\": false,\n \"address\": false,\n \"pass_phrase\": false,\n \"default_coin\": null,\n \"fiat_types_api\": false,\n \"fiat_types_csv\": false,\n \"api_balances\": false,\n \"transaction_addresses\": false\n },\n {\n \"reference\": \"btc-wallet\",\n \"name\": \"BTC Wallet\",\n \"type\": \"wallet\",\n \"api\": false,\n \"csv\": false,\n \"oauth\": false,\n \"address\": true,\n \"pass_phrase\": false,\n \"default_coin\": null,\n \"fiat_types_api\": false,\n \"fiat_types_csv\": false,\n \"api_balances\": true,\n \"transaction_addresses\": true\n },\n {\n \"reference\": \"eth-wallet\",\n \"name\": \"ETH Wallet\",\n \"type\": \"wallet\",\n \"api\": false,\n \"csv\": false,\n \"oauth\": false,\n \"address\": true,\n \"pass_phrase\": false,\n \"default_coin\": null,\n \"fiat_types_api\": false,\n \"fiat_types_csv\": false,\n \"api_balances\": true,\n \"transaction_addresses\": true\n },\n {\n \"reference\": \"ltc-wallet\",\n \"name\": \"LTC Wallet\",\n \"type\": \"wallet\",\n \"api\": false,\n \"csv\": false,\n \"oauth\": false,\n \"address\": true,\n \"pass_phrase\": false,\n \"default_coin\": null,\n \"fiat_types_api\": false,\n \"fiat_types_csv\": false,\n \"api_balances\": false,\n \"transaction_addresses\": true\n },\n {\n \"reference\": \"doge-wallet\",\n \"name\": \"DOGE Wallet\",\n \"type\": \"wallet\",\n \"api\": false,\n \"csv\": true,\n \"oauth\": false,\n \"address\": false,\n \"pass_phrase\": false,\n \"default_coin\": null,\n \"fiat_types_api\": false,\n \"fiat_types_csv\": false,\n \"api_balances\": true,\n \"transaction_addresses\": true\n },\n {\n \"reference\": \"dash-wallet\",\n \"name\": \"DASH Wallet\",\n \"type\": \"wallet\",\n \"api\": false,\n \"csv\": true,\n \"oauth\": false,\n \"address\": false,\n \"pass_phrase\": false,\n \"default_coin\": null,\n \"fiat_types_api\": false,\n \"fiat_types_csv\": false,\n \"api_balances\": false,\n \"transaction_addresses\": true\n },\n {\n \"reference\": \"jaxx\",\n \"name\": \"Jaxx\",\n \"type\": \"wallet\",\n \"api\": false,\n \"csv\": false,\n \"oauth\": false,\n \"address\": true,\n \"pass_phrase\": false,\n \"default_coin\": null,\n \"fiat_types_api\": false,\n \"fiat_types_csv\": false,\n \"api_balances\": true,\n \"transaction_addresses\": true\n },\n {\n \"reference\": \"trezor\",\n \"name\": \"Trezor\",\n \"type\": \"wallet\",\n \"api\": false,\n \"csv\": true,\n \"oauth\": false,\n \"address\": false,\n \"pass_phrase\": false,\n \"default_coin\": null,\n \"fiat_types_api\": false,\n \"fiat_types_csv\": false,\n \"api_balances\": true,\n \"transaction_addresses\": true\n },\n {\n \"reference\": \"ledger-nano\",\n \"name\": \"Ledger Nano\",\n \"type\": \"wallet\",\n \"api\": false,\n \"csv\": false,\n \"oauth\": false,\n \"address\": true,\n \"pass_phrase\": false,\n \"default_coin\": null,\n \"fiat_types_api\": false,\n \"fiat_types_csv\": false,\n \"api_balances\": true,\n \"transaction_addresses\": true\n },\n {\n \"reference\": \"exodus\",\n \"name\": \"Exodus\",\n \"type\": \"wallet\",\n \"api\": false,\n \"csv\": false,\n \"oauth\": false,\n \"address\": true,\n \"pass_phrase\": false,\n \"default_coin\": null,\n \"fiat_types_api\": false,\n \"fiat_types_csv\": false,\n \"api_balances\": true,\n \"transaction_addresses\": true\n },\n {\n \"reference\": \"bit-pay\",\n \"name\": \"BitPay\",\n \"type\": \"wallet\",\n \"api\": false,\n \"csv\": false,\n \"oauth\": false,\n \"address\": true,\n \"pass_phrase\": false,\n \"default_coin\": null,\n \"fiat_types_api\": false,\n \"fiat_types_csv\": false,\n \"api_balances\": true,\n \"transaction_addresses\": true\n },\n {\n \"reference\": \"electrum\",\n \"name\": \"Electrum\",\n \"type\": \"wallet\",\n \"api\": false,\n \"csv\": false,\n \"oauth\": false,\n \"address\": true,\n \"pass_phrase\": false,\n \"default_coin\": null,\n \"fiat_types_api\": false,\n \"fiat_types_csv\": false,\n \"api_balances\": true,\n \"transaction_addresses\": true\n }\n\n ]\n },\n \"meta\": {\n \"current_page\": 1,\n \"total_entries\": 21,\n \"total_pages\": 1\n }\n}" }, { "name": "GET sources: invalid token", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/sources?page=1", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "sources" ], "query": [ { "key": "page", "value": "1" } ] } }, "status": "Unauthorized", "code": 401, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Tue, 27 Jun 2023 06:18:17 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Cache-Control", "value": "no-store" }, { "key": "Cache-Control", "value": "no-cache, no-store" }, { "key": "WWW-Authenticate", "value": "Bearer realm=\"Doorkeeper\", error=\"invalid_token\", error_description=\"The access token is invalid\"" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Request-Id", "value": "23104c54-4185-4e34-93b6-f57a5a5a3cfa" }, { "key": "X-Runtime", "value": "0.013134" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Expires", "value": "-1" }, { "key": "Pragma", "value": "no-cache" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Set-Cookie", "value": "_cfuvid=7H9PZrCAZ3HPw6XpTsIlCIeLN5JFDp5XGNS55L.rsQI-1687846697227-0-604800000; path=/; domain=.zenledger.io; HttpOnly; Secure; SameSite=None" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7ddb925f6f1b9e77-KTM" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-AUTHGET-AA4\",\n \"message\": \"The access token is invalid\"\n }\n}" } ] } ], "description": "The sources resource in the Compliance API provides information about retrieving the list of supported exchanges and wallet providers. By making a **GET** request to the `/compliance/api/v3/sources` endpoint, you can retrieve the details of available sources. The request requires authentication using a bearer token.\n\nPlease note that the response example for this endpoint will contain the API version and a data object containing an array of sources. Each currency object includes a reference, name, type and other useful attributes.\n\nUse this information to integrate and work with the supported sources of the Compliance API." }, { "name": "Supported Chains", "item": [ { "name": "GET chains", "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{jwt_token}}", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/chains", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "chains" ] }, "description": "### GET **/**chains\n\n**Returns** a paginated list of supported blockchains by making a GET request to the path `/compliance/api/v3/chains` on the base URL.\n\nThis endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.\n\n> *Results paginated with 100 elements per page\n\n### Request\n\n##### QUERY PARAMETERS\n\n> **page** `number` Specific page requested for the paginated results\n\n##### RESPONSE `200`\n\n##### RESPONSE DATA\n\n> **api_version** `string` Version of the targeted API\n> \n> **data** `string` Wrapper for response data (See response example)" }, "response": [ { "name": "GET chains: success", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/chains", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "chains" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Tue, 04 Jul 2023 07:11:17 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "ETag", "value": "W/\"1ffd1d2f24f891c8073d5d77182c4e17\"" }, { "key": "Cache-Control", "value": "max-age=0, private, must-revalidate" }, { "key": "Cache-Control", "value": "no-cache, no-store" }, { "key": "X-Request-Id", "value": "a39d705a-d35a-49eb-832d-13bf071bebcb" }, { "key": "X-Runtime", "value": "0.117811" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Content-Security-Policy", "value": "frame-ancestors 'self' https://complysci.com;" }, { "key": "Expires", "value": "-1" }, { "key": "Pragma", "value": "no-cache" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7e158da11a448e51-KTM" }, { "key": "Content-Encoding", "value": "br" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": {\n \"chains\": [\n {\n \"name\": \"Optimism Chain\",\n \"chain_id\": 10,\n \"code\": \"op\",\n \"label\": \"Optimism Chain\"\n },\n {\n \"name\": \"Bitcoin\",\n \"chain_id\": null,\n \"code\": \"btc\",\n \"label\": \"Bitcoin (BTC)\"\n },\n {\n \"name\": \"Dogecoin\",\n \"chain_id\": 2000,\n \"code\": \"doge\",\n \"label\": \"Dogecoin (DOGE)\"\n },\n {\n \"name\": \"Polygon Network\",\n \"chain_id\": 137,\n \"code\": \"matic\",\n \"label\": \"Polygon Network (MATIC)\"\n },\n {\n \"name\": \"Avalanche C-Chain\",\n \"chain_id\": 43114,\n \"code\": \"avax\",\n \"label\": \"Avalanche C-Chain (AVAX)\"\n },\n {\n \"name\": \"Binance Coin Main-Net / BEP-2\",\n \"chain_id\": null,\n \"code\": \"bnb\",\n \"label\": \"Binance Coin (BNB) Main-Net / BEP-2\"\n },\n {\n \"name\": \"Ethereum - (ERC-20, ERC-721, ERC-1155)\",\n \"chain_id\": 1,\n \"code\": \"eth\",\n \"label\": \"Ethereum (ETH) - (ERC-20, ERC-721, ERC-1155)\"\n },\n {\n \"name\": \"Binance Smart Chain\",\n \"chain_id\": 56,\n \"code\": \"bsc\",\n \"label\": \"Binance Smart Chain (BSC)\"\n },\n {\n \"name\": \"Ethereum Classic\",\n \"chain_id\": 61,\n \"code\": \"etc\",\n \"label\": \"Ethereum Classic (ETC)\"\n }\n ]\n },\n \"meta\": {\n \"current_page\": 1,\n \"total_entries\": 9,\n \"total_pages\": 1\n }\n}" }, { "name": "GET chains: invalid token", "originalRequest": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{jwt_token}}", "type": "text" }, { "key": "Content-Type", "value": "application/json", "type": "text" } ], "url": { "raw": "{{base_url}}/compliance/api/v3/chains", "host": [ "{{base_url}}" ], "path": [ "compliance", "api", "v3", "chains" ] } }, "status": "Unauthorized", "code": 401, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Tue, 27 Jun 2023 06:18:17 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-XSS-Protection", "value": "0" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Download-Options", "value": "noopen" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }, { "key": "Cache-Control", "value": "no-store" }, { "key": "Cache-Control", "value": "no-cache, no-store" }, { "key": "WWW-Authenticate", "value": "Bearer realm=\"Doorkeeper\", error=\"invalid_token\", error_description=\"The access token is invalid\"" }, { "key": "Vary", "value": "Accept, Accept-Encoding, Origin" }, { "key": "X-Request-Id", "value": "23104c54-4185-4e34-93b6-f57a5a5a3cfa" }, { "key": "X-Runtime", "value": "0.013134" }, { "key": "CF-Cache-Status", "value": "DYNAMIC" }, { "key": "Expires", "value": "-1" }, { "key": "Pragma", "value": "no-cache" }, { "key": "permissions-policy", "value": "camera=(), microphone=(), geolocation=()" }, { "key": "referrer-policy", "value": "strict-origin-when-cross-origin" }, { "key": "strict-transport-security", "value": "max-age=63072000; includeSubdomains;" }, { "key": "x-content-type-options", "value": "nosniff" }, { "key": "x-frame-options", "value": "deny" }, { "key": "x-xss-protection", "value": "1; mode=block" }, { "key": "Set-Cookie", "value": "_cfuvid=7H9PZrCAZ3HPw6XpTsIlCIeLN5JFDp5XGNS55L.rsQI-1687846697227-0-604800000; path=/; domain=.zenledger.io; HttpOnly; Secure; SameSite=None" }, { "key": "Server", "value": "cloudflare" }, { "key": "CF-RAY", "value": "7ddb925f6f1b9e77-KTM" } ], "cookie": [], "body": "{\n \"api_version\": \"3.0\",\n \"data\": [],\n \"errors\": {\n \"code\": \"ZENCS-AUTHGET-AA4\",\n \"message\": \"The access token is invalid\"\n }\n}" } ] } ], "description": "The chains resource in the Compliance API provides information about retrieving the list of supported blockchains. By making a **GET** request to the `/compliance/api/v3/chains` endpoint, you can retrieve the details of available chains. The request requires authentication using a bearer token.\n\nPlease note that the response example for this endpoint will contain the API version and a data object containing an array of chains. Each currency object includes the attributes name, chain_id, code and label.\n\nUse this information to integrate and work with the supported chains of the Compliance API." }, { "name": "Error Codes", "item": [ { "name": "Glossary", "request": { "method": "ERROR CODE", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "ZENCS-AUTHGET-AA1", "description": "Forbidden action", "type": "text" }, { "key": "ZENCS-AUTHGET-AA2", "description": "Unauthorised action", "type": "text" }, { "key": "ZENCS-AUTHGET-AA3", "description": "Invalid Api key: Check your API Key or request a new one", "type": "text" }, { "key": "ZENCS-AUTHGET-AA4", "description": "Invalid OAuth token: Need to refresh the token every 30 minutes", "type": "text" }, { "key": "ZENCS-RSRCGET-AA1", "description": "Resource not found: Review your integration", "type": "text" }, { "key": "ZENCS-CMPGET-AA1", "description": "Could not retrieve companies", "type": "text" }, { "key": "ZENCS-CMPGET-AA2", "description": "Could not retrieve company: Make sure the company ID is correct", "type": "text" }, { "key": "ZENCS-CMPGET-AA3", "description": "Could not find company: Make sure the company ID is correct", "type": "text" }, { "key": "ZENCS-CMPGET-AA4", "description": "Company has no active users", "type": "text" }, { "key": "ZENCS-CMPPST-AA1", "description": "Could not add company", "type": "text" }, { "key": "ZENCS-CMPPST-AA2", "description": "Duplicated Reference for company: A company with this reference already exists", "type": "text" }, { "key": "ZENCS-CMPPST-AA3", "value": "", "description": "Maximum number of active companies limit exceeded", "type": "text" }, { "key": "ZENCS-CMPUPD-AA1", "description": "Could not update company details", "type": "text" }, { "key": "ZENCS-CMPDEL-AA1", "description": "Could not delete company", "type": "text" }, { "key": "ZENCS-PARAMGET-AA1", "description": "Provided currency not found: We do not support this currency at this moment", "type": "text" }, { "key": "ZENCS-PARAMGET-AA2", "description": "Wrong date format provided: Please provide a valid UTC date in ISO-8601 format", "type": "text" }, { "key": "ZENCS-PARAMGET-AA3", "value": "", "description": "Provided source not found: Make sure the source ID is correct", "type": "text" }, { "key": "ZENCS-PARAMGET-AA4", "value": "", "description": "Wallet address not provided: This parameter is mandatory", "type": "text" }, { "key": "ZENCS-PARAMGET-AA5", "value": "", "description": "Blockchain not provided: This parameter is mandatory", "type": "text" }, { "key": "ZENCS-PARAMGET-AA6", "value": "", "description": "Blockchain not supported: ZenLedger does not support this chain at the moment", "type": "text" }, { "key": "ZENCS-USRGET-AA1", "description": "Could not retrieve users", "type": "text" }, { "key": "ZENCS-USRGET-AA2", "description": "Could not find user: Make sure the user ID is correct", "type": "text" }, { "key": "ZENCS-USRGET-AA3", "value": "", "description": "Requested user is disabled", "type": "text" }, { "key": "ZENCS-USRGET-AA4", "value": "", "description": "Could not retrieve user holdings", "type": "text" }, { "key": "ZENCS-USRGET-AA5", "value": "", "description": "Source not found in user holdings: Make sure the source ID is correct", "type": "text" }, { "key": "ZENCS-USRGET-AA6", "value": "", "description": "Could not retrieve user transactions", "type": "text" }, { "key": "ZENCS-USRPST-AA1", "description": "Could not add user", "type": "text" }, { "key": "ZENCS-USRPST-AA2", "description": "Duplicated email for user: Email address is unique, please pass a different email address", "type": "text" }, { "key": "ZENCS-USRPST-AA3", "value": "", "description": "Could not import wallet for user", "type": "text" }, { "key": "ZENCS-USRPST-AA4", "value": "", "description": "Could not import exchange account for user", "type": "text" }, { "key": "ZENCS-USRPST-AA5", "value": "", "description": "Wallet already imported for user: Pull the user souorces to see it", "type": "text" }, { "key": "ZENCS-USRPST-AA6", "value": "", "description": "Could not import account, review account data", "type": "text" }, { "key": "ZENCS-USRPST-AA7", "value": "", "description": "Exchange API credentials expired: Go to your exchange to create a new Key pair", "type": "text" }, { "key": "ZENCS-USRPST-AA8", "value": "", "description": "Maximum number of active users limit exceeded", "type": "text" }, { "key": "ZENCS-HLDRSC-AA1", "value": "", "description": "Could not re-sync holdings", "type": "text" }, { "key": "ZENCS-HLDRSC-AA2", "value": "", "description": "Holding not found: Make sure the holding ID is correct", "type": "text" }, { "key": "ZENCS-USRUPD-AA1", "description": "Could not update user details", "type": "text" }, { "key": "ZENCS-USRDEL-AA1", "value": "", "description": "Could not delete user", "type": "text" }, { "key": "ZENCS-USRDEL-AA2", "value": "", "description": "Could not delete user holding", "type": "text" } ] }, "url": { "raw": "" } }, "response": [] } ], "description": "The Compliance API includes specific error codes to indicate and describe various issues and errors that may occur during API interactions. To help you quickly identify and understand these error codes, we have provided a glossary below. This table contains commonly encountered error codes along with their corresponding meanings. Refer to this table for efficient troubleshooting when working with our Compliance API." }, { "name": "Webhooks and notifications", "item": [ { "name": "Glossary", "request": { "method": "VIEW", "header": [], "url": { "raw": "" } }, "response": [] } ], "description": "### Import Status Webhook\n\nAfter a user imports a new account, ZenLedger will process it and send a **webhook** **notification** to the defined **endpoint** once the new import is **completed**.\n\nThis webhook will expect a **HTTP 200 response** from the Client side, if a different response or none is given, the webhook service will **continue** to send notification until a **valid** response is received or the retry cycle is over.\n\nThe retry cycle will retry after **1 minute, 3 minutes, 10 minutes, 30 minutes, 1 hour** and a final retry after **24 hours**.\n\n#### Webhook endpoint setup\n\nTo set the endpoint in order to receive webhook notifications one of the following should occur:\n\n- The attribute **import_notification_url** should be set when creating a new **company**\n \n- Update the company details by passing this attribute.\n \n\n#### Webhook notification format\n\n```\n{\n \"notification_type\": \"IMPORT_STATUS_UPDATE\",\n \"company_reference\": \"company_reference\",\n \"user_id\": \"7be47a6d-a1b7-43bf-a1b7f5b6-2973cd5e0859\",\n \"source_id\": \"2973cd5e0859-a1b7-43bf-7be47a6d-97359cd5e082\",\n \"source_reference\": \"coinbase\", \n \"import_status\": \"complete\",\n \"transaction_count\": 7235\n}\n\n ```\n\n### Import Limit Reached Webhook\n\nEach account is limited to a maximum number of transactions per import (the **transaction import limit**), configured on the **Company** or inherited from the **Enterprise** (default **100,000**).\n\nWhen a new import reaches this limit, ZenLedger will **stop** the import for that account and send a **webhook** **notification** to the defined **endpoint** instead of the usual _complete_ notification.\n\nThis is the same **IMPORT_STATUS_UPDATE** notification delivered to the same **endpoint** as the _Import Status Webhook_, but with an **import_status** of **limit-reached** and an additional **transaction_limit** field indicating the configured cap.\n\nOnce ready, the stopped import can be continued through the dedicated **resume endpoint**, which lifts the limit for that account and re-triggers the import (already-imported transactions are de-duplicated). When it finishes, the standard **IMPORT_STATUS_UPDATE** notification with **import_status: \"complete\"** is delivered.\n\nThis webhook will expect a **HTTP 200 response** from the Client side, if a different response or none is given, the webhook service will **continue** to send notification until a **valid** response is received or the retry cycle is over.\n\nThe retry cycle will retry after **1 minute, 3 minutes, 10 minutes, 30 minutes, 1 hour** and a final retry after **24 hours**.\n\n#### Webhook endpoint setup\n\nThis notification is delivered to the same endpoint as the _Import Status Webhook_. To receive it, the **import_notification_url** attribute must be set for the **Company**:\n\n- The attribute **import_notification_url** should be set when creating a new **company**\n \n- Update the company details by passing this attribute.\n \n\n#### Webhook notification format\n\n```\n{\n \"notification_type\": \"IMPORT_STATUS_UPDATE\",\n \"company_reference\": \"company_reference\",\n \"user_id\": \"7be47a6d-a1b7-43bf-a1b7f5b6-2973cd5e0859\",\n \"source_id\": \"2973cd5e0859-a1b7-43bf-7be47a6d-97359cd5e082\",\n \"source_reference\": \"coinbase\",\n \"import_status\": \"limit-reached\",\n \"transaction_count\": 1000,\n \"transaction_limit\": 1000\n}\n\n ```\n\n### Wallet Screening Webhook\n\nOnly if **enabled** for the **Enterprise** (Contact ZenLedger for this feature) and defined a destination endpoint for the **Company** this **webhook service** implements as follows:\n\nAfter a user imports a new account, ZenLedger will process it and send a **webhook** **notification** to the defined **endpoint** before the import begins\n\nThis webhook will expect a **HTTP 200 response** from the Client side, if a different response or none is given, the webhook service will **continue** to send notification until a **valid** response is received or the retry cycle is over.\n\nThe retry cycle will retry after **1 minute, 3 minutes, 10 minutes, 30 minutes, 1 hour** and a final retry after **24 hours**.\n\n#### Webhook endpoint setup\n\nTo set the endpoint in order to receive webhook notifications one of the following should occur:\n\n- The attribute **wallet_screening_notification_url** should be set when creating a new **company**\n \n- Update the company details by passing this attribute.\n \n\n#### Webhook notification format\n\n**Sanctioned**\n\n```\n{\n \"notification_type\": \"ADDRESS_SCREENING_REPORT\",\n \"company_reference\": \"CompanyReference\",\n \"user_id\": \"83b9c1ee-9df5-48e0-ac46-5ceec42a8a76\",\n \"screening_status\": \"filed\",\n \"screening_report\": [\n {\n \"blockchain\": \"ETH\",\n \"address\": \"0x1da5821544e25c636c1417ba96ade4cf6d2f9b5a\",\n \"report_data\": [\n {\n \"description\": \"The address listed on the US Treasury Department's Office of Foreign Assets Control sanction list.\"\n }\n ],\n \"owner_info\": [\n {\n \"owner_info\": [\n {\n \"name\": \"Bittrex.com\",\n \"url\": \"https://www.Bittrex.com\",\n \"legal_name\": \"Bittrex Global GmbH\"\n }\n ]\n }\n ]\n }\n ]\n}\n\n ```\n\n**NOT Sanctioned**\n\n```\n{\n \"notification_type\": \"ADDRESS_SCREENING_REPORT\",\n \"company_reference\": \"CompanyReference\",\n \"user_id\": \"83b9c1ee-9df5-48e0-ac46-5ceec42a8a76\",\n \"screening_status\": \"clean\",\n \"screening_report\": [\n {\n \"blockchain\": \"ETH\",\n \"address\": \"0x6ee1362b3d16d94d0afe122b0000f1c16f482d72\",\n \"report_data\": [\n {\n \"description\": \"No risk indicator has been triggered for this address\"\n }\n ],\n \"owner_info\": null\n }\n ]\n}\n\n ```" } ], "event": [ { "listen": "prerequest", "script": { "type": "text/javascript", "exec": [ "" ] } }, { "listen": "test", "script": { "type": "text/javascript", "exec": [ "" ] } } ] }