{ "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 /. Please try again in 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 /. Please try again in 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 /. Please try again in 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 /. Please try again in 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 /. Please try again in 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 /. Please try again in 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 /. Please try again in 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 /. Please try again in 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 /. Please try again in 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 /. Please try again in 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 /. Please try again in 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 /. Please try again in 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 /. Please try again in 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 /. Please try again in 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 /. Please try again in 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 /. Please try again in 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 /. Please try again in 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" } ] }