Skip to content

Instantly share code, notes, and snippets.

@berend
Created November 2, 2017 09:09
Show Gist options
  • Save berend/6712b1179ffde59cc74e3b97cda36870 to your computer and use it in GitHub Desktop.
Save berend/6712b1179ffde59cc74e3b97cda36870 to your computer and use it in GitHub Desktop.
{
"swagger": "2.0",
"info": {
"version": "1.0",
"title": "The figo Connect API",
"description": "TODO: Add a description",
"license": {
"name": "MIT",
"url": "http://github.com/gruntjs/grunt/blob/master/LICENSE-MIT"
}
},
"host": "example.com",
"basePath": "/",
"schemes": [
"http"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"paths": {
"/version": {
"get": {
"description": "Shows the current version of the *figo Connect* API and all available fingerprints you can use to perform certificate pinning against.",
"summary": "Version",
"tags": [
"API Status"
],
"operationId": "Version",
"produces": [
"application/json"
],
"parameters": [],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/Version"
},
"examples": {
"application/json": {
"product_environment": "api",
"product_version": "2.0.126",
"product_name": "figo Connect",
"ssl_fingerprints": [
"DB:E2:E9:15:8F:C9:90:30:84:FE:36:CA:A6:11:38:D8:5A:20:5D:93"
]
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "GET",
"uri": "/version"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"product_environment\": \"api\", \"product_version\": \"2.0.126\", \"product_name\": \"figo Connect\", \"ssl_fingerprints\": [ \"DB:E2:E9:15:8F:C9:90:30:84:FE:36:CA:A6:11:38:D8:5A:20:5D:93\" ]}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Version1",
"x-testDescription": "Shows the current version of the *figo Connect* API and all available fingerprints you can use to perform certificate pinning against."
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/": {
"get": {
"description": "",
"summary": "Error",
"tags": [
"Error Handling"
],
"operationId": "Error",
"produces": [
"application/json"
],
"parameters": [],
"responses": {
"200": {
"description": ""
},
"400": {
"description": "",
"schema": {}
}
},
"x-unitTests": [
{
"request": {
"method": "GET",
"uri": "/"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "NONE",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {}
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Error1",
"x-testDescription": "Testcase for testing endpoint Error"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/auth/code": {
"get": {
"description": "If your client is not authorized to create figo accounts itself, your application must first obtain an *authorization code* before it can request an *access token*. Your application can initiate the authorization process by directing the user’s web browser to a popup window of figo Connect. The popup window will ask the user for their figo account credentials. The user will see the permissions as specified in scope and a list of bank and payment service accounts to choose from. If the user grants access to your application, the *figo Connect* server sends an authorization code to the callback URL by redirecting the browser to `redirect_uri`.\n**NOTE** You cannot use the demo client ID for this call.",
"summary": "Obtain authorization code",
"tags": [
"Authentication"
],
"operationId": "Obtain authorization code",
"produces": [
"application/json"
],
"parameters": [
{
"name": "response_type",
"in": "query",
"required": true,
"enum": [
"code"
],
"type": "string",
"description": "This parameter must be set to `code`."
},
{
"name": "client_id",
"in": "query",
"required": true,
"type": "string",
"description": "The client ID obtained during application registration"
},
{
"name": "state",
"in": "query",
"required": true,
"type": "string",
"description": "Any kind of string that will be forwarded with the redirection response. It serves two purposes: The value is used to maintain state between this request and the callback, e.g. it might contain a session ID from your application. The value should also contain a random component, which your application checks to mitigate cross-site request forgery."
},
{
"name": "redirect_uri",
"in": "query",
"required": false,
"type": "string",
"description": "The authorization code will be sent to this callback URL as a parameter. It must match one of the URLs registered during application registration. The value defaults to the first redirect URI configured for the client."
},
{
"name": "scope",
"in": "query",
"required": false,
"type": "string",
"description": "A space delimited set of requested permissions. The requested permissions can be narrower but not broader than the permissions agreed during application registration. If this parameter is omitted, the permissions agreed during application registration are used in place."
}
],
"responses": {
"200": {
"description": ""
}
},
"x-unitTests": [
{
"request": {
"method": "GET",
"uri": "/auth/code?response_type=code&client_id=CaESKmC8MAhNpDe5rvmWnSkRE_7pkkVIIgMwclgzGcQY&state=xqD6gjWygsBlF0uB&redirect_uri=http://localhost:3000&scope=accounts=ro balance=ro transactions=ro offline"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "NONE",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {}
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Obtain authorization code1",
"x-testDescription": "If your client is not authorized to create figo accounts itself, your application must first obtain an *authorization code* before it can request an *access token*. Your application can initiate the authorization process by directing the user’s web browser to a popup window of figo Connect. The popup window will ask the user for their figo account credentials. The user will see the permissions as specified in scope and a list of bank and payment service accounts to choose from. If the user grants access to your application, the *figo Connect* server sends an authorization code to the callback URL by redirecting the browser to `redirect_uri`.\n**NOTE** You cannot use the demo client ID for this call."
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/auth/token": {
"post": {
"description": "Access tokens authorize your application to perform operations on a user's data.",
"summary": "Access Tokens",
"tags": [
"Authentication"
],
"operationId": "Access Tokens",
"produces": [
"application/json"
],
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"description": "After your application obtained an authorization code, it may exchange the authorization code for an access token.\n**NOTE** You cannot use the demo client ID for this call.",
"schema": {
"$ref": "#/definitions/ExchangeAuthorizationCode"
}
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/AccessToken"
},
"examples": {
"application/json": {
"scope": "accounts=ro balance=ro offline",
"token_type": "Bearer",
"access_token": "ASHWLIkouP2O6bgA23DDrFv...",
"expires_in": 3600,
"refresh_token": "RTfI2WNyK78NozupDH9ai8GPRbjjdVsXPPt..."
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "POST",
"uri": "/auth/token",
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"grant_type\": \"authorization_code\", \"code\": \"OkA7jUIro6JNmOF7i5f7QmepCLLoIFug6621...\", \"redirect_uri\": \"https://figo.me/test\"}"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"scope\": \"accounts=ro balance=ro offline\", \"token_type\": \"Bearer\", \"access_token\": \"ASHWLIkouP2O6bgA23DDrFv...\", \"expires_in\": 3600, \"refresh_token\": \"RTfI2WNyK78NozupDH9ai8GPRbjjdVsXPPt...\"}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Access Tokens1",
"x-testDescription": "Access tokens authorize your application to perform operations on a user's data."
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/auth/revoke": {
"post": {
"description": "Use this endpoint to invalidate an access token or refresh token.\n**NOTE** You cannot use the demo client ID for this call.",
"summary": "Revoke Token",
"tags": [
"Authentication"
],
"operationId": "Revoke Token",
"produces": [
"application/json"
],
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"description": "",
"schema": {
"$ref": "#/definitions/RevokeToken"
}
}
],
"responses": {
"204": {
"description": ""
}
},
"x-unitTests": [
{
"request": {
"method": "POST",
"uri": "/auth/revoke",
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"token\": \"ASHWLIkouP2O6_bgA2wWReRhletgWKHYjLqDaqb0LFfamim...\", \"cascade\": true}"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "NONE",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {}
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Revoke Token1",
"x-testDescription": "Use this endpoint to invalidate an access token or refresh token.\n**NOTE** You cannot use the demo client ID for this call."
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/auth/user": {
"post": {
"description": "",
"summary": "Create User",
"tags": [
"User Management"
],
"operationId": "Create User",
"produces": [
"application/json"
],
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"description": "",
"schema": {
"$ref": "#/definitions/UserRequest"
}
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/CreateUserResponse"
},
"examples": {
"application/json": {
"recovery_password": "abcd-efgh-ijkl-mnop"
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "POST",
"uri": "/auth/user",
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"email\": \"[email protected]\", \"send_newsletter\": false, \"language\": \"de\", \"name\": \"Max Mustermann\", \"password\": \"secret password\", \"affiliate_user\": \"[email protected]\", \"affiliate_client_id\": \"CDrfwadf****\"}"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"recovery_password\": \"abcd-efgh-ijkl-mnop\"}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Create User1",
"x-testDescription": "Testcase for testing endpoint Create User"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/user": {
"get": {
"description": "",
"summary": "Retrieve user",
"tags": [
"User Management"
],
"operationId": "Retrieve user",
"produces": [
"application/json"
],
"parameters": [],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/UserResponse"
},
"examples": {
"application/json": {
"email": "[email protected]",
"send_newsletter": false,
"language": "de",
"user_id": "U1",
"name": "Max Mustermann",
"join_date": "2017-01-03T00:00:00Z",
"verified_email": true,
"address": {
"street": "Ritterstr. 2-3",
"street2": "",
"postal_code": "10969",
"city": "Berlin",
"country": "Germany",
"company": "figo",
"bill": false,
"vat": ""
},
"force_reset": false,
"premium": "DEPRECATED",
"premium_subscription": "DEPRECATED",
"premium_expires_on": "DEPRECATED"
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "GET",
"uri": "/rest/user"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"email\": \"[email protected]\", \"send_newsletter\": false, \"language\": \"de\", \"user_id\": \"U1\", \"name\": \"Max Mustermann\", \"join_date\": \"2017-01-03T00:00:00.000Z\", \"verified_email\": true, \"address\": { \"street\": \"Ritterstr. 2-3\", \"street2\": \"\", \"postal_code\": \"10969\", \"city\": \"Berlin\", \"country\": \"Germany\", \"company\": \"figo\", \"bill\": false, \"vat\": \"\" }, \"force_reset\": false, \"premium\": \"DEPRECATED\", \"premium_subscription\": \"DEPRECATED\", \"premium_expires_on\": \"DEPRECATED\"}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Retrieve user1",
"x-testDescription": "Testcase for testing endpoint Retrieve user"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
},
"put": {
"description": "",
"summary": "Modify User",
"tags": [
"User Management"
],
"operationId": "Modify User",
"produces": [
"application/json"
],
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"description": "",
"schema": {
"$ref": "#/definitions/UserModifyRequest"
}
}
],
"responses": {
"204": {
"description": ""
}
},
"x-unitTests": [
{
"request": {
"method": "PUT",
"uri": "/rest/user",
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"email\": \"[email protected]\",}"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "NONE",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {}
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Modify User1",
"x-testDescription": "Testcase for testing endpoint Modify User"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
},
"delete": {
"description": "",
"summary": "Delete User",
"tags": [
"User Management"
],
"operationId": "Delete User",
"produces": [
"application/json"
],
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"description": "",
"schema": {
"$ref": "#/definitions/DeleteUserRequest"
}
}
],
"responses": {
"204": {
"description": ""
}
},
"x-unitTests": [
{
"request": {
"method": "DELETE",
"uri": "/rest/user",
"headers": {
"Content-Type": "application/json"
},
"body": "{}"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "NONE",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {}
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Delete User1",
"x-testDescription": "Testcase for testing endpoint Delete User"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/catalog": {
"get": {
"description": "**NOTE** You cannot use the demo client ID for this call.\nThe real catalog contains thousands of entries, so expect the call to cause some traffic and delay. The example is only to highlight the data structure.",
"summary": "Read complete Catalog",
"tags": [
"Catalog"
],
"operationId": "Read complete Catalog",
"produces": [
"application/json"
],
"parameters": [],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/ReadCompleteCatalogResponse"
},
"examples": {}
}
},
"x-unitTests": [],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/catalog/banks/{country_code}": {
"get": {
"description": "**NOTE** You cannot use the demo client ID for this call.",
"summary": "Read banks Catalog by country",
"tags": [
"Catalog"
],
"operationId": "Read banks Catalog by country",
"produces": [
"application/json"
],
"parameters": [
{
"name": "country_code",
"in": "path",
"required": true,
"type": "string",
"description": "Country code of the financial provider (ISO 3166-1 ALPHA 2). If omitted, banks from all supported countries are included"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/ReadBanksCatalogByCountryResponse"
},
"examples": {}
}
},
"x-unitTests": [],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/catalog/services/{country_code}": {
"get": {
"description": "**NOTE** You cannot use the demo client ID for this call.",
"summary": "Read services Catalog by country",
"tags": [
"Catalog"
],
"operationId": "Read services Catalog by country",
"produces": [
"application/json"
],
"parameters": [
{
"name": "country_code",
"in": "path",
"required": true,
"type": "string",
"description": "Country code of the financial provider (ISO 3166-1 ALPHA 2). If omitted, services from all supported countries are included"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/ReadServicesCatalogByCountryResponse"
},
"examples": {}
}
},
"x-unitTests": [],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/catalog/{catalog_category}/{country_code}/{financial_provider_id}": {
"get": {
"description": "**NOTE** You cannot use the demo client ID for this call.\n**NOTE** The icon information currently has a different format than in the list view.",
"summary": "Read individual Catalog Entry",
"tags": [
"Catalog"
],
"operationId": "Read individual Catalog Entry",
"produces": [
"application/json"
],
"parameters": [
{
"name": "catalog_category",
"in": "path",
"required": true,
"enum": [
"banks",
"services"
],
"type": "string",
"description": "Type of financial providers to request. This can either be `banks` for regular banks or `services` for payment services like PayPal."
},
{
"name": "country_code",
"in": "path",
"required": true,
"type": "string",
"description": "Country code of the financial provider (ISO 3166-1 ALPHA 2)"
},
{
"name": "financial_provider_id",
"in": "path",
"required": true,
"type": "string",
"description": "*figo Connect* internal ID of the financial provider. This can be a bank code for German banks, a BIC for European banks, or service names like `paypal`."
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/Service"
},
"examples": {
"application/json": {
"name": "PayPal",
"bank_code": "PayPal",
"icon": "https://api.figo.me/assets/images/accounts/paypal.png",
"credentials": [
{
"label": "PIN oder Passwort",
"masked": true
}
],
"advice": "Bitte geben Sie Ihre Kreditkartennummer und Ihr Passwort ein.",
"language": {
"available_languages": [
"de",
"en"
],
"current_language": "de"
},
"additional_icons": {
"48x48": "https://api.figo.me/assets/images/accounts/paypal_48.png",
"60x60": "https://api.figo.me/assets/images/accounts/paypal_60.png",
"72x72": "https://api.figo.me/assets/images/accounts/paypal_72.png",
"84x84": "https://api.figo.me/assets/images/accounts/paypal_84.png",
"96x96": "https://api.figo.me/assets/images/accounts/paypal_96.png",
"120x120": "https://api.figo.me/assets/images/accounts/paypal_120.png",
"144x144": "https://api.figo.me/assets/images/accounts/paypal_144.png",
"192x192": "https://api.figo.me/assets/images/accounts/paypal_192.png",
"256x256": "https://api.figo.me/assets/images/accounts/paypal_256.png"
}
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "GET",
"uri": "/catalog/services/de/PayPal"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"name\": \"PayPal\", \"bank_code\": \"PayPal\", \"icon\": \"https://api.figo.me/assets/images/accounts/paypal.png\", \"credentials\": [ { \"label\": \"PIN oder Passwort\", \"masked\": true } ], \"advice\": \"Bitte geben Sie Ihre Kreditkartennummer und Ihr Passwort ein.\", \"language\": { \"available_languages\": [ \"de\", \"en\" ], \"current_language\": \"de\" }, \"additional_icons\": { \"48x48\": \"https://api.figo.me/assets/images/accounts/paypal_48.png\", \"60x60\": \"https://api.figo.me/assets/images/accounts/paypal_60.png\", \"72x72\": \"https://api.figo.me/assets/images/accounts/paypal_72.png\", \"84x84\": \"https://api.figo.me/assets/images/accounts/paypal_84.png\", \"96x96\": \"https://api.figo.me/assets/images/accounts/paypal_96.png\", \"120x120\": \"https://api.figo.me/assets/images/accounts/paypal_120.png\", \"144x144\": \"https://api.figo.me/assets/images/accounts/paypal_144.png\", \"192x192\": \"https://api.figo.me/assets/images/accounts/paypal_192.png\", \"256x256\": \"https://api.figo.me/assets/images/accounts/paypal_256.png\" }}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Read individual Catalog Entry1",
"x-testDescription": "**NOTE** You cannot use the demo client ID for this call.\n**NOTE** The icon information currently has a different format than in the list view."
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/accounts": {
"post": {
"description": "",
"summary": "Connect to Bank Accounts",
"tags": [
"Accounts"
],
"operationId": "Connect to Bank Accounts",
"produces": [
"application/json"
],
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"description": "",
"schema": {
"$ref": "#/definitions/AccountSetupRequest"
}
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/ConnectToBankAccountsResponse"
},
"examples": {
"application/json": {
"task_token": "YmB-BtvbWufLnbwgAVfP7XfLatwhrtu0sATfnZNR7LGP-aLXiZ7BKzLdZI--EqEPnwh_h6mCxToLEBhtA7LVd4uM4gTcZG8F6UJs47g6kWJ0"
}
}
}
},
"x-unitTests": [],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/accounts/{account_id}": {
"get": {
"description": "",
"summary": "Read available Accounts",
"tags": [
"Accounts"
],
"operationId": "Read available Accounts",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of a specific account. If omitted, a list of all the user's accounts is returned."
},
{
"name": "cents",
"in": "query",
"required": false,
"type": "boolean",
"description": "If `true`, monetary amounts will be shown in cents."
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/AccountResponse"
},
"examples": {
"application/json": {
"auto_sync": true,
"preferred_tan_scheme": "",
"account_id": "A1.1",
"bank_id": "B607.1",
"name": "Girokonto",
"owner": "Max Mustermann",
"supported_tan_schemes": [
{
"tan_scheme_id": "M607.1",
"name": "iTAN",
"medium_name": "Girocard",
"additional_info": {}
}
],
"iban": "DE67900900424711951500",
"bic": "DEMODE01",
"account_number": "4711951500",
"bank_code": "90090042",
"bank_name": "Demobank",
"balance": {
"balance": 3250.31,
"balance_date": "2017-02-20T00:00:00Z",
"monthly_spending_limit": 0,
"credit_line": 0
},
"currency": "EUR",
"type": "Giro account",
"icon": "https://api.figo.me/assets/images/accounts/default.png",
"additional_icons": {
"48x48": "https://api.figo.me/assets/images/accounts/default_48.png",
"60x60": "https://api.figo.me/assets/images/accounts/default_60.png",
"72x72": "https://api.figo.me/assets/images/accounts/default_72.png",
"84x84": "https://api.figo.me/assets/images/accounts/default_84.png",
"96x96": "https://api.figo.me/assets/images/accounts/default_96.png",
"120x120": "https://api.figo.me/assets/images/accounts/default_120.png",
"144x144": "https://api.figo.me/assets/images/accounts/default_144.png",
"192x192": "https://api.figo.me/assets/images/accounts/default_192.png",
"256x256": "https://api.figo.me/assets/images/accounts/default_256.png"
},
"supported_payments": {
"Transfer": {
"allowed_recipients": [],
"max_purpose_length": 108,
"supported_text_keys": [
51,
53
],
"can_be_recurring": false,
"can_be_scheduled": false,
"supported_file_formats": []
}
},
"status": {
"code": 1,
"sync_timestamp": "2017-02-16T18:27:25Z",
"success_timestamp": "2017-02-16T18:27:25Z"
},
"verification_status": false,
"save_pin": true,
"in_total_balance": false
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "GET",
"uri": "/rest/accounts/A1.1?cents=true"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"auto_sync\": true, \"preferred_tan_scheme\": \"\", \"account_id\": \"A1.1\", \"bank_id\": \"B607.1\", \"name\": \"Girokonto\", \"owner\": \"Max Mustermann\", \"supported_tan_schemes\": [ { \"tan_scheme_id\": \"M607.1\", \"name\": \"iTAN\", \"medium_name\": \"Girocard\", \"additional_info\": {} } ], \"iban\": \"DE67900900424711951500\", \"bic\": \"DEMODE01\", \"account_number\": \"4711951500\", \"bank_code\": \"90090042\", \"bank_name\": \"Demobank\", \"balance\": { \"balance\": 3250.31, \"balance_date\": \"2017-02-20T00:00:00.000Z\", \"monthly_spending_limit\": 0, \"credit_line\": 0 }, \"currency\": \"EUR\", \"type\": \"Giro account\", \"icon\": \"https://api.figo.me/assets/images/accounts/default.png\", \"additional_icons\": { \"48x48\": \"https://api.figo.me/assets/images/accounts/default_48.png\", \"60x60\": \"https://api.figo.me/assets/images/accounts/default_60.png\", \"72x72\": \"https://api.figo.me/assets/images/accounts/default_72.png\", \"84x84\": \"https://api.figo.me/assets/images/accounts/default_84.png\", \"96x96\": \"https://api.figo.me/assets/images/accounts/default_96.png\", \"120x120\": \"https://api.figo.me/assets/images/accounts/default_120.png\", \"144x144\": \"https://api.figo.me/assets/images/accounts/default_144.png\", \"192x192\": \"https://api.figo.me/assets/images/accounts/default_192.png\", \"256x256\": \"https://api.figo.me/assets/images/accounts/default_256.png\" }, \"supported_payments\": { \"Transfer\": { \"allowed_recipients\": [], \"max_purpose_length\": 108, \"supported_text_keys\": [ 51, 53 ], \"can_be_recurring\": false, \"can_be_scheduled\": false, \"supported_file_formats\": [] } }, \"status\": { \"code\": 1, \"sync_timestamp\": \"2017-02-16T18:27:25.000Z\", \"success_timestamp\": \"2017-02-16T18:27:25.000Z\" }, \"verification_status\": false, \"save_pin\": true, \"in_total_balance\": false}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Read available Accounts1",
"x-testDescription": "Testcase for testing endpoint Read available Accounts"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
},
"put": {
"description": "",
"summary": "Modify Account",
"tags": [
"Accounts"
],
"operationId": "Modify Account",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of a specific account"
},
{
"name": "body",
"in": "body",
"required": true,
"description": "",
"schema": {
"$ref": "#/definitions/AccountSettings"
}
}
],
"responses": {
"204": {
"description": ""
}
},
"x-unitTests": [
{
"request": {
"method": "PUT",
"uri": "/rest/accounts/A1.1",
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"auto_sync\": true, \"preferred_tan_scheme\": \"\"}"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "NONE",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {}
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Modify Account1",
"x-testDescription": "Testcase for testing endpoint Modify Account"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
},
"delete": {
"description": "Once the last remaining account of a bank contact has been removed, the bank contact will be automatically removed as well",
"summary": "Delete Account",
"tags": [
"Accounts"
],
"operationId": "Delete Account",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of a specific account"
}
],
"responses": {
"204": {
"description": ""
}
},
"x-unitTests": [
{
"request": {
"method": "DELETE",
"uri": "/rest/accounts/A1.1"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "NONE",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {}
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Delete Account1",
"x-testDescription": "Once the last remaining account of a bank contact has been removed, the bank contact will be automatically removed as well"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/accounts/{account_id}/balance/": {
"get": {
"description": "",
"summary": "Read Account Balance",
"tags": [
"Accounts"
],
"operationId": "Read Account Balance",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of a specific account. If omitted, a list of all the user's accounts is returned."
},
{
"name": "cents",
"in": "query",
"required": false,
"type": "boolean",
"description": "If `true`, monetary amounts will be shown in cents."
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/Balance"
},
"examples": {
"application/json": {
"balance": 3250.31,
"balance_date": "2017-02-20T00:00:00Z",
"monthly_spending_limit": 0,
"credit_line": 0
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "GET",
"uri": "/rest/accounts/A1.1/balance/?cents=true"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"balance\": 3250.31, \"balance_date\": \"2017-02-20T00:00:00.000Z\", \"monthly_spending_limit\": 0, \"credit_line\": 0}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Read Account Balance1",
"x-testDescription": "Testcase for testing endpoint Read Account Balance"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/sync": {
"post": {
"description": "In order for *figo Connect* to have up-to-date transaction and account information, it needs to query the bank servers, a process which is called *synchronization*. With this call you can create a new task, synchronizing all (or the specified) accounts with the state returned by the bank. This call will immediately return a task token. Please see the chapter on [task processing](#task-processing) for more details.",
"summary": "Create Synchronization Task",
"tags": [
"Accounts"
],
"operationId": "Create Synchronization Task",
"produces": [
"application/json"
],
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"description": "",
"schema": {
"$ref": "#/definitions/Synchronization"
}
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/CreateSynchronizationTaskResponse"
},
"examples": {
"application/json": {
"task_token": "YmB-BtvbWufLnbwgAVfP7XfLatwhrtu0sATfnZNR7LGP-aLXiZ7BKzLdZI--EqEPnwh_h6mCxToLEBhtA7LVd4uM4gTcZG8F6UJs47g6kWJ0"
}
}
}
},
"x-unitTests": [],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/banks/{bank_id}": {
"get": {
"description": "",
"summary": "Read Bank Contact",
"tags": [
"Bank Contacts"
],
"operationId": "Read Bank Contact",
"produces": [
"application/json"
],
"parameters": [
{
"name": "bank_id",
"in": "path",
"required": true,
"type": "string",
"description": "Internal figo Connect bank ID"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/BankContact"
},
"examples": {
"application/json": {
"bank_id": 1,
"bank_code": "90090042",
"sepa_creditor_id": "DE02ZZZ0123456789",
"save_pin": true
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "GET",
"uri": "/rest/banks/B1.1"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"bank_id\": 1, \"bank_code\": \"90090042\", \"sepa_creditor_id\": \"DE02ZZZ0123456789\", \"save_pin\": true}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Read Bank Contact1",
"x-testDescription": "Testcase for testing endpoint Read Bank Contact"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/banks/{bank_id}/remove_pin": {
"post": {
"description": "",
"summary": "Remove stored PIN from Bank Contact",
"tags": [
"Bank Contacts"
],
"operationId": "Remove stored PIN from Bank Contact",
"produces": [
"application/json"
],
"parameters": [
{
"name": "bank_id",
"in": "path",
"required": true,
"type": "string",
"description": "Internal figo Connect bank ID"
}
],
"responses": {
"204": {
"description": ""
}
},
"x-unitTests": [
{
"request": {
"method": "POST",
"uri": "/rest/banks/B1.1/remove_pin"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "NONE",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {}
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Remove stored PIN from Bank Contact1",
"x-testDescription": "Testcase for testing endpoint Remove stored PIN from Bank Contact"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/transactions": {
"get": {
"description": "",
"summary": "Read Transactions",
"tags": [
"Transactions"
],
"operationId": "Read Transactions",
"produces": [
"application/json"
],
"parameters": [
{
"name": "cents",
"in": "query",
"required": false,
"type": "boolean",
"description": "If `true`, monetary amounts will be shown in cents."
},
{
"name": "since",
"in": "query",
"required": false,
"type": "string",
"description": "Return only transactions after this date based on `since_type`. This parameter can either be a transaction ID or an ISO date. If provided as transaction ID the result will *not* contain this ID. If provided as ISO date, the result *will* contain this date. This behavior may change in the future."
},
{
"name": "since_type",
"in": "query",
"required": false,
"enum": [
"booked",
"created",
"modified"
],
"default": "booked",
"type": "string",
"description": "This parameter defines how the parameter `since` will be interpreted."
},
{
"name": "include_pending",
"in": "query",
"required": false,
"type": "boolean",
"description": "This flag indicates whether pending transactions should be included in the response. Pending transactions are always included as a complete set, regardless of the `since` parameter. Before caching a copy of the pending transactions, all existing pending transactions for the same account must be removed from the local cache."
},
{
"name": "sort",
"in": "query",
"required": false,
"enum": [
"asc",
"desc"
],
"default": "desc",
"type": "string",
"description": "Determine whether results will be sorted in ascending or descending order."
},
{
"name": "type",
"in": "query",
"required": false,
"type": "array",
"items": {
"type": "string",
"enum": [
"Transfer",
"Standing order",
"Direct debit",
"Salary or rent",
"GeldKarte",
"Charges or interest"
]
},
"description": "A list of transactions types which the transactions are filtered by."
},
{
"name": "offset",
"in": "query",
"required": false,
"type": "number",
"format": "double",
"description": "Skip this number of transactions in the response. In combination with the `count` parameter this can be used to paginate the result list."
},
{
"name": "count",
"in": "query",
"required": false,
"type": "number",
"format": "double",
"description": "Limit the number of returned transactions. In combination with the `offset` parameter this can be used to paginate the result list."
},
{
"name": "until",
"in": "query",
"required": false,
"type": "string",
"description": "Return only transactions which were booked on or before this date. Please provide as ISO date. It is not possible to use the `since_type` semantics with `until`."
},
{
"name": "filter",
"in": "query",
"required": false,
"type": "string",
"description": "Filter transactions by given `key:value` combination. Possible keys: `date` (maps to `booking_date`, please use ISO date here, not datetime), `person` (maps to payer/payee `name`), `purpose`, `amount`. Values are interpreted using wildcards: `person:Max Mustermann` will match `%Max Mustermann%`."
},
{
"name": "include_statistics",
"in": "query",
"required": false,
"type": "boolean",
"description": "If `true` includes statistics on the returned transactions: maximum deposit, total deposits, maximum expense, total expenses."
},
{
"name": "accounts",
"in": "query",
"required": false,
"type": "array",
"items": {
"type": "string"
},
"description": "Return transactions only from given comma-separated list of account IDs."
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/TransactionResponse"
},
"examples": {
"application/json": {
"deleted": [],
"status": {
"code": 1,
"sync_timestamp": "2017-02-16T18:27:25Z",
"success_timestamp": "2017-02-16T18:27:25Z"
},
"statistics": {
"deposit_max": 1612.12,
"deposit_sum": 61284.51,
"expense_max": 599.95,
"expense_sum": 12589.19
},
"transactions": [
{
"value_date": "2017-01-03T00:00:00Z",
"bank_name": "Demobank",
"account_id": "A1.1",
"bank_code": "90090042",
"currency": "EUR",
"purpose": "A2432122990100992929929",
"transaction_code": 4,
"booked": true,
"booking_date": "2017-01-03T00:00:00Z",
"name": "Amazing Services Europe",
"creation_timestamp": "2017-01-04T14:44:16Z",
"amount": -19.9,
"account_number": "4711951501",
"iban": "DE67900900424711951501",
"bic": "DEMODE01",
"visited": false,
"modification_timestamp": "2017-01-04T14:44:16Z",
"type": "Direct debit",
"transaction_id": "T1.1715",
"booking_text": "Lastschrift",
"categories": [
{
"id": 162,
"parent_id": 150,
"name": "Spende"
}
],
"additional_info": {
"gross_amount": 0,
"fee": 0
}
}
]
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "GET",
"uri": "/rest/transactions?cents=true&since=1/1/2017 12:00:00 AM&since_type=booked&include_pending=false&sort=asc&offset=200&count=100&until=1/1/2017 12:00:00 AM&filter=date:2017-02-03&include_statistics=false&accounts=[A1.1,A1.2]"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"deleted\": [], \"status\": { \"code\": 1, \"sync_timestamp\": \"2017-02-16T18:27:25.000Z\", \"success_timestamp\": \"2017-02-16T18:27:25.000Z\" }, \"statistics\": { \"deposit_max\": 1612.12, \"deposit_sum\": 61284.51, \"expense_max\": 599.95, \"expense_sum\": 12589.19 }, \"transactions\": [ { \"value_date\": \"2017-01-03T00:00:00.000Z\", \"bank_name\": \"Demobank\", \"account_id\": \"A1.1\", \"bank_code\": \"90090042\", \"currency\": \"EUR\", \"purpose\": \"A2432122990100992929929\", \"transaction_code\": 4, \"booked\": true, \"booking_date\": \"2017-01-03T00:00:00.000Z\", \"name\": \"Amazing Services Europe\", \"creation_timestamp\": \"2017-01-04T14:44:16.000Z\", \"amount\": -19.9, \"account_number\": \"4711951501\", \"iban\": \"DE67900900424711951501\", \"bic\": \"DEMODE01\", \"visited\": false, \"modification_timestamp\": \"2017-01-04T14:44:16.000Z\", \"type\": \"Direct debit\", \"transaction_id\": \"T1.1715\", \"booking_text\": \"Lastschrift\", \"categories\": [ { \"id\": 162, \"parent_id\": 150, \"name\": \"Spende\" } ], \"additional_info\": { \"gross_amount\": 0, \"fee\": 0 } } ]}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Read Transactions1",
"x-testDescription": "Testcase for testing endpoint Read Transactions"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/transactions/{transaction_id}": {
"get": {
"description": "",
"summary": "Read single Transaction",
"tags": [
"Transactions"
],
"operationId": "Read single Transaction",
"produces": [
"application/json"
],
"parameters": [
{
"name": "transaction_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of a specific transaction"
},
{
"name": "cents",
"in": "query",
"required": false,
"type": "boolean",
"description": "If `true`, monetary amounts will be shown in cents."
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/Transaction"
},
"examples": {
"application/json": {
"value_date": "2017-01-03T00:00:00Z",
"bank_name": "Demobank",
"account_id": "A1.1",
"bank_code": "90090042",
"currency": "EUR",
"purpose": "A2432122990100992929929",
"transaction_code": 4,
"booked": true,
"booking_date": "2017-01-03T00:00:00Z",
"name": "Amazing Services Europe",
"creation_timestamp": "2017-01-04T14:44:16Z",
"amount": -19.9,
"account_number": "4711951501",
"iban": "DE67900900424711951501",
"bic": "DEMODE01",
"visited": false,
"modification_timestamp": "2017-01-04T14:44:16Z",
"type": "Direct debit",
"transaction_id": "T1.1715",
"booking_text": "Lastschrift",
"categories": [
{
"id": 162,
"parent_id": 150,
"name": "Spende"
}
],
"additional_info": {
"gross_amount": 0,
"fee": 0
}
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "GET",
"uri": "/rest/transactions/T1.1715?cents=true"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"value_date\": \"2017-01-03T00:00:00.000Z\", \"bank_name\": \"Demobank\", \"account_id\": \"A1.1\", \"bank_code\": \"90090042\", \"currency\": \"EUR\", \"purpose\": \"A2432122990100992929929\", \"transaction_code\": 4, \"booked\": true, \"booking_date\": \"2017-01-03T00:00:00.000Z\", \"name\": \"Amazing Services Europe\", \"creation_timestamp\": \"2017-01-04T14:44:16.000Z\", \"amount\": -19.9, \"account_number\": \"4711951501\", \"iban\": \"DE67900900424711951501\", \"bic\": \"DEMODE01\", \"visited\": false, \"modification_timestamp\": \"2017-01-04T14:44:16.000Z\", \"type\": \"Direct debit\", \"transaction_id\": \"T1.1715\", \"booking_text\": \"Lastschrift\", \"categories\": [ { \"id\": 162, \"parent_id\": 150, \"name\": \"Spende\" } ], \"additional_info\": { \"gross_amount\": 0, \"fee\": 0 }}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Read single Transaction1",
"x-testDescription": "Testcase for testing endpoint Read single Transaction"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
},
"delete": {
"description": "",
"summary": "Delete Transactions",
"tags": [
"Transactions"
],
"operationId": "Delete Transactions",
"produces": [
"application/json"
],
"parameters": [
{
"name": "transaction_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of transaction to delete. You can only delete one transaction at once."
}
],
"responses": {
"204": {
"description": ""
}
},
"x-unitTests": [
{
"request": {
"method": "DELETE",
"uri": "/rest/transactions/T1.1715"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "NONE",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {}
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Delete Transactions1",
"x-testDescription": "Testcase for testing endpoint Delete Transactions"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/accounts/{account_id}/transactions": {
"get": {
"description": "",
"summary": "Read Transactions by Account",
"tags": [
"Transactions"
],
"operationId": "Read Transactions by Account",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of the account related to the transaction"
},
{
"name": "cents",
"in": "query",
"required": false,
"type": "boolean",
"description": "If `true`, monetary amounts will be shown in cents."
},
{
"name": "since",
"in": "query",
"required": false,
"type": "string",
"description": "Return only transactions after this date based on `since_type`. This parameter can either be a transaction ID or an ISO date. If provided as transaction ID the result will *not* contain this ID. If provided as ISO date, the result *will* contain this date. This behavior may change in the future."
},
{
"name": "since_type",
"in": "query",
"required": false,
"enum": [
"booked",
"created",
"modified"
],
"default": "booked",
"type": "string",
"description": "This parameter defines how the parameter `since` will be interpreted."
},
{
"name": "include_pending",
"in": "query",
"required": false,
"type": "boolean",
"description": "This flag indicates whether pending transactions should be included in the response. Pending transactions are always included as a complete set, regardless of the `since` parameter. Before caching a copy of the pending transactions, all existing pending transactions for the same account must be removed from the local cache."
},
{
"name": "sort",
"in": "query",
"required": false,
"enum": [
"asc",
"desc"
],
"default": "desc",
"type": "string",
"description": "Determine whether results will be sorted in ascending or descending order."
},
{
"name": "type",
"in": "query",
"required": false,
"type": "array",
"items": {
"type": "string",
"enum": [
"Transfer",
"Standing order",
"Direct debit",
"Salary or rent",
"GeldKarte",
"Charges or interest"
]
},
"description": "A list of transactions types which the transactions are filtered by."
},
{
"name": "offset",
"in": "query",
"required": false,
"type": "number",
"format": "double",
"description": "Skip this number of transactions in the response. In combination with the `count` parameter this can be used to paginate the result list."
},
{
"name": "count",
"in": "query",
"required": false,
"type": "number",
"format": "double",
"description": "Limit the number of returned transactions. In combination with the `offset` parameter this can be used to paginate the result list."
},
{
"name": "until",
"in": "query",
"required": false,
"type": "string",
"description": "Return only transactions which were booked on or before this date. Please provide as ISO date. It is not possible to use the `since_type` semantics with `until`."
},
{
"name": "filter",
"in": "query",
"required": false,
"type": "string",
"description": "Filter transactions by given `key:value` combination. Possible keys: `date` (maps to `booking_date`, please use ISO date here, not datetime), `person` (maps to payer/payee `name`), `purpose`, `amount`. Values are interpreted using wildcards: `person:Max Mustermann` will match `%Max Mustermann%`."
},
{
"name": "include_statistics",
"in": "query",
"required": false,
"type": "boolean",
"description": "If `true` includes statistics on the returned transactions: maximum deposit, total deposits, maximum expense, total expenses."
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/TransactionResponse"
},
"examples": {
"application/json": {
"deleted": [],
"status": {
"code": 1,
"sync_timestamp": "2017-02-16T18:27:25Z",
"success_timestamp": "2017-02-16T18:27:25Z"
},
"statistics": {
"deposit_max": 1612.12,
"deposit_sum": 61284.51,
"expense_max": 599.95,
"expense_sum": 12589.19
},
"transactions": [
{
"value_date": "2017-01-03T00:00:00Z",
"bank_name": "Demobank",
"account_id": "A1.1",
"bank_code": "90090042",
"currency": "EUR",
"purpose": "A2432122990100992929929",
"transaction_code": 4,
"booked": true,
"booking_date": "2017-01-03T00:00:00Z",
"name": "Amazing Services Europe",
"creation_timestamp": "2017-01-04T14:44:16Z",
"amount": -19.9,
"account_number": "4711951501",
"iban": "DE67900900424711951501",
"bic": "DEMODE01",
"visited": false,
"modification_timestamp": "2017-01-04T14:44:16Z",
"type": "Direct debit",
"transaction_id": "T1.1715",
"booking_text": "Lastschrift",
"categories": [
{
"id": 162,
"parent_id": 150,
"name": "Spende"
}
],
"additional_info": {
"gross_amount": 0,
"fee": 0
}
}
]
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "GET",
"uri": "/rest/accounts/A1.1/transactions?cents=true&since=1/1/2017 12:00:00 AM&since_type=booked&include_pending=false&sort=asc&offset=200&count=100&until=1/1/2017 12:00:00 AM&filter=date:2017-02-03&include_statistics=false"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"deleted\": [], \"status\": { \"code\": 1, \"sync_timestamp\": \"2017-02-16T18:27:25.000Z\", \"success_timestamp\": \"2017-02-16T18:27:25.000Z\" }, \"statistics\": { \"deposit_max\": 1612.12, \"deposit_sum\": 61284.51, \"expense_max\": 599.95, \"expense_sum\": 12589.19 }, \"transactions\": [ { \"value_date\": \"2017-01-03T00:00:00.000Z\", \"bank_name\": \"Demobank\", \"account_id\": \"A1.1\", \"bank_code\": \"90090042\", \"currency\": \"EUR\", \"purpose\": \"A2432122990100992929929\", \"transaction_code\": 4, \"booked\": true, \"booking_date\": \"2017-01-03T00:00:00.000Z\", \"name\": \"Amazing Services Europe\", \"creation_timestamp\": \"2017-01-04T14:44:16.000Z\", \"amount\": -19.9, \"account_number\": \"4711951501\", \"iban\": \"DE67900900424711951501\", \"bic\": \"DEMODE01\", \"visited\": false, \"modification_timestamp\": \"2017-01-04T14:44:16.000Z\", \"type\": \"Direct debit\", \"transaction_id\": \"T1.1715\", \"booking_text\": \"Lastschrift\", \"categories\": [ { \"id\": 162, \"parent_id\": 150, \"name\": \"Spende\" } ], \"additional_info\": { \"gross_amount\": 0, \"fee\": 0 } } ]}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Read Transactions by Account1",
"x-testDescription": "Testcase for testing endpoint Read Transactions by Account"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/accounts/{account_id}/{transaction_id}": {
"get": {
"description": "",
"summary": "Read single Transaction by Account",
"tags": [
"Transactions"
],
"operationId": "Read single Transaction by Account",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of the account related to the transaction"
},
{
"name": "transaction_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of a specific transaction"
},
{
"name": "cents",
"in": "query",
"required": false,
"type": "boolean",
"description": "If `true`, monetary amounts will be shown in cents."
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/Transaction"
},
"examples": {
"application/json": {
"value_date": "2017-01-03T00:00:00Z",
"bank_name": "Demobank",
"account_id": "A1.1",
"bank_code": "90090042",
"currency": "EUR",
"purpose": "A2432122990100992929929",
"transaction_code": 4,
"booked": true,
"booking_date": "2017-01-03T00:00:00Z",
"name": "Amazing Services Europe",
"creation_timestamp": "2017-01-04T14:44:16Z",
"amount": -19.9,
"account_number": "4711951501",
"iban": "DE67900900424711951501",
"bic": "DEMODE01",
"visited": false,
"modification_timestamp": "2017-01-04T14:44:16Z",
"type": "Direct debit",
"transaction_id": "T1.1715",
"booking_text": "Lastschrift",
"categories": [
{
"id": 162,
"parent_id": 150,
"name": "Spende"
}
],
"additional_info": {
"gross_amount": 0,
"fee": 0
}
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "GET",
"uri": "/rest/accounts/A1.1/T1.1715?cents=true"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"value_date\": \"2017-01-03T00:00:00.000Z\", \"bank_name\": \"Demobank\", \"account_id\": \"A1.1\", \"bank_code\": \"90090042\", \"currency\": \"EUR\", \"purpose\": \"A2432122990100992929929\", \"transaction_code\": 4, \"booked\": true, \"booking_date\": \"2017-01-03T00:00:00.000Z\", \"name\": \"Amazing Services Europe\", \"creation_timestamp\": \"2017-01-04T14:44:16.000Z\", \"amount\": -19.9, \"account_number\": \"4711951501\", \"iban\": \"DE67900900424711951501\", \"bic\": \"DEMODE01\", \"visited\": false, \"modification_timestamp\": \"2017-01-04T14:44:16.000Z\", \"type\": \"Direct debit\", \"transaction_id\": \"T1.1715\", \"booking_text\": \"Lastschrift\", \"categories\": [ { \"id\": 162, \"parent_id\": 150, \"name\": \"Spende\" } ], \"additional_info\": { \"gross_amount\": 0, \"fee\": 0 }}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Read single Transaction by Account1",
"x-testDescription": "Testcase for testing endpoint Read single Transaction by Account"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/accounts/{account_id}/transactions/{transaction_id}": {
"delete": {
"description": "",
"summary": "Delete Transaction by Account",
"tags": [
"Transactions"
],
"operationId": "Delete Transaction by Account",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of the account related to the transaction"
},
{
"name": "transaction_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of transaction to delete. You can only delete one transaction at once."
}
],
"responses": {
"204": {
"description": ""
}
},
"x-unitTests": [
{
"request": {
"method": "DELETE",
"uri": "/rest/accounts/A1.1/transactions/T1.1715"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "NONE",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {}
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Delete Transaction by Account1",
"x-testDescription": "Testcase for testing endpoint Delete Transaction by Account"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/accounts/{account_id}/payments": {
"get": {
"description": "",
"summary": "Read Payments by Account",
"tags": [
"Payments"
],
"operationId": "Read Payments by Account",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the account"
},
{
"name": "payment_id",
"in": "query",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the payment"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/ReadPaymentsByAccountResponse"
},
"examples": {}
}
},
"x-unitTests": [],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
},
"put": {
"description": "To modify an existing standing order, conduct the following steps:\n1. [Synchronize accounts](#accounts-synchronization-create-synchronization-task), including `standingOrders` in `sync_tasks`\n2. `GET /rest/standing_orders` and pick `standing_order_id` of the one to modify\n3. `PUT /rest/accounts/<account_id>/payments` with `standing_order_id` and fields to modify. Response contains a `payment_id`.\n4. `POST /rest/accounts/<account_id>/payments/<payment_id>/submit` to submit modified standing order to bank. Returns a `task_token`.\n5. [Complete task as usual](#task-processing).",
"summary": "Modify Standing Order",
"tags": [
"Standing Orders"
],
"operationId": "Modify Standing Order",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the account"
},
{
"name": "body",
"in": "body",
"required": true,
"description": "",
"schema": {
"$ref": "#/definitions/ModifyStandingOrderRequest"
}
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/ModifyStandingOrderResponse"
},
"examples": {
"application/json": {
"name": "John Doe",
"iban": "DE67900900424711951501",
"amount": 22.8,
"purpose": "Thanks for all the fish.",
"currency": "EUR",
"text_key": 51,
"text_key_extension": 0,
"account_id": "A1.1",
"payment_id": "P1.2073",
"bank_name": "Demobank",
"bank_icon": "https://api.figo.me/assets/images/accounts/default.png",
"bank_additional_icons": {
"48x48": "https://api.figo.me/assets/images/accounts/default_48.png",
"60x60": "https://api.figo.me/assets/images/accounts/default_60.png",
"72x72": "https://api.figo.me/assets/images/accounts/default_72.png",
"84x84": "https://api.figo.me/assets/images/accounts/default_84.png",
"96x96": "https://api.figo.me/assets/images/accounts/default_96.png",
"120x120": "https://api.figo.me/assets/images/accounts/default_120.png",
"144x144": "https://api.figo.me/assets/images/accounts/default_144.png",
"192x192": "https://api.figo.me/assets/images/accounts/default_192.png",
"256x256": "https://api.figo.me/assets/images/accounts/default_256.png"
},
"submission_timestamp": "null",
"creation_timestamp": "2016-04-13T16:03:45Z",
"modification_timestamp": "2016-04-13T16:03:45Z",
"type": "SEPA standing order",
"interval": "quarterly",
"execution_day": 15,
"first_execution_date": "2015-05-15T00:00:00Z",
"last_execution_date": "2017-01-15T00:00:00Z"
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "PUT",
"uri": "/rest/accounts/A1.1/payments",
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"standing_order_id\": \"S01.1\", \"amount\": 10, \"name\": \"Max Mustermann\", \"purpose\": \"Thanks for all the fish.\", \"interval\": \"quarterly\", \"execution_day\": 15, \"first_execution_date\": \"2015-05-15T00:00:00.000Z\", \"last_execution_date\": \"2017-01-01T00:00:00.000Z\"}"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"name\": \"John Doe\", \"iban\": \"DE67900900424711951501\", \"amount\": 22.8, \"purpose\": \"Thanks for all the fish.\", \"currency\": \"EUR\", \"text_key\": 51, \"text_key_extension\": 0, \"account_id\": \"A1.1\", \"payment_id\": \"P1.2073\", \"bank_name\": \"Demobank\", \"bank_icon\": \"https://api.figo.me/assets/images/accounts/default.png\", \"bank_additional_icons\": { \"48x48\": \"https://api.figo.me/assets/images/accounts/default_48.png\", \"60x60\": \"https://api.figo.me/assets/images/accounts/default_60.png\", \"72x72\": \"https://api.figo.me/assets/images/accounts/default_72.png\", \"84x84\": \"https://api.figo.me/assets/images/accounts/default_84.png\", \"96x96\": \"https://api.figo.me/assets/images/accounts/default_96.png\", \"120x120\": \"https://api.figo.me/assets/images/accounts/default_120.png\", \"144x144\": \"https://api.figo.me/assets/images/accounts/default_144.png\", \"192x192\": \"https://api.figo.me/assets/images/accounts/default_192.png\", \"256x256\": \"https://api.figo.me/assets/images/accounts/default_256.png\" }, \"submission_timestamp\": \"null\", \"creation_timestamp\": \"2016-04-13T16:03:45.000Z\", \"modification_timestamp\": \"2016-04-13T16:03:45.000Z\", \"type\": \"SEPA standing order\", \"interval\": \"quarterly\", \"execution_day\": 15, \"first_execution_date\": \"2015-05-15T00:00:00.000Z\", \"last_execution_date\": \"2017-01-15T00:00:00.000Z\"}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Modify Standing Order1",
"x-testDescription": "To modify an existing standing order, conduct the following steps:\n1. [Synchronize accounts](#accounts-synchronization-create-synchronization-task), including `standingOrders` in `sync_tasks`\n2. `GET /rest/standing_orders` and pick `standing_order_id` of the one to modify\n3. `PUT /rest/accounts/<account_id>/payments` with `standing_order_id` and fields to modify. Response contains a `payment_id`.\n4. `POST /rest/accounts/<account_id>/payments/<payment_id>/submit` to submit modified standing order to bank. Returns a `task_token`.\n5. [Complete task as usual](#task-processing)."
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
},
"post": {
"description": "Create a payment in the figo database. The payment can be viewed and modified before submission to the bank or service provider.",
"summary": "Create a Payment",
"tags": [
"Payments"
],
"operationId": "Create a Payment",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the account"
},
{
"name": "payment_id",
"in": "query",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the payment"
},
{
"name": "body",
"in": "body",
"required": true,
"description": "",
"schema": {
"$ref": "#/definitions/PaymentRequest"
}
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/Payment"
},
"examples": {}
}
},
"x-unitTests": [],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/payments": {
"get": {
"description": "View unsubmitted payments as stored in the figo database.",
"summary": "Read Payments",
"tags": [
"Payments"
],
"operationId": "Read Payments",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "query",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the account"
},
{
"name": "payment_id",
"in": "query",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the payment"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/ReadPaymentsResponse"
},
"examples": {}
}
},
"x-unitTests": [],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/payments/{payment_id}": {
"get": {
"description": "View unsubmitted payment as stored in the figo database.",
"summary": "Read single Payment",
"tags": [
"Payments"
],
"operationId": "Read single Payment",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "query",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the account"
},
{
"name": "payment_id",
"in": "path",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the payment"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/Payment"
},
"examples": {}
}
},
"x-unitTests": [],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/accounts/{account_id}/payments/{payment_id}": {
"get": {
"description": "",
"summary": "Read single Payment by Account",
"tags": [
"Payments"
],
"operationId": "Read single Payment by Account",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the account"
},
{
"name": "payment_id",
"in": "path",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the payment"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/Payment"
},
"examples": {}
}
},
"x-unitTests": [],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
},
"put": {
"description": "",
"summary": "Modify a Payment",
"tags": [
"Payments"
],
"operationId": "Modify a Payment",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the account"
},
{
"name": "payment_id",
"in": "path",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the payment"
},
{
"name": "body",
"in": "body",
"required": true,
"description": "",
"schema": {
"$ref": "#/definitions/ModifyPaymentRequest"
}
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/Payment"
},
"examples": {}
}
},
"x-unitTests": [],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
},
"delete": {
"description": "",
"summary": "Delete a Payment",
"tags": [
"Payments"
],
"operationId": "Delete a Payment",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the account"
},
{
"name": "payment_id",
"in": "path",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the payment"
}
],
"responses": {
"204": {
"description": ""
}
},
"x-unitTests": [
{
"request": {
"method": "DELETE",
"uri": "/rest/accounts/A1.1/payments/P1.2073"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "NONE",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {}
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Delete a Payment1",
"x-testDescription": "Testcase for testing endpoint Delete a Payment"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/accounts/{account_id}/payments/{payment_id}/submit": {
"post": {
"description": "",
"summary": "Submit a Payment to Bank Server",
"tags": [
"Payments"
],
"operationId": "Submit a Payment to Bank Server",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the account"
},
{
"name": "payment_id",
"in": "path",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the payment"
},
{
"name": "body",
"in": "body",
"required": true,
"description": "",
"schema": {
"$ref": "#/definitions/SubmitPayment"
}
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/SubmitAPaymentToBankServerResponse"
},
"examples": {
"application/json": {
"task_token": "YmB-BtvbWufLnbwgAVfP7XfLatwhrtu0sATfnZNR7LGP-aLXiZ7BKzLdZI--EqEPnwh_h6mCxToLEBhtA7LVd4uM4gTcZG8F6UJs47g6kWJ0"
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "POST",
"uri": "/rest/accounts/A1.1/payments/P1.2073/submit",
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"redirect_uri\": \"https://figo.me/test\", \"state\": \"fP7XfLatwhrtu0sA\", \"tan_scheme_id\": \"M607.1\"}"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"task_token\": \"YmB-BtvbWufLnbwgAVfP7XfLatwhrtu0sATfnZNR7LGP-aLXiZ7BKzLdZI--EqEPnwh_h6mCxToLEBhtA7LVd4uM4gTcZG8F6UJs47g6kWJ0\"}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Submit a Payment to Bank Server1",
"x-testDescription": "Testcase for testing endpoint Submit a Payment to Bank Server"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/accounts/{account_id}/payments/": {
"post": {
"description": "",
"summary": "Create Standing Order Â",
"tags": [
"Standing Orders"
],
"operationId": "Create Standing Order Â",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the account"
},
{
"name": "body",
"in": "body",
"required": true,
"description": "",
"schema": {
"$ref": "#/definitions/StandingOrderRequest"
}
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/StandingOrder"
},
"examples": {}
}
},
"x-unitTests": [],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/standing_orders": {
"get": {
"description": "",
"summary": "Read Standing Orders",
"tags": [
"Standing Orders"
],
"operationId": "Read Standing Orders",
"produces": [
"application/json"
],
"parameters": [
{
"name": "cents",
"in": "query",
"required": false,
"type": "boolean",
"description": "If `true`, the amount of the standing order will be shown in cents."
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/StandingOrderResponse"
},
"examples": {}
}
},
"x-unitTests": [],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/standing_orders/{standing_order_id}": {
"get": {
"description": "",
"summary": "Read single Standing Order",
"tags": [
"Standing Orders"
],
"operationId": "Read single Standing Order",
"produces": [
"application/json"
],
"parameters": [
{
"name": "standing_order_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of a specific standing order"
},
{
"name": "cents",
"in": "query",
"required": false,
"type": "boolean",
"description": "If `true`, monetary amounts will be shown in cents."
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/StandingOrder"
},
"examples": {}
}
},
"x-unitTests": [],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/account/{account_id}/standing_orders": {
"get": {
"description": "",
"summary": "Read Standing Orders by Account",
"tags": [
"Standing Orders"
],
"operationId": "Read Standing Orders by Account",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the account"
},
{
"name": "cents",
"in": "query",
"required": false,
"type": "boolean",
"description": "If `true`, the amount of the standing order will be shown in cents."
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/StandingOrderResponse"
},
"examples": {}
}
},
"x-unitTests": [],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/account/{account_id}/standing_orders/{standing_order_id}": {
"get": {
"description": "",
"summary": "Read single Standing Order by Account",
"tags": [
"Standing Orders"
],
"operationId": "Read single Standing Order by Account",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the account"
},
{
"name": "standing_order_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of a specific standing order"
},
{
"name": "cents",
"in": "query",
"required": false,
"type": "boolean",
"description": "If `true`, monetary amounts will be shown in cents."
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/StandingOrder"
},
"examples": {}
}
},
"x-unitTests": [],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/{account_id}/payments/{payment_id}/submit": {
"post": {
"description": "",
"summary": "Submit Standing Order",
"tags": [
"Standing Orders"
],
"operationId": "Submit Standing Order",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": "Internal *figo Connect* ID of the account"
},
{
"name": "payment_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of a specific standing order"
},
{
"name": "body",
"in": "body",
"required": true,
"description": "",
"schema": {
"$ref": "#/definitions/SubmitPayment"
}
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/TaskToken"
},
"examples": {
"application/json": {
"task_token": "YmB-BtvbWufLnbwgAVfP7XfLatwhrtu0sATfnZNR7LGP-aLXiZ7BKzLdZI--EqEPnwh_h6mCxToLEBhtA7LVd4uM4gTcZG8F6UJs47g6kWJ0"
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "POST",
"uri": "/rest/A1.1/payments/P1.2073/submit",
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"redirect_uri\": \"https://figo.me/test\", \"state\": \"fP7XfLatwhrtu0sA\", \"tan_scheme_id\": \"M607.1\"}"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"task_token\": \"YmB-BtvbWufLnbwgAVfP7XfLatwhrtu0sATfnZNR7LGP-aLXiZ7BKzLdZI--EqEPnwh_h6mCxToLEBhtA7LVd4uM4gTcZG8F6UJs47g6kWJ0\"}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Submit Standing Order1",
"x-testDescription": "Testcase for testing endpoint Submit Standing Order"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/accounts/{account_id}/payments/{standing_order_id}": {
"delete": {
"description": "",
"summary": "Delete Standing Order",
"tags": [
"Standing Orders"
],
"operationId": "Delete Standing Order",
"produces": [
"application/json"
],
"parameters": [
{
"name": "standing_order_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of a specific standing order"
},
{
"name": "submit",
"in": "query",
"required": false,
"type": "boolean",
"description": "If `true`, the standing order will be deleted from the *figo Connect* servers and the bank server. It this parameter is set to `false`, the standing order will be deleted from *figo Connect* backend only."
},
{
"name": "continue",
"in": "query",
"required": false,
"type": "boolean",
"description": "If `true`, the standing order will deleted even when it was changed since the last sync. If this parameter is set to `false`, the standing order will not be deleted in case it is not in sync between figo and the corresponding bank."
},
{
"name": "tan_scheme_id",
"in": "query",
"required": false,
"type": "string",
"description": "ID of the TAN scheme, used for deleting the standing order"
},
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": ""
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/TaskToken"
},
"examples": {
"application/json": {
"task_token": "YmB-BtvbWufLnbwgAVfP7XfLatwhrtu0sATfnZNR7LGP-aLXiZ7BKzLdZI--EqEPnwh_h6mCxToLEBhtA7LVd4uM4gTcZG8F6UJs47g6kWJ0"
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "DELETE",
"uri": "/rest/accounts/{account_id}/payments/{standing_order_id}?submit=true&continue=false&tan_scheme_id=M1.3"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"task_token\": \"YmB-BtvbWufLnbwgAVfP7XfLatwhrtu0sATfnZNR7LGP-aLXiZ7BKzLdZI--EqEPnwh_h6mCxToLEBhtA7LVd4uM4gTcZG8F6UJs47g6kWJ0\"}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Delete Standing Order1",
"x-testDescription": "Testcase for testing endpoint Delete Standing Order"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/accounts/{account_id}/securites/{security_id}": {
"get": {
"description": "",
"summary": "Get single Security",
"tags": [
"Securities"
],
"operationId": "Get single Security",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of the account for which to retrieve securities"
},
{
"name": "security_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of a specific security"
},
{
"name": "cents",
"in": "query",
"required": false,
"type": "boolean",
"description": "If `true`, monetary amounts will be shown in cents."
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/Security"
},
"examples": {
"application/json": {
"security_id": "S1.2",
"account_id": "A1.4",
"name": "Mustermann AG, Vorzugsaktien",
"market": "XASX",
"isin": "DE0123456790",
"wkn": "123457",
"currency": "EUR",
"quantity": 100,
"amount": 5460,
"amount_original_currency": 0,
"exchange_rate": 0,
"price": 54.6,
"price_currency": "EUR",
"purchase_price": 42.75,
"purchase_price_currency": "EUR",
"visited": "false",
"trade_timestamp": "1999-05-28T22:59:59Z",
"creation_timestamp": "2014-07-01T22:00:00Z",
"modification_timestamp": "2016-08-10T04:57:06Z"
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "GET",
"uri": "/rest/accounts/A1.4/securites/S1.2?cents=true"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"security_id\": \"S1.2\", \"account_id\": \"A1.4\", \"name\": \"Mustermann AG, Vorzugsaktien\", \"market\": \"XASX\", \"isin\": \"DE0123456790\", \"wkn\": \"123457\", \"currency\": \"EUR\", \"quantity\": 100, \"amount\": 5460, \"amount_original_currency\": 0, \"exchange_rate\": 0, \"price\": 54.6, \"price_currency\": \"EUR\", \"purchase_price\": 42.75, \"purchase_price_currency\": \"EUR\", \"visited\": \"false\", \"trade_timestamp\": \"1999-05-28T22:59:59.000Z\", \"creation_timestamp\": \"2014-07-01T22:00:00.000Z\", \"modification_timestamp\": \"2016-08-10T04:57:06.000Z\"}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Get single Security1",
"x-testDescription": "Testcase for testing endpoint Get single Security"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/securities": {
"get": {
"description": "",
"summary": "Get Securities",
"tags": [
"Securities"
],
"operationId": "Get Securities",
"produces": [
"application/json"
],
"parameters": [
{
"name": "cents",
"in": "query",
"required": false,
"type": "boolean",
"description": "If `true`, monetary amounts will be shown in cents."
},
{
"name": "since",
"in": "query",
"required": false,
"type": "string",
"description": "Return only securities after this ISO date, based on `since_type`."
},
{
"name": "since_type",
"in": "query",
"required": false,
"enum": [
"traded",
"created",
"modified"
],
"default": "created",
"type": "string",
"description": "This parameter defines how the parameter `since` will be interpreted."
},
{
"name": "offset",
"in": "query",
"required": false,
"type": "number",
"format": "double",
"description": "Offset into the implicit complete list of securities used as starting point for the returned list of securities. In combination with the `count` parameter this can be used to paginate the result list."
},
{
"name": "count",
"in": "query",
"required": false,
"type": "number",
"format": "double",
"description": "Limit the number of returned securities. In combination with the `offset` parameter this can be used to paginate the result list."
},
{
"name": "accounts",
"in": "query",
"required": false,
"type": "array",
"items": {
"type": "string"
},
"description": "Filter the securities to be only from these account IDs."
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/SecuritiesResponse"
},
"examples": {
"application/json": {
"deleted": [],
"status": {
"code": 1,
"sync_timestamp": "2017-02-16T18:27:25Z",
"success_timestamp": "2017-02-16T18:27:25Z"
},
"securities": [
{
"security_id": "S1.2",
"account_id": "A1.4",
"name": "Mustermann AG, Vorzugsaktien",
"market": "XASX",
"isin": "DE0123456790",
"wkn": "123457",
"currency": "EUR",
"quantity": 100,
"amount": 5460,
"amount_original_currency": 0,
"exchange_rate": 0,
"price": 54.6,
"price_currency": "EUR",
"purchase_price": 42.75,
"purchase_price_currency": "EUR",
"visited": "false",
"trade_timestamp": "1999-05-28T22:59:59Z",
"creation_timestamp": "2014-07-01T22:00:00Z",
"modification_timestamp": "2016-08-10T04:57:06Z"
}
]
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "GET",
"uri": "/rest/securities?cents=true&since=1/1/2017 12:00:00 AM&since_type=created&offset=1000&count=1000&accounts=[A1.2,A1.4]"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"deleted\": [], \"status\": { \"code\": 1, \"sync_timestamp\": \"2017-02-16T18:27:25.000Z\", \"success_timestamp\": \"2017-02-16T18:27:25.000Z\" }, \"securities\": [ { \"security_id\": \"S1.2\", \"account_id\": \"A1.4\", \"name\": \"Mustermann AG, Vorzugsaktien\", \"market\": \"XASX\", \"isin\": \"DE0123456790\", \"wkn\": \"123457\", \"currency\": \"EUR\", \"quantity\": 100, \"amount\": 5460, \"amount_original_currency\": 0, \"exchange_rate\": 0, \"price\": 54.6, \"price_currency\": \"EUR\", \"purchase_price\": 42.75, \"purchase_price_currency\": \"EUR\", \"visited\": \"false\", \"trade_timestamp\": \"1999-05-28T22:59:59.000Z\", \"creation_timestamp\": \"2014-07-01T22:00:00.000Z\", \"modification_timestamp\": \"2016-08-10T04:57:06.000Z\" } ]}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Get Securities1",
"x-testDescription": "Testcase for testing endpoint Get Securities"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/accounts/{account_id}/securities": {
"get": {
"description": "",
"summary": "Get Securities by Account",
"tags": [
"Securities"
],
"operationId": "Get Securities by Account",
"produces": [
"application/json"
],
"parameters": [
{
"name": "account_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of the account for which to retrieve securities"
},
{
"name": "cents",
"in": "query",
"required": false,
"type": "boolean",
"description": "If `true`, monetary amounts will be shown in cents."
},
{
"name": "since",
"in": "query",
"required": false,
"type": "string",
"description": "Return only securities after this ISO date, based on `since_type`."
},
{
"name": "since_type",
"in": "query",
"required": false,
"enum": [
"traded",
"created",
"modified"
],
"default": "created",
"type": "string",
"description": "This parameter defines how the parameter `since` will be interpreted."
},
{
"name": "offset",
"in": "query",
"required": false,
"type": "number",
"format": "double",
"description": "Offset into the implicit complete list of securities used as starting point for the returned list of securities. In combination with the `count` parameter this can be used to paginate the result list."
},
{
"name": "count",
"in": "query",
"required": false,
"type": "number",
"format": "double",
"description": "Limit the number of returned securities. In combination with the `offset` parameter this can be used to paginate the result list."
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/SecuritiesResponse"
},
"examples": {
"application/json": {
"deleted": [],
"status": {
"code": 1,
"sync_timestamp": "2017-02-16T18:27:25Z",
"success_timestamp": "2017-02-16T18:27:25Z"
},
"securities": [
{
"security_id": "S1.2",
"account_id": "A1.4",
"name": "Mustermann AG, Vorzugsaktien",
"market": "XASX",
"isin": "DE0123456790",
"wkn": "123457",
"currency": "EUR",
"quantity": 100,
"amount": 5460,
"amount_original_currency": 0,
"exchange_rate": 0,
"price": 54.6,
"price_currency": "EUR",
"purchase_price": 42.75,
"purchase_price_currency": "EUR",
"visited": "false",
"trade_timestamp": "1999-05-28T22:59:59Z",
"creation_timestamp": "2014-07-01T22:00:00Z",
"modification_timestamp": "2016-08-10T04:57:06Z"
}
]
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "GET",
"uri": "/rest/accounts/A1.4/securities?cents=true&since=1/1/2017 12:00:00 AM&since_type=created&offset=1000&count=1000"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"deleted\": [], \"status\": { \"code\": 1, \"sync_timestamp\": \"2017-02-16T18:27:25.000Z\", \"success_timestamp\": \"2017-02-16T18:27:25.000Z\" }, \"securities\": [ { \"security_id\": \"S1.2\", \"account_id\": \"A1.4\", \"name\": \"Mustermann AG, Vorzugsaktien\", \"market\": \"XASX\", \"isin\": \"DE0123456790\", \"wkn\": \"123457\", \"currency\": \"EUR\", \"quantity\": 100, \"amount\": 5460, \"amount_original_currency\": 0, \"exchange_rate\": 0, \"price\": 54.6, \"price_currency\": \"EUR\", \"purchase_price\": 42.75, \"purchase_price_currency\": \"EUR\", \"visited\": \"false\", \"trade_timestamp\": \"1999-05-28T22:59:59.000Z\", \"creation_timestamp\": \"2014-07-01T22:00:00.000Z\", \"modification_timestamp\": \"2016-08-10T04:57:06.000Z\" } ]}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Get Securities by Account1",
"x-testDescription": "Testcase for testing endpoint Get Securities by Account"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/notifications/": {
"post": {
"description": "",
"summary": "Create Notification",
"tags": [
"Notifications"
],
"operationId": "Create Notification",
"produces": [
"application/json"
],
"parameters": [
{
"name": "notification_id",
"in": "query",
"required": true,
"type": "string",
"description": "ID of a specific notification"
},
{
"name": "body",
"in": "body",
"required": true,
"description": "",
"schema": {
"$ref": "#/definitions/NotificationRequest"
}
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/Notification"
},
"examples": {
"application/json": {
"observe_key": "/rest/transactions",
"notify_uri": "http://figo.me/test",
"state": "qwe",
"notification_id": "N1.8324"
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "POST",
"uri": "/rest/notifications/?notification_id=N1.8324",
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"observe_key\": \"/rest/transactions\", \"notify_uri\": \"http://figo.me/test\", \"state\": \"qwe\"}"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"observe_key\": \"/rest/transactions\", \"notify_uri\": \"http://figo.me/test\", \"state\": \"qwe\", \"notification_id\": \"N1.8324\"}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Create Notification1",
"x-testDescription": "Testcase for testing endpoint Create Notification"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/rest/notifications/{notification_id}": {
"get": {
"description": "",
"summary": "Read Notifications",
"tags": [
"Notifications"
],
"operationId": "Read Notifications",
"produces": [
"application/json"
],
"parameters": [
{
"name": "notification_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of a specific notification"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/ReadNotificationsResponse"
},
"examples": {
"application/json": {
"notifications": [
{
"observe_key": "/rest/transactions",
"notify_uri": "http://figo.me/test",
"state": "qwe",
"notification_id": "N1.8324"
}
]
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "GET",
"uri": "/rest/notifications/N1.8324"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"notifications\": [ { \"observe_key\": \"/rest/transactions\", \"notify_uri\": \"http://figo.me/test\", \"state\": \"qwe\", \"notification_id\": \"N1.8324\" } ]}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Read Notifications1",
"x-testDescription": "Testcase for testing endpoint Read Notifications"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
},
"put": {
"description": "",
"summary": "Modify Notification",
"tags": [
"Notifications"
],
"operationId": "Modify Notification",
"produces": [
"application/json"
],
"parameters": [
{
"name": "notification_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of a specific notification"
},
{
"name": "body",
"in": "body",
"required": true,
"description": "",
"schema": {
"$ref": "#/definitions/NotificationRequest"
}
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/Notification"
},
"examples": {
"application/json": {
"observe_key": "/rest/transactions",
"notify_uri": "http://figo.me/test",
"state": "qwe",
"notification_id": "N1.8324"
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "PUT",
"uri": "/rest/notifications/N1.8324",
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"observe_key\": \"/rest/transactions\", \"notify_uri\": \"http://figo.me/test\", \"state\": \"qwe\"}"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"observe_key\": \"/rest/transactions\", \"notify_uri\": \"http://figo.me/test\", \"state\": \"qwe\", \"notification_id\": \"N1.8324\"}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Modify Notification1",
"x-testDescription": "Testcase for testing endpoint Modify Notification"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
},
"delete": {
"description": "",
"summary": "Delete Notification",
"tags": [
"Notifications"
],
"operationId": "Delete Notification",
"produces": [
"application/json"
],
"parameters": [
{
"name": "notification_id",
"in": "path",
"required": true,
"type": "string",
"description": "ID of a specific notification"
}
],
"responses": {
"204": {
"description": ""
}
},
"x-unitTests": [
{
"request": {
"method": "DELETE",
"uri": "/rest/notifications/N1.8324"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "NONE",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {}
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Delete Notification1",
"x-testDescription": "Testcase for testing endpoint Delete Notification"
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/task/progress": {
"post": {
"description": "While the *figo Connect* server communicates with a bank server, your application can monitor its progress by periodically polling this method. This method will start a task on the first call if it wasn't started already.",
"summary": "Interact with tasks",
"tags": [
"Task processing"
],
"operationId": "Interact with tasks",
"produces": [
"application/json"
],
"parameters": [
{
"name": "id",
"in": "query",
"required": true,
"type": "string",
"description": "Task token"
},
{
"name": "body",
"in": "body",
"required": true,
"description": "",
"schema": {
"$ref": "#/definitions/TaskRequest"
}
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/TaskResponse"
},
"examples": {
"application/json": {
"account_id": "A1.1",
"message": "Connecting to server...",
"is_waiting_for_pin": false,
"is_waiting_for_response": false,
"is_erroneous": false,
"is_ended": false,
"standing_order_id": "SO1.1"
}
}
}
},
"x-unitTests": [
{
"request": {
"method": "POST",
"uri": "/task/progress?id=YIO4UiH7PjdCGdnF36LNAHxbkjPLbizI...",
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"continue\": false}"
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "RAW",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
},
"body": "{ \"account_id\": \"A1.1\", \"message\": \"Connecting to server...\", \"is_waiting_for_pin\": false, \"is_waiting_for_response\": false, \"is_erroneous\": false, \"is_ended\": false, \"standing_order_id\": \"SO1.1\"}"
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Interact with tasks1",
"x-testDescription": "While the *figo Connect* server communicates with a bank server, your application can monitor its progress by periodically polling this method. This method will start a task on the first call if it wasn't started already."
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/task/cancel": {
"post": {
"description": "Depending on the task type, canceling it might not be possible. In addition if the task has ended in the mean time, it will still be canceled.",
"summary": "Cancel Task",
"tags": [
"Task processing"
],
"operationId": "Cancel Task",
"produces": [
"application/json"
],
"parameters": [
{
"name": "id",
"in": "query",
"required": true,
"type": "string",
"description": "Task token"
}
],
"responses": {
"204": {
"description": ""
}
},
"x-unitTests": [
{
"request": {
"method": "POST",
"uri": "/task/cancel?id=YYIO4UiH7PjdCGdnF36LNAHxbkjPLbizI..."
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "NONE",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {
"Content-Type": "application/json"
}
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Cancel Task1",
"x-testDescription": "Depending on the task type, canceling it might not be possible. In addition if the task has ended in the mean time, it will still be canceled."
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
},
"/task/start": {
"get": {
"description": "**DEPRECATED** (Needed for browser usage only)\nStart communication with bank server. After your application obtained a task token, you can direct the user’s web browser to a popup window of *figo Connect*. The popup window will ask the user for their account PIN, perform two-factor authentication or ask for a TAN. It also displays status messages as the task proceeds.",
"summary": "Start Task",
"tags": [
"Task processing"
],
"operationId": "Start Task",
"produces": [
"application/json"
],
"parameters": [
{
"name": "id",
"in": "query",
"required": true,
"type": "string",
"description": "Task token"
},
{
"name": "redirect_uri",
"in": "query",
"required": false,
"type": "string",
"description": ""
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "object"
},
"examples": {}
}
},
"x-unitTests": [
{
"request": {
"method": "GET",
"uri": "/task/start?id=YIO4UiH7PjdCGdnF36LNAHxbkjPLbizI..."
},
"expectedResponse": {
"x-allowExtraHeaders": true,
"x-bodyMatchMode": "NONE",
"x-arrayOrderedMatching": false,
"x-arrayCheckCount": false,
"x-matchResponseSchema": true,
"headers": {}
},
"x-testShouldPass": true,
"x-testEnabled": true,
"x-testName": "Start Task1",
"x-testDescription": "**DEPRECATED** (Needed for browser usage only)\nStart communication with bank server. After your application obtained a task token, you can direct the user’s web browser to a popup window of *figo Connect*. The popup window will ask the user for their account PIN, perform two-factor authentication or ask for a TAN. It also displays status messages as the task proceeds."
}
],
"x-operation-settings": {
"CollectParameters": false,
"AllowDynamicQueryParameters": false,
"AllowDynamicFormParameters": false,
"IsMultiContentStreaming": false
}
}
}
},
"definitions": {
"Version": {
"title": "Version",
"example": {
"product_environment": "api",
"product_version": "2.0.126",
"product_name": "figo Connect",
"ssl_fingerprints": [
"DB:E2:E9:15:8F:C9:90:30:84:FE:36:CA:A6:11:38:D8:5A:20:5D:93"
]
},
"type": "object",
"properties": {
"product_environment": {
"$ref": "#/definitions/ProductEnvironment",
"example": "api"
},
"product_version": {
"description": "API version",
"example": "2.0.126",
"type": "string"
},
"product_name": {
"description": "Product name",
"example": "figo Connect",
"type": "string"
},
"ssl_fingerprints": {
"description": "List of service's SSL fingerprints",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"ProductEnvironment": {
"title": "product_environment",
"example": "api",
"type": "string",
"enum": [
"api",
"staging"
]
},
"Scope": {
"title": "Scope",
"type": "object",
"properties": {
"scope": {
"description": "A space delimited set of requested permissions. The requested permissions can be narrower but not broader than the permissions supplied in the authorization code request. If this parameter is omitted, the permissions supplied in the authorization code request are used in place.",
"example": "accounts=ro balance=ro offline",
"type": "string"
}
}
},
"RefreshToken": {
"title": "Refresh Token",
"type": "object",
"properties": {
"refresh_token": {
"description": "A refresh token that may be used to request new access tokens. Refresh tokens remain valid until the user revokes access to your application. This response parameter is only present if the permission `offline` has been requested in the authorization code request.",
"example": "RTfI2WNyK78NozupDH9ai8GPRbjjdVsXPPt...",
"type": "string"
}
},
"required": [
"refresh_token"
]
},
"ExchangeAuthorizationCode": {
"title": "Exchange Authorization Code",
"example": {
"grant_type": "authorization_code",
"code": "OkA7jUIro6JNmOF7i5f7QmepCLLoIFug6621...",
"redirect_uri": "https://figo.me/test"
},
"type": "object",
"properties": {
"grant_type": {
"description": "",
"example": "authorization_code",
"type": "string"
},
"code": {
"description": "The authorization code returned from the initial request",
"example": "OkA7jUIro6JNmOF7i5f7QmepCLLoIFug6621...",
"type": "string"
},
"redirect_uri": {
"description": "If the callback URL was specified in the initial request, then it must also be included in this request. The value defaults to the first redirect URI configured for the client.",
"example": "https://figo.me/test",
"type": "string"
}
},
"required": [
"grant_type",
"code"
]
},
"ExchangeRefreshToken": {
"title": "Exchange Refresh Token",
"allOf": [
{
"$ref": "#/definitions/Scope"
},
{
"type": "object",
"properties": {
"grant_type": {
"description": "",
"example": "refresh_token",
"type": "string"
},
"refresh_token": {
"description": "A refresh token that may be used to request new access tokens. Refresh tokens remain valid until the user revokes access to your application. This response parameter is only present if the permission `offline` has been requested in the authorization code request.",
"example": "RTfI2WNyK78NozupDH9ai8GPRbjjdVsXPPt...",
"type": "string"
}
},
"required": [
"grant_type"
]
}
]
},
"AccessToken": {
"title": "Access Token",
"allOf": [
{
"$ref": "#/definitions/Scope"
},
{
"example": {
"scope": "accounts=ro balance=ro offline",
"token_type": "Bearer",
"access_token": "ASHWLIkouP2O6bgA23DDrFv...",
"expires_in": 3600,
"refresh_token": "RTfI2WNyK78NozupDH9ai8GPRbjjdVsXPPt..."
},
"type": "object",
"properties": {
"token_type": {
"description": "",
"example": "Bearer",
"type": "string",
"default": "Bearer"
},
"access_token": {
"description": "The access token for the current user",
"example": "ASHWLIkouP2O6bgA23DDrFv...",
"type": "string"
},
"expires_in": {
"description": "The remaining live time of the access token in seconds",
"example": 3600,
"type": "number",
"format": "double"
},
"refresh_token": {
"description": "A refresh token is only included in the response if client credentials have scope `offline`.",
"example": "RTfI2WNyK78NozupDH9ai8GPRbjjdVsXPPt...",
"type": "string"
}
}
}
]
},
"CredentialLogin": {
"title": "Credential Login",
"allOf": [
{
"$ref": "#/definitions/Scope"
},
{
"type": "object",
"properties": {
"grant_type": {
"description": "",
"example": "password",
"type": "string"
},
"username": {
"description": "The figo account e-mail address",
"example": "[email protected]",
"type": "string"
},
"password": {
"description": "The figo account password",
"example": "demo1234",
"type": "string"
}
},
"required": [
"grant_type",
"username",
"password"
]
}
]
},
"RevokeToken": {
"title": "Revoke Token",
"example": {
"token": "ASHWLIkouP2O6_bgA2wWReRhletgWKHYjLqDaqb0LFfamim...",
"cascade": true
},
"type": "object",
"properties": {
"token": {
"description": "A refresh token or access token",
"example": "ASHWLIkouP2O6_bgA2wWReRhletgWKHYjLqDaqb0LFfamim...",
"type": "string"
},
"cascade": {
"description": "If `token` is an access token and `cascade` is set to `true`, the corresponding refresh token will also be revoked. Otherwise only `token` will be revoked.",
"example": true,
"type": "boolean"
}
},
"required": [
"token"
]
},
"Notification": {
"title": "Notification",
"allOf": [
{
"$ref": "#/definitions/NotificationRequest"
},
{
"example": {
"observe_key": "/rest/transactions",
"notify_uri": "http://figo.me/test",
"state": "qwe",
"notification_id": "N1.8324"
},
"type": "object",
"properties": {
"notification_id": {
"description": "Notification ID",
"example": "N1.8324",
"type": "string"
}
}
}
]
},
"NotificationRequest": {
"title": "Notification Request",
"example": {
"observe_key": "/rest/transactions",
"notify_uri": "http://figo.me/test",
"state": "qwe"
},
"type": "object",
"properties": {
"observe_key": {
"description": "Notification key",
"example": "/rest/transactions",
"type": "string"
},
"notify_uri": {
"description": "Notification messages will be sent to this URL. The URL schemes `https://` and `http://` are used for webhooks.",
"example": "http://figo.me/test",
"type": "string"
},
"state": {
"description": "The value can be any kind of string that will be forwarded in the notification message. It serves two purposes: The value is used to maintain state between this request and the notification message, e.g. it might contain a user ID from your application. The value should also contain a random component, which your application checks to mitigate cross-site request forgery.",
"example": "qwe",
"type": "string"
}
}
},
"PaymentBase": {
"title": "Payment Base",
"type": "object",
"properties": {
"name": {
"description": "Name of creditor or debtor",
"example": "John Doe",
"type": "string"
},
"iban": {
"description": "IBAN of creditor or debtor.",
"example": "DE67900900424711951501",
"type": "string"
},
"amount": {
"description": "Order amount",
"example": 22.8,
"type": "number",
"format": "double"
},
"purpose": {
"description": "Purpose text",
"example": "Thanks for all the fish.",
"type": "string"
},
"account_number": {
"description": "**DEPRECATED**",
"type": "string"
},
"bank_code": {
"description": "**DEPRECATED**",
"type": "string"
},
"currency": {
"description": "Three-character currency code (ISO 4217:2015)",
"example": "EUR",
"type": "string"
},
"text_key": {
"description": "DTA text key",
"example": 51,
"type": "number",
"format": "double"
},
"text_key_extension": {
"description": "DTA text key extension",
"example": 0,
"type": "number",
"format": "double"
}
},
"required": [
"name",
"iban",
"amount",
"purpose"
]
},
"PaymentRequest": {
"title": "Payment Request",
"allOf": [
{
"$ref": "#/definitions/PaymentBase"
},
{
"type": "object",
"properties": {
"type": {
"$ref": "#/definitions/Type"
},
"cents": {
"description": "If `true`, the amount is submitted as cents.",
"example": false,
"type": "boolean"
}
},
"required": [
"type"
]
}
]
},
"Type": {
"title": "type",
"example": "Transfer",
"type": "string",
"enum": [
"Transfer",
"SEPA transfer"
]
},
"ModifyPaymentRequest": {
"title": "Modify Payment Request",
"allOf": [
{
"$ref": "#/definitions/PaymentRequest"
},
{
"type": "object",
"properties": {
"name": {
"description": "Name of creditor or debtor",
"example": "John Doe Junior",
"type": "string"
},
"iban": {
"description": "IBAN of creditor or debtor.",
"example": "DE67900900424711951502",
"type": "string"
},
"amount": {
"description": "Order amount",
"example": 33.9,
"type": "number",
"format": "double"
},
"purpose": {
"description": "Purpose text",
"example": "Thanks for all the fish.",
"type": "string"
}
}
}
]
},
"Payment": {
"title": "Payment",
"allOf": [
{
"$ref": "#/definitions/PaymentBase"
},
{
"type": "object",
"properties": {
"type": {
"$ref": "#/definitions/Type"
},
"name": {
"description": "Name of creditor or debtor",
"example": "John Doe",
"type": "string"
},
"iban": {
"description": "IBAN of creditor or debtor.",
"example": "DE67900900424711951501",
"type": "string"
},
"amount": {
"description": "Order amount",
"example": 22.8,
"type": "number",
"format": "double"
},
"purpose": {
"description": "Purpose text",
"example": "Thanks for all the fish.",
"type": "string"
},
"account_id": {
"description": "Internal figo Connect ID of the account",
"example": "A1.1",
"type": "string"
},
"payment_id": {
"description": "Internal figo Connect payment ID",
"example": "P1.2073",
"type": "string"
},
"bank_name": {
"description": "Bank name of creditor or debtor",
"example": "Demobank",
"type": "string"
},
"bank_icon": {
"description": "Icon of creditor or debtor bank",
"example": "https://api.figo.me/assets/images/accounts/default.png",
"type": "string"
},
"bank_additional_icons": {
"$ref": "#/definitions/AdditionalIcons"
},
"submission_timestamp": {
"description": "Timestamp of submission to the bank server. Is `null` if payment has not been submitted yet.",
"example": "null",
"type": "string"
},
"creation_timestamp": {
"description": "Internal creation timestamp on the figo Connect server.",
"example": "4/13/2016 4:03:45 PM",
"type": "string"
},
"modification_timestamp": {
"description": "Internal modification timestamp on the figo Connect server",
"example": "4/13/2016 4:03:45 PM",
"type": "string"
}
}
}
]
},
"AdditionalIcons": {
"title": "Additional Icons",
"type": "object",
"properties": {
"48x48": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/default_48.png",
"type": "string"
},
"60x60": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/default_60.png",
"type": "string"
},
"72x72": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/default_72.png",
"type": "string"
},
"84x84": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/default_84.png",
"type": "string"
},
"96x96": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/default_96.png",
"type": "string"
},
"120x120": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/default_120.png",
"type": "string"
},
"144x144": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/default_144.png",
"type": "string"
},
"192x192": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/default_192.png",
"type": "string"
},
"256x256": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/default_256.png",
"type": "string"
}
},
"required": [
"48x48",
"60x60",
"72x72",
"84x84",
"96x96",
"120x120",
"144x144",
"192x192",
"256x256"
]
},
"SubmitPayment": {
"title": "Submit Payment",
"example": {
"redirect_uri": "https://figo.me/test",
"state": "fP7XfLatwhrtu0sA",
"tan_scheme_id": "M607.1"
},
"type": "object",
"properties": {
"state": {
"description": "The value can be any kind of string that will be forwarded in the callback response message. It serves two purposes: The value is used to maintain state between this request and the notification message, e.g. it might contain a user ID from your application. The value should also contain a random component, which your application checks to mitigate cross-site request forgery.",
"example": "fP7XfLatwhrtu0sA",
"type": "string"
},
"tan_scheme_id": {
"description": "TAN scheme ID of user-selected TAN scheme",
"example": "M607.1",
"type": "string"
},
"redirect_uri": {
"description": "At the end of the submission process a response will be sent to this callback URL. The value defaults to the first redirect URI configured for the client. This field may also assume the value `close_window` for use in the figo web interface. It implies that after completing a TAN challenge, the window is closed instead of triggering a redirect.",
"example": "https://figo.me/test",
"type": "string"
}
},
"required": [
"state",
"tan_scheme_id"
]
},
"StandingOrderMixin": {
"title": "Standing Order Mixin",
"type": "object",
"properties": {
"type": {
"description": "Payment type, must be set to `SEPA standing order` to be recognized as a standing order instead of a regular payment.",
"example": "SEPA standing order",
"type": "string"
},
"interval": {
"$ref": "#/definitions/Interval",
"example": "quarterly"
},
"execution_day": {
"description": "Identifier of the day when the standing order will be regularly executed. Permitted values depend on the `interval`.",
"example": 15,
"type": "number",
"format": "double"
},
"first_execution_date": {
"description": "The first date when the standing order will be executed",
"example": "5/15/2015 12:00:00 AM",
"type": "string"
},
"last_execution_date": {
"description": "The last date when the standing order will be executed. The day of month must be the same as that of the first execution.",
"example": "1/15/2017 12:00:00 AM",
"type": "string"
}
},
"required": [
"type",
"interval",
"execution_day",
"first_execution_date"
]
},
"Interval": {
"title": "interval",
"example": "weekly",
"type": "string",
"enum": [
"weekly",
"monthly",
"two monthly",
"four monthly",
"quarterly",
"half yearly",
"yearly"
]
},
"StandingOrderRequest": {
"title": "Standing Order Request",
"allOf": [
{
"$ref": "#/definitions/PaymentRequest"
},
{
"type": "object",
"properties": {
"type": {
"description": "Payment type, must be set to `SEPA standing order` to be recognized as a standing order instead of a regular payment.",
"example": "SEPA standing order",
"type": "string",
"default": "SEPA standing order"
},
"interval": {
"$ref": "#/definitions/Interval",
"example": "quarterly"
},
"execution_day": {
"description": "Identifier of the day when the standing order will be regularly executed. Permitted values depend on the `interval`.",
"example": 15,
"type": "number",
"format": "double"
},
"first_execution_date": {
"description": "The first date when the standing order will be executed",
"example": "5/15/2015 12:00:00 AM",
"type": "string"
},
"last_execution_date": {
"description": "The last date when the standing order will be executed. The day of month must be the same as that of the first execution.",
"example": "1/15/2017 12:00:00 AM",
"type": "string"
}
}
}
]
},
"ModifyStandingOrderRequest": {
"title": "Modify Standing Order Request",
"example": {
"standing_order_id": "S01.1",
"amount": 10,
"name": "Max Mustermann",
"purpose": "Thanks for all the fish.",
"interval": "quarterly",
"execution_day": 15,
"first_execution_date": "2015-05-15T00:00:00Z",
"last_execution_date": "2017-01-01T00:00:00Z"
},
"type": "object",
"properties": {
"standing_order_id": {
"description": "Internal figo Connect ID of standing order to modify",
"example": "S01.1",
"type": "string"
},
"amount": {
"description": "Transaction amount",
"example": 10,
"type": "number",
"format": "double"
},
"name": {
"description": "Name of creditor or debtor",
"example": "Max Mustermann",
"type": "string"
},
"purpose": {
"description": "Purpose text",
"example": "Thanks for all the fish.",
"type": "string"
},
"interval": {
"$ref": "#/definitions/Interval",
"example": "quarterly"
},
"execution_day": {
"description": "Identifier of the day when the standing order will be regularly executed. Permitted values depend on the `interval`.",
"example": 15,
"type": "number",
"format": "double"
},
"first_execution_date": {
"description": "The first date when the standing order will be executed",
"example": "5/15/2015 12:00:00 AM",
"type": "string"
},
"last_execution_date": {
"description": "The last date when the standing order will be executed",
"example": "1/1/2017 12:00:00 AM",
"type": "string"
}
},
"required": [
"standing_order_id"
]
},
"ModifyStandingOrderResponse": {
"title": "Modify Standing Order Response",
"allOf": [
{
"$ref": "#/definitions/Payment"
},
{
"example": {
"name": "John Doe",
"iban": "DE67900900424711951501",
"amount": 22.8,
"purpose": "Thanks for all the fish.",
"currency": "EUR",
"text_key": 51,
"text_key_extension": 0,
"account_id": "A1.1",
"payment_id": "P1.2073",
"bank_name": "Demobank",
"bank_icon": "https://api.figo.me/assets/images/accounts/default.png",
"bank_additional_icons": {
"48x48": "https://api.figo.me/assets/images/accounts/default_48.png",
"60x60": "https://api.figo.me/assets/images/accounts/default_60.png",
"72x72": "https://api.figo.me/assets/images/accounts/default_72.png",
"84x84": "https://api.figo.me/assets/images/accounts/default_84.png",
"96x96": "https://api.figo.me/assets/images/accounts/default_96.png",
"120x120": "https://api.figo.me/assets/images/accounts/default_120.png",
"144x144": "https://api.figo.me/assets/images/accounts/default_144.png",
"192x192": "https://api.figo.me/assets/images/accounts/default_192.png",
"256x256": "https://api.figo.me/assets/images/accounts/default_256.png"
},
"submission_timestamp": "null",
"creation_timestamp": "2016-04-13T16:03:45Z",
"modification_timestamp": "2016-04-13T16:03:45Z",
"type": "SEPA standing order",
"interval": "quarterly",
"execution_day": 15,
"first_execution_date": "2015-05-15T00:00:00Z",
"last_execution_date": "2017-01-15T00:00:00Z"
},
"type": "object",
"properties": {
"type": {
"description": "Payment type",
"example": "Modify SEPA standing order",
"type": "string",
"default": "Modify SEPA standing order"
},
"interval": {
"$ref": "#/definitions/Interval",
"example": "quarterly"
},
"execution_day": {
"description": "Identifier of the day when the standing order will be regularly executed. Permitted values depend on the `interval`.",
"example": 15,
"type": "number",
"format": "double"
},
"first_execution_date": {
"description": "The first date when the standing order will be executed",
"example": "5/15/2015 12:00:00 AM",
"type": "string"
},
"last_execution_date": {
"description": "The last date when the standing order will be executed. The day of month must be the same as that of the first execution.",
"example": "1/15/2017 12:00:00 AM",
"type": "string"
}
}
}
]
},
"StandingOrder": {
"title": "Standing Order",
"allOf": [
{
"$ref": "#/definitions/StandingOrderRequest"
},
{
"type": "object",
"properties": {
"standing_order_id": {
"description": "Internal figo Connect standing order ID",
"example": "S01.1",
"type": "string"
},
"account_id": {
"description": "Internal figo Connect ID of the account",
"example": "A1.1",
"type": "string"
},
"creation_timestamp": {
"description": "Internal creation timestamp on the figo Connect server.",
"example": "5/1/2015 12:00:00 AM",
"type": "string"
},
"modification_timestamp": {
"description": "Internal modification timestamp on the figo Connect server",
"example": "4/13/2016 4:03:45 PM",
"type": "string"
}
}
}
]
},
"StandingOrderResponse": {
"title": "Standing Order Response",
"type": "object",
"properties": {
"standing_orders": {
"description": "List of active standing orders",
"type": "array",
"items": {
"$ref": "#/definitions/StandingOrder"
}
}
}
},
"ServiceListitem": {
"title": "Service Listitem",
"type": "object",
"properties": {
"name": {
"description": "Human readable name of service",
"example": "PayPal",
"type": "string"
},
"bank_code": {
"description": "*figo Connect* internal ID of service",
"example": "PayPal",
"type": "string"
},
"icon": {
"description": "URL to an logo of the service, e.g. as a badge icon, and URLs for icons with additional resolutions",
"type": "array",
"items": {
"type": "string"
}
},
"credentials": {
"description": "List of credentials needed to connect to the service.",
"type": "array",
"items": {
"$ref": "#/definitions/Credentials"
}
},
"advice": {
"description": "Any additional advice useful to locate the required credentials",
"example": "Bitte geben Sie Ihre Kreditkartennummer und Ihr Passwort ein.",
"type": "string"
},
"language": {
"$ref": "#/definitions/Language"
}
}
},
"Credentials": {
"title": "Credentials",
"type": "object",
"properties": {
"label": {
"description": "Label for text input field",
"example": "PIN oder Passwort",
"type": "string"
},
"masked": {
"description": "This indicates whether the this text input field is used for password entry and therefore should be masked on presentation.",
"example": true,
"type": "boolean"
}
}
},
"Language": {
"title": "language",
"type": "object",
"properties": {
"available_languages": {
"description": "List of available languages",
"type": "array",
"items": {
"type": "string"
}
},
"current_language": {
"description": "Current language of catalog item",
"example": "de",
"type": "string"
}
}
},
"BankListitem": {
"title": "Bank Listitem",
"allOf": [
{
"$ref": "#/definitions/ServiceListitem"
},
{
"type": "object",
"properties": {
"name": {
"description": "Human readable name of bank",
"example": "Postbank Berlin",
"type": "string"
},
"bank_code": {
"description": "Bank code",
"example": "10010010",
"type": "string"
},
"bic": {
"description": "BIC",
"example": "PBNKDEFFXXX",
"type": "string"
},
"icon": {
"description": "URL to an logo of the bank, e.g. as a badge icon, and URLs for icons with additional resolutions",
"type": "array",
"items": {
"type": "string"
}
},
"credentials": {
"description": "List of credentials needed to connect to the bank.",
"type": "array",
"items": {
"$ref": "#/definitions/Credentials"
}
},
"advice": {
"description": "Any additional advice useful to locate the required credentials",
"example": "Bitte beachten Sie, dass ein Postbank Login nur über Eingabe der 10-stelligen, numerischen Kontonummer und der 5-stelligen PIN möglich ist.",
"type": "string"
}
}
}
]
},
"Bank": {
"title": "Bank",
"allOf": [
{
"$ref": "#/definitions/BankListitem"
},
{
"type": "object",
"properties": {
"icon": {
"description": "URL to an logo of the bank, e.g. as a badge icon",
"example": "https://api.figo.me/assets/images/accounts/postbank.png",
"type": "string"
},
"additional_icons": {
"$ref": "#/definitions/AdditionalIconsBank"
}
}
}
]
},
"AdditionalIconsBank": {
"title": "Additional Icons Bank",
"type": "object",
"properties": {
"48x48": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/postbank_48.png",
"type": "string"
},
"60x60": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/postbank_60.png",
"type": "string"
},
"72x72": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/postbank_72.png",
"type": "string"
},
"84x84": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/postbank_84.png",
"type": "string"
},
"96x96": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/postbank_96.png",
"type": "string"
},
"120x120": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/postbank_120.png",
"type": "string"
},
"144x144": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/postbank_144.png",
"type": "string"
},
"192x192": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/postbank_192.png",
"type": "string"
},
"256x256": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/postbank_256.png",
"type": "string"
}
},
"required": [
"48x48",
"60x60",
"72x72",
"84x84",
"96x96",
"120x120",
"144x144",
"192x192",
"256x256"
]
},
"Service": {
"title": "Service",
"allOf": [
{
"$ref": "#/definitions/ServiceListitem"
},
{
"example": {
"name": "PayPal",
"bank_code": "PayPal",
"icon": "https://api.figo.me/assets/images/accounts/paypal.png",
"credentials": [
{
"label": "PIN oder Passwort",
"masked": true
}
],
"advice": "Bitte geben Sie Ihre Kreditkartennummer und Ihr Passwort ein.",
"language": {
"available_languages": [
"de",
"en"
],
"current_language": "de"
},
"additional_icons": {
"48x48": "https://api.figo.me/assets/images/accounts/paypal_48.png",
"60x60": "https://api.figo.me/assets/images/accounts/paypal_60.png",
"72x72": "https://api.figo.me/assets/images/accounts/paypal_72.png",
"84x84": "https://api.figo.me/assets/images/accounts/paypal_84.png",
"96x96": "https://api.figo.me/assets/images/accounts/paypal_96.png",
"120x120": "https://api.figo.me/assets/images/accounts/paypal_120.png",
"144x144": "https://api.figo.me/assets/images/accounts/paypal_144.png",
"192x192": "https://api.figo.me/assets/images/accounts/paypal_192.png",
"256x256": "https://api.figo.me/assets/images/accounts/paypal_256.png"
}
},
"type": "object",
"properties": {
"icon": {
"description": "URL to an logo of the service, e.g. as a badge icon",
"example": "https://api.figo.me/assets/images/accounts/paypal.png",
"type": "string"
},
"additional_icons": {
"$ref": "#/definitions/AdditionalIconsService"
}
}
}
]
},
"AdditionalIconsService": {
"title": "Additional Icons Service",
"type": "object",
"properties": {
"48x48": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/paypal_48.png",
"type": "string"
},
"60x60": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/paypal_60.png",
"type": "string"
},
"72x72": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/paypal_72.png",
"type": "string"
},
"84x84": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/paypal_84.png",
"type": "string"
},
"96x96": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/paypal_96.png",
"type": "string"
},
"120x120": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/paypal_120.png",
"type": "string"
},
"144x144": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/paypal_144.png",
"type": "string"
},
"192x192": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/paypal_192.png",
"type": "string"
},
"256x256": {
"description": "",
"example": "https://api.figo.me/assets/images/accounts/paypal_256.png",
"type": "string"
}
},
"required": [
"48x48",
"60x60",
"72x72",
"84x84",
"96x96",
"120x120",
"144x144",
"192x192",
"256x256"
]
},
"BankContact": {
"title": "Bank Contact",
"example": {
"bank_id": 1,
"bank_code": "90090042",
"sepa_creditor_id": "DE02ZZZ0123456789",
"save_pin": true
},
"type": "object",
"properties": {
"bank_id": {
"description": "Internal figo Connect bank ID",
"example": 1,
"type": "number",
"format": "double"
},
"bank_code": {
"description": "The old school bank code",
"example": "90090042",
"type": "string"
},
"sepa_creditor_id": {
"description": "SEPA direct debit creditor ID",
"example": "DE02ZZZ0123456789",
"type": "string"
},
"save_pin": {
"description": "This flag indicates whether the user has chosen to save the PIN on the figo Connect server.",
"example": true,
"type": "boolean"
}
}
},
"Balance": {
"title": "Balance",
"example": {
"balance": 3250.31,
"balance_date": "2017-02-20T00:00:00Z",
"monthly_spending_limit": 0,
"credit_line": 0
},
"type": "object",
"properties": {
"balance": {
"description": "Account balance. This response parameter will be omitted if the balance is not yet known.",
"example": 3250.31,
"type": "number",
"format": "double"
},
"balance_date": {
"description": "Bank server timestamp of `balance`. This response parameter will be omitted if the balance is not yet known.",
"example": "2/20/2017 12:00:00 AM",
"type": "string"
},
"monthly_spending_limit": {
"description": "**DEPRECATED** This value is not used anymore and always set to `0`.",
"example": 0,
"type": "number",
"format": "double"
},
"credit_line": {
"description": "**DEPRECATED** This value is not used anymore and always set to `0`.",
"example": 0,
"type": "number",
"format": "double"
}
}
},
"AccountResponse": {
"title": "Account Response",
"allOf": [
{
"$ref": "#/definitions/AccountSettings"
},
{
"example": {
"auto_sync": true,
"preferred_tan_scheme": "",
"account_id": "A1.1",
"bank_id": "B607.1",
"name": "Girokonto",
"owner": "Max Mustermann",
"supported_tan_schemes": [
{
"tan_scheme_id": "M607.1",
"name": "iTAN",
"medium_name": "Girocard",
"additional_info": {}
}
],
"iban": "DE67900900424711951500",
"bic": "DEMODE01",
"account_number": "4711951500",
"bank_code": "90090042",
"bank_name": "Demobank",
"balance": {
"balance": 3250.31,
"balance_date": "2017-02-20T00:00:00Z",
"monthly_spending_limit": 0,
"credit_line": 0
},
"currency": "EUR",
"type": "Giro account",
"icon": "https://api.figo.me/assets/images/accounts/default.png",
"additional_icons": {
"48x48": "https://api.figo.me/assets/images/accounts/default_48.png",
"60x60": "https://api.figo.me/assets/images/accounts/default_60.png",
"72x72": "https://api.figo.me/assets/images/accounts/default_72.png",
"84x84": "https://api.figo.me/assets/images/accounts/default_84.png",
"96x96": "https://api.figo.me/assets/images/accounts/default_96.png",
"120x120": "https://api.figo.me/assets/images/accounts/default_120.png",
"144x144": "https://api.figo.me/assets/images/accounts/default_144.png",
"192x192": "https://api.figo.me/assets/images/accounts/default_192.png",
"256x256": "https://api.figo.me/assets/images/accounts/default_256.png"
},
"supported_payments": {
"Transfer": {
"allowed_recipients": [],
"max_purpose_length": 108,
"supported_text_keys": [
51,
53
],
"can_be_recurring": false,
"can_be_scheduled": false,
"supported_file_formats": []
}
},
"status": {
"code": 1,
"sync_timestamp": "2017-02-16T18:27:25Z",
"success_timestamp": "2017-02-16T18:27:25Z"
},
"verification_status": false,
"save_pin": true,
"in_total_balance": false
},
"type": "object",
"properties": {
"account_id": {
"description": "Internal figo Connect account ID",
"example": "A1.1",
"type": "string"
},
"bank_id": {
"description": "Internal figo Connect bank ID",
"example": "B607.1",
"type": "string"
},
"name": {
"description": "Name of account",
"example": "Girokonto",
"type": "string"
},
"owner": {
"description": "Owner of account",
"example": "Max Mustermann",
"type": "string"
},
"supported_tan_schemes": {
"description": "List of TAN schemes supported by this account",
"type": "array",
"items": {
"$ref": "#/definitions/TanScheme"
}
},
"iban": {
"description": "IBAN of the account",
"example": "DE67900900424711951500",
"type": "string"
},
"bic": {
"description": "BIC of the bank",
"example": "DEMODE01",
"type": "string"
},
"account_number": {
"description": "The old school account number",
"example": "4711951500",
"type": "string"
},
"bank_code": {
"description": "The old school bank code",
"example": "90090042",
"type": "string"
},
"bank_name": {
"description": "Name of the bank",
"example": "Demobank",
"type": "string"
},
"balance": {
"$ref": "#/definitions/Balance"
},
"currency": {
"description": "Three-character currency code (ISO 4217:2015)",
"example": "EUR",
"type": "string"
},
"type": {
"$ref": "#/definitions/Type42"
},
"icon": {
"description": "Bank icon",
"example": "https://api.figo.me/assets/images/accounts/default.png",
"type": "string"
},
"additional_icons": {
"$ref": "#/definitions/AdditionalIcons"
},
"supported_payments": {
"$ref": "#/definitions/PaymentTypes"
},
"status": {
"$ref": "#/definitions/SynchronizationStatus"
},
"verification_status": {
"description": "Status whether this account is verified",
"type": "boolean"
},
"save_pin": {
"description": "This flag indicates whether the user has chosen to save the PIN on the figo Connect server.",
"example": true,
"type": "boolean"
},
"in_total_balance": {
"description": "**DEPRECATED**",
"example": false,
"type": "boolean"
}
},
"required": [
"account_id",
"bank_id"
]
}
]
},
"AccountSettings": {
"title": "Account Settings",
"example": {
"auto_sync": true,
"preferred_tan_scheme": ""
},
"type": "object",
"properties": {
"auto_sync": {
"description": "This flag indicates whether the account will be automatically synchronized",
"example": true,
"type": "boolean"
},
"preferred_tan_scheme": {
"description": "**DEPRECATED**",
"type": "string"
}
}
},
"TanScheme": {
"title": "TAN Scheme",
"type": "object",
"properties": {
"tan_scheme_id": {
"description": "Internal figo Connect TAN scheme ID",
"example": "M607.1",
"type": "string"
},
"name": {
"description": "TAN scheme name",
"example": "iTAN",
"type": "string"
},
"medium_name": {
"description": "TAN medium name",
"example": "Girocard",
"type": "string"
},
"additional_info": {
"description": "Additional information on the TAN scheme",
"type": "object"
}
},
"required": [
"tan_scheme_id"
]
},
"Type42": {
"title": "type42",
"example": "Giro account",
"type": "string",
"enum": [
"Giro account",
"Savings account",
"Daily savings account",
"Credit card",
"Loan account",
"PayPal",
"Depot",
"Unknown"
]
},
"PaymentTypes": {
"title": "Payment Types",
"type": "object",
"properties": {
"Transfer": {
"$ref": "#/definitions/PaymentParameters"
}
}
},
"PaymentParameters": {
"title": "Payment Parameters",
"type": "object",
"properties": {
"allowed_recipients": {
"description": "List of account IDs. The payment recipient must be one of these accounts. No restriction applies if this field is omitted",
"type": "array",
"items": {
"type": "string"
}
},
"max_purpose_length": {
"description": "Maximum string length of purpose text",
"example": 108,
"type": "number",
"format": "double"
},
"supported_text_keys": {
"description": "List of supported DTA text keys",
"type": "array",
"items": {
"type": "number",
"format": "double"
}
},
"can_be_recurring": {
"description": "Indicates whether payments of this type can be recurring. This usually applies for standing orders.",
"example": false,
"type": "boolean"
},
"can_be_scheduled": {
"description": "Indicates whether payments of this type can be scheduled to be executed on a specific date. This usually applies for standing orders.",
"example": false,
"type": "boolean"
},
"supported_file_formats": {
"description": "List of supported payment file formats for file upload. Currently always empty",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"SynchronizationStatus": {
"title": "Synchronization Status",
"type": "object",
"properties": {
"code": {
"description": "**DEPRECATED**",
"example": 1,
"type": "number",
"format": "double"
},
"sync_timestamp": {
"description": "Timestamp of last synchronization. For multiple accounts, the oldest timestamp is displayed.",
"example": "2/16/2017 6:27:25 PM",
"type": "string"
},
"success_timestamp": {
"description": "Timestamp of last successful synchronization. For multiple accounts, the oldest timestamp is displayed.",
"example": "2/16/2017 6:27:25 PM",
"type": "string"
},
"message": {
"description": "Human-readable error message",
"type": "string"
}
}
},
"AccountSetupRequest": {
"title": "Account Setup Request",
"type": "object",
"properties": {
"bank_code": {
"description": "Internal figo Connect bank code of the bank or service associated with the account",
"example": "90090042",
"type": "string"
},
"iban": {
"description": "The IBAN of the account. If set, will override `bank_code`.",
"example": "DE67900900424711951500",
"type": "string"
},
"country": {
"description": "**DEPRECATED**",
"example": "de",
"type": "string"
},
"credentials": {
"description": "List of credentials as demanded by the bank or service. They must be in the same order as in the credentials list from the login settings.",
"type": "array",
"items": {
"type": "string"
}
},
"save_pin": {
"description": "This flag indicates whether the given PIN should be saved on the figo Connect server.",
"example": true,
"type": "boolean"
},
"disable_first_sync": {
"description": "This flag indicates whether the initial synchronization of the account with figo Connect will be skipped.",
"example": false,
"type": "boolean"
},
"sync_tasks": {
"description": "List of additional information to be fetched from the bank.",
"example": [
"transactions"
],
"type": "array",
"default": "transactions",
"items": {
"$ref": "#/definitions/SynchronizationType"
}
},
"redirect_uri": {
"description": "The user will be redirected to this URI after completing the account setup. The value defaults to the first redirect URI configured for the client.",
"example": "https://figo.me/test",
"type": "string"
}
}
},
"SynchronizationType": {
"title": "Synchronization Type",
"example": "transactions",
"type": "string",
"enum": [
"transactions",
"standingOrders",
"categorizations"
]
},
"EncryptedCredentals": {
"title": "Encrypted Credentals",
"type": "object",
"properties": {
"type": {
"description": "",
"example": "encrypted",
"type": "string",
"default": "encrypted"
},
"value": {
"description": "Encrypted credentials",
"example": "eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZDQkMtSFM1MTIifQ.aq_baOMnl2WPI7LfDQ3E7zv6X6lWegDgwCwqNgLx8fK752mM56Q_WZ5Z7oob5Nl6GduF9nYL-ew6ijg6wkxtqplWZtEX-G_CQSjc2xTVZtEfFixL2_J4j4eHnioH5qsXaCZmxd0ZekEXNCRS9jsw6XI-5ztccRvZKkARhlP_BH_j0phosJotxwSleIQIVZg_1baw-KHNoL7uIJWNj10x5hqFVjg2tLPBzkndzVZaIAMCZ1W1W736sWS0UCMYcPjzaDEPn4K2dhOW9d_1ZPobPuqH0hVf6SVTRCoAv-FG6t18YTOdp3GQcYML7A9NSLtcnestPyh_VFZnoDVr3xSqPw.kJqefpeucfJKM1y3ONYllg._GbDGpxL5xVhErPz8HTZhbdUQru22DHQD4Dmm9tLos4.YEj_gkdNb1pdJxAfEr3q5KcXPoBkYCX0n9qZZQcFJN0",
"type": "string"
}
}
},
"EncryptedAccountSetupRequest": {
"title": "Encrypted Account Setup Request",
"allOf": [
{
"$ref": "#/definitions/AccountSetupRequest"
},
{
"type": "object",
"properties": {
"credentials": {
"$ref": "#/definitions/EncryptedCredentals"
}
}
}
]
},
"Security": {
"title": "Security",
"example": {
"security_id": "S1.2",
"account_id": "A1.4",
"name": "Mustermann AG, Vorzugsaktien",
"market": "XASX",
"isin": "DE0123456790",
"wkn": "123457",
"currency": "EUR",
"quantity": 100,
"amount": 5460,
"amount_original_currency": 0,
"exchange_rate": 0,
"price": 54.6,
"price_currency": "EUR",
"purchase_price": 42.75,
"purchase_price_currency": "EUR",
"visited": "false",
"trade_timestamp": "1999-05-28T22:59:59Z",
"creation_timestamp": "2014-07-01T22:00:00Z",
"modification_timestamp": "2016-08-10T04:57:06Z"
},
"type": "object",
"properties": {
"security_id": {
"description": "Internal figo Connect security ID",
"example": "S1.2",
"type": "string"
},
"account_id": {
"description": "Internal figo Connect account ID the security is held on",
"example": "A1.4",
"type": "string"
},
"name": {
"description": "Name of the security",
"example": "Mustermann AG, Vorzugsaktien",
"type": "string"
},
"market": {
"description": "Market the security is traded on",
"example": "XASX",
"type": "string"
},
"isin": {
"description": "String International Securities Identification Number",
"example": "DE0123456790",
"type": "string"
},
"wkn": {
"description": "Wertpapierkennnummer (WKN), if available",
"example": "123457",
"type": "string"
},
"currency": {
"description": "Account currency, three-character code (ISO 4217:2015)",
"example": "EUR",
"type": "string"
},
"quantity": {
"description": "Quantity in stock",
"example": 100,
"type": "number",
"format": "double"
},
"amount": {
"description": "Monetary value in account currency",
"example": 5460,
"type": "number",
"format": "double"
},
"amount_original_currency": {
"description": "Monetary value in trading currency",
"example": 0,
"type": "number",
"format": "double"
},
"exchange_rate": {
"description": "Exchange rate between trading and account currency",
"example": 0,
"type": "number",
"format": "double"
},
"price": {
"description": "Trading price",
"example": 54.6,
"type": "number",
"format": "double"
},
"price_currency": {
"description": "Currency of trading price",
"example": "EUR",
"type": "string"
},
"purchase_price": {
"description": "Purchase price",
"example": 42.75,
"type": "number",
"format": "double"
},
"purchase_price_currency": {
"description": "Currency of purchase price",
"example": "EUR",
"type": "string"
},
"visited": {
"description": "**DEPRECATED**",
"example": "false",
"type": "string"
},
"trade_timestamp": {
"description": "Trading timestamp",
"example": "5/28/1999 10:59:59 PM",
"type": "string"
},
"creation_timestamp": {
"description": "Internal creation timestamp on the figo Connect server",
"example": "7/1/2014 10:00:00 PM",
"type": "string"
},
"modification_timestamp": {
"description": "Internal modification timestamp on the figo Connect server",
"example": "8/10/2016 4:57:06 AM",
"type": "string"
}
}
},
"SecuritiesResponse": {
"title": "Securities Response",
"example": {
"deleted": [],
"status": {
"code": 1,
"sync_timestamp": "2017-02-16T18:27:25Z",
"success_timestamp": "2017-02-16T18:27:25Z"
},
"securities": [
{
"security_id": "S1.2",
"account_id": "A1.4",
"name": "Mustermann AG, Vorzugsaktien",
"market": "XASX",
"isin": "DE0123456790",
"wkn": "123457",
"currency": "EUR",
"quantity": 100,
"amount": 5460,
"amount_original_currency": 0,
"exchange_rate": 0,
"price": 54.6,
"price_currency": "EUR",
"purchase_price": 42.75,
"purchase_price_currency": "EUR",
"visited": "false",
"trade_timestamp": "1999-05-28T22:59:59Z",
"creation_timestamp": "2014-07-01T22:00:00Z",
"modification_timestamp": "2016-08-10T04:57:06Z"
}
]
},
"type": "object",
"properties": {
"deleted": {
"description": "List of deleted securities IDs",
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"$ref": "#/definitions/SynchronizationStatus"
},
"securities": {
"description": "List of securities for this user",
"type": "array",
"items": {
"$ref": "#/definitions/Security"
}
}
}
},
"Owner": {
"title": "Owner",
"type": "object",
"properties": {
"first_name": {
"description": "First name of the cardholder",
"example": "Max",
"type": "string"
},
"last_name": {
"description": "Last name of the cardholder",
"example": "Mustermann",
"type": "string"
},
"middle_name": {
"description": "Middle name of the cardholder",
"example": "Emil",
"type": "string"
},
"email": {
"description": "Account owner e-mail address",
"example": "[email protected]",
"type": "string"
},
"street": {
"description": "Street address of the account owner",
"example": "Mustermannstr.",
"type": "string"
},
"city": {
"description": "City of the account owner",
"example": "Musterhausen",
"type": "string"
},
"zip": {
"description": "ZIP code of the account owner",
"example": "12345",
"type": "string"
},
"state": {
"description": "The state of the address",
"example": "Mustersachsen",
"type": "string"
},
"country": {
"description": "Country of the account owner",
"example": "Musterland",
"type": "string"
},
"birthdate": {
"description": "Birthdate of the account owner",
"example": "1990",
"type": "string"
},
"locale": {
"description": "Two-letter locale code",
"example": "de",
"type": "string"
},
"language": {
"description": "Two-letter code of preferred language (ISO 639-1:2002)",
"example": "de",
"type": "string"
}
}
},
"User": {
"title": "User",
"type": "object",
"properties": {
"email": {
"description": "E-mail address used for registration / figo account username",
"example": "[email protected]",
"type": "string"
},
"send_newsletter": {
"description": "**DEPRECATED**",
"example": false,
"type": "boolean"
},
"language": {
"description": "Two-letter code of preferred language (ISO 639-1:2002)",
"example": "de",
"type": "string"
}
},
"required": [
"email"
]
},
"UserRequest": {
"title": "User Request",
"allOf": [
{
"$ref": "#/definitions/User"
},
{
"example": {
"email": "[email protected]",
"send_newsletter": false,
"language": "de",
"name": "Max Mustermann",
"password": "secret password",
"affiliate_user": "[email protected]",
"affiliate_client_id": "CDrfwadf****"
},
"type": "object",
"properties": {
"name": {
"description": "Full name of the figo account user",
"example": "Max Mustermann",
"type": "string"
},
"password": {
"description": "Password of the figo Connect user",
"example": "secret password",
"type": "string"
},
"affiliate_user": {
"description": "Base64 encoded e-mail address of the user promoting the new user",
"example": "[email protected]",
"type": "string"
},
"affiliate_client_id": {
"description": "Client ID of the figo Connect partner from which the user was redirected to the registration form",
"example": "CDrfwadf****",
"type": "string"
}
},
"required": [
"name",
"password"
]
}
]
},
"UserModifyRequest": {
"title": "User modify Request",
"allOf": [
{
"$ref": "#/definitions/User"
},
{
"example": {
"email": "[email protected]"
},
"type": "object",
"properties": {
"name": {
"description": "Full name of the figo account user",
"example": "Max Mustermann",
"type": "string"
},
"address": {
"$ref": "#/definitions/Address"
},
"password": {
"description": "Current figo account password",
"example": "demo1234",
"type": "string"
},
"new_password": {
"description": "New figo account password. If this parameter is set, then the parameter `password` must be set, too.",
"example": "1234demo",
"type": "string"
},
"paymill_token": {
"description": "**DEPRECATED**",
"type": "string"
}
}
}
]
},
"Address": {
"title": "Address",
"type": "object",
"properties": {
"street": {
"description": "",
"example": "Ritterstr. 2-3",
"type": "string"
},
"street2": {
"description": "",
"type": "string"
},
"postal_code": {
"description": "",
"example": "10969",
"type": "string"
},
"city": {
"description": "",
"example": "Berlin",
"type": "string"
},
"country": {
"description": "",
"example": "Germany",
"type": "string"
},
"company": {
"description": "",
"example": "figo",
"type": "string"
},
"bill": {
"description": "**DEPRECATED**",
"example": false,
"type": "boolean"
},
"vat": {
"description": "**DEPRECATED**",
"type": "string"
}
}
},
"UserResponse": {
"title": "User Response",
"allOf": [
{
"$ref": "#/definitions/User"
},
{
"example": {
"email": "[email protected]",
"send_newsletter": false,
"language": "de",
"user_id": "U1",
"name": "Max Mustermann",
"join_date": "2017-01-03T00:00:00Z",
"verified_email": true,
"address": {
"street": "Ritterstr. 2-3",
"street2": "",
"postal_code": "10969",
"city": "Berlin",
"country": "Germany",
"company": "figo",
"bill": false,
"vat": ""
},
"force_reset": false,
"premium": "DEPRECATED",
"premium_subscription": "DEPRECATED",
"premium_expires_on": "DEPRECATED"
},
"type": "object",
"properties": {
"user_id": {
"description": "Internal figo Connect user id",
"example": "U1",
"type": "string"
},
"name": {
"description": "Full name of the figo account user",
"example": "Max Mustermann",
"type": "string"
},
"join_date": {
"description": "Timestamp of figo account registration",
"example": "1/3/2017 12:00:00 AM",
"type": "string"
},
"verified_email": {
"description": "This flag indicates whether the user's e-mail has been verified.",
"example": true,
"type": "boolean"
},
"address": {
"$ref": "#/definitions/Address"
},
"force_reset": {
"description": "**DEPRECATED**",
"example": false,
"type": "boolean"
},
"premium": {
"description": "**DEPRECATED**",
"example": "DEPRECATED",
"type": "string"
},
"premium_subscription": {
"description": "**DEPRECATED**",
"example": "DEPRECATED",
"type": "string"
},
"premium_expires_on": {
"description": "**DEPRECATED**",
"example": "DEPRECATED",
"type": "string"
}
}
}
]
},
"TransactionResponse": {
"title": "Transaction Response",
"example": {
"deleted": [],
"status": {
"code": 1,
"sync_timestamp": "2017-02-16T18:27:25Z",
"success_timestamp": "2017-02-16T18:27:25Z"
},
"statistics": {
"deposit_max": 1612.12,
"deposit_sum": 61284.51,
"expense_max": 599.95,
"expense_sum": 12589.19
},
"transactions": [
{
"value_date": "2017-01-03T00:00:00Z",
"bank_name": "Demobank",
"account_id": "A1.1",
"bank_code": "90090042",
"currency": "EUR",
"purpose": "A2432122990100992929929",
"transaction_code": 4,
"booked": true,
"booking_date": "2017-01-03T00:00:00Z",
"name": "Amazing Services Europe",
"creation_timestamp": "2017-01-04T14:44:16Z",
"amount": -19.9,
"account_number": "4711951501",
"iban": "DE67900900424711951501",
"bic": "DEMODE01",
"visited": false,
"modification_timestamp": "2017-01-04T14:44:16Z",
"type": "Direct debit",
"transaction_id": "T1.1715",
"booking_text": "Lastschrift",
"categories": [
{
"id": 162,
"parent_id": 150,
"name": "Spende"
}
],
"additional_info": {
"gross_amount": 0,
"fee": 0
}
}
]
},
"type": "object",
"properties": {
"deleted": {
"description": "List of deleted transaction IDs",
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"$ref": "#/definitions/SynchronizationStatus"
},
"statistics": {
"$ref": "#/definitions/Statistics"
},
"transactions": {
"description": "List of transactions for this user",
"type": "array",
"items": {
"$ref": "#/definitions/Transaction"
}
}
}
},
"Statistics": {
"title": "Statistics",
"type": "object",
"properties": {
"deposit_max": {
"description": "Maximum deposit amount",
"example": 1612.12,
"type": "number",
"format": "double"
},
"deposit_sum": {
"description": "Sum of deposits",
"example": 61284.51,
"type": "number",
"format": "double"
},
"expense_max": {
"description": "Maximum expense amount",
"example": 599.95,
"type": "number",
"format": "double"
},
"expense_sum": {
"description": "Sum of expenses",
"example": 12589.19,
"type": "number",
"format": "double"
}
}
},
"Transaction": {
"title": "Transaction",
"example": {
"value_date": "2017-01-03T00:00:00Z",
"bank_name": "Demobank",
"account_id": "A1.1",
"bank_code": "90090042",
"currency": "EUR",
"purpose": "A2432122990100992929929",
"transaction_code": 4,
"booked": true,
"booking_date": "2017-01-03T00:00:00Z",
"name": "Amazing Services Europe",
"creation_timestamp": "2017-01-04T14:44:16Z",
"amount": -19.9,
"account_number": "4711951501",
"iban": "DE67900900424711951501",
"bic": "DEMODE01",
"visited": false,
"modification_timestamp": "2017-01-04T14:44:16Z",
"type": "Direct debit",
"transaction_id": "T1.1715",
"booking_text": "Lastschrift",
"categories": [
{
"id": 162,
"parent_id": 150,
"name": "Spende"
}
],
"additional_info": {
"gross_amount": 0,
"fee": 0
}
},
"type": "object",
"properties": {
"account_id": {
"description": "Internal figo Connect account ID",
"example": "A1.1",
"type": "string"
},
"transaction_id": {
"description": "Internal figo Connect transaction ID",
"example": "T1.1715",
"type": "string"
},
"value_date": {
"description": "Value date",
"example": "1/3/2017 12:00:00 AM",
"type": "string"
},
"bank_name": {
"description": "Bank name of originator or recipient.",
"example": "Demobank",
"type": "string"
},
"bank_code": {
"description": "Bank code of originator or recipient. This field might be empty if the transaction has no bank code, e.g. interest transactions.",
"example": "90090042",
"type": "string"
},
"currency": {
"description": "Three-character currency code (ISO 4217:2015)",
"example": "EUR",
"type": "string"
},
"purpose": {
"description": "Purpose text. This field might be empty if the transaction has no purpose.",
"example": "A2432122990100992929929",
"type": "string"
},
"end_to_end_reference": {
"description": "HBCI: A reference that can be filled by the payer of transaction, e.g. with your customer number",
"type": "string"
},
"customer_reference": {
"description": "HBCI: Customer reference, e.g. your insurance number",
"type": "string"
},
"mandate_reference": {
"description": "HBCI: SEPA mandate reference (for SEPA direct debits), must be unique in combination with `creditor_id`",
"type": "string"
},
"creditor_id": {
"description": "HBCI: SEPA creditor identifier (for SEPA direct debits), must be unique in combination with `mandate_reference`",
"type": "string"
},
"prima_nota_number": {
"description": "HBCI: Bank-internal number to group and identify transactions",
"type": "string"
},
"booking_key": {
"description": "HBCI: A key that indicates the purpose of a transaction, also called \"posting key\"/\"Buchungsschlüssel\".",
"type": "string"
},
"text_key_addition": {
"description": "HBCI: Additional key to already existing `transaction_key` field, also called \"business transaction key\"/\"Textschlüsselergänzng\". It helps to find a finer purpose of a transaction.",
"type": "string"
},
"sepa_purpose_code": {
"description": "HBCI: Additional key to already existing `transaction_key` field, also called \"business transaction key\"/\"Textschlüsselergänzng\". It helps to find a finer purpose of a transaction.",
"type": "string"
},
"sepa_remittance_info": {
"description": "HBCI: Pure purpose text without other SEPA fields.",
"type": "string"
},
"transaction_code": {
"description": "Transaction type as [DTA Tx Key](https://www.hettwer-beratung.de/sepa-spezialwissen/sepa-technische-anforderungen/sepa-purpose-codes-vs-dta-textschl%C3%BCssel#cc-m-header-6186936181) code.",
"example": 4,
"type": "number",
"format": "double"
},
"booked": {
"description": "Some banks provide information on transactions which have not yet been executed. These transactions are called pending, and the flag is set to `false`. As soon as the bank reports the execution of these transactions, this flag changes to `true`. If such a pending transaction fails to execute, it is automatically removed from the transaction list.",
"example": true,
"type": "boolean"
},
"booking_date": {
"description": "Booking date",
"example": "1/3/2017 12:00:00 AM",
"type": "string"
},
"name": {
"description": "Name of originator or recipient",
"example": "Amazing Services Europe",
"type": "string"
},
"creation_timestamp": {
"description": "Internal creation timestamp on the figo Connect server",
"example": "1/4/2017 2:44:16 PM",
"type": "string"
},
"amount": {
"description": "Transaction amount",
"example": -19.9,
"type": "number",
"format": "double"
},
"account_number": {
"description": "Account number of originator or recipient. This field might be empty if the transaction has no account number, e.g. interest transactions.",
"example": "4711951501",
"type": "string"
},
"iban": {
"description": "IBAN of payer",
"example": "DE67900900424711951501",
"type": "string"
},
"bic": {
"description": "BIC of payer",
"example": "DEMODE01",
"type": "string"
},
"visited": {
"description": "**DEPRECATED**",
"example": false,
"type": "boolean"
},
"modification_timestamp": {
"description": "Internal modification timestamp on the figo Connect server",
"example": "1/4/2017 2:44:16 PM",
"type": "string"
},
"type": {
"$ref": "#/definitions/TransactionType"
},
"booking_text": {
"description": "Booking text. This field might be empty if the transaction has no booking text.",
"example": "Lastschrift",
"type": "string"
},
"categories": {
"description": "List of categories for this transaction. Categories are stored in a tree, and the figo API returns a path from the root to the leaf. That is, the list of category objects is ordered from general to specific. Categories are only returned to users with scope at least `categories=ro`.",
"type": "array",
"items": {
"$ref": "#/definitions/Category"
}
},
"additional_info": {
"$ref": "#/definitions/AdditionalInfo"
}
},
"required": [
"account_id",
"transaction_id"
]
},
"TransactionType": {
"title": "Transaction Type",
"example": "Transfer",
"type": "string",
"enum": [
"Transfer",
"Standing order",
"Direct debit",
"Salary or rent",
"GeldKarte",
"Charges or interest"
]
},
"Category": {
"title": "Category",
"type": "object",
"properties": {
"id": {
"description": "ID of category",
"example": 162,
"type": "number",
"format": "double"
},
"parent_id": {
"description": "ID of parent category",
"example": 150,
"type": "number",
"format": "double"
},
"name": {
"description": "Name of category",
"example": "Spende",
"type": "string"
}
}
},
"AdditionalInfo": {
"title": "Additional info",
"type": "object",
"properties": {
"gross_amount": {
"description": "Gross amount of the transaction",
"type": "number",
"format": "double"
},
"fee": {
"description": "Possible payed fees",
"type": "number",
"format": "double"
},
"referene_party_creditor": {
"description": "HBCI: Deviating receiver of the transfer",
"type": "string"
},
"reference_party_debitor": {
"description": "HBCI: Deviating sender of the transfer",
"type": "string"
},
"bank_reference": {
"description": "HBCI: Bank reference or instruction ID, can be filled by the payers bank",
"type": "string"
},
"debitor_id": {
"description": "HBCI: An identifier of the payer",
"type": "string"
},
"compensation_amount": {
"description": "HBCI: Sum of reimbursement of out-of-pocket expenses plus processing fee in case of a national return / refund debit as well as an optional interest equalization (for SEPA direct debit returns)",
"type": "string"
},
"original_amount": {
"description": "HBCI: Amount of the original direct debit (for SEPA direct debit returns)",
"type": "string"
}
}
},
"TaskRequest": {
"title": "Task Request",
"example": {
"continue": false
},
"type": "object",
"properties": {
"continue": {
"description": "This flag signals to continue after an error condition or to skip a PIN or challenge-response entry",
"example": false,
"type": "boolean"
}
}
},
"SubmitPin": {
"title": "Submit PIN",
"allOf": [
{
"$ref": "#/definitions/TaskRequest"
},
{
"type": "object",
"properties": {
"pin": {
"description": "PIN/Password to the user's online banking account",
"example": "secretpin123",
"type": "string"
},
"save_pin": {
"description": "This flag indicates whether the given PIN should be saved on the figo Connect server",
"example": true,
"type": "boolean"
}
}
}
]
},
"SubmitEncryptedPin": {
"title": "Submit Encrypted PIN",
"allOf": [
{
"$ref": "#/definitions/TaskRequest"
},
{
"type": "object",
"properties": {
"pin": {
"$ref": "#/definitions/Pin"
}
}
}
]
},
"Pin": {
"title": "pin",
"type": "object",
"properties": {
"type": {
"description": "",
"example": "encrypted",
"type": "string",
"default": "encrypted"
},
"value": {
"description": "Encrypted PIN",
"example": "eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZDQkMtSFM1MTIifQ.EdCMnSp7M_0UQEe5mPGuQtNf3hcaPcjQ3tbmfEkjV5wa-6mZMnhCD6Zq0U0anft4iuaBLQha-EAflD-7D2Wl6MfZeFYka_TC9flrV-av-cxDvzP2r4Cj_YedmBj3EOLawz4YRo_s65dX7hvwsdd--uOxXbdx-UXYLvDxykh8E1M1mfjdLFwpeGgVILPhJeURMglWttovrB22cEV8UASNHV7dDfvyqKIfYfecxCqKvr-D6bnyZf6w-Jp49GLNCXz9e6ZgDD521Z_Ci_-bBEwbQdIUkNLuGtFLKUuiv1oMinBzwOrAlREL1zOnem06olXpcSCZE_Esto80ISWHOW0k3w.-0imErCMK7ahidc0d0ivwg.K4_6p6qT6W7jILdLjeZMww.slCawx18gWmPRCSPWOePC46OcweOve_B7DA0Kj6Wkdk",
"type": "string"
}
}
},
"SubmitTan": {
"title": "Submit TAN",
"allOf": [
{
"$ref": "#/definitions/TaskRequest"
},
{
"type": "object",
"properties": {
"response": {
"description": "Response to TAN challenge",
"example": "11111",
"type": "string"
}
}
}
]
},
"SubmitEncryptedTan": {
"title": "Submit Encrypted TAN",
"allOf": [
{
"$ref": "#/definitions/TaskRequest"
},
{
"type": "object",
"properties": {
"response": {
"$ref": "#/definitions/Response"
}
}
}
]
},
"Response": {
"title": "response",
"type": "object",
"properties": {
"type": {
"description": "",
"example": "encrypted",
"type": "string",
"default": "encrypted"
},
"value": {
"description": "Encrypted TAN",
"example": "eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZDQkMtSFM1MTIifQ.P_IxB6UUAIOmhUnGx2NynW7CXyqKEaRAd2iCUVgJLGEI66qW8QcM6X0uB-RskSvnOl8noD5RlURbk7Eha8EmqGCGe0TdteYz2cs69V2vs8C9bcTGPTSumAxBsXsYm2Nqlv_7HXZyg5W8lJRx3QK3nAg3S8fuct5TfuxHqbi4o5Zw296AERgO1BIIaOtfO8YrGFIpuzvNMRrUefWIzudV6yIjhsMkKtMywXqR4bQPMkc46NEU6SWngzQT8jYENohPZ5NM6KU213KslfSAKo9rC4hXRjklzPaGGVYVjzw7VL62ueCUOPBJ_dLMWWm9sqF-Pg2TGJNnp8Tvxs0uDE8RJg.9PPpfzW8JKDtm2bRKm4kyw.jiRUmCt44jliQgJq1iKTJA.jXNibBVsqwEnB-AqKTgvy1hVU87x8srAGOvnhujFpiE",
"type": "string"
}
}
},
"TaskResponse": {
"title": "Task Response",
"example": {
"account_id": "A1.1",
"message": "Connecting to server...",
"is_waiting_for_pin": false,
"is_waiting_for_response": false,
"is_erroneous": false,
"is_ended": false,
"standing_order_id": "SO1.1"
},
"type": "object",
"properties": {
"account_id": {
"description": "Internal figo Connect account id",
"example": "A1.1",
"type": "string"
},
"message": {
"description": "Status message or error message for currently processed account",
"example": "Connecting to server...",
"type": "string"
},
"is_waiting_for_pin": {
"description": "The figo Connect server waits for a PIN.",
"type": "boolean"
},
"is_waiting_for_response": {
"description": "The figo Connect server waits for a response to the parameter `challenge`.",
"type": "boolean"
},
"is_erroneous": {
"description": "An error occurred.",
"type": "boolean"
},
"is_ended": {
"description": "Communication with the bank server has been completed.",
"type": "boolean"
},
"challenge": {
"description": "This object provides all information if a TAN is needed for further processing",
"type": "object"
},
"standing_order_id": {
"description": "This field is only set to the respective ID when deleting a standing order.",
"example": "SO1.1",
"type": "string"
}
}
},
"TaskResponseWithError": {
"title": "Task Response with Error",
"allOf": [
{
"$ref": "#/definitions/TaskResponse"
},
{
"type": "object",
"properties": {
"error": {
"$ref": "#/definitions/TaskProcessingErrorPayload"
}
}
}
]
},
"TaskProcessingErrorPayload": {
"title": "Task Processing Error Payload",
"type": "object",
"properties": {
"code": {
"description": "[Error code](#error-handling)",
"example": 10000,
"type": "number",
"format": "double"
},
"name": {
"description": "Error name",
"example": "Zugangdaten sind inkorrekt",
"type": "string"
},
"message": {
"description": "Error response of the bank",
"example": "Bitte geben Sie ihre korrekten Online-Banking Zugangsdaten ein.",
"type": "string"
},
"description": {
"description": "Error description",
"example": "Die Anmeldung zum Online-Zugang Ihrer Bank ist fehlgeschlagen. Bitte überprüfen Sie Ihre Benutzerkennung.",
"type": "string"
},
"group": {
"description": "[Error group](#error-handling)",
"example": "user",
"type": "string"
}
}
},
"TaskToken": {
"title": "Task Token",
"example": {
"task_token": "YmB-BtvbWufLnbwgAVfP7XfLatwhrtu0sATfnZNR7LGP-aLXiZ7BKzLdZI--EqEPnwh_h6mCxToLEBhtA7LVd4uM4gTcZG8F6UJs47g6kWJ0"
},
"type": "object",
"properties": {
"task_token": {
"description": "Token to monitor a task",
"example": "YmB-BtvbWufLnbwgAVfP7XfLatwhrtu0sATfnZNR7LGP-aLXiZ7BKzLdZI--EqEPnwh_h6mCxToLEBhtA7LVd4uM4gTcZG8F6UJs47g6kWJ0",
"type": "string"
}
}
},
"Synchronization": {
"title": "Synchronization",
"type": "object",
"properties": {
"state": {
"description": "Arbitrary string to maintain state between this request and the callback, e.g. it might contain a session ID from your application. The value should also contain a random component, which your application checks to prevent cross-site request forgery.",
"example": "fP7XfLatwhrtu0sA",
"type": "string"
},
"redirect_uri": {
"description": "At the end of the synchronization process a response will be sent to this callback URL. The value defaults to the first redirect URI configured for the client.",
"example": "http://figo.me/test",
"type": "string"
},
"disable_notifications": {
"description": "This flag indicates whether notifications should be sent to your application. Since your application will be notified by the callback URL anyway, you might want to disable any additional notifications.",
"example": false,
"type": "boolean"
},
"if_not_synced_since": {
"description": "If this parameter is set, only those accounts will be synchronized, which have not been synchronized within the specified number of minutes.",
"example": 2,
"type": "number",
"format": "double"
},
"auto_continue": {
"description": "Automatically acknowledge and ignore any errors.",
"example": false,
"type": "boolean"
},
"account_ids": {
"description": "Only sync the accounts with these IDs.",
"type": "array",
"items": {
"type": "string"
}
},
"sync_tasks": {
"description": "List of additional information to be fetched from the bank",
"example": [
"transactions"
],
"type": "array",
"default": "transactions",
"items": {
"$ref": "#/definitions/SynchronizationType"
}
}
},
"required": [
"state"
]
},
"Error": {
"title": "Error",
"type": "object",
"properties": {
"error": {
"$ref": "#/definitions/ErrorPayload"
},
"status": {
"description": "HTTP status code",
"example": 404,
"type": "number",
"format": "double"
}
}
},
"ErrorPayload": {
"title": "Error Payload",
"type": "object",
"properties": {
"code": {
"description": "Error code",
"example": 90000,
"type": "number",
"format": "double"
},
"name": {
"description": "Error name",
"example": "HTTPNotFound",
"type": "string"
},
"message": {
"description": "Error message string",
"example": "Not Found",
"type": "string"
},
"description": {
"description": "Error description",
"type": "string"
},
"group": {
"description": "Identifying thee source of the error",
"type": "string"
},
"data": {
"description": "Any additional data",
"type": "object"
}
}
},
"ResponseType": {
"title": "response_type",
"example": "code",
"type": "string",
"enum": [
"code"
]
},
"CreateUserResponse": {
"title": "Create User response",
"example": {
"recovery_password": "abcd-efgh-ijkl-mnop"
},
"type": "object",
"properties": {
"recovery_password": {
"description": "Auto-generated recovery password",
"example": "abcd-efgh-ijkl-mnop",
"type": "string"
}
}
},
"DeleteUserRequest": {
"title": "Delete User request",
"example": {},
"type": "object",
"properties": {
"reason": {
"description": "User's reason to cancel the subscription",
"type": "string"
}
}
},
"ReadCompleteCatalogResponse": {
"title": "Read complete Catalog response",
"type": "object",
"properties": {
"banks": {
"description": "List of supported banks",
"type": "array",
"items": {
"$ref": "#/definitions/BankListitem"
}
},
"services": {
"description": "List of supported payment services",
"type": "array",
"items": {
"$ref": "#/definitions/ServiceListitem"
}
}
}
},
"ReadBanksCatalogByCountryResponse": {
"title": "Read banks Catalog by country response",
"type": "object",
"properties": {
"banks": {
"description": "List of supported banks",
"type": "array",
"items": {
"$ref": "#/definitions/BankListitem"
}
}
}
},
"ReadServicesCatalogByCountryResponse": {
"title": "Read services Catalog by country response",
"type": "object",
"properties": {
"services": {
"description": "List of supported payment services",
"type": "array",
"items": {
"$ref": "#/definitions/ServiceListitem"
}
}
}
},
"CatalogCategory": {
"title": "catalog_category",
"example": "banks",
"type": "string",
"enum": [
"banks",
"services"
]
},
"ConnectToBankAccountsResponse": {
"title": "Connect to Bank Accounts response",
"example": {
"task_token": "YmB-BtvbWufLnbwgAVfP7XfLatwhrtu0sATfnZNR7LGP-aLXiZ7BKzLdZI--EqEPnwh_h6mCxToLEBhtA7LVd4uM4gTcZG8F6UJs47g6kWJ0"
},
"type": "object",
"properties": {
"task_token": {
"description": "Token to monitor the setup process. Use this to call `/task/progress`.",
"example": "YmB-BtvbWufLnbwgAVfP7XfLatwhrtu0sATfnZNR7LGP-aLXiZ7BKzLdZI--EqEPnwh_h6mCxToLEBhtA7LVd4uM4gTcZG8F6UJs47g6kWJ0",
"type": "string"
}
}
},
"CreateSynchronizationTaskResponse": {
"title": "Create Synchronization Task response",
"example": {
"task_token": "YmB-BtvbWufLnbwgAVfP7XfLatwhrtu0sATfnZNR7LGP-aLXiZ7BKzLdZI--EqEPnwh_h6mCxToLEBhtA7LVd4uM4gTcZG8F6UJs47g6kWJ0"
},
"type": "object",
"properties": {
"task_token": {
"description": "Token to monitor the setup process. Use this to call `/task/progress`.",
"example": "YmB-BtvbWufLnbwgAVfP7XfLatwhrtu0sATfnZNR7LGP-aLXiZ7BKzLdZI--EqEPnwh_h6mCxToLEBhtA7LVd4uM4gTcZG8F6UJs47g6kWJ0",
"type": "string"
}
}
},
"SinceType": {
"title": "since_type",
"example": "booked",
"type": "string",
"enum": [
"booked",
"created",
"modified"
]
},
"Sort": {
"title": "sort",
"example": "asc",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"ReadPaymentsResponse": {
"title": "Read Payments response",
"type": "object",
"properties": {
"payments": {
"description": "List of payments",
"type": "array",
"items": {
"$ref": "#/definitions/Payment"
}
}
}
},
"ReadPaymentsByAccountResponse": {
"title": "Read Payments by Account response",
"type": "object",
"properties": {
"payments": {
"description": "List of payments for given account",
"type": "array",
"items": {
"$ref": "#/definitions/Payment"
}
}
}
},
"SubmitAPaymentToBankServerResponse": {
"title": "Submit a Payment to Bank Server response",
"example": {
"task_token": "YmB-BtvbWufLnbwgAVfP7XfLatwhrtu0sATfnZNR7LGP-aLXiZ7BKzLdZI--EqEPnwh_h6mCxToLEBhtA7LVd4uM4gTcZG8F6UJs47g6kWJ0"
},
"type": "object",
"properties": {
"task_token": {
"description": "Token to monitor the submission process. Use this to call `/task/progress`.",
"example": "YmB-BtvbWufLnbwgAVfP7XfLatwhrtu0sATfnZNR7LGP-aLXiZ7BKzLdZI--EqEPnwh_h6mCxToLEBhtA7LVd4uM4gTcZG8F6UJs47g6kWJ0",
"type": "string"
}
}
},
"SinceType94": {
"title": "since_type94",
"example": "traded",
"type": "string",
"enum": [
"traded",
"created",
"modified"
]
},
"ReadNotificationsResponse": {
"title": "Read Notifications response",
"example": {
"notifications": [
{
"observe_key": "/rest/transactions",
"notify_uri": "http://figo.me/test",
"state": "qwe",
"notification_id": "N1.8324"
}
]
},
"type": "object",
"properties": {
"notifications": {
"description": "List of notifications",
"type": "array",
"items": {
"$ref": "#/definitions/Notification"
}
}
}
}
}
}
converted.json
Sign In
Displaying converted.json.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment