{"_id":"5939d6e6c78839000f4c0033","project":"54c935c60174630d00efa949","version":"5939d621c78839000f4c0030","category":"5939d6c6c78839000f4c0032","user":"54c933e34574700d00f016f4","updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-06-08T22:59:50.326Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":0,"body":"This is our public API for our banking services. It contains endpoints for retrieving transaction data, balances, and more features will continue to be added soon.\n[block:api-header]\n{\n  \"title\": \"Clients\"\n}\n[/block]\n\nOur API is RESTFUL. However, we have some clients that makes access easier\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"Go\",\n    \"h-0\": \"Language\",\n    \"h-1\": \"Client\",\n    \"0-1\": \"[Seed-go](https://github.com/seedco/seed-go)\",\n    \"h-2\": \"Link\"\n  },\n  \"cols\": 2,\n  \"rows\": 1\n}\n[/block]","excerpt":"","slug":"general-overview","type":"basic","title":"General Overview","__v":0,"parentDoc":null,"childrenPages":[]}

General Overview


This is our public API for our banking services. It contains endpoints for retrieving transaction data, balances, and more features will continue to be added soon. [block:api-header] { "title": "Clients" } [/block] Our API is RESTFUL. However, we have some clients that makes access easier [block:parameters] { "data": { "0-0": "Go", "h-0": "Language", "h-1": "Client", "0-1": "[Seed-go](https://github.com/seedco/seed-go)", "h-2": "Link" }, "cols": 2, "rows": 1 } [/block]
This is our public API for our banking services. It contains endpoints for retrieving transaction data, balances, and more features will continue to be added soon. [block:api-header] { "title": "Clients" } [/block] Our API is RESTFUL. However, we have some clients that makes access easier [block:parameters] { "data": { "0-0": "Go", "h-0": "Language", "h-1": "Client", "0-1": "[Seed-go](https://github.com/seedco/seed-go)", "h-2": "Link" }, "cols": 2, "rows": 1 } [/block]
{"_id":"5939d705c78839000f4c0034","project":"54c935c60174630d00efa949","version":"5939d621c78839000f4c0030","category":"5939d6c6c78839000f4c0032","user":"54c933e34574700d00f016f4","updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-06-08T23:00:21.610Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":201,"language":"json","code":"{\n    \"errors\": [],\n    \"results\": [\n        {\n            \"access_token\": \"1.EovnsSPASFGbK_RyfLeQtw.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its\",\n            \"type\": \"public-api\"\n        }\n    ]\n}\n","name":""},{"status":401,"language":"text","code":"Unauthorized","name":""}]},"settings":"","auth":"required","params":[],"url":"/auth/token","examples":{"codes":[{"code":"curl -u 'username:password' https://api.seed.co/v1/public/auth/token","language":"curl"}]}},"isReference":false,"order":1,"body":"The basic flow for authentication is:\n\n* Username and password is used to exchange for an API token.\n* User gets a long-lived API token, until it is revoked or expired.\n\nThe token can be used in the `Authorization` header to make API calls:\n\n```\nAuthorization: Bearer 1.EovnsSPASFGbK_RyfLeQtw.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its\n```\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"req := http.NewRequest(\\\"GET\\\", endpointUrl, nil)\\nauthValue := fmt.Sprintf(\\\"Bearer %s\\\", \\\"1.EovnsSPASFGbK_RyfLeQtw.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its\\\")\\nreq.Header.Add(\\\"Authorization\\\", authValue)\",\n      \"language\": \"go\"\n    }\n  ]\n}\n[/block]","excerpt":"","slug":"authentication","title":"Authentication","__v":0,"parentDoc":null,"childrenPages":[]}

Authentication


The basic flow for authentication is: * Username and password is used to exchange for an API token. * User gets a long-lived API token, until it is revoked or expired. The token can be used in the `Authorization` header to make API calls: ``` Authorization: Bearer 1.EovnsSPASFGbK_RyfLeQtw.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its ``` [block:code] { "codes": [ { "code": "req := http.NewRequest(\"GET\", endpointUrl, nil)\nauthValue := fmt.Sprintf(\"Bearer %s\", \"1.EovnsSPASFGbK_RyfLeQtw.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its\")\nreq.Header.Add(\"Authorization\", authValue)", "language": "go" } ] } [/block]

User Information

Try It Out

{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



The basic flow for authentication is: * Username and password is used to exchange for an API token. * User gets a long-lived API token, until it is revoked or expired. The token can be used in the `Authorization` header to make API calls: ``` Authorization: Bearer 1.EovnsSPASFGbK_RyfLeQtw.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its ``` [block:code] { "codes": [ { "code": "req := http.NewRequest(\"GET\", endpointUrl, nil)\nauthValue := fmt.Sprintf(\"Bearer %s\", \"1.EovnsSPASFGbK_RyfLeQtw.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its\")\nreq.Header.Add(\"Authorization\", authValue)", "language": "go" } ] } [/block]
{"_id":"5939d7546c83cb003b99c0bc","project":"54c935c60174630d00efa949","version":"5939d621c78839000f4c0030","category":"5939d6c6c78839000f4c0032","user":"54c933e34574700d00f016f4","updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-06-08T23:01:40.194Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{\n  \"results\":\n    [\n      {\n        \"id\" : \"472901ae-5473-4089-9dbe-afa71a46e585\",\n        \"checking_account_id\" : \"9d9d21c7-2926-498e-b087-128f8b0e8b42\",\n        \"amount\" : 50,\n        \"status\": \"settled\",\n        \"attachments\" : [],\n        \"date\" : \"2016-12-27T12:00:00Z\",\n        \"category\" : \"Transfers\",\n        \"description\" : \"From Bank Of America 1234\",\n        \"memo\" : \"\"\n      }\n    ]\n}","name":""},{"status":400,"language":"json","code":"{}","name":""},{"status":500,"language":"text","code":""}]},"settings":"","auth":"required","params":[{"_id":"5939d80b4ea7ce000f36df7f","ref":"","in":"query","required":false,"desc":"the status of the transaction, either pending or settled","default":"","type":"string","name":"status"},{"_id":"5939d80b4ea7ce000f36df7e","ref":"","in":"query","required":false,"desc":"The start of a date range","default":"","type":"yyyy-mm-dd","name":"start_date"},{"_id":"5939d80b4ea7ce000f36df7d","ref":"","in":"query","required":false,"desc":"The end of a date range","default":"","type":"yyyy-mm-dd","name":"end_date"},{"_id":"5939d80b4ea7ce000f36df7c","ref":"","in":"query","required":false,"desc":"The offset index used for pagination","default":"0","type":"int","name":"offset"},{"_id":"5939d80b4ea7ce000f36df7b","ref":"","in":"query","required":false,"desc":"The limit used for pagination","default":"1000","type":"int","name":"limit"}],"url":"/transactions","examples":{"codes":[{"language":"go","code":"c := http.Client{}\nreq := http.NewRequest(\"GET\", \"https://api.seed.co/public/transactions\", nil)\nauthValue := fmt.Sprintf(\"Bearer %s\", \"1.EovnsSPASFGbK_RyfLeQtw.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its\")\nreq.Header.Add(\"Authorization\", authValue)\nresp, err := c.Do(req)"},{"code":"import requests\n\nendpoint = \"https://api.seed.co/v1/public/transactions\"\n\nheaders = {\"Authorization\":\"Bearer 1.EovnsSPASFGbK_RyfLeQtw.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its\"}\n\nresult = requests.get(endpoint,headers=headers).json()","language":"python"}]},"method":"get"},"isReference":false,"order":2,"body":"The transactions endpoint returns a list of Seed transactions in date descending order\n[block:api-header]\n{\n  \"title\": \"Transaction Model\"\n}\n[/block]\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Field\",\n    \"h-1\": \"Description\",\n    \"0-0\": \"**id**\",\n    \"0-1\": \"The unique id of this transaction\",\n    \"1-0\": \"**checking_account_id**\",\n    \"1-1\": \"The checking account id associated with this transaction. In most cases, each seed account only has 1 checking account associated with it\",\n    \"2-0\": \"**amount**\",\n    \"2-1\": \"The amount of the transaction **in cents**\",\n    \"3-0\": \"**status**\",\n    \"3-1\": \"The status of the transaction. Possible values are [settled, pending]\",\n    \"4-0\": \"**attachments**\",\n    \"4-1\": \"A list of attachments\",\n    \"5-0\": \"**date**\",\n    \"5-1\": \"The date the transaction took place\",\n    \"6-0\": \"**category**\",\n    \"6-1\": \"The category of the transaction\",\n    \"7-0\": \"**description**\",\n    \"7-1\": \"The description of the transaction\",\n    \"8-0\": \"**memo**\",\n    \"8-1\": \"The user entered memo of the transaction\"\n  },\n  \"cols\": 2,\n  \"rows\": 9\n}\n[/block]","excerpt":"","slug":"transactions","type":"get","title":"Transactions - List","__v":1,"parentDoc":null,"childrenPages":[]}

getTransactions - List


Query Params

status:
string
the status of the transaction, either pending or settled
start_date:
yyyy-mm-dd
The start of a date range
end_date:
yyyy-mm-dd
The end of a date range
offset:
integer0
The offset index used for pagination
limit:
integer1000
The limit used for pagination
The transactions endpoint returns a list of Seed transactions in date descending order [block:api-header] { "title": "Transaction Model" } [/block] [block:parameters] { "data": { "h-0": "Field", "h-1": "Description", "0-0": "**id**", "0-1": "The unique id of this transaction", "1-0": "**checking_account_id**", "1-1": "The checking account id associated with this transaction. In most cases, each seed account only has 1 checking account associated with it", "2-0": "**amount**", "2-1": "The amount of the transaction **in cents**", "3-0": "**status**", "3-1": "The status of the transaction. Possible values are [settled, pending]", "4-0": "**attachments**", "4-1": "A list of attachments", "5-0": "**date**", "5-1": "The date the transaction took place", "6-0": "**category**", "6-1": "The category of the transaction", "7-0": "**description**", "7-1": "The description of the transaction", "8-0": "**memo**", "8-1": "The user entered memo of the transaction" }, "cols": 2, "rows": 9 } [/block]

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



The transactions endpoint returns a list of Seed transactions in date descending order [block:api-header] { "title": "Transaction Model" } [/block] [block:parameters] { "data": { "h-0": "Field", "h-1": "Description", "0-0": "**id**", "0-1": "The unique id of this transaction", "1-0": "**checking_account_id**", "1-1": "The checking account id associated with this transaction. In most cases, each seed account only has 1 checking account associated with it", "2-0": "**amount**", "2-1": "The amount of the transaction **in cents**", "3-0": "**status**", "3-1": "The status of the transaction. Possible values are [settled, pending]", "4-0": "**attachments**", "4-1": "A list of attachments", "5-0": "**date**", "5-1": "The date the transaction took place", "6-0": "**category**", "6-1": "The category of the transaction", "7-0": "**description**", "7-1": "The description of the transaction", "8-0": "**memo**", "8-1": "The user entered memo of the transaction" }, "cols": 2, "rows": 9 } [/block]
{"_id":"5941d5a688ac6300230b05c6","project":"54c935c60174630d00efa949","version":"5939d621c78839000f4c0030","category":"5939d6c6c78839000f4c0032","user":"5939dc64109baf00336c1130","updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-06-15T00:32:38.342Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"method":"get","examples":{"codes":[{"language":"go","code":"c := http.Client{}\nreq := http.NewRequest(\"GET\", \"https://api.seed.co/public/transactions/search?query=Mcdonalds\", nil)\nauthValue := fmt.Sprintf(\"Bearer %s\", \"1.EovnsSPASFGbK_RyfLeQtw.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its\")\nreq.Header.Add(\"Authorization\", authValue)\nresp, err := c.Do(req)"},{"code":"import requests\n\nendpoint = \"https://api.seed.co/v1/public/transactions/search\"\nquery = \"query=kittens\"\n\nheaders = {\"Authorization\":\"Bearer 1.EovnsSPASFGbK_RyfLeQtw.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its.8xsigxghe-s3oxalvibvhvzcgh55jx4qeloumgn9its\"}\n\nresult = requests.get(endpoint + \"?\" + query ,headers=headers).json()","language":"python"}]},"settings":"","results":{"codes":[{"status":200,"language":"json","code":"{\n  \"results\":\n    [\n      {\n        \"id\" : \"472901ae-5473-4089-9dbe-afa71a46e585\",\n        \"checking_account_id\" : \"9d9d21c7-2926-498e-b087-128f8b0e8b42\",\n        \"amount\" : 736,\n        \"status\": \"settled\",\n        \"attachments\" : [],\n        \"date\" : \"2016-12-27T12:00:00Z\",\n        \"category\" : \"Meals & Entertainment\",\n        \"description\" : \"Mcdonalds\",\n        \"memo\" : \"\"\n      }\n    ]\n}","name":""},{"status":400,"language":"json","code":"{}","name":""},{"status":500,"language":"text","code":""}]},"auth":"required","params":[{"_id":"5939d80b4ea7ce000f36df7f","ref":"","in":"query","required":false,"desc":"The query to use for searching transactions","default":"","type":"string","name":"query"},{"_id":"5939d80b4ea7ce000f36df7c","ref":"","in":"query","required":false,"desc":"The offset index used for pagination","default":"0","type":"int","name":"offset"},{"_id":"5939d80b4ea7ce000f36df7b","ref":"","in":"query","required":false,"desc":"The limit used for pagination","default":"1000","type":"int","name":"limit"}],"url":"/transactions/search"},"isReference":false,"order":3,"body":"The Transactions Search endpoint takes a query string, and it will do a wildcard search matching the query string to the **description**, **category**, and **memo** fields. If any of these match, the transaction is returned","excerpt":"","slug":"transactions-search","type":"get","title":"Transactions - Search","__v":1,"parentDoc":null,"childrenPages":[]}

getTransactions - Search


Query Params

query:
string
The query to use for searching transactions
offset:
integer0
The offset index used for pagination
limit:
integer1000
The limit used for pagination
The Transactions Search endpoint takes a query string, and it will do a wildcard search matching the query string to the **description**, **category**, and **memo** fields. If any of these match, the transaction is returned

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



The Transactions Search endpoint takes a query string, and it will do a wildcard search matching the query string to the **description**, **category**, and **memo** fields. If any of these match, the transaction is returned
{"_id":"59417572bc1ff100194f3109","project":"54c935c60174630d00efa949","version":"5939d621c78839000f4c0030","category":"5939d6c6c78839000f4c0032","user":"5939dc64109baf00336c1130","updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-06-14T17:42:10.922Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"method":"get","examples":{"codes":[]},"results":{"codes":[{"status":200,"language":"json","code":"{\n   \"errors\" : [],\n   \"results\" : [\n      {\n         \"pending_debits\" : 5892,\n         \"accessible\" : 31932,\n         \"lockbox\" : 0,\n         \"scheduled_debits\" : 0,\n         \"pending_credits\" : 0,\n         \"total_available\" : 31932,\n         \"settled\" : 37824,\n         \"checking_account_id\" : \"dc7839b9-a609-47df-b883-3b8450a7a57e\"\n      }\n   ]\n}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":"/balance"},"isReference":false,"order":4,"body":"The Balance endpoint gives access to balance information\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Field\",\n    \"h-1\": \"Description\",\n    \"0-0\": \"**accessible**\",\n    \"0-1\": \"The balance that you can use. However The **accessible** balance can easily change when the **pending_debits** settle. That's why **total available** is the balance that is \\\"safe to spend\\\".\",\n    \"1-0\": \"**pending_debits**\",\n    \"1-1\": \"Total balance of debit transactions that have not yet settled\",\n    \"2-0\": \"**pending_credits**\",\n    \"2-1\": \"Total balance of credit transactions that have not yet settled\",\n    \"4-0\": \"**settled**\",\n    \"4-1\": \"Total balance of settled transactions\",\n    \"5-0\": \"**lockbox**\",\n    \"5-1\": \"Total balance in the lockbox\",\n    \"6-0\": \"**total_available**\",\n    \"6-1\": \"Total balance that is safe to spend. **total_available** = **accessible** - **pending_debits** - **scheduled_debits**\",\n    \"3-0\": \"**scheduled_debits**\",\n    \"3-1\": \"Total balance of scheduled debit transactions\"\n  },\n  \"cols\": 2,\n  \"rows\": 7\n}\n[/block]","excerpt":"","slug":"balance","type":"get","title":"Balance","__v":1,"parentDoc":null,"childrenPages":[]}

getBalance


The Balance endpoint gives access to balance information [block:parameters] { "data": { "h-0": "Field", "h-1": "Description", "0-0": "**accessible**", "0-1": "The balance that you can use. However The **accessible** balance can easily change when the **pending_debits** settle. That's why **total available** is the balance that is \"safe to spend\".", "1-0": "**pending_debits**", "1-1": "Total balance of debit transactions that have not yet settled", "2-0": "**pending_credits**", "2-1": "Total balance of credit transactions that have not yet settled", "4-0": "**settled**", "4-1": "Total balance of settled transactions", "5-0": "**lockbox**", "5-1": "Total balance in the lockbox", "6-0": "**total_available**", "6-1": "Total balance that is safe to spend. **total_available** = **accessible** - **pending_debits** - **scheduled_debits**", "3-0": "**scheduled_debits**", "3-1": "Total balance of scheduled debit transactions" }, "cols": 2, "rows": 7 } [/block]

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Result Format



The Balance endpoint gives access to balance information [block:parameters] { "data": { "h-0": "Field", "h-1": "Description", "0-0": "**accessible**", "0-1": "The balance that you can use. However The **accessible** balance can easily change when the **pending_debits** settle. That's why **total available** is the balance that is \"safe to spend\".", "1-0": "**pending_debits**", "1-1": "Total balance of debit transactions that have not yet settled", "2-0": "**pending_credits**", "2-1": "Total balance of credit transactions that have not yet settled", "4-0": "**settled**", "4-1": "Total balance of settled transactions", "5-0": "**lockbox**", "5-1": "Total balance in the lockbox", "6-0": "**total_available**", "6-1": "Total balance that is safe to spend. **total_available** = **accessible** - **pending_debits** - **scheduled_debits**", "3-0": "**scheduled_debits**", "3-1": "Total balance of scheduled debit transactions" }, "cols": 2, "rows": 7 } [/block]