{"_id":"55ff57305c67200d00fa2fc0","editedParams2":true,"version":{"_id":"55fa37c88065a10d004e5bb6","project":"54e405191e51932d006abc39","__v":11,"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","59499fcd64b5f5002690bbc1","59c451b7772699001c0f1df1","59c9b42dec84880010c1f348"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"REST V3","version_clean":"3.1.0","version":"3.1"},"parentDoc":null,"user":"54e4044e8ef7552300409dcb","category":{"_id":"55fca6bf34ae7c0d00ab8ea0","version":"55fa37c88065a10d004e5bb6","pages":["55ff4f549f5a880d00a6c32b","55ff52fa9f5a880d00a6c32d","55ff54365c67200d00fa2fb6","55ff57305c67200d00fa2fc0","55ff583f948a830d0023a64a","55ff5a11948a830d0023a659","55ff6162feaf310d007dd66a","55ff62289e7ccf0d000a1d7a","55ff6455feaf310d007dd66b","55ff71436932a00d00ba7a3b","55ff814c8c0c9d0d00dcac33","55ff81ecfeaf310d007dd67f","55ff890a8c0c9d0d00dcac51","55ff89778c0c9d0d00dcac52","55ff8e50feaf310d007dd68d","55ff8edd0e2b090d00863365"],"project":"54e405191e51932d006abc39","__v":16,"sync":{"url":"","isSync":false},"reference":true,"createdAt":"2015-09-19T00:05:19.904Z","from_sync":false,"order":5,"slug":"nodes","title":"Nodes"},"editedParams":true,"project":"54e405191e51932d006abc39","__v":13,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-09-21T01:02:40.564Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"settings":"","examples":{"codes":[{"code":"POST /v3.1/users/594e0fa2838454002ea317a0/nodes HTTP/1.1\nHost: uat-api.synapsefi.com\nX-SP-USER-IP: 127.0.0.1\nX-SP-USER: oauth_auVIbQ8WXC0pnLU9ivEs4tcHDejqFJlwoNrZ3fO1|e83cf6ddcf778e37bfe3d48fc78a6502062fc\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}","name":"","language":"http"}]},"method":"post","results":{"codes":[{"status":200,"name":"","code":"{\n    \"error_code\": \"0\",\n    \"http_code\": \"200\",\n    \"limit\": 3,\n    \"node_count\": 3,\n    \"nodes\": [\n        {\n            \"_id\": \"594e606112e17a002f2e324e\",\n            \"_links\": {\n                \"self\": {\n                    \"href\": \"https://uat-api.synapsefi.com/v3.1/users/594e0fa2838454002ea317a0/nodes/594e606112e17a002f2e324e\"\n                }\n            },\n            \"allowed\": \"CREDIT-AND-DEBIT\",\n            \"client\": {\n                \"id\": \"589acd9ecb3cd400fa75ac06\",\n                \"name\": \"SynapseFI\"\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\": \"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\": \"BUSINESS\"\n            },\n            \"is_active\": true,\n            \"timeline\": [\n                {\n                    \"date\": 1498308705557,\n                    \"note\": \"Node created.\"\n                }\n            ],\n            \"type\": \"ACH-US\",\n            \"user_id\": \"594e0fa2838454002ea317a0\"\n        },\n        {\n        \t...\n        },\n        ...\n    ],\n    \"page_count\": 1,\n    \"success\": true\n}","language":"json"},{"language":"json","status":202,"code":"{\n    \"error_code\": \"10\",\n    \"http_code\": \"202\",\n    \"mfa\": {\n        \"access_token\": \"fake_cd60680b9addc013ca7fb25b2b70\",\n        \"message\": \"I heard you like questions so we put a question in your question?\",\n        \"type\": \"question\"\n    },\n    \"success\": true\n}","name":"MFA"}]},"auth":"required","params":[{"_id":"5573b11e91ce6e190023b76a","ref":"","in":"body","required":true,"desc":"Type of node you wish to add. In this case its always `ACH-US`","default":"","type":"string","name":"type"},{"_id":"55fa4d6f764f5021009506c9","ref":"","in":"body","required":true,"desc":"User's online banking username","default":"","type":"string","name":"info.bank_id"},{"_id":"55fa3f2a17b9d00d00969ea3","ref":"","in":"body","required":true,"desc":"User's online banking password","default":"","type":"string","name":"info.bank_pw"},{"_id":"55ff577b5c67200d00fa2fc1","ref":"","in":"body","required":true,"desc":"This is the `bank_code` (i.e. \"capone\" for Capital One) available at [here](https://uat-api.synapsefi.com/v3/institutions/show)","default":"","type":"string","name":"info.bank_name"},{"_id":"58fe9283cc7c510f00c6f2f1","ref":"","in":"path","required":true,"desc":"The user ID of the user you wish to add the ACH-US node under","default":"","type":"string","name":"user_id"}],"url":"/v3.1/users/:user_id/nodes"},"isReference":true,"order":8,"body":"[block:api-header]\n{}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"UIaaS: Bank Logins\",\n  \"body\": \"Instead of integrating with this API, we recommend using our [Bank Logins UI](doc:bank-logins) instead.\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"These accounts may require [MFA verification](https://docs.synapsepay.com/docs/add-ach-us-node-via-bank-logins-mfa) once or multiple times.\\n\\nIf a user's bank account does not support MFA, an MFA email will be sent to the user's email address to verify the account.\\n\\nCurrently MFA `type` we support are `code` and `question`.\",\n  \"title\": \"Bank Login MFA\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"The response may contain multiple ACH-US nodes, as shown in the example. The response returns all nodes that the user has under that bank login.\",\n  \"title\": \"Be Prepared to Receive Multiple Nodes\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\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://uat-api.synapsefi.com/v3.1/institutions for sandbox or https://api.synapsefi.com/v3.1/institutions for production.\",\n  \"title\": \"Supported Institutions\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Timeout Window\",\n  \"body\": \"Bank logins can take awhile sometimes. We recommend keeping your timeout window a little over 300sec.\"\n}\n[/block]\n\n[block:api-header]\n{}\n[/block]\n## Encrypting Data\n\nIf you wish to encrypt bank login info while transmitting the information from the client device, you can use the following encryption key.\n\nThe key works for `bank_id`, `bank_pw` and `mfa_answer`.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"-----BEGIN PUBLIC KEY-----\\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxy7xFpupeVxgUiaPneI1\\nWAioSIeL6+/NAIIjbvDOvdTCNUeI//ob4bfdGLYlXpXOor/5POqfheZnHzkTu6Bh\\nDQqGZBc2BLaARlqx0s+twIadPwzqOJETzmp7r5U5ZioluOGDw4CF+JKRL6sBOaYr\\n5wJ3BemZOXqQE7SAqIsi6Sej2ijGzVFq4tR3gogAdMKjGhzDwthqzZViZN1Zhzb8\\njsX/aCY+OWq9IUp4iX41fYmpfI9klVKnneAuVAIOPhI5zMaZ7JiQ+88ZQngTi6Ih\\nieyGIjvfG7FTsLNoYEqu1OeKw3SRt+HSs+LpnO3P9wwWODZtr07H7oxNJDAIoXIT\\nPwIDAQAB\\n-----END PUBLIC KEY-----\",\n      \"language\": \"text\"\n    }\n  ]\n}\n[/block]\n[JSencrypt](https://github.com/travist/jsencrypt) is an easy to use library to use for this purpose, the implementation would look something like this\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"// Encrypt with the public key...\\nvar encrypt = new JSEncrypt();\\nencrypt.setPublicKey($('#pubkey').val());\\nvar encryptedUsername = encrypt.encrypt($('#username').val());\\nvar encryptedPassword = encrypt.encrypt($('#password').val());\\nvar encryptedMFA = encrypt.encrypt($('#mfa').val());\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\nHaving said that, instead of integrating with this API, we strongly recommend using our [Bank Logins UI](doc:bank-logins) instead.","excerpt":"Create an ACH-US node using bank login credentials","slug":"add-ach-us-node","type":"endpoint","title":"ACH-US with Logins"}

postACH-US with Logins

Create an ACH-US node using bank login credentials

Definition

{{ api_url }}{{ page_api_url }}

Parameters

Path Params

user_id:
required
string
The user ID of the user you wish to add the ACH-US node under

Body Params

type:
required
string
Type of node you wish to add. In this case its always `ACH-US`
info.bank_id:
required
string
User's online banking username
info.bank_pw:
required
string
User's online banking password
info.bank_name:
required
string
This is the `bank_code` (i.e. "capone" for Capital One) available at [here](https://uat-api.synapsefi.com/v3/institutions/show)

Examples


Result Format


Documentation

[block:api-header] {} [/block] [block:callout] { "type": "info", "title": "UIaaS: Bank Logins", "body": "Instead of integrating with this API, we recommend using our [Bank Logins UI](doc:bank-logins) instead." } [/block] [block:callout] { "type": "warning", "body": "These accounts may require [MFA verification](https://docs.synapsepay.com/docs/add-ach-us-node-via-bank-logins-mfa) once or multiple times.\n\nIf a user's bank account does not support MFA, an MFA email will be sent to the user's email address to verify the account.\n\nCurrently MFA `type` we support are `code` and `question`.", "title": "Bank Login MFA" } [/block] [block:callout] { "type": "info", "body": "The response may contain multiple ACH-US nodes, as shown in the example. The response returns all nodes that the user has under that bank login.", "title": "Be Prepared to Receive Multiple Nodes" } [/block] [block:callout] { "type": "info", "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://uat-api.synapsefi.com/v3.1/institutions for sandbox or https://api.synapsefi.com/v3.1/institutions for production.", "title": "Supported Institutions" } [/block] [block:callout] { "type": "info", "title": "Timeout Window", "body": "Bank logins can take awhile sometimes. We recommend keeping your timeout window a little over 300sec." } [/block] [block:api-header] {} [/block] ## Encrypting Data If you wish to encrypt bank login info while transmitting the information from the client device, you can use the following encryption key. The key works for `bank_id`, `bank_pw` and `mfa_answer`. [block:code] { "codes": [ { "code": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxy7xFpupeVxgUiaPneI1\nWAioSIeL6+/NAIIjbvDOvdTCNUeI//ob4bfdGLYlXpXOor/5POqfheZnHzkTu6Bh\nDQqGZBc2BLaARlqx0s+twIadPwzqOJETzmp7r5U5ZioluOGDw4CF+JKRL6sBOaYr\n5wJ3BemZOXqQE7SAqIsi6Sej2ijGzVFq4tR3gogAdMKjGhzDwthqzZViZN1Zhzb8\njsX/aCY+OWq9IUp4iX41fYmpfI9klVKnneAuVAIOPhI5zMaZ7JiQ+88ZQngTi6Ih\nieyGIjvfG7FTsLNoYEqu1OeKw3SRt+HSs+LpnO3P9wwWODZtr07H7oxNJDAIoXIT\nPwIDAQAB\n-----END PUBLIC KEY-----", "language": "text" } ] } [/block] [JSencrypt](https://github.com/travist/jsencrypt) is an easy to use library to use for this purpose, the implementation would look something like this [block:code] { "codes": [ { "code": "// Encrypt with the public key...\nvar encrypt = new JSEncrypt();\nencrypt.setPublicKey($('#pubkey').val());\nvar encryptedUsername = encrypt.encrypt($('#username').val());\nvar encryptedPassword = encrypt.encrypt($('#password').val());\nvar encryptedMFA = encrypt.encrypt($('#mfa').val());", "language": "javascript" } ] } [/block] Having said that, instead of integrating with this API, we strongly recommend using our [Bank Logins UI](doc:bank-logins) instead.