{"swagger":"2.0","info":{"title":"Open Bank Project API","description":"An Open Source API for Banks. (c) TESOBE GmbH. 2011 - 2025. Licensed under the AGPL and commercial licences.","contact":{"name":"TESOBE GmbH. / Open Bank Project","url":"https://openbankproject.com","email":"contact@tesobe.com"},"version":"v4.0.0"},"host":"obp-api.intercam.com.mx","basePath":"/","schemes":["http","https"],"securityDefinitions":{"directLogin":{"type":"apiKey","description":"https://github.com/OpenBankProject/OBP-API/wiki/Direct-Login","in":"header","name":"Authorization"},"gatewayLogin":{"type":"apiKey","description":"https://github.com/OpenBankProject/OBP-API/wiki/Gateway-Login","in":"header","name":"Authorization"}},"security":[{"directLogin":[],"gatewayLogin":[]}],"paths":{"/obp/v4.0.0/banks":{"get":{"tags":["Bank","Account Information Service (AIS)","PSD2"],"summary":"Get Banks","security":[{"directLogin":[],"gatewayLogin":[]}],"description":"<p>Get banks on this API instance<br />Returns a list of banks supported on this server:</p><ul><li>ID used as parameter in URLs</li><li>Short and full name of bank</li><li>Logo URL</li><li>Website</li></ul><p>Authentication is Optional</p>","operationId":"getBanks","parameters":[],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/BanksJson400"}},"400":{"description":"Error","schema":{"$ref":"#/definitions/ErrorUnknownError"}}}}},"/obp/v4.0.0/banks/{BANK_ID}/resource-docs/{API_VERSION}/obp":{"get":{"tags":["Documentation","API"],"summary":"Get Bank Level Dynamic Resource Docs.","security":[{"directLogin":[],"gatewayLogin":[]}],"description":"<p>Get documentation about the RESTful resources on this server including example bodies for POST and PUT requests.</p><p>This is the native data format used to document OBP endpoints. Each endpoint has a Resource Doc (a Scala case class) defined in the source code.</p><p>This endpoint is used by OBP API Explorer to display and work with the API documentation.</p><p>Most (but not all) fields are also available in swagger format. (The Swagger endpoint is built from Resource Docs.)</p><p>API_VERSION is the version you want documentation about e.g. v3.0.0</p><p>You may filter this endpoint with tags parameter e.g. ?tags=Account,Bank</p><p>You may filter this endpoint with functions parameter e.g. ?functions=enableDisableConsumers,getConnectorMetrics</p><p>For possible function values, see implemented_by.function in the JSON returned by this endpoint or the OBP source code or the footer of the API Explorer which produces a comma separated list of functions that reflect the server or filtering by API Explorer based on tags etc.</p><p>You may filter this endpoint using the 'content' url parameter, e.g. ?content=dynamic<br />if set content=dynamic, only show dynamic endpoints, if content=static, only show the static endpoints. if omit this parameter, we will show all the endpoints.</p><p>You may need some other language resource docs, now we support i18n language tag , e.g. ?locale=zh_CN</p><p>You can filter with api-collection-id, but api-collection-id can not be used with others together. If api-collection-id is used in URL, it will ignore all other parameters.</p><p>You can easily pass the cache, use different value for cache-modifier, eg: ?cache-modifier= 123</p><p>See the Resource Doc endpoint for more information.</p><p>Following are more examples:<br /><a href=\"https://apisandbox.openbankproject.com/obp/v4.0.0/banks/BANK_ID/resource-docs/v4.0.0/obp\">https://apisandbox.openbankproject.com/obp/v4.0.0/banks/BANK_ID/resource-docs/v4.0.0/obp</a><br /><a href=\"https://apisandbox.openbankproject.com/obp/v4.0.0/banks/BANK_ID/resource-docs/v4.0.0/obp?tags=Account,Bank\">https://apisandbox.openbankproject.com/obp/v4.0.0/banks/BANK_ID/resource-docs/v4.0.0/obp?tags=Account,Bank</a><br /><a href=\"https://apisandbox.openbankproject.com/obp/v4.0.0/banks/BANK_ID/resource-docs/v4.0.0/obp?functions=getBanks,bankById\">https://apisandbox.openbankproject.com/obp/v4.0.0/banks/BANK_ID/resource-docs/v4.0.0/obp?functions=getBanks,bankById</a><br /><a href=\"https://apisandbox.openbankproject.com/obp/v4.0.0/banks/BANK_ID/resource-docs/v4.0.0/obp?locale=zh_CN\">https://apisandbox.openbankproject.com/obp/v4.0.0/banks/BANK_ID/resource-docs/v4.0.0/obp?locale=zh_CN</a><br /><a href=\"https://apisandbox.openbankproject.com/obp/v4.0.0/banks/BANK_ID/resource-docs/v4.0.0/obp?content=static,dynamic,all\">https://apisandbox.openbankproject.com/obp/v4.0.0/banks/BANK_ID/resource-docs/v4.0.0/obp?content=static,dynamic,all</a><br /><a href=\"https://apisandbox.openbankproject.com/obp/v4.0.0/banks/BANK_ID/resource-docs/v4.0.0/obp?api-collection-id=4e866c86-60c3-4268-a221-cb0bbf1ad221\">https://apisandbox.openbankproject.com/obp/v4.0.0/banks/BANK_ID/resource-docs/v4.0.0/obp?api-collection-id=4e866c86-60c3-4268-a221-cb0bbf1ad221</a><br /><a href=\"https://apisandbox.openbankproject.com/obp/v4.0.0/banks/BANK_ID/resource-docs/v4.0.0/obp?cache-modifier=3141592653\">https://apisandbox.openbankproject.com/obp/v4.0.0/banks/BANK_ID/resource-docs/v4.0.0/obp?cache-modifier=3141592653</a></p><ul><li> operation_id is concatenation of \"v\", version and function and should be unique (used for DOM element IDs etc. maybe used to link to source code) </li><li> version references the version that the API call is defined in.</li><li> function is the (scala) partial function that implements this endpoint. It is unique per version of the API.</li><li> request_url is empty for the root call, else the path. It contains the standard prefix (e.g. /obp) and the implemented version (the version where this endpoint was defined) e.g. /obp/v1.2.0/resource</li><li> specified_url (recommended to use) is empty for the root call, else the path. It contains the standard prefix (e.g. /obp) and the version specified in the call e.g. /obp/v3.1.0/resource. In OBP, endpoints are first made available at the request_url, but the same resource (function call) is often made available under later versions (specified_url). To access the latest version of all endpoints use the latest version available on your OBP instance e.g. /obp/v3.1.0 - To get the original version use the request_url. We recommend to use the specified_url since non semantic improvements are more likely to be applied to later implementations of the call.</li><li> summary is a short description inline with the swagger terminology. </li><li> description may contain html markup (generated from markdown on the server).</li></ul><p>Authentication is Mandatory</p>","operationId":"getBankLevelDynamicResourceDocsObp","parameters":[{"in":"body","name":"body","description":"EmptyClassJson object that needs to be added.","required":true,"schema":{"$ref":"#/definitions/EmptyClassJson"}},{"in":"path","name":"API_VERSION","description":"eg:v2.2.0, v3.0.0","required":true,"type":"string"},{"in":"path","name":"BANK_ID","description":"The bank id","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ResourceDocsJson"}},"400":{"description":"Error","schema":{"$ref":"#/definitions/ErrorUnknownError"}}}}},"/obp/v4.0.0/resource-docs/{API_VERSION}/obp":{"get":{"tags":["Documentation","API"],"summary":"Get Resource Docs","security":[{"directLogin":[],"gatewayLogin":[]}],"description":"<p>Get documentation about the RESTful resources on this server including example bodies for POST and PUT requests.</p><p>This is the native data format used to document OBP endpoints. Each endpoint has a Resource Doc (a Scala case class) defined in the source code.</p><p>This endpoint is used by OBP API Explorer to display and work with the API documentation.</p><p>Most (but not all) fields are also available in swagger format. (The Swagger endpoint is built from Resource Docs.)</p><p>API_VERSION is the version you want documentation about e.g. v3.0.0</p><p>You may filter this endpoint with tags parameter e.g. ?tags=Account,Bank</p><p>You may filter this endpoint with functions parameter e.g. ?functions=enableDisableConsumers,getConnectorMetrics</p><p>For possible function values, see implemented_by.function in the JSON returned by this endpoint or the OBP source code or the footer of the API Explorer which produces a comma separated list of functions that reflect the server or filtering by API Explorer based on tags etc.</p><p>You may filter this endpoint using the 'content' url parameter, e.g. ?content=dynamic<br />if set content=dynamic, only show dynamic endpoints, if content=static, only show the static endpoints. if omit this parameter, we will show all the endpoints.</p><p>You may need some other language resource docs, now we support i18n language tag , e.g. ?locale=zh_CN</p><p>You can filter with api-collection-id, but api-collection-id can not be used with others together. If api-collection-id is used in URL, it will ignore all other parameters.</p><p>You can easily pass the cache, use different value for cache-modifier, eg: ?cache-modifier= 123</p><p>See the Resource Doc endpoint for more information.</p><p>Following are more examples:<br /><a href=\"https://apisandbox.openbankproject.com/obp/v4.0.0/resource-docs/v4.0.0/obp\">https://apisandbox.openbankproject.com/obp/v4.0.0/resource-docs/v4.0.0/obp</a><br /><a href=\"https://apisandbox.openbankproject.com/obp/v4.0.0/resource-docs/v4.0.0/obp?tags=Account,Bank\">https://apisandbox.openbankproject.com/obp/v4.0.0/resource-docs/v4.0.0/obp?tags=Account,Bank</a><br /><a href=\"https://apisandbox.openbankproject.com/obp/v4.0.0/resource-docs/v4.0.0/obp?functions=getBanks,bankById\">https://apisandbox.openbankproject.com/obp/v4.0.0/resource-docs/v4.0.0/obp?functions=getBanks,bankById</a><br /><a href=\"https://apisandbox.openbankproject.com/obp/v4.0.0/resource-docs/v4.0.0/obp?locale=zh_CN\">https://apisandbox.openbankproject.com/obp/v4.0.0/resource-docs/v4.0.0/obp?locale=zh_CN</a><br /><a href=\"https://apisandbox.openbankproject.com/obp/v4.0.0/resource-docs/v4.0.0/obp?content=static,dynamic,all\">https://apisandbox.openbankproject.com/obp/v4.0.0/resource-docs/v4.0.0/obp?content=static,dynamic,all</a><br /><a href=\"https://apisandbox.openbankproject.com/obp/v4.0.0/resource-docs/v4.0.0/obp?api-collection-id=4e866c86-60c3-4268-a221-cb0bbf1ad221\">https://apisandbox.openbankproject.com/obp/v4.0.0/resource-docs/v4.0.0/obp?api-collection-id=4e866c86-60c3-4268-a221-cb0bbf1ad221</a><br /><a href=\"https://apisandbox.openbankproject.com/obp/v4.0.0/resource-docs/v4.0.0/obp?cache-modifier=3141592653\">https://apisandbox.openbankproject.com/obp/v4.0.0/resource-docs/v4.0.0/obp?cache-modifier=3141592653</a></p><ul><li> operation_id is concatenation of \"v\", version and function and should be unique (used for DOM element IDs etc. maybe used to link to source code) </li><li> version references the version that the API call is defined in.</li><li> function is the (scala) partial function that implements this endpoint. It is unique per version of the API.</li><li> request_url is empty for the root call, else the path. It contains the standard prefix (e.g. /obp) and the implemented version (the version where this endpoint was defined) e.g. /obp/v1.2.0/resource</li><li> specified_url (recommended to use) is empty for the root call, else the path. It contains the standard prefix (e.g. /obp) and the version specified in the call e.g. /obp/v3.1.0/resource. In OBP, endpoints are first made available at the request_url, but the same resource (function call) is often made available under later versions (specified_url). To access the latest version of all endpoints use the latest version available on your OBP instance e.g. /obp/v3.1.0 - To get the original version use the request_url. We recommend to use the specified_url since non semantic improvements are more likely to be applied to later implementations of the call.</li><li> summary is a short description inline with the swagger terminology. </li><li> description may contain html markup (generated from markdown on the server).</li></ul><p>Authentication is Mandatory</p>","operationId":"getResourceDocsObpV400","parameters":[{"in":"body","name":"body","description":"EmptyClassJson object that needs to be added.","required":true,"schema":{"$ref":"#/definitions/EmptyClassJson"}},{"in":"path","name":"API_VERSION","description":"eg:v2.2.0, v3.0.0","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ResourceDocsJson"}},"400":{"description":"Error","schema":{"$ref":"#/definitions/ErrorUnknownError"}}}}},"/obp/v4.0.0/resource-docs/{API_VERSION}/swagger":{"get":{"tags":["Documentation","API"],"summary":"Get Swagger documentation","security":[{"directLogin":[],"gatewayLogin":[]}],"description":"<p>Returns documentation about the RESTful resources on this server in Swagger format.</p><p>API_VERSION is the version you want documentation about e.g. v3.0.0</p><p>You may filter this endpoint using the 'tags' url parameter e.g. ?tags=Account,Bank</p><p>(All endpoints are given one or more tags which for used in grouping)</p><p>You may filter this endpoint using the 'functions' url parameter e.g. ?functions=getBanks,bankById</p><p>(Each endpoint is implemented in the OBP Scala code by a 'function')</p><p>See the Resource Doc endpoint for more information.</p><p>Following are more examples:<br /><a href=\"https://apisandbox.openbankproject.com/obp/v3.1.0/resource-docs/v3.1.0/swagger\">https://apisandbox.openbankproject.com/obp/v3.1.0/resource-docs/v3.1.0/swagger</a><br /><a href=\"https://apisandbox.openbankproject.com/obp/v3.1.0/resource-docs/v3.1.0/swagger?tags=Account,Bank\">https://apisandbox.openbankproject.com/obp/v3.1.0/resource-docs/v3.1.0/swagger?tags=Account,Bank</a><br /><a href=\"https://apisandbox.openbankproject.com/obp/v3.1.0/resource-docs/v3.1.0/swagger?functions=getBanks,bankById\">https://apisandbox.openbankproject.com/obp/v3.1.0/resource-docs/v3.1.0/swagger?functions=getBanks,bankById</a><br /><a href=\"https://apisandbox.openbankproject.com/obp/v3.1.0/resource-docs/v3.1.0/swagger?tags=Account,Bank,PSD2&amp;functions=getBanks,bankById\">https://apisandbox.openbankproject.com/obp/v3.1.0/resource-docs/v3.1.0/swagger?tags=Account,Bank,PSD2&amp;functions=getBanks,bankById</a></p><p>Authentication is Optional</p>","operationId":"getResourceDocsSwagger","parameters":[{"in":"body","name":"body","description":"EmptyClassJson object that needs to be added.","required":true,"schema":{"$ref":"#/definitions/EmptyClassJson"}},{"in":"path","name":"API_VERSION","description":"eg:v2.2.0, v3.0.0","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/EmptyClassJson"}},"400":{"description":"Error","schema":{"$ref":"#/definitions/ErrorUnknownError"}}}}},"/obp/v4.0.0/root":{"get":{"tags":["API"],"summary":"Get API Info (root)","security":[{"directLogin":[],"gatewayLogin":[]}],"description":"<p>Returns information about:</p><ul><li>API version</li><li>Hosted by information</li><li>Hosted at information</li><li>Energy source information</li><li>Git Commit</li></ul><p>Authentication is Optional</p>","operationId":"root","parameters":[],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/APIInfoJson400"}},"400":{"description":"Error","schema":{"$ref":"#/definitions/ErrorUnknownError"}}}}},"/test-dynamic-resource-doc/my_user/MY_USER_ID":{"post":{"tags":["Dynamic-Resource-Doc"],"summary":"A test endpoint","security":[{"directLogin":[],"gatewayLogin":[]}],"description":"<p>A test endpoint.</p><p>Just for debug method body of dynamic resource doc.<br />better watch the following introduction video first<br />* <a href=\"https://vimeo.com/623381607\">Dynamic resourceDoc version1</a></p><p>The endpoint return the response from PractiseEndpoint code.<br />Here, code.api.DynamicEndpoints.dynamic.practise.PractiseEndpoint.process<br />You can test the method body grammar, and try the business logic, but need to restart the OBP-API code .</p><p>Authentication is Optional</p>","operationId":"test-dynamic-resource-doc","parameters":[{"in":"body","name":"body","description":"RequestRootJsonClass object that needs to be added.","required":true,"schema":{"$ref":"#/definitions/RequestRootJsonClass"}}],"responses":{"201":{"description":"Success","schema":{"$ref":"#/definitions/RequestRootJsonClass"}},"400":{"description":"Error","schema":{"$ref":"#/definitions/ErrorUnknownError"}}}}}},"definitions":{"ErrorUnknownError":{"properties":{"message":{"type":"string","example":"OBP-50000: Unknown Error."}}},"CanGetCustomers":{"required":["requiresBankId"],"properties":{"requiresBankId":{"type":"boolean","example":"true"}}},"EnergySource400":{"required":["organisation","organisation_website"],"properties":{"organisation":{"type":"string","example":"Stromio"},"organisation_website":{"type":"string","example":"https://www.stromio.de/"}}},"BankRoutingJsonV121":{"required":["scheme","address"],"properties":{"scheme":{"type":"string","example":"scheme value"},"address":{"type":"string","example":""}}},"ImplementedByJson":{"required":["version","function"],"properties":{"version":{"type":"string","example":"1_4_0"},"function":{"type":"string","example":"getBranches"}}},"APIInfoJson400":{"required":["local_identity_provider","resource_docs_requires_role","hostname","version_status","version","hosted_at","connector","energy_source","hosted_by","git_commit"],"properties":{"local_identity_provider":{"type":"string","example":"String"},"resource_docs_requires_role":{"type":"boolean","example":"false"},"hostname":{"type":"string","example":"String"},"version_status":{"type":"string","example":"String"},"version":{"type":"string","example":"String"},"hosted_at":{"$ref":"#/definitions/HostedAt400"},"connector":{"type":"string","example":"String"},"energy_source":{"$ref":"#/definitions/EnergySource400"},"hosted_by":{"$ref":"#/definitions/HostedBy400"},"git_commit":{"type":"string","example":"String"}}},"BankAttributeBankResponseJsonV400":{"required":["name","value"],"properties":{"name":{"type":"string","example":"ACCOUNT_MANAGEMENT_FEE"},"value":{"type":"string","example":"5987953"}}},"HostedBy400":{"required":["organisation","email","phone","organisation_website"],"properties":{"organisation":{"type":"string","example":"String"},"email":{"type":"string","example":"String"},"phone":{"type":"string","example":"String"},"organisation_website":{"type":"string","example":"String"}}},"HostedAt400":{"required":["organisation","organisation_website"],"properties":{"organisation":{"type":"string","example":"Amazon"},"organisation_website":{"type":"string","example":"https://aws.amazon.com/"}}},"BankJson400":{"required":["bank_routings","website","full_name","logo","id","short_name"],"properties":{"bank_routings":{"type":"array","items":{"$ref":"#/definitions/BankRoutingJsonV121"}},"website":{"type":"string","example":"www.openbankproject.com"},"full_name":{"type":"string","example":"full_name"},"attributes":{"type":"array","items":{"$ref":"#/definitions/BankAttributeBankResponseJsonV400"}},"logo":{"type":"string","example":"logo"},"id":{"type":"string","example":"gh.29.uk"},"short_name":{"type":"string","example":"short_name "}}},"BanksJson400":{"required":["banks"],"properties":{"banks":{"type":"array","items":{"$ref":"#/definitions/BankJson400"}}}},"EmptyClassJson":{"required":["jsonString"],"properties":{"jsonString":{"type":"string","example":"{}"}}},"ResourceDocsJson":{"required":["resource_docs"],"properties":{"resource_docs":{"type":"array","items":{"$ref":"#/definitions/ResourceDocJson"}},"meta":{"$ref":"#/definitions/ResourceDocMeta"}}},"ResourceDocJson":{"required":["error_response_bodies","request_verb","request_url","description","tags","success_response_body","connector_methods","example_request_body","typed_success_response_body","special_instructions","is_featured","operation_id","implemented_by","specified_url","description_markdown","typed_request_body","summary"],"properties":{"error_response_bodies":{"type":"array","items":{"type":"string"}},"request_verb":{"type":"string","example":"GET"},"request_url":{"type":"string","example":"/dummy"},"description":{"type":"string","example":"<p>I am only a test Resource Doc</p>\n<p>Authentication is Mandatory</p>\n<p><strong>JSON response body fields:</strong></p>\n"},"tags":{"type":"array","items":{"type":"string"}},"success_response_body":{"$ref":"#/definitions/EmptyClassJson"},"created_by_bank_id":{"type":"string"},"connector_methods":{"type":"array","items":{"type":"string"}},"example_request_body":{"$ref":"#/definitions/EmptyClassJson"},"typed_success_response_body":{"type":"object","properties":{"type":{"type":"string","example":"object"},"properties":{"type":"object","properties":{"jsonString":{"type":"object","properties":{"type":{"type":"string","example":"string"}},"required":["type"]}},"required":["jsonString"]}},"required":["type","properties"]},"special_instructions":{"type":"string","example":""},"is_featured":{"type":"boolean","example":"false"},"roles":{"type":"array","items":{"$ref":"#/definitions/CanGetCustomers"}},"operation_id":{"type":"string","example":"OBPv1.4.0-testResourceDoc"},"implemented_by":{"$ref":"#/definitions/ImplementedByJson"},"specified_url":{"type":"string","example":""},"description_markdown":{"type":"string","example":"I am only a test Resource Doc\n\nAuthentication is Mandatory\n\n\n**JSON response body fields:**\n\n\n"},"typed_request_body":{"type":"object","properties":{"type":{"type":"string","example":"object"},"properties":{"type":"object","properties":{"jsonString":{"type":"object","properties":{"type":{"type":"string","example":"string"}},"required":["type"]}},"required":["jsonString"]}},"required":["type","properties"]},"summary":{"type":"string","example":"Test Resource Doc"}}},"ResourceDocMeta":{"required":["response_date","count"],"properties":{"response_date":{"type":"string","format":"date","example":"2025-11-29T05:02:22Z"},"count":{"type":"integer","format":"int32","example":"1"}}},"RequestRootJsonClass":{"required":["name","age","hobby"],"properties":{"name":{"type":"string","example":"ACCOUNT_MANAGEMENT_FEE"},"age":{"type":"integer","format":"int64","example":"18"},"hobby":{"type":"array","items":{"type":"string"}}}}}}