{"__v":0,"_id":"590bc0f8874d721900e74cfd","category":{"project":"54e405191e51932d006abc39","version":"55fa37c88065a10d004e5bb6","_id":"5915e54f7c2c552d008b8549","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2017-05-12T16:39:43.277Z","from_sync":false,"order":1,"slug":"guides","title":"Guides"},"parentDoc":null,"project":"54e405191e51932d006abc39","user":"5820c42f6256350f00fc6e31","version":{"__v":8,"_id":"55fa37c88065a10d004e5bb6","project":"54e405191e51932d006abc39","createdAt":"2015-09-17T03:47:20.956Z","releaseDate":"2015-09-17T03:47:20.956Z","categories":["55fa37ca8065a10d004e5bb7","55fa37ca8065a10d004e5bb8","55fa37ca8065a10d004e5bb9","55fa37ca8065a10d004e5bba","55fca6bf34ae7c0d00ab8ea0","55ff80fd9e7ccf0d000a1d93","560220af7435de0d00fabd0d","56107f21bb9d920d00303e70","563e184077681a0d00d96a02","56fafc6596ec7e0e002ac85f","5915e54f7c2c552d008b8549"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"REST V3","version_clean":"3.1.0","version":"3.1"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-05-05T00:02:00.380Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":4,"body":"CIP stands for \"Customer Identification Program\". A CIP document is custom to each platform and outlines the requirements and KYC (Know Your Customer) documents that need to be collected from each user on the platform. There are 3 different types of KYC documents that can be collected: [physical documents](doc:user-resources#section-physical-document-types), [virtual documents](doc:user-resources#section-virtual-document-types), and [social documents](doc:user-resources#section-social-document-types).\n\nThis guide will show you how to integrate with the Synapse API according to your platform's CIP document. The integration process discussed in this guide is based on the [common flow](doc:common-flow) and uses [sandbox test values](doc:sandbox-test-values) in the request examples. \n\nThe example CIP used in this guide has 2 different types of users: individuals and businesses.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/5a58709-Screen_Shot_2017-05-04_at_2.03.05_PM.png\",\n        \"Screen Shot 2017-05-04 at 2.03.05 PM.png\",\n        1462,\n        968,\n        \"#e0382b\"\n      ],\n      \"caption\": \"KYC requirements/permissions for individual users.\"\n    }\n  ]\n}\n[/block]\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/91bf146-Screen_Shot_2017-05-11_at_10.58.50_AM.png\",\n        \"Screen Shot 2017-05-11 at 10.58.50 AM.png\",\n        1188,\n        1018,\n        \"#151515\"\n      ],\n      \"caption\": \"KYC requirements/permissions for business users.\"\n    }\n  ]\n}\n[/block]\n## 1. Create User\n\nThe first step is to [create a user](doc:create-a-user) on your platform. The `cip_tag` in addition to the user type (individual vs. business) assigned to the user determines what information/KYC documents are required for the user to be verified and also determines the user's permissions, types of accounts (nodes) they're allowed to create, transaction limits, acceptable flow of funds, and the maximum number of nodes they can have under their user account.\n\nAccording to the example CIP above, the platform has 2 types of users: individuals with `cip_tag: 1` and businesses with `cip_tag: 1`. The requests to create these users would look something like the example below:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"POST /v3.1/users HTTP/1.1\\nHost: uat-api.synapsefi.com\\nX-SP-GATEWAY: client_id|client_secret\\nX-SP-USER-IP: 127.0.0.1\\nX-SP-USER: |fingerprint\\nContent-Type: application/json\\n\\n{\\n  \\\"logins\\\": [\\n    {\\n      \\\"email\\\": \\\"testUser:::at:::test.com\\\"\\n    }\\n  ],\\n  \\\"phone_numbers\\\": [\\n    \\\"123-456-7777\\\"\\n  ],\\n  \\\"legal_names\\\": [\\n    \\\"Test User\\\"\\n  ],\\n  \\\"extra\\\": {\\n    \\\"cip_tag\\\": 1,\\n    \\\"is_business\\\": false\\n  }\\n}\",\n      \"language\": \"http\",\n      \"name\": \"Create Individual User\"\n    },\n    {\n      \"code\": \"{\\n  \\\"_id\\\": \\\"590bae4deba6500022ca53e0\\\",\\n  \\\"_links\\\": {\\n    \\\"self\\\": {\\n      \\\"href\\\": \\\"https://uat-api.synapsefi.com/v3.1/users/590bae4deba6500022ca53e0\\\"\\n    }\\n  },\\n  \\\"client\\\": {\\n    \\\"id\\\": \\\"589a9eed86c2736412ce7e21\\\",\\n    \\\"name\\\": \\\"Client Platform\\\"\\n  },\\n  \\\"doc_status\\\": {\\n    \\\"physical_doc\\\": \\\"MISSING|INVALID\\\",\\n    \\\"virtual_doc\\\": \\\"MISSING|INVALID\\\"\\n  },\\n  \\\"documents\\\": [],\\n  \\\"emails\\\": [],\\n  \\\"extra\\\": {\\n    \\\"cip_tag\\\": 1,\\n    \\\"date_joined\\\": 1493937740425,\\n    \\\"extra_security\\\": false,\\n    \\\"is_business\\\": false,\\n    \\\"last_updated\\\": 1493937740425,\\n    \\\"public_note\\\": null,\\n    \\\"supp_id\\\": null\\n  },\\n  \\\"is_hidden\\\": false,\\n  \\\"legal_names\\\": [\\n    \\\"Test User\\\"\\n  ],\\n  \\\"logins\\\": [\\n    {\\n      \\\"email\\\": \\\"testUser@test.com\\\",\\n      \\\"scope\\\": \\\"READ_AND_WRITE\\\"\\n    }\\n  ],\\n  \\\"permission\\\": \\\"UNVERIFIED\\\",\\n  \\\"phone_numbers\\\": [\\n    \\\"123-456-7777\\\"\\n  ],\\n  \\\"photos\\\": [],\\n  \\\"refresh_token\\\": \\\"refresh_eff4c99a311a11e7aba90230ada41dd6\\\"\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Response (Individual)\"\n    },\n    {\n      \"code\": \"POST /v3.1/users HTTP/1.1\\nHost: uat-api.synapsefi.com\\nX-SP-GATEWAY: client_id|client_secret\\nX-SP-USER-IP: 127.0.0.1\\nX-SP-USER: |fingerprint\\nContent-Type: application/json\\n\\n{\\n  \\\"logins\\\": [\\n    {\\n      \\\"email\\\": \\\"businessUser@test.com\\\"\\n    }\\n  ],\\n  \\\"phone_numbers\\\": [\\n    \\\"111-222-7777\\\"\\n  ],\\n  \\\"legal_names\\\": [\\n    \\\"Business User\\\"\\n  ],\\n  \\\"extra\\\": {\\n    \\\"cip_tag\\\": 1,\\n    \\\"is_business\\\": true\\n  }\\n}\",\n      \"language\": \"http\",\n      \"name\": \"Create Business User\"\n    },\n    {\n      \"code\": \"{\\n  \\\"_id\\\": \\\"59135352ce9311001e3a8f43\\\",\\n  \\\"_links\\\": {\\n    \\\"self\\\": {\\n      \\\"href\\\": \\\"https://uat-api.synapsefi.com/v3.1/users/59135352ce9311001e3a8f43\\\"\\n    }\\n  },\\n  \\\"client\\\": {\\n    \\\"id\\\": \\\"589a9eed86c2736412ce7e21\\\",\\n    \\\"name\\\": \\\"Client Platform\\\"\\n  },\\n  \\\"doc_status\\\": {\\n    \\\"physical_doc\\\": \\\"MISSING|INVALID\\\",\\n    \\\"virtual_doc\\\": \\\"MISSING|INVALID\\\"\\n  },\\n  \\\"documents\\\": [],\\n  \\\"emails\\\": [],\\n  \\\"extra\\\": {\\n    \\\"cip_tag\\\": 1,\\n    \\\"date_joined\\\": 1494433713318,\\n    \\\"extra_security\\\": false,\\n    \\\"is_business\\\": true,\\n    \\\"last_updated\\\": 1494433713318,\\n    \\\"public_note\\\": null,\\n    \\\"supp_id\\\": null\\n  },\\n  \\\"is_hidden\\\": false,\\n  \\\"legal_names\\\": [\\n    \\\"Business User\\\"\\n  ],\\n  \\\"logins\\\": [\\n    {\\n      \\\"email\\\": \\\"businessUser@test.com\\\",\\n      \\\"scope\\\": \\\"READ_AND_WRITE\\\"\\n    }\\n  ],\\n  \\\"permission\\\": \\\"UNVERIFIED\\\",\\n  \\\"phone_numbers\\\": [\\n    \\\"111-222-7777\\\"\\n  ],\\n  \\\"photos\\\": [],\\n  \\\"refresh_token\\\": \\\"refresh_b67096cc359d11e7bd770230ad3f183e\\\"\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Response (Business)\"\n    }\n  ]\n}\n[/block]\nIn the request payload, `is_business` corresponds to letter `A` in the CIP document above and `cip_tag` corresponds to letter `B`. \n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"User ID\",\n  \"body\": \"In the response from `Create User`, please remember to store `_id` of the user in your database so you can access that user's account in the future.\"\n}\n[/block]\nIn the response, notice that the user `permission` is `UNVERIFIED`. In order to verify each user, the appropriate KYC information/documents listed in the CIP need to be added to the corresponding user. \n\n## 2. OAuth User\n\nTo make further requests on the user's behalf, you need to [OAuth](doc:get-oauth_key-refresh-token) the user. Grab the `refresh_token` from the response in step one and make the following request: \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"POST /v3.1/oauth/590bae4deba6500022ca53e0 HTTP/1.1\\nHost: uat-api.synapsefi.com\\nX-SP-GATEWAY: client_id|client_secret\\nX-SP-USER-IP: 127.0.0.1\\nX-SP-USER: |fingerprint\\nContent-Type: application/json\\n\\n{\\n  \\\"refresh_token\\\": \\\"refresh_eff4c99a311a11e7aba90230ada41dd6\\\"\\n}\",\n      \"language\": \"http\",\n      \"name\": \"OAuth Individual\"\n    },\n    {\n      \"code\": \"{\\n  \\\"client_id\\\": \\\"589a9eed86c2736412ce7e21\\\",\\n  \\\"client_name\\\": \\\"Client Platform\\\",\\n  \\\"expires_at\\\": \\\"1493966006\\\",\\n  \\\"expires_in\\\": \\\"7200\\\",\\n  \\\"oauth_key\\\": \\\"oauth_fafccf28314b11e7aba90230ada41dd6\\\",\\n  \\\"refresh_expires_in\\\": 9,\\n  \\\"refresh_token\\\": \\\"refresh_eff4c99a311a11e7aba90230ada41dd6\\\",\\n  \\\"scope\\\": [\\n    \\\"USER|PATCH\\\",\\n    \\\"USER|GET\\\",\\n    \\\"NODES|POST\\\",\\n    \\\"NODES|GET\\\",\\n    \\\"NODE|GET\\\",\\n    \\\"NODE|PATCH\\\",\\n    \\\"NODE|DELETE\\\",\\n    \\\"TRANS|POST\\\",\\n    \\\"TRANS|GET\\\",\\n    \\\"TRAN|GET\\\",\\n    \\\"TRAN|PATCH\\\",\\n    \\\"TRAN|DELETE\\\"\\n  ],\\n  \\\"user_id\\\": \\\"590bae4deba6500022ca53e0\\\"\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Response (Individual)\"\n    },\n    {\n      \"code\": \"POST /v3.1/oauth/59135352ce9311001e3a8f43 HTTP/1.1\\nHost: uat-api.synapsefi.com\\nX-SP-GATEWAY: client_id|client_secret\\nX-SP-USER-IP: 127.0.0.1\\nX-SP-USER: |fingerprint\\nContent-Type: application/json\\n\\n{\\n  \\\"refresh_token\\\": \\\"refresh_b67096cc359d11e7bd770230ad3f183e\\\"\\n}\",\n      \"language\": \"http\",\n      \"name\": \"OAuth Business\"\n    },\n    {\n      \"code\": \"{\\n  \\\"client_id\\\": \\\"589a9eed86c2736412ce7e21\\\",\\n  \\\"client_name\\\": \\\"Client Platform\\\",\\n  \\\"expires_at\\\": \\\"1494441077\\\",\\n  \\\"expires_in\\\": \\\"7200\\\",\\n  \\\"oauth_key\\\": \\\"oauth_1778a554359e11e799b90230ad640784\\\",\\n  \\\"refresh_expires_in\\\": 9,\\n  \\\"refresh_token\\\": \\\"refresh_b67096cc359d11e7bd770230ad3f183e\\\",\\n  \\\"scope\\\": [\\n    \\\"USER|PATCH\\\",\\n    \\\"USER|GET\\\",\\n    \\\"NODES|POST\\\",\\n    \\\"NODES|GET\\\",\\n    \\\"NODE|GET\\\",\\n    \\\"NODE|PATCH\\\",\\n    \\\"NODE|DELETE\\\",\\n    \\\"TRANS|POST\\\",\\n    \\\"TRANS|GET\\\",\\n    \\\"TRAN|GET\\\",\\n    \\\"TRAN|PATCH\\\",\\n    \\\"TRAN|DELETE\\\"\\n  ],\\n  \\\"user_id\\\": \\\"59135352ce9311001e3a8f43\\\"\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Response (Business)\"\n    }\n  ]\n}\n[/block]\nThe `oauth_key` from the response will need to be included in the request headers for subsequent API calls for the user. You can read more about OAuth keys and refresh tokens [here](doc:oauth-resources).\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"OAuth keys & Refresh tokens\",\n  \"body\": \"An `oauth_key` expires in 2 hours (from the time it was generated). After an `oauth_key` expires, you can use the `refresh_token` to generate a new `oauth_key`. When the oauth_key is refreshed, a new refresh_token might be issued as well. Refresh tokens expire after 10 uses and update periodically. We manage this complexity for you. To get the most recent `refresh_token`, make a request to [Get User](doc:get-user) and grab the refresh_token from the response.\"\n}\n[/block]\n## 3. Add KYC Info/Documents\n\n### KYC Individual User\n\nAccording to the example CIP, the following information needs to be collected from the individual user: the base document info, SSN (virtual document), and GOVT_ID (physical document). This corresponds to letters `C` and `D` in the diagram.\n\nWhen submitting a photo ID (GOVT_ID), please review the list of suggestions to improve accuracy for [Photo ID uploads](doc:user-resources#section-photo-id-requirements).\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"PATCH /v3.1/users/590bae4deba6500022ca53e0 HTTP/1.1\\nHost: uat-api.synapsefi.com\\nX-SP-GATEWAY: client_id|client_secret\\nX-SP-USER-IP: 127.0.0.1\\nX-SP-USER: oauth_key|fingerprint\\nContent-Type: application/json\\n\\n{\\n  \\\"documents\\\":[\\n    {\\n      \\\"email\\\":\\\"testUser@test.com\\\",\\n      \\\"phone_number\\\":\\\"123-456-7777\\\",\\n      \\\"ip\\\":\\\"12134323\\\",\\n      \\\"name\\\":\\\"Test User\\\",\\n      \\\"alias\\\":\\\"Individual User\\\",\\n      \\\"entity_type\\\":\\\"M\\\",\\n      \\\"entity_scope\\\":\\\"Arts & Entertainment\\\",\\n      \\\"day\\\":2,\\n      \\\"month\\\":5,\\n      \\\"year\\\":1989,\\n      \\\"address_street\\\":\\\"170 St Germain Ave\\\",\\n      \\\"address_city\\\":\\\"SF\\\",\\n      \\\"address_subdivision\\\":\\\"CA\\\",\\n      \\\"address_postal_code\\\":\\\"94114\\\",\\n      \\\"address_country_code\\\":\\\"US\\\",\\n      \\\"virtual_docs\\\":[\\n        {\\n          \\\"document_value\\\":\\\"222-22-2222\\\",\\n          \\\"document_type\\\":\\\"SSN\\\"\\n        }\\n      ],\\n      \\\"physical_docs\\\":[\\n        {\\n          \\\"document_value\\\": \\\"data:image/gif;base64,R0lGODlhMAAwAPf/AK==\\\",\\n          \\\"document_type\\\": \\\"GOVT_ID\\\"\\n        }\\n      ]\\n    }\\n  ]\\n}\",\n      \"language\": \"http\",\n      \"name\": \"KYC Individual\"\n    },\n    {\n      \"code\": \"{\\n  \\\"_id\\\": \\\"590bae4deba6500022ca53e0\\\",\\n  \\\"_links\\\": {\\n    \\\"self\\\": {\\n      \\\"href\\\": \\\"https://uat-api.synapsefi.com/v3.1/users/590bae4deba6500022ca53e0\\\"\\n    }\\n  },\\n  \\\"client\\\": {\\n    \\\"id\\\": \\\"589a9eed86c2736412ce7e21\\\",\\n    \\\"name\\\": \\\"Client Platform\\\"\\n  },\\n  \\\"doc_status\\\": {\\n    \\\"physical_doc\\\": \\\"MISSING|INVALID\\\",\\n    \\\"virtual_doc\\\": \\\"MISSING|INVALID\\\"\\n  },\\n  \\\"documents\\\": [\\n    {\\n      \\\"id\\\": \\\"e69f8e970a13b01ce5ace6dda9f4370bdb890524963bdc04b629da88c7e43a9b\\\",\\n      \\\"name\\\": \\\"Test User\\\",\\n      \\\"permission_scope\\\": \\\"UNVERIFIED\\\",\\n      \\\"physical_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"GOVT_ID\\\",\\n          \\\"id\\\": \\\"5ad560b44bde1e4eafd291aae4c7ae4b4c7c4052350ec093a41a572cafcc3320\\\",\\n          \\\"last_updated\\\": 1493962763409,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ],\\n      \\\"social_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"IP\\\",\\n          \\\"id\\\": \\\"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\\\",\\n          \\\"last_updated\\\": 1493962765233,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"PHONE_NUMBER\\\",\\n          \\\"id\\\": \\\"c1048b947148bdf1c21207b28864222b8db3da274bc2eb15299bbdc680e94f86\\\",\\n          \\\"last_updated\\\": 1493962764727,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"EMAIL\\\",\\n          \\\"id\\\": \\\"d8592542a7142adaf1e4bd21a3fe16ddbaf877cacae4348152b545170e49056f\\\",\\n          \\\"last_updated\\\": 1493962764206,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ],\\n      \\\"virtual_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"SSN\\\",\\n          \\\"id\\\": \\\"a0e9fe45c418a2a9ace120d044e13793c60a3eec9cd84bc8c662349cb4e9ee03\\\",\\n          \\\"last_updated\\\": 1493962762801,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ]\\n    }\\n  ],\\n  \\\"emails\\\": [],\\n  \\\"extra\\\": {\\n    \\\"cip_tag\\\": 1,\\n    \\\"date_joined\\\": 1493937740425,\\n    \\\"extra_security\\\": false,\\n    \\\"is_business\\\": false,\\n    \\\"last_updated\\\": 1493962762269,\\n    \\\"public_note\\\": null,\\n    \\\"supp_id\\\": null\\n  },\\n  \\\"is_hidden\\\": false,\\n  \\\"legal_names\\\": [\\n    \\\"Test User\\\"\\n  ],\\n  \\\"logins\\\": [\\n    {\\n      \\\"email\\\": \\\"testUser@test.com\\\",\\n      \\\"scope\\\": \\\"READ_AND_WRITE\\\"\\n    }\\n  ],\\n  \\\"permission\\\": \\\"UNVERIFIED\\\",\\n  \\\"phone_numbers\\\": [\\n    \\\"123-456-7777\\\"\\n  ],\\n  \\\"photos\\\": [],\\n  \\\"refresh_token\\\": \\\"refresh_eff4c99a311a11e7aba90230ada41dd6\\\"\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Response (Individual)\"\n    }\n  ]\n}\n[/block]\nAs you can see from the response above, the SSN and GOVT_ID have a `status` of `SUBMITTED|VALID`, but the user `permission` and document `permission_scope` is `UNVERIFIED`. This is because the user `permission` and document `permission_scope` is updated asynchronously, so you will have to use [polling](doc:get-user) (GET User) or [subscriptions](doc:subscriptions) to get the most recent information on the user.\n\nAfter a few seconds, making a request to [GET User](doc:get-user) will return the following response:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"_id\\\": \\\"590bae4deba6500022ca53e0\\\",\\n  \\\"_links\\\": {\\n    \\\"self\\\": {\\n      \\\"href\\\": \\\"https://uat-api.synapsefi.com/v3.1/users/590bae4deba6500022ca53e0\\\"\\n    }\\n  },\\n  \\\"client\\\": {\\n    \\\"id\\\": \\\"589a9eed86c2736412ce7e21\\\",\\n    \\\"name\\\": \\\"Client Platform\\\"\\n  },\\n  \\\"doc_status\\\": {\\n    \\\"physical_doc\\\": \\\"SUBMITTED|VALID\\\",\\n    \\\"virtual_doc\\\": \\\"SUBMITTED|VALID\\\"\\n  },\\n  \\\"documents\\\": [\\n    {\\n      \\\"id\\\": \\\"e69f8e970a13b01ce5ace6dda9f4370bdb890524963bdc04b629da88c7e43a9b\\\",\\n      \\\"name\\\": \\\"Test User\\\",\\n      \\\"permission_scope\\\": \\\"SEND|RECEIVE|2000|DAILY\\\",\\n      \\\"physical_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"GOVT_ID\\\",\\n          \\\"id\\\": \\\"5ad560b44bde1e4eafd291aae4c7ae4b4c7c4052350ec093a41a572cafcc3320\\\",\\n          \\\"last_updated\\\": 1493962763409,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ],\\n      \\\"social_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"IP\\\",\\n          \\\"id\\\": \\\"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\\\",\\n          \\\"last_updated\\\": 1493962765233,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"PHONE_NUMBER\\\",\\n          \\\"id\\\": \\\"c1048b947148bdf1c21207b28864222b8db3da274bc2eb15299bbdc680e94f86\\\",\\n          \\\"last_updated\\\": 1493962764727,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"EMAIL\\\",\\n          \\\"id\\\": \\\"d8592542a7142adaf1e4bd21a3fe16ddbaf877cacae4348152b545170e49056f\\\",\\n          \\\"last_updated\\\": 1493962764206,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ],\\n      \\\"virtual_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"SSN\\\",\\n          \\\"id\\\": \\\"a0e9fe45c418a2a9ace120d044e13793c60a3eec9cd84bc8c662349cb4e9ee03\\\",\\n          \\\"last_updated\\\": 1493962762801,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ]\\n    }\\n  ],\\n  \\\"emails\\\": [],\\n  \\\"extra\\\": {\\n    \\\"cip_tag\\\": 1,\\n    \\\"date_joined\\\": 1493937740425,\\n    \\\"extra_security\\\": false,\\n    \\\"is_business\\\": false,\\n    \\\"last_updated\\\": 1493962762269,\\n    \\\"public_note\\\": null,\\n    \\\"supp_id\\\": null\\n  },\\n  \\\"is_hidden\\\": false,\\n  \\\"legal_names\\\": [\\n    \\\"Test User\\\"\\n  ],\\n  \\\"logins\\\": [\\n    {\\n      \\\"email\\\": \\\"testUser@test.com\\\",\\n      \\\"scope\\\": \\\"READ_AND_WRITE\\\"\\n    }\\n  ],\\n  \\\"permission\\\": \\\"SEND-AND-RECEIVE\\\",\\n  \\\"phone_numbers\\\": [\\n    \\\"123-456-7777\\\"\\n  ],\\n  \\\"photos\\\": [],\\n  \\\"refresh_token\\\": \\\"refresh_eff4c99a311a11e7aba90230ada41dd6\\\"\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Response from GET User\"\n    }\n  ]\n}\n[/block]\nNotice in the response above that now `permission` is `SEND-AND-RECEIVE` and the document `permission_scope` is `SEND|RECEIVE|2000|DAILY`. These fields correspond to letters `E` and `H` in the diagram. The user was given `SEND-AND-RECEIVE` permissions because the appropriate KYC documents (letters `C` and `D` in diagram) were submitted and valid. You can learn more about [user permissions](doc:user-resources#section-user-permissions), [document status](doc:user-resources#section-document-status), and [document permission scope](doc:user-resources#section-document-permission-scope) in our docs.\n\nWhat if one (or more) of the KYC documents was considered invalid? Depending on the requirements listed in the CIP, user and document permissions could change. In the example CIP (section `D`), both `SSN` (virtual document) and `GOVT_ID` (physical document) must be valid in order for the user to be verified. However, if the SSN was invalid (document status of `SUBMITTED|INVALID`), then the user could submit their `SSN_CARD` (physical document) as a backup document for the SSN requirement. So a valid `SSN_CARD` in addition to a valid `GOVT_ID` would verify the user and give them `SEND-AND-RECEIVE` permissions. But if the SSN requirement or GOVT_ID was invalid, then the user `permission` and document `permission_scope` would be `UNVERIFIED`.\n\n### KYC Business User\n\nAccording to the example CIP, the business user needs to submit at least 2 sets of KYC information/documents: one set for business information and another set for beneficial owner information. \n\nThe following information/documents are required for the business info set: base document fields, TIN (virtual document), EIN_DOC (physical document), BYLAWS_DOC (physical document), AOI (physical document). \n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Physical Documents\",\n  \"body\": \"Submitting more than one physical document at a time might result in a delay in response time. It is recommended that you perform separate API calls to add each physical document if you have more than one.\"\n}\n[/block]\nThe following information/documents are required for the beneficial owner info set: base document fields, SSN (virtual document), and GOVT_ID (physical document).\n\nTo submit the 2 sets of KYC documents, you should make 2 separate calls to [Add Documents](doc:adding-documents): one call to add business info/documents and another call to add beneficial owner info/documents.\n\nLet's first add KYC documents corresponding to the beneficial owner:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"PATCH /v3.1/users/59135352ce9311001e3a8f43 HTTP/1.1\\nHost: uat-api.synapsefi.com\\nX-SP-GATEWAY: client_id|client_secret\\nX-SP-USER-IP: 127.0.0.1\\nX-SP-USER: oauth_key|fingerprint\\nContent-Type: application/json\\n\\n{\\n  \\\"documents\\\":[\\n  \\t{\\n      \\\"email\\\":\\\"beneficialOwner@test.com\\\",\\n      \\\"phone_number\\\":\\\"444-333-5555\\\",\\n      \\\"ip\\\":\\\"12134323\\\",\\n      \\\"name\\\":\\\"Beneficial Owner\\\",\\n      \\\"alias\\\":\\\"Business Owner\\\",\\n      \\\"entity_type\\\":\\\"M\\\",\\n      \\\"entity_scope\\\":\\\"Bank & Financial Services\\\",\\n      \\\"day\\\":13,\\n      \\\"month\\\":8,\\n      \\\"year\\\":1989,\\n      \\\"address_street\\\":\\\"130 St Germain Ave\\\",\\n      \\\"address_city\\\":\\\"SF\\\",\\n      \\\"address_subdivision\\\":\\\"CA\\\",\\n      \\\"address_postal_code\\\":\\\"94114\\\",\\n      \\\"address_country_code\\\":\\\"US\\\",\\n      \\\"virtual_docs\\\":[\\n        {\\n          \\\"document_value\\\":\\\"222-22-2222\\\",\\n          \\\"document_type\\\":\\\"SSN\\\"\\n        }\\n      ],\\n      \\\"physical_docs\\\":[\\n        {\\n          \\\"document_value\\\": \\\"data:image/gif;base64,R0lGOD==\\\",\\n          \\\"document_type\\\": \\\"GOVT_ID\\\"\\n        }\\n      ]\\n    }\\n  ]\\n}\",\n      \"language\": \"http\",\n      \"name\": \"Add Documents\"\n    },\n    {\n      \"code\": \"{\\n  \\\"_id\\\": \\\"59135352ce9311001e3a8f43\\\",\\n  \\\"_links\\\": {\\n    \\\"self\\\": {\\n      \\\"href\\\": \\\"https://uat-api.synapsefi.com/v3.1/users/59135352ce9311001e3a8f43\\\"\\n    }\\n  },\\n  \\\"client\\\": {\\n    \\\"id\\\": \\\"589a9eed86c2736412ce7e21\\\",\\n    \\\"name\\\": \\\"Client Platform\\\"\\n  },\\n  \\\"doc_status\\\": {\\n    \\\"physical_doc\\\": \\\"MISSING|INVALID\\\",\\n    \\\"virtual_doc\\\": \\\"MISSING|INVALID\\\"\\n  },\\n  \\\"documents\\\": [\\n    {\\n      \\\"id\\\": \\\"4c3d01727e2f554e51c0cf92c114c763b1291a58bdc783a82e5e18e8fc70b844\\\",\\n      \\\"name\\\": \\\"Beneficial Owner\\\",\\n      \\\"permission_scope\\\": \\\"UNVERIFIED\\\",\\n      \\\"physical_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"GOVT_ID\\\",\\n          \\\"id\\\": \\\"fbab7ed1d3e7b5391c54e3e60ab0db148d6fb6016b3c20aecdeb45b6f27f4cb4\\\",\\n          \\\"last_updated\\\": 1494434566951,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ],\\n      \\\"social_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"PHONE_NUMBER\\\",\\n          \\\"id\\\": \\\"95a6638a9d700ac4a26cbf55d97ee72abb5f85c7ff75de6aa66c316218960730\\\",\\n          \\\"last_updated\\\": 1494434567924,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"IP\\\",\\n          \\\"id\\\": \\\"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\\\",\\n          \\\"last_updated\\\": 1494434568410,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"EMAIL\\\",\\n          \\\"id\\\": \\\"1776f9e6ce198edc4feb3f158692c6eb4bb42fe66cb9eb819bf7e884f0c54b45\\\",\\n          \\\"last_updated\\\": 1494434567439,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ],\\n      \\\"virtual_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"SSN\\\",\\n          \\\"id\\\": \\\"a0e9fe45c418a2a9ace120d044e13793c60a3eec9cd84bc8c662349cb4e9ee03\\\",\\n          \\\"last_updated\\\": 1494434566461,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ]\\n    }\\n  ],\\n  \\\"emails\\\": [],\\n  \\\"extra\\\": {\\n    \\\"cip_tag\\\": 1,\\n    \\\"date_joined\\\": 1494433713318,\\n    \\\"extra_security\\\": false,\\n    \\\"is_business\\\": true,\\n    \\\"last_updated\\\": 1494434565964,\\n    \\\"public_note\\\": null,\\n    \\\"supp_id\\\": null\\n  },\\n  \\\"is_hidden\\\": false,\\n  \\\"legal_names\\\": [\\n    \\\"Business User\\\"\\n  ],\\n  \\\"logins\\\": [\\n    {\\n      \\\"email\\\": \\\"businessUser@test.com\\\",\\n      \\\"scope\\\": \\\"READ_AND_WRITE\\\"\\n    }\\n  ],\\n  \\\"permission\\\": \\\"UNVERIFIED\\\",\\n  \\\"phone_numbers\\\": [\\n    \\\"111-222-7777\\\"\\n  ],\\n  \\\"photos\\\": [],\\n  \\\"refresh_token\\\": \\\"refresh_b67096cc359d11e7bd770230ad3f183e\\\"\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Response\"\n    }\n  ]\n}\n[/block]\nIn the next step, we'll add KYC documents corresponding to the business info. However, the business info requires 3 physical documents to be submitted. Since submitting more than one physical document at a time can result in a delayed response, we'll split this step into 3 separate API calls: \nA) [Add Documents](doc:adding-documents) to add the base document + TIN (virtual document) + EIN_DOC (physical document), \nB) [Update Existing Document](doc:updating-existing-document) to add the second physical document (BYLAWS_DOC) to the business info set, \nC) [Update Existing Document](doc:updating-existing-document) to add the third physical document (AOI) to the business info set.\n\nHere's the request for **step A**: base document + TIN + EIN_DOC\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"PATCH /v3.1/users/59135352ce9311001e3a8f43 HTTP/1.1\\nHost: uat-api.synapsefi.com\\nX-SP-GATEWAY: client_id|client_secret\\nX-SP-USER-IP: 127.0.0.1\\nX-SP-USER: oauth_key|fingerprint\\nContent-Type: application/json\\n\\n{\\n  \\\"documents\\\":[\\n  \\t{\\n      \\\"email\\\":\\\"businessEmail@test.com\\\",\\n      \\\"phone_number\\\":\\\"222-333-4444\\\",\\n      \\\"ip\\\":\\\"12134323\\\",\\n      \\\"name\\\":\\\"Business Name\\\",\\n      \\\"alias\\\":\\\"Business Name\\\",\\n      \\\"entity_type\\\":\\\"LLC\\\",\\n      \\\"entity_scope\\\":\\\"Bank & Financial Services\\\",\\n      \\\"day\\\":2,\\n      \\\"month\\\":6,\\n      \\\"year\\\":2010,\\n      \\\"address_street\\\":\\\"120 Mission St\\\",\\n      \\\"address_city\\\":\\\"SF\\\",\\n      \\\"address_subdivision\\\":\\\"CA\\\",\\n      \\\"address_postal_code\\\":\\\"94114\\\",\\n      \\\"address_country_code\\\":\\\"US\\\",\\n      \\\"virtual_docs\\\": [\\n        {\\n          \\\"document_value\\\":\\\"2222\\\",\\n          \\\"document_type\\\":\\\"TIN\\\"\\n        }\\n      ],\\n      \\\"physical_docs\\\": [\\n        {\\n          \\\"document_value\\\":\\\"data:image/gif;base64,R0lGODl===\\\",\\n          \\\"document_type\\\":\\\"EIN_DOC\\\"\\n        }\\n      ]\\n    }\\n  ]\\n}\",\n      \"language\": \"http\",\n      \"name\": \"Add Documents\"\n    },\n    {\n      \"code\": \"{\\n  \\\"_id\\\": \\\"59135352ce9311001e3a8f43\\\",\\n  \\\"_links\\\": {\\n    \\\"self\\\": {\\n      \\\"href\\\": \\\"https://uat-api.synapsefi.com/v3.1/users/59135352ce9311001e3a8f43\\\"\\n    }\\n  },\\n  \\\"client\\\": {\\n    \\\"id\\\": \\\"589a9eed86c2736412ce7e21\\\",\\n    \\\"name\\\": \\\"Client Platform\\\"\\n  },\\n  \\\"doc_status\\\": {\\n    \\\"physical_doc\\\": \\\"MISSING|INVALID\\\",\\n    \\\"virtual_doc\\\": \\\"MISSING|INVALID\\\"\\n  },\\n  \\\"documents\\\": [\\n    {\\n      \\\"id\\\": \\\"4c3d01727e2f554e51c0cf92c114c763b1291a58bdc783a82e5e18e8fc70b844\\\",\\n      \\\"name\\\": \\\"Beneficial Owner\\\",\\n      \\\"permission_scope\\\": \\\"SEND|RECEIVE|2000|DAILY\\\",\\n      \\\"physical_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"GOVT_ID\\\",\\n          \\\"id\\\": \\\"fbab7ed1d3e7b5391c54e3e60ab0db148d6fb6016b3c20aecdeb45b6f27f4cb4\\\",\\n          \\\"last_updated\\\": 1494434569630,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ],\\n      \\\"social_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"EMAIL\\\",\\n          \\\"id\\\": \\\"1776f9e6ce198edc4feb3f158692c6eb4bb42fe66cb9eb819bf7e884f0c54b45\\\",\\n          \\\"last_updated\\\": 1494434569633,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"IP\\\",\\n          \\\"id\\\": \\\"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\\\",\\n          \\\"last_updated\\\": 1494434569633,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"PHONE_NUMBER\\\",\\n          \\\"id\\\": \\\"95a6638a9d700ac4a26cbf55d97ee72abb5f85c7ff75de6aa66c316218960730\\\",\\n          \\\"last_updated\\\": 1494434569633,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ],\\n      \\\"virtual_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"SSN\\\",\\n          \\\"id\\\": \\\"a0e9fe45c418a2a9ace120d044e13793c60a3eec9cd84bc8c662349cb4e9ee03\\\",\\n          \\\"last_updated\\\": 1494434569628,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\\"id\\\": \\\"e82fc224a90cb7696a07361b788c71d78f6eb2ff628c6ecf014b5b63cf5d6b81\\\",\\n      \\\"name\\\": \\\"Business Name\\\",\\n      \\\"permission_scope\\\": \\\"UNVERIFIED\\\",\\n      \\\"physical_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"EIN_DOC\\\",\\n          \\\"id\\\": \\\"d96c7d22b5c4e33809952c00df524f1c83a4706e8d9af8b891d01675b162190c\\\",\\n          \\\"last_updated\\\": 1494436045671,\\n          \\\"status\\\": \\\"SUBMITTED\\\"\\n        }\\n      ],\\n      \\\"social_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"PHONE_NUMBER\\\",\\n          \\\"id\\\": \\\"510a94628812b825a1703cf34c13f5c16329562954fa8dcd176ef31412424256\\\",\\n          \\\"last_updated\\\": 1494436046648,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"IP\\\",\\n          \\\"id\\\": \\\"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\\\",\\n          \\\"last_updated\\\": 1494436047140,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"EMAIL\\\",\\n          \\\"id\\\": \\\"e5b7a9b26fbe3d7da4b6cff02325e8e44797497ba0a9683c28badb96d86c5540\\\",\\n          \\\"last_updated\\\": 1494436046161,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ],\\n      \\\"virtual_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"TIN\\\",\\n          \\\"id\\\": \\\"a55cc12f46e8091f741b978d5fa556b2f8772a75007a82aae10a2fd810f644cb\\\",\\n          \\\"last_updated\\\": 1494436045169,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ]\\n    }\\n  ],\\n  \\\"emails\\\": [],\\n  \\\"extra\\\": {\\n    \\\"cip_tag\\\": 1,\\n    \\\"date_joined\\\": 1494433713318,\\n    \\\"extra_security\\\": false,\\n    \\\"is_business\\\": true,\\n    \\\"last_updated\\\": 1494436044640,\\n    \\\"public_note\\\": null,\\n    \\\"supp_id\\\": null\\n  },\\n  \\\"is_hidden\\\": false,\\n  \\\"legal_names\\\": [\\n    \\\"Business User\\\"\\n  ],\\n  \\\"logins\\\": [\\n    {\\n      \\\"email\\\": \\\"businessUser@test.com\\\",\\n      \\\"scope\\\": \\\"READ_AND_WRITE\\\"\\n    }\\n  ],\\n  \\\"permission\\\": \\\"UNVERIFIED\\\",\\n  \\\"phone_numbers\\\": [\\n    \\\"111-222-7777\\\"\\n  ],\\n  \\\"photos\\\": [],\\n  \\\"refresh_token\\\": \\\"refresh_b67096cc359d11e7bd770230ad3f183e\\\"\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Response\"\n    }\n  ]\n}\n[/block]\nAs you can see in the response from step A, there are now 2 base document objects in the `documents` array: one corresponds to the beneficial owner and the other corresponds to the business info. \n\nLooking at the base document object that corresponds to the beneficial owner (document id: `4c3d01727e2f554e51c0cf92c114c763b1291a58bdc783a82e5e18e8fc70b844`), we can see that the document `permission_scope` is `SEND|RECEIVE|2000|DAILY`. This means that the appropriate KYC documents for the beneficial owner (`SSN` and `GOVT_ID`) were submitted and valid.\n\nHowever, the base document object that corresponds to the business info (document id: `e82fc224a90cb7696a07361b788c71d78f6eb2ff628c6ecf014b5b63cf5d6b81`) has a document `permission_scope` of `UNVERIFIED`. This is because we have only added the `TIN` and `EIN_DOC`, so we still need to submit the `BYLAWS_DOC` and `AOI` in order to have a document `permission_scope` of `SEND|RECEIVE|2000|DAILY`.\n\nIn addition, notice that the overall user `permission` is still `UNVERIFIED`. When there are multiple document objects in the `documents` array, the lowest document `permission_scope` ends up being the `permission` associated with the user account. In this case, the business info object has the lowest document `permission_scope` of `UNVERIFIED` so the overall user `permission` remains at `UNVERIFIED`.\n\n**Step B**: Add the second physical document (BYLAWS_DOC) to the business info set\n\nGrab the document id that corresponds to the business info (`e82fc224a90cb7696a07361b788c71d78f6eb2ff628c6ecf014b5b63cf5d6b81`) so you can make a call to [Update Existing Document](doc:updating-existing-document) in order to add the `BYLAWS_DOC` to the `physical_docs` in the business info object.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"PATCH /v3.1/users/59135352ce9311001e3a8f43 HTTP/1.1\\nHost: uat-api.synapsefi.com\\nX-SP-GATEWAY: client_id|client_secret\\nX-SP-USER-IP: 127.0.0.1\\nX-SP-USER: oauth_key|fingerprint\\nContent-Type: application/json\\n\\n{\\n  \\\"documents\\\":[\\n    {\\n      \\\"id\\\":\\\"e82fc224a90cb7696a07361b788c71d78f6eb2ff628c6ecf014b5b63cf5d6b81\\\",\\n      \\\"physical_docs\\\": [\\n        {\\n          \\\"document_value\\\":\\\"data:image/gif;base64,R0lGODlhM===\\\",\\n          \\\"document_type\\\":\\\"BYLAWS_DOC\\\"\\n        }\\n      ]\\n    }\\n  ]\\n}\",\n      \"language\": \"http\",\n      \"name\": \"Update Existing Document\"\n    },\n    {\n      \"code\": \"{\\n  \\\"_id\\\": \\\"59135352ce9311001e3a8f43\\\",\\n  \\\"_links\\\": {\\n    \\\"self\\\": {\\n      \\\"href\\\": \\\"https://uat-api.synapsefi.com/v3.1/users/59135352ce9311001e3a8f43\\\"\\n    }\\n  },\\n  \\\"client\\\": {\\n    \\\"id\\\": \\\"589a9eed86c2736412ce7e21\\\",\\n    \\\"name\\\": \\\"Client Platform\\\"\\n  },\\n  \\\"doc_status\\\": {\\n    \\\"physical_doc\\\": \\\"MISSING|INVALID\\\",\\n    \\\"virtual_doc\\\": \\\"MISSING|INVALID\\\"\\n  },\\n  \\\"documents\\\": [\\n    {\\n      \\\"id\\\": \\\"4c3d01727e2f554e51c0cf92c114c763b1291a58bdc783a82e5e18e8fc70b844\\\",\\n      \\\"name\\\": \\\"Beneficial Owner\\\",\\n      \\\"permission_scope\\\": \\\"SEND|RECEIVE|2000|DAILY\\\",\\n      \\\"physical_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"GOVT_ID\\\",\\n          \\\"id\\\": \\\"fbab7ed1d3e7b5391c54e3e60ab0db148d6fb6016b3c20aecdeb45b6f27f4cb4\\\",\\n          \\\"last_updated\\\": 1494436048372,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ],\\n      \\\"social_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"IP\\\",\\n          \\\"id\\\": \\\"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\\\",\\n          \\\"last_updated\\\": 1494436048376,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"EMAIL\\\",\\n          \\\"id\\\": \\\"1776f9e6ce198edc4feb3f158692c6eb4bb42fe66cb9eb819bf7e884f0c54b45\\\",\\n          \\\"last_updated\\\": 1494436048375,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"PHONE_NUMBER\\\",\\n          \\\"id\\\": \\\"95a6638a9d700ac4a26cbf55d97ee72abb5f85c7ff75de6aa66c316218960730\\\",\\n          \\\"last_updated\\\": 1494436048376,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ],\\n      \\\"virtual_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"SSN\\\",\\n          \\\"id\\\": \\\"a0e9fe45c418a2a9ace120d044e13793c60a3eec9cd84bc8c662349cb4e9ee03\\\",\\n          \\\"last_updated\\\": 1494436048369,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\\"id\\\": \\\"e82fc224a90cb7696a07361b788c71d78f6eb2ff628c6ecf014b5b63cf5d6b81\\\",\\n      \\\"name\\\": \\\"Business Name\\\",\\n      \\\"permission_scope\\\": \\\"UNVERIFIED\\\",\\n      \\\"physical_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"EIN_DOC\\\",\\n          \\\"id\\\": \\\"d96c7d22b5c4e33809952c00df524f1c83a4706e8d9af8b891d01675b162190c\\\",\\n          \\\"last_updated\\\": 1494436048905,\\n          \\\"status\\\": \\\"SUBMITTED\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"BYLAWS_DOC\\\",\\n          \\\"id\\\": \\\"eddd2fe8fc8e9192bfc159261ab6b44591660ce9eca3a38e7ea003b5cff1d26a\\\",\\n          \\\"last_updated\\\": 1494437106093,\\n          \\\"status\\\": \\\"SUBMITTED\\\"\\n        }\\n      ],\\n      \\\"social_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"PHONE_NUMBER\\\",\\n          \\\"id\\\": \\\"510a94628812b825a1703cf34c13f5c16329562954fa8dcd176ef31412424256\\\",\\n          \\\"last_updated\\\": 1494436048908,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"IP\\\",\\n          \\\"id\\\": \\\"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\\\",\\n          \\\"last_updated\\\": 1494436048908,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"EMAIL\\\",\\n          \\\"id\\\": \\\"e5b7a9b26fbe3d7da4b6cff02325e8e44797497ba0a9683c28badb96d86c5540\\\",\\n          \\\"last_updated\\\": 1494436048908,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ],\\n      \\\"virtual_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"TIN\\\",\\n          \\\"id\\\": \\\"a55cc12f46e8091f741b978d5fa556b2f8772a75007a82aae10a2fd810f644cb\\\",\\n          \\\"last_updated\\\": 1494436048901,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ]\\n    }\\n  ],\\n  \\\"emails\\\": [],\\n  \\\"extra\\\": {\\n    \\\"cip_tag\\\": 1,\\n    \\\"date_joined\\\": 1494433713318,\\n    \\\"extra_security\\\": false,\\n    \\\"is_business\\\": true,\\n    \\\"last_updated\\\": 1494437106083,\\n    \\\"public_note\\\": null,\\n    \\\"supp_id\\\": null\\n  },\\n  \\\"is_hidden\\\": false,\\n  \\\"legal_names\\\": [\\n    \\\"Business User\\\"\\n  ],\\n  \\\"logins\\\": [\\n    {\\n      \\\"email\\\": \\\"businessUser@test.com\\\",\\n      \\\"scope\\\": \\\"READ_AND_WRITE\\\"\\n    }\\n  ],\\n  \\\"permission\\\": \\\"UNVERIFIED\\\",\\n  \\\"phone_numbers\\\": [\\n    \\\"111-222-7777\\\"\\n  ],\\n  \\\"photos\\\": [],\\n  \\\"refresh_token\\\": \\\"refresh_b67096cc359d11e7bd770230ad3f183e\\\"\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Response\"\n    }\n  ]\n}\n[/block]\nAs you can see in the response from step B, the `physical_docs` (in the business info object) now contains 2 documents: the `EIN_DOC` from step A and the `BYLAWS_DOC` that was just added.\n\n**Step C)** Add the third physical document (AOI) to the business info set:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"PATCH /v3.1/users/59135352ce9311001e3a8f43 HTTP/1.1\\nHost: uat-api.synapsefi.com\\nX-SP-GATEWAY: client_id|client_secret\\nX-SP-USER-IP: 127.0.0.1\\nX-SP-USER: oauth_key|fingerprint\\nContent-Type: application/json\\n\\n{\\n  \\\"documents\\\":[\\n    {\\n      \\\"id\\\":\\\"e82fc224a90cb7696a07361b788c71d78f6eb2ff628c6ecf014b5b63cf5d6b81\\\",\\n      \\\"physical_docs\\\": [\\n        {\\n          \\\"document_value\\\":\\\"data:image/gif;base64,R0lGODlhMAA==\\\",\\n          \\\"document_type\\\":\\\"AOI\\\"\\n        }\\n      ]\\n    }\\n  ]\\n}\",\n      \"language\": \"http\",\n      \"name\": \"Update Existing Document\"\n    },\n    {\n      \"code\": \"{\\n  \\\"_id\\\": \\\"59135352ce9311001e3a8f43\\\",\\n  \\\"_links\\\": {\\n    \\\"self\\\": {\\n      \\\"href\\\": \\\"https://uat-api.synapsefi.com/v3.1/users/59135352ce9311001e3a8f43\\\"\\n    }\\n  },\\n  \\\"client\\\": {\\n    \\\"id\\\": \\\"589a9eed86c2736412ce7e21\\\",\\n    \\\"name\\\": \\\"Client Platform\\\"\\n  },\\n  \\\"doc_status\\\": {\\n    \\\"physical_doc\\\": \\\"MISSING|INVALID\\\",\\n    \\\"virtual_doc\\\": \\\"MISSING|INVALID\\\"\\n  },\\n  \\\"documents\\\": [\\n    {\\n      \\\"id\\\": \\\"e82fc224a90cb7696a07361b788c71d78f6eb2ff628c6ecf014b5b63cf5d6b81\\\",\\n      \\\"name\\\": \\\"Business Name\\\",\\n      \\\"permission_scope\\\": \\\"UNVERIFIED\\\",\\n      \\\"physical_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"EIN_DOC\\\",\\n          \\\"id\\\": \\\"d96c7d22b5c4e33809952c00df524f1c83a4706e8d9af8b891d01675b162190c\\\",\\n          \\\"last_updated\\\": 1494437107870,\\n          \\\"status\\\": \\\"SUBMITTED\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"BYLAWS_DOC\\\",\\n          \\\"id\\\": \\\"eddd2fe8fc8e9192bfc159261ab6b44591660ce9eca3a38e7ea003b5cff1d26a\\\",\\n          \\\"last_updated\\\": 1494437107870,\\n          \\\"status\\\": \\\"SUBMITTED\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"AOI\\\",\\n          \\\"id\\\": \\\"32cc21dc86f3aab063b3b2ee28c32926a067aad2b9aab3a786656250f4fe98c7\\\",\\n          \\\"last_updated\\\": 1494438154135,\\n          \\\"status\\\": \\\"SUBMITTED\\\"\\n        }\\n      ],\\n      \\\"social_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"IP\\\",\\n          \\\"id\\\": \\\"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\\\",\\n          \\\"last_updated\\\": 1494437107873,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"PHONE_NUMBER\\\",\\n          \\\"id\\\": \\\"510a94628812b825a1703cf34c13f5c16329562954fa8dcd176ef31412424256\\\",\\n          \\\"last_updated\\\": 1494437107873,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"EMAIL\\\",\\n          \\\"id\\\": \\\"e5b7a9b26fbe3d7da4b6cff02325e8e44797497ba0a9683c28badb96d86c5540\\\",\\n          \\\"last_updated\\\": 1494437107873,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ],\\n      \\\"virtual_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"TIN\\\",\\n          \\\"id\\\": \\\"a55cc12f46e8091f741b978d5fa556b2f8772a75007a82aae10a2fd810f644cb\\\",\\n          \\\"last_updated\\\": 1494437107866,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\\"id\\\": \\\"4c3d01727e2f554e51c0cf92c114c763b1291a58bdc783a82e5e18e8fc70b844\\\",\\n      \\\"name\\\": \\\"Beneficial Owner\\\",\\n      \\\"permission_scope\\\": \\\"SEND|RECEIVE|2000|DAILY\\\",\\n      \\\"physical_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"GOVT_ID\\\",\\n          \\\"id\\\": \\\"fbab7ed1d3e7b5391c54e3e60ab0db148d6fb6016b3c20aecdeb45b6f27f4cb4\\\",\\n          \\\"last_updated\\\": 1494437107362,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ],\\n      \\\"social_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"EMAIL\\\",\\n          \\\"id\\\": \\\"1776f9e6ce198edc4feb3f158692c6eb4bb42fe66cb9eb819bf7e884f0c54b45\\\",\\n          \\\"last_updated\\\": 1494437107365,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"PHONE_NUMBER\\\",\\n          \\\"id\\\": \\\"95a6638a9d700ac4a26cbf55d97ee72abb5f85c7ff75de6aa66c316218960730\\\",\\n          \\\"last_updated\\\": 1494437107365,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"IP\\\",\\n          \\\"id\\\": \\\"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\\\",\\n          \\\"last_updated\\\": 1494437107365,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ],\\n      \\\"virtual_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"SSN\\\",\\n          \\\"id\\\": \\\"a0e9fe45c418a2a9ace120d044e13793c60a3eec9cd84bc8c662349cb4e9ee03\\\",\\n          \\\"last_updated\\\": 1494437107359,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ]\\n    }\\n  ],\\n  \\\"emails\\\": [],\\n  \\\"extra\\\": {\\n    \\\"cip_tag\\\": 1,\\n    \\\"date_joined\\\": 1494433713318,\\n    \\\"extra_security\\\": false,\\n    \\\"is_business\\\": true,\\n    \\\"last_updated\\\": 1494438154125,\\n    \\\"public_note\\\": null,\\n    \\\"supp_id\\\": null\\n  },\\n  \\\"is_hidden\\\": false,\\n  \\\"legal_names\\\": [\\n    \\\"Business User\\\"\\n  ],\\n  \\\"logins\\\": [\\n    {\\n      \\\"email\\\": \\\"businessUser@test.com\\\",\\n      \\\"scope\\\": \\\"READ_AND_WRITE\\\"\\n    }\\n  ],\\n  \\\"permission\\\": \\\"UNVERIFIED\\\",\\n  \\\"phone_numbers\\\": [\\n    \\\"111-222-7777\\\"\\n  ],\\n  \\\"photos\\\": [],\\n  \\\"refresh_token\\\": \\\"refresh_b67096cc359d11e7bd770230ad3f183e\\\"\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Response\"\n    }\n  ]\n}\n[/block]\nSince the user `permission` and document `permission_scope` is updated asynchronously, make a request to [Get User](doc:get-user) to get the most recent information on the user.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"_id\\\": \\\"59135352ce9311001e3a8f43\\\",\\n  \\\"_links\\\": {\\n    \\\"self\\\": {\\n      \\\"href\\\": \\\"https://uat-api.synapsefi.com/v3.1/users/59135352ce9311001e3a8f43\\\"\\n    }\\n  },\\n  \\\"client\\\": {\\n    \\\"id\\\": \\\"589a9eed86c2736412ce7e21\\\",\\n    \\\"name\\\": \\\"Client Platform\\\"\\n  },\\n  \\\"doc_status\\\": {\\n    \\\"physical_doc\\\": \\\"SUBMITTED|VALID\\\",\\n    \\\"virtual_doc\\\": \\\"SUBMITTED|VALID\\\"\\n  },\\n  \\\"documents\\\": [\\n    {\\n      \\\"id\\\": \\\"e82fc224a90cb7696a07361b788c71d78f6eb2ff628c6ecf014b5b63cf5d6b81\\\",\\n      \\\"name\\\": \\\"Business Name\\\",\\n      \\\"permission_scope\\\": \\\"SEND|RECEIVE|2000|DAILY\\\",\\n      \\\"physical_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"EIN_DOC\\\",\\n          \\\"id\\\": \\\"d96c7d22b5c4e33809952c00df524f1c83a4706e8d9af8b891d01675b162190c\\\",\\n          \\\"last_updated\\\": 1494437107870,\\n          \\\"status\\\": \\\"SUBMITTED\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"BYLAWS_DOC\\\",\\n          \\\"id\\\": \\\"eddd2fe8fc8e9192bfc159261ab6b44591660ce9eca3a38e7ea003b5cff1d26a\\\",\\n          \\\"last_updated\\\": 1494437107870,\\n          \\\"status\\\": \\\"SUBMITTED\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"AOI\\\",\\n          \\\"id\\\": \\\"32cc21dc86f3aab063b3b2ee28c32926a067aad2b9aab3a786656250f4fe98c7\\\",\\n          \\\"last_updated\\\": 1494438154135,\\n          \\\"status\\\": \\\"SUBMITTED\\\"\\n        }\\n      ],\\n      \\\"social_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"IP\\\",\\n          \\\"id\\\": \\\"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\\\",\\n          \\\"last_updated\\\": 1494437107873,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"PHONE_NUMBER\\\",\\n          \\\"id\\\": \\\"510a94628812b825a1703cf34c13f5c16329562954fa8dcd176ef31412424256\\\",\\n          \\\"last_updated\\\": 1494437107873,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"EMAIL\\\",\\n          \\\"id\\\": \\\"e5b7a9b26fbe3d7da4b6cff02325e8e44797497ba0a9683c28badb96d86c5540\\\",\\n          \\\"last_updated\\\": 1494437107873,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ],\\n      \\\"virtual_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"TIN\\\",\\n          \\\"id\\\": \\\"a55cc12f46e8091f741b978d5fa556b2f8772a75007a82aae10a2fd810f644cb\\\",\\n          \\\"last_updated\\\": 1494437107866,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\\"id\\\": \\\"4c3d01727e2f554e51c0cf92c114c763b1291a58bdc783a82e5e18e8fc70b844\\\",\\n      \\\"name\\\": \\\"Beneficial Owner\\\",\\n      \\\"permission_scope\\\": \\\"SEND|RECEIVE|2000|DAILY\\\",\\n      \\\"physical_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"GOVT_ID\\\",\\n          \\\"id\\\": \\\"fbab7ed1d3e7b5391c54e3e60ab0db148d6fb6016b3c20aecdeb45b6f27f4cb4\\\",\\n          \\\"last_updated\\\": 1494437107362,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ],\\n      \\\"social_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"EMAIL\\\",\\n          \\\"id\\\": \\\"1776f9e6ce198edc4feb3f158692c6eb4bb42fe66cb9eb819bf7e884f0c54b45\\\",\\n          \\\"last_updated\\\": 1494437107365,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"PHONE_NUMBER\\\",\\n          \\\"id\\\": \\\"95a6638a9d700ac4a26cbf55d97ee72abb5f85c7ff75de6aa66c316218960730\\\",\\n          \\\"last_updated\\\": 1494437107365,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        },\\n        {\\n          \\\"document_type\\\": \\\"IP\\\",\\n          \\\"id\\\": \\\"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\\\",\\n          \\\"last_updated\\\": 1494437107365,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ],\\n      \\\"virtual_docs\\\": [\\n        {\\n          \\\"document_type\\\": \\\"SSN\\\",\\n          \\\"id\\\": \\\"a0e9fe45c418a2a9ace120d044e13793c60a3eec9cd84bc8c662349cb4e9ee03\\\",\\n          \\\"last_updated\\\": 1494437107359,\\n          \\\"status\\\": \\\"SUBMITTED|VALID\\\"\\n        }\\n      ]\\n    }\\n  ],\\n  \\\"emails\\\": [],\\n  \\\"extra\\\": {\\n    \\\"cip_tag\\\": 1,\\n    \\\"date_joined\\\": 1494433713318,\\n    \\\"extra_security\\\": false,\\n    \\\"is_business\\\": true,\\n    \\\"last_updated\\\": 1494438154125,\\n    \\\"public_note\\\": null,\\n    \\\"supp_id\\\": null\\n  },\\n  \\\"is_hidden\\\": false,\\n  \\\"legal_names\\\": [\\n    \\\"Business User\\\"\\n  ],\\n  \\\"logins\\\": [\\n    {\\n      \\\"email\\\": \\\"businessUser@test.com\\\",\\n      \\\"scope\\\": \\\"READ_AND_WRITE\\\"\\n    }\\n  ],\\n  \\\"permission\\\": \\\"SEND-AND-RECEIVE\\\",\\n  \\\"phone_numbers\\\": [\\n    \\\"111-222-7777\\\"\\n  ],\\n  \\\"photos\\\": [],\\n  \\\"refresh_token\\\": \\\"refresh_b67096cc359d11e7bd770230ad3f183e\\\"\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Response from GET User\"\n    }\n  ]\n}\n[/block]\nAs you can see from the response, the business user (_id: `59135352ce9311001e3a8f43`) now has `SEND-AND-RECEIVE` permissions so they can send and receive funds with a daily transaction limit of `2000`. \n\n## 4. Add Nodes (Link Bank Accounts)\n\n### Add Nodes for Individual User\n\nAccording to the example CIP, individuals (with cip_tag: 1) are allowed to have 2 [node types](doc:node-resources#section-node-types) (section `F`) under their user account: ACH-US and [SYNAPSE-US](doc:add-synapse-us-node). \n\nThere are two ways to add an ACH-US node to a user: via [bank login credentials](doc:add-ach-us-node) OR [account/routing numbers](doc:add-ach-us-node-via-acrt-s). ACH-US nodes that are added via account/routing numbers require micro-deposit verification. If an ACH-US node is added by supplying the user's online banking login credentials (for personal user accounts only), then micro-deposit verification is not required and the node instantly receives `CREDIT-AND-DEBIT` privileges (assuming the login credentials were correct). [Node permissions](doc:node-resources#section-node-permissions) are dependent on the node type and are separate from user permissions.\n\nIn addition, the node limit (section `G`) is 3 nodes per user. This means that there can be a maximum of 3 nodes under the user account. If a user adds an ACH-US node via [bank login](doc:add-ach-us-node), the response may contain multiple ACH-US nodes. The response returns all nodes that the user has under that bank login. For example, if there were 4 bank accounts/nodes associated with the user's bank login, then those 4 accounts would be added as ACH-US nodes to the user's account. This puts the user over their node limit of 3 nodes so we suggest displaying all of the nodes returned in the response and allowing the user to select the bank account/node they would like to use, then [delete](doc:delete-node) the other nodes.\n\nThe request to add an ACH-US node via [bank login](doc:add-ach-us-node) would look similar to the example below:\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Supported Institutions\",\n  \"body\": \"ACH-US Accounts added with Online Banking Logins are for consumer accounts only. For a full list of banks supported by online logins, visit: https://synapsepay.com/api/v3/institutions/show.\"\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"POST /v3.1/users/590bae4deba6500022ca53e0/nodes HTTP/1.1\\nHost: uat-api.synapsefi.com\\nX-SP-USER-IP: 127.0.0.1\\nX-SP-USER: oauth_key|fingerprint\\nContent-Type: application/json\\n\\n{\\n  \\\"type\\\": \\\"ACH-US\\\",\\n  \\\"info\\\":{\\n    \\\"bank_id\\\":\\\"synapse_good\\\",\\n    \\\"bank_pw\\\":\\\"test1234\\\",\\n    \\\"bank_name\\\":\\\"fake\\\"\\n  }\\n}\",\n      \"language\": \"http\",\n      \"name\": \"Add ACH-US (Bank Login)\"\n    },\n    {\n      \"code\": \"{\\n  \\\"error_code\\\": \\\"10\\\",\\n  \\\"http_code\\\": \\\"202\\\",\\n  \\\"mfa\\\": {\\n    \\\"access_token\\\": \\\"fake_cd60680b9addc013ca7fb25b2b704be324d0295b34a6e3d14473e3cc65aa82d3\\\",\\n    \\\"message\\\": \\\"I heard you like questions so we put a question in your question?\\\",\\n    \\\"type\\\": \\\"question\\\"\\n  },\\n  \\\"success\\\": true\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Response\"\n    }\n  ]\n}\n[/block]\nThe response from online bank logins can contain a MFA question so it's important that you correctly handle the [MFA verification](doc:add-ach-us-node-via-bank-logins-mfa). Notice in the response above that a MFA question was returned. MFAs can be triggered once or multiple times. Even when banks send multiple MFA questions, they will do so one at a time. It is recommended that you send an answer back for the first question and then re-check the response for an `http_code` of `\"202\"`, which means another MFA question was sent. Cycle through the questions in this way until `http_code` is `\"200\"`.\n\nGrab the `access_token` from the response above and submit the answer to the MFA question with this request:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"POST /v3.1/users/590bae4deba6500022ca53e0/nodes HTTP/1.1\\nHost: uat-api.synapsefi.com\\nX-SP-USER-IP: 127.0.0.1\\nX-SP-USER: oauth_key|fingerprint\\nContent-Type: application/json\\n\\n{\\n  \\\"access_token\\\":\\\"fake_cd60680b9addc013ca7fb25b2b704be324d0295b34a6e3d14473e3cc65aa82d3\\\",\\n  \\\"mfa_answer\\\":\\\"test_answer\\\"\\n}\",\n      \"language\": \"http\",\n      \"name\": \"HTTP\"\n    },\n    {\n      \"code\": \"{\\n  \\\"error_code\\\": \\\"0\\\",\\n  \\\"http_code\\\": \\\"200\\\",\\n  \\\"limit\\\": 2,\\n  \\\"node_count\\\": 2,\\n  \\\"nodes\\\": [\\n    {\\n      \\\"_id\\\": \\\"5910ac9465c7dd002aa469ae\\\",\\n      \\\"_links\\\": {\\n        \\\"self\\\": {\\n          \\\"href\\\": \\\"https://uat-api.synapsefi.com/v3.1/users/590bae4deba6500022ca53e0/nodes/5910ac9465c7dd002aa469ae\\\"\\n        }\\n      },\\n      \\\"allowed\\\": \\\"CREDIT-AND-DEBIT\\\",\\n      \\\"client\\\": {\\n        \\\"id\\\": \\\"589a9eed86c2736412ce7e21\\\",\\n        \\\"name\\\": \\\"Client Platform\\\"\\n      },\\n      \\\"extra\\\": {\\n        \\\"other\\\": {},\\n        \\\"supp_id\\\": \\\"\\\"\\n      },\\n      \\\"info\\\": {\\n        \\\"account_num\\\": \\\"8902\\\",\\n        \\\"address\\\": \\\"PO BOX 85139, RICHMOND, VA, US\\\",\\n        \\\"balance\\\": {\\n          \\\"amount\\\": \\\"750.00\\\",\\n          \\\"currency\\\": \\\"USD\\\"\\n        },\\n        \\\"bank_long_name\\\": \\\"CAPITAL ONE N.A.\\\",\\n        \\\"bank_name\\\": \\\"CAPITAL ONE N.A.\\\",\\n        \\\"class\\\": \\\"SAVINGS\\\",\\n        \\\"match_info\\\": {\\n          \\\"email_match\\\": \\\"no_match\\\",\\n          \\\"name_match\\\": \\\"match\\\",\\n          \\\"phonenumber_match\\\": \\\"no_match\\\"\\n        },\\n        \\\"name_on_account\\\": \\\" \\\",\\n        \\\"nickname\\\": \\\"SynapsePay Test Savings Account - 8902\\\",\\n        \\\"routing_num\\\": \\\"6110\\\",\\n        \\\"type\\\": \\\"BUSINESS\\\"\\n      },\\n      \\\"is_active\\\": true,\\n      \\\"timeline\\\": [\\n        {\\n          \\\"date\\\": 1494264979718,\\n          \\\"note\\\": \\\"Node created.\\\"\\n        }\\n      ],\\n      \\\"type\\\": \\\"ACH-US\\\",\\n      \\\"user_id\\\": \\\"590bae4deba6500022ca53e0\\\"\\n    },\\n    {\\n      \\\"_id\\\": \\\"5910ac9565c7dd002ba607f0\\\",\\n      \\\"_links\\\": {\\n        \\\"self\\\": {\\n          \\\"href\\\": \\\"https://uat-api.synapsefi.com/v3.1/users/590bae4deba6500022ca53e0/nodes/5910ac9565c7dd002ba607f0\\\"\\n        }\\n      },\\n      \\\"allowed\\\": \\\"CREDIT-AND-DEBIT\\\",\\n      \\\"client\\\": {\\n        \\\"id\\\": \\\"589a9eed86c2736412ce7e21\\\",\\n        \\\"name\\\": \\\"Client Platform\\\"\\n      },\\n      \\\"extra\\\": {\\n        \\\"other\\\": {},\\n        \\\"supp_id\\\": \\\"\\\"\\n      },\\n      \\\"info\\\": {\\n        \\\"account_num\\\": \\\"8901\\\",\\n        \\\"address\\\": \\\"PO BOX 85139, RICHMOND, VA, US\\\",\\n        \\\"balance\\\": {\\n          \\\"amount\\\": \\\"800.00\\\",\\n          \\\"currency\\\": \\\"USD\\\"\\n        },\\n        \\\"bank_long_name\\\": \\\"CAPITAL ONE N.A.\\\",\\n        \\\"bank_name\\\": \\\"CAPITAL ONE N.A.\\\",\\n        \\\"class\\\": \\\"CHECKING\\\",\\n        \\\"match_info\\\": {\\n          \\\"email_match\\\": \\\"no_match\\\",\\n          \\\"name_match\\\": \\\"match\\\",\\n          \\\"phonenumber_match\\\": \\\"no_match\\\"\\n        },\\n        \\\"name_on_account\\\": \\\" \\\",\\n        \\\"nickname\\\": \\\"SynapsePay Test Checking Account - 8901\\\",\\n        \\\"routing_num\\\": \\\"6110\\\",\\n        \\\"type\\\": \\\"PERSONAL\\\"\\n      },\\n      \\\"is_active\\\": true,\\n      \\\"timeline\\\": [\\n        {\\n          \\\"date\\\": 1494264980379,\\n          \\\"note\\\": \\\"Node created.\\\"\\n        }\\n      ],\\n      \\\"type\\\": \\\"ACH-US\\\",\\n      \\\"user_id\\\": \\\"590bae4deba6500022ca53e0\\\"\\n    }\\n  ],\\n  \\\"page_count\\\": 1,\\n  \\\"success\\\": true\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Response\"\n    }\n  ]\n}\n[/block]\nAs you can see in the response from submitting the MFA answer, the `http_code` is `\"200\"` meaning that the answer was correct, no additional MFA question was sent, and all the nodes associated with the bank login was returned. \n\n### Add Nodes for Business User\n\nAccording to the example CIP, business users (with cip_tag: 1) are allowed to have 2 [node types](doc:node-resources#section-node-types) under their user account: [ACH-US](doc:add-ach-us-node-via-acrt-s) and [SYNAPSE-US](doc:add-synapse-us-node). \n\nLet's add a `SYNAPSE-US` node and an `ACH-US` node (using account/routing numbers because business accounts are not allowed to add ACH-US nodes via the bank login method) to the business user:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"POST /v3.1/users/59135352ce9311001e3a8f43/nodes HTTP/1.1\\nHost: uat-api.synapsefi.com\\nX-SP-USER-IP: 127.0.0.1\\nX-SP-USER: oauth_key|fingerprint\\nContent-Type: application/json\\n\\n{\\n  \\\"type\\\": \\\"SYNAPSE-US\\\",\\n  \\\"info\\\":{\\n  \\\"nickname\\\":\\\"Business Deposit Account\\\"\\n  }\\n}\",\n      \"language\": \"http\",\n      \"name\": \"Add SYNAPSE-US\"\n    },\n    {\n      \"code\": \"{\\n  \\\"error_code\\\": \\\"0\\\",\\n  \\\"http_code\\\": \\\"200\\\",\\n  \\\"limit\\\": 20,\\n  \\\"node_count\\\": 1,\\n  \\\"nodes\\\": [\\n    {\\n      \\\"_id\\\": \\\"5913ebb3980216001f2a9925\\\",\\n      \\\"_links\\\": {\\n        \\\"self\\\": {\\n          \\\"href\\\": \\\"https://uat-api.synapsefi.com/v3.1/users/59135352ce9311001e3a8f43/nodes/5913ebb3980216001f2a9925\\\"\\n        }\\n      },\\n      \\\"allowed\\\": \\\"CREDIT-AND-DEBIT\\\",\\n      \\\"client\\\": {\\n        \\\"id\\\": \\\"589a9eed86c2736412ce7e21\\\",\\n        \\\"name\\\": \\\"Client Platform\\\"\\n      },\\n      \\\"extra\\\": {\\n        \\\"other\\\": {},\\n        \\\"supp_id\\\": \\\"\\\"\\n      },\\n      \\\"info\\\": {\\n        \\\"balance\\\": {\\n          \\\"amount\\\": 0,\\n          \\\"currency\\\": \\\"USD\\\"\\n        },\\n        \\\"name_on_account\\\": \\\" \\\",\\n        \\\"nickname\\\": \\\"Business Deposit Account\\\"\\n      },\\n      \\\"is_active\\\": true,\\n      \\\"timeline\\\": [\\n        {\\n          \\\"date\\\": 1494477747715,\\n          \\\"note\\\": \\\"Node created.\\\"\\n        }\\n      ],\\n      \\\"type\\\": \\\"SYNAPSE-US\\\",\\n      \\\"user_id\\\": \\\"59135352ce9311001e3a8f43\\\"\\n    }\\n  ],\\n  \\\"page_count\\\": 1,\\n  \\\"success\\\": true\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Response (SYNAPSE-US)\"\n    },\n    {\n      \"code\": \"POST /v3.1/users/59135352ce9311001e3a8f43/nodes HTTP/1.1\\nHost: uat-api.synapsefi.com\\nX-SP-USER-IP: 127.0.0.1\\nX-SP-USER: oauth_key|fingerprint\\nContent-Type: application/json\\n\\n{\\n  \\\"type\\\": \\\"ACH-US\\\",\\n  \\\"info\\\": {\\n    \\\"nickname\\\": \\\"Fake Account\\\",\\n    \\\"account_num\\\": \\\"123567412124234\\\",\\n    \\\"routing_num\\\": \\\"051000017\\\",\\n    \\\"type\\\": \\\"BUSINESS\\\",\\n    \\\"class\\\": \\\"CHECKING\\\"\\n  }\\n}\",\n      \"language\": \"http\",\n      \"name\": \"Add ACH-US (AC/RT)\"\n    },\n    {\n      \"code\": \"{\\n  \\\"error_code\\\": \\\"0\\\",\\n  \\\"http_code\\\": \\\"200\\\",\\n  \\\"limit\\\": 20,\\n  \\\"node_count\\\": 1,\\n  \\\"nodes\\\": [\\n    {\\n      \\\"_id\\\": \\\"5913ee0998021600202ab863\\\",\\n      \\\"_links\\\": {\\n        \\\"self\\\": {\\n          \\\"href\\\": \\\"https://uat-api.synapsefi.com/v3.1/users/59135352ce9311001e3a8f43/nodes/5913ee0998021600202ab863\\\"\\n        }\\n      },\\n      \\\"allowed\\\": \\\"CREDIT\\\",\\n      \\\"client\\\": {\\n        \\\"id\\\": \\\"589a9eed86c2736412ce7e21\\\",\\n        \\\"name\\\": \\\"Client Platform\\\"\\n      },\\n      \\\"extra\\\": {\\n        \\\"other\\\": {},\\n        \\\"supp_id\\\": \\\"\\\"\\n      },\\n      \\\"info\\\": {\\n        \\\"account_num\\\": \\\"4234\\\",\\n        \\\"address\\\": \\\"8001 VILLA PARK DRIVE, HENRICO, VA, US\\\",\\n        \\\"balance\\\": {\\n          \\\"amount\\\": \\\"0.00\\\",\\n          \\\"currency\\\": \\\"USD\\\"\\n        },\\n        \\\"bank_long_name\\\": \\\"BANK OF AMERICA, N.A.\\\",\\n        \\\"bank_name\\\": \\\"BANK OF AMERICA, N.A.\\\",\\n        \\\"class\\\": \\\"CHECKING\\\",\\n        \\\"match_info\\\": {\\n          \\\"email_match\\\": \\\"not_found\\\",\\n          \\\"name_match\\\": \\\"not_found\\\",\\n          \\\"phonenumber_match\\\": \\\"not_found\\\"\\n        },\\n        \\\"name_on_account\\\": \\\" \\\",\\n        \\\"nickname\\\": \\\"Fake Account\\\",\\n        \\\"routing_num\\\": \\\"0017\\\",\\n        \\\"type\\\": \\\"BUSINESS\\\"\\n      },\\n      \\\"is_active\\\": true,\\n      \\\"timeline\\\": [\\n        {\\n          \\\"date\\\": 1494478345223,\\n          \\\"note\\\": \\\"Node created.\\\"\\n        }\\n      ],\\n      \\\"type\\\": \\\"ACH-US\\\",\\n      \\\"user_id\\\": \\\"59135352ce9311001e3a8f43\\\"\\n    }\\n  ],\\n  \\\"page_count\\\": 1,\\n  \\\"success\\\": true\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Response (ACH-US)\"\n    }\n  ]\n}\n[/block]\nAs you can see in the response from adding the `SYNAPSE-US` node that `allowed` is `CREDIT-AND-DEBIT`. This corresponds to the [node permissions](doc:node-resources#section-node-permissions). By default all node types except ACH-US and RESERVE-US receive CREDIT-AND-DEBIT node permissions when created.\n\nNotice in the response from adding the `ACH-US` node that `allowed` is `CREDIT` only. ACH-US nodes added with account/routing numbers usually require micro-deposit verification in order to receive `CREDIT-AND-DEBIT` node permissions.\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Micro-deposit Verification\",\n  \"body\": \"Micro-deposits are automatically triggered after account / routing numbers are submitted. It can take 1-2 business days for the micro-deposits to appear in the user's bank account. To learn more about how micro-deposits work, read this [FAQ](https://help.synapsepay.com/hc/en-us/articles/206127287-How-do-Micro-Deposits-work-).\\n\\nPlease do not try to guess micro-deposit amounts. Nodes lock after 5 incorrect attempts. Also please note that micro-deposits are not sent to the bank account until the KYC process is finished for the user.\"\n}\n[/block]\nLet's [verify micro-deposit](doc:verify-micro-deposit) amounts for the ACH-US account (node `_id`: `5913ee0998021600202ab863`):\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"PATCH /v3.1/users/59135352ce9311001e3a8f43/nodes/5913ee0998021600202ab863 HTTP/1.1\\nHost: uat-api.synapsefi.com\\nX-SP-USER-IP: 127.0.0.1\\nX-SP-USER: oauth_key|fingerprint\\nContent-Type: application/json\\n\\n{\\n  \\\"micro\\\":[0.1,0.1]\\n}\",\n      \"language\": \"http\",\n      \"name\": \"Verify Micro-deposit\"\n    },\n    {\n      \"code\": \"{\\n  \\\"_id\\\": \\\"5913ee0998021600202ab863\\\",\\n  \\\"_links\\\": {\\n    \\\"self\\\": {\\n      \\\"href\\\": \\\"https://uat-api.synapsefi.com/v3.1/users/59135352ce9311001e3a8f43/nodes/5913ee0998021600202ab863\\\"\\n    }\\n  },\\n  \\\"allowed\\\": \\\"CREDIT-AND-DEBIT\\\",\\n  \\\"client\\\": {\\n    \\\"id\\\": \\\"589a9eed86c2736412ce7e21\\\",\\n    \\\"name\\\": \\\"Client Platform\\\"\\n  },\\n  \\\"extra\\\": {\\n    \\\"other\\\": {},\\n    \\\"supp_id\\\": \\\"\\\"\\n  },\\n  \\\"info\\\": {\\n    \\\"account_num\\\": \\\"4234\\\",\\n    \\\"address\\\": \\\"8001 VILLA PARK DRIVE, HENRICO, VA, US\\\",\\n    \\\"balance\\\": {\\n      \\\"amount\\\": \\\"0.00\\\",\\n      \\\"currency\\\": \\\"USD\\\"\\n    },\\n    \\\"bank_long_name\\\": \\\"BANK OF AMERICA, N.A.\\\",\\n    \\\"bank_name\\\": \\\"BANK OF AMERICA, N.A.\\\",\\n    \\\"class\\\": \\\"CHECKING\\\",\\n    \\\"match_info\\\": {\\n      \\\"email_match\\\": \\\"not_found\\\",\\n      \\\"name_match\\\": \\\"not_found\\\",\\n      \\\"phonenumber_match\\\": \\\"not_found\\\"\\n    },\\n    \\\"name_on_account\\\": \\\" \\\",\\n    \\\"nickname\\\": \\\"Fake Account\\\",\\n    \\\"routing_num\\\": \\\"0017\\\",\\n    \\\"type\\\": \\\"BUSINESS\\\"\\n  },\\n  \\\"is_active\\\": true,\\n  \\\"timeline\\\": [\\n    {\\n      \\\"date\\\": 1494478345223,\\n      \\\"note\\\": \\\"Node created.\\\"\\n    },\\n    {\\n      \\\"date\\\": 1494478345892,\\n      \\\"note\\\": \\\"Micro deposits initiated.\\\"\\n    },\\n    {\\n      \\\"date\\\": 1494522868395,\\n      \\\"note\\\": \\\"Correct Micro Deposit amounts attempted. Node's 'allowed' changed to 'CREDIT-AND-DEBIT'\\\"\\n    }\\n  ],\\n  \\\"type\\\": \\\"ACH-US\\\",\\n  \\\"user_id\\\": \\\"59135352ce9311001e3a8f43\\\"\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Response\"\n    }\n  ]\n}\n[/block]\nAs you can see in the response, `allowed` is `CREDIT-AND-DEBIT` so this ACH-US node can now be used to send or receive funds.\n\n## 5. Create a Transaction\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/894502f-Screen_Shot_2017-05-08_at_12.09.00_PM.png\",\n        \"Screen Shot 2017-05-08 at 12.09.00 PM.png\",\n        1212,\n        254,\n        \"#ededed\"\n      ],\n      \"caption\": \"An example flow of funds.\"\n    }\n  ]\n}\n[/block]\nAccording to the example flow of funds above, individuals (with cip_tag: 1) are allowed to send funds from their ACH-US node to the business's deposit account (SYNAPSE-US node). The business user can then send funds from their SYNAPSE-US node to their ACH-US node.\n\nIf users try to [create a transaction](doc:create-transaction) that is outside their allowed flow of funds, then the transaction will be canceled.\n\nLet's create 2 transactions where transaction 1 will be sending funds from the individual's ACH-US account to the business's SYNAPSE-US account, and transaction 2 will be sending funds from the business's SYNAPSE-US account to their ACH-US account.\n\n**Transaction 1**: Individual's ACH-US (node id: `5910ac9565c7dd002ba607f0`) --> Business's SYNAPSE-US (node id: `5913ebb3980216001f2a9925`)\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"POST /v3.1/users/590bae4deba6500022ca53e0/nodes/5910ac9565c7dd002ba607f0/trans HTTP/1.1\\nHost: uat-api.synapsefi.com\\nX-SP-USER-IP: 127.0.0.1\\nX-SP-USER: oauth_key|fingerprint\\nContent-Type: application/json\\n\\n{\\n  \\\"to\\\": {\\n    \\\"type\\\": \\\"SYNAPSE-US\\\",\\n    \\\"id\\\": \\\"5913ebb3980216001f2a9925\\\"\\n  },\\n  \\\"amount\\\": {\\n    \\\"amount\\\": 20.1,\\n    \\\"currency\\\": \\\"USD\\\"\\n  },\\n  \\\"extra\\\": {\\n    \\\"ip\\\": \\\"192.168.0.1\\\",\\n    \\\"note\\\": \\\"Test transaction\\\",\\n    \\\"process_on\\\": 0\\n  }\\n}\",\n      \"language\": \"http\",\n      \"name\": \"Create Transaction\"\n    },\n    {\n      \"code\": \"{\\n  \\\"_id\\\": \\\"5914bf20a396d9002212e72c\\\",\\n  \\\"_links\\\": {\\n    \\\"self\\\": {\\n      \\\"href\\\": \\\"https://uat-api.synapsefi.com/v3.1/users/590bae4deba6500022ca53e0/nodes/5910ac9565c7dd002ba607f0/trans/5914bf20a396d9002212e72c\\\"\\n    }\\n  },\\n  \\\"_v\\\": 2,\\n  \\\"amount\\\": {\\n    \\\"amount\\\": 20.1,\\n    \\\"currency\\\": \\\"USD\\\"\\n  },\\n  \\\"client\\\": {\\n    \\\"id\\\": \\\"589a9eed86c2736412ce7e21\\\",\\n    \\\"name\\\": \\\"Client Platform\\\"\\n  },\\n  \\\"extra\\\": {\\n    \\\"created_on\\\": 1494531872160,\\n    \\\"ip\\\": \\\"192.168.0.1\\\",\\n    \\\"latlon\\\": \\\"0,0\\\",\\n    \\\"note\\\": \\\"Test transaction\\\",\\n    \\\"process_on\\\": 1494531872160,\\n    \\\"supp_id\\\": \\\"\\\"\\n  },\\n  \\\"fees\\\": [\\n    {\\n      \\\"fee\\\": 0,\\n      \\\"note\\\": \\\"Facilitator Fee\\\",\\n      \\\"to\\\": {\\n        \\\"id\\\": \\\"None\\\"\\n      }\\n    }\\n  ],\\n  \\\"from\\\": {\\n    \\\"id\\\": \\\"5910ac9565c7dd002ba607f0\\\",\\n    \\\"nickname\\\": \\\"Fake Account\\\",\\n    \\\"type\\\": \\\"ACH-US\\\",\\n    \\\"user\\\": {\\n      \\\"_id\\\": \\\"590bae4deba6500022ca53e0\\\",\\n      \\\"legal_names\\\": []\\n    }\\n  },\\n  \\\"recent_status\\\": {\\n    \\\"date\\\": 1494531872160,\\n    \\\"note\\\": \\\"Transaction Created.\\\",\\n    \\\"status\\\": \\\"CREATED\\\",\\n    \\\"status_id\\\": \\\"1\\\"\\n  },\\n  \\\"timeline\\\": [\\n    {\\n      \\\"date\\\": 1494531872160,\\n      \\\"note\\\": \\\"Transaction Created.\\\",\\n      \\\"status\\\": \\\"CREATED\\\",\\n      \\\"status_id\\\": \\\"1\\\"\\n    }\\n  ],\\n  \\\"to\\\": {\\n    \\\"id\\\": \\\"5913ebb3980216001f2a9925\\\",\\n    \\\"nickname\\\": \\\"\\\",\\n    \\\"type\\\": \\\"SYNAPSE-US\\\",\\n    \\\"user\\\": {\\n      \\\"_id\\\": \\\"\\\",\\n      \\\"legal_names\\\": []\\n    }\\n  }\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Response\"\n    }\n  ]\n}\n[/block]\nInformation in the `to` node object is populated asynchronously so use [subscriptions](doc:subscriptions) or [GET Transaction](doc:transaction) to retrieve the most recent information on the transaction. We highly suggest [creating a subscription](doc:create-subscription) to `TRAN|PATCH` so you can be notified of transaction status updates.\n\n**Transaction 2**: Business's SYNAPSE-US (node id: `5913ebb3980216001f2a9925`) --> Business's ACH-US (node id: `5913ee0998021600202ab863`)\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"POST /v3.1/users/59135352ce9311001e3a8f43/nodes/5913ebb3980216001f2a9925/trans HTTP/1.1\\nHost: uat-api.synapsefi.com\\nX-SP-USER-IP: 127.0.0.1\\nX-SP-USER: oauth_key|fingerprint\\nContent-Type: application/json\\n\\n{\\n  \\\"to\\\": {\\n    \\\"type\\\": \\\"ACH-US\\\",\\n    \\\"id\\\": \\\"5913ee0998021600202ab863\\\"\\n  },\\n  \\\"amount\\\": {\\n    \\\"amount\\\": 11.0,\\n    \\\"currency\\\": \\\"USD\\\"\\n  },\\n  \\\"extra\\\": {\\n    \\\"ip\\\": \\\"192.168.0.1\\\",\\n    \\\"note\\\": \\\"Test transaction 2\\\",\\n    \\\"process_on\\\": 0\\n  }\\n}\",\n      \"language\": \"http\",\n      \"name\": \"Create Transaction\"\n    },\n    {\n      \"code\": \"{\\n  \\\"_id\\\": \\\"5914ca482ee6920021d0ace8\\\",\\n  \\\"_links\\\": {\\n    \\\"self\\\": {\\n      \\\"href\\\": \\\"https://uat-api.synapsefi.com/v3.1/users/59135352ce9311001e3a8f43/nodes/5913ebb3980216001f2a9925/trans/5914ca482ee6920021d0ace8\\\"\\n    }\\n  },\\n  \\\"_v\\\": 2,\\n  \\\"amount\\\": {\\n    \\\"amount\\\": 11,\\n    \\\"currency\\\": \\\"USD\\\"\\n  },\\n  \\\"client\\\": {\\n    \\\"id\\\": \\\"589a9eed86c2736412ce7e21\\\",\\n    \\\"name\\\": \\\"Client Platform\\\"\\n  },\\n  \\\"extra\\\": {\\n    \\\"created_on\\\": 1494534728969,\\n    \\\"ip\\\": \\\"192.168.0.1\\\",\\n    \\\"latlon\\\": \\\"0,0\\\",\\n    \\\"note\\\": \\\"Test transaction 2\\\",\\n    \\\"process_on\\\": 1494534728969,\\n    \\\"supp_id\\\": \\\"\\\"\\n  },\\n  \\\"fees\\\": [\\n    {\\n      \\\"fee\\\": 0,\\n      \\\"note\\\": \\\"Facilitator Fee\\\",\\n      \\\"to\\\": {\\n        \\\"id\\\": \\\"None\\\"\\n      }\\n    }\\n  ],\\n  \\\"from\\\": {\\n    \\\"id\\\": \\\"5913ebb3980216001f2a9925\\\",\\n    \\\"nickname\\\": \\\"Business Deposit Account\\\",\\n    \\\"type\\\": \\\"SYNAPSE-US\\\",\\n    \\\"user\\\": {\\n      \\\"_id\\\": \\\"59135352ce9311001e3a8f43\\\",\\n      \\\"legal_names\\\": []\\n    }\\n  },\\n  \\\"recent_status\\\": {\\n    \\\"date\\\": 1494534728969,\\n    \\\"note\\\": \\\"Transaction Created.\\\",\\n    \\\"status\\\": \\\"CREATED\\\",\\n    \\\"status_id\\\": \\\"1\\\"\\n  },\\n  \\\"timeline\\\": [\\n    {\\n      \\\"date\\\": 1494534728969,\\n      \\\"note\\\": \\\"Transaction Created.\\\",\\n      \\\"status\\\": \\\"CREATED\\\",\\n      \\\"status_id\\\": \\\"1\\\"\\n    }\\n  ],\\n  \\\"to\\\": {\\n    \\\"id\\\": \\\"5913ee0998021600202ab863\\\",\\n    \\\"nickname\\\": \\\"\\\",\\n    \\\"type\\\": \\\"ACH-US\\\",\\n    \\\"user\\\": {\\n      \\\"_id\\\": \\\"\\\",\\n      \\\"legal_names\\\": []\\n    }\\n  }\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Response\"\n    }\n  ]\n}\n[/block]\nTo get a better understanding of the status updates for transactions, review the [transaction codes](doc:transaction-codes) and read this guide on how to [handle transaction errors](https://help.synapsepay.com/hc/en-us/articles/115004694647-Handling-Transaction-Errors).","excerpt":"","slug":"integrating-according-to-your-cip","type":"basic","title":"Integrating According to Your CIP"}

Integrating According to Your CIP


CIP stands for "Customer Identification Program". A CIP document is custom to each platform and outlines the requirements and KYC (Know Your Customer) documents that need to be collected from each user on the platform. There are 3 different types of KYC documents that can be collected: [physical documents](doc:user-resources#section-physical-document-types), [virtual documents](doc:user-resources#section-virtual-document-types), and [social documents](doc:user-resources#section-social-document-types). This guide will show you how to integrate with the Synapse API according to your platform's CIP document. The integration process discussed in this guide is based on the [common flow](doc:common-flow) and uses [sandbox test values](doc:sandbox-test-values) in the request examples. The example CIP used in this guide has 2 different types of users: individuals and businesses. [block:image] { "images": [ { "image": [ "https://files.readme.io/5a58709-Screen_Shot_2017-05-04_at_2.03.05_PM.png", "Screen Shot 2017-05-04 at 2.03.05 PM.png", 1462, 968, "#e0382b" ], "caption": "KYC requirements/permissions for individual users." } ] } [/block] [block:image] { "images": [ { "image": [ "https://files.readme.io/91bf146-Screen_Shot_2017-05-11_at_10.58.50_AM.png", "Screen Shot 2017-05-11 at 10.58.50 AM.png", 1188, 1018, "#151515" ], "caption": "KYC requirements/permissions for business users." } ] } [/block] ## 1. Create User The first step is to [create a user](doc:create-a-user) on your platform. The `cip_tag` in addition to the user type (individual vs. business) assigned to the user determines what information/KYC documents are required for the user to be verified and also determines the user's permissions, types of accounts (nodes) they're allowed to create, transaction limits, acceptable flow of funds, and the maximum number of nodes they can have under their user account. According to the example CIP above, the platform has 2 types of users: individuals with `cip_tag: 1` and businesses with `cip_tag: 1`. The requests to create these users would look something like the example below: [block:code] { "codes": [ { "code": "POST /v3.1/users HTTP/1.1\nHost: uat-api.synapsefi.com\nX-SP-GATEWAY: client_id|client_secret\nX-SP-USER-IP: 127.0.0.1\nX-SP-USER: |fingerprint\nContent-Type: application/json\n\n{\n \"logins\": [\n {\n \"email\": \"testUser@test.com\"\n }\n ],\n \"phone_numbers\": [\n \"123-456-7777\"\n ],\n \"legal_names\": [\n \"Test User\"\n ],\n \"extra\": {\n \"cip_tag\": 1,\n \"is_business\": false\n }\n}", "language": "http", "name": "Create Individual User" }, { "code": "{\n \"_id\": \"590bae4deba6500022ca53e0\",\n \"_links\": {\n \"self\": {\n \"href\": \"https://uat-api.synapsefi.com/v3.1/users/590bae4deba6500022ca53e0\"\n }\n },\n \"client\": {\n \"id\": \"589a9eed86c2736412ce7e21\",\n \"name\": \"Client Platform\"\n },\n \"doc_status\": {\n \"physical_doc\": \"MISSING|INVALID\",\n \"virtual_doc\": \"MISSING|INVALID\"\n },\n \"documents\": [],\n \"emails\": [],\n \"extra\": {\n \"cip_tag\": 1,\n \"date_joined\": 1493937740425,\n \"extra_security\": false,\n \"is_business\": false,\n \"last_updated\": 1493937740425,\n \"public_note\": null,\n \"supp_id\": null\n },\n \"is_hidden\": false,\n \"legal_names\": [\n \"Test User\"\n ],\n \"logins\": [\n {\n \"email\": \"testUser@test.com\",\n \"scope\": \"READ_AND_WRITE\"\n }\n ],\n \"permission\": \"UNVERIFIED\",\n \"phone_numbers\": [\n \"123-456-7777\"\n ],\n \"photos\": [],\n \"refresh_token\": \"refresh_eff4c99a311a11e7aba90230ada41dd6\"\n}", "language": "json", "name": "Response (Individual)" }, { "code": "POST /v3.1/users HTTP/1.1\nHost: uat-api.synapsefi.com\nX-SP-GATEWAY: client_id|client_secret\nX-SP-USER-IP: 127.0.0.1\nX-SP-USER: |fingerprint\nContent-Type: application/json\n\n{\n \"logins\": [\n {\n \"email\": \"businessUser@test.com\"\n }\n ],\n \"phone_numbers\": [\n \"111-222-7777\"\n ],\n \"legal_names\": [\n \"Business User\"\n ],\n \"extra\": {\n \"cip_tag\": 1,\n \"is_business\": true\n }\n}", "language": "http", "name": "Create Business User" }, { "code": "{\n \"_id\": \"59135352ce9311001e3a8f43\",\n \"_links\": {\n \"self\": {\n \"href\": \"https://uat-api.synapsefi.com/v3.1/users/59135352ce9311001e3a8f43\"\n }\n },\n \"client\": {\n \"id\": \"589a9eed86c2736412ce7e21\",\n \"name\": \"Client Platform\"\n },\n \"doc_status\": {\n \"physical_doc\": \"MISSING|INVALID\",\n \"virtual_doc\": \"MISSING|INVALID\"\n },\n \"documents\": [],\n \"emails\": [],\n \"extra\": {\n \"cip_tag\": 1,\n \"date_joined\": 1494433713318,\n \"extra_security\": false,\n \"is_business\": true,\n \"last_updated\": 1494433713318,\n \"public_note\": null,\n \"supp_id\": null\n },\n \"is_hidden\": false,\n \"legal_names\": [\n \"Business User\"\n ],\n \"logins\": [\n {\n \"email\": \"businessUser@test.com\",\n \"scope\": \"READ_AND_WRITE\"\n }\n ],\n \"permission\": \"UNVERIFIED\",\n \"phone_numbers\": [\n \"111-222-7777\"\n ],\n \"photos\": [],\n \"refresh_token\": \"refresh_b67096cc359d11e7bd770230ad3f183e\"\n}", "language": "json", "name": "Response (Business)" } ] } [/block] In the request payload, `is_business` corresponds to letter `A` in the CIP document above and `cip_tag` corresponds to letter `B`. [block:callout] { "type": "info", "title": "User ID", "body": "In the response from `Create User`, please remember to store `_id` of the user in your database so you can access that user's account in the future." } [/block] In the response, notice that the user `permission` is `UNVERIFIED`. In order to verify each user, the appropriate KYC information/documents listed in the CIP need to be added to the corresponding user. ## 2. OAuth User To make further requests on the user's behalf, you need to [OAuth](doc:get-oauth_key-refresh-token) the user. Grab the `refresh_token` from the response in step one and make the following request: [block:code] { "codes": [ { "code": "POST /v3.1/oauth/590bae4deba6500022ca53e0 HTTP/1.1\nHost: uat-api.synapsefi.com\nX-SP-GATEWAY: client_id|client_secret\nX-SP-USER-IP: 127.0.0.1\nX-SP-USER: |fingerprint\nContent-Type: application/json\n\n{\n \"refresh_token\": \"refresh_eff4c99a311a11e7aba90230ada41dd6\"\n}", "language": "http", "name": "OAuth Individual" }, { "code": "{\n \"client_id\": \"589a9eed86c2736412ce7e21\",\n \"client_name\": \"Client Platform\",\n \"expires_at\": \"1493966006\",\n \"expires_in\": \"7200\",\n \"oauth_key\": \"oauth_fafccf28314b11e7aba90230ada41dd6\",\n \"refresh_expires_in\": 9,\n \"refresh_token\": \"refresh_eff4c99a311a11e7aba90230ada41dd6\",\n \"scope\": [\n \"USER|PATCH\",\n \"USER|GET\",\n \"NODES|POST\",\n \"NODES|GET\",\n \"NODE|GET\",\n \"NODE|PATCH\",\n \"NODE|DELETE\",\n \"TRANS|POST\",\n \"TRANS|GET\",\n \"TRAN|GET\",\n \"TRAN|PATCH\",\n \"TRAN|DELETE\"\n ],\n \"user_id\": \"590bae4deba6500022ca53e0\"\n}", "language": "json", "name": "Response (Individual)" }, { "code": "POST /v3.1/oauth/59135352ce9311001e3a8f43 HTTP/1.1\nHost: uat-api.synapsefi.com\nX-SP-GATEWAY: client_id|client_secret\nX-SP-USER-IP: 127.0.0.1\nX-SP-USER: |fingerprint\nContent-Type: application/json\n\n{\n \"refresh_token\": \"refresh_b67096cc359d11e7bd770230ad3f183e\"\n}", "language": "http", "name": "OAuth Business" }, { "code": "{\n \"client_id\": \"589a9eed86c2736412ce7e21\",\n \"client_name\": \"Client Platform\",\n \"expires_at\": \"1494441077\",\n \"expires_in\": \"7200\",\n \"oauth_key\": \"oauth_1778a554359e11e799b90230ad640784\",\n \"refresh_expires_in\": 9,\n \"refresh_token\": \"refresh_b67096cc359d11e7bd770230ad3f183e\",\n \"scope\": [\n \"USER|PATCH\",\n \"USER|GET\",\n \"NODES|POST\",\n \"NODES|GET\",\n \"NODE|GET\",\n \"NODE|PATCH\",\n \"NODE|DELETE\",\n \"TRANS|POST\",\n \"TRANS|GET\",\n \"TRAN|GET\",\n \"TRAN|PATCH\",\n \"TRAN|DELETE\"\n ],\n \"user_id\": \"59135352ce9311001e3a8f43\"\n}", "language": "json", "name": "Response (Business)" } ] } [/block] The `oauth_key` from the response will need to be included in the request headers for subsequent API calls for the user. You can read more about OAuth keys and refresh tokens [here](doc:oauth-resources). [block:callout] { "type": "info", "title": "OAuth keys & Refresh tokens", "body": "An `oauth_key` expires in 2 hours (from the time it was generated). After an `oauth_key` expires, you can use the `refresh_token` to generate a new `oauth_key`. When the oauth_key is refreshed, a new refresh_token might be issued as well. Refresh tokens expire after 10 uses and update periodically. We manage this complexity for you. To get the most recent `refresh_token`, make a request to [Get User](doc:get-user) and grab the refresh_token from the response." } [/block] ## 3. Add KYC Info/Documents ### KYC Individual User According to the example CIP, the following information needs to be collected from the individual user: the base document info, SSN (virtual document), and GOVT_ID (physical document). This corresponds to letters `C` and `D` in the diagram. When submitting a photo ID (GOVT_ID), please review the list of suggestions to improve accuracy for [Photo ID uploads](doc:user-resources#section-photo-id-requirements). [block:code] { "codes": [ { "code": "PATCH /v3.1/users/590bae4deba6500022ca53e0 HTTP/1.1\nHost: uat-api.synapsefi.com\nX-SP-GATEWAY: client_id|client_secret\nX-SP-USER-IP: 127.0.0.1\nX-SP-USER: oauth_key|fingerprint\nContent-Type: application/json\n\n{\n \"documents\":[\n {\n \"email\":\"testUser@test.com\",\n \"phone_number\":\"123-456-7777\",\n \"ip\":\"12134323\",\n \"name\":\"Test User\",\n \"alias\":\"Individual User\",\n \"entity_type\":\"M\",\n \"entity_scope\":\"Arts & Entertainment\",\n \"day\":2,\n \"month\":5,\n \"year\":1989,\n \"address_street\":\"170 St Germain Ave\",\n \"address_city\":\"SF\",\n \"address_subdivision\":\"CA\",\n \"address_postal_code\":\"94114\",\n \"address_country_code\":\"US\",\n \"virtual_docs\":[\n {\n \"document_value\":\"222-22-2222\",\n \"document_type\":\"SSN\"\n }\n ],\n \"physical_docs\":[\n {\n \"document_value\": \"data:image/gif;base64,R0lGODlhMAAwAPf/AK==\",\n \"document_type\": \"GOVT_ID\"\n }\n ]\n }\n ]\n}", "language": "http", "name": "KYC Individual" }, { "code": "{\n \"_id\": \"590bae4deba6500022ca53e0\",\n \"_links\": {\n \"self\": {\n \"href\": \"https://uat-api.synapsefi.com/v3.1/users/590bae4deba6500022ca53e0\"\n }\n },\n \"client\": {\n \"id\": \"589a9eed86c2736412ce7e21\",\n \"name\": \"Client Platform\"\n },\n \"doc_status\": {\n \"physical_doc\": \"MISSING|INVALID\",\n \"virtual_doc\": \"MISSING|INVALID\"\n },\n \"documents\": [\n {\n \"id\": \"e69f8e970a13b01ce5ace6dda9f4370bdb890524963bdc04b629da88c7e43a9b\",\n \"name\": \"Test User\",\n \"permission_scope\": \"UNVERIFIED\",\n \"physical_docs\": [\n {\n \"document_type\": \"GOVT_ID\",\n \"id\": \"5ad560b44bde1e4eafd291aae4c7ae4b4c7c4052350ec093a41a572cafcc3320\",\n \"last_updated\": 1493962763409,\n \"status\": \"SUBMITTED|VALID\"\n }\n ],\n \"social_docs\": [\n {\n \"document_type\": \"IP\",\n \"id\": \"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\",\n \"last_updated\": 1493962765233,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"PHONE_NUMBER\",\n \"id\": \"c1048b947148bdf1c21207b28864222b8db3da274bc2eb15299bbdc680e94f86\",\n \"last_updated\": 1493962764727,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"EMAIL\",\n \"id\": \"d8592542a7142adaf1e4bd21a3fe16ddbaf877cacae4348152b545170e49056f\",\n \"last_updated\": 1493962764206,\n \"status\": \"SUBMITTED|VALID\"\n }\n ],\n \"virtual_docs\": [\n {\n \"document_type\": \"SSN\",\n \"id\": \"a0e9fe45c418a2a9ace120d044e13793c60a3eec9cd84bc8c662349cb4e9ee03\",\n \"last_updated\": 1493962762801,\n \"status\": \"SUBMITTED|VALID\"\n }\n ]\n }\n ],\n \"emails\": [],\n \"extra\": {\n \"cip_tag\": 1,\n \"date_joined\": 1493937740425,\n \"extra_security\": false,\n \"is_business\": false,\n \"last_updated\": 1493962762269,\n \"public_note\": null,\n \"supp_id\": null\n },\n \"is_hidden\": false,\n \"legal_names\": [\n \"Test User\"\n ],\n \"logins\": [\n {\n \"email\": \"testUser@test.com\",\n \"scope\": \"READ_AND_WRITE\"\n }\n ],\n \"permission\": \"UNVERIFIED\",\n \"phone_numbers\": [\n \"123-456-7777\"\n ],\n \"photos\": [],\n \"refresh_token\": \"refresh_eff4c99a311a11e7aba90230ada41dd6\"\n}", "language": "json", "name": "Response (Individual)" } ] } [/block] As you can see from the response above, the SSN and GOVT_ID have a `status` of `SUBMITTED|VALID`, but the user `permission` and document `permission_scope` is `UNVERIFIED`. This is because the user `permission` and document `permission_scope` is updated asynchronously, so you will have to use [polling](doc:get-user) (GET User) or [subscriptions](doc:subscriptions) to get the most recent information on the user. After a few seconds, making a request to [GET User](doc:get-user) will return the following response: [block:code] { "codes": [ { "code": "{\n \"_id\": \"590bae4deba6500022ca53e0\",\n \"_links\": {\n \"self\": {\n \"href\": \"https://uat-api.synapsefi.com/v3.1/users/590bae4deba6500022ca53e0\"\n }\n },\n \"client\": {\n \"id\": \"589a9eed86c2736412ce7e21\",\n \"name\": \"Client Platform\"\n },\n \"doc_status\": {\n \"physical_doc\": \"SUBMITTED|VALID\",\n \"virtual_doc\": \"SUBMITTED|VALID\"\n },\n \"documents\": [\n {\n \"id\": \"e69f8e970a13b01ce5ace6dda9f4370bdb890524963bdc04b629da88c7e43a9b\",\n \"name\": \"Test User\",\n \"permission_scope\": \"SEND|RECEIVE|2000|DAILY\",\n \"physical_docs\": [\n {\n \"document_type\": \"GOVT_ID\",\n \"id\": \"5ad560b44bde1e4eafd291aae4c7ae4b4c7c4052350ec093a41a572cafcc3320\",\n \"last_updated\": 1493962763409,\n \"status\": \"SUBMITTED|VALID\"\n }\n ],\n \"social_docs\": [\n {\n \"document_type\": \"IP\",\n \"id\": \"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\",\n \"last_updated\": 1493962765233,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"PHONE_NUMBER\",\n \"id\": \"c1048b947148bdf1c21207b28864222b8db3da274bc2eb15299bbdc680e94f86\",\n \"last_updated\": 1493962764727,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"EMAIL\",\n \"id\": \"d8592542a7142adaf1e4bd21a3fe16ddbaf877cacae4348152b545170e49056f\",\n \"last_updated\": 1493962764206,\n \"status\": \"SUBMITTED|VALID\"\n }\n ],\n \"virtual_docs\": [\n {\n \"document_type\": \"SSN\",\n \"id\": \"a0e9fe45c418a2a9ace120d044e13793c60a3eec9cd84bc8c662349cb4e9ee03\",\n \"last_updated\": 1493962762801,\n \"status\": \"SUBMITTED|VALID\"\n }\n ]\n }\n ],\n \"emails\": [],\n \"extra\": {\n \"cip_tag\": 1,\n \"date_joined\": 1493937740425,\n \"extra_security\": false,\n \"is_business\": false,\n \"last_updated\": 1493962762269,\n \"public_note\": null,\n \"supp_id\": null\n },\n \"is_hidden\": false,\n \"legal_names\": [\n \"Test User\"\n ],\n \"logins\": [\n {\n \"email\": \"testUser@test.com\",\n \"scope\": \"READ_AND_WRITE\"\n }\n ],\n \"permission\": \"SEND-AND-RECEIVE\",\n \"phone_numbers\": [\n \"123-456-7777\"\n ],\n \"photos\": [],\n \"refresh_token\": \"refresh_eff4c99a311a11e7aba90230ada41dd6\"\n}", "language": "json", "name": "Response from GET User" } ] } [/block] Notice in the response above that now `permission` is `SEND-AND-RECEIVE` and the document `permission_scope` is `SEND|RECEIVE|2000|DAILY`. These fields correspond to letters `E` and `H` in the diagram. The user was given `SEND-AND-RECEIVE` permissions because the appropriate KYC documents (letters `C` and `D` in diagram) were submitted and valid. You can learn more about [user permissions](doc:user-resources#section-user-permissions), [document status](doc:user-resources#section-document-status), and [document permission scope](doc:user-resources#section-document-permission-scope) in our docs. What if one (or more) of the KYC documents was considered invalid? Depending on the requirements listed in the CIP, user and document permissions could change. In the example CIP (section `D`), both `SSN` (virtual document) and `GOVT_ID` (physical document) must be valid in order for the user to be verified. However, if the SSN was invalid (document status of `SUBMITTED|INVALID`), then the user could submit their `SSN_CARD` (physical document) as a backup document for the SSN requirement. So a valid `SSN_CARD` in addition to a valid `GOVT_ID` would verify the user and give them `SEND-AND-RECEIVE` permissions. But if the SSN requirement or GOVT_ID was invalid, then the user `permission` and document `permission_scope` would be `UNVERIFIED`. ### KYC Business User According to the example CIP, the business user needs to submit at least 2 sets of KYC information/documents: one set for business information and another set for beneficial owner information. The following information/documents are required for the business info set: base document fields, TIN (virtual document), EIN_DOC (physical document), BYLAWS_DOC (physical document), AOI (physical document). [block:callout] { "type": "info", "title": "Physical Documents", "body": "Submitting more than one physical document at a time might result in a delay in response time. It is recommended that you perform separate API calls to add each physical document if you have more than one." } [/block] The following information/documents are required for the beneficial owner info set: base document fields, SSN (virtual document), and GOVT_ID (physical document). To submit the 2 sets of KYC documents, you should make 2 separate calls to [Add Documents](doc:adding-documents): one call to add business info/documents and another call to add beneficial owner info/documents. Let's first add KYC documents corresponding to the beneficial owner: [block:code] { "codes": [ { "code": "PATCH /v3.1/users/59135352ce9311001e3a8f43 HTTP/1.1\nHost: uat-api.synapsefi.com\nX-SP-GATEWAY: client_id|client_secret\nX-SP-USER-IP: 127.0.0.1\nX-SP-USER: oauth_key|fingerprint\nContent-Type: application/json\n\n{\n \"documents\":[\n \t{\n \"email\":\"beneficialOwner@test.com\",\n \"phone_number\":\"444-333-5555\",\n \"ip\":\"12134323\",\n \"name\":\"Beneficial Owner\",\n \"alias\":\"Business Owner\",\n \"entity_type\":\"M\",\n \"entity_scope\":\"Bank & Financial Services\",\n \"day\":13,\n \"month\":8,\n \"year\":1989,\n \"address_street\":\"130 St Germain Ave\",\n \"address_city\":\"SF\",\n \"address_subdivision\":\"CA\",\n \"address_postal_code\":\"94114\",\n \"address_country_code\":\"US\",\n \"virtual_docs\":[\n {\n \"document_value\":\"222-22-2222\",\n \"document_type\":\"SSN\"\n }\n ],\n \"physical_docs\":[\n {\n \"document_value\": \"data:image/gif;base64,R0lGOD==\",\n \"document_type\": \"GOVT_ID\"\n }\n ]\n }\n ]\n}", "language": "http", "name": "Add Documents" }, { "code": "{\n \"_id\": \"59135352ce9311001e3a8f43\",\n \"_links\": {\n \"self\": {\n \"href\": \"https://uat-api.synapsefi.com/v3.1/users/59135352ce9311001e3a8f43\"\n }\n },\n \"client\": {\n \"id\": \"589a9eed86c2736412ce7e21\",\n \"name\": \"Client Platform\"\n },\n \"doc_status\": {\n \"physical_doc\": \"MISSING|INVALID\",\n \"virtual_doc\": \"MISSING|INVALID\"\n },\n \"documents\": [\n {\n \"id\": \"4c3d01727e2f554e51c0cf92c114c763b1291a58bdc783a82e5e18e8fc70b844\",\n \"name\": \"Beneficial Owner\",\n \"permission_scope\": \"UNVERIFIED\",\n \"physical_docs\": [\n {\n \"document_type\": \"GOVT_ID\",\n \"id\": \"fbab7ed1d3e7b5391c54e3e60ab0db148d6fb6016b3c20aecdeb45b6f27f4cb4\",\n \"last_updated\": 1494434566951,\n \"status\": \"SUBMITTED|VALID\"\n }\n ],\n \"social_docs\": [\n {\n \"document_type\": \"PHONE_NUMBER\",\n \"id\": \"95a6638a9d700ac4a26cbf55d97ee72abb5f85c7ff75de6aa66c316218960730\",\n \"last_updated\": 1494434567924,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"IP\",\n \"id\": \"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\",\n \"last_updated\": 1494434568410,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"EMAIL\",\n \"id\": \"1776f9e6ce198edc4feb3f158692c6eb4bb42fe66cb9eb819bf7e884f0c54b45\",\n \"last_updated\": 1494434567439,\n \"status\": \"SUBMITTED|VALID\"\n }\n ],\n \"virtual_docs\": [\n {\n \"document_type\": \"SSN\",\n \"id\": \"a0e9fe45c418a2a9ace120d044e13793c60a3eec9cd84bc8c662349cb4e9ee03\",\n \"last_updated\": 1494434566461,\n \"status\": \"SUBMITTED|VALID\"\n }\n ]\n }\n ],\n \"emails\": [],\n \"extra\": {\n \"cip_tag\": 1,\n \"date_joined\": 1494433713318,\n \"extra_security\": false,\n \"is_business\": true,\n \"last_updated\": 1494434565964,\n \"public_note\": null,\n \"supp_id\": null\n },\n \"is_hidden\": false,\n \"legal_names\": [\n \"Business User\"\n ],\n \"logins\": [\n {\n \"email\": \"businessUser@test.com\",\n \"scope\": \"READ_AND_WRITE\"\n }\n ],\n \"permission\": \"UNVERIFIED\",\n \"phone_numbers\": [\n \"111-222-7777\"\n ],\n \"photos\": [],\n \"refresh_token\": \"refresh_b67096cc359d11e7bd770230ad3f183e\"\n}", "language": "json", "name": "Response" } ] } [/block] In the next step, we'll add KYC documents corresponding to the business info. However, the business info requires 3 physical documents to be submitted. Since submitting more than one physical document at a time can result in a delayed response, we'll split this step into 3 separate API calls: A) [Add Documents](doc:adding-documents) to add the base document + TIN (virtual document) + EIN_DOC (physical document), B) [Update Existing Document](doc:updating-existing-document) to add the second physical document (BYLAWS_DOC) to the business info set, C) [Update Existing Document](doc:updating-existing-document) to add the third physical document (AOI) to the business info set. Here's the request for **step A**: base document + TIN + EIN_DOC [block:code] { "codes": [ { "code": "PATCH /v3.1/users/59135352ce9311001e3a8f43 HTTP/1.1\nHost: uat-api.synapsefi.com\nX-SP-GATEWAY: client_id|client_secret\nX-SP-USER-IP: 127.0.0.1\nX-SP-USER: oauth_key|fingerprint\nContent-Type: application/json\n\n{\n \"documents\":[\n \t{\n \"email\":\"businessEmail@test.com\",\n \"phone_number\":\"222-333-4444\",\n \"ip\":\"12134323\",\n \"name\":\"Business Name\",\n \"alias\":\"Business Name\",\n \"entity_type\":\"LLC\",\n \"entity_scope\":\"Bank & Financial Services\",\n \"day\":2,\n \"month\":6,\n \"year\":2010,\n \"address_street\":\"120 Mission St\",\n \"address_city\":\"SF\",\n \"address_subdivision\":\"CA\",\n \"address_postal_code\":\"94114\",\n \"address_country_code\":\"US\",\n \"virtual_docs\": [\n {\n \"document_value\":\"2222\",\n \"document_type\":\"TIN\"\n }\n ],\n \"physical_docs\": [\n {\n \"document_value\":\"data:image/gif;base64,R0lGODl===\",\n \"document_type\":\"EIN_DOC\"\n }\n ]\n }\n ]\n}", "language": "http", "name": "Add Documents" }, { "code": "{\n \"_id\": \"59135352ce9311001e3a8f43\",\n \"_links\": {\n \"self\": {\n \"href\": \"https://uat-api.synapsefi.com/v3.1/users/59135352ce9311001e3a8f43\"\n }\n },\n \"client\": {\n \"id\": \"589a9eed86c2736412ce7e21\",\n \"name\": \"Client Platform\"\n },\n \"doc_status\": {\n \"physical_doc\": \"MISSING|INVALID\",\n \"virtual_doc\": \"MISSING|INVALID\"\n },\n \"documents\": [\n {\n \"id\": \"4c3d01727e2f554e51c0cf92c114c763b1291a58bdc783a82e5e18e8fc70b844\",\n \"name\": \"Beneficial Owner\",\n \"permission_scope\": \"SEND|RECEIVE|2000|DAILY\",\n \"physical_docs\": [\n {\n \"document_type\": \"GOVT_ID\",\n \"id\": \"fbab7ed1d3e7b5391c54e3e60ab0db148d6fb6016b3c20aecdeb45b6f27f4cb4\",\n \"last_updated\": 1494434569630,\n \"status\": \"SUBMITTED|VALID\"\n }\n ],\n \"social_docs\": [\n {\n \"document_type\": \"EMAIL\",\n \"id\": \"1776f9e6ce198edc4feb3f158692c6eb4bb42fe66cb9eb819bf7e884f0c54b45\",\n \"last_updated\": 1494434569633,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"IP\",\n \"id\": \"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\",\n \"last_updated\": 1494434569633,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"PHONE_NUMBER\",\n \"id\": \"95a6638a9d700ac4a26cbf55d97ee72abb5f85c7ff75de6aa66c316218960730\",\n \"last_updated\": 1494434569633,\n \"status\": \"SUBMITTED|VALID\"\n }\n ],\n \"virtual_docs\": [\n {\n \"document_type\": \"SSN\",\n \"id\": \"a0e9fe45c418a2a9ace120d044e13793c60a3eec9cd84bc8c662349cb4e9ee03\",\n \"last_updated\": 1494434569628,\n \"status\": \"SUBMITTED|VALID\"\n }\n ]\n },\n {\n \"id\": \"e82fc224a90cb7696a07361b788c71d78f6eb2ff628c6ecf014b5b63cf5d6b81\",\n \"name\": \"Business Name\",\n \"permission_scope\": \"UNVERIFIED\",\n \"physical_docs\": [\n {\n \"document_type\": \"EIN_DOC\",\n \"id\": \"d96c7d22b5c4e33809952c00df524f1c83a4706e8d9af8b891d01675b162190c\",\n \"last_updated\": 1494436045671,\n \"status\": \"SUBMITTED\"\n }\n ],\n \"social_docs\": [\n {\n \"document_type\": \"PHONE_NUMBER\",\n \"id\": \"510a94628812b825a1703cf34c13f5c16329562954fa8dcd176ef31412424256\",\n \"last_updated\": 1494436046648,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"IP\",\n \"id\": \"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\",\n \"last_updated\": 1494436047140,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"EMAIL\",\n \"id\": \"e5b7a9b26fbe3d7da4b6cff02325e8e44797497ba0a9683c28badb96d86c5540\",\n \"last_updated\": 1494436046161,\n \"status\": \"SUBMITTED|VALID\"\n }\n ],\n \"virtual_docs\": [\n {\n \"document_type\": \"TIN\",\n \"id\": \"a55cc12f46e8091f741b978d5fa556b2f8772a75007a82aae10a2fd810f644cb\",\n \"last_updated\": 1494436045169,\n \"status\": \"SUBMITTED|VALID\"\n }\n ]\n }\n ],\n \"emails\": [],\n \"extra\": {\n \"cip_tag\": 1,\n \"date_joined\": 1494433713318,\n \"extra_security\": false,\n \"is_business\": true,\n \"last_updated\": 1494436044640,\n \"public_note\": null,\n \"supp_id\": null\n },\n \"is_hidden\": false,\n \"legal_names\": [\n \"Business User\"\n ],\n \"logins\": [\n {\n \"email\": \"businessUser@test.com\",\n \"scope\": \"READ_AND_WRITE\"\n }\n ],\n \"permission\": \"UNVERIFIED\",\n \"phone_numbers\": [\n \"111-222-7777\"\n ],\n \"photos\": [],\n \"refresh_token\": \"refresh_b67096cc359d11e7bd770230ad3f183e\"\n}", "language": "json", "name": "Response" } ] } [/block] As you can see in the response from step A, there are now 2 base document objects in the `documents` array: one corresponds to the beneficial owner and the other corresponds to the business info. Looking at the base document object that corresponds to the beneficial owner (document id: `4c3d01727e2f554e51c0cf92c114c763b1291a58bdc783a82e5e18e8fc70b844`), we can see that the document `permission_scope` is `SEND|RECEIVE|2000|DAILY`. This means that the appropriate KYC documents for the beneficial owner (`SSN` and `GOVT_ID`) were submitted and valid. However, the base document object that corresponds to the business info (document id: `e82fc224a90cb7696a07361b788c71d78f6eb2ff628c6ecf014b5b63cf5d6b81`) has a document `permission_scope` of `UNVERIFIED`. This is because we have only added the `TIN` and `EIN_DOC`, so we still need to submit the `BYLAWS_DOC` and `AOI` in order to have a document `permission_scope` of `SEND|RECEIVE|2000|DAILY`. In addition, notice that the overall user `permission` is still `UNVERIFIED`. When there are multiple document objects in the `documents` array, the lowest document `permission_scope` ends up being the `permission` associated with the user account. In this case, the business info object has the lowest document `permission_scope` of `UNVERIFIED` so the overall user `permission` remains at `UNVERIFIED`. **Step B**: Add the second physical document (BYLAWS_DOC) to the business info set Grab the document id that corresponds to the business info (`e82fc224a90cb7696a07361b788c71d78f6eb2ff628c6ecf014b5b63cf5d6b81`) so you can make a call to [Update Existing Document](doc:updating-existing-document) in order to add the `BYLAWS_DOC` to the `physical_docs` in the business info object. [block:code] { "codes": [ { "code": "PATCH /v3.1/users/59135352ce9311001e3a8f43 HTTP/1.1\nHost: uat-api.synapsefi.com\nX-SP-GATEWAY: client_id|client_secret\nX-SP-USER-IP: 127.0.0.1\nX-SP-USER: oauth_key|fingerprint\nContent-Type: application/json\n\n{\n \"documents\":[\n {\n \"id\":\"e82fc224a90cb7696a07361b788c71d78f6eb2ff628c6ecf014b5b63cf5d6b81\",\n \"physical_docs\": [\n {\n \"document_value\":\"data:image/gif;base64,R0lGODlhM===\",\n \"document_type\":\"BYLAWS_DOC\"\n }\n ]\n }\n ]\n}", "language": "http", "name": "Update Existing Document" }, { "code": "{\n \"_id\": \"59135352ce9311001e3a8f43\",\n \"_links\": {\n \"self\": {\n \"href\": \"https://uat-api.synapsefi.com/v3.1/users/59135352ce9311001e3a8f43\"\n }\n },\n \"client\": {\n \"id\": \"589a9eed86c2736412ce7e21\",\n \"name\": \"Client Platform\"\n },\n \"doc_status\": {\n \"physical_doc\": \"MISSING|INVALID\",\n \"virtual_doc\": \"MISSING|INVALID\"\n },\n \"documents\": [\n {\n \"id\": \"4c3d01727e2f554e51c0cf92c114c763b1291a58bdc783a82e5e18e8fc70b844\",\n \"name\": \"Beneficial Owner\",\n \"permission_scope\": \"SEND|RECEIVE|2000|DAILY\",\n \"physical_docs\": [\n {\n \"document_type\": \"GOVT_ID\",\n \"id\": \"fbab7ed1d3e7b5391c54e3e60ab0db148d6fb6016b3c20aecdeb45b6f27f4cb4\",\n \"last_updated\": 1494436048372,\n \"status\": \"SUBMITTED|VALID\"\n }\n ],\n \"social_docs\": [\n {\n \"document_type\": \"IP\",\n \"id\": \"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\",\n \"last_updated\": 1494436048376,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"EMAIL\",\n \"id\": \"1776f9e6ce198edc4feb3f158692c6eb4bb42fe66cb9eb819bf7e884f0c54b45\",\n \"last_updated\": 1494436048375,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"PHONE_NUMBER\",\n \"id\": \"95a6638a9d700ac4a26cbf55d97ee72abb5f85c7ff75de6aa66c316218960730\",\n \"last_updated\": 1494436048376,\n \"status\": \"SUBMITTED|VALID\"\n }\n ],\n \"virtual_docs\": [\n {\n \"document_type\": \"SSN\",\n \"id\": \"a0e9fe45c418a2a9ace120d044e13793c60a3eec9cd84bc8c662349cb4e9ee03\",\n \"last_updated\": 1494436048369,\n \"status\": \"SUBMITTED|VALID\"\n }\n ]\n },\n {\n \"id\": \"e82fc224a90cb7696a07361b788c71d78f6eb2ff628c6ecf014b5b63cf5d6b81\",\n \"name\": \"Business Name\",\n \"permission_scope\": \"UNVERIFIED\",\n \"physical_docs\": [\n {\n \"document_type\": \"EIN_DOC\",\n \"id\": \"d96c7d22b5c4e33809952c00df524f1c83a4706e8d9af8b891d01675b162190c\",\n \"last_updated\": 1494436048905,\n \"status\": \"SUBMITTED\"\n },\n {\n \"document_type\": \"BYLAWS_DOC\",\n \"id\": \"eddd2fe8fc8e9192bfc159261ab6b44591660ce9eca3a38e7ea003b5cff1d26a\",\n \"last_updated\": 1494437106093,\n \"status\": \"SUBMITTED\"\n }\n ],\n \"social_docs\": [\n {\n \"document_type\": \"PHONE_NUMBER\",\n \"id\": \"510a94628812b825a1703cf34c13f5c16329562954fa8dcd176ef31412424256\",\n \"last_updated\": 1494436048908,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"IP\",\n \"id\": \"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\",\n \"last_updated\": 1494436048908,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"EMAIL\",\n \"id\": \"e5b7a9b26fbe3d7da4b6cff02325e8e44797497ba0a9683c28badb96d86c5540\",\n \"last_updated\": 1494436048908,\n \"status\": \"SUBMITTED|VALID\"\n }\n ],\n \"virtual_docs\": [\n {\n \"document_type\": \"TIN\",\n \"id\": \"a55cc12f46e8091f741b978d5fa556b2f8772a75007a82aae10a2fd810f644cb\",\n \"last_updated\": 1494436048901,\n \"status\": \"SUBMITTED|VALID\"\n }\n ]\n }\n ],\n \"emails\": [],\n \"extra\": {\n \"cip_tag\": 1,\n \"date_joined\": 1494433713318,\n \"extra_security\": false,\n \"is_business\": true,\n \"last_updated\": 1494437106083,\n \"public_note\": null,\n \"supp_id\": null\n },\n \"is_hidden\": false,\n \"legal_names\": [\n \"Business User\"\n ],\n \"logins\": [\n {\n \"email\": \"businessUser@test.com\",\n \"scope\": \"READ_AND_WRITE\"\n }\n ],\n \"permission\": \"UNVERIFIED\",\n \"phone_numbers\": [\n \"111-222-7777\"\n ],\n \"photos\": [],\n \"refresh_token\": \"refresh_b67096cc359d11e7bd770230ad3f183e\"\n}", "language": "json", "name": "Response" } ] } [/block] As you can see in the response from step B, the `physical_docs` (in the business info object) now contains 2 documents: the `EIN_DOC` from step A and the `BYLAWS_DOC` that was just added. **Step C)** Add the third physical document (AOI) to the business info set: [block:code] { "codes": [ { "code": "PATCH /v3.1/users/59135352ce9311001e3a8f43 HTTP/1.1\nHost: uat-api.synapsefi.com\nX-SP-GATEWAY: client_id|client_secret\nX-SP-USER-IP: 127.0.0.1\nX-SP-USER: oauth_key|fingerprint\nContent-Type: application/json\n\n{\n \"documents\":[\n {\n \"id\":\"e82fc224a90cb7696a07361b788c71d78f6eb2ff628c6ecf014b5b63cf5d6b81\",\n \"physical_docs\": [\n {\n \"document_value\":\"data:image/gif;base64,R0lGODlhMAA==\",\n \"document_type\":\"AOI\"\n }\n ]\n }\n ]\n}", "language": "http", "name": "Update Existing Document" }, { "code": "{\n \"_id\": \"59135352ce9311001e3a8f43\",\n \"_links\": {\n \"self\": {\n \"href\": \"https://uat-api.synapsefi.com/v3.1/users/59135352ce9311001e3a8f43\"\n }\n },\n \"client\": {\n \"id\": \"589a9eed86c2736412ce7e21\",\n \"name\": \"Client Platform\"\n },\n \"doc_status\": {\n \"physical_doc\": \"MISSING|INVALID\",\n \"virtual_doc\": \"MISSING|INVALID\"\n },\n \"documents\": [\n {\n \"id\": \"e82fc224a90cb7696a07361b788c71d78f6eb2ff628c6ecf014b5b63cf5d6b81\",\n \"name\": \"Business Name\",\n \"permission_scope\": \"UNVERIFIED\",\n \"physical_docs\": [\n {\n \"document_type\": \"EIN_DOC\",\n \"id\": \"d96c7d22b5c4e33809952c00df524f1c83a4706e8d9af8b891d01675b162190c\",\n \"last_updated\": 1494437107870,\n \"status\": \"SUBMITTED\"\n },\n {\n \"document_type\": \"BYLAWS_DOC\",\n \"id\": \"eddd2fe8fc8e9192bfc159261ab6b44591660ce9eca3a38e7ea003b5cff1d26a\",\n \"last_updated\": 1494437107870,\n \"status\": \"SUBMITTED\"\n },\n {\n \"document_type\": \"AOI\",\n \"id\": \"32cc21dc86f3aab063b3b2ee28c32926a067aad2b9aab3a786656250f4fe98c7\",\n \"last_updated\": 1494438154135,\n \"status\": \"SUBMITTED\"\n }\n ],\n \"social_docs\": [\n {\n \"document_type\": \"IP\",\n \"id\": \"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\",\n \"last_updated\": 1494437107873,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"PHONE_NUMBER\",\n \"id\": \"510a94628812b825a1703cf34c13f5c16329562954fa8dcd176ef31412424256\",\n \"last_updated\": 1494437107873,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"EMAIL\",\n \"id\": \"e5b7a9b26fbe3d7da4b6cff02325e8e44797497ba0a9683c28badb96d86c5540\",\n \"last_updated\": 1494437107873,\n \"status\": \"SUBMITTED|VALID\"\n }\n ],\n \"virtual_docs\": [\n {\n \"document_type\": \"TIN\",\n \"id\": \"a55cc12f46e8091f741b978d5fa556b2f8772a75007a82aae10a2fd810f644cb\",\n \"last_updated\": 1494437107866,\n \"status\": \"SUBMITTED|VALID\"\n }\n ]\n },\n {\n \"id\": \"4c3d01727e2f554e51c0cf92c114c763b1291a58bdc783a82e5e18e8fc70b844\",\n \"name\": \"Beneficial Owner\",\n \"permission_scope\": \"SEND|RECEIVE|2000|DAILY\",\n \"physical_docs\": [\n {\n \"document_type\": \"GOVT_ID\",\n \"id\": \"fbab7ed1d3e7b5391c54e3e60ab0db148d6fb6016b3c20aecdeb45b6f27f4cb4\",\n \"last_updated\": 1494437107362,\n \"status\": \"SUBMITTED|VALID\"\n }\n ],\n \"social_docs\": [\n {\n \"document_type\": \"EMAIL\",\n \"id\": \"1776f9e6ce198edc4feb3f158692c6eb4bb42fe66cb9eb819bf7e884f0c54b45\",\n \"last_updated\": 1494437107365,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"PHONE_NUMBER\",\n \"id\": \"95a6638a9d700ac4a26cbf55d97ee72abb5f85c7ff75de6aa66c316218960730\",\n \"last_updated\": 1494437107365,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"IP\",\n \"id\": \"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\",\n \"last_updated\": 1494437107365,\n \"status\": \"SUBMITTED|VALID\"\n }\n ],\n \"virtual_docs\": [\n {\n \"document_type\": \"SSN\",\n \"id\": \"a0e9fe45c418a2a9ace120d044e13793c60a3eec9cd84bc8c662349cb4e9ee03\",\n \"last_updated\": 1494437107359,\n \"status\": \"SUBMITTED|VALID\"\n }\n ]\n }\n ],\n \"emails\": [],\n \"extra\": {\n \"cip_tag\": 1,\n \"date_joined\": 1494433713318,\n \"extra_security\": false,\n \"is_business\": true,\n \"last_updated\": 1494438154125,\n \"public_note\": null,\n \"supp_id\": null\n },\n \"is_hidden\": false,\n \"legal_names\": [\n \"Business User\"\n ],\n \"logins\": [\n {\n \"email\": \"businessUser@test.com\",\n \"scope\": \"READ_AND_WRITE\"\n }\n ],\n \"permission\": \"UNVERIFIED\",\n \"phone_numbers\": [\n \"111-222-7777\"\n ],\n \"photos\": [],\n \"refresh_token\": \"refresh_b67096cc359d11e7bd770230ad3f183e\"\n}", "language": "json", "name": "Response" } ] } [/block] Since the user `permission` and document `permission_scope` is updated asynchronously, make a request to [Get User](doc:get-user) to get the most recent information on the user. [block:code] { "codes": [ { "code": "{\n \"_id\": \"59135352ce9311001e3a8f43\",\n \"_links\": {\n \"self\": {\n \"href\": \"https://uat-api.synapsefi.com/v3.1/users/59135352ce9311001e3a8f43\"\n }\n },\n \"client\": {\n \"id\": \"589a9eed86c2736412ce7e21\",\n \"name\": \"Client Platform\"\n },\n \"doc_status\": {\n \"physical_doc\": \"SUBMITTED|VALID\",\n \"virtual_doc\": \"SUBMITTED|VALID\"\n },\n \"documents\": [\n {\n \"id\": \"e82fc224a90cb7696a07361b788c71d78f6eb2ff628c6ecf014b5b63cf5d6b81\",\n \"name\": \"Business Name\",\n \"permission_scope\": \"SEND|RECEIVE|2000|DAILY\",\n \"physical_docs\": [\n {\n \"document_type\": \"EIN_DOC\",\n \"id\": \"d96c7d22b5c4e33809952c00df524f1c83a4706e8d9af8b891d01675b162190c\",\n \"last_updated\": 1494437107870,\n \"status\": \"SUBMITTED\"\n },\n {\n \"document_type\": \"BYLAWS_DOC\",\n \"id\": \"eddd2fe8fc8e9192bfc159261ab6b44591660ce9eca3a38e7ea003b5cff1d26a\",\n \"last_updated\": 1494437107870,\n \"status\": \"SUBMITTED\"\n },\n {\n \"document_type\": \"AOI\",\n \"id\": \"32cc21dc86f3aab063b3b2ee28c32926a067aad2b9aab3a786656250f4fe98c7\",\n \"last_updated\": 1494438154135,\n \"status\": \"SUBMITTED\"\n }\n ],\n \"social_docs\": [\n {\n \"document_type\": \"IP\",\n \"id\": \"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\",\n \"last_updated\": 1494437107873,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"PHONE_NUMBER\",\n \"id\": \"510a94628812b825a1703cf34c13f5c16329562954fa8dcd176ef31412424256\",\n \"last_updated\": 1494437107873,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"EMAIL\",\n \"id\": \"e5b7a9b26fbe3d7da4b6cff02325e8e44797497ba0a9683c28badb96d86c5540\",\n \"last_updated\": 1494437107873,\n \"status\": \"SUBMITTED|VALID\"\n }\n ],\n \"virtual_docs\": [\n {\n \"document_type\": \"TIN\",\n \"id\": \"a55cc12f46e8091f741b978d5fa556b2f8772a75007a82aae10a2fd810f644cb\",\n \"last_updated\": 1494437107866,\n \"status\": \"SUBMITTED|VALID\"\n }\n ]\n },\n {\n \"id\": \"4c3d01727e2f554e51c0cf92c114c763b1291a58bdc783a82e5e18e8fc70b844\",\n \"name\": \"Beneficial Owner\",\n \"permission_scope\": \"SEND|RECEIVE|2000|DAILY\",\n \"physical_docs\": [\n {\n \"document_type\": \"GOVT_ID\",\n \"id\": \"fbab7ed1d3e7b5391c54e3e60ab0db148d6fb6016b3c20aecdeb45b6f27f4cb4\",\n \"last_updated\": 1494437107362,\n \"status\": \"SUBMITTED|VALID\"\n }\n ],\n \"social_docs\": [\n {\n \"document_type\": \"EMAIL\",\n \"id\": \"1776f9e6ce198edc4feb3f158692c6eb4bb42fe66cb9eb819bf7e884f0c54b45\",\n \"last_updated\": 1494437107365,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"PHONE_NUMBER\",\n \"id\": \"95a6638a9d700ac4a26cbf55d97ee72abb5f85c7ff75de6aa66c316218960730\",\n \"last_updated\": 1494437107365,\n \"status\": \"SUBMITTED|VALID\"\n },\n {\n \"document_type\": \"IP\",\n \"id\": \"745b7c6016a8a18f60017a5e921bdc8ca46891fa387d05adaf2fe4f3df640fbe\",\n \"last_updated\": 1494437107365,\n \"status\": \"SUBMITTED|VALID\"\n }\n ],\n \"virtual_docs\": [\n {\n \"document_type\": \"SSN\",\n \"id\": \"a0e9fe45c418a2a9ace120d044e13793c60a3eec9cd84bc8c662349cb4e9ee03\",\n \"last_updated\": 1494437107359,\n \"status\": \"SUBMITTED|VALID\"\n }\n ]\n }\n ],\n \"emails\": [],\n \"extra\": {\n \"cip_tag\": 1,\n \"date_joined\": 1494433713318,\n \"extra_security\": false,\n \"is_business\": true,\n \"last_updated\": 1494438154125,\n \"public_note\": null,\n \"supp_id\": null\n },\n \"is_hidden\": false,\n \"legal_names\": [\n \"Business User\"\n ],\n \"logins\": [\n {\n \"email\": \"businessUser@test.com\",\n \"scope\": \"READ_AND_WRITE\"\n }\n ],\n \"permission\": \"SEND-AND-RECEIVE\",\n \"phone_numbers\": [\n \"111-222-7777\"\n ],\n \"photos\": [],\n \"refresh_token\": \"refresh_b67096cc359d11e7bd770230ad3f183e\"\n}", "language": "json", "name": "Response from GET User" } ] } [/block] As you can see from the response, the business user (_id: `59135352ce9311001e3a8f43`) now has `SEND-AND-RECEIVE` permissions so they can send and receive funds with a daily transaction limit of `2000`. ## 4. Add Nodes (Link Bank Accounts) ### Add Nodes for Individual User According to the example CIP, individuals (with cip_tag: 1) are allowed to have 2 [node types](doc:node-resources#section-node-types) (section `F`) under their user account: ACH-US and [SYNAPSE-US](doc:add-synapse-us-node). There are two ways to add an ACH-US node to a user: via [bank login credentials](doc:add-ach-us-node) OR [account/routing numbers](doc:add-ach-us-node-via-acrt-s). ACH-US nodes that are added via account/routing numbers require micro-deposit verification. If an ACH-US node is added by supplying the user's online banking login credentials (for personal user accounts only), then micro-deposit verification is not required and the node instantly receives `CREDIT-AND-DEBIT` privileges (assuming the login credentials were correct). [Node permissions](doc:node-resources#section-node-permissions) are dependent on the node type and are separate from user permissions. In addition, the node limit (section `G`) is 3 nodes per user. This means that there can be a maximum of 3 nodes under the user account. If a user adds an ACH-US node via [bank login](doc:add-ach-us-node), the response may contain multiple ACH-US nodes. The response returns all nodes that the user has under that bank login. For example, if there were 4 bank accounts/nodes associated with the user's bank login, then those 4 accounts would be added as ACH-US nodes to the user's account. This puts the user over their node limit of 3 nodes so we suggest displaying all of the nodes returned in the response and allowing the user to select the bank account/node they would like to use, then [delete](doc:delete-node) the other nodes. The request to add an ACH-US node via [bank login](doc:add-ach-us-node) would look similar to the example below: [block:callout] { "type": "info", "title": "Supported Institutions", "body": "ACH-US Accounts added with Online Banking Logins are for consumer accounts only. For a full list of banks supported by online logins, visit: https://synapsepay.com/api/v3/institutions/show." } [/block] [block:code] { "codes": [ { "code": "POST /v3.1/users/590bae4deba6500022ca53e0/nodes HTTP/1.1\nHost: uat-api.synapsefi.com\nX-SP-USER-IP: 127.0.0.1\nX-SP-USER: oauth_key|fingerprint\nContent-Type: application/json\n\n{\n \"type\": \"ACH-US\",\n \"info\":{\n \"bank_id\":\"synapse_good\",\n \"bank_pw\":\"test1234\",\n \"bank_name\":\"fake\"\n }\n}", "language": "http", "name": "Add ACH-US (Bank Login)" }, { "code": "{\n \"error_code\": \"10\",\n \"http_code\": \"202\",\n \"mfa\": {\n \"access_token\": \"fake_cd60680b9addc013ca7fb25b2b704be324d0295b34a6e3d14473e3cc65aa82d3\",\n \"message\": \"I heard you like questions so we put a question in your question?\",\n \"type\": \"question\"\n },\n \"success\": true\n}", "language": "json", "name": "Response" } ] } [/block] The response from online bank logins can contain a MFA question so it's important that you correctly handle the [MFA verification](doc:add-ach-us-node-via-bank-logins-mfa). Notice in the response above that a MFA question was returned. MFAs can be triggered once or multiple times. Even when banks send multiple MFA questions, they will do so one at a time. It is recommended that you send an answer back for the first question and then re-check the response for an `http_code` of `"202"`, which means another MFA question was sent. Cycle through the questions in this way until `http_code` is `"200"`. Grab the `access_token` from the response above and submit the answer to the MFA question with this request: [block:code] { "codes": [ { "code": "POST /v3.1/users/590bae4deba6500022ca53e0/nodes HTTP/1.1\nHost: uat-api.synapsefi.com\nX-SP-USER-IP: 127.0.0.1\nX-SP-USER: oauth_key|fingerprint\nContent-Type: application/json\n\n{\n \"access_token\":\"fake_cd60680b9addc013ca7fb25b2b704be324d0295b34a6e3d14473e3cc65aa82d3\",\n \"mfa_answer\":\"test_answer\"\n}", "language": "http", "name": "HTTP" }, { "code": "{\n \"error_code\": \"0\",\n \"http_code\": \"200\",\n \"limit\": 2,\n \"node_count\": 2,\n \"nodes\": [\n {\n \"_id\": \"5910ac9465c7dd002aa469ae\",\n \"_links\": {\n \"self\": {\n \"href\": \"https://uat-api.synapsefi.com/v3.1/users/590bae4deba6500022ca53e0/nodes/5910ac9465c7dd002aa469ae\"\n }\n },\n \"allowed\": \"CREDIT-AND-DEBIT\",\n \"client\": {\n \"id\": \"589a9eed86c2736412ce7e21\",\n \"name\": \"Client Platform\"\n },\n \"extra\": {\n \"other\": {},\n \"supp_id\": \"\"\n },\n \"info\": {\n \"account_num\": \"8902\",\n \"address\": \"PO BOX 85139, RICHMOND, VA, US\",\n \"balance\": {\n \"amount\": \"750.00\",\n \"currency\": \"USD\"\n },\n \"bank_long_name\": \"CAPITAL ONE N.A.\",\n \"bank_name\": \"CAPITAL ONE N.A.\",\n \"class\": \"SAVINGS\",\n \"match_info\": {\n \"email_match\": \"no_match\",\n \"name_match\": \"match\",\n \"phonenumber_match\": \"no_match\"\n },\n \"name_on_account\": \" \",\n \"nickname\": \"SynapsePay Test Savings Account - 8902\",\n \"routing_num\": \"6110\",\n \"type\": \"BUSINESS\"\n },\n \"is_active\": true,\n \"timeline\": [\n {\n \"date\": 1494264979718,\n \"note\": \"Node created.\"\n }\n ],\n \"type\": \"ACH-US\",\n \"user_id\": \"590bae4deba6500022ca53e0\"\n },\n {\n \"_id\": \"5910ac9565c7dd002ba607f0\",\n \"_links\": {\n \"self\": {\n \"href\": \"https://uat-api.synapsefi.com/v3.1/users/590bae4deba6500022ca53e0/nodes/5910ac9565c7dd002ba607f0\"\n }\n },\n \"allowed\": \"CREDIT-AND-DEBIT\",\n \"client\": {\n \"id\": \"589a9eed86c2736412ce7e21\",\n \"name\": \"Client Platform\"\n },\n \"extra\": {\n \"other\": {},\n \"supp_id\": \"\"\n },\n \"info\": {\n \"account_num\": \"8901\",\n \"address\": \"PO BOX 85139, RICHMOND, VA, US\",\n \"balance\": {\n \"amount\": \"800.00\",\n \"currency\": \"USD\"\n },\n \"bank_long_name\": \"CAPITAL ONE N.A.\",\n \"bank_name\": \"CAPITAL ONE N.A.\",\n \"class\": \"CHECKING\",\n \"match_info\": {\n \"email_match\": \"no_match\",\n \"name_match\": \"match\",\n \"phonenumber_match\": \"no_match\"\n },\n \"name_on_account\": \" \",\n \"nickname\": \"SynapsePay Test Checking Account - 8901\",\n \"routing_num\": \"6110\",\n \"type\": \"PERSONAL\"\n },\n \"is_active\": true,\n \"timeline\": [\n {\n \"date\": 1494264980379,\n \"note\": \"Node created.\"\n }\n ],\n \"type\": \"ACH-US\",\n \"user_id\": \"590bae4deba6500022ca53e0\"\n }\n ],\n \"page_count\": 1,\n \"success\": true\n}", "language": "json", "name": "Response" } ] } [/block] As you can see in the response from submitting the MFA answer, the `http_code` is `"200"` meaning that the answer was correct, no additional MFA question was sent, and all the nodes associated with the bank login was returned. ### Add Nodes for Business User According to the example CIP, business users (with cip_tag: 1) are allowed to have 2 [node types](doc:node-resources#section-node-types) under their user account: [ACH-US](doc:add-ach-us-node-via-acrt-s) and [SYNAPSE-US](doc:add-synapse-us-node). Let's add a `SYNAPSE-US` node and an `ACH-US` node (using account/routing numbers because business accounts are not allowed to add ACH-US nodes via the bank login method) to the business user: [block:code] { "codes": [ { "code": "POST /v3.1/users/59135352ce9311001e3a8f43/nodes HTTP/1.1\nHost: uat-api.synapsefi.com\nX-SP-USER-IP: 127.0.0.1\nX-SP-USER: oauth_key|fingerprint\nContent-Type: application/json\n\n{\n \"type\": \"SYNAPSE-US\",\n \"info\":{\n \"nickname\":\"Business Deposit Account\"\n }\n}", "language": "http", "name": "Add SYNAPSE-US" }, { "code": "{\n \"error_code\": \"0\",\n \"http_code\": \"200\",\n \"limit\": 20,\n \"node_count\": 1,\n \"nodes\": [\n {\n \"_id\": \"5913ebb3980216001f2a9925\",\n \"_links\": {\n \"self\": {\n \"href\": \"https://uat-api.synapsefi.com/v3.1/users/59135352ce9311001e3a8f43/nodes/5913ebb3980216001f2a9925\"\n }\n },\n \"allowed\": \"CREDIT-AND-DEBIT\",\n \"client\": {\n \"id\": \"589a9eed86c2736412ce7e21\",\n \"name\": \"Client Platform\"\n },\n \"extra\": {\n \"other\": {},\n \"supp_id\": \"\"\n },\n \"info\": {\n \"balance\": {\n \"amount\": 0,\n \"currency\": \"USD\"\n },\n \"name_on_account\": \" \",\n \"nickname\": \"Business Deposit Account\"\n },\n \"is_active\": true,\n \"timeline\": [\n {\n \"date\": 1494477747715,\n \"note\": \"Node created.\"\n }\n ],\n \"type\": \"SYNAPSE-US\",\n \"user_id\": \"59135352ce9311001e3a8f43\"\n }\n ],\n \"page_count\": 1,\n \"success\": true\n}", "language": "json", "name": "Response (SYNAPSE-US)" }, { "code": "POST /v3.1/users/59135352ce9311001e3a8f43/nodes HTTP/1.1\nHost: uat-api.synapsefi.com\nX-SP-USER-IP: 127.0.0.1\nX-SP-USER: oauth_key|fingerprint\nContent-Type: application/json\n\n{\n \"type\": \"ACH-US\",\n \"info\": {\n \"nickname\": \"Fake Account\",\n \"account_num\": \"123567412124234\",\n \"routing_num\": \"051000017\",\n \"type\": \"BUSINESS\",\n \"class\": \"CHECKING\"\n }\n}", "language": "http", "name": "Add ACH-US (AC/RT)" }, { "code": "{\n \"error_code\": \"0\",\n \"http_code\": \"200\",\n \"limit\": 20,\n \"node_count\": 1,\n \"nodes\": [\n {\n \"_id\": \"5913ee0998021600202ab863\",\n \"_links\": {\n \"self\": {\n \"href\": \"https://uat-api.synapsefi.com/v3.1/users/59135352ce9311001e3a8f43/nodes/5913ee0998021600202ab863\"\n }\n },\n \"allowed\": \"CREDIT\",\n \"client\": {\n \"id\": \"589a9eed86c2736412ce7e21\",\n \"name\": \"Client Platform\"\n },\n \"extra\": {\n \"other\": {},\n \"supp_id\": \"\"\n },\n \"info\": {\n \"account_num\": \"4234\",\n \"address\": \"8001 VILLA PARK DRIVE, HENRICO, VA, US\",\n \"balance\": {\n \"amount\": \"0.00\",\n \"currency\": \"USD\"\n },\n \"bank_long_name\": \"BANK OF AMERICA, N.A.\",\n \"bank_name\": \"BANK OF AMERICA, N.A.\",\n \"class\": \"CHECKING\",\n \"match_info\": {\n \"email_match\": \"not_found\",\n \"name_match\": \"not_found\",\n \"phonenumber_match\": \"not_found\"\n },\n \"name_on_account\": \" \",\n \"nickname\": \"Fake Account\",\n \"routing_num\": \"0017\",\n \"type\": \"BUSINESS\"\n },\n \"is_active\": true,\n \"timeline\": [\n {\n \"date\": 1494478345223,\n \"note\": \"Node created.\"\n }\n ],\n \"type\": \"ACH-US\",\n \"user_id\": \"59135352ce9311001e3a8f43\"\n }\n ],\n \"page_count\": 1,\n \"success\": true\n}", "language": "json", "name": "Response (ACH-US)" } ] } [/block] As you can see in the response from adding the `SYNAPSE-US` node that `allowed` is `CREDIT-AND-DEBIT`. This corresponds to the [node permissions](doc:node-resources#section-node-permissions). By default all node types except ACH-US and RESERVE-US receive CREDIT-AND-DEBIT node permissions when created. Notice in the response from adding the `ACH-US` node that `allowed` is `CREDIT` only. ACH-US nodes added with account/routing numbers usually require micro-deposit verification in order to receive `CREDIT-AND-DEBIT` node permissions. [block:callout] { "type": "warning", "title": "Micro-deposit Verification", "body": "Micro-deposits are automatically triggered after account / routing numbers are submitted. It can take 1-2 business days for the micro-deposits to appear in the user's bank account. To learn more about how micro-deposits work, read this [FAQ](https://help.synapsepay.com/hc/en-us/articles/206127287-How-do-Micro-Deposits-work-).\n\nPlease do not try to guess micro-deposit amounts. Nodes lock after 5 incorrect attempts. Also please note that micro-deposits are not sent to the bank account until the KYC process is finished for the user." } [/block] Let's [verify micro-deposit](doc:verify-micro-deposit) amounts for the ACH-US account (node `_id`: `5913ee0998021600202ab863`): [block:code] { "codes": [ { "code": "PATCH /v3.1/users/59135352ce9311001e3a8f43/nodes/5913ee0998021600202ab863 HTTP/1.1\nHost: uat-api.synapsefi.com\nX-SP-USER-IP: 127.0.0.1\nX-SP-USER: oauth_key|fingerprint\nContent-Type: application/json\n\n{\n \"micro\":[0.1,0.1]\n}", "language": "http", "name": "Verify Micro-deposit" }, { "code": "{\n \"_id\": \"5913ee0998021600202ab863\",\n \"_links\": {\n \"self\": {\n \"href\": \"https://uat-api.synapsefi.com/v3.1/users/59135352ce9311001e3a8f43/nodes/5913ee0998021600202ab863\"\n }\n },\n \"allowed\": \"CREDIT-AND-DEBIT\",\n \"client\": {\n \"id\": \"589a9eed86c2736412ce7e21\",\n \"name\": \"Client Platform\"\n },\n \"extra\": {\n \"other\": {},\n \"supp_id\": \"\"\n },\n \"info\": {\n \"account_num\": \"4234\",\n \"address\": \"8001 VILLA PARK DRIVE, HENRICO, VA, US\",\n \"balance\": {\n \"amount\": \"0.00\",\n \"currency\": \"USD\"\n },\n \"bank_long_name\": \"BANK OF AMERICA, N.A.\",\n \"bank_name\": \"BANK OF AMERICA, N.A.\",\n \"class\": \"CHECKING\",\n \"match_info\": {\n \"email_match\": \"not_found\",\n \"name_match\": \"not_found\",\n \"phonenumber_match\": \"not_found\"\n },\n \"name_on_account\": \" \",\n \"nickname\": \"Fake Account\",\n \"routing_num\": \"0017\",\n \"type\": \"BUSINESS\"\n },\n \"is_active\": true,\n \"timeline\": [\n {\n \"date\": 1494478345223,\n \"note\": \"Node created.\"\n },\n {\n \"date\": 1494478345892,\n \"note\": \"Micro deposits initiated.\"\n },\n {\n \"date\": 1494522868395,\n \"note\": \"Correct Micro Deposit amounts attempted. Node's 'allowed' changed to 'CREDIT-AND-DEBIT'\"\n }\n ],\n \"type\": \"ACH-US\",\n \"user_id\": \"59135352ce9311001e3a8f43\"\n}", "language": "json", "name": "Response" } ] } [/block] As you can see in the response, `allowed` is `CREDIT-AND-DEBIT` so this ACH-US node can now be used to send or receive funds. ## 5. Create a Transaction [block:image] { "images": [ { "image": [ "https://files.readme.io/894502f-Screen_Shot_2017-05-08_at_12.09.00_PM.png", "Screen Shot 2017-05-08 at 12.09.00 PM.png", 1212, 254, "#ededed" ], "caption": "An example flow of funds." } ] } [/block] According to the example flow of funds above, individuals (with cip_tag: 1) are allowed to send funds from their ACH-US node to the business's deposit account (SYNAPSE-US node). The business user can then send funds from their SYNAPSE-US node to their ACH-US node. If users try to [create a transaction](doc:create-transaction) that is outside their allowed flow of funds, then the transaction will be canceled. Let's create 2 transactions where transaction 1 will be sending funds from the individual's ACH-US account to the business's SYNAPSE-US account, and transaction 2 will be sending funds from the business's SYNAPSE-US account to their ACH-US account. **Transaction 1**: Individual's ACH-US (node id: `5910ac9565c7dd002ba607f0`) --> Business's SYNAPSE-US (node id: `5913ebb3980216001f2a9925`) [block:code] { "codes": [ { "code": "POST /v3.1/users/590bae4deba6500022ca53e0/nodes/5910ac9565c7dd002ba607f0/trans HTTP/1.1\nHost: uat-api.synapsefi.com\nX-SP-USER-IP: 127.0.0.1\nX-SP-USER: oauth_key|fingerprint\nContent-Type: application/json\n\n{\n \"to\": {\n \"type\": \"SYNAPSE-US\",\n \"id\": \"5913ebb3980216001f2a9925\"\n },\n \"amount\": {\n \"amount\": 20.1,\n \"currency\": \"USD\"\n },\n \"extra\": {\n \"ip\": \"192.168.0.1\",\n \"note\": \"Test transaction\",\n \"process_on\": 0\n }\n}", "language": "http", "name": "Create Transaction" }, { "code": "{\n \"_id\": \"5914bf20a396d9002212e72c\",\n \"_links\": {\n \"self\": {\n \"href\": \"https://uat-api.synapsefi.com/v3.1/users/590bae4deba6500022ca53e0/nodes/5910ac9565c7dd002ba607f0/trans/5914bf20a396d9002212e72c\"\n }\n },\n \"_v\": 2,\n \"amount\": {\n \"amount\": 20.1,\n \"currency\": \"USD\"\n },\n \"client\": {\n \"id\": \"589a9eed86c2736412ce7e21\",\n \"name\": \"Client Platform\"\n },\n \"extra\": {\n \"created_on\": 1494531872160,\n \"ip\": \"192.168.0.1\",\n \"latlon\": \"0,0\",\n \"note\": \"Test transaction\",\n \"process_on\": 1494531872160,\n \"supp_id\": \"\"\n },\n \"fees\": [\n {\n \"fee\": 0,\n \"note\": \"Facilitator Fee\",\n \"to\": {\n \"id\": \"None\"\n }\n }\n ],\n \"from\": {\n \"id\": \"5910ac9565c7dd002ba607f0\",\n \"nickname\": \"Fake Account\",\n \"type\": \"ACH-US\",\n \"user\": {\n \"_id\": \"590bae4deba6500022ca53e0\",\n \"legal_names\": []\n }\n },\n \"recent_status\": {\n \"date\": 1494531872160,\n \"note\": \"Transaction Created.\",\n \"status\": \"CREATED\",\n \"status_id\": \"1\"\n },\n \"timeline\": [\n {\n \"date\": 1494531872160,\n \"note\": \"Transaction Created.\",\n \"status\": \"CREATED\",\n \"status_id\": \"1\"\n }\n ],\n \"to\": {\n \"id\": \"5913ebb3980216001f2a9925\",\n \"nickname\": \"\",\n \"type\": \"SYNAPSE-US\",\n \"user\": {\n \"_id\": \"\",\n \"legal_names\": []\n }\n }\n}", "language": "json", "name": "Response" } ] } [/block] Information in the `to` node object is populated asynchronously so use [subscriptions](doc:subscriptions) or [GET Transaction](doc:transaction) to retrieve the most recent information on the transaction. We highly suggest [creating a subscription](doc:create-subscription) to `TRAN|PATCH` so you can be notified of transaction status updates. **Transaction 2**: Business's SYNAPSE-US (node id: `5913ebb3980216001f2a9925`) --> Business's ACH-US (node id: `5913ee0998021600202ab863`) [block:code] { "codes": [ { "code": "POST /v3.1/users/59135352ce9311001e3a8f43/nodes/5913ebb3980216001f2a9925/trans HTTP/1.1\nHost: uat-api.synapsefi.com\nX-SP-USER-IP: 127.0.0.1\nX-SP-USER: oauth_key|fingerprint\nContent-Type: application/json\n\n{\n \"to\": {\n \"type\": \"ACH-US\",\n \"id\": \"5913ee0998021600202ab863\"\n },\n \"amount\": {\n \"amount\": 11.0,\n \"currency\": \"USD\"\n },\n \"extra\": {\n \"ip\": \"192.168.0.1\",\n \"note\": \"Test transaction 2\",\n \"process_on\": 0\n }\n}", "language": "http", "name": "Create Transaction" }, { "code": "{\n \"_id\": \"5914ca482ee6920021d0ace8\",\n \"_links\": {\n \"self\": {\n \"href\": \"https://uat-api.synapsefi.com/v3.1/users/59135352ce9311001e3a8f43/nodes/5913ebb3980216001f2a9925/trans/5914ca482ee6920021d0ace8\"\n }\n },\n \"_v\": 2,\n \"amount\": {\n \"amount\": 11,\n \"currency\": \"USD\"\n },\n \"client\": {\n \"id\": \"589a9eed86c2736412ce7e21\",\n \"name\": \"Client Platform\"\n },\n \"extra\": {\n \"created_on\": 1494534728969,\n \"ip\": \"192.168.0.1\",\n \"latlon\": \"0,0\",\n \"note\": \"Test transaction 2\",\n \"process_on\": 1494534728969,\n \"supp_id\": \"\"\n },\n \"fees\": [\n {\n \"fee\": 0,\n \"note\": \"Facilitator Fee\",\n \"to\": {\n \"id\": \"None\"\n }\n }\n ],\n \"from\": {\n \"id\": \"5913ebb3980216001f2a9925\",\n \"nickname\": \"Business Deposit Account\",\n \"type\": \"SYNAPSE-US\",\n \"user\": {\n \"_id\": \"59135352ce9311001e3a8f43\",\n \"legal_names\": []\n }\n },\n \"recent_status\": {\n \"date\": 1494534728969,\n \"note\": \"Transaction Created.\",\n \"status\": \"CREATED\",\n \"status_id\": \"1\"\n },\n \"timeline\": [\n {\n \"date\": 1494534728969,\n \"note\": \"Transaction Created.\",\n \"status\": \"CREATED\",\n \"status_id\": \"1\"\n }\n ],\n \"to\": {\n \"id\": \"5913ee0998021600202ab863\",\n \"nickname\": \"\",\n \"type\": \"ACH-US\",\n \"user\": {\n \"_id\": \"\",\n \"legal_names\": []\n }\n }\n}", "language": "json", "name": "Response" } ] } [/block] To get a better understanding of the status updates for transactions, review the [transaction codes](doc:transaction-codes) and read this guide on how to [handle transaction errors](https://help.synapsepay.com/hc/en-us/articles/115004694647-Handling-Transaction-Errors).