{"_id":"5bc41fd7bc40af0013fe050f","project":"59f79e3c584eb200345ceafc","version":{"_id":"5ba178b00a916500030c6a21","project":"59f79e3c584eb200345ceafc","__v":24,"forked_from":"59f79e3c584eb200345ceaff","createdAt":"2015-09-17T03:47:20.956Z","releaseDate":"2015-09-17T03:47:20.956Z","categories":["5ba178b00a916500030c69a2","5ba178b00a916500030c69a3","5ba178b00a916500030c69a4","5ba178b00a916500030c69a5","5ba178b00a916500030c69a6","5ba178b00a916500030c69a7","5ba178b00a916500030c69a8","5ba178b00a916500030c69a9","5ba178b00a916500030c69aa","5ba178b00a916500030c69ab","5ba178b00a916500030c69ac","5afb6888212c690003ae3d3b","5ba178b00a916500030c69ad","5ba178b00a916500030c69ae","5ba2dcbc99f53f0003b97e2c","5babd73fa0ab3e0003ead030","5bb4038be7222e000334dd97","5bb55954478c1300031a44c2","5bb665a1607307000327c81e","5bb6f90229a7fb0003a0650d","5bb7f9bc29a7fb0003a07ac1","5bba58bd7ba7710003bd901d","5bba6dac7ba7710003bd908d","5bba6e257ba7710003bd9090","5bbac87810189c0003e619ea","5bbb9d02b5862c00036266b2","5bbbadb6219c3e000376c2de","5bc417751d1b0000182bf7f6","5bc59e3b2a5b4f0044db5b97","5bc7bbce2262cc0041f6eff2","5bce6a3580a7250031199f34","5bcfac2c4082510019f2d91b","5bcfac3757bed90030e45d68","5bcfac45d305bc0049941539","5bd2a43548bb6f00289c8fad","5bd3a42a026ebe001f66259e","5bd9d5afffe003005b02f97b","5becb7ee85c6b300557662b6"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"3.1.0","version":"3.1"},"category":{"_id":"5bc417751d1b0000182bf7f6","project":"59f79e3c584eb200345ceafc","version":"5ba178b00a916500030c6a21","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2018-10-15T04:28:37.853Z","from_sync":false,"order":13,"slug":"custody-accounts","title":"Custody Accounts"},"user":"5bbfef1d7d1cb0000384bec5","__v":0,"parentDoc":null,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2018-10-15T05:04:23.635Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":1,"body":"After you create a user and add the necessary KYC (as listed on your spec sheet), you are ready to open a custody account. Please also remember to Oauth the user since you are performing an action on their behalf. To open a clearing account please designate `CUSTODY-US` for the type. \n\n##API ENDPOINT\nhttps://uat-api.synapsefi.com/v3.1/users/:user_id/nodes\n\n##PATH PARAMETER\n[block:html]\n{\n  \"html\": \"<div class=\\\"api-manager\\\"><div class=\\\"param-table\\\"><div class=\\\"table\\\"><div class=\\\"tr\\\"><div class=\\\"td param\\\"><strong>user_id<span class=\\\"colon\\\">:</span></strong><div class=\\\"required\\\">required</div></div><div class=\\\"td\\\"><strong class=\\\"param-type\\\">string</strong><div marked=\\\"\\\" class=\\\"ng-isolate-scope\\\"><p>Object ID of the user an account is being created for</p>\"\n}\n[/block]\n##BODY PARAMETER\n[block:html]\n{\n  \"html\": \"<div class=\\\"api-manager\\\"><div class=\\\"param-table\\\"><div class=\\\"table\\\"><div class=\\\"tr\\\"><div class=\\\"td param\\\"><strong>type<span class=\\\"colon\\\">:</span></strong><div class=\\\"required\\\">required</div></div><div class=\\\"td\\\"><strong class=\\\"param-type\\\">string</strong><div marked=\\\"\\\" class=\\\"ng-isolate-scope\\\"><p>Type of node. This should be CUSTODY-US</p>\\n</div></div></div><div class=\\\"tr\\\"><div class=\\\"td param\\\"><strong><span class=\\\"text-muted\\\">info.</span>nickname<span class=\\\"colon\\\">:</span></strong><div class=\\\"required\\\">required</div></div><div class=\\\"td\\\"><strong class=\\\"param-type\\\">string</strong><div marked=\\\"\\\" class=\\\"ng-isolate-scope\\\"><p>Nickname associated with the node</p>\\n</div></div></div><div class=\\\"tr\\\"><div class=\\\"td param\\\"><strong><span class=\\\"text-muted\\\">extra.</span>supp_id<span class=\\\"colon\\\">:</span></strong></div><div class=\\\"td\\\"><strong class=\\\"param-type\\\">string</strong><div marked=\\\"\\\" class=\\\"ng-isolate-scope\\\"><p>Any Id you wish to register to the node</p>\\n</div></div></div><div class=\\\"tr\\\"><div class=\\\"td param\\\"><strong><span class=\\\"text-muted\\\"></span>is_active<span class=\\\"colon\\\">:</span></strong></div><div class=\\\"td\\\"><strong class=\\\"param-type\\\">boolean</strong><div marked=\\\"\\\" class=\\\"ng-isolate-scope\\\"><p>If the node is indexed or marked deleted</p>\\n</div></div></div>\"\n}\n[/block]\n##EXAMPLE REQUEST\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"POST /v3.1/users/5bb6ab05472e2500adffad5a/nodes HTTP/1.1\\nHost: uat-api.synapsefi.com\\nX-SP-USER-IP: 127.0.0.1\\nX-SP-USER: oauth_4DjSJWC9031Vt7yLcnfZxOmQqUGNegapBdui8HI0|n38dj3h8NE393bv24ovoRY34kd62\\nContent-Type: application/json\\n\\n\\n{\\n  \\\"type\\\": \\\"CUSTODY-US\\\",\\n  \\\"info\\\": {\\n    \\\"nickname\\\":\\\"Custody Account\\\"\\n  }\\n}\",\n      \"language\": \"http\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n    \\\"error_code\\\": \\\"0\\\",\\n    \\\"http_code\\\": \\\"200\\\",\\n    \\\"limit\\\": 20,\\n    \\\"node_count\\\": 1,\\n    \\\"nodes\\\": [\\n        {\\n            \\\"_id\\\": \\\"5bbbb1d0cb441500be52b114\\\",\\n            \\\"_links\\\": {\\n                \\\"self\\\": {\\n                    \\\"href\\\": \\\"https://uat-api.synapsefi.com/v3.1/users/5bb6ab05472e2500adffad5a/nodes/5bbbb1d0cb441500be52b114\\\"\\n                }\\n            },\\n            \\\"allowed\\\": \\\"CREDIT-AND-DEBIT\\\",\\n            \\\"client\\\": {\\n                \\\"id\\\": \\\"5ade26b4567a900029e2afd2\\\",\\n                \\\"name\\\": \\\"YY Test Account\\\"\\n            },\\n            \\\"extra\\\": {\\n                \\\"note\\\": null,\\n                \\\"other\\\": {},\\n                \\\"supp_id\\\": \\\"\\\"\\n            },\\n            \\\"info\\\": {\\n                \\\"balance\\\": {\\n                    \\\"amount\\\": 0,\\n                    \\\"currency\\\": \\\"USD\\\"\\n                },\\n                \\\"monthly_withdrawals_remaining\\\": null,\\n                \\\"name_on_account\\\": \\\" \\\",\\n                \\\"nickname\\\": \\\"Custody Account\\\"\\n            },\\n            \\\"is_active\\\": true,\\n            \\\"timeline\\\": [\\n                {\\n                    \\\"date\\\": 1539027408444,\\n                    \\\"note\\\": \\\"Node created.\\\"\\n                }\\n            ],\\n            \\\"type\\\": \\\"CUSTODY-US\\\",\\n            \\\"user_id\\\": \\\"5bb6ab05472e2500adffad5a\\\"\\n        }\\n    ],\\n    \\\"page_count\\\": 1,\\n    \\\"success\\\": true\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Subscribe to Webhooks\",\n  \"body\": \"We recommend that you [subscribe to webhooks](https://docs.synapsefi.com/docs/subscribe-to-webhooks) to stay updated on the status of nodes.\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"We reconcile negative balances when accounts have been negative for 30 days with no successful activity. These reconciliations occur throughout the month, and funds will be debited from your reserve account to reconcile these balances. After an account has been reconciled, the user will be locked.\\n\\n**For example:**\\nIf a user has a negative balance of -$500 and they pay +$400 toward that negative balance before the 30 day period is up, we will reset the 30 day countdown. If another 30 days passes and there is no successful activity, we will reconcile the remaining negative balance of -$100 from your reserve funds.\\n\\nWe recommend setting up webhooks to monitor your reserve account balance. This will help you automatically fund your reserve when it falls below your required minimum balance.\",\n  \"title\": \"Negative Balance Reconciliation\"\n}\n[/block]","excerpt":"Create a custody account with SynapseFI","slug":"open-custody-accounts","type":"basic","title":"Open a Custody Account"}

Open a Custody Account

Create a custody account with SynapseFI

After you create a user and add the necessary KYC (as listed on your spec sheet), you are ready to open a custody account. Please also remember to Oauth the user since you are performing an action on their behalf. To open a clearing account please designate `CUSTODY-US` for the type. ##API ENDPOINT https://uat-api.synapsefi.com/v3.1/users/:user_id/nodes ##PATH PARAMETER [block:html] { "html": "<div class=\"api-manager\"><div class=\"param-table\"><div class=\"table\"><div class=\"tr\"><div class=\"td param\"><strong>user_id<span class=\"colon\">:</span></strong><div class=\"required\">required</div></div><div class=\"td\"><strong class=\"param-type\">string</strong><div marked=\"\" class=\"ng-isolate-scope\"><p>Object ID of the user an account is being created for</p>" } [/block] ##BODY PARAMETER [block:html] { "html": "<div class=\"api-manager\"><div class=\"param-table\"><div class=\"table\"><div class=\"tr\"><div class=\"td param\"><strong>type<span class=\"colon\">:</span></strong><div class=\"required\">required</div></div><div class=\"td\"><strong class=\"param-type\">string</strong><div marked=\"\" class=\"ng-isolate-scope\"><p>Type of node. This should be CUSTODY-US</p>\n</div></div></div><div class=\"tr\"><div class=\"td param\"><strong><span class=\"text-muted\">info.</span>nickname<span class=\"colon\">:</span></strong><div class=\"required\">required</div></div><div class=\"td\"><strong class=\"param-type\">string</strong><div marked=\"\" class=\"ng-isolate-scope\"><p>Nickname associated with the node</p>\n</div></div></div><div class=\"tr\"><div class=\"td param\"><strong><span class=\"text-muted\">extra.</span>supp_id<span class=\"colon\">:</span></strong></div><div class=\"td\"><strong class=\"param-type\">string</strong><div marked=\"\" class=\"ng-isolate-scope\"><p>Any Id you wish to register to the node</p>\n</div></div></div><div class=\"tr\"><div class=\"td param\"><strong><span class=\"text-muted\"></span>is_active<span class=\"colon\">:</span></strong></div><div class=\"td\"><strong class=\"param-type\">boolean</strong><div marked=\"\" class=\"ng-isolate-scope\"><p>If the node is indexed or marked deleted</p>\n</div></div></div>" } [/block] ##EXAMPLE REQUEST [block:code] { "codes": [ { "code": "POST /v3.1/users/5bb6ab05472e2500adffad5a/nodes HTTP/1.1\nHost: uat-api.synapsefi.com\nX-SP-USER-IP: 127.0.0.1\nX-SP-USER: oauth_4DjSJWC9031Vt7yLcnfZxOmQqUGNegapBdui8HI0|n38dj3h8NE393bv24ovoRY34kd62\nContent-Type: application/json\n\n\n{\n \"type\": \"CUSTODY-US\",\n \"info\": {\n \"nickname\":\"Custody Account\"\n }\n}", "language": "http" } ] } [/block] [block:code] { "codes": [ { "code": "{\n \"error_code\": \"0\",\n \"http_code\": \"200\",\n \"limit\": 20,\n \"node_count\": 1,\n \"nodes\": [\n {\n \"_id\": \"5bbbb1d0cb441500be52b114\",\n \"_links\": {\n \"self\": {\n \"href\": \"https://uat-api.synapsefi.com/v3.1/users/5bb6ab05472e2500adffad5a/nodes/5bbbb1d0cb441500be52b114\"\n }\n },\n \"allowed\": \"CREDIT-AND-DEBIT\",\n \"client\": {\n \"id\": \"5ade26b4567a900029e2afd2\",\n \"name\": \"YY Test Account\"\n },\n \"extra\": {\n \"note\": null,\n \"other\": {},\n \"supp_id\": \"\"\n },\n \"info\": {\n \"balance\": {\n \"amount\": 0,\n \"currency\": \"USD\"\n },\n \"monthly_withdrawals_remaining\": null,\n \"name_on_account\": \" \",\n \"nickname\": \"Custody Account\"\n },\n \"is_active\": true,\n \"timeline\": [\n {\n \"date\": 1539027408444,\n \"note\": \"Node created.\"\n }\n ],\n \"type\": \"CUSTODY-US\",\n \"user_id\": \"5bb6ab05472e2500adffad5a\"\n }\n ],\n \"page_count\": 1,\n \"success\": true\n}", "language": "json" } ] } [/block] [block:callout] { "type": "info", "title": "Subscribe to Webhooks", "body": "We recommend that you [subscribe to webhooks](https://docs.synapsefi.com/docs/subscribe-to-webhooks) to stay updated on the status of nodes." } [/block] [block:callout] { "type": "warning", "body": "We reconcile negative balances when accounts have been negative for 30 days with no successful activity. These reconciliations occur throughout the month, and funds will be debited from your reserve account to reconcile these balances. After an account has been reconciled, the user will be locked.\n\n**For example:**\nIf a user has a negative balance of -$500 and they pay +$400 toward that negative balance before the 30 day period is up, we will reset the 30 day countdown. If another 30 days passes and there is no successful activity, we will reconcile the remaining negative balance of -$100 from your reserve funds.\n\nWe recommend setting up webhooks to monitor your reserve account balance. This will help you automatically fund your reserve when it falls below your required minimum balance.", "title": "Negative Balance Reconciliation" } [/block]