{"files":{"SKILL.md":"---\nname: xero-bank-feeds-api\ndescription: \"Xero Bank Feeds API skill. Use when working with Xero Bank Feeds for FeedConnections, Statements. Covers 7 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Xero Bank Feeds API\nAPI version: 12.0.0\n\n## Auth\nOAuth2\n\n## Base URL\nhttps://api.xero.com/bankfeeds.xro/1.0\n\n## Setup\n1. Configure auth: OAuth2\n2. GET /FeedConnections -- searches for feed connections\n3. POST /FeedConnections -- create first FeedConnection\n\n## Endpoints\n7 endpoints across 2 groups. See references/api-spec.lap for full details.\n\n### FeedConnections\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /FeedConnections | Searches for feed connections |\n| POST | /FeedConnections | Create one or more new feed connection |\n| GET | /FeedConnections/{id} | Retrieve single feed connection based on a unique id provided |\n| POST | /FeedConnections/DeleteRequests | Delete an existing feed connection |\n\n### Statements\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /Statements | Retrieve all statements |\n| POST | /Statements | Creates one or more new statements |\n| GET | /Statements/{statementId} | Retrieve single statement based on unique id provided |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all FeedConnections?\" -> GET /FeedConnections\n- \"Create a FeedConnection?\" -> POST /FeedConnections\n- \"Get FeedConnection details?\" -> GET /FeedConnections/{id}\n- \"Create a DeleteRequest?\" -> POST /FeedConnections/DeleteRequests\n- \"List all Statements?\" -> GET /Statements\n- \"Create a Statement?\" -> POST /Statements\n- \"Get Statement details?\" -> GET /Statements/{statementId}\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Paginated endpoints accept limit/offset or cursor parameters\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Xero Bank Feeds API\n@base https://api.xero.com/bankfeeds.xro/1.0\n@version 11.1.0\n@auth OAuth2\n@endpoints 7\n@toc FeedConnections(4), Statements(3)\n\n@group FeedConnections\n@endpoint GET /FeedConnections\n@desc Searches for feed connections\n@optional {page: int # Page number which specifies the set of records to retrieve. By default the number of the records per set is 10. Example - https://api.xero.com/bankfeeds.xro/1.0/FeedConnections?page=1 to get the second set of the records. When page value is not a number or a negative number, by default, the first set of records is returned., pageSize: int # Page size which specifies how many records per page will be returned (default 10). Example - https://api.xero.com/bankfeeds.xro/1.0/FeedConnections?pageSize=100 to specify page size of 100.}\n@returns(202) {pagination: map{page: int, pageSize: int, pageCount: int, itemCount: int}, items: [map]} # search results matching criteria returned with pagination and items array\n@errors {400: validation error response}\n\n@endpoint POST /FeedConnections\n@desc Create one or more new feed connection\n@optional {Idempotency-Key: str # This allows you to safely retry requests without the risk of duplicate processing. 128 character max., pagination: map{page: int, pageSize: int, pageCount: int, itemCount: int}, items: [map{id: str(uuid), accountToken: str, accountNumber: str, accountName: str, accountId: str(uuid), accountType: any, currency: str, country: str, status: str, error: map}]}\n@returns(202) {pagination: map{page: int, pageSize: int, pageCount: int, itemCount: int}, items: [map]} # success new feed connection(s)response\n@errors {400: failed to create new feed connection(s)response}\n@example_request {\"items\":[{\"accountToken\":\"foobar71760\",\"accountNumber\":\"123458637\",\"accountName\":\"SDK Bank 90861\",\"accountType\":\"BANK\",\"currency\":\"GBP\"}]}\n\n@endpoint GET /FeedConnections/{id}\n@desc Retrieve single feed connection based on a unique id provided\n@required {id: str(uuid) # Unique identifier for retrieving single object}\n@returns(200) {id: str(uuid), accountToken: str, accountNumber: str, accountName: str, accountId: str(uuid), accountType: any, currency: str, country: str, status: str, error: map{title: str, status: int, detail: str, type: str}} # success returns a FeedConnection object matching the id in response\n@errors {400: bad input parameter}\n\n@endpoint POST /FeedConnections/DeleteRequests\n@desc Delete an existing feed connection\n@optional {Idempotency-Key: str # This allows you to safely retry requests without the risk of duplicate processing. 128 character max., pagination: map{page: int, pageSize: int, pageCount: int, itemCount: int}, items: [map{id: str(uuid), accountToken: str, accountNumber: str, accountName: str, accountId: str(uuid), accountType: any, currency: str, country: str, status: str, error: map}]}\n@returns(202) {pagination: map{page: int, pageSize: int, pageCount: int, itemCount: int}, items: [map]} # Success response for deleted feed connection\n@errors {400: bad input parameter}\n@example_request {\"items\":[{\"id\":\"b4cc693b-24d9-42ec-a6d4-2943d253ff63\"}]}\n\n@endgroup\n\n@group Statements\n@endpoint GET /Statements\n@desc Retrieve all statements\n@optional {page: int(int32) # unique id for single object, pageSize: int(int32) # Page size which specifies how many records per page will be returned (default 10). Example - https://api.xero.com/bankfeeds.xro/1.0/Statements?pageSize=100 to specify page size of 100., Xero-Application-Id: str=00000000-0000-0000-0000-0000000010000, Xero-User-Id: str=00000000-0000-0000-0000-0000030000000}\n@returns(200) {pagination: map{page: int, pageSize: int, pageCount: int, itemCount: int}, items: [map]} # success returns Statements array of objects response\n@errors {400: bad input parameter}\n\n@endpoint POST /Statements\n@desc Creates one or more new statements\n@optional {Idempotency-Key: str # This allows you to safely retry requests without the risk of duplicate processing. 128 character max., pagination: map{page: int, pageSize: int, pageCount: int, itemCount: int}, items: [map{id: str(uuid), feedConnectionId: str(uuid), status: any, startDate: str(date), endDate: str(date), startBalance: map, endBalance: map, statementLines: [map], errors: [map], statementLineCount: int}]}\n@returns(202) {pagination: map{page: int, pageSize: int, pageCount: int, itemCount: int}, items: [map]} # Success returns Statements array of objects in response\n@errors {400: Statement failed validation, 403: Invalid application or feed connection, 409: Duplicate statement received, 413: Statement exceeds size limit, 422: Unprocessable Entity, 500: Intermittent Xero Error}\n@example_request {\"items\":[{\"feedConnectionId\":\"6a4b9ff5-3a5f-4321-936b-4796163550f6\",\"startDate\":\"2019-08-11\",\"endDate\":\"2019-08-11\",\"startBalance\":{\"amount\":\"100\",\"creditDebitIndicator\":\"CREDIT\"},\"endBalance\":{\"amount\":\"150\",\"creditDebitIndicator\":\"CREDIT\"},\"statementLines\":[{\"postedDate\":\"2019-08-11\",\"description\":\"My new line\",\"amount\":\"50\",\"creditDebitIndicator\":\"CREDIT\",\"transactionId\":\"123446422\",\"payeeName\":\"StarLord90315\",\"reference\":\"Foobar95578\",\"chequeNumber\":\"12379009\",\"transactionType\":\"Refund\"}]},{\"feedConnectionId\":\"2ebe6393-f3bb-48ab-9a0e-b04fa8585a70\",\"startDate\":\"2019-08-11\",\"endDate\":\"2019-08-11\",\"startBalance\":{\"amount\":\"100\",\"creditDebitIndicator\":\"CREDIT\"},\"endBalance\":{\"amount\":\"150\",\"creditDebitIndicator\":\"CREDIT\"},\"statementLines\":[{\"postedDate\":\"2019-08-11\",\"description\":\"My new line\",\"amount\":\"50\",\"creditDebitIndicator\":\"CREDIT\",\"transactionId\":\"123449402\",\"payeeName\":\"StarLord56705\",\"reference\":\"Foobar67355\",\"chequeNumber\":\"12379350\",\"transactionType\":\"Currency Conversion Fee\"}]}]}\n\n@endpoint GET /Statements/{statementId}\n@desc Retrieve single statement based on unique id provided\n@required {statementId: str(uuid) # statement id for single object}\n@returns(200) {id: str(uuid), feedConnectionId: str(uuid), status: any, startDate: str(date), endDate: str(date), startBalance: map{amount: num(double), creditDebitIndicator: str}, endBalance: map{amount: num(double), creditDebitIndicator: str}, statementLines: [map], errors: [map], statementLineCount: int} # search results matching id for single statement\n@errors {404: Statement not found}\n\n@endgroup\n\n@end\n"}}