4641 lines
154 KiB
JSON
4641 lines
154 KiB
JSON
|
{
|
||
|
"openapi": "3.0.3",
|
||
|
"info": {
|
||
|
"title": "GoCardless Bank Account Data API",
|
||
|
"version": "2.0 (v2)"
|
||
|
},
|
||
|
"paths": {
|
||
|
"/api/v2/accounts/{id}/": {
|
||
|
"get": {
|
||
|
"operationId": "retrieve account metadata",
|
||
|
"description": "Access account metadata.\n\nInformation about the account record, such as the processing status and IBAN.\n\nAccount status is recalculated based on the error count in the latest req.",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "path",
|
||
|
"name": "id",
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"required": true
|
||
|
}
|
||
|
],
|
||
|
"tags": [
|
||
|
"accounts"
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/Account"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Sample account metadata"
|
||
|
},
|
||
|
"404": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NotFoundError": {
|
||
|
"value": {
|
||
|
"detail": "Not found.",
|
||
|
"summary": "Not found.",
|
||
|
"status_code": 404
|
||
|
},
|
||
|
"summary": "Not found error",
|
||
|
"description": "Not found error"
|
||
|
},
|
||
|
"AccountNotFoundError": {
|
||
|
"value": {
|
||
|
"summary": "Account ID $ACC_ID not found",
|
||
|
"detail": "Please check whether you specified a valid Account ID",
|
||
|
"status_code": 404
|
||
|
},
|
||
|
"summary": "Account not found error",
|
||
|
"description": "Account not found"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Account not found"
|
||
|
},
|
||
|
"429": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NordigenRateLimitExceeded": {
|
||
|
"value": {
|
||
|
"summary": "Rate limit exceeded",
|
||
|
"detail": "The rate limit for this resource is <times>/<time_period>. Please try again in <time_left> seconds",
|
||
|
"status_code": 429
|
||
|
},
|
||
|
"summary": "Nordigen rate limit exceeded",
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
},
|
||
|
"401": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidToken": {
|
||
|
"value": {
|
||
|
"summary": "Invalid token",
|
||
|
"detail": "Token is invalid or expired",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Invalid token",
|
||
|
"description": "Token is invalid or expired"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Token is invalid or expired"
|
||
|
},
|
||
|
"403": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"IPAccessDenied": {
|
||
|
"value": {
|
||
|
"summary": "IP address access denied",
|
||
|
"detail": "Your IP $IP_ADDRESS isn't whitelisted to perform this action",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "IP Access denied",
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/api/v2/accounts/{id}/balances/": {
|
||
|
"get": {
|
||
|
"operationId": "retrieve account balances",
|
||
|
"description": "Access account balances.\n\nBalances will be returned in Berlin Group PSD2 format.",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "path",
|
||
|
"name": "id",
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"required": true
|
||
|
}
|
||
|
],
|
||
|
"tags": [
|
||
|
"accounts"
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/AccountBalance"
|
||
|
},
|
||
|
"examples": {
|
||
|
"RetrieveAccountBalances": {
|
||
|
"value": {
|
||
|
"balances": [
|
||
|
{
|
||
|
"balanceAmount": {
|
||
|
"amount": "657.49",
|
||
|
"currency": "string"
|
||
|
},
|
||
|
"balanceType": "string",
|
||
|
"referenceDate": "2021-11-22"
|
||
|
},
|
||
|
{
|
||
|
"balanceAmount": {
|
||
|
"amount": "185.67",
|
||
|
"currency": "string"
|
||
|
},
|
||
|
"balanceType": "string",
|
||
|
"referenceDate": "2021-11-19"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"summary": "Account balances",
|
||
|
"description": "Sample account balances"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Sample account balances"
|
||
|
},
|
||
|
"404": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NotFoundError": {
|
||
|
"value": {
|
||
|
"detail": "Not found.",
|
||
|
"summary": "Not found.",
|
||
|
"status_code": 404
|
||
|
},
|
||
|
"summary": "Not found error",
|
||
|
"description": "Not found error"
|
||
|
},
|
||
|
"AccountNotFoundError": {
|
||
|
"value": {
|
||
|
"summary": "Account ID $ACC_ID not found",
|
||
|
"detail": "Please check whether you specified a valid Account ID",
|
||
|
"status_code": 404
|
||
|
},
|
||
|
"summary": "Account not found error",
|
||
|
"description": "Account not found"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Account not found"
|
||
|
},
|
||
|
"429": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NordigenRateLimitExceeded": {
|
||
|
"value": {
|
||
|
"summary": "Rate limit exceeded",
|
||
|
"detail": "The rate limit for this resource is <times>/<time_period>. Please try again in <time_left> seconds",
|
||
|
"status_code": 429
|
||
|
},
|
||
|
"summary": "Nordigen rate limit exceeded",
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
},
|
||
|
"RateLimitError": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account balances",
|
||
|
"detail": "Daily request limit set by the Institution has been exceeded.",
|
||
|
"type": "RateLimitError",
|
||
|
"status_code": 429
|
||
|
},
|
||
|
"summary": "Rate Limit Error",
|
||
|
"description": "RateLimitError"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "RateLimitError"
|
||
|
},
|
||
|
"401": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidToken": {
|
||
|
"value": {
|
||
|
"summary": "Invalid token",
|
||
|
"detail": "Token is invalid or expired",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Invalid token",
|
||
|
"description": "Token is invalid or expired"
|
||
|
},
|
||
|
"AccessExpiredError": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account balances",
|
||
|
"detail": "Access has expired or it has been revoked. To restore access reconnect the account.",
|
||
|
"type": "AccessExpiredError",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Access Expired Error",
|
||
|
"description": "AccessExpiredError"
|
||
|
},
|
||
|
"AccountInactiveError": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account balances",
|
||
|
"detail": "Account has been deactivated or it no longer exists.",
|
||
|
"type": "AccountInactiveError",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Account Inactive Error",
|
||
|
"description": "AccountInactiveError"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "AccountInactiveError"
|
||
|
},
|
||
|
"403": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"IPAccessDenied": {
|
||
|
"value": {
|
||
|
"summary": "IP address access denied",
|
||
|
"detail": "Your IP $IP_ADDRESS isn't whitelisted to perform this action",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "IP Access denied",
|
||
|
"description": "IP address not whitelisted"
|
||
|
},
|
||
|
"AccountEUAScopeError": {
|
||
|
"value": {
|
||
|
"summary": "End User Agreement (EUA) access scope error",
|
||
|
"detail": "EUA doesn't allow access to account balances. Check EUA access scope. Or create new EUA with correct access scope",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "Account EUA scope error",
|
||
|
"description": "EUA doesn't allow access to account balances."
|
||
|
},
|
||
|
"AccountValidEUAError": {
|
||
|
"value": {
|
||
|
"summary": "No valid End User Agreement",
|
||
|
"detail": "Account exists but there is no valid End User Agreement permitting you to access it",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "Account valid EUA error",
|
||
|
"description": "Account has no valid End User Agreement"
|
||
|
},
|
||
|
"AccountAccessForbidden": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account balances",
|
||
|
"detail": "Access to account is forbidden. The user might not have the necessary permissions.",
|
||
|
"type": "AccountAccessForbidden",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "Account Access Forbidden",
|
||
|
"description": "AccountAccessForbidden"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "AccountAccessForbidden"
|
||
|
},
|
||
|
"400": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidID": {
|
||
|
"value": {
|
||
|
"summary": "Invalid Account ID",
|
||
|
"detail": "$ACCOUNT_ID is not a valid Account UUID. ",
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Invalid ID",
|
||
|
"description": "Invalid Account ID"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Invalid Account ID"
|
||
|
},
|
||
|
"500": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"UnknownRequestError": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account balances",
|
||
|
"detail": "Request to Institution returned an error",
|
||
|
"type": "UnknownRequestError",
|
||
|
"status_code": 500
|
||
|
},
|
||
|
"summary": "Unknown Request Error",
|
||
|
"description": "Couldn't update account balances"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Couldn't update account balances"
|
||
|
},
|
||
|
"409": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"AccountSuspendedError": {
|
||
|
"value": {
|
||
|
"summary": "Account suspended",
|
||
|
"detail": "This account or its requisition was suspended due to numerous errors that occurred while accessing it.",
|
||
|
"status_code": 409
|
||
|
},
|
||
|
"summary": "Account suspended error",
|
||
|
"description": "Account or its requisition suspended"
|
||
|
},
|
||
|
"AccountStateError": {
|
||
|
"value": {
|
||
|
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||
|
"created": "2024-10-04 18:06:13.681544+00:00",
|
||
|
"last_accessed": "2024-10-04 18:06:13.681558+00:00",
|
||
|
"iban": "string",
|
||
|
"aspsp_identifier": "string",
|
||
|
"status": "ERROR"
|
||
|
},
|
||
|
"summary": "Account state error",
|
||
|
"description": "Account state does not support this operation"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Account state does not support this operation"
|
||
|
},
|
||
|
"503": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"ServiceError": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account balances",
|
||
|
"detail": "Institution service unavailable",
|
||
|
"type": "ServiceError",
|
||
|
"status_code": 503
|
||
|
},
|
||
|
"summary": "Service Error",
|
||
|
"description": "ServiceError"
|
||
|
},
|
||
|
"ConnectionError": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account balances",
|
||
|
"detail": "Couldn't connect to Institution",
|
||
|
"type": "ConnectionError",
|
||
|
"status_code": 503
|
||
|
},
|
||
|
"summary": "Connection Error",
|
||
|
"description": "ConnectionError"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "ConnectionError"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/api/v2/accounts/{id}/details/": {
|
||
|
"get": {
|
||
|
"operationId": "retrieve account details",
|
||
|
"description": "Access account details.\n\nAccount details will be returned in Berlin Group PSD2 format.",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "path",
|
||
|
"name": "id",
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"required": true
|
||
|
}
|
||
|
],
|
||
|
"tags": [
|
||
|
"accounts"
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/AccountDetail"
|
||
|
},
|
||
|
"examples": {
|
||
|
"RetrieveAccountDetails": {
|
||
|
"value": {
|
||
|
"account": {
|
||
|
"resourceId": "string",
|
||
|
"iban": "string",
|
||
|
"currency": "string",
|
||
|
"ownerName": "string",
|
||
|
"name": "string",
|
||
|
"product": "string",
|
||
|
"cashAccountType": "string"
|
||
|
}
|
||
|
},
|
||
|
"summary": "Sample account details",
|
||
|
"description": "Sample account details"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Sample account details"
|
||
|
},
|
||
|
"404": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NotFoundError": {
|
||
|
"value": {
|
||
|
"detail": "Not found.",
|
||
|
"summary": "Not found.",
|
||
|
"status_code": 404
|
||
|
},
|
||
|
"summary": "Not found error",
|
||
|
"description": "Not found error"
|
||
|
},
|
||
|
"AccountNotFoundError": {
|
||
|
"value": {
|
||
|
"summary": "Account ID $ACC_ID not found",
|
||
|
"detail": "Please check whether you specified a valid Account ID",
|
||
|
"status_code": 404
|
||
|
},
|
||
|
"summary": "Account not found error",
|
||
|
"description": "Account not found"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Account not found"
|
||
|
},
|
||
|
"429": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NordigenRateLimitExceeded": {
|
||
|
"value": {
|
||
|
"summary": "Rate limit exceeded",
|
||
|
"detail": "The rate limit for this resource is <times>/<time_period>. Please try again in <time_left> seconds",
|
||
|
"status_code": 429
|
||
|
},
|
||
|
"summary": "Nordigen rate limit exceeded",
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
},
|
||
|
"RateLimitError": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account details",
|
||
|
"detail": "Daily request limit set by the Institution has been exceeded.",
|
||
|
"type": "RateLimitError",
|
||
|
"status_code": 429
|
||
|
},
|
||
|
"summary": "Rate Limit Error",
|
||
|
"description": "RateLimitError"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "RateLimitError"
|
||
|
},
|
||
|
"401": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidToken": {
|
||
|
"value": {
|
||
|
"summary": "Invalid token",
|
||
|
"detail": "Token is invalid or expired",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Invalid token",
|
||
|
"description": "Token is invalid or expired"
|
||
|
},
|
||
|
"AccessExpiredError": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account details",
|
||
|
"detail": "Access has expired or it has been revoked. To restore access reconnect the account.",
|
||
|
"type": "AccessExpiredError",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Access Expired Error",
|
||
|
"description": "AccessExpiredError"
|
||
|
},
|
||
|
"AccountInactiveError": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account details",
|
||
|
"detail": "Account has been deactivated or it no longer exists.",
|
||
|
"type": "AccountInactiveError",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Account Inactive Error",
|
||
|
"description": "AccountInactiveError"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "AccountInactiveError"
|
||
|
},
|
||
|
"403": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"IPAccessDenied": {
|
||
|
"value": {
|
||
|
"summary": "IP address access denied",
|
||
|
"detail": "Your IP $IP_ADDRESS isn't whitelisted to perform this action",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "IP Access denied",
|
||
|
"description": "IP address not whitelisted"
|
||
|
},
|
||
|
"AccountEUAScopeError": {
|
||
|
"value": {
|
||
|
"summary": "End User Agreement (EUA) access scope error",
|
||
|
"detail": "EUA doesn't allow access to account details. Check EUA access scope. Or create new EUA with correct access scope",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "Account EUA scope error",
|
||
|
"description": "EUA doesn't allow access to account details."
|
||
|
},
|
||
|
"AccountValidEUAError": {
|
||
|
"value": {
|
||
|
"summary": "No valid End User Agreement",
|
||
|
"detail": "Account exists but there is no valid End User Agreement permitting you to access it",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "Account valid EUA error",
|
||
|
"description": "Account has no valid End User Agreement"
|
||
|
},
|
||
|
"AccountAccessForbidden": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account details",
|
||
|
"detail": "Access to account is forbidden. The user might not have the necessary permissions.",
|
||
|
"type": "AccountAccessForbidden",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "Account Access Forbidden",
|
||
|
"description": "AccountAccessForbidden"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "AccountAccessForbidden"
|
||
|
},
|
||
|
"400": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidID": {
|
||
|
"value": {
|
||
|
"summary": "Invalid Account ID",
|
||
|
"detail": "$ACCOUNT_ID is not a valid Account UUID. ",
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Invalid ID",
|
||
|
"description": "Invalid Account ID"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Invalid Account ID"
|
||
|
},
|
||
|
"500": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"UnknownRequestError": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account details",
|
||
|
"detail": "Request to Institution returned an error",
|
||
|
"type": "UnknownRequestError",
|
||
|
"status_code": 500
|
||
|
},
|
||
|
"summary": "Unknown Request Error",
|
||
|
"description": "Couldn't update account details"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Couldn't update account details"
|
||
|
},
|
||
|
"409": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"AccountSuspendedError": {
|
||
|
"value": {
|
||
|
"summary": "Account suspended",
|
||
|
"detail": "This account or its requisition was suspended due to numerous errors that occurred while accessing it.",
|
||
|
"status_code": 409
|
||
|
},
|
||
|
"summary": "Account suspended error",
|
||
|
"description": "Account or its requisition suspended"
|
||
|
},
|
||
|
"AccountStateError": {
|
||
|
"value": {
|
||
|
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||
|
"created": "2024-10-04 18:06:13.681544+00:00",
|
||
|
"last_accessed": "2024-10-04 18:06:13.681558+00:00",
|
||
|
"iban": "string",
|
||
|
"aspsp_identifier": "string",
|
||
|
"status": "ERROR"
|
||
|
},
|
||
|
"summary": "Account state error",
|
||
|
"description": "Account state does not support this operation"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Account state does not support this operation"
|
||
|
},
|
||
|
"503": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"ServiceError": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account details",
|
||
|
"detail": "Institution service unavailable",
|
||
|
"type": "ServiceError",
|
||
|
"status_code": 503
|
||
|
},
|
||
|
"summary": "Service Error",
|
||
|
"description": "ServiceError"
|
||
|
},
|
||
|
"ConnectionError": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account details",
|
||
|
"detail": "Couldn't connect to Institution",
|
||
|
"type": "ConnectionError",
|
||
|
"status_code": 503
|
||
|
},
|
||
|
"summary": "Connection Error",
|
||
|
"description": "ConnectionError"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "ConnectionError"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/api/v2/accounts/{id}/transactions/": {
|
||
|
"get": {
|
||
|
"operationId": "retrieve account transactions",
|
||
|
"description": "Access account transactions.\n\nTransactions will be returned in Berlin Group PSD2 format.",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "query",
|
||
|
"name": "date_from",
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"format": "date"
|
||
|
},
|
||
|
"examples": {
|
||
|
"2024-07-06": {
|
||
|
"value": "2024-07-06",
|
||
|
"summary": "2024-07-06",
|
||
|
"description": "ISO 8601 format date"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"in": "query",
|
||
|
"name": "date_to",
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"format": "date"
|
||
|
},
|
||
|
"examples": {
|
||
|
"2024-10-04": {
|
||
|
"value": "2024-10-04",
|
||
|
"summary": "2024-10-04",
|
||
|
"description": "ISO 8601 format date"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"in": "path",
|
||
|
"name": "id",
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"required": true
|
||
|
}
|
||
|
],
|
||
|
"tags": [
|
||
|
"accounts"
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/BankTransaction"
|
||
|
},
|
||
|
"examples": {
|
||
|
"RetrieveAccountTransactions": {
|
||
|
"value": {
|
||
|
"transactions": {
|
||
|
"booked": [
|
||
|
{
|
||
|
"transactionId": "string",
|
||
|
"debtorName": "string",
|
||
|
"debtorAccount": {
|
||
|
"iban": "string"
|
||
|
},
|
||
|
"transactionAmount": {
|
||
|
"currency": "string",
|
||
|
"amount": "328.18"
|
||
|
},
|
||
|
"bankTransactionCode": "string",
|
||
|
"bookingDate": "date",
|
||
|
"valueDate": "date",
|
||
|
"remittanceInformationUnstructured": "string"
|
||
|
},
|
||
|
{
|
||
|
"transactionId": "string",
|
||
|
"transactionAmount": {
|
||
|
"currency": "string",
|
||
|
"amount": "947.26"
|
||
|
},
|
||
|
"bankTransactionCode": "string",
|
||
|
"bookingDate": "date",
|
||
|
"valueDate": "date",
|
||
|
"remittanceInformationUnstructured": "string"
|
||
|
}
|
||
|
],
|
||
|
"pending": [
|
||
|
{
|
||
|
"transactionAmount": {
|
||
|
"currency": "string",
|
||
|
"amount": "99.20"
|
||
|
},
|
||
|
"valueDate": "date",
|
||
|
"remittanceInformationUnstructured": "string"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"summary": "Account transactions",
|
||
|
"description": "Sample account transactions"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Sample account transactions"
|
||
|
},
|
||
|
"404": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NotFoundError": {
|
||
|
"value": {
|
||
|
"detail": "Not found.",
|
||
|
"summary": "Not found.",
|
||
|
"status_code": 404
|
||
|
},
|
||
|
"summary": "Not found error",
|
||
|
"description": "Not found error"
|
||
|
},
|
||
|
"AccountNotFoundError": {
|
||
|
"value": {
|
||
|
"summary": "Account ID $ACC_ID not found",
|
||
|
"detail": "Please check whether you specified a valid Account ID",
|
||
|
"status_code": 404
|
||
|
},
|
||
|
"summary": "Account not found error",
|
||
|
"description": "Account not found"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Account not found"
|
||
|
},
|
||
|
"429": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NordigenRateLimitExceeded": {
|
||
|
"value": {
|
||
|
"summary": "Rate limit exceeded",
|
||
|
"detail": "The rate limit for this resource is <times>/<time_period>. Please try again in <time_left> seconds",
|
||
|
"status_code": 429
|
||
|
},
|
||
|
"summary": "Nordigen rate limit exceeded",
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
},
|
||
|
"RateLimitError": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account transactions",
|
||
|
"detail": "Daily request limit set by the Institution has been exceeded.",
|
||
|
"type": "RateLimitError",
|
||
|
"status_code": 429
|
||
|
},
|
||
|
"summary": "Rate Limit Error",
|
||
|
"description": "RateLimitError"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "RateLimitError"
|
||
|
},
|
||
|
"401": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidToken": {
|
||
|
"value": {
|
||
|
"summary": "Invalid token",
|
||
|
"detail": "Token is invalid or expired",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Invalid token",
|
||
|
"description": "Token is invalid or expired"
|
||
|
},
|
||
|
"AccessExpiredError": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account transactions",
|
||
|
"detail": "Access has expired or it has been revoked. To restore access reconnect the account.",
|
||
|
"type": "AccessExpiredError",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Access Expired Error",
|
||
|
"description": "AccessExpiredError"
|
||
|
},
|
||
|
"AccountInactiveError": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account transactions",
|
||
|
"detail": "Account has been deactivated or it no longer exists.",
|
||
|
"type": "AccountInactiveError",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Account Inactive Error",
|
||
|
"description": "AccountInactiveError"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "AccountInactiveError"
|
||
|
},
|
||
|
"403": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"IPAccessDenied": {
|
||
|
"value": {
|
||
|
"summary": "IP address access denied",
|
||
|
"detail": "Your IP $IP_ADDRESS isn't whitelisted to perform this action",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "IP Access denied",
|
||
|
"description": "IP address not whitelisted"
|
||
|
},
|
||
|
"AccountEUAScopeError": {
|
||
|
"value": {
|
||
|
"summary": "End User Agreement (EUA) access scope error",
|
||
|
"detail": "EUA doesn't allow access to account transactions. Check EUA access scope. Or create new EUA with correct access scope",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "Account EUA scope error",
|
||
|
"description": "EUA doesn't allow access to account transactions."
|
||
|
},
|
||
|
"AccountValidEUAError": {
|
||
|
"value": {
|
||
|
"summary": "No valid End User Agreement",
|
||
|
"detail": "Account exists but there is no valid End User Agreement permitting you to access it",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "Account valid EUA error",
|
||
|
"description": "Account has no valid End User Agreement"
|
||
|
},
|
||
|
"AccountAccessForbidden": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account transactions",
|
||
|
"detail": "Access to account is forbidden. The user might not have the necessary permissions.",
|
||
|
"type": "AccountAccessForbidden",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "Account Access Forbidden",
|
||
|
"description": "AccountAccessForbidden"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "AccountAccessForbidden"
|
||
|
},
|
||
|
"400": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidID": {
|
||
|
"value": {
|
||
|
"summary": "Invalid Account ID",
|
||
|
"detail": "$ACCOUNT_ID is not a valid Account UUID. ",
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Invalid ID",
|
||
|
"description": "Invalid Account ID"
|
||
|
},
|
||
|
"DateRangeError": {
|
||
|
"value": {
|
||
|
"summary": "Incorrect date range",
|
||
|
"detail": "Starting date '2024-10-14' is greater than end date '2024-10-04'. When specifying date range, starting date must precede the end date",
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Date range error",
|
||
|
"description": "Incorrect date range in query parameters"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Incorrect date range in query parameters"
|
||
|
},
|
||
|
"500": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"UnknownRequestError": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account transactions",
|
||
|
"detail": "Request to Institution returned an error",
|
||
|
"type": "UnknownRequestError",
|
||
|
"status_code": 500
|
||
|
},
|
||
|
"summary": "Unknown Request Error",
|
||
|
"description": "Couldn't update account transactions"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Couldn't update account transactions"
|
||
|
},
|
||
|
"409": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"AccountSuspendedError": {
|
||
|
"value": {
|
||
|
"summary": "Account suspended",
|
||
|
"detail": "This account or its requisition was suspended due to numerous errors that occurred while accessing it.",
|
||
|
"status_code": 409
|
||
|
},
|
||
|
"summary": "Account suspended error",
|
||
|
"description": "Account or its requisition suspended"
|
||
|
},
|
||
|
"AccountStateError": {
|
||
|
"value": {
|
||
|
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||
|
"created": "2024-10-04 18:06:13.681544+00:00",
|
||
|
"last_accessed": "2024-10-04 18:06:13.681558+00:00",
|
||
|
"iban": "string",
|
||
|
"aspsp_identifier": "string",
|
||
|
"status": "ERROR"
|
||
|
},
|
||
|
"summary": "Account state error",
|
||
|
"description": "Account state does not support this operation"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Account state does not support this operation"
|
||
|
},
|
||
|
"503": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"ServiceError": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account transactions",
|
||
|
"detail": "Institution service unavailable",
|
||
|
"type": "ServiceError",
|
||
|
"status_code": 503
|
||
|
},
|
||
|
"summary": "Service Error",
|
||
|
"description": "ServiceError"
|
||
|
},
|
||
|
"ConnectionError": {
|
||
|
"value": {
|
||
|
"summary": "Couldn't update account transactions",
|
||
|
"detail": "Couldn't connect to Institution",
|
||
|
"type": "ConnectionError",
|
||
|
"status_code": 503
|
||
|
},
|
||
|
"summary": "Connection Error",
|
||
|
"description": "ConnectionError"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "ConnectionError"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/api/v2/agreements/enduser/": {
|
||
|
"get": {
|
||
|
"operationId": "retrieve all EUAs for an end user",
|
||
|
"description": "API endpoints related to end-user agreements.",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "limit",
|
||
|
"required": false,
|
||
|
"in": "query",
|
||
|
"description": "Number of results to return per page.",
|
||
|
"schema": {
|
||
|
"type": "integer",
|
||
|
"default": 100,
|
||
|
"minimum": 1
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"name": "offset",
|
||
|
"required": false,
|
||
|
"in": "query",
|
||
|
"description": "The initial zero-based index from which to return the results.",
|
||
|
"schema": {
|
||
|
"type": "integer",
|
||
|
"default": 0,
|
||
|
"minimum": 0
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"tags": [
|
||
|
"agreements"
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/PaginatedEndUserAgreementList"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Retrieve all end user agreements"
|
||
|
},
|
||
|
"404": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NotFoundError": {
|
||
|
"value": {
|
||
|
"detail": "Not found.",
|
||
|
"summary": "Not found.",
|
||
|
"status_code": 404
|
||
|
},
|
||
|
"summary": "Not found error",
|
||
|
"description": "Not found error"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Not found error"
|
||
|
},
|
||
|
"429": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NordigenRateLimitExceeded": {
|
||
|
"value": {
|
||
|
"summary": "Rate limit exceeded",
|
||
|
"detail": "The rate limit for this resource is <times>/<time_period>. Please try again in <time_left> seconds",
|
||
|
"status_code": 429
|
||
|
},
|
||
|
"summary": "Nordigen rate limit exceeded",
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
},
|
||
|
"401": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidToken": {
|
||
|
"value": {
|
||
|
"summary": "Invalid token",
|
||
|
"detail": "Token is invalid or expired",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Invalid token",
|
||
|
"description": "Token is invalid or expired"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Token is invalid or expired"
|
||
|
},
|
||
|
"403": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"IPAccessDenied": {
|
||
|
"value": {
|
||
|
"summary": "IP address access denied",
|
||
|
"detail": "Your IP $IP_ADDRESS isn't whitelisted to perform this action",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "IP Access denied",
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"post": {
|
||
|
"operationId": "create EUA",
|
||
|
"description": "API endpoints related to end-user agreements.",
|
||
|
"tags": [
|
||
|
"agreements"
|
||
|
],
|
||
|
"requestBody": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/EndUserAgreementRequest"
|
||
|
}
|
||
|
},
|
||
|
"application/x-www-form-urlencoded": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/EndUserAgreementRequest"
|
||
|
}
|
||
|
},
|
||
|
"multipart/form-data": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/EndUserAgreementRequest"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": true
|
||
|
},
|
||
|
"responses": {
|
||
|
"201": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/EndUserAgreement"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Create enduser agreement"
|
||
|
},
|
||
|
"400": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InstitutionFieldErrors": {
|
||
|
"value": {
|
||
|
"institution_id": {
|
||
|
"summary": "Unknown Institution ID $INSTITUTION_ID",
|
||
|
"detail": "Get Institution IDs from /institutions/?country={$COUNTRY_CODE}"
|
||
|
},
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Institution field errors",
|
||
|
"description": "Errors related to 'institution' field."
|
||
|
},
|
||
|
"AccessScopeFieldErrors": {
|
||
|
"value": {
|
||
|
"access_scope": [
|
||
|
{
|
||
|
"summary": "Unknown value '$SCOPE' in access_scope",
|
||
|
"detail": "Choose one or several from ['balances', 'details', 'transactions']"
|
||
|
},
|
||
|
{
|
||
|
"summary": "Institution access scope dependencies error",
|
||
|
"detail": "For this institution the following scopes are required together: ['balances', 'details']"
|
||
|
},
|
||
|
{
|
||
|
"summary": "Institution access scope dependencies error",
|
||
|
"detail": "The following scopes are mandatory for this institution: ['transactions']"
|
||
|
},
|
||
|
{
|
||
|
"summary": "Unsupported access scope selected.",
|
||
|
"detail": "The access scopes supported by the institution are ['transactions']. The following scopes are not supported: ['details', 'balances']"
|
||
|
},
|
||
|
{
|
||
|
"summary": "Field 'access_scope' may not be an empty list.",
|
||
|
"detail": "Please choose one or several of ['balances', 'details', 'transactions']."
|
||
|
}
|
||
|
],
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Access scope field errors",
|
||
|
"description": "Errors related to 'access_scope' field."
|
||
|
},
|
||
|
"MaxHistoricalDaysFieldErrors": {
|
||
|
"value": {
|
||
|
"max_historical_days": [
|
||
|
{
|
||
|
"summary": "Incorrect max_historical_days",
|
||
|
"detail": "max_historical_days must be > 0 and <= N26_NTSBDEB1 transaction_total_days (90)"
|
||
|
}
|
||
|
],
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Max historical days field errors",
|
||
|
"description": "Errors related to 'max_historical_days' field."
|
||
|
},
|
||
|
"AccessValidForDaysFieldErrors": {
|
||
|
"value": {
|
||
|
"access_valid_for_days": [
|
||
|
{
|
||
|
"summary": "Incorrect access_valid_for_days",
|
||
|
"detail": "access_valid_for_days must be > 0 and <= 180"
|
||
|
}
|
||
|
],
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Access valid for days field errors",
|
||
|
"description": "Errors related to 'access_valid_for_days' field."
|
||
|
},
|
||
|
"AgreementFieldErrors": {
|
||
|
"value": {
|
||
|
"agreement": {
|
||
|
"summary": "Incorrect Institution ID $INSTITUTION_ID",
|
||
|
"detail": "Provided Institution ID: '$INSTITUTION_ID' for requisition does not match EUA institution ID '$EUA_INSTITUTION_ID'. Please provide correct institution ID: '$EUA_INSTITUTION_ID'"
|
||
|
},
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Agreement field errors",
|
||
|
"description": "Errors related to 'agreement' field."
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Errors related to 'agreement' field."
|
||
|
},
|
||
|
"429": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NordigenRateLimitExceeded": {
|
||
|
"value": {
|
||
|
"summary": "Rate limit exceeded",
|
||
|
"detail": "The rate limit for this resource is <times>/<time_period>. Please try again in <time_left> seconds",
|
||
|
"status_code": 429
|
||
|
},
|
||
|
"summary": "Nordigen rate limit exceeded",
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
},
|
||
|
"402": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"PaymentRequired": {
|
||
|
"value": {
|
||
|
"summary": "Payment Required",
|
||
|
"detail": "Free usage limit exceeded",
|
||
|
"status_code": 402
|
||
|
},
|
||
|
"summary": "Payment Required",
|
||
|
"description": "Free usage limit exceeded"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Free usage limit exceeded"
|
||
|
},
|
||
|
"401": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidToken": {
|
||
|
"value": {
|
||
|
"summary": "Invalid token",
|
||
|
"detail": "Token is invalid or expired",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Invalid token",
|
||
|
"description": "Token is invalid or expired"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Token is invalid or expired"
|
||
|
},
|
||
|
"403": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"IPAccessDenied": {
|
||
|
"value": {
|
||
|
"summary": "IP address access denied",
|
||
|
"detail": "Your IP $IP_ADDRESS isn't whitelisted to perform this action",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "IP Access denied",
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/api/v2/agreements/enduser/{id}/": {
|
||
|
"get": {
|
||
|
"operationId": "retrieve EUA by id",
|
||
|
"description": "Retrieve end user agreement by ID",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "path",
|
||
|
"name": "id",
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"format": "uuid"
|
||
|
},
|
||
|
"description": "A UUID string identifying this end user agreement.",
|
||
|
"required": true
|
||
|
}
|
||
|
],
|
||
|
"tags": [
|
||
|
"agreements"
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/EndUserAgreement"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Retrieve end user agreement by ID"
|
||
|
},
|
||
|
"404": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NotFoundError": {
|
||
|
"value": {
|
||
|
"detail": "Not found.",
|
||
|
"summary": "Not found.",
|
||
|
"status_code": 404
|
||
|
},
|
||
|
"summary": "Not found error",
|
||
|
"description": "Not found error"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Not found error"
|
||
|
},
|
||
|
"400": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidID": {
|
||
|
"value": {
|
||
|
"summary": "Invalid ID",
|
||
|
"detail": "272785d5-de45-4efb-aa1a-f8157ffa94 is not a valid UUID.",
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Invalid ID",
|
||
|
"description": "Invalid ID"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Invalid ID"
|
||
|
},
|
||
|
"429": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NordigenRateLimitExceeded": {
|
||
|
"value": {
|
||
|
"summary": "Rate limit exceeded",
|
||
|
"detail": "The rate limit for this resource is <times>/<time_period>. Please try again in <time_left> seconds",
|
||
|
"status_code": 429
|
||
|
},
|
||
|
"summary": "Nordigen rate limit exceeded",
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
},
|
||
|
"401": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidToken": {
|
||
|
"value": {
|
||
|
"summary": "Invalid token",
|
||
|
"detail": "Token is invalid or expired",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Invalid token",
|
||
|
"description": "Token is invalid or expired"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Token is invalid or expired"
|
||
|
},
|
||
|
"403": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"IPAccessDenied": {
|
||
|
"value": {
|
||
|
"summary": "IP address access denied",
|
||
|
"detail": "Your IP $IP_ADDRESS isn't whitelisted to perform this action",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "IP Access denied",
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"delete": {
|
||
|
"operationId": "delete EUA by id",
|
||
|
"description": "Delete an end user agreement",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "path",
|
||
|
"name": "id",
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"format": "uuid"
|
||
|
},
|
||
|
"description": "A UUID string identifying this end user agreement.",
|
||
|
"required": true
|
||
|
}
|
||
|
],
|
||
|
"tags": [
|
||
|
"agreements"
|
||
|
],
|
||
|
"responses": {
|
||
|
"400": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"CannotDeleteEUA": {
|
||
|
"value": {
|
||
|
"summary": "Cannot delete End User Agreement",
|
||
|
"detail": "Cannot delete accepted End User Agreement: $EUA_ID. Only non accepted agreements can be deleted",
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Cannot delete EUA",
|
||
|
"description": "Cannot delete End User Agreement"
|
||
|
},
|
||
|
"InvalidID": {
|
||
|
"value": {
|
||
|
"summary": "Invalid ID",
|
||
|
"detail": "272785d5-de45-4efb-aa1a-f8157ffa94 is not a valid UUID.",
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Invalid ID",
|
||
|
"description": "Invalid ID"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Invalid ID"
|
||
|
},
|
||
|
"404": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NotFoundError": {
|
||
|
"value": {
|
||
|
"detail": "Not found.",
|
||
|
"summary": "Not found.",
|
||
|
"status_code": 404
|
||
|
},
|
||
|
"summary": "Not found error",
|
||
|
"description": "Not found error"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Not found error"
|
||
|
},
|
||
|
"429": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NordigenRateLimitExceeded": {
|
||
|
"value": {
|
||
|
"summary": "Rate limit exceeded",
|
||
|
"detail": "The rate limit for this resource is <times>/<time_period>. Please try again in <time_left> seconds",
|
||
|
"status_code": 429
|
||
|
},
|
||
|
"summary": "Nordigen rate limit exceeded",
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
},
|
||
|
"401": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidToken": {
|
||
|
"value": {
|
||
|
"summary": "Invalid token",
|
||
|
"detail": "Token is invalid or expired",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Invalid token",
|
||
|
"description": "Token is invalid or expired"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Token is invalid or expired"
|
||
|
},
|
||
|
"403": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"IPAccessDenied": {
|
||
|
"value": {
|
||
|
"summary": "IP address access denied",
|
||
|
"detail": "Your IP $IP_ADDRESS isn't whitelisted to perform this action",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "IP Access denied",
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/api/v2/agreements/enduser/{id}/accept/": {
|
||
|
"put": {
|
||
|
"operationId": "accept EUA",
|
||
|
"description": "Accept an end-user agreement via the API",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "path",
|
||
|
"name": "id",
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"format": "uuid"
|
||
|
},
|
||
|
"description": "A UUID string identifying this end user agreement.",
|
||
|
"required": true
|
||
|
}
|
||
|
],
|
||
|
"tags": [
|
||
|
"agreements"
|
||
|
],
|
||
|
"requestBody": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/EnduserAcceptanceDetailsRequest"
|
||
|
}
|
||
|
},
|
||
|
"application/x-www-form-urlencoded": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/EnduserAcceptanceDetailsRequest"
|
||
|
}
|
||
|
},
|
||
|
"multipart/form-data": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/EnduserAcceptanceDetailsRequest"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": true
|
||
|
},
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/EndUserAgreement"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Accept end user agreement"
|
||
|
},
|
||
|
"405": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"EUAAccepted": {
|
||
|
"value": {
|
||
|
"summary": "EUA cannot be accepted more than once",
|
||
|
"detail": "End User Agreements cannot be accepted more than once",
|
||
|
"status_code": 405
|
||
|
},
|
||
|
"summary": "EUA accepted",
|
||
|
"description": "End User Agreements cannot be accepted more than once"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "End User Agreements cannot be accepted more than once"
|
||
|
},
|
||
|
"403": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InsufficientPermissions": {
|
||
|
"value": {
|
||
|
"summary": "Insufficient permissions",
|
||
|
"detail": "Your company doesn't have permission to accept EUA. You'll have to use our default form for this action.",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "Insufficient permissions",
|
||
|
"description": "Company doesn't have permission to accept EUA"
|
||
|
},
|
||
|
"IPAccessDenied": {
|
||
|
"value": {
|
||
|
"summary": "IP address access denied",
|
||
|
"detail": "Your IP $IP_ADDRESS isn't whitelisted to perform this action",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "IP Access denied",
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "IP address not whitelisted"
|
||
|
},
|
||
|
"400": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidID": {
|
||
|
"value": {
|
||
|
"summary": "Invalid ID",
|
||
|
"detail": "272785d5-de45-4efb-aa1a-f8157ffa94 is not a valid UUID.",
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Invalid ID",
|
||
|
"description": "Invalid ID"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Invalid ID"
|
||
|
},
|
||
|
"404": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NotFoundError": {
|
||
|
"value": {
|
||
|
"detail": "Not found.",
|
||
|
"summary": "Not found.",
|
||
|
"status_code": 404
|
||
|
},
|
||
|
"summary": "Not found error",
|
||
|
"description": "Not found error"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Not found error"
|
||
|
},
|
||
|
"429": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NordigenRateLimitExceeded": {
|
||
|
"value": {
|
||
|
"summary": "Rate limit exceeded",
|
||
|
"detail": "The rate limit for this resource is <times>/<time_period>. Please try again in <time_left> seconds",
|
||
|
"status_code": 429
|
||
|
},
|
||
|
"summary": "Nordigen rate limit exceeded",
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
},
|
||
|
"401": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidToken": {
|
||
|
"value": {
|
||
|
"summary": "Invalid token",
|
||
|
"detail": "Token is invalid or expired",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Invalid token",
|
||
|
"description": "Token is invalid or expired"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Token is invalid or expired"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/api/v2/institutions/": {
|
||
|
"get": {
|
||
|
"operationId": "retrieve all supported Institutions in a given country",
|
||
|
"description": "List all available institutions",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "query",
|
||
|
"name": "access_scopes_supported",
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": "Boolean value, indicating if access scopes are supported",
|
||
|
"examples": {
|
||
|
"AccessScopesSupported": {
|
||
|
"value": "false",
|
||
|
"summary": "access_scopes_supported"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"in": "query",
|
||
|
"name": "account_selection_supported",
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": "Boolean value, indicating if account selection is supported",
|
||
|
"examples": {
|
||
|
"AccountSelectionSupported": {
|
||
|
"value": "false",
|
||
|
"summary": "account_selection_supported"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"in": "query",
|
||
|
"name": "business_accounts_supported",
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": "Boolean value, indicating if business accounts are supported",
|
||
|
"examples": {
|
||
|
"BusinessAccountsSupported": {
|
||
|
"value": "false",
|
||
|
"summary": "business_accounts_supported"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"in": "query",
|
||
|
"name": "card_accounts_supported",
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": "Boolean value, indicating if card accounts are supported",
|
||
|
"examples": {
|
||
|
"CardAccountsSupported": {
|
||
|
"value": "false",
|
||
|
"summary": "card_accounts_supported"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"in": "query",
|
||
|
"name": "corporate_accounts_supported",
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": "Boolean value, indicating if corporate accounts are supported",
|
||
|
"examples": {
|
||
|
"CorporateAccountsSupported": {
|
||
|
"value": "false",
|
||
|
"summary": "corporate_accounts_supported"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"in": "query",
|
||
|
"name": "country",
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": "ISO 3166 two-character country code",
|
||
|
"examples": {
|
||
|
"Austria": {
|
||
|
"value": "AT",
|
||
|
"summary": "Austria"
|
||
|
},
|
||
|
"Belgium": {
|
||
|
"value": "BE",
|
||
|
"summary": "Belgium"
|
||
|
},
|
||
|
"Bulgaria": {
|
||
|
"value": "BG",
|
||
|
"summary": "Bulgaria"
|
||
|
},
|
||
|
"Croatia": {
|
||
|
"value": "HR",
|
||
|
"summary": "Croatia"
|
||
|
},
|
||
|
"Cyprus": {
|
||
|
"value": "CY",
|
||
|
"summary": "Cyprus"
|
||
|
},
|
||
|
"Czechia": {
|
||
|
"value": "CZ",
|
||
|
"summary": "Czechia"
|
||
|
},
|
||
|
"Denmark": {
|
||
|
"value": "DK",
|
||
|
"summary": "Denmark"
|
||
|
},
|
||
|
"Estonia": {
|
||
|
"value": "EE",
|
||
|
"summary": "Estonia"
|
||
|
},
|
||
|
"Finland": {
|
||
|
"value": "FI",
|
||
|
"summary": "Finland"
|
||
|
},
|
||
|
"France": {
|
||
|
"value": "FR",
|
||
|
"summary": "France"
|
||
|
},
|
||
|
"Germany": {
|
||
|
"value": "DE",
|
||
|
"summary": "Germany"
|
||
|
},
|
||
|
"Greece": {
|
||
|
"value": "GR",
|
||
|
"summary": "Greece"
|
||
|
},
|
||
|
"Hungary": {
|
||
|
"value": "HU",
|
||
|
"summary": "Hungary"
|
||
|
},
|
||
|
"Iceland": {
|
||
|
"value": "IS",
|
||
|
"summary": "Iceland"
|
||
|
},
|
||
|
"Ireland": {
|
||
|
"value": "IE",
|
||
|
"summary": "Ireland"
|
||
|
},
|
||
|
"Italy": {
|
||
|
"value": "IT",
|
||
|
"summary": "Italy"
|
||
|
},
|
||
|
"Latvia": {
|
||
|
"value": "LV",
|
||
|
"summary": "Latvia"
|
||
|
},
|
||
|
"Liechtenstein": {
|
||
|
"value": "LI",
|
||
|
"summary": "Liechtenstein"
|
||
|
},
|
||
|
"Lithuania": {
|
||
|
"value": "LT",
|
||
|
"summary": "Lithuania"
|
||
|
},
|
||
|
"Luxembourg": {
|
||
|
"value": "LU",
|
||
|
"summary": "Luxembourg"
|
||
|
},
|
||
|
"Malta": {
|
||
|
"value": "MT",
|
||
|
"summary": "Malta"
|
||
|
},
|
||
|
"Netherlands": {
|
||
|
"value": "NL",
|
||
|
"summary": "Netherlands"
|
||
|
},
|
||
|
"Norway": {
|
||
|
"value": "NO",
|
||
|
"summary": "Norway"
|
||
|
},
|
||
|
"Poland": {
|
||
|
"value": "PL",
|
||
|
"summary": "Poland"
|
||
|
},
|
||
|
"Portugal": {
|
||
|
"value": "PT",
|
||
|
"summary": "Portugal"
|
||
|
},
|
||
|
"Romania": {
|
||
|
"value": "RO",
|
||
|
"summary": "Romania"
|
||
|
},
|
||
|
"Slovakia": {
|
||
|
"value": "SK",
|
||
|
"summary": "Slovakia"
|
||
|
},
|
||
|
"Slovenia": {
|
||
|
"value": "SI",
|
||
|
"summary": "Slovenia"
|
||
|
},
|
||
|
"Spain": {
|
||
|
"value": "ES",
|
||
|
"summary": "Spain"
|
||
|
},
|
||
|
"Sweden": {
|
||
|
"value": "SE",
|
||
|
"summary": "Sweden"
|
||
|
},
|
||
|
"UnitedKingdom": {
|
||
|
"value": "GB",
|
||
|
"summary": "United Kingdom"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"in": "query",
|
||
|
"name": "payment_submission_supported",
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": "Boolean value, indicating if payment submission is supported",
|
||
|
"examples": {
|
||
|
"PaymentSubmissionSupported": {
|
||
|
"value": "false",
|
||
|
"summary": "payment_submission_supported"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"in": "query",
|
||
|
"name": "payments_enabled",
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": "Boolean value, indicating if payments are supported",
|
||
|
"examples": {
|
||
|
"PaymentsEnabled": {
|
||
|
"value": "false",
|
||
|
"summary": "payments_enabled"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"in": "query",
|
||
|
"name": "pending_transactions_supported",
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": "Boolean value, indicating if pending transactions are supported",
|
||
|
"examples": {
|
||
|
"PendingTransactionsSupported": {
|
||
|
"value": "false",
|
||
|
"summary": "pending_transactions_supported"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"in": "query",
|
||
|
"name": "private_accounts_supported",
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": "Boolean value, indicating if private accounts are supported",
|
||
|
"examples": {
|
||
|
"PrivateAccountsSupported": {
|
||
|
"value": "false",
|
||
|
"summary": "private_accounts_supported"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"in": "query",
|
||
|
"name": "read_debtor_account_supported",
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": "Boolean value, indicating if debtor account can be read before submitting payment",
|
||
|
"examples": {
|
||
|
"ReadDebtorAccountSupported": {
|
||
|
"value": "false",
|
||
|
"summary": "read_debtor_account_supported"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"in": "query",
|
||
|
"name": "read_refund_account_supported",
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": "Boolean value, indicating if read refund account is supported",
|
||
|
"examples": {
|
||
|
"ReadRefundAccountSupported": {
|
||
|
"value": "false",
|
||
|
"summary": "read_refund_account_supported"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"in": "query",
|
||
|
"name": "ssn_verification_supported",
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": "Boolean value, indicating if ssn verification is supported",
|
||
|
"examples": {
|
||
|
"SsnVerificationSupported": {
|
||
|
"value": "false",
|
||
|
"summary": "ssn_verification_supported"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"tags": [
|
||
|
"institutions"
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/components/schemas/Integration"
|
||
|
}
|
||
|
},
|
||
|
"examples": {
|
||
|
"SupportedInstitutions": {
|
||
|
"value": [
|
||
|
{
|
||
|
"id": "N26_NTSBDEB1",
|
||
|
"name": "N26 Bank",
|
||
|
"bic": "NTSBDEB1",
|
||
|
"transaction_total_days": "90",
|
||
|
"countries": [
|
||
|
"GB",
|
||
|
"NO",
|
||
|
"SE",
|
||
|
"FI",
|
||
|
"DK",
|
||
|
"EE",
|
||
|
"LV",
|
||
|
"LT",
|
||
|
"NL",
|
||
|
"CZ",
|
||
|
"ES",
|
||
|
"PL",
|
||
|
"BE",
|
||
|
"DE",
|
||
|
"AT",
|
||
|
"BG",
|
||
|
"HR",
|
||
|
"CY",
|
||
|
"FR",
|
||
|
"GR",
|
||
|
"HU",
|
||
|
"IS",
|
||
|
"IE",
|
||
|
"IT",
|
||
|
"LI",
|
||
|
"LU",
|
||
|
"MT",
|
||
|
"PT",
|
||
|
"RO",
|
||
|
"SK",
|
||
|
"SI"
|
||
|
],
|
||
|
"logo": "https://cdn-logos.gocardless.com/ais/N26_SANDBOX_NTSBDEB1.png",
|
||
|
"identification_codes": []
|
||
|
}
|
||
|
],
|
||
|
"summary": "Supported Institutions",
|
||
|
"description": "some of supported Institutions"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "list of supported Institutions in the country"
|
||
|
},
|
||
|
"400": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NotAValidChoice": {
|
||
|
"value": {
|
||
|
"summary": "Invalid country choice.",
|
||
|
"detail": "GBA is not a valid choice.",
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Not a valid choice",
|
||
|
"description": "Provided country is not valid"
|
||
|
},
|
||
|
"UnknownFields": {
|
||
|
"value": {
|
||
|
"summary": "Unknown fields",
|
||
|
"detail": "Unknown fields {${FIELD}} in {${LOCATION}}",
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Unknown Fields",
|
||
|
"description": "Unknown Fields"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Unknown Fields"
|
||
|
},
|
||
|
"404": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NotFoundError": {
|
||
|
"value": {
|
||
|
"detail": "Not found.",
|
||
|
"summary": "Not found.",
|
||
|
"status_code": 404
|
||
|
},
|
||
|
"summary": "Not found error",
|
||
|
"description": "Not found error"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Not found error"
|
||
|
},
|
||
|
"429": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NordigenRateLimitExceeded": {
|
||
|
"value": {
|
||
|
"summary": "Rate limit exceeded",
|
||
|
"detail": "The rate limit for this resource is <times>/<time_period>. Please try again in <time_left> seconds",
|
||
|
"status_code": 429
|
||
|
},
|
||
|
"summary": "Nordigen rate limit exceeded",
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
},
|
||
|
"401": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidToken": {
|
||
|
"value": {
|
||
|
"summary": "Invalid token",
|
||
|
"detail": "Token is invalid or expired",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Invalid token",
|
||
|
"description": "Token is invalid or expired"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Token is invalid or expired"
|
||
|
},
|
||
|
"403": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"IPAccessDenied": {
|
||
|
"value": {
|
||
|
"summary": "IP address access denied",
|
||
|
"detail": "Your IP $IP_ADDRESS isn't whitelisted to perform this action",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "IP Access denied",
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/api/v2/institutions/{id}/": {
|
||
|
"get": {
|
||
|
"operationId": "retrieve institution",
|
||
|
"description": "Get details about a specific Institution and its supported features",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "path",
|
||
|
"name": "id",
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"required": true,
|
||
|
"examples": {
|
||
|
"N26": {
|
||
|
"value": "N26_NTSBDEB1",
|
||
|
"summary": "N26",
|
||
|
"description": "Nordigen's Institution ID for N26"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"tags": [
|
||
|
"institutions"
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/IntegrationRetrieve"
|
||
|
},
|
||
|
"examples": {
|
||
|
"N26Bank": {
|
||
|
"value": {
|
||
|
"id": "N26_NTSBDEB1",
|
||
|
"name": "N26 Bank",
|
||
|
"bic": "NTSBDEB1",
|
||
|
"transaction_total_days": "90",
|
||
|
"countries": [
|
||
|
"GB",
|
||
|
"NO",
|
||
|
"SE",
|
||
|
"FI",
|
||
|
"DK",
|
||
|
"EE",
|
||
|
"LV",
|
||
|
"LT",
|
||
|
"NL",
|
||
|
"CZ",
|
||
|
"ES",
|
||
|
"PL",
|
||
|
"BE",
|
||
|
"DE",
|
||
|
"AT",
|
||
|
"BG",
|
||
|
"HR",
|
||
|
"CY",
|
||
|
"FR",
|
||
|
"GR",
|
||
|
"HU",
|
||
|
"IS",
|
||
|
"IE",
|
||
|
"IT",
|
||
|
"LI",
|
||
|
"LU",
|
||
|
"MT",
|
||
|
"PT",
|
||
|
"RO",
|
||
|
"SK",
|
||
|
"SI"
|
||
|
],
|
||
|
"logo": "https://cdn-logos.gocardless.com/ais/N26_SANDBOX_NTSBDEB1.png",
|
||
|
"supported_payments": {
|
||
|
"single-payment": [
|
||
|
"SCT",
|
||
|
"ISCT"
|
||
|
]
|
||
|
},
|
||
|
"supported_features": [
|
||
|
"account_selection",
|
||
|
"business_accounts",
|
||
|
"card_accounts",
|
||
|
"payments",
|
||
|
"private_accounts"
|
||
|
],
|
||
|
"identification_codes": []
|
||
|
},
|
||
|
"summary": "N26 Bank",
|
||
|
"description": "N26 Bank"
|
||
|
},
|
||
|
"ABNAMROBank": {
|
||
|
"value": {
|
||
|
"id": "ABNAMRO_FTSBDEFAXXX",
|
||
|
"name": "ABN AMRO Bank Commercial",
|
||
|
"bic": "FTSBDEFAXXX",
|
||
|
"transaction_total_days": "558",
|
||
|
"countries": [
|
||
|
"DE"
|
||
|
],
|
||
|
"logo": "https://cdn-logos.gocardless.com/ais/ABNAMRO_FTSBDEFAXXX.png",
|
||
|
"supported_payments": {
|
||
|
"single-payment": [
|
||
|
"SCT"
|
||
|
]
|
||
|
},
|
||
|
"supported_features": [
|
||
|
"business_accounts",
|
||
|
"card_accounts",
|
||
|
"payments",
|
||
|
"pending_transactions",
|
||
|
"private_accounts"
|
||
|
],
|
||
|
"identification_codes": []
|
||
|
},
|
||
|
"summary": "ABN AMRO Bank",
|
||
|
"description": "ABN AMRO Bank"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Retrieve institution by id"
|
||
|
},
|
||
|
"404": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NotFoundError": {
|
||
|
"value": {
|
||
|
"detail": "Not found.",
|
||
|
"summary": "Not found.",
|
||
|
"status_code": 404
|
||
|
},
|
||
|
"summary": "Not found error",
|
||
|
"description": "Not found error"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Not found error"
|
||
|
},
|
||
|
"429": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NordigenRateLimitExceeded": {
|
||
|
"value": {
|
||
|
"summary": "Rate limit exceeded",
|
||
|
"detail": "The rate limit for this resource is <times>/<time_period>. Please try again in <time_left> seconds",
|
||
|
"status_code": 429
|
||
|
},
|
||
|
"summary": "Nordigen rate limit exceeded",
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
},
|
||
|
"401": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidToken": {
|
||
|
"value": {
|
||
|
"summary": "Invalid token",
|
||
|
"detail": "Token is invalid or expired",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Invalid token",
|
||
|
"description": "Token is invalid or expired"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Token is invalid or expired"
|
||
|
},
|
||
|
"403": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"IPAccessDenied": {
|
||
|
"value": {
|
||
|
"summary": "IP address access denied",
|
||
|
"detail": "Your IP $IP_ADDRESS isn't whitelisted to perform this action",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "IP Access denied",
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/api/v2/requisitions/": {
|
||
|
"get": {
|
||
|
"operationId": "retrieve all requisitions",
|
||
|
"description": "Retrieve all requisitions belonging to the company",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "limit",
|
||
|
"required": false,
|
||
|
"in": "query",
|
||
|
"description": "Number of results to return per page.",
|
||
|
"schema": {
|
||
|
"type": "integer",
|
||
|
"default": 100,
|
||
|
"minimum": 1
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"name": "offset",
|
||
|
"required": false,
|
||
|
"in": "query",
|
||
|
"description": "The initial zero-based index from which to return the results.",
|
||
|
"schema": {
|
||
|
"type": "integer",
|
||
|
"default": 0,
|
||
|
"minimum": 0
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"tags": [
|
||
|
"requisitions"
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/PaginatedRequisitionList"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Retrieve all requisitions"
|
||
|
},
|
||
|
"404": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NotFoundError": {
|
||
|
"value": {
|
||
|
"detail": "Not found.",
|
||
|
"summary": "Not found.",
|
||
|
"status_code": 404
|
||
|
},
|
||
|
"summary": "Not found error",
|
||
|
"description": "Not found error"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Not found error"
|
||
|
},
|
||
|
"400": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"UnknownFields": {
|
||
|
"value": {
|
||
|
"summary": "Unknown fields",
|
||
|
"detail": "Unknown fields {${FIELD}} in {${LOCATION}}",
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Unknown Fields",
|
||
|
"description": "Unknown Fields"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Unknown Fields"
|
||
|
},
|
||
|
"429": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NordigenRateLimitExceeded": {
|
||
|
"value": {
|
||
|
"summary": "Rate limit exceeded",
|
||
|
"detail": "The rate limit for this resource is <times>/<time_period>. Please try again in <time_left> seconds",
|
||
|
"status_code": 429
|
||
|
},
|
||
|
"summary": "Nordigen rate limit exceeded",
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
},
|
||
|
"401": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidToken": {
|
||
|
"value": {
|
||
|
"summary": "Invalid token",
|
||
|
"detail": "Token is invalid or expired",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Invalid token",
|
||
|
"description": "Token is invalid or expired"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Token is invalid or expired"
|
||
|
},
|
||
|
"403": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"IPAccessDenied": {
|
||
|
"value": {
|
||
|
"summary": "IP address access denied",
|
||
|
"detail": "Your IP $IP_ADDRESS isn't whitelisted to perform this action",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "IP Access denied",
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"post": {
|
||
|
"operationId": "Create requisition",
|
||
|
"description": "Create a new requisition",
|
||
|
"tags": [
|
||
|
"requisitions"
|
||
|
],
|
||
|
"requestBody": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/RequisitionRequest"
|
||
|
}
|
||
|
},
|
||
|
"application/x-www-form-urlencoded": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/RequisitionRequest"
|
||
|
}
|
||
|
},
|
||
|
"multipart/form-data": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/RequisitionRequest"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": true
|
||
|
},
|
||
|
"responses": {
|
||
|
"201": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/SpectacularRequisition"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Requisition has been successfully created"
|
||
|
},
|
||
|
"400": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"ReferenceFieldErrors": {
|
||
|
"value": {
|
||
|
"reference": {
|
||
|
"summary": "Client reference must be unique",
|
||
|
"detail": "Client reference: $REFERENCE_ID already exists"
|
||
|
},
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Reference field errors",
|
||
|
"description": "Errors related to 'reference' field."
|
||
|
},
|
||
|
"UserLanguageFieldErrors": {
|
||
|
"value": {
|
||
|
"user_language": {
|
||
|
"summary": "Provided user_language is invalid or not supported",
|
||
|
"detail": "'$LNG_CODE' is an invalid or unsupported language"
|
||
|
},
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "User language field errors",
|
||
|
"description": "Errors related to 'user_language' field."
|
||
|
},
|
||
|
"AgreementFieldErrors": {
|
||
|
"value": {
|
||
|
"agreement": [
|
||
|
{
|
||
|
"summary": "Unknown Institution ID $ASPSP_ID",
|
||
|
"detail": "Get Institution IDs from /institutions/?country={$COUNTRY_CODE}"
|
||
|
},
|
||
|
{
|
||
|
"summary": "Invalid EndUserAgreement ID",
|
||
|
"detail": "$AGREEMENT_ID is not a valid EndUserAgreement UUID. Please specify valid agreement from /api/agreements/enduser/?={$ENDUSER_ID} or create a new one"
|
||
|
}
|
||
|
],
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Agreement field errors",
|
||
|
"description": "Errors related to 'agreement' field."
|
||
|
},
|
||
|
"RedirectFieldErrors": {
|
||
|
"value": {
|
||
|
"redirect": [
|
||
|
{
|
||
|
"summary": "Redirect URL is required",
|
||
|
"detail": "Where an end user will be redirected after finishing authentication in the Institution"
|
||
|
},
|
||
|
{
|
||
|
"summary": "Invalid redirect URI",
|
||
|
"detail": "Redirect URI must have a valid URI structure"
|
||
|
}
|
||
|
],
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Redirect field errors",
|
||
|
"description": "Errors related to 'redirect' field."
|
||
|
},
|
||
|
"SSNFieldErrors": {
|
||
|
"value": {
|
||
|
"ssn": {
|
||
|
"summary": "SSN verification not supported",
|
||
|
"detail": "SSN verification not supported for $INSTITUTION_ID"
|
||
|
},
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "SSN field errors",
|
||
|
"description": "Errors related to 'ssn' field."
|
||
|
},
|
||
|
"AccountSelectionFieldErrors": {
|
||
|
"value": {
|
||
|
"account_selection": {
|
||
|
"summary": "Account selection not supported",
|
||
|
"detail": "Account selection not supported for $INSTITUTION_ID"
|
||
|
},
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Account selection field errors",
|
||
|
"description": "Errors related to 'account_selection' field."
|
||
|
},
|
||
|
"InstitutionFieldErrors": {
|
||
|
"value": {
|
||
|
"institution_id": {
|
||
|
"summary": "Unknown Institution ID $INSTITUTION_ID",
|
||
|
"detail": "Get Institution IDs from /institutions/?country={$COUNTRY_CODE}"
|
||
|
},
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Institution field errors",
|
||
|
"description": "Errors related to 'institution' field."
|
||
|
},
|
||
|
"UnknownFields": {
|
||
|
"value": {
|
||
|
"summary": "Unknown fields",
|
||
|
"detail": "Unknown fields {${FIELD}} in {${LOCATION}}",
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Unknown Fields",
|
||
|
"description": "Unknown Fields"
|
||
|
},
|
||
|
"FieldsRequired": {
|
||
|
"value": {
|
||
|
"redirect": [
|
||
|
"This field is required."
|
||
|
],
|
||
|
"institution_id": [
|
||
|
"This field is required."
|
||
|
],
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Fields required",
|
||
|
"description": "Field is required"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Field is required"
|
||
|
},
|
||
|
"404": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"AgreementNotFoundErrors": {
|
||
|
"value": {
|
||
|
"agreement": {
|
||
|
"summary": "ID $AGREEMENT_ID not found",
|
||
|
"detail": "Please check whether you specified a valid ID"
|
||
|
},
|
||
|
"status_code": 404
|
||
|
},
|
||
|
"summary": "Agreement not found errors",
|
||
|
"description": "Errors related to 'agreement' field."
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Errors related to 'agreement' field."
|
||
|
},
|
||
|
"429": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NordigenRateLimitExceeded": {
|
||
|
"value": {
|
||
|
"summary": "Rate limit exceeded",
|
||
|
"detail": "The rate limit for this resource is <times>/<time_period>. Please try again in <time_left> seconds",
|
||
|
"status_code": 429
|
||
|
},
|
||
|
"summary": "Nordigen rate limit exceeded",
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
},
|
||
|
"402": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"PaymentRequired": {
|
||
|
"value": {
|
||
|
"summary": "Payment Required",
|
||
|
"detail": "Free usage limit exceeded",
|
||
|
"status_code": 402
|
||
|
},
|
||
|
"summary": "Payment Required",
|
||
|
"description": "Free usage limit exceeded"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Free usage limit exceeded"
|
||
|
},
|
||
|
"401": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidToken": {
|
||
|
"value": {
|
||
|
"summary": "Invalid token",
|
||
|
"detail": "Token is invalid or expired",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Invalid token",
|
||
|
"description": "Token is invalid or expired"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Token is invalid or expired"
|
||
|
},
|
||
|
"403": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"IPAccessDenied": {
|
||
|
"value": {
|
||
|
"summary": "IP address access denied",
|
||
|
"detail": "Your IP $IP_ADDRESS isn't whitelisted to perform this action",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "IP Access denied",
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/api/v2/requisitions/{id}/": {
|
||
|
"get": {
|
||
|
"operationId": "requisition by id",
|
||
|
"description": "Retrieve a requisition by ID",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "path",
|
||
|
"name": "id",
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"format": "uuid"
|
||
|
},
|
||
|
"description": "A UUID string identifying this requisition.",
|
||
|
"required": true
|
||
|
}
|
||
|
],
|
||
|
"tags": [
|
||
|
"requisitions"
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/Requisition"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Get requisition by ID"
|
||
|
},
|
||
|
"404": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NotFoundError": {
|
||
|
"value": {
|
||
|
"detail": "Not found.",
|
||
|
"summary": "Not found.",
|
||
|
"status_code": 404
|
||
|
},
|
||
|
"summary": "Not found error",
|
||
|
"description": "Not found error"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Not found error"
|
||
|
},
|
||
|
"400": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidID": {
|
||
|
"value": {
|
||
|
"summary": "Invalid ID",
|
||
|
"detail": "272785d5-de45-4efb-aa1a-f8157ffa94 is not a valid UUID.",
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Invalid ID",
|
||
|
"description": "Invalid ID"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Invalid ID"
|
||
|
},
|
||
|
"429": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NordigenRateLimitExceeded": {
|
||
|
"value": {
|
||
|
"summary": "Rate limit exceeded",
|
||
|
"detail": "The rate limit for this resource is <times>/<time_period>. Please try again in <time_left> seconds",
|
||
|
"status_code": 429
|
||
|
},
|
||
|
"summary": "Nordigen rate limit exceeded",
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
},
|
||
|
"401": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidToken": {
|
||
|
"value": {
|
||
|
"summary": "Invalid token",
|
||
|
"detail": "Token is invalid or expired",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Invalid token",
|
||
|
"description": "Token is invalid or expired"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Token is invalid or expired"
|
||
|
},
|
||
|
"403": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"IPAccessDenied": {
|
||
|
"value": {
|
||
|
"summary": "IP address access denied",
|
||
|
"detail": "Your IP $IP_ADDRESS isn't whitelisted to perform this action",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "IP Access denied",
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"delete": {
|
||
|
"operationId": "delete requisition by id",
|
||
|
"description": "Delete requisition and its end user agreement",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "path",
|
||
|
"name": "id",
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"format": "uuid"
|
||
|
},
|
||
|
"description": "A UUID string identifying this requisition.",
|
||
|
"required": true
|
||
|
}
|
||
|
],
|
||
|
"tags": [
|
||
|
"requisitions"
|
||
|
],
|
||
|
"responses": {
|
||
|
"400": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidID": {
|
||
|
"value": {
|
||
|
"summary": "Invalid ID",
|
||
|
"detail": "272785d5-de45-4efb-aa1a-f8157ffa94 is not a valid UUID.",
|
||
|
"status_code": 400
|
||
|
},
|
||
|
"summary": "Invalid ID",
|
||
|
"description": "Invalid ID"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Invalid ID"
|
||
|
},
|
||
|
"404": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NotFoundError": {
|
||
|
"value": {
|
||
|
"detail": "Not found.",
|
||
|
"summary": "Not found.",
|
||
|
"status_code": 404
|
||
|
},
|
||
|
"summary": "Not found error",
|
||
|
"description": "Not found error"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Not found error"
|
||
|
},
|
||
|
"429": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NordigenRateLimitExceeded": {
|
||
|
"value": {
|
||
|
"summary": "Rate limit exceeded",
|
||
|
"detail": "The rate limit for this resource is <times>/<time_period>. Please try again in <time_left> seconds",
|
||
|
"status_code": 429
|
||
|
},
|
||
|
"summary": "Nordigen rate limit exceeded",
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
},
|
||
|
"401": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidToken": {
|
||
|
"value": {
|
||
|
"summary": "Invalid token",
|
||
|
"detail": "Token is invalid or expired",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Invalid token",
|
||
|
"description": "Token is invalid or expired"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Token is invalid or expired"
|
||
|
},
|
||
|
"403": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"IPAccessDenied": {
|
||
|
"value": {
|
||
|
"summary": "IP address access denied",
|
||
|
"detail": "Your IP $IP_ADDRESS isn't whitelisted to perform this action",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "IP Access denied",
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/api/v2/token/new/": {
|
||
|
"post": {
|
||
|
"operationId": "Obtain new access/refresh token pair",
|
||
|
"description": "Obtain JWT pair",
|
||
|
"tags": [
|
||
|
"token"
|
||
|
],
|
||
|
"requestBody": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/JWTObtainPairRequest"
|
||
|
}
|
||
|
},
|
||
|
"application/x-www-form-urlencoded": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/JWTObtainPairRequest"
|
||
|
}
|
||
|
},
|
||
|
"multipart/form-data": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/JWTObtainPairRequest"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": true
|
||
|
},
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/SpectacularJWTObtain"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Obtain JWT response."
|
||
|
},
|
||
|
"401": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"AuthenticationFailed": {
|
||
|
"value": {
|
||
|
"summary": "Authentication failed",
|
||
|
"detail": "No active account found with the given credentials",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Authentication failed",
|
||
|
"description": "Incorrect secret key or id"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Incorrect secret key or id"
|
||
|
},
|
||
|
"403": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"IPAccessDenied": {
|
||
|
"value": {
|
||
|
"summary": "IP address access denied",
|
||
|
"detail": "Your IP $IP_ADDRESS isn't whitelisted to perform this action",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "IP Access denied",
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "IP address not whitelisted"
|
||
|
},
|
||
|
"429": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NordigenRateLimitExceeded": {
|
||
|
"value": {
|
||
|
"summary": "Rate limit exceeded",
|
||
|
"detail": "The rate limit for this resource is <times>/<time_period>. Please try again in <time_left> seconds",
|
||
|
"status_code": 429
|
||
|
},
|
||
|
"summary": "Nordigen rate limit exceeded",
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/api/v2/token/refresh/": {
|
||
|
"post": {
|
||
|
"operationId": "Get a new access token",
|
||
|
"description": "Refresh access token",
|
||
|
"tags": [
|
||
|
"token"
|
||
|
],
|
||
|
"requestBody": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/JWTRefreshRequest"
|
||
|
}
|
||
|
},
|
||
|
"application/x-www-form-urlencoded": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/JWTRefreshRequest"
|
||
|
}
|
||
|
},
|
||
|
"multipart/form-data": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/JWTRefreshRequest"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": true
|
||
|
},
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/SpectacularJWTRefresh"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Refresh access token."
|
||
|
},
|
||
|
"403": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"IPAccessDenied": {
|
||
|
"value": {
|
||
|
"summary": "IP address access denied",
|
||
|
"detail": "Your IP $IP_ADDRESS isn't whitelisted to perform this action",
|
||
|
"status_code": 403
|
||
|
},
|
||
|
"summary": "IP Access denied",
|
||
|
"description": "IP address not whitelisted"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "IP address not whitelisted"
|
||
|
},
|
||
|
"401": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"InvalidToken": {
|
||
|
"value": {
|
||
|
"summary": "Invalid token",
|
||
|
"detail": "Token is invalid or expired",
|
||
|
"status_code": 401
|
||
|
},
|
||
|
"summary": "Invalid token",
|
||
|
"description": "Token is invalid or expired"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Token is invalid or expired"
|
||
|
},
|
||
|
"429": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||
|
},
|
||
|
"examples": {
|
||
|
"NordigenRateLimitExceeded": {
|
||
|
"value": {
|
||
|
"summary": "Rate limit exceeded",
|
||
|
"detail": "The rate limit for this resource is <times>/<time_period>. Please try again in <time_left> seconds",
|
||
|
"status_code": 429
|
||
|
},
|
||
|
"summary": "Nordigen rate limit exceeded",
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"description": "Nordigen rate limit exceeded"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"components": {
|
||
|
"schemas": {
|
||
|
"Account": {
|
||
|
"type": "object",
|
||
|
"description": "AccountSerializer.",
|
||
|
"properties": {
|
||
|
"id": {
|
||
|
"type": "string",
|
||
|
"format": "uuid",
|
||
|
"readOnly": true,
|
||
|
"description": "The ID of this Account, used to refer to this account in other API calls."
|
||
|
},
|
||
|
"created": {
|
||
|
"type": "string",
|
||
|
"format": "date-time",
|
||
|
"readOnly": true,
|
||
|
"description": "The date & time at which the account object was created."
|
||
|
},
|
||
|
"last_accessed": {
|
||
|
"type": "string",
|
||
|
"format": "date-time",
|
||
|
"readOnly": true,
|
||
|
"description": "The date & time at which the account object was last accessed."
|
||
|
},
|
||
|
"iban": {
|
||
|
"type": "string",
|
||
|
"readOnly": true,
|
||
|
"description": "The Account IBAN"
|
||
|
},
|
||
|
"status": {
|
||
|
"type": "string",
|
||
|
"readOnly": true,
|
||
|
"description": "The processing status of this account."
|
||
|
},
|
||
|
"institution_id": {
|
||
|
"type": "string",
|
||
|
"readOnly": true,
|
||
|
"description": "The ASPSP associated with this account."
|
||
|
},
|
||
|
"owner_name": {
|
||
|
"type": "string",
|
||
|
"readOnly": true,
|
||
|
"description": "The name of the account owner."
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"AccountBalance": {
|
||
|
"type": "object",
|
||
|
"description": "AccountBalanceSerializer.",
|
||
|
"properties": {
|
||
|
"balances": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/components/schemas/BalanceSchema"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"AccountDetail": {
|
||
|
"type": "object",
|
||
|
"description": "AccountDetailSerializer.",
|
||
|
"properties": {
|
||
|
"account": {
|
||
|
"allOf": [
|
||
|
{
|
||
|
"$ref": "#/components/schemas/DetailSchema"
|
||
|
}
|
||
|
],
|
||
|
"description": "account"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"account"
|
||
|
]
|
||
|
},
|
||
|
"AccountSchema": {
|
||
|
"type": "object",
|
||
|
"description": "AccountSchema.",
|
||
|
"properties": {
|
||
|
"iban": {
|
||
|
"type": "string",
|
||
|
"description": "iban"
|
||
|
},
|
||
|
"bban": {
|
||
|
"type": "string",
|
||
|
"description": "bban"
|
||
|
},
|
||
|
"pan": {
|
||
|
"type": "string",
|
||
|
"description": "pan"
|
||
|
},
|
||
|
"maskedPan": {
|
||
|
"type": "string",
|
||
|
"description": "maskedPan"
|
||
|
},
|
||
|
"msisdn": {
|
||
|
"type": "string",
|
||
|
"description": "msisdn"
|
||
|
},
|
||
|
"currency": {
|
||
|
"type": "string",
|
||
|
"description": "currency"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"BalanceAmountSchema": {
|
||
|
"type": "object",
|
||
|
"description": "BalanceAmountSchema.",
|
||
|
"properties": {
|
||
|
"amount": {
|
||
|
"type": "string",
|
||
|
"description": "amount"
|
||
|
},
|
||
|
"currency": {
|
||
|
"type": "string",
|
||
|
"description": "currency"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"amount",
|
||
|
"currency"
|
||
|
]
|
||
|
},
|
||
|
"BalanceSchema": {
|
||
|
"type": "object",
|
||
|
"description": "BalanceSchema.",
|
||
|
"properties": {
|
||
|
"balanceAmount": {
|
||
|
"allOf": [
|
||
|
{
|
||
|
"$ref": "#/components/schemas/BalanceAmountSchema"
|
||
|
}
|
||
|
],
|
||
|
"description": "balanceAmount"
|
||
|
},
|
||
|
"balanceType": {
|
||
|
"type": "string",
|
||
|
"description": "balanceType"
|
||
|
},
|
||
|
"creditLimitIncluded": {
|
||
|
"type": "boolean",
|
||
|
"description": "creditLimitIncluded"
|
||
|
},
|
||
|
"lastChangeDateTime": {
|
||
|
"type": "string",
|
||
|
"description": "lastChangeDateTime"
|
||
|
},
|
||
|
"referenceDate": {
|
||
|
"type": "string",
|
||
|
"description": "referenceDate"
|
||
|
},
|
||
|
"lastCommittedTransaction": {
|
||
|
"type": "string",
|
||
|
"description": "lastCommittedTransaction"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"balanceAmount",
|
||
|
"balanceType"
|
||
|
]
|
||
|
},
|
||
|
"BankTransaction": {
|
||
|
"type": "object",
|
||
|
"description": "BankTransactionSerializer.",
|
||
|
"properties": {
|
||
|
"booked": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/components/schemas/TransactionSchema"
|
||
|
}
|
||
|
},
|
||
|
"pending": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/components/schemas/TransactionSchema"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"booked"
|
||
|
]
|
||
|
},
|
||
|
"CurrencyExchangeSchema": {
|
||
|
"type": "object",
|
||
|
"description": "CurrencyExchangeSchema.",
|
||
|
"properties": {
|
||
|
"sourceCurrency": {
|
||
|
"type": "string",
|
||
|
"description": "sourceCurrency"
|
||
|
},
|
||
|
"exchangeRate": {
|
||
|
"type": "string",
|
||
|
"description": "exchangeRate"
|
||
|
},
|
||
|
"unitCurrency": {
|
||
|
"type": "string",
|
||
|
"description": "unitCurrency"
|
||
|
},
|
||
|
"targetCurrency": {
|
||
|
"type": "string",
|
||
|
"description": "targetCurrency"
|
||
|
},
|
||
|
"quotationDate": {
|
||
|
"type": "string",
|
||
|
"description": "quotationDate"
|
||
|
},
|
||
|
"contractIdentification": {
|
||
|
"type": "string",
|
||
|
"description": "contractIdentification"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"DetailSchema": {
|
||
|
"type": "object",
|
||
|
"description": "DetailSchema.",
|
||
|
"properties": {
|
||
|
"resourceId": {
|
||
|
"type": "string",
|
||
|
"description": "resourceId"
|
||
|
},
|
||
|
"iban": {
|
||
|
"type": "string",
|
||
|
"description": "iban"
|
||
|
},
|
||
|
"bban": {
|
||
|
"type": "string",
|
||
|
"description": "bban"
|
||
|
},
|
||
|
"msisdn": {
|
||
|
"type": "string",
|
||
|
"description": "msisdn"
|
||
|
},
|
||
|
"currency": {
|
||
|
"type": "string",
|
||
|
"description": "currency"
|
||
|
},
|
||
|
"ownerName": {
|
||
|
"type": "string",
|
||
|
"description": "ownerName"
|
||
|
},
|
||
|
"name": {
|
||
|
"type": "string",
|
||
|
"description": "name"
|
||
|
},
|
||
|
"displayName": {
|
||
|
"type": "string",
|
||
|
"description": "displayName"
|
||
|
},
|
||
|
"product": {
|
||
|
"type": "string",
|
||
|
"description": "product"
|
||
|
},
|
||
|
"cashAccountType": {
|
||
|
"type": "string",
|
||
|
"description": "cashAccountType"
|
||
|
},
|
||
|
"status": {
|
||
|
"type": "string",
|
||
|
"description": "status"
|
||
|
},
|
||
|
"bic": {
|
||
|
"type": "string",
|
||
|
"description": "bic"
|
||
|
},
|
||
|
"linkedAccounts": {
|
||
|
"type": "string",
|
||
|
"description": "linkedAccounts"
|
||
|
},
|
||
|
"maskedPan": {
|
||
|
"type": "string",
|
||
|
"description": "maskedPan"
|
||
|
},
|
||
|
"usage": {
|
||
|
"type": "string",
|
||
|
"description": "usage"
|
||
|
},
|
||
|
"details": {
|
||
|
"type": "string",
|
||
|
"description": "details"
|
||
|
},
|
||
|
"ownerAddressUnstructured": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": "ownerAddressUnstructured"
|
||
|
},
|
||
|
"ownerAddressStructured": {
|
||
|
"allOf": [
|
||
|
{
|
||
|
"$ref": "#/components/schemas/OwnerAddressStructuredSchema"
|
||
|
}
|
||
|
],
|
||
|
"description": "ownerAddressStructured"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"EndUserAgreement": {
|
||
|
"type": "object",
|
||
|
"description": "Represents an end-user agreement.",
|
||
|
"properties": {
|
||
|
"id": {
|
||
|
"type": "string",
|
||
|
"format": "uuid",
|
||
|
"readOnly": true,
|
||
|
"title": "End User Agreement ID",
|
||
|
"description": "The ID of this End User Agreement, used to refer to this end user agreement in other API calls."
|
||
|
},
|
||
|
"created": {
|
||
|
"type": "string",
|
||
|
"format": "date-time",
|
||
|
"readOnly": true,
|
||
|
"title": "Created Date",
|
||
|
"description": "The date & time at which the end user agreement was created."
|
||
|
},
|
||
|
"institution_id": {
|
||
|
"type": "string",
|
||
|
"description": "an Institution ID for this EUA"
|
||
|
},
|
||
|
"max_historical_days": {
|
||
|
"type": "integer",
|
||
|
"maximum": 730,
|
||
|
"minimum": 1,
|
||
|
"default": 90,
|
||
|
"title": "Maximum Historical Days",
|
||
|
"description": "Maximum number of days of transaction data to retrieve."
|
||
|
},
|
||
|
"access_valid_for_days": {
|
||
|
"type": "integer",
|
||
|
"maximum": 180,
|
||
|
"minimum": 1,
|
||
|
"default": 90,
|
||
|
"title": "Access Valid For (Days)",
|
||
|
"description": "Number of days from acceptance that the access can be used."
|
||
|
},
|
||
|
"access_scope": {
|
||
|
"type": "array",
|
||
|
"items": {},
|
||
|
"default": [
|
||
|
"balances",
|
||
|
"details",
|
||
|
"transactions"
|
||
|
],
|
||
|
"title": "Level of information to access (by default all)",
|
||
|
"description": "Array containing one or several values of ['balances', 'details', 'transactions']"
|
||
|
},
|
||
|
"accepted": {
|
||
|
"type": "string",
|
||
|
"format": "date-time",
|
||
|
"nullable": true,
|
||
|
"readOnly": true,
|
||
|
"title": "Accepted Date",
|
||
|
"description": "The date & time at which the end user accepted the agreement."
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"institution_id"
|
||
|
]
|
||
|
},
|
||
|
"EndUserAgreementRequest": {
|
||
|
"type": "object",
|
||
|
"description": "Represents an end-user agreement.",
|
||
|
"properties": {
|
||
|
"institution_id": {
|
||
|
"type": "string",
|
||
|
"minLength": 1,
|
||
|
"description": "an Institution ID for this EUA"
|
||
|
},
|
||
|
"max_historical_days": {
|
||
|
"type": "integer",
|
||
|
"maximum": 730,
|
||
|
"minimum": 1,
|
||
|
"default": 90,
|
||
|
"title": "Maximum Historical Days",
|
||
|
"description": "Maximum number of days of transaction data to retrieve."
|
||
|
},
|
||
|
"access_valid_for_days": {
|
||
|
"type": "integer",
|
||
|
"maximum": 180,
|
||
|
"minimum": 1,
|
||
|
"default": 90,
|
||
|
"title": "Access Valid For (Days)",
|
||
|
"description": "Number of days from acceptance that the access can be used."
|
||
|
},
|
||
|
"access_scope": {
|
||
|
"type": "array",
|
||
|
"items": {},
|
||
|
"default": [
|
||
|
"balances",
|
||
|
"details",
|
||
|
"transactions"
|
||
|
],
|
||
|
"title": "Level of information to access (by default all)",
|
||
|
"description": "Array containing one or several values of ['balances', 'details', 'transactions']"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"institution_id"
|
||
|
]
|
||
|
},
|
||
|
"EnduserAcceptanceDetailsRequest": {
|
||
|
"type": "object",
|
||
|
"description": "Represents end-user details.",
|
||
|
"properties": {
|
||
|
"user_agent": {
|
||
|
"type": "string",
|
||
|
"minLength": 1,
|
||
|
"title": "user agent string for the end user"
|
||
|
},
|
||
|
"ip_address": {
|
||
|
"type": "string",
|
||
|
"minLength": 1,
|
||
|
"title": "end user IP address"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"ip_address",
|
||
|
"user_agent"
|
||
|
]
|
||
|
},
|
||
|
"ErrorResponse": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"summary": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"detail": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"type": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"status_code": {
|
||
|
"type": "integer"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"detail",
|
||
|
"status_code",
|
||
|
"summary"
|
||
|
]
|
||
|
},
|
||
|
"Integration": {
|
||
|
"type": "object",
|
||
|
"description": "Represents an Integration.",
|
||
|
"properties": {
|
||
|
"id": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"name": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"bic": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"transaction_total_days": {
|
||
|
"type": "string",
|
||
|
"default": "90"
|
||
|
},
|
||
|
"countries": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"logo": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"countries",
|
||
|
"id",
|
||
|
"logo",
|
||
|
"name"
|
||
|
]
|
||
|
},
|
||
|
"IntegrationRetrieve": {
|
||
|
"type": "object",
|
||
|
"description": "IntegrationSerializer for Retrieve endpoint.",
|
||
|
"properties": {
|
||
|
"id": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"name": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"bic": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"transaction_total_days": {
|
||
|
"type": "string",
|
||
|
"default": "90"
|
||
|
},
|
||
|
"countries": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"logo": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"supported_payments": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {}
|
||
|
},
|
||
|
"supported_features": {
|
||
|
"type": "array",
|
||
|
"items": {}
|
||
|
},
|
||
|
"identification_codes": {
|
||
|
"type": "array",
|
||
|
"items": {}
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"countries",
|
||
|
"id",
|
||
|
"identification_codes",
|
||
|
"logo",
|
||
|
"name",
|
||
|
"supported_features",
|
||
|
"supported_payments"
|
||
|
]
|
||
|
},
|
||
|
"JWTObtainPairRequest": {
|
||
|
"type": "object",
|
||
|
"description": "Obtain JWT pair.",
|
||
|
"properties": {
|
||
|
"secret_id": {
|
||
|
"type": "string",
|
||
|
"minLength": 1,
|
||
|
"description": "Secret id from /user-secrets/"
|
||
|
},
|
||
|
"secret_key": {
|
||
|
"type": "string",
|
||
|
"minLength": 1,
|
||
|
"description": "Secret key from /user-secrets/"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"secret_id",
|
||
|
"secret_key"
|
||
|
]
|
||
|
},
|
||
|
"JWTRefreshRequest": {
|
||
|
"type": "object",
|
||
|
"description": "Refresh access token.",
|
||
|
"properties": {
|
||
|
"refresh": {
|
||
|
"type": "string",
|
||
|
"minLength": 1
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"refresh"
|
||
|
]
|
||
|
},
|
||
|
"OwnerAddressStructuredSchema": {
|
||
|
"type": "object",
|
||
|
"description": "OwnerAddressStructuredSchema.",
|
||
|
"properties": {
|
||
|
"streetName": {
|
||
|
"type": "string",
|
||
|
"description": "streetName"
|
||
|
},
|
||
|
"buildingNumber": {
|
||
|
"type": "string",
|
||
|
"description": "buildingNumber"
|
||
|
},
|
||
|
"townName": {
|
||
|
"type": "string",
|
||
|
"description": "townName"
|
||
|
},
|
||
|
"postCode": {
|
||
|
"type": "string",
|
||
|
"description": "postCode"
|
||
|
},
|
||
|
"country": {
|
||
|
"type": "string",
|
||
|
"description": "country"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"PaginatedEndUserAgreementList": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"count",
|
||
|
"results"
|
||
|
],
|
||
|
"properties": {
|
||
|
"count": {
|
||
|
"type": "integer",
|
||
|
"example": 123
|
||
|
},
|
||
|
"next": {
|
||
|
"type": "string",
|
||
|
"nullable": true,
|
||
|
"format": "uri",
|
||
|
"example": "https://bankaccountdata.gocardless.com/api/v2/agreements/enduser/?limit=100&offset=0"
|
||
|
},
|
||
|
"previous": {
|
||
|
"type": "string",
|
||
|
"nullable": true,
|
||
|
"format": "uri",
|
||
|
"example": "https://bankaccountdata.gocardless.com/api/v2/agreements/enduser/?limit=100&offset=0"
|
||
|
},
|
||
|
"results": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/components/schemas/EndUserAgreement"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"PaginatedRequisitionList": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"count",
|
||
|
"results"
|
||
|
],
|
||
|
"properties": {
|
||
|
"count": {
|
||
|
"type": "integer",
|
||
|
"example": 123
|
||
|
},
|
||
|
"next": {
|
||
|
"type": "string",
|
||
|
"nullable": true,
|
||
|
"format": "uri",
|
||
|
"example": "https://bankaccountdata.gocardless.com/api/v2/requisitions/?limit=100&offset=0"
|
||
|
},
|
||
|
"previous": {
|
||
|
"type": "string",
|
||
|
"nullable": true,
|
||
|
"format": "uri",
|
||
|
"example": "https://bankaccountdata.gocardless.com/api/v2/requisitions/?limit=100&offset=0"
|
||
|
},
|
||
|
"results": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/components/schemas/Requisition"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"Requisition": {
|
||
|
"type": "object",
|
||
|
"description": "RequisitionSerializer.",
|
||
|
"properties": {
|
||
|
"id": {
|
||
|
"type": "string",
|
||
|
"format": "uuid",
|
||
|
"readOnly": true
|
||
|
},
|
||
|
"created": {
|
||
|
"type": "string",
|
||
|
"format": "date-time",
|
||
|
"nullable": true,
|
||
|
"readOnly": true,
|
||
|
"title": "Created Date",
|
||
|
"description": "The date & time at which the requisition was created."
|
||
|
},
|
||
|
"redirect": {
|
||
|
"type": "string",
|
||
|
"format": "uri",
|
||
|
"nullable": true,
|
||
|
"description": "redirect URL to your application after end-user authorization with ASPSP",
|
||
|
"maxLength": 1024
|
||
|
},
|
||
|
"status": {
|
||
|
"allOf": [
|
||
|
{
|
||
|
"$ref": "#/components/schemas/StatusEnum"
|
||
|
}
|
||
|
],
|
||
|
"description": "status of this requisition",
|
||
|
"title": "Requisition status",
|
||
|
"readOnly": true
|
||
|
},
|
||
|
"institution_id": {
|
||
|
"type": "string",
|
||
|
"description": "an Institution ID for this Requisition"
|
||
|
},
|
||
|
"agreement": {
|
||
|
"type": "string",
|
||
|
"format": "uuid",
|
||
|
"description": "EUA associated with this requisition"
|
||
|
},
|
||
|
"reference": {
|
||
|
"type": "string",
|
||
|
"description": "additional ID to identify the end user",
|
||
|
"maxLength": 256
|
||
|
},
|
||
|
"accounts": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "string",
|
||
|
"format": "uuid",
|
||
|
"title": "accounts"
|
||
|
},
|
||
|
"readOnly": true,
|
||
|
"description": "array of account IDs retrieved within a scope of this requisition"
|
||
|
},
|
||
|
"user_language": {
|
||
|
"type": "string",
|
||
|
"description": "A two-letter country code (ISO 639-1)",
|
||
|
"maxLength": 5
|
||
|
},
|
||
|
"link": {
|
||
|
"type": "string",
|
||
|
"format": "uri",
|
||
|
"readOnly": true,
|
||
|
"default": "https://ob.gocardless.com/psd2/start/3fa85f64-5717-4562-b3fc-2c963f66afa6/{$INSTITUTION_ID}",
|
||
|
"description": "link to initiate authorization with Institution"
|
||
|
},
|
||
|
"ssn": {
|
||
|
"type": "string",
|
||
|
"description": "optional SSN field to verify ownership of the account",
|
||
|
"maxLength": 64
|
||
|
},
|
||
|
"account_selection": {
|
||
|
"type": "boolean",
|
||
|
"default": false,
|
||
|
"description": "option to enable account selection view for the end user"
|
||
|
},
|
||
|
"redirect_immediate": {
|
||
|
"type": "boolean",
|
||
|
"default": false,
|
||
|
"description": "enable redirect back to the client after account list received"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"institution_id",
|
||
|
"redirect"
|
||
|
]
|
||
|
},
|
||
|
"RequisitionRequest": {
|
||
|
"type": "object",
|
||
|
"description": "RequisitionSerializer.",
|
||
|
"properties": {
|
||
|
"redirect": {
|
||
|
"type": "string",
|
||
|
"format": "uri",
|
||
|
"nullable": true,
|
||
|
"minLength": 1,
|
||
|
"description": "redirect URL to your application after end-user authorization with ASPSP",
|
||
|
"maxLength": 1024
|
||
|
},
|
||
|
"institution_id": {
|
||
|
"type": "string",
|
||
|
"minLength": 1,
|
||
|
"description": "an Institution ID for this Requisition"
|
||
|
},
|
||
|
"agreement": {
|
||
|
"type": "string",
|
||
|
"format": "uuid",
|
||
|
"description": "EUA associated with this requisition"
|
||
|
},
|
||
|
"reference": {
|
||
|
"type": "string",
|
||
|
"minLength": 1,
|
||
|
"description": "additional ID to identify the end user",
|
||
|
"maxLength": 256
|
||
|
},
|
||
|
"user_language": {
|
||
|
"type": "string",
|
||
|
"minLength": 1,
|
||
|
"description": "A two-letter country code (ISO 639-1)",
|
||
|
"maxLength": 5
|
||
|
},
|
||
|
"ssn": {
|
||
|
"type": "string",
|
||
|
"description": "optional SSN field to verify ownership of the account",
|
||
|
"maxLength": 64
|
||
|
},
|
||
|
"account_selection": {
|
||
|
"type": "boolean",
|
||
|
"default": false,
|
||
|
"description": "option to enable account selection view for the end user"
|
||
|
},
|
||
|
"redirect_immediate": {
|
||
|
"type": "boolean",
|
||
|
"default": false,
|
||
|
"description": "enable redirect back to the client after account list received"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"institution_id",
|
||
|
"redirect"
|
||
|
]
|
||
|
},
|
||
|
"SpectacularJWTObtain": {
|
||
|
"type": "object",
|
||
|
"description": "Obtain new JWT pair.",
|
||
|
"properties": {
|
||
|
"access": {
|
||
|
"type": "string",
|
||
|
"readOnly": true,
|
||
|
"description": "Your access token"
|
||
|
},
|
||
|
"access_expires": {
|
||
|
"type": "integer",
|
||
|
"readOnly": true,
|
||
|
"default": 86400,
|
||
|
"description": "Access token expires in seconds"
|
||
|
},
|
||
|
"refresh": {
|
||
|
"type": "string",
|
||
|
"readOnly": true,
|
||
|
"description": "Your refresh token"
|
||
|
},
|
||
|
"refresh_expires": {
|
||
|
"type": "integer",
|
||
|
"readOnly": true,
|
||
|
"default": 2592000,
|
||
|
"description": "Refresh token expires in seconds"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"SpectacularJWTRefresh": {
|
||
|
"type": "object",
|
||
|
"description": "Refresh Access token.",
|
||
|
"properties": {
|
||
|
"access": {
|
||
|
"type": "string",
|
||
|
"readOnly": true,
|
||
|
"description": "Your access token"
|
||
|
},
|
||
|
"access_expires": {
|
||
|
"type": "integer",
|
||
|
"readOnly": true,
|
||
|
"default": 86400,
|
||
|
"description": "Access token expires in seconds"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"SpectacularRequisition": {
|
||
|
"type": "object",
|
||
|
"description": "Create requisition.",
|
||
|
"properties": {
|
||
|
"id": {
|
||
|
"type": "string",
|
||
|
"format": "uuid",
|
||
|
"readOnly": true
|
||
|
},
|
||
|
"created": {
|
||
|
"type": "string",
|
||
|
"format": "date-time",
|
||
|
"nullable": true,
|
||
|
"readOnly": true,
|
||
|
"title": "Created Date",
|
||
|
"description": "The date & time at which the requisition was created."
|
||
|
},
|
||
|
"redirect": {
|
||
|
"type": "string",
|
||
|
"format": "uri",
|
||
|
"nullable": true,
|
||
|
"description": "redirect URL to your application after end-user authorization with ASPSP",
|
||
|
"maxLength": 1024
|
||
|
},
|
||
|
"status": {
|
||
|
"allOf": [
|
||
|
{
|
||
|
"$ref": "#/components/schemas/StatusEnum"
|
||
|
}
|
||
|
],
|
||
|
"description": "status of this requisition",
|
||
|
"title": "Requisition status",
|
||
|
"readOnly": true
|
||
|
},
|
||
|
"institution_id": {
|
||
|
"type": "string",
|
||
|
"description": "an Institution ID for this Requisition"
|
||
|
},
|
||
|
"agreement": {
|
||
|
"type": "string",
|
||
|
"format": "uuid",
|
||
|
"description": "EUA associated with this requisition"
|
||
|
},
|
||
|
"reference": {
|
||
|
"type": "string",
|
||
|
"description": "additional ID to identify the end user",
|
||
|
"maxLength": 256
|
||
|
},
|
||
|
"accounts": {
|
||
|
"type": "array",
|
||
|
"items": {},
|
||
|
"readOnly": true,
|
||
|
"default": [],
|
||
|
"description": "array of account IDs retrieved within a scope of this requisition"
|
||
|
},
|
||
|
"user_language": {
|
||
|
"type": "string",
|
||
|
"description": "A two-letter country code (ISO 639-1)",
|
||
|
"maxLength": 5
|
||
|
},
|
||
|
"link": {
|
||
|
"type": "string",
|
||
|
"format": "uri",
|
||
|
"readOnly": true,
|
||
|
"default": "https://ob.gocardless.com/psd2/start/3fa85f64-5717-4562-b3fc-2c963f66afa6/{$INSTITUTION_ID}",
|
||
|
"description": "link to initiate authorization with Institution"
|
||
|
},
|
||
|
"ssn": {
|
||
|
"type": "string",
|
||
|
"description": "optional SSN field to verify ownership of the account",
|
||
|
"maxLength": 64
|
||
|
},
|
||
|
"account_selection": {
|
||
|
"type": "boolean",
|
||
|
"default": false,
|
||
|
"description": "option to enable account selection view for the end user"
|
||
|
},
|
||
|
"redirect_immediate": {
|
||
|
"type": "boolean",
|
||
|
"default": false,
|
||
|
"description": "enable redirect back to the client after account list received"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"institution_id",
|
||
|
"redirect"
|
||
|
]
|
||
|
},
|
||
|
"StatusEnum": {
|
||
|
"enum": [
|
||
|
"CR",
|
||
|
"ID",
|
||
|
"LN",
|
||
|
"RJ",
|
||
|
"ER",
|
||
|
"SU",
|
||
|
"EX",
|
||
|
"GC",
|
||
|
"UA",
|
||
|
"GA",
|
||
|
"SA"
|
||
|
],
|
||
|
"type": "string"
|
||
|
},
|
||
|
"TransactionAmountSchema": {
|
||
|
"type": "object",
|
||
|
"description": "TransactionAmountSchema.",
|
||
|
"properties": {
|
||
|
"amount": {
|
||
|
"type": "string",
|
||
|
"description": "amount"
|
||
|
},
|
||
|
"currency": {
|
||
|
"type": "string",
|
||
|
"description": "currency"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"amount",
|
||
|
"currency"
|
||
|
]
|
||
|
},
|
||
|
"TransactionSchema": {
|
||
|
"type": "object",
|
||
|
"description": "TransactionSchema.",
|
||
|
"properties": {
|
||
|
"transactionId": {
|
||
|
"type": "string",
|
||
|
"description": "transactionId"
|
||
|
},
|
||
|
"entryReference": {
|
||
|
"type": "string",
|
||
|
"description": "entryReference"
|
||
|
},
|
||
|
"endToEndId": {
|
||
|
"type": "string",
|
||
|
"description": "endToEndId"
|
||
|
},
|
||
|
"mandateId": {
|
||
|
"type": "string",
|
||
|
"description": "mandateId"
|
||
|
},
|
||
|
"checkId": {
|
||
|
"type": "string",
|
||
|
"description": "checkId"
|
||
|
},
|
||
|
"creditorId": {
|
||
|
"type": "string",
|
||
|
"description": "creditorId"
|
||
|
},
|
||
|
"bookingDate": {
|
||
|
"type": "string",
|
||
|
"description": "bookingDate"
|
||
|
},
|
||
|
"valueDate": {
|
||
|
"type": "string",
|
||
|
"description": "valueDate"
|
||
|
},
|
||
|
"bookingDateTime": {
|
||
|
"type": "string",
|
||
|
"description": "bookingDateTime"
|
||
|
},
|
||
|
"valueDateTime": {
|
||
|
"type": "string",
|
||
|
"description": "valueDateTime"
|
||
|
},
|
||
|
"transactionAmount": {
|
||
|
"allOf": [
|
||
|
{
|
||
|
"$ref": "#/components/schemas/TransactionAmountSchema"
|
||
|
}
|
||
|
],
|
||
|
"description": "transactionAmount"
|
||
|
},
|
||
|
"currencyExchange": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/components/schemas/CurrencyExchangeSchema"
|
||
|
}
|
||
|
},
|
||
|
"creditorName": {
|
||
|
"type": "string",
|
||
|
"description": "creditorName"
|
||
|
},
|
||
|
"creditorAccount": {
|
||
|
"allOf": [
|
||
|
{
|
||
|
"$ref": "#/components/schemas/AccountSchema"
|
||
|
}
|
||
|
],
|
||
|
"description": "creditorAccount"
|
||
|
},
|
||
|
"ultimateCreditor": {
|
||
|
"type": "string",
|
||
|
"description": "ultimateCreditor"
|
||
|
},
|
||
|
"debtorName": {
|
||
|
"type": "string",
|
||
|
"description": "debtorName"
|
||
|
},
|
||
|
"debtorAccount": {
|
||
|
"allOf": [
|
||
|
{
|
||
|
"$ref": "#/components/schemas/AccountSchema"
|
||
|
}
|
||
|
],
|
||
|
"description": "debtorAccount"
|
||
|
},
|
||
|
"ultimateDebtor": {
|
||
|
"type": "string",
|
||
|
"description": "ultimateDebtor"
|
||
|
},
|
||
|
"remittanceInformationUnstructured": {
|
||
|
"type": "string",
|
||
|
"description": "remittanceInformationUnstructured"
|
||
|
},
|
||
|
"remittanceInformationUnstructuredArray": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": "remittanceInformationUnstructuredArray"
|
||
|
},
|
||
|
"remittanceInformationStructured": {
|
||
|
"type": "string",
|
||
|
"description": "remittanceInformationStructured"
|
||
|
},
|
||
|
"remittanceInformationStructuredArray": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": "remittanceInformationStructuredArray"
|
||
|
},
|
||
|
"additionalInformation": {
|
||
|
"type": "string",
|
||
|
"description": "additionalInformation"
|
||
|
},
|
||
|
"purposeCode": {
|
||
|
"type": "string",
|
||
|
"description": "purposeCode"
|
||
|
},
|
||
|
"bankTransactionCode": {
|
||
|
"type": "string",
|
||
|
"description": "bankTransactionCode"
|
||
|
},
|
||
|
"proprietaryBankTransactionCode": {
|
||
|
"type": "string",
|
||
|
"description": "proprietaryBankTransactionCode"
|
||
|
},
|
||
|
"internalTransactionId": {
|
||
|
"type": "string",
|
||
|
"description": "internalTransactionId"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"transactionAmount"
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"securitySchemes": {
|
||
|
"jwtAuth": {
|
||
|
"type": "http",
|
||
|
"scheme": "bearer",
|
||
|
"bearerFormat": "JWT"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"security": [
|
||
|
{
|
||
|
"jwtAuth": []
|
||
|
}
|
||
|
],
|
||
|
"servers": [
|
||
|
{
|
||
|
"url": "https://bankaccountdata.gocardless.com"
|
||
|
}
|
||
|
]
|
||
|
}
|