docs-nextgenpsd2.api.memo.bank
Open in
urlscan Pro
52.212.52.84
Public Scan
Submitted URL: http://docs-nextgenpsd2.api.memo.bank/
Effective URL: https://docs-nextgenpsd2.api.memo.bank/
Submission: On December 22 via api from US — Scanned from US
Effective URL: https://docs-nextgenpsd2.api.memo.bank/
Submission: On December 22 via api from US — Scanned from US
Form analysis
1 forms found in the DOMPOST https://docs-nextgenpsd2.api.memo.bank/search.json
<form class="simple_form doc-search__form" data-action="ajax:success->doc-search#onPostSuccess ajax:error->doc-search#onPostError" data-doc-search-target="form" action="https://docs-nextgenpsd2.api.memo.bank/search.json" accept-charset="UTF-8"
data-remote="true" method="post">
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13 13L10 10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M6.14286 11.2857C8.98318 11.2857 11.2857 8.98318 11.2857 6.14286C11.2857 3.30254 8.98318 1 6.14286 1C3.30254 1 1 3.30254 1 6.14286C1 8.98318 3.30254 11.2857 6.14286 11.2857Z" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round"></path>
</svg>
<input label="false" autocomplete="off" type="hidden" name="uid" id="uid" value="0.5c725605e4d7d">
<input label="false" autocomplete="off" data-doc-search-target="input" data-action="input->doc-search#submitOnType" class="string required" required="required" aria-required="true" placeholder="Search" type="text" name="query" id="query">
<button type="button" class="button esc-button" data-action="click->modal#hide" data-modal-force-param="true">ESC</button>
</form>
Text Content
Show Menu Search… Ctrl+K ESC Example searches: “transaction”, “CreateOrder”, “/v2/locations”, “inventory”, “delete customer” Toggle dark mode -------------------------------------------------------------------------------- * API Changelog -------------------------------------------------------------------------------- Download source * JSON OpenAPI specification * YAML OpenAPI specification TOPICS * Introduction * Authentication ENDPOINTS * AIS * GET Read account details * GET Read account list * GET Read balance * GET Read transaction details * GET Read transaction list of an account Powered by Bump.sh Dismiss highlight MEMO BANK NEXTGENPSD2 API 1.0 INTRODUCTION Memo Bank NextGenPSD2 API allows Third Party Providers to access account information on behalf of customers. The API follows BerlinGroup NextGenPSD2 Implementation Guidelines as of version 1.3.11. This document describe our implementation choices and where we have drifted away from the guidelines. All non-absolute paths described in this document are relatives to the base URL of the server (https://api.memo.bank/nextgenpsd2). ONBOARDING For TPPs to be able to make a request on the API, they must follow the onboarding process. For that, it is required for them to provide the following elements : * a logo * a redirect URI for OAuth2 authentication * a valid QSealC certificate In exchange of what they will receive : * a client_id and a client_secret to be used with OAuth2 authentication * a username to be used with HTTP Signature authentication AUTHENTICATION OAUTH2 We use OAuth2 as a pre-step to authenticate the PSU. The access_token has a TTL of 2 hours and the refresh_token has a TTL of 2 weeks. The TPP should refresh the token before expiration in order to reuse the same consent for the next requests. HTTP SIGNATURE Requests must be signed by TPPs using the private key associated to the certificate provided during the onboarding process. Here is an exhaustive list of headers that must be signed : * @request-target (mandatory) * authorization (mandatory) * date (mandatory) * digest (only if the request has a body) * host (mandatory) * psu-corporate-id (only if included in the request) * psu-id (only if included in the request) * tpp-redirect-uri (only if included in the request) * x-request-id (only if included in the request) The special header @request-target should be used in place of (request-target) described in draft-cavage-http-signatures-12. In the Signature header, a username field must be provided instead of a keyId field. This username is obtained during the onboarding process. CONSENT MANAGEMENT Consent is given during the OAuth2 pre-step authentication and linked to an access_token/refresh_token pair. Every consent gives access to its accounts balances and transactions history. They also have an unlimited usage frequency. /consents endpoints are not implemented yet. RESPONSE FORMATS SUCCESS CASES The API only support application/json content type. ERROR CASES In case of processing error, the API will use NextGenPSD2 specific solution to give additional error information in the response. Some errors won't follow this format if they are sent by a proxy between the client and the application. This is the case with most authentication errors as of now. There is no support for the application/problem+json content type from RFC7807. This is the documentation for version 1.0 of the API. Last update on Aug 3, 2022. Base URL https://api.memo.bank/nextgenpsd2 -------------------------------------------------------------------------------- AUTHENTICATION O AUTH2 (OAUTH2) Retrieve an Access Token with the Oauth flows described below before accessing the API. Once you have an access token, send it in the Authorization http header to authenticate with the API. Flow type Authorization URL Token URL Refresh URL scopes authorizationCode https://client.memo.bank/authorize /oauth2/token /oauth2/token * AIS: Account Information Service. * PIS: Payment Initiation Service. * PIIS: Confirmation of Funds Service. -------------------------------------------------------------------------------- AIS Account Information Service. READ ACCOUNT DETAILS GET /v1/accounts/{accountId} PATH PARAMETERS * accountId string(uuid) Required QUERY PARAMETERS * withBalance boolean RESPONSES * • default object default response * account object Required * currency string Required * resourceId string * iban string * bban string * name string * displayName string * product string * cashAccountType string * status string Values are enabled, deleted, or blocked. * bic string * usage string Values are PRIV or ORGA. * balances array[object] * balanceAmount object Required * currency string Required * amount string Required * balanceType string Required Values are closingBooked, expected, openingBooked, interimAvailable, interimBooked, forwardAvailable, or nonInvoiced. * creditLimitIncluded boolean * referenceDate string(date) * _links object * balances object * href string * transactions object * href string * ownerName string GET /v1/accounts/{accountId} curl \ -X GET https://api.memo.bank/nextgenpsd2/v1/accounts/{accountId} \ -H "Authorization: Bearer $ACCESS_TOKEN" Response example (default) { "account": { "currency": "string", "resourceId": "string", "iban": "string", "bban": "string", "name": "string", "displayName": "string", "product": "string", "cashAccountType": "string", "status": "enabled", "bic": "string", "usage": "PRIV", "balances": [ { "balanceAmount": { "currency": "string", "amount": "string" }, "balanceType": "closingBooked", "creditLimitIncluded": true, "referenceDate": "2022-05-04" } ], "_links": { "balances": { "href": "string" }, "transactions": { "href": "string" } }, "ownerName": "string" } } READ ACCOUNT LIST GET /v1/accounts QUERY PARAMETERS * withBalance boolean RESPONSES * • default object default response * accounts array[object] Required * currency string Required * resourceId string * iban string * bban string * name string * displayName string * product string * cashAccountType string * status string Values are enabled, deleted, or blocked. * bic string * usage string Values are PRIV or ORGA. * balances array[object] * balanceAmount object Required * currency string Required * amount string Required * balanceType string Required Values are closingBooked, expected, openingBooked, interimAvailable, interimBooked, forwardAvailable, or nonInvoiced. * creditLimitIncluded boolean * referenceDate string(date) * _links object * balances object * href string * transactions object * href string * ownerName string GET /v1/accounts curl \ -X GET https://api.memo.bank/nextgenpsd2/v1/accounts \ -H "Authorization: Bearer $ACCESS_TOKEN" Response example (default) { "accounts": [ { "currency": "string", "resourceId": "string", "iban": "string", "bban": "string", "name": "string", "displayName": "string", "product": "string", "cashAccountType": "string", "status": "enabled", "bic": "string", "usage": "PRIV", "balances": [ { "balanceAmount": { "currency": "string", "amount": "string" }, "balanceType": "closingBooked", "creditLimitIncluded": true, "referenceDate": "2022-05-04" } ], "_links": { "balances": { "href": "string" }, "transactions": { "href": "string" } }, "ownerName": "string" } ] } READ BALANCE GET /v1/accounts/{accountId}/balances PATH PARAMETERS * accountId string(uuid) Required RESPONSES * • default object default response * account object * iban string * bban string * currency string * cashAccountType string * balances array[object] Required * balanceAmount object Required * currency string Required * amount string Required * balanceType string Required Values are closingBooked, expected, openingBooked, interimAvailable, interimBooked, forwardAvailable, or nonInvoiced. * creditLimitIncluded boolean * referenceDate string(date) GET /v1/accounts/{accountId}/balances curl \ -X GET https://api.memo.bank/nextgenpsd2/v1/accounts/{accountId}/balances \ -H "Authorization: Bearer $ACCESS_TOKEN" Response example (default) { "account": { "iban": "string", "bban": "string", "currency": "string", "cashAccountType": "string" }, "balances": [ { "balanceAmount": { "currency": "string", "amount": "string" }, "balanceType": "closingBooked", "creditLimitIncluded": true, "referenceDate": "2022-05-04" } ] } READ TRANSACTION DETAILS GET /v1/accounts/{accountId}/transactions/{transactionId} PATH PARAMETERS * accountId string(uuid) Required * transactionId string(uuid) Required RESPONSES * • default object default response * transactionsDetails object Required * transactionAmount object Required * currency string Required * amount string Required * transactionId string * endToEndId string * batchIndicator boolean * batchNumberOfTransactions integer(int32) * mandateId string * bookingDate string(date) * valueDate string(date) * currencyExchange array[object] * sourceCurrency string Required * exchangeRate string Required * unitCurrency string Required * targetCurrency string Required * quotationDate string(date) Required * creditorName string * creditorAccount object * iban string * bban string * currency string * cashAccountType string * creditorAgent string * debtorName string * debtorAccount object * iban string * bban string * currency string * cashAccountType string * debtorAgent string * remittanceInformationUnstructured string * entryDetails array[object] * transactionAmount object Required * currency string Required * amount string Required * endToEndId string * mandateId string * currencyExchange array[object] * sourceCurrency string Required * exchangeRate string Required * unitCurrency string Required * targetCurrency string Required * quotationDate string(date) Required * creditorName string * creditorAccount object * iban string * bban string * currency string * cashAccountType string * creditorAgent string * debtorName string * debtorAccount object * iban string * bban string * currency string * cashAccountType string * debtorAgent string * remittanceInformationUnstructured string * _extras object * counterpartyAndRemittanceInformationUnstructured string Concatenates the counterparty name with the remittance information, to be used by consumers which only wants one field for both information. GET /v1/accounts/{accountId}/transactions/{transactionId} curl \ -X GET https://api.memo.bank/nextgenpsd2/v1/accounts/{accountId}/transactions/{transactionId} \ -H "Authorization: Bearer $ACCESS_TOKEN" Response example (default) { "transactionsDetails": { "transactionAmount": { "currency": "string", "amount": "string" }, "transactionId": "string", "endToEndId": "string", "batchIndicator": true, "batchNumberOfTransactions": 42, "mandateId": "string", "bookingDate": "2022-05-04", "valueDate": "2022-05-04", "currencyExchange": [ { "sourceCurrency": "string", "exchangeRate": "string", "unitCurrency": "string", "targetCurrency": "string", "quotationDate": "2022-05-04" } ], "creditorName": "string", "creditorAccount": { "iban": "string", "bban": "string", "currency": "string", "cashAccountType": "string" }, "creditorAgent": "string", "debtorName": "string", "debtorAccount": { "iban": "string", "bban": "string", "currency": "string", "cashAccountType": "string" }, "debtorAgent": "string", "remittanceInformationUnstructured": "string", "entryDetails": [ { "transactionAmount": { "currency": "string", "amount": "string" }, "endToEndId": "string", "mandateId": "string", "currencyExchange": [ { "sourceCurrency": "string", "exchangeRate": "string", "unitCurrency": "string", "targetCurrency": "string", "quotationDate": "2022-05-04" } ], "creditorName": "string", "creditorAccount": { "iban": "string", "bban": "string", "currency": "string", "cashAccountType": "string" }, "creditorAgent": "string", "debtorName": "string", "debtorAccount": { "iban": "string", "bban": "string", "currency": "string", "cashAccountType": "string" }, "debtorAgent": "string", "remittanceInformationUnstructured": "string" } ], "_extras": { "counterpartyAndRemittanceInformationUnstructured": "string" } } } READ TRANSACTION LIST OF AN ACCOUNT GET /v1/accounts/{accountId}/transactions PATH PARAMETERS * accountId string(uuid) Required QUERY PARAMETERS * bookingStatus string Required Supported values are : booked, pending and both. Values are information, booked, pending, both, or all. * dateFrom string(date) * dateTo string(date) * entryReferenceFrom string Unsupported. * deltaList boolean Unsupported. * withBalance boolean * orderBy string Supported values are : bookingDate, -bookingDate. Default value is bookingDate. * page integer(int32) Minimum value is 1. Default value is 1. * size integer(int32) Minimum value is 1, maximum value is 100. Default value is 50. RESPONSES * • default object default response * account object * iban string * bban string * currency string * cashAccountType string * balances array[object] * balanceAmount object Required * currency string Required * amount string Required * balanceType string Required Values are closingBooked, expected, openingBooked, interimAvailable, interimBooked, forwardAvailable, or nonInvoiced. * creditLimitIncluded boolean * referenceDate string(date) * transactions object * _links object * account object Required * href string * first object * href string * next object * href string * previous object * href string * last object * href string * booked array[object] * transactionAmount object Required * currency string Required * amount string Required * transactionId string * endToEndId string * batchIndicator boolean * batchNumberOfTransactions integer(int32) * mandateId string * bookingDate string(date) * valueDate string(date) * currencyExchange array[object] * sourceCurrency string Required * exchangeRate string Required * unitCurrency string Required * targetCurrency string Required * quotationDate string(date) Required * creditorName string * creditorAccount object * iban string * bban string * currency string * cashAccountType string * creditorAgent string * debtorName string * debtorAccount object * iban string * bban string * currency string * cashAccountType string * debtorAgent string * remittanceInformationUnstructured string * entryDetails array[object] * transactionAmount object Required * currency string Required * amount string Required * endToEndId string * mandateId string * currencyExchange array[object] * sourceCurrency string Required * exchangeRate string Required * unitCurrency string Required * targetCurrency string Required * quotationDate string(date) Required * creditorName string * creditorAccount object * iban string * bban string * currency string * cashAccountType string * creditorAgent string * debtorName string * debtorAccount object * iban string * bban string * currency string * cashAccountType string * debtorAgent string * remittanceInformationUnstructured string * _extras object * counterpartyAndRemittanceInformationUnstructured string Concatenates the counterparty name with the remittance information, to be used by consumers which only wants one field for both information. * pending array[object] * transactionAmount object Required * currency string Required * amount string Required * transactionId string * endToEndId string * batchIndicator boolean * batchNumberOfTransactions integer(int32) * mandateId string * bookingDate string(date) * valueDate string(date) * currencyExchange array[object] * sourceCurrency string Required * exchangeRate string Required * unitCurrency string Required * targetCurrency string Required * quotationDate string(date) Required * creditorName string * creditorAccount object * iban string * bban string * currency string * cashAccountType string * creditorAgent string * debtorName string * debtorAccount object * iban string * bban string * currency string * cashAccountType string * debtorAgent string * remittanceInformationUnstructured string * entryDetails array[object] * transactionAmount object Required * currency string Required * amount string Required * endToEndId string * mandateId string * currencyExchange array[object] * sourceCurrency string Required * exchangeRate string Required * unitCurrency string Required * targetCurrency string Required * quotationDate string(date) Required * creditorName string * creditorAccount object * iban string * bban string * currency string * cashAccountType string * creditorAgent string * debtorName string * debtorAccount object * iban string * bban string * currency string * cashAccountType string * debtorAgent string * remittanceInformationUnstructured string * _extras object * counterpartyAndRemittanceInformationUnstructured string Concatenates the counterparty name with the remittance information, to be used by consumers which only wants one field for both information. GET /v1/accounts/{accountId}/transactions curl \ -X GET https://api.memo.bank/nextgenpsd2/v1/accounts/{accountId}/transactions?bookingStatus=information \ -H "Authorization: Bearer $ACCESS_TOKEN" Response example (default) { "account": { "iban": "string", "bban": "string", "currency": "string", "cashAccountType": "string" }, "balances": [ { "balanceAmount": { "currency": "string", "amount": "string" }, "balanceType": "closingBooked", "creditLimitIncluded": true, "referenceDate": "2022-05-04" } ], "transactions": { "_links": { "account": { "href": "string" }, "first": { "href": "string" }, "next": { "href": "string" }, "previous": { "href": "string" }, "last": { "href": "string" } }, "booked": [ { "transactionAmount": { "currency": "string", "amount": "string" }, "transactionId": "string", "endToEndId": "string", "batchIndicator": true, "batchNumberOfTransactions": 42, "mandateId": "string", "bookingDate": "2022-05-04", "valueDate": "2022-05-04", "currencyExchange": [ { "sourceCurrency": "string", "exchangeRate": "string", "unitCurrency": "string", "targetCurrency": "string", "quotationDate": "2022-05-04" } ], "creditorName": "string", "creditorAccount": { "iban": "string", "bban": "string", "currency": "string", "cashAccountType": "string" }, "creditorAgent": "string", "debtorName": "string", "debtorAccount": { "iban": "string", "bban": "string", "currency": "string", "cashAccountType": "string" }, "debtorAgent": "string", "remittanceInformationUnstructured": "string", "entryDetails": [ { "transactionAmount": { "currency": "string", "amount": "string" }, "endToEndId": "string", "mandateId": "string", "currencyExchange": [ { "sourceCurrency": "string", "exchangeRate": "string", "unitCurrency": "string", "targetCurrency": "string", "quotationDate": "2022-05-04" } ], "creditorName": "string", "creditorAccount": { "iban": "string", "bban": "string", "currency": "string", "cashAccountType": "string" }, "creditorAgent": "string", "debtorName": "string", "debtorAccount": { "iban": "string", "bban": "string", "currency": "string", "cashAccountType": "string" }, "debtorAgent": "string", "remittanceInformationUnstructured": "string" } ], "_extras": { "counterpartyAndRemittanceInformationUnstructured": "string" } } ], "pending": [ { "transactionAmount": { "currency": "string", "amount": "string" }, "transactionId": "string", "endToEndId": "string", "batchIndicator": true, "batchNumberOfTransactions": 42, "mandateId": "string", "bookingDate": "2022-05-04", "valueDate": "2022-05-04", "currencyExchange": [ { "sourceCurrency": "string", "exchangeRate": "string", "unitCurrency": "string", "targetCurrency": "string", "quotationDate": "2022-05-04" } ], "creditorName": "string", "creditorAccount": { "iban": "string", "bban": "string", "currency": "string", "cashAccountType": "string" }, "creditorAgent": "string", "debtorName": "string", "debtorAccount": { "iban": "string", "bban": "string", "currency": "string", "cashAccountType": "string" }, "debtorAgent": "string", "remittanceInformationUnstructured": "string", "entryDetails": [ { "transactionAmount": { "currency": "string", "amount": "string" }, "endToEndId": "string", "mandateId": "string", "currencyExchange": [ { "sourceCurrency": "string", "exchangeRate": "string", "unitCurrency": "string", "targetCurrency": "string", "quotationDate": "2022-05-04" } ], "creditorName": "string", "creditorAccount": { "iban": "string", "bban": "string", "currency": "string", "cashAccountType": "string" }, "creditorAgent": "string", "debtorName": "string", "debtorAccount": { "iban": "string", "bban": "string", "currency": "string", "cashAccountType": "string" }, "debtorAgent": "string", "remittanceInformationUnstructured": "string" } ], "_extras": { "counterpartyAndRemittanceInformationUnstructured": "string" } } ] } }